diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 867518de..0d1460bb 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -10,7 +10,7 @@ jobs: strategy: matrix: os: [windows-latest, macos-latest, ubuntu-latest] - node-version: [22.x, 24.x] + node-version: [24.x, 25.x] env: CI: true diff --git a/.gitignore b/.gitignore index 9bdc4ebd..036d301e 100644 --- a/.gitignore +++ b/.gitignore @@ -12,7 +12,6 @@ logs npm-debug.log* yarn-debug.log* yarn-error.log* -lerna-debug.log* # Diagnostic reports (https://nodejs.org/api/report.html) report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json @@ -290,3 +289,4 @@ $RECYCLE.BIN/ .nx/cache +.turbo diff --git a/docs/Player/index.html b/docs/Player/index.html index 5e80f001..cf33ee1a 100644 --- a/docs/Player/index.html +++ b/docs/Player/index.html @@ -6,7 +6,7 @@ - + diff --git a/docs/Player/ss6player-pixi.min.js b/docs/Player/ss6player-pixi.min.js index e6ecd5eb..e8fc413a 100644 --- a/docs/Player/ss6player-pixi.min.js +++ b/docs/Player/ss6player-pixi.min.js @@ -1,10 +1,27 @@ -/** - * ----------------------------------------------------------- - * SS6Player For pixi.js v2.4.0 - * - * Copyright(C) CRI Middleware Co., Ltd. - * https://www.webtech.co.jp/ - * ----------------------------------------------------------- - */ - -var ss6PlayerPixi=function(dt,P){"use strict";class Ot{}const ht=4,ct=4,C=4,Q=new Int32Array(2),Ft=new Float32Array(Q.buffer),gt=new Float64Array(Q.buffer),lt=new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1;var ut;(function(c){c[c.UTF8_BYTES=1]="UTF8_BYTES",c[c.UTF16_STRING=2]="UTF16_STRING"})(ut||(ut={}));class It{constructor(t){this.bytes_=t,this.position_=0,this.text_decoder_=new TextDecoder}static allocate(t){return new It(new Uint8Array(t))}clear(){this.position_=0}bytes(){return this.bytes_}position(){return this.position_}setPosition(t){this.position_=t}capacity(){return this.bytes_.length}readInt8(t){return this.readUint8(t)<<24>>24}readUint8(t){return this.bytes_[t]}readInt16(t){return this.readUint16(t)<<16>>16}readUint16(t){return this.bytes_[t]|this.bytes_[t+1]<<8}readInt32(t){return this.bytes_[t]|this.bytes_[t+1]<<8|this.bytes_[t+2]<<16|this.bytes_[t+3]<<24}readUint32(t){return this.readInt32(t)>>>0}readInt64(t){return BigInt.asIntN(64,BigInt(this.readUint32(t))+(BigInt(this.readUint32(t+4))<>8}writeUint16(t,s){this.bytes_[t]=s,this.bytes_[t+1]=s>>8}writeInt32(t,s){this.bytes_[t]=s,this.bytes_[t+1]=s>>8,this.bytes_[t+2]=s>>16,this.bytes_[t+3]=s>>24}writeUint32(t,s){this.bytes_[t]=s,this.bytes_[t+1]=s>>8,this.bytes_[t+2]=s>>16,this.bytes_[t+3]=s>>24}writeInt64(t,s){this.writeInt32(t,Number(BigInt.asIntN(32,s))),this.writeInt32(t+4,Number(BigInt.asIntN(32,s>>BigInt(32))))}writeUint64(t,s){this.writeUint32(t,Number(BigInt.asUintN(32,s))),this.writeUint32(t+4,Number(BigInt.asUintN(32,s>>BigInt(32))))}writeFloat32(t,s){Ft[0]=s,this.writeInt32(t,Q[0])}writeFloat64(t,s){gt[0]=s,this.writeInt32(t,Q[lt?0:1]),this.writeInt32(t+4,Q[lt?1:0])}getBufferIdentifier(){if(this.bytes_.length=0;e--)t.addInt32(s[e]);return t.endVector()}static startDataVector(t,s){t.startVector(4,s,4)}static endpartState(t){return t.endObject()}static createpartState(t,s,e,i,o){return R.startpartState(t),R.addIndex(t,s),R.addFlag1(t,e),R.addFlag2(t,i),R.addData(t,o),R.endpartState(t)}}class it{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsframeDataIndex(t,s){return(s||new it).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsframeDataIndex(t,s){return t.setPosition(t.position()+C),(s||new it).__init(t.readInt32(t.position())+t.position(),t)}states(t,s){const e=this.bb.__offset(this.bb_pos,4);return e?(s||new R).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}statesLength(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}static startframeDataIndex(t){t.startObject(1)}static addStates(t,s){t.addFieldOffset(0,s,0)}static createStatesVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startStatesVector(t,s){t.startVector(4,s,4)}static endframeDataIndex(t){return t.endObject()}static createframeDataIndex(t,s){return it.startframeDataIndex(t),it.addStates(t,s),it.endframeDataIndex(t)}}class G{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAslabelDataItem(t,s){return(s||new G).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAslabelDataItem(t,s){return t.setPosition(t.position()+C),(s||new G).__init(t.readInt32(t.position())+t.position(),t)}label(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}frameIndex(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}static startlabelDataItem(t){t.startObject(2)}static addLabel(t,s){t.addFieldOffset(0,s,0)}static addFrameIndex(t,s){t.addFieldInt16(1,s,0)}static endlabelDataItem(t){return t.endObject()}static createlabelDataItem(t,s,e){return G.startlabelDataItem(t),G.addLabel(t,s),G.addFrameIndex(t,e),G.endlabelDataItem(t)}}class at{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsmeshDataIndices(t,s){return(s||new at).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsmeshDataIndices(t,s){return t.setPosition(t.position()+C),(s||new at).__init(t.readInt32(t.position())+t.position(),t)}indices(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.readFloat32(this.bb.__vector(this.bb_pos+s)+t*4):0}indicesLength(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}indicesArray(){const t=this.bb.__offset(this.bb_pos,4);return t?new Float32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}static startmeshDataIndices(t){t.startObject(1)}static addIndices(t,s){t.addFieldOffset(0,s,0)}static createIndicesVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addFloat32(s[e]);return t.endVector()}static startIndicesVector(t,s){t.startVector(4,s,4)}static endmeshDataIndices(t){return t.endObject()}static createmeshDataIndices(t,s){return at.startmeshDataIndices(t),at.addIndices(t,s),at.endmeshDataIndices(t)}}class nt{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsmeshDataUV(t,s){return(s||new nt).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsmeshDataUV(t,s){return t.setPosition(t.position()+C),(s||new nt).__init(t.readInt32(t.position())+t.position(),t)}uv(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.readFloat32(this.bb.__vector(this.bb_pos+s)+t*4):0}uvLength(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}uvArray(){const t=this.bb.__offset(this.bb_pos,4);return t?new Float32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}static startmeshDataUV(t){t.startObject(1)}static addUv(t,s){t.addFieldOffset(0,s,0)}static createUvVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addFloat32(s[e]);return t.endVector()}static startUvVector(t,s){t.startVector(4,s,4)}static endmeshDataUV(t){return t.endObject()}static createmeshDataUV(t,s){return nt.startmeshDataUV(t),nt.addUv(t,s),nt.endmeshDataUV(t)}}class A{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsuserDataItem(t,s){return(s||new A).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataItem(t,s){return t.setPosition(t.position()+C),(s||new A).__init(t.readInt32(t.position())+t.position(),t)}flags(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):0}arrayIndex(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}dataType(t){const s=this.bb.__offset(this.bb_pos,8);return s?this.bb.readUint8(this.bb.__vector(this.bb_pos+s)+t):0}dataTypeLength(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}dataTypeArray(){const t=this.bb.__offset(this.bb_pos,8);return t?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}data(t,s){const e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__union(s,this.bb.__vector(this.bb_pos+e)+t*4):null}dataLength(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}static startuserDataItem(t){t.startObject(4)}static addFlags(t,s){t.addFieldInt16(0,s,0)}static addArrayIndex(t,s){t.addFieldInt16(1,s,0)}static addDataType(t,s){t.addFieldOffset(2,s,0)}static createDataTypeVector(t,s){t.startVector(1,s.length,1);for(let e=s.length-1;e>=0;e--)t.addInt8(s[e]);return t.endVector()}static startDataTypeVector(t,s){t.startVector(1,s,1)}static addData(t,s){t.addFieldOffset(3,s,0)}static createDataVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startDataVector(t,s){t.startVector(4,s,4)}static enduserDataItem(t){return t.endObject()}static createuserDataItem(t,s,e,i,o){return A.startuserDataItem(t),A.addFlags(t,s),A.addArrayIndex(t,e),A.addDataType(t,i),A.addData(t,o),A.enduserDataItem(t)}}class tt{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsuserDataPerFrame(t,s){return(s||new tt).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataPerFrame(t,s){return t.setPosition(t.position()+C),(s||new tt).__init(t.readInt32(t.position())+t.position(),t)}frameIndex(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):0}data(t,s){const e=this.bb.__offset(this.bb_pos,6);return e?(s||new A).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}dataLength(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}static startuserDataPerFrame(t){t.startObject(2)}static addFrameIndex(t,s){t.addFieldInt16(0,s,0)}static addData(t,s){t.addFieldOffset(1,s,0)}static createDataVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startDataVector(t,s){t.startVector(4,s,4)}static enduserDataPerFrame(t){return t.endObject()}static createuserDataPerFrame(t,s,e){return tt.startuserDataPerFrame(t),tt.addFrameIndex(t,s),tt.addData(t,e),tt.enduserDataPerFrame(t)}}class y{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsAnimationData(t,s){return(s||new y).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAnimationData(t,s){return t.setPosition(t.position()+C),(s||new y).__init(t.readInt32(t.position())+t.position(),t)}name(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}defaultData(t,s){const e=this.bb.__offset(this.bb_pos,6);return e?(s||new b).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}defaultDataLength(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}frameData(t,s){const e=this.bb.__offset(this.bb_pos,8);return e?(s||new it).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}frameDataLength(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}userData(t,s){const e=this.bb.__offset(this.bb_pos,10);return e?(s||new tt).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}userDataLength(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}labelData(t,s){const e=this.bb.__offset(this.bb_pos,12);return e?(s||new G).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}labelDataLength(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}meshsDataUv(t,s){const e=this.bb.__offset(this.bb_pos,14);return e?(s||new nt).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}meshsDataUvLength(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__vector_len(this.bb_pos+t):0}meshsDataIndices(t,s){const e=this.bb.__offset(this.bb_pos,16);return e?(s||new at).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}meshsDataIndicesLength(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}startFrames(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.readInt16(this.bb_pos+t):0}endFrames(){const t=this.bb.__offset(this.bb_pos,20);return t?this.bb.readInt16(this.bb_pos+t):0}totalFrames(){const t=this.bb.__offset(this.bb_pos,22);return t?this.bb.readInt16(this.bb_pos+t):0}fps(){const t=this.bb.__offset(this.bb_pos,24);return t?this.bb.readInt16(this.bb_pos+t):0}labelNum(){const t=this.bb.__offset(this.bb_pos,26);return t?this.bb.readInt16(this.bb_pos+t):0}canvasSizeW(){const t=this.bb.__offset(this.bb_pos,28);return t?this.bb.readInt16(this.bb_pos+t):0}canvasSizeH(){const t=this.bb.__offset(this.bb_pos,30);return t?this.bb.readInt16(this.bb_pos+t):0}canvasPvotX(){const t=this.bb.__offset(this.bb_pos,32);return t?this.bb.readFloat32(this.bb_pos+t):0}canvasPvotY(){const t=this.bb.__offset(this.bb_pos,34);return t?this.bb.readFloat32(this.bb_pos+t):0}static startAnimationData(t){t.startObject(16)}static addName(t,s){t.addFieldOffset(0,s,0)}static addDefaultData(t,s){t.addFieldOffset(1,s,0)}static createDefaultDataVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startDefaultDataVector(t,s){t.startVector(4,s,4)}static addFrameData(t,s){t.addFieldOffset(2,s,0)}static createFrameDataVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startFrameDataVector(t,s){t.startVector(4,s,4)}static addUserData(t,s){t.addFieldOffset(3,s,0)}static createUserDataVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startUserDataVector(t,s){t.startVector(4,s,4)}static addLabelData(t,s){t.addFieldOffset(4,s,0)}static createLabelDataVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startLabelDataVector(t,s){t.startVector(4,s,4)}static addMeshsDataUv(t,s){t.addFieldOffset(5,s,0)}static createMeshsDataUvVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startMeshsDataUvVector(t,s){t.startVector(4,s,4)}static addMeshsDataIndices(t,s){t.addFieldOffset(6,s,0)}static createMeshsDataIndicesVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startMeshsDataIndicesVector(t,s){t.startVector(4,s,4)}static addStartFrames(t,s){t.addFieldInt16(7,s,0)}static addEndFrames(t,s){t.addFieldInt16(8,s,0)}static addTotalFrames(t,s){t.addFieldInt16(9,s,0)}static addFps(t,s){t.addFieldInt16(10,s,0)}static addLabelNum(t,s){t.addFieldInt16(11,s,0)}static addCanvasSizeW(t,s){t.addFieldInt16(12,s,0)}static addCanvasSizeH(t,s){t.addFieldInt16(13,s,0)}static addCanvasPvotX(t,s){t.addFieldFloat32(14,s,0)}static addCanvasPvotY(t,s){t.addFieldFloat32(15,s,0)}static endAnimationData(t){return t.endObject()}static createAnimationData(t,s,e,i,o,a,r,h,l,n,d,_,m,F,f,V,u){return y.startAnimationData(t),y.addName(t,s),y.addDefaultData(t,e),y.addFrameData(t,i),y.addUserData(t,o),y.addLabelData(t,a),y.addMeshsDataUv(t,r),y.addMeshsDataIndices(t,h),y.addStartFrames(t,l),y.addEndFrames(t,n),y.addTotalFrames(t,d),y.addFps(t,_),y.addLabelNum(t,m),y.addCanvasSizeW(t,F),y.addCanvasSizeH(t,f),y.addCanvasPvotX(t,V),y.addCanvasPvotY(t,u),y.endAnimationData(t)}}var O=(c=>(c[c.Invalid=-1]="Invalid",c[c.Nulltype=0]="Nulltype",c[c.Normal=1]="Normal",c[c.Text=2]="Text",c[c.Instance=3]="Instance",c[c.Armature=4]="Armature",c[c.Effect=5]="Effect",c[c.Mesh=6]="Mesh",c[c.Movenode=7]="Movenode",c[c.Constraint=8]="Constraint",c[c.Mask=9]="Mask",c[c.Joint=10]="Joint",c[c.Bonepoint=11]="Bonepoint",c))(O||{});class S{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsPartData(t,s){return(s||new S).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsPartData(t,s){return t.setPosition(t.position()+C),(s||new S).__init(t.readInt32(t.position())+t.position(),t)}name(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}index(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}parentIndex(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}type(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt8(this.bb_pos+t):O.Nulltype}boundsType(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}alphaBlendType(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readInt16(this.bb_pos+t):0}refname(t){const s=this.bb.__offset(this.bb_pos,16);return s?this.bb.__string(this.bb_pos+s,t):null}effectfilename(t){const s=this.bb.__offset(this.bb_pos,18);return s?this.bb.__string(this.bb_pos+s,t):null}colorLabel(t){const s=this.bb.__offset(this.bb_pos,20);return s?this.bb.__string(this.bb_pos+s,t):null}maskInfluence(){const t=this.bb.__offset(this.bb_pos,22);return t?this.bb.readInt16(this.bb_pos+t):0}static startPartData(t){t.startObject(10)}static addName(t,s){t.addFieldOffset(0,s,0)}static addIndex(t,s){t.addFieldInt16(1,s,0)}static addParentIndex(t,s){t.addFieldInt16(2,s,0)}static addType(t,s){t.addFieldInt8(3,s,O.Nulltype)}static addBoundsType(t,s){t.addFieldInt16(4,s,0)}static addAlphaBlendType(t,s){t.addFieldInt16(5,s,0)}static addRefname(t,s){t.addFieldOffset(6,s,0)}static addEffectfilename(t,s){t.addFieldOffset(7,s,0)}static addColorLabel(t,s){t.addFieldOffset(8,s,0)}static addMaskInfluence(t,s){t.addFieldInt16(9,s,0)}static endPartData(t){return t.endObject()}static createPartData(t,s,e,i,o,a,r,h,l,n,d){return S.startPartData(t),S.addName(t,s),S.addIndex(t,e),S.addParentIndex(t,i),S.addType(t,o),S.addBoundsType(t,a),S.addAlphaBlendType(t,r),S.addRefname(t,h),S.addEffectfilename(t,l),S.addColorLabel(t,n),S.addMaskInfluence(t,d),S.endPartData(t)}}class Z{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsAnimePackData(t,s){return(s||new Z).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAnimePackData(t,s){return t.setPosition(t.position()+C),(s||new Z).__init(t.readInt32(t.position())+t.position(),t)}name(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}parts(t,s){const e=this.bb.__offset(this.bb_pos,6);return e?(s||new S).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}partsLength(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}animations(t,s){const e=this.bb.__offset(this.bb_pos,8);return e?(s||new y).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}animationsLength(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}static startAnimePackData(t){t.startObject(3)}static addName(t,s){t.addFieldOffset(0,s,0)}static addParts(t,s){t.addFieldOffset(1,s,0)}static createPartsVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startPartsVector(t,s){t.startVector(4,s,4)}static addAnimations(t,s){t.addFieldOffset(2,s,0)}static createAnimationsVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startAnimationsVector(t,s){t.startVector(4,s,4)}static endAnimePackData(t){return t.endObject()}static createAnimePackData(t,s,e,i){return Z.startAnimePackData(t),Z.addName(t,s),Z.addParts(t,e),Z.addAnimations(t,i),Z.endAnimePackData(t)}}class X{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsCellMap(t,s){return(s||new X).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsCellMap(t,s){return t.setPosition(t.position()+C),(s||new X).__init(t.readInt32(t.position())+t.position(),t)}name(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}imagePath(t){const s=this.bb.__offset(this.bb_pos,6);return s?this.bb.__string(this.bb_pos+s,t):null}index(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}wrapmode(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt16(this.bb_pos+t):0}filtermode(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}static startCellMap(t){t.startObject(5)}static addName(t,s){t.addFieldOffset(0,s,0)}static addImagePath(t,s){t.addFieldOffset(1,s,0)}static addIndex(t,s){t.addFieldInt16(2,s,0)}static addWrapmode(t,s){t.addFieldInt16(3,s,0)}static addFiltermode(t,s){t.addFieldInt16(4,s,0)}static endCellMap(t){return t.endObject()}static createCellMap(t,s,e,i,o,a){return X.startCellMap(t),X.addName(t,s),X.addImagePath(t,e),X.addIndex(t,i),X.addWrapmode(t,o),X.addFiltermode(t,a),X.endCellMap(t)}}class ft{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsCell(t,s){return(s||new ft).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsCell(t,s){return t.setPosition(t.position()+C),(s||new ft).__init(t.readInt32(t.position())+t.position(),t)}name(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}cellMap(t){const s=this.bb.__offset(this.bb_pos,6);return s?(t||new X).__init(this.bb.__indirect(this.bb_pos+s),this.bb):null}indexInCellMap(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}x(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt16(this.bb_pos+t):0}y(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}width(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readInt16(this.bb_pos+t):0}height(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.readInt16(this.bb_pos+t):0}pivotX(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.readFloat32(this.bb_pos+t):0}pivotY(){const t=this.bb.__offset(this.bb_pos,20);return t?this.bb.readFloat32(this.bb_pos+t):0}u1(){const t=this.bb.__offset(this.bb_pos,22);return t?this.bb.readFloat32(this.bb_pos+t):0}v1(){const t=this.bb.__offset(this.bb_pos,24);return t?this.bb.readFloat32(this.bb_pos+t):0}u2(){const t=this.bb.__offset(this.bb_pos,26);return t?this.bb.readFloat32(this.bb_pos+t):0}v2(){const t=this.bb.__offset(this.bb_pos,28);return t?this.bb.readFloat32(this.bb_pos+t):0}static startCell(t){t.startObject(13)}static addName(t,s){t.addFieldOffset(0,s,0)}static addCellMap(t,s){t.addFieldOffset(1,s,0)}static addIndexInCellMap(t,s){t.addFieldInt16(2,s,0)}static addX(t,s){t.addFieldInt16(3,s,0)}static addY(t,s){t.addFieldInt16(4,s,0)}static addWidth(t,s){t.addFieldInt16(5,s,0)}static addHeight(t,s){t.addFieldInt16(6,s,0)}static addPivotX(t,s){t.addFieldFloat32(7,s,0)}static addPivotY(t,s){t.addFieldFloat32(8,s,0)}static addU1(t,s){t.addFieldFloat32(9,s,0)}static addV1(t,s){t.addFieldFloat32(10,s,0)}static addU2(t,s){t.addFieldFloat32(11,s,0)}static addV2(t,s){t.addFieldFloat32(12,s,0)}static endCell(t){return t.endObject()}}class L{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsEffectNode(t,s){return(s||new L).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsEffectNode(t,s){return t.setPosition(t.position()+C),(s||new L).__init(t.readInt32(t.position())+t.position(),t)}arrayIndex(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):0}parentIndex(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}type(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}cellIndex(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt16(this.bb_pos+t):0}blendType(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}numBehavior(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readInt16(this.bb_pos+t):0}behaviorType(t){const s=this.bb.__offset(this.bb_pos,16);return s?this.bb.readUint8(this.bb.__vector(this.bb_pos+s)+t):0}behaviorTypeLength(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}behaviorTypeArray(){const t=this.bb.__offset(this.bb_pos,16);return t?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}behavior(t,s){const e=this.bb.__offset(this.bb_pos,18);return e?this.bb.__union(s,this.bb.__vector(this.bb_pos+e)+t*4):null}behaviorLength(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.__vector_len(this.bb_pos+t):0}static startEffectNode(t){t.startObject(8)}static addArrayIndex(t,s){t.addFieldInt16(0,s,0)}static addParentIndex(t,s){t.addFieldInt16(1,s,0)}static addType(t,s){t.addFieldInt16(2,s,0)}static addCellIndex(t,s){t.addFieldInt16(3,s,0)}static addBlendType(t,s){t.addFieldInt16(4,s,0)}static addNumBehavior(t,s){t.addFieldInt16(5,s,0)}static addBehaviorType(t,s){t.addFieldOffset(6,s,0)}static createBehaviorTypeVector(t,s){t.startVector(1,s.length,1);for(let e=s.length-1;e>=0;e--)t.addInt8(s[e]);return t.endVector()}static startBehaviorTypeVector(t,s){t.startVector(1,s,1)}static addBehavior(t,s){t.addFieldOffset(7,s,0)}static createBehaviorVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startBehaviorVector(t,s){t.startVector(4,s,4)}static endEffectNode(t){return t.endObject()}static createEffectNode(t,s,e,i,o,a,r,h,l){return L.startEffectNode(t),L.addArrayIndex(t,s),L.addParentIndex(t,e),L.addType(t,i),L.addCellIndex(t,o),L.addBlendType(t,a),L.addNumBehavior(t,r),L.addBehaviorType(t,h),L.addBehavior(t,l),L.endEffectNode(t)}}class w{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsEffectFile(t,s){return(s||new w).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsEffectFile(t,s){return t.setPosition(t.position()+C),(s||new w).__init(t.readInt32(t.position())+t.position(),t)}name(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}fps(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}isLockRandSeed(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}lockRandSeed(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt16(this.bb_pos+t):0}layoutScaleX(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}layoutScaleY(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readInt16(this.bb_pos+t):0}numNodeList(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.readInt16(this.bb_pos+t):0}effectNode(t,s){const e=this.bb.__offset(this.bb_pos,18);return e?(s||new L).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}effectNodeLength(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.__vector_len(this.bb_pos+t):0}static startEffectFile(t){t.startObject(8)}static addName(t,s){t.addFieldOffset(0,s,0)}static addFps(t,s){t.addFieldInt16(1,s,0)}static addIsLockRandSeed(t,s){t.addFieldInt16(2,s,0)}static addLockRandSeed(t,s){t.addFieldInt16(3,s,0)}static addLayoutScaleX(t,s){t.addFieldInt16(4,s,0)}static addLayoutScaleY(t,s){t.addFieldInt16(5,s,0)}static addNumNodeList(t,s){t.addFieldInt16(6,s,0)}static addEffectNode(t,s){t.addFieldOffset(7,s,0)}static createEffectNodeVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startEffectNodeVector(t,s){t.startVector(4,s,4)}static endEffectFile(t){return t.endObject()}static createEffectFile(t,s,e,i,o,a,r,h,l){return w.startEffectFile(t),w.addName(t,s),w.addFps(t,e),w.addIsLockRandSeed(t,i),w.addLockRandSeed(t,o),w.addLayoutScaleX(t,a),w.addLayoutScaleY(t,r),w.addNumNodeList(t,h),w.addEffectNode(t,l),w.endEffectFile(t)}}var p=(c=>(c[c.INVISIBLE=1]="INVISIBLE",c[c.FLIP_H=2]="FLIP_H",c[c.FLIP_V=4]="FLIP_V",c[c.CELL_INDEX=8]="CELL_INDEX",c[c.POSITION_X=16]="POSITION_X",c[c.POSITION_Y=32]="POSITION_Y",c[c.POSITION_Z=64]="POSITION_Z",c[c.PIVOT_X=128]="PIVOT_X",c[c.PIVOT_Y=256]="PIVOT_Y",c[c.ROTATIONX=512]="ROTATIONX",c[c.ROTATIONY=1024]="ROTATIONY",c[c.ROTATIONZ=2048]="ROTATIONZ",c[c.SCALE_X=4096]="SCALE_X",c[c.SCALE_Y=8192]="SCALE_Y",c[c.LOCALSCALE_X=16384]="LOCALSCALE_X",c[c.LOCALSCALE_Y=32768]="LOCALSCALE_Y",c[c.OPACITY=65536]="OPACITY",c[c.LOCALOPACITY=131072]="LOCALOPACITY",c[c.PARTS_COLOR=262144]="PARTS_COLOR",c[c.VERTEX_TRANSFORM=524288]="VERTEX_TRANSFORM",c[c.SIZE_X=1048576]="SIZE_X",c[c.SIZE_Y=2097152]="SIZE_Y",c[c.U_MOVE=4194304]="U_MOVE",c[c.V_MOVE=8388608]="V_MOVE",c[c.UV_ROTATION=16777216]="UV_ROTATION",c[c.U_SCALE=33554432]="U_SCALE",c[c.V_SCALE=67108864]="V_SCALE",c[c.BOUNDINGRADIUS=134217728]="BOUNDINGRADIUS",c[c.MASK=268435456]="MASK",c[c.PRIORITY=536870912]="PRIORITY",c[c.INSTANCE_KEYFRAME=1073741824]="INSTANCE_KEYFRAME",c[c.EFFECT_KEYFRAME=2147483648]="EFFECT_KEYFRAME",c))(p||{}),yt=(c=>(c[c.MESHDATA=1]="MESHDATA",c))(yt||{});class D{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsProjectData(t,s){return(s||new D).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsProjectData(t,s){return t.setPosition(t.position()+C),(s||new D).__init(t.readInt32(t.position())+t.position(),t)}static bufferHasIdentifier(t){return t.__has_identifier("SSFB")}dataId(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint32(this.bb_pos+t):0}version(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readUint32(this.bb_pos+t):0}flags(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readUint32(this.bb_pos+t):0}imageBaseDir(t){const s=this.bb.__offset(this.bb_pos,10);return s?this.bb.__string(this.bb_pos+s,t):null}cells(t,s){const e=this.bb.__offset(this.bb_pos,12);return e?(s||new ft).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}cellsLength(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}animePacks(t,s){const e=this.bb.__offset(this.bb_pos,14);return e?(s||new Z).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}animePacksLength(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__vector_len(this.bb_pos+t):0}effectFileList(t,s){const e=this.bb.__offset(this.bb_pos,16);return e?(s||new w).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}effectFileListLength(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}numCells(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.readInt16(this.bb_pos+t):0}numAnimePacks(){const t=this.bb.__offset(this.bb_pos,20);return t?this.bb.readInt16(this.bb_pos+t):0}numEffectFileList(){const t=this.bb.__offset(this.bb_pos,22);return t?this.bb.readInt16(this.bb_pos+t):0}static startProjectData(t){t.startObject(10)}static addDataId(t,s){t.addFieldInt32(0,s,0)}static addVersion(t,s){t.addFieldInt32(1,s,0)}static addFlags(t,s){t.addFieldInt32(2,s,0)}static addImageBaseDir(t,s){t.addFieldOffset(3,s,0)}static addCells(t,s){t.addFieldOffset(4,s,0)}static createCellsVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startCellsVector(t,s){t.startVector(4,s,4)}static addAnimePacks(t,s){t.addFieldOffset(5,s,0)}static createAnimePacksVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startAnimePacksVector(t,s){t.startVector(4,s,4)}static addEffectFileList(t,s){t.addFieldOffset(6,s,0)}static createEffectFileListVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startEffectFileListVector(t,s){t.startVector(4,s,4)}static addNumCells(t,s){t.addFieldInt16(7,s,0)}static addNumAnimePacks(t,s){t.addFieldInt16(8,s,0)}static addNumEffectFileList(t,s){t.addFieldInt16(9,s,0)}static endProjectData(t){return t.endObject()}static finishProjectDataBuffer(t,s){t.finish(s,"SSFB")}static finishSizePrefixedProjectDataBuffer(t,s){t.finish(s,"SSFB",!0)}static createProjectData(t,s,e,i,o,a,r,h,l,n,d){return D.startProjectData(t),D.addDataId(t,s),D.addVersion(t,e),D.addFlags(t,i),D.addImageBaseDir(t,o),D.addCells(t,a),D.addAnimePacks(t,r),D.addEffectFileList(t,h),D.addNumCells(t,l),D.addNumAnimePacks(t,n),D.addNumEffectFileList(t,d),D.endProjectData(t)}}class Ct{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}integer(){return this.bb.readInt32(this.bb_pos)}static sizeOf(){return 4}static createuserDataInteger(t,s){return t.prep(4,4),t.writeInt32(s),t.offset()}}class Vt{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}x(){return this.bb.readInt32(this.bb_pos)}y(){return this.bb.readInt32(this.bb_pos+4)}static sizeOf(){return 8}static createuserDataPoint(t,s,e){return t.prep(4,8),t.writeInt32(e),t.writeInt32(s),t.offset()}}class bt{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}x(){return this.bb.readInt32(this.bb_pos)}y(){return this.bb.readInt32(this.bb_pos+4)}w(){return this.bb.readInt32(this.bb_pos+8)}h(){return this.bb.readInt32(this.bb_pos+12)}static sizeOf(){return 16}static createuserDataRect(t,s,e,i,o){return t.prep(4,16),t.writeInt32(o),t.writeInt32(i),t.writeInt32(e),t.writeInt32(s),t.offset()}}class H{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsuserDataString(t,s){return(s||new H).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataString(t,s){return t.setPosition(t.position()+C),(s||new H).__init(t.readInt32(t.position())+t.position(),t)}length(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt32(this.bb_pos+t):0}data(t){const s=this.bb.__offset(this.bb_pos,6);return s?this.bb.__string(this.bb_pos+s,t):null}static startuserDataString(t){t.startObject(2)}static addLength(t,s){t.addFieldInt32(0,s,0)}static addData(t,s){t.addFieldOffset(1,s,0)}static enduserDataString(t){return t.endObject()}static createuserDataString(t,s,e){return H.startuserDataString(t),H.addLength(t,s),H.addData(t,e),H.enduserDataString(t)}}let xt=class{static getProjectData(t){const s=new It(t);return D.getRootAsProjectData(s)}};class mt{static getProjectData(t){return xt.getProjectData(t)}}class ot{constructor(t,s=null,e=null){this.curAnimePackName=null,this.curAnimeName=null,this.curAnimation=null,this.curAnimePackData=null,this._animePackIdx=-1,this._parentIndex=[],this._prio2index=[],this.userData=[],this.frameDataCache=null,this.currentCachedFrameNumber=-1,this.defaultFrameMap=[],this._uint32=new Uint32Array(1),this._float32=new Float32Array(this._uint32.buffer),Object.prototype.hasOwnProperty.call(t,"bb")?this._fbObj=t:this._fbObj=mt.getProjectData(t),s!==null&&e!==null&&this.Setup(s,e)}get fbObj(){return this._fbObj}get animePackName(){return this.curAnimePackName}get animeName(){return this.curAnimeName}get animePackIdx(){return this._animePackIdx}get animePackData(){return this.curAnimePackData}get animationData(){return this.curAnimation}get parentIndex(){return this._parentIndex}get prio2index(){return this._prio2index}Setup(t,s){this.clearCaches();const e=this._fbObj.animePacksLength();let i=!1;for(let o=0;o>>0,n.colorBlendType===1&&(n.tint=n.colorArgb32&16777215)}}if(l&yt.MESHDATA){const _=this.curAnimation.meshsDataUv(r);n.meshIsBind=_.uv(0),n.meshNum=_.uv(1);let m=new Float32Array(n.meshNum*3);for(let F=0;F=0&&(t=this.InheritOpacity(t,this._parentIndex[s],e)),t}TransformVertsLocal(t,s,e){const i=this.GetFrameData(e)[s],o=-i.rotationZ*Math.PI/180,a=Math.cos(o),r=Math.sin(o);for(let h=0;h=0&&(t=this.TransformVerts(t,this._parentIndex[s],e)),t}TransformMeshVertsLocal(t,s,e){const i=this.GetFrameData(e)[s],o=-i.rotationZ*Math.PI/180,a=Math.cos(o),r=Math.sin(o);for(let h=0;h=0&&(t=this.TransformVerts(t,this._parentIndex[s],e)),t}TransformPositionLocal(t,s,e){const i=this.GetFrameData(e)[s];t[4]+=-i.rotationZ;const o=-i.rotationZ*Math.PI/180,a=Math.cos(o),r=Math.sin(o),h=t[0]*i.scaleX*i.localscaleX,l=t[1]*i.scaleY*i.localscaleY;return t[2]*=i.scaleX*i.localscaleX,t[3]*=i.scaleY*i.localscaleY,t[0]=a*h-r*l+i.positionX,t[1]=r*h+a*l-i.positionY,this._parentIndex[s]>=0&&(t=this.TransformPosition(t,this._parentIndex[s],e)),t}static CoordinateGetDiagonalIntersection(t,s,e,i,o,a,r,h,l,n,d){const _=(h-a)*(r-e)-(r-o)*(h-i),m=(l-e)*(h-i)-(n-i)*(r-e),F=(l-e)*(h-a)-(n-i)*(r-o);if(F<=0&&F>=0)return d;const f=_/F,V=m/F;return 0<=f&&1>=f&&0<=V&&1>=V&&(t=e+f*(l-e),s=i+f*(n-i)),d[0]=t,d[1]=s,d}TransformVerts(t,s,e){const i=this.GetFrameData(e)[s],o=-i.rotationZ*Math.PI/180,a=Math.cos(o),r=Math.sin(o);for(let h=0;h=0&&(t=this.TransformVerts(t,this._parentIndex[s],e)),t}TransformPosition(t,s,e){const i=this.GetFrameData(e)[s];t[4]+=-i.rotationZ;const o=-i.rotationZ*Math.PI/180,a=Math.cos(o),r=Math.sin(o),h=t[0]*i.scaleX,l=t[1]*i.scaleY;return t[2]*=i.scaleX,t[3]*=i.scaleY,t[0]=a*h-r*l+i.positionX,t[1]=r*h+a*l-i.positionY,this._parentIndex[s]>=0&&(t=this.TransformPosition(t,this._parentIndex[s],e)),t}static GetVerts(t,s,e){const i=s.size_X/2,o=s.size_Y/2,a=s.size_X*-(s.pivotX+t.pivotX()),r=s.size_Y*(s.pivotY+t.pivotY());return e.set([a,r,a-i,r-o,a+i,r-o,a-i,r+o,a+i,r+o]),e}static GetMeshVerts(t,s,e){for(let i=0;i{e!==null&&e(null)}).catch(i=>{e!==null&&e(i)})}unload(t,s,e){P.Assets.unloadBundle(t).then(()=>{e!==null&&e(null)}).catch(i=>{e!==null&&e(i)})}texture(t){return P.Assets.get(t)}}class Dt{constructor(){this.loader=new St}load(t,s,e){return this.loader.load(t,s,e)}unload(t,s,e=null){return this.loader.unload(t,s,e)}texture(t){return this.loader.texture(t)}}class Pt{constructor(t,s,e,i){if(this.sspjMap={},this.resourceLoader=new Dt,typeof t=="string"&&e===void 0){let o=t;this.ssfbPath=o;const a=o.lastIndexOf("/");this.rootPath=o.substring(0,a)+"/",this.ssfbFile=o.substring(a+1),this.onComplete=s===void 0?null:s,this.status=0,this.LoadFlatBuffersProject()}else if(typeof s=="object"&&s.constructor===Uint8Array){this.ssfbPath=null,this.rootPath=null,this.ssfbFile=t;let o=s,a=e;this.onComplete=i===void 0?null:i,this.load(o,a)}}getBundle(){return this.ssfbFile}getTexture(t){return this.resourceLoader.texture(t)}dispose(t=null){this.resourceLoader.unload(this.getBundle(),this.sspjMap,s=>{t!==null&&t()})}LoadFlatBuffersProject(){const t=this;fetch(this.ssfbPath,{method:"get"}).then(s=>s.ok?Promise.resolve(s.arrayBuffer()):Promise.reject(new Error(s.statusText))).then(s=>{t.fbObj=mt.getProjectData(new Uint8Array(s)),t.LoadCellResources()}).catch(s=>{this.onComplete!==null&&this.onComplete(null,s)})}LoadCellResources(){let t=[];this.sspjMap={};for(let e=0;e{e===null?(s.status=1,s.onComplete!==null&&s.onComplete(this,null)):this.onComplete!==null&&this.onComplete(null,e)})}load(t,s){this.fbObj=mt.getProjectData(t);let e={};for(let o in s){const a=s[o];let r="";const h=a.byteLength;for(let l=0;l{o===null?(i.status=1,i.onComplete!==null&&i.onComplete(this,null)):this.onComplete!==null&&this.onComplete(null,o)})}}class vt{constructor(){this.refStartframe=0,this.refEndframe=0,this.refSpeed=1,this.refloopNum=0,this.infinity=!1,this.reverse=!1,this.pingpong=!1,this.independent=!1}}class _t extends P.Container{constructor(t,s=null,e=null){super(),this.liveFrame=[],this.colorMatrixFilterCache=[],this.parentAlpha=1,this.prevCellID=[],this.prevPartObject=[],this.changeCellID=[],this.changeVisible=[],this.changeTint=[],this.substituteOverWrite=[],this.substituteKeyParam=[],this.alphaBlendType=[],this.defaultColorFilter=new P.ColorMatrixFilter,this._instancePos=new Float32Array(5),this._CoordinateGetDiagonalIntersectionVec2=new Float32Array(2),this.isRenderGroup=!0,this.ss6project=t,this.playerLib=new ot(t.fbObj,s,e),this.parentAlpha=1,s!==null&&e!==null&&this.Setup(s,e),this.on("added",(...i)=>{P.Ticker.shared.add(this.Update,this)},this),this.on("removed",(...i)=>{P.Ticker.shared.remove(this.Update,this)},this)}get startFrame(){return this._startFrame}get endFrame(){return this._endFrame}get totalFrame(){return this.playerLib.animationData.totalFrames()}get fps(){return this.playerLib.animationData.fps()}get frameNo(){return Math.floor(this._currentFrame)}set loop(t){this._loops=t}get loop(){return this._loops}get isPlaying(){return this._isPlaying}get isPausing(){return this._isPausing}get animePackName(){return this.playerLib.animePackName}get animeName(){return this.playerLib.animeName}Setup(t,s){this.playerLib.Setup(t,s),this.clearCaches();const e=this.playerLib.animePackData,i=e.partsLength();this.prevCellID=new Array(i),this.prevPartObject=new Array(i),this.changeCellID=new Array(i),this.changeVisible=new Array(i),this.changeTint=new Array(i),this.substituteOverWrite=new Array(i),this.substituteKeyParam=new Array(i);for(let o=0;o=this.updateInterval){let o=!1;const a=this.nextFrameTime/this.updateInterval;this.nextFrameTime-=this.updateInterval*a;let r=this.skipEnabled?a*this.playDirection:this.playDirection,h=this._currentFrame+r,l=Math.floor(h),n=h-l,d=Math.floor(this._currentFrame);if(this.playDirection>=1)for(let _=l-d;_;_--){let m=d+1;if(m>this._endFrame)if(this._loops===-1)m=this._startFrame;else if(this._loops--,o=!0,this._loops===0){this._isPlaying=!1,m=s?this._startFrame:this._endFrame;break}else m=this._startFrame;d=m,this._isPlaying&&this.playerLib.HaveUserData(d)&&this.onUserDataCallback!==null&&this.onUserDataCallback(this.playerLib.GetUserData(d))}if(this.playDirection<=-1)for(let _=d-l;_;_--){let m=d-1;if(m0?1:-1,this.updateInterval=1e3/(this.playerLib.animationData.fps()*t*this.playDirection),this.skipEnabled=s)}SetAnimationSection(t=-1,s=-1,e=-1){t>=0&&t=0&&s0?this._loops=e:this._loops=-1,this._currentFrame=this.playDirection>0?this._startFrame:this._endFrame}Play(t){this._isPlaying=!0,this._isPausing=!1;let s=this.playDirection>0?this._startFrame:this._endFrame;t&&typeof t=="number"&&(s=t),this._currentFrame=s,this.resetLiveFrame();const e=Math.floor(this._currentFrame);this.SetFrameAnimation(e),this.playerLib.HaveUserData(e)&&this.onUserDataCallback!==null&&this.onUserDataCallback(this.playerLib.GetUserData(e))}Pause(){this._isPausing=!0}Resume(){this._isPausing=!1}Stop(){this._isPlaying=!1}SetFrame(t){this._currentFrame=t}NextFrame(){const t=Math.floor(this._currentFrame),s=this.endFrame;t!==s&&this.SetFrame(t+1)}PrevFrame(){const t=Math.floor(this._currentFrame);t!==0&&this.SetFrame(t-1)}SetAlpha(t){this.parentAlpha=t}ThrowError(t){}SetUserDataCalback(t){this.onUserDataCallback=t}SetPlayEndCallback(t){this.playEndCallback=t}getCellIndex(t,s){let e=-1;if(t!==""&&s!==""){const i=this.playerLib.fbObj,o=this.playerLib.fbObj.numCells();for(let a=0;a>>24)/255,r=((e&16711680)>>>16)/255,h=((e&65280)>>>8)/255,l=(e&255)/255;if(t===0){const n=1-s;o.matrix=[n,0,0,0,r*s,0,n,0,0,h*s,0,0,n,0,l*s,0,0,0,1,0]}else t===1?o.matrix=[r,0,0,0,0,0,h,0,0,0,0,0,l,0,0,0,0,0,a,0]:t===2?o.matrix=[1,0,0,0,r,0,1,0,0,h,0,0,1,0,l,0,0,0,a,0]:t===3&&(o.matrix=[1,0,0,0,-r,0,1,0,0,-h,0,0,1,0,-l,0,0,0,a,0]);return this.colorMatrixFilterCache[i]=o,o}SetFrameAnimation(t,s=0){const e=this.playerLib.GetFrameData(t);this.removeChildren();const i=e.length;for(let o=0;o=0&&this.prevCellID[a]!==l&&(n?.destroy(),n=this.MakeCellMesh(l),n.label=d.name());break;case O.Mesh:l>=0&&this.prevCellID[a]!==l&&(n?.destroy(),n=this.MakeMeshCellMesh(a,l,h),n.label=d.name());break;case O.Nulltype:case O.Joint:this.prevCellID[a]!==l&&(n?.destroy(),n=new P.Container,n.label=d.name());break;default:l>=0&&this.prevCellID[a]!==l&&(n?.destroy(),n=this.MakeCellMesh(l),n.label=d.name());break}if(n!=null)switch(this.prevCellID[a]=l,this.prevPartObject[a]=n,_){case O.Instance:{const f=n;this._instancePos[0]=0,this._instancePos[1]=0,this._instancePos[2]=1,this._instancePos[3]=1,this._instancePos[4]=0,this._instancePos=this.playerLib.TransformPositionLocal(this._instancePos,r.index,t),f.rotation=this._instancePos[4]*Math.PI/180,f.position.set(this._instancePos[0],this._instancePos[1]),f.scale.set(this._instancePos[2],this._instancePos[3]);let V=r.opacity/255;r.localopacity<255&&(V=r.localopacity/255),f.SetAlpha(V*this.parentAlpha),f.visible=!r.f_hide;let u=r.instanceValue_curKeyframe,x=r.instanceValue_startFrame,I=r.instanceValue_endFrame,z=r.instanceValue_speed,W=r.instanceValue_loopNum,st=!1,k=!1,v=!1,B=!1;const J=1,$=2,M=4,E=8,N=r.instanceValue_loopflag;N&J&&(st=!0),N&$&&(k=!0),N&M&&(v=!0),N&E&&(B=!0),m&&(x=F.refStartframe,I=F.refEndframe,z=F.refSpeed,W=F.refloopNum,st=F.infinity,k=F.reverse,v=F.pingpong,B=F.independent),(f._startFrame!==x||f._endFrame!==I)&&f.SetAnimationSection(x,I);let Y=t;B===!0&&(this.liveFrame[o]+=s,Y=Math.floor(this.liveFrame[o]));const et=u;let g=Math.floor((Y-et)*z);if(g<0||et>Y)continue;const T=I-x+1;if(T<=0)continue;let U=Math.floor(g/T),j=W;v&&(j=j*2),st||U>=j&&(g=T-1,U=j-1);const q=Math.floor(g%T);let K=0;v&&U%2===1&&(k?k=!1:k=!0),this.playDirection<=-1&&(k=!k),k?K=I-q:K=q+x,f.SetFrame(Math.floor(K)),this.addChild(f);break}case O.Normal:case O.Mesh:case O.Joint:case O.Mask:{const f=n,V=f.geometry.attributes.aPosition.buffer;let u=V.data;const x=this.playerLib.fbObj.cells(l);let I;if(_===O.Mesh?r.meshIsBind===0?I=this.playerLib.TransformMeshVertsLocal(ot.GetMeshVerts(x,r,u),r.index,t):I=ot.GetMeshVerts(x,r,u):(I=_===O.Joint?new Float32Array(10):u,I=this.playerLib.TransformVertsLocal(ot.GetVerts(x,r,I),r.index,t)),r.flag1&p.VERTEX_TRANSFORM){const v=I[6],B=I[7],J=I[2],$=I[3],M=I[8],E=I[9],N=I[4],Y=I[5],et=(v+M)*.5,g=(B+E)*.5,T=(v+J)*.5,U=(B+$)*.5,j=(J+N)*.5,q=($+Y)*.5,K=(M+N)*.5,rt=(E+Y)*.5,pt=ot.CoordinateGetDiagonalIntersection(I[0],I[1],et,g,K,rt,T,U,j,q,this._CoordinateGetDiagonalIntersectionVec2);I[0]=pt[0],I[1]=pt[1]}const z=I[0],W=I[1];for(let v=0;v>>24)/255;f.alpha=f.alpha*v}const k=this.alphaBlendType[a];(k==="multiply"||k==="screen")&&(f.alpha=1),_!==O.Mask&&this.addChild(f);break}case O.Nulltype:{const f=n,V=this.playerLib.InheritOpacity(1,r.index,t);f.alpha=V*r.localopacity/255;const u=this.playerLib.TransformVerts(ot.GetDummyVerts(),r.index,t),x=u[0],I=u[1];f.position.set(x,I);const z=Math.atan2(u[5]-u[3],u[4]-u[2]),W=Math.atan2(u[7]-u[3],u[6]-u[2]);f.rotation=z,f.skew.x=W-z-Math.PI/2;break}}}}ChangeInstanceAnime(t,s,e,i,o=null){let a=!1;if(this.animePackName!==null&&this.animeName!==null){let r=this.playerLib.animePackData,h=r.partsLength();for(let l=0;l0){const a=this.playerLib.fbObj.cells(s),r=this.playerLib.fbObj.cells(e),h=s===e?0:(a.u1()+a.u2())/2-(r.u1()+r.u2())/2,l=s===e?0:(a.v1()+a.v2())/2-(r.v1()+r.v2())/2,n=new Float32Array(o-2),d=i.uv(1);for(let u=2;u>24}readUint8(e){return this.bytes_[e]}readInt16(e){return this.readUint16(e)<<16>>16}readUint16(e){return this.bytes_[e]|this.bytes_[e+1]<<8}readInt32(e){return this.bytes_[e]|this.bytes_[e+1]<<8|this.bytes_[e+2]<<16|this.bytes_[e+3]<<24}readUint32(e){return this.readInt32(e)>>>0}readInt64(e){return BigInt.asIntN(64,BigInt(this.readUint32(e))+(BigInt(this.readUint32(e+4))<>8}writeUint16(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8}writeInt32(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8,this.bytes_[e+2]=t>>16,this.bytes_[e+3]=t>>24}writeUint32(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8,this.bytes_[e+2]=t>>16,this.bytes_[e+3]=t>>24}writeInt64(e,t){this.writeInt32(e,Number(BigInt.asIntN(32,t))),this.writeInt32(e+4,Number(BigInt.asIntN(32,t>>BigInt(32))))}writeUint64(e,t){this.writeUint32(e,Number(BigInt.asUintN(32,t))),this.writeUint32(e+4,Number(BigInt.asUintN(32,t>>BigInt(32))))}writeFloat32(e,t){i[0]=t,this.writeInt32(e,r[0])}writeFloat64(e,t){a[0]=t,this.writeInt32(e,r[o?0:1]),this.writeInt32(e+4,r[o?1:0])}getBufferIdentifier(){if(this.bytes_.length=0;n--)e.addInt32(t[n]);return e.endVector()}static startDataVector(e,t){e.startVector(4,t,4)}static endpartState(e){return e.endObject()}static createpartState(t,n,r,i,a){return e.startpartState(t),e.addIndex(t,n),e.addFlag1(t,r),e.addFlag2(t,i),e.addData(t,a),e.endpartState(t)}},d=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsframeDataIndex(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsframeDataIndex(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}states(e,t){let n=this.bb.__offset(this.bb_pos,4);return n?(t||new u).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}statesLength(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__vector_len(this.bb_pos+e):0}static startframeDataIndex(e){e.startObject(1)}static addStates(e,t){e.addFieldOffset(0,t,0)}static createStatesVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startStatesVector(e,t){e.startVector(4,t,4)}static endframeDataIndex(e){return e.endObject()}static createframeDataIndex(t,n){return e.startframeDataIndex(t),e.addStates(t,n),e.endframeDataIndex(t)}},f=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAslabelDataItem(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAslabelDataItem(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}label(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}frameIndex(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}static startlabelDataItem(e){e.startObject(2)}static addLabel(e,t){e.addFieldOffset(0,t,0)}static addFrameIndex(e,t){e.addFieldInt16(1,t,0)}static endlabelDataItem(e){return e.endObject()}static createlabelDataItem(t,n,r){return e.startlabelDataItem(t),e.addLabel(t,n),e.addFrameIndex(t,r),e.endlabelDataItem(t)}},p=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsmeshDataIndices(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsmeshDataIndices(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}indices(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readFloat32(this.bb.__vector(this.bb_pos+t)+e*4):0}indicesLength(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__vector_len(this.bb_pos+e):0}indicesArray(){let e=this.bb.__offset(this.bb_pos,4);return e?new Float32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}static startmeshDataIndices(e){e.startObject(1)}static addIndices(e,t){e.addFieldOffset(0,t,0)}static createIndicesVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addFloat32(t[n]);return e.endVector()}static startIndicesVector(e,t){e.startVector(4,t,4)}static endmeshDataIndices(e){return e.endObject()}static createmeshDataIndices(t,n){return e.startmeshDataIndices(t),e.addIndices(t,n),e.endmeshDataIndices(t)}},m=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsmeshDataUV(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsmeshDataUV(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}uv(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readFloat32(this.bb.__vector(this.bb_pos+t)+e*4):0}uvLength(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__vector_len(this.bb_pos+e):0}uvArray(){let e=this.bb.__offset(this.bb_pos,4);return e?new Float32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}static startmeshDataUV(e){e.startObject(1)}static addUv(e,t){e.addFieldOffset(0,t,0)}static createUvVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addFloat32(t[n]);return e.endVector()}static startUvVector(e,t){e.startVector(4,t,4)}static endmeshDataUV(e){return e.endObject()}static createmeshDataUV(t,n){return e.startmeshDataUV(t),e.addUv(t,n),e.endmeshDataUV(t)}},h=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsuserDataItem(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataItem(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}flags(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):0}arrayIndex(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}dataType(e){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readUint8(this.bb.__vector(this.bb_pos+t)+e):0}dataTypeLength(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__vector_len(this.bb_pos+e):0}dataTypeArray(){let e=this.bb.__offset(this.bb_pos,8);return e?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}data(e,t){let n=this.bb.__offset(this.bb_pos,10);return n?this.bb.__union(t,this.bb.__vector(this.bb_pos+n)+e*4):null}dataLength(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__vector_len(this.bb_pos+e):0}static startuserDataItem(e){e.startObject(4)}static addFlags(e,t){e.addFieldInt16(0,t,0)}static addArrayIndex(e,t){e.addFieldInt16(1,t,0)}static addDataType(e,t){e.addFieldOffset(2,t,0)}static createDataTypeVector(e,t){e.startVector(1,t.length,1);for(let n=t.length-1;n>=0;n--)e.addInt8(t[n]);return e.endVector()}static startDataTypeVector(e,t){e.startVector(1,t,1)}static addData(e,t){e.addFieldOffset(3,t,0)}static createDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startDataVector(e,t){e.startVector(4,t,4)}static enduserDataItem(e){return e.endObject()}static createuserDataItem(t,n,r,i,a){return e.startuserDataItem(t),e.addFlags(t,n),e.addArrayIndex(t,r),e.addDataType(t,i),e.addData(t,a),e.enduserDataItem(t)}},g=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsuserDataPerFrame(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataPerFrame(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}frameIndex(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):0}data(e,t){let n=this.bb.__offset(this.bb_pos,6);return n?(t||new h).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}dataLength(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__vector_len(this.bb_pos+e):0}static startuserDataPerFrame(e){e.startObject(2)}static addFrameIndex(e,t){e.addFieldInt16(0,t,0)}static addData(e,t){e.addFieldOffset(1,t,0)}static createDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startDataVector(e,t){e.startVector(4,t,4)}static enduserDataPerFrame(e){return e.endObject()}static createuserDataPerFrame(t,n,r){return e.startuserDataPerFrame(t),e.addFrameIndex(t,n),e.addData(t,r),e.enduserDataPerFrame(t)}},_=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsAnimationData(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAnimationData(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}defaultData(e,t){let n=this.bb.__offset(this.bb_pos,6);return n?(t||new l).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}defaultDataLength(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__vector_len(this.bb_pos+e):0}frameData(e,t){let n=this.bb.__offset(this.bb_pos,8);return n?(t||new d).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}frameDataLength(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__vector_len(this.bb_pos+e):0}userData(e,t){let n=this.bb.__offset(this.bb_pos,10);return n?(t||new g).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}userDataLength(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__vector_len(this.bb_pos+e):0}labelData(e,t){let n=this.bb.__offset(this.bb_pos,12);return n?(t||new f).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}labelDataLength(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.__vector_len(this.bb_pos+e):0}meshsDataUv(e,t){let n=this.bb.__offset(this.bb_pos,14);return n?(t||new m).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}meshsDataUvLength(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.__vector_len(this.bb_pos+e):0}meshsDataIndices(e,t){let n=this.bb.__offset(this.bb_pos,16);return n?(t||new p).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}meshsDataIndicesLength(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.__vector_len(this.bb_pos+e):0}startFrames(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.readInt16(this.bb_pos+e):0}endFrames(){let e=this.bb.__offset(this.bb_pos,20);return e?this.bb.readInt16(this.bb_pos+e):0}totalFrames(){let e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readInt16(this.bb_pos+e):0}fps(){let e=this.bb.__offset(this.bb_pos,24);return e?this.bb.readInt16(this.bb_pos+e):0}labelNum(){let e=this.bb.__offset(this.bb_pos,26);return e?this.bb.readInt16(this.bb_pos+e):0}canvasSizeW(){let e=this.bb.__offset(this.bb_pos,28);return e?this.bb.readInt16(this.bb_pos+e):0}canvasSizeH(){let e=this.bb.__offset(this.bb_pos,30);return e?this.bb.readInt16(this.bb_pos+e):0}canvasPvotX(){let e=this.bb.__offset(this.bb_pos,32);return e?this.bb.readFloat32(this.bb_pos+e):0}canvasPvotY(){let e=this.bb.__offset(this.bb_pos,34);return e?this.bb.readFloat32(this.bb_pos+e):0}static startAnimationData(e){e.startObject(16)}static addName(e,t){e.addFieldOffset(0,t,0)}static addDefaultData(e,t){e.addFieldOffset(1,t,0)}static createDefaultDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startDefaultDataVector(e,t){e.startVector(4,t,4)}static addFrameData(e,t){e.addFieldOffset(2,t,0)}static createFrameDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startFrameDataVector(e,t){e.startVector(4,t,4)}static addUserData(e,t){e.addFieldOffset(3,t,0)}static createUserDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startUserDataVector(e,t){e.startVector(4,t,4)}static addLabelData(e,t){e.addFieldOffset(4,t,0)}static createLabelDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startLabelDataVector(e,t){e.startVector(4,t,4)}static addMeshsDataUv(e,t){e.addFieldOffset(5,t,0)}static createMeshsDataUvVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startMeshsDataUvVector(e,t){e.startVector(4,t,4)}static addMeshsDataIndices(e,t){e.addFieldOffset(6,t,0)}static createMeshsDataIndicesVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startMeshsDataIndicesVector(e,t){e.startVector(4,t,4)}static addStartFrames(e,t){e.addFieldInt16(7,t,0)}static addEndFrames(e,t){e.addFieldInt16(8,t,0)}static addTotalFrames(e,t){e.addFieldInt16(9,t,0)}static addFps(e,t){e.addFieldInt16(10,t,0)}static addLabelNum(e,t){e.addFieldInt16(11,t,0)}static addCanvasSizeW(e,t){e.addFieldInt16(12,t,0)}static addCanvasSizeH(e,t){e.addFieldInt16(13,t,0)}static addCanvasPvotX(e,t){e.addFieldFloat32(14,t,0)}static addCanvasPvotY(e,t){e.addFieldFloat32(15,t,0)}static endAnimationData(e){return e.endObject()}static createAnimationData(t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_){return e.startAnimationData(t),e.addName(t,n),e.addDefaultData(t,r),e.addFrameData(t,i),e.addUserData(t,a),e.addLabelData(t,o),e.addMeshsDataUv(t,s),e.addMeshsDataIndices(t,c),e.addStartFrames(t,l),e.addEndFrames(t,u),e.addTotalFrames(t,d),e.addFps(t,f),e.addLabelNum(t,p),e.addCanvasSizeW(t,m),e.addCanvasSizeH(t,h),e.addCanvasPvotX(t,g),e.addCanvasPvotY(t,_),e.endAnimationData(t)}};let v=function(e){return e[e.Invalid=-1]=`Invalid`,e[e.Nulltype=0]=`Nulltype`,e[e.Normal=1]=`Normal`,e[e.Text=2]=`Text`,e[e.Instance=3]=`Instance`,e[e.Armature=4]=`Armature`,e[e.Effect=5]=`Effect`,e[e.Mesh=6]=`Mesh`,e[e.Movenode=7]=`Movenode`,e[e.Constraint=8]=`Constraint`,e[e.Mask=9]=`Mask`,e[e.Joint=10]=`Joint`,e[e.Bonepoint=11]=`Bonepoint`,e}({});var y=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsPartData(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsPartData(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}index(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}parentIndex(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}type(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt8(this.bb_pos+e):v.Nulltype}boundsType(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}alphaBlendType(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.readInt16(this.bb_pos+e):0}refname(e){let t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__string(this.bb_pos+t,e):null}effectfilename(e){let t=this.bb.__offset(this.bb_pos,18);return t?this.bb.__string(this.bb_pos+t,e):null}colorLabel(e){let t=this.bb.__offset(this.bb_pos,20);return t?this.bb.__string(this.bb_pos+t,e):null}maskInfluence(){let e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readInt16(this.bb_pos+e):0}static startPartData(e){e.startObject(10)}static addName(e,t){e.addFieldOffset(0,t,0)}static addIndex(e,t){e.addFieldInt16(1,t,0)}static addParentIndex(e,t){e.addFieldInt16(2,t,0)}static addType(e,t){e.addFieldInt8(3,t,v.Nulltype)}static addBoundsType(e,t){e.addFieldInt16(4,t,0)}static addAlphaBlendType(e,t){e.addFieldInt16(5,t,0)}static addRefname(e,t){e.addFieldOffset(6,t,0)}static addEffectfilename(e,t){e.addFieldOffset(7,t,0)}static addColorLabel(e,t){e.addFieldOffset(8,t,0)}static addMaskInfluence(e,t){e.addFieldInt16(9,t,0)}static endPartData(e){return e.endObject()}static createPartData(t,n,r,i,a,o,s,c,l,u,d){return e.startPartData(t),e.addName(t,n),e.addIndex(t,r),e.addParentIndex(t,i),e.addType(t,a),e.addBoundsType(t,o),e.addAlphaBlendType(t,s),e.addRefname(t,c),e.addEffectfilename(t,l),e.addColorLabel(t,u),e.addMaskInfluence(t,d),e.endPartData(t)}},b=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsAnimePackData(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAnimePackData(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}parts(e,t){let n=this.bb.__offset(this.bb_pos,6);return n?(t||new y).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}partsLength(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__vector_len(this.bb_pos+e):0}animations(e,t){let n=this.bb.__offset(this.bb_pos,8);return n?(t||new _).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}animationsLength(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__vector_len(this.bb_pos+e):0}static startAnimePackData(e){e.startObject(3)}static addName(e,t){e.addFieldOffset(0,t,0)}static addParts(e,t){e.addFieldOffset(1,t,0)}static createPartsVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startPartsVector(e,t){e.startVector(4,t,4)}static addAnimations(e,t){e.addFieldOffset(2,t,0)}static createAnimationsVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startAnimationsVector(e,t){e.startVector(4,t,4)}static endAnimePackData(e){return e.endObject()}static createAnimePackData(t,n,r,i){return e.startAnimePackData(t),e.addName(t,n),e.addParts(t,r),e.addAnimations(t,i),e.endAnimePackData(t)}},x=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsCellMap(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsCellMap(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}imagePath(e){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__string(this.bb_pos+t,e):null}index(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}wrapmode(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt16(this.bb_pos+e):0}filtermode(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}static startCellMap(e){e.startObject(5)}static addName(e,t){e.addFieldOffset(0,t,0)}static addImagePath(e,t){e.addFieldOffset(1,t,0)}static addIndex(e,t){e.addFieldInt16(2,t,0)}static addWrapmode(e,t){e.addFieldInt16(3,t,0)}static addFiltermode(e,t){e.addFieldInt16(4,t,0)}static endCellMap(e){return e.endObject()}static createCellMap(t,n,r,i,a,o){return e.startCellMap(t),e.addName(t,n),e.addImagePath(t,r),e.addIndex(t,i),e.addWrapmode(t,a),e.addFiltermode(t,o),e.endCellMap(t)}},S=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsCell(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsCell(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}cellMap(e){let t=this.bb.__offset(this.bb_pos,6);return t?(e||new x).__init(this.bb.__indirect(this.bb_pos+t),this.bb):null}indexInCellMap(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}x(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt16(this.bb_pos+e):0}y(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}width(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.readInt16(this.bb_pos+e):0}height(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.readInt16(this.bb_pos+e):0}pivotX(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.readFloat32(this.bb_pos+e):0}pivotY(){let e=this.bb.__offset(this.bb_pos,20);return e?this.bb.readFloat32(this.bb_pos+e):0}u1(){let e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readFloat32(this.bb_pos+e):0}v1(){let e=this.bb.__offset(this.bb_pos,24);return e?this.bb.readFloat32(this.bb_pos+e):0}u2(){let e=this.bb.__offset(this.bb_pos,26);return e?this.bb.readFloat32(this.bb_pos+e):0}v2(){let e=this.bb.__offset(this.bb_pos,28);return e?this.bb.readFloat32(this.bb_pos+e):0}static startCell(e){e.startObject(13)}static addName(e,t){e.addFieldOffset(0,t,0)}static addCellMap(e,t){e.addFieldOffset(1,t,0)}static addIndexInCellMap(e,t){e.addFieldInt16(2,t,0)}static addX(e,t){e.addFieldInt16(3,t,0)}static addY(e,t){e.addFieldInt16(4,t,0)}static addWidth(e,t){e.addFieldInt16(5,t,0)}static addHeight(e,t){e.addFieldInt16(6,t,0)}static addPivotX(e,t){e.addFieldFloat32(7,t,0)}static addPivotY(e,t){e.addFieldFloat32(8,t,0)}static addU1(e,t){e.addFieldFloat32(9,t,0)}static addV1(e,t){e.addFieldFloat32(10,t,0)}static addU2(e,t){e.addFieldFloat32(11,t,0)}static addV2(e,t){e.addFieldFloat32(12,t,0)}static endCell(e){return e.endObject()}},C=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsEffectNode(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsEffectNode(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}arrayIndex(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):0}parentIndex(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}type(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}cellIndex(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt16(this.bb_pos+e):0}blendType(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}numBehavior(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.readInt16(this.bb_pos+e):0}behaviorType(e){let t=this.bb.__offset(this.bb_pos,16);return t?this.bb.readUint8(this.bb.__vector(this.bb_pos+t)+e):0}behaviorTypeLength(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.__vector_len(this.bb_pos+e):0}behaviorTypeArray(){let e=this.bb.__offset(this.bb_pos,16);return e?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}behavior(e,t){let n=this.bb.__offset(this.bb_pos,18);return n?this.bb.__union(t,this.bb.__vector(this.bb_pos+n)+e*4):null}behaviorLength(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.__vector_len(this.bb_pos+e):0}static startEffectNode(e){e.startObject(8)}static addArrayIndex(e,t){e.addFieldInt16(0,t,0)}static addParentIndex(e,t){e.addFieldInt16(1,t,0)}static addType(e,t){e.addFieldInt16(2,t,0)}static addCellIndex(e,t){e.addFieldInt16(3,t,0)}static addBlendType(e,t){e.addFieldInt16(4,t,0)}static addNumBehavior(e,t){e.addFieldInt16(5,t,0)}static addBehaviorType(e,t){e.addFieldOffset(6,t,0)}static createBehaviorTypeVector(e,t){e.startVector(1,t.length,1);for(let n=t.length-1;n>=0;n--)e.addInt8(t[n]);return e.endVector()}static startBehaviorTypeVector(e,t){e.startVector(1,t,1)}static addBehavior(e,t){e.addFieldOffset(7,t,0)}static createBehaviorVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startBehaviorVector(e,t){e.startVector(4,t,4)}static endEffectNode(e){return e.endObject()}static createEffectNode(t,n,r,i,a,o,s,c,l){return e.startEffectNode(t),e.addArrayIndex(t,n),e.addParentIndex(t,r),e.addType(t,i),e.addCellIndex(t,a),e.addBlendType(t,o),e.addNumBehavior(t,s),e.addBehaviorType(t,c),e.addBehavior(t,l),e.endEffectNode(t)}},w=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsEffectFile(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsEffectFile(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}fps(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}isLockRandSeed(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}lockRandSeed(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt16(this.bb_pos+e):0}layoutScaleX(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}layoutScaleY(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.readInt16(this.bb_pos+e):0}numNodeList(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.readInt16(this.bb_pos+e):0}effectNode(e,t){let n=this.bb.__offset(this.bb_pos,18);return n?(t||new C).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}effectNodeLength(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.__vector_len(this.bb_pos+e):0}static startEffectFile(e){e.startObject(8)}static addName(e,t){e.addFieldOffset(0,t,0)}static addFps(e,t){e.addFieldInt16(1,t,0)}static addIsLockRandSeed(e,t){e.addFieldInt16(2,t,0)}static addLockRandSeed(e,t){e.addFieldInt16(3,t,0)}static addLayoutScaleX(e,t){e.addFieldInt16(4,t,0)}static addLayoutScaleY(e,t){e.addFieldInt16(5,t,0)}static addNumNodeList(e,t){e.addFieldInt16(6,t,0)}static addEffectNode(e,t){e.addFieldOffset(7,t,0)}static createEffectNodeVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startEffectNodeVector(e,t){e.startVector(4,t,4)}static endEffectFile(e){return e.endObject()}static createEffectFile(t,n,r,i,a,o,s,c,l){return e.startEffectFile(t),e.addName(t,n),e.addFps(t,r),e.addIsLockRandSeed(t,i),e.addLockRandSeed(t,a),e.addLayoutScaleX(t,o),e.addLayoutScaleY(t,s),e.addNumNodeList(t,c),e.addEffectNode(t,l),e.endEffectFile(t)}};let T=function(e){return e[e.INVISIBLE=1]=`INVISIBLE`,e[e.FLIP_H=2]=`FLIP_H`,e[e.FLIP_V=4]=`FLIP_V`,e[e.CELL_INDEX=8]=`CELL_INDEX`,e[e.POSITION_X=16]=`POSITION_X`,e[e.POSITION_Y=32]=`POSITION_Y`,e[e.POSITION_Z=64]=`POSITION_Z`,e[e.PIVOT_X=128]=`PIVOT_X`,e[e.PIVOT_Y=256]=`PIVOT_Y`,e[e.ROTATIONX=512]=`ROTATIONX`,e[e.ROTATIONY=1024]=`ROTATIONY`,e[e.ROTATIONZ=2048]=`ROTATIONZ`,e[e.SCALE_X=4096]=`SCALE_X`,e[e.SCALE_Y=8192]=`SCALE_Y`,e[e.LOCALSCALE_X=16384]=`LOCALSCALE_X`,e[e.LOCALSCALE_Y=32768]=`LOCALSCALE_Y`,e[e.OPACITY=65536]=`OPACITY`,e[e.LOCALOPACITY=131072]=`LOCALOPACITY`,e[e.PARTS_COLOR=262144]=`PARTS_COLOR`,e[e.VERTEX_TRANSFORM=524288]=`VERTEX_TRANSFORM`,e[e.SIZE_X=1048576]=`SIZE_X`,e[e.SIZE_Y=2097152]=`SIZE_Y`,e[e.U_MOVE=4194304]=`U_MOVE`,e[e.V_MOVE=8388608]=`V_MOVE`,e[e.UV_ROTATION=16777216]=`UV_ROTATION`,e[e.U_SCALE=33554432]=`U_SCALE`,e[e.V_SCALE=67108864]=`V_SCALE`,e[e.BOUNDINGRADIUS=134217728]=`BOUNDINGRADIUS`,e[e.MASK=268435456]=`MASK`,e[e.PRIORITY=536870912]=`PRIORITY`,e[e.INSTANCE_KEYFRAME=1073741824]=`INSTANCE_KEYFRAME`,e[e.EFFECT_KEYFRAME=2147483648]=`EFFECT_KEYFRAME`,e}({}),E=function(e){return e[e.MESHDATA=1]=`MESHDATA`,e}({});var D=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsProjectData(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsProjectData(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static bufferHasIdentifier(e){return e.__has_identifier(`SSFB`)}dataId(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readUint32(this.bb_pos+e):0}version(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readUint32(this.bb_pos+e):0}flags(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readUint32(this.bb_pos+e):0}imageBaseDir(e){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__string(this.bb_pos+t,e):null}cells(e,t){let n=this.bb.__offset(this.bb_pos,12);return n?(t||new S).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}cellsLength(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.__vector_len(this.bb_pos+e):0}animePacks(e,t){let n=this.bb.__offset(this.bb_pos,14);return n?(t||new b).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}animePacksLength(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.__vector_len(this.bb_pos+e):0}effectFileList(e,t){let n=this.bb.__offset(this.bb_pos,16);return n?(t||new w).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}effectFileListLength(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.__vector_len(this.bb_pos+e):0}numCells(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.readInt16(this.bb_pos+e):0}numAnimePacks(){let e=this.bb.__offset(this.bb_pos,20);return e?this.bb.readInt16(this.bb_pos+e):0}numEffectFileList(){let e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readInt16(this.bb_pos+e):0}static startProjectData(e){e.startObject(10)}static addDataId(e,t){e.addFieldInt32(0,t,0)}static addVersion(e,t){e.addFieldInt32(1,t,0)}static addFlags(e,t){e.addFieldInt32(2,t,0)}static addImageBaseDir(e,t){e.addFieldOffset(3,t,0)}static addCells(e,t){e.addFieldOffset(4,t,0)}static createCellsVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startCellsVector(e,t){e.startVector(4,t,4)}static addAnimePacks(e,t){e.addFieldOffset(5,t,0)}static createAnimePacksVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startAnimePacksVector(e,t){e.startVector(4,t,4)}static addEffectFileList(e,t){e.addFieldOffset(6,t,0)}static createEffectFileListVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startEffectFileListVector(e,t){e.startVector(4,t,4)}static addNumCells(e,t){e.addFieldInt16(7,t,0)}static addNumAnimePacks(e,t){e.addFieldInt16(8,t,0)}static addNumEffectFileList(e,t){e.addFieldInt16(9,t,0)}static endProjectData(e){return e.endObject()}static finishProjectDataBuffer(e,t){e.finish(t,`SSFB`)}static finishSizePrefixedProjectDataBuffer(e,t){e.finish(t,`SSFB`,!0)}static createProjectData(t,n,r,i,a,o,s,c,l,u,d){return e.startProjectData(t),e.addDataId(t,n),e.addVersion(t,r),e.addFlags(t,i),e.addImageBaseDir(t,a),e.addCells(t,o),e.addAnimePacks(t,s),e.addEffectFileList(t,c),e.addNumCells(t,l),e.addNumAnimePacks(t,u),e.addNumEffectFileList(t,d),e.endProjectData(t)}},O=class{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}integer(){return this.bb.readInt32(this.bb_pos)}static sizeOf(){return 4}static createuserDataInteger(e,t){return e.prep(4,4),e.writeInt32(t),e.offset()}},k=class{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}x(){return this.bb.readInt32(this.bb_pos)}y(){return this.bb.readInt32(this.bb_pos+4)}static sizeOf(){return 8}static createuserDataPoint(e,t,n){return e.prep(4,8),e.writeInt32(n),e.writeInt32(t),e.offset()}},A=class{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}x(){return this.bb.readInt32(this.bb_pos)}y(){return this.bb.readInt32(this.bb_pos+4)}w(){return this.bb.readInt32(this.bb_pos+8)}h(){return this.bb.readInt32(this.bb_pos+12)}static sizeOf(){return 16}static createuserDataRect(e,t,n,r,i){return e.prep(4,16),e.writeInt32(i),e.writeInt32(r),e.writeInt32(n),e.writeInt32(t),e.offset()}},j=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsuserDataString(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataString(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}length(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt32(this.bb_pos+e):0}data(e){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__string(this.bb_pos+t,e):null}static startuserDataString(e){e.startObject(2)}static addLength(e,t){e.addFieldInt32(0,t,0)}static addData(e,t){e.addFieldOffset(1,t,0)}static enduserDataString(e){return e.endObject()}static createuserDataString(t,n,r){return e.startuserDataString(t),e.addLength(t,n),e.addData(t,r),e.enduserDataString(t)}},M=class{static getProjectData(e){let t=new c(e);return D.getRootAsProjectData(t)}},N=class{static getProjectData(e){return M.getProjectData(e)}},P=class{get fbObj(){return this._fbObj}get animePackName(){return this.curAnimePackName}get animeName(){return this.curAnimeName}get animePackIdx(){return this._animePackIdx}get animePackData(){return this.curAnimePackData}get animationData(){return this.curAnimation}get parentIndex(){return this._parentIndex}get prio2index(){return this._prio2index}constructor(e,t=null,n=null){this.curAnimePackName=null,this.curAnimeName=null,this.curAnimation=null,this.curAnimePackData=null,this._animePackIdx=-1,this._parentIndex=[],this._prio2index=[],this.userData=[],this.frameDataCache=null,this.currentCachedFrameNumber=-1,this.defaultFrameMap=[],this._uint32=new Uint32Array(1),this._float32=new Float32Array(this._uint32.buffer),Object.prototype.hasOwnProperty.call(e,`bb`)?this._fbObj=e:this._fbObj=N.getProjectData(e),t!==null&&n!==null&&this.Setup(t,n)}Setup(e,t){this.clearCaches();let n=this._fbObj.animePacksLength(),r=!1;for(let i=0;i>>0,s.colorBlendType===1&&(s.tint=s.colorArgb32&16777215)}}if(o&E.MESHDATA){let e=this.curAnimation.meshsDataUv(i);s.meshIsBind=e.uv(0),s.meshNum=e.uv(1);let n=new Float32Array(s.meshNum*3);for(let e=0;e=0&&(e=this.InheritOpacity(e,this._parentIndex[t],n)),e}TransformVertsLocal(e,t,n){let r=this.GetFrameData(n)[t],i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i);for(let t=0;t=0&&(e=this.TransformVerts(e,this._parentIndex[t],n)),e}TransformMeshVertsLocal(e,t,n){let r=this.GetFrameData(n)[t],i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i);for(let t=0;t=0&&(e=this.TransformVerts(e,this._parentIndex[t],n)),e}TransformPositionLocal(e,t,n){let r=this.GetFrameData(n)[t];e[4]+=-r.rotationZ;let i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i),s=e[0]*r.scaleX*r.localscaleX,c=e[1]*r.scaleY*r.localscaleY;return e[2]*=r.scaleX*r.localscaleX,e[3]*=r.scaleY*r.localscaleY,e[0]=a*s-o*c+r.positionX,e[1]=o*s+a*c-r.positionY,this._parentIndex[t]>=0&&(e=this.TransformPosition(e,this._parentIndex[t],n)),e}static CoordinateGetDiagonalIntersection(e,t,n,r,i,a,o,s,c,l,u){let d=(s-a)*(o-n)-(o-i)*(s-r),f=(c-n)*(s-r)-(l-r)*(o-n),p=(c-n)*(s-a)-(l-r)*(o-i);if(p<=0&&p>=0)return u;let m=d/p,h=f/p;return 0<=m&&1>=m&&0<=h&&1>=h&&(e=n+m*(c-n),t=r+m*(l-r)),u[0]=e,u[1]=t,u}TransformVerts(e,t,n){let r=this.GetFrameData(n)[t],i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i);for(let t=0;t=0&&(e=this.TransformVerts(e,this._parentIndex[t],n)),e}TransformPosition(e,t,n){let r=this.GetFrameData(n)[t];e[4]+=-r.rotationZ;let i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i),s=e[0]*r.scaleX,c=e[1]*r.scaleY;return e[2]*=r.scaleX,e[3]*=r.scaleY,e[0]=a*s-o*c+r.positionX,e[1]=o*s+a*c-r.positionY,this._parentIndex[t]>=0&&(e=this.TransformPosition(e,this._parentIndex[t],n)),e}static GetVerts(e,t,n){let r=t.size_X/2,i=t.size_Y/2,a=t.size_X*-(t.pivotX+e.pivotX()),o=t.size_Y*(t.pivotY+e.pivotY());return n.set([a,o,a-r,o-i,a+r,o-i,a-r,o+i,a+r,o+i]),n}static GetMeshVerts(e,t,n){for(let e=0;e{r!==null&&r(null)}).catch(e=>{r!==null&&r(e)})}unload(e,n,r){t.Assets.unloadBundle(e).then(()=>{r!==null&&r(null)}).catch(e=>{r!==null&&r(e)})}texture(e){return t.Assets.get(e)}},I=class{constructor(){this.loader=new F}load(e,t,n){return this.loader.load(e,t,n)}unload(e,t,n=null){return this.loader.unload(e,t,n)}texture(e){return this.loader.texture(e)}};let L=function(e){return e[e.NOT_READY=0]=`NOT_READY`,e[e.READY=1]=`READY`,e}({});var R=class{getBundle(){return this.ssfbFile}getTexture(e){return this.resourceLoader.texture(e)}constructor(e,t,n,r){if(this.sspjMap={},this.resourceLoader=new I,typeof e==`string`&&n===void 0){let n=e;this.ssfbPath=n;let r=n.lastIndexOf(`/`);this.rootPath=n.substring(0,r)+`/`,this.ssfbFile=n.substring(r+1),this.onComplete=t===void 0?null:t,this.status=L.NOT_READY,this.LoadFlatBuffersProject()}else if(typeof t==`object`&&t.constructor===Uint8Array){this.ssfbPath=null,this.rootPath=null,this.ssfbFile=e;let i=t,a=n;this.onComplete=r===void 0?null:r,this.load(i,a)}}dispose(e=null){this.resourceLoader.unload(this.getBundle(),this.sspjMap,t=>{e!==null&&e()})}LoadFlatBuffersProject(){let e=this;fetch(this.ssfbPath,{method:`get`}).then(e=>e.ok?Promise.resolve(e.arrayBuffer()):Promise.reject(Error(e.statusText))).then(t=>{e.fbObj=N.getProjectData(new Uint8Array(t)),e.LoadCellResources()}).catch(e=>{this.onComplete!==null&&this.onComplete(null,e)})}LoadCellResources(){let e=[];this.sspjMap={};for(let t=0;t{e===null?(t.status=L.READY,t.onComplete!==null&&t.onComplete(this,null)):this.onComplete!==null&&this.onComplete(null,e)})}load(e,t){this.fbObj=N.getProjectData(e);let n={};for(let e in t){let r=t[e],i=``,a=r.byteLength;for(let e=0;e{e===null?(r.status=L.READY,r.onComplete!==null&&r.onComplete(this,null)):this.onComplete!==null&&this.onComplete(null,e)})}},z=class{constructor(){this.refStartframe=0,this.refEndframe=0,this.refSpeed=1,this.refloopNum=0,this.infinity=!1,this.reverse=!1,this.pingpong=!1,this.independent=!1}};return e.SS6Player=class e extends t.Container{get startFrame(){return this._startFrame}get endFrame(){return this._endFrame}get totalFrame(){return this.playerLib.animationData.totalFrames()}get fps(){return this.playerLib.animationData.fps()}get frameNo(){return Math.floor(this._currentFrame)}set loop(e){this._loops=e}get loop(){return this._loops}get isPlaying(){return this._isPlaying}get isPausing(){return this._isPausing}get animePackName(){return this.playerLib.animePackName}get animeName(){return this.playerLib.animeName}constructor(e,n=null,r=null){super(),this.liveFrame=[],this.colorMatrixFilterCache=[],this.parentAlpha=1,this.prevCellID=[],this.prevPartObject=[],this.changeCellID=[],this.changeVisible=[],this.changeTint=[],this.substituteOverWrite=[],this.substituteKeyParam=[],this.alphaBlendType=[],this.defaultColorFilter=new t.ColorMatrixFilter,this._instancePos=new Float32Array(5),this._CoordinateGetDiagonalIntersectionVec2=new Float32Array(2),this.isRenderGroup=!0,this.ss6project=e,this.playerLib=new P(e.fbObj,n,r),this.parentAlpha=1,n!==null&&r!==null&&this.Setup(n,r),this.on(`added`,(...e)=>{t.Ticker.shared.add(this.Update,this)},this),this.on(`removed`,(...e)=>{t.Ticker.shared.remove(this.Update,this)},this)}Setup(e,t){this.playerLib.Setup(e,t),this.clearCaches();let n=this.playerLib.animePackData,r=n.partsLength();this.prevCellID=Array(r),this.prevPartObject=Array(r),this.changeCellID=Array(r),this.changeVisible=Array(r),this.changeTint=Array(r),this.substituteOverWrite=Array(r),this.substituteKeyParam=Array(r);for(let e=0;e=this.updateInterval){let e=!1,n=this.nextFrameTime/this.updateInterval;this.nextFrameTime-=this.updateInterval*n;let r=this.skipEnabled?n*this.playDirection:this.playDirection,i=this._currentFrame+r,a=Math.floor(i),o=i-a,s=Math.floor(this._currentFrame);if(this.playDirection>=1)for(let n=a-s;n;n--){let n=s+1;if(n>this._endFrame)if(this._loops===-1)n=this._startFrame;else if(this._loops--,e=!0,this._loops===0){this._isPlaying=!1,n=t?this._startFrame:this._endFrame;break}else n=this._startFrame;s=n,this._isPlaying&&this.playerLib.HaveUserData(s)&&this.onUserDataCallback!==null&&this.onUserDataCallback(this.playerLib.GetUserData(s))}if(this.playDirection<=-1)for(let n=s-a;n;n--){let n=s-1;if(n0?1:-1,this.updateInterval=1e3/(this.playerLib.animationData.fps()*e*this.playDirection),this.skipEnabled=t)}SetAnimationSection(e=-1,t=-1,n=-1){e>=0&&e=0&&t0?this._loops=n:this._loops=-1,this._currentFrame=this.playDirection>0?this._startFrame:this._endFrame}Play(e){this._isPlaying=!0,this._isPausing=!1;let t=this.playDirection>0?this._startFrame:this._endFrame;e&&typeof e==`number`&&(t=e),this._currentFrame=t,this.resetLiveFrame();let n=Math.floor(this._currentFrame);this.SetFrameAnimation(n),this.playerLib.HaveUserData(n)&&this.onUserDataCallback!==null&&this.onUserDataCallback(this.playerLib.GetUserData(n))}Pause(){this._isPausing=!0}Resume(){this._isPausing=!1}Stop(){this._isPlaying=!1}SetFrame(e){this._currentFrame=e}NextFrame(){let e=Math.floor(this._currentFrame);e!==this.endFrame&&this.SetFrame(e+1)}PrevFrame(){let e=Math.floor(this._currentFrame);e!==0&&this.SetFrame(e-1)}SetAlpha(e){this.parentAlpha=e}ThrowError(e){}SetUserDataCalback(e){this.onUserDataCallback=e}SetPlayEndCallback(e){this.playEndCallback=e}getCellIndex(e,t){let n=-1;if(e!==``&&t!==``){let r=this.playerLib.fbObj,i=this.playerLib.fbObj.numCells();for(let a=0;a>>24)/255,s=((r&16711680)>>>16)/255,c=((r&65280)>>>8)/255,l=(r&255)/255;if(e===0){let e=1-n;a.matrix=[e,0,0,0,s*n,0,e,0,0,c*n,0,0,e,0,l*n,0,0,0,1,0]}else e===1?a.matrix=[s,0,0,0,0,0,c,0,0,0,0,0,l,0,0,0,0,0,o,0]:e===2?a.matrix=[1,0,0,0,s,0,1,0,0,c,0,0,1,0,l,0,0,0,o,0]:e===3&&(a.matrix=[1,0,0,0,-s,0,1,0,0,-c,0,0,1,0,-l,0,0,0,o,0]);return this.colorMatrixFilterCache[i]=a,a}SetFrameAnimation(e,n=0){let r=this.playerLib.GetFrameData(e);this.removeChildren();let i=r.length;for(let a=0;a=0&&this.prevCellID[i]!==c&&(l?.destroy(),l=this.MakeCellMesh(c),l.label=u.name());break;case v.Mesh:c>=0&&this.prevCellID[i]!==c&&(l?.destroy(),l=this.MakeMeshCellMesh(i,c,s),l.label=u.name());break;case v.Nulltype:case v.Joint:this.prevCellID[i]!==c&&(l?.destroy(),l=new t.Container,l.label=u.name());break;default:c>=0&&this.prevCellID[i]!==c&&(l?.destroy(),l=this.MakeCellMesh(c),l.label=u.name());break}if(l!=null)switch(this.prevCellID[i]=c,this.prevPartObject[i]=l,d){case v.Instance:{let t=l;this._instancePos[0]=0,this._instancePos[1]=0,this._instancePos[2]=1,this._instancePos[3]=1,this._instancePos[4]=0,this._instancePos=this.playerLib.TransformPositionLocal(this._instancePos,o.index,e),t.rotation=this._instancePos[4]*Math.PI/180,t.position.set(this._instancePos[0],this._instancePos[1]),t.scale.set(this._instancePos[2],this._instancePos[3]);let r=o.opacity/255;o.localopacity<255&&(r=o.localopacity/255),t.SetAlpha(r*this.parentAlpha),t.visible=!o.f_hide;let i=o.instanceValue_curKeyframe,s=o.instanceValue_startFrame,c=o.instanceValue_endFrame,u=o.instanceValue_speed,d=o.instanceValue_loopNum,m=!1,h=!1,g=!1,_=!1,v=o.instanceValue_loopflag;v&1&&(m=!0),v&2&&(h=!0),v&4&&(g=!0),v&8&&(_=!0),f&&(s=p.refStartframe,c=p.refEndframe,u=p.refSpeed,d=p.refloopNum,m=p.infinity,h=p.reverse,g=p.pingpong,_=p.independent),(t._startFrame!==s||t._endFrame!==c)&&t.SetAnimationSection(s,c);let y=e;_===!0&&(this.liveFrame[a]+=n,y=Math.floor(this.liveFrame[a]));let b=i,x=Math.floor((y-b)*u);if(x<0||b>y)continue;let S=c-s+1;if(S<=0)continue;let C=Math.floor(x/S),w=d;g&&(w*=2),m||C>=w&&(x=S-1,C=w-1);let T=Math.floor(x%S),E=0;g&&C%2==1&&(h=!h),this.playDirection<=-1&&(h=!h),E=h?c-T:T+s,t.SetFrame(Math.floor(E)),this.addChild(t);break}case v.Normal:case v.Mesh:case v.Joint:case v.Mask:{let t=l,n=t.geometry.attributes.aPosition.buffer,r=n.data,a=this.playerLib.fbObj.cells(c),s;if(d===v.Mesh?s=o.meshIsBind===0?this.playerLib.TransformMeshVertsLocal(P.GetMeshVerts(a,o,r),o.index,e):P.GetMeshVerts(a,o,r):(s=d===v.Joint?new Float32Array(10):r,s=this.playerLib.TransformVertsLocal(P.GetVerts(a,o,s),o.index,e)),o.flag1&T.VERTEX_TRANSFORM){let e=s[6],t=s[7],n=s[2],r=s[3],i=s[8],a=s[9],o=s[4],c=s[5],l=(e+i)*.5,u=(t+a)*.5,d=(e+n)*.5,f=(t+r)*.5,p=(n+o)*.5,m=(r+c)*.5,h=(i+o)*.5,g=(a+c)*.5,_=P.CoordinateGetDiagonalIntersection(s[0],s[1],l,u,h,g,d,f,p,m,this._CoordinateGetDiagonalIntersectionVec2);s[0]=_[0],s[1]=_[1]}let u=s[0],f=s[1];for(let e=0;e>>24)/255;t.alpha*=e}let m=this.alphaBlendType[i];(m===`multiply`||m===`screen`)&&(t.alpha=1),d!==v.Mask&&this.addChild(t);break}case v.Nulltype:{let t=l;t.alpha=this.playerLib.InheritOpacity(1,o.index,e)*o.localopacity/255;let n=this.playerLib.TransformVerts(P.GetDummyVerts(),o.index,e),r=n[0],i=n[1];t.position.set(r,i);let a=Math.atan2(n[5]-n[3],n[4]-n[2]),s=Math.atan2(n[7]-n[3],n[6]-n[2]);t.rotation=a,t.skew.x=s-a-Math.PI/2;break}}}}ChangeInstanceAnime(t,n,r,i,a=null){let o=!1;if(this.animePackName!==null&&this.animeName!==null){let s=this.playerLib.animePackData,c=s.partsLength();for(let l=0;l0){let o=this.playerLib.fbObj.cells(n),s=this.playerLib.fbObj.cells(r),c=n===r?0:(o.u1()+o.u2())/2-(s.u1()+s.u2())/2,l=n===r?0:(o.v1()+o.v2())/2-(s.v1()+s.v2())/2,u=new Float32Array(a-2),d=i.uv(1);for(let e=2;e> 24; + } + readUint8(offset) { + return this.bytes_[offset]; + } + readInt16(offset) { + return this.readUint16(offset) << 16 >> 16; + } + readUint16(offset) { + return this.bytes_[offset] | this.bytes_[offset + 1] << 8; + } + readInt32(offset) { + return this.bytes_[offset] | this.bytes_[offset + 1] << 8 | this.bytes_[offset + 2] << 16 | this.bytes_[offset + 3] << 24; + } + readUint32(offset) { + return this.readInt32(offset) >>> 0; + } + readInt64(offset) { + return BigInt.asIntN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); + } + readUint64(offset) { + return BigInt.asUintN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); + } + readFloat32(offset) { + int32[0] = this.readInt32(offset); + return float32[0]; + } + readFloat64(offset) { + int32[isLittleEndian ? 0 : 1] = this.readInt32(offset); + int32[isLittleEndian ? 1 : 0] = this.readInt32(offset + 4); + return float64[0]; + } + writeInt8(offset, value) { + this.bytes_[offset] = value; + } + writeUint8(offset, value) { + this.bytes_[offset] = value; + } + writeInt16(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + } + writeUint16(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + } + writeInt32(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + this.bytes_[offset + 2] = value >> 16; + this.bytes_[offset + 3] = value >> 24; + } + writeUint32(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + this.bytes_[offset + 2] = value >> 16; + this.bytes_[offset + 3] = value >> 24; + } + writeInt64(offset, value) { + this.writeInt32(offset, Number(BigInt.asIntN(32, value))); + this.writeInt32(offset + 4, Number(BigInt.asIntN(32, value >> BigInt(32)))); + } + writeUint64(offset, value) { + this.writeUint32(offset, Number(BigInt.asUintN(32, value))); + this.writeUint32(offset + 4, Number(BigInt.asUintN(32, value >> BigInt(32)))); + } + writeFloat32(offset, value) { + float32[0] = value; + this.writeInt32(offset, int32[0]); + } + writeFloat64(offset, value) { + float64[0] = value; + this.writeInt32(offset, int32[isLittleEndian ? 0 : 1]); + this.writeInt32(offset + 4, int32[isLittleEndian ? 1 : 0]); + } + /** + * Return the file identifier. Behavior is undefined for FlatBuffers whose + * schema does not include a file_identifier (likely points at padding or the + * start of a the root vtable). + */ + getBufferIdentifier() { + if (this.bytes_.length < this.position_ + 4 + 4) throw new Error("FlatBuffers: ByteBuffer is too short to contain an identifier."); + let result = ""; + for (let i = 0; i < 4; i++) result += String.fromCharCode(this.readInt8(this.position_ + 4 + i)); + return result; + } + /** + * Look up a field in the vtable, return an offset into the object, or 0 if the + * field is not present. + */ + __offset(bb_pos, vtable_offset) { + const vtable = bb_pos - this.readInt32(bb_pos); + return vtable_offset < this.readInt16(vtable) ? this.readInt16(vtable + vtable_offset) : 0; + } + /** + * Initialize any Table-derived type to point to the union at the given offset. + */ + __union(t, offset) { + t.bb_pos = offset + this.readInt32(offset); + t.bb = this; + return t; + } + /** + * Create a JavaScript string from UTF-8 data stored inside the FlatBuffer. + * This allocates a new string and converts to wide chars upon each access. + * + * To avoid the conversion to string, pass Encoding.UTF8_BYTES as the + * "optionalEncoding" argument. This is useful for avoiding conversion when + * the data will just be packaged back up in another FlatBuffer later on. + * + * @param offset + * @param opt_encoding Defaults to UTF16_STRING + */ + __string(offset, opt_encoding) { + offset += this.readInt32(offset); + const length = this.readInt32(offset); + offset += 4; + const utf8bytes = this.bytes_.subarray(offset, offset + length); + if (opt_encoding === Encoding.UTF8_BYTES) return utf8bytes; + else return this.text_decoder_.decode(utf8bytes); + } + /** + * Handle unions that can contain string as its member, if a Table-derived type then initialize it, + * if a string then return a new one + * + * WARNING: strings are immutable in JS so we can't change the string that the user gave us, this + * makes the behaviour of __union_with_string different compared to __union + */ + __union_with_string(o, offset) { + if (typeof o === "string") return this.__string(offset); + return this.__union(o, offset); + } + /** + * Retrieve the relative offset stored at "offset" + */ + __indirect(offset) { + return offset + this.readInt32(offset); + } + /** + * Get the start of data of a vector whose offset is stored at "offset" in this object. + */ + __vector(offset) { + return offset + this.readInt32(offset) + 4; + } + /** + * Get the length of a vector whose offset is stored at "offset" in this object. + */ + __vector_len(offset) { + return this.readInt32(offset + this.readInt32(offset)); + } + __has_identifier(ident) { + if (ident.length != 4) throw new Error("FlatBuffers: file identifier must be length 4"); + for (let i = 0; i < 4; i++) if (ident.charCodeAt(i) != this.readInt8(this.position() + 4 + i)) return false; + return true; + } + /** + * A helper function for generating list for obj api + */ + createScalarList(listAccessor, listLength) { + const ret = []; + for (let i = 0; i < listLength; ++i) { + const val = listAccessor(i); + if (val !== null) ret.push(val); + } + return ret; + } + /** + * A helper function for generating list for obj api + * @param listAccessor function that accepts an index and return data at that index + * @param listLength listLength + * @param res result list + */ + createObjList(listAccessor, listLength) { + const ret = []; + for (let i = 0; i < listLength; ++i) { + const val = listAccessor(i); + if (val !== null) ret.push(val.unpack()); + } + return ret; + } + }; + var AnimationInitialData = class AnimationInitialData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsAnimationInitialData(bb, obj) { + return (obj || new AnimationInitialData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsAnimationInitialData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new AnimationInitialData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + index() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + lowflag() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + highflag() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + priority() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + cellIndex() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + opacity() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + localopacity() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + masklimen() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + positionX() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + positionY() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + positionZ() { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + pivotX() { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + pivotY() { + const offset = this.bb.__offset(this.bb_pos, 28); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + rotationX() { + const offset = this.bb.__offset(this.bb_pos, 30); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + rotationY() { + const offset = this.bb.__offset(this.bb_pos, 32); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + rotationZ() { + const offset = this.bb.__offset(this.bb_pos, 34); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + scaleX() { + const offset = this.bb.__offset(this.bb_pos, 36); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + scaleY() { + const offset = this.bb.__offset(this.bb_pos, 38); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + localscaleX() { + const offset = this.bb.__offset(this.bb_pos, 40); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + localscaleY() { + const offset = this.bb.__offset(this.bb_pos, 42); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + sizeX() { + const offset = this.bb.__offset(this.bb_pos, 44); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + sizeY() { + const offset = this.bb.__offset(this.bb_pos, 46); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvMoveX() { + const offset = this.bb.__offset(this.bb_pos, 48); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvMoveY() { + const offset = this.bb.__offset(this.bb_pos, 50); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvRotation() { + const offset = this.bb.__offset(this.bb_pos, 52); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvScaleX() { + const offset = this.bb.__offset(this.bb_pos, 54); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvScaleY() { + const offset = this.bb.__offset(this.bb_pos, 56); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + boundingRadius() { + const offset = this.bb.__offset(this.bb_pos, 58); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + instanceValueCurKeyframe() { + const offset = this.bb.__offset(this.bb_pos, 60); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + instanceValueStartFrame() { + const offset = this.bb.__offset(this.bb_pos, 62); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + instanceValueEndFrame() { + const offset = this.bb.__offset(this.bb_pos, 64); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + instanceValueLoopNum() { + const offset = this.bb.__offset(this.bb_pos, 66); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + instanceValueSpeed() { + const offset = this.bb.__offset(this.bb_pos, 68); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + instanceValueLoopflag() { + const offset = this.bb.__offset(this.bb_pos, 70); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + effectValueCurKeyframe() { + const offset = this.bb.__offset(this.bb_pos, 72); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + effectValueStartTime() { + const offset = this.bb.__offset(this.bb_pos, 74); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + effectValueSpeed() { + const offset = this.bb.__offset(this.bb_pos, 76); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + effectValueLoopflag() { + const offset = this.bb.__offset(this.bb_pos, 78); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + static startAnimationInitialData(builder) { + builder.startObject(38); + } + static addIndex(builder, index) { + builder.addFieldInt16(0, index, 0); + } + static addLowflag(builder, lowflag) { + builder.addFieldInt32(1, lowflag, 0); + } + static addHighflag(builder, highflag) { + builder.addFieldInt32(2, highflag, 0); + } + static addPriority(builder, priority) { + builder.addFieldInt16(3, priority, 0); + } + static addCellIndex(builder, cellIndex) { + builder.addFieldInt16(4, cellIndex, 0); + } + static addOpacity(builder, opacity) { + builder.addFieldInt16(5, opacity, 0); + } + static addLocalopacity(builder, localopacity) { + builder.addFieldInt16(6, localopacity, 0); + } + static addMasklimen(builder, masklimen) { + builder.addFieldInt16(7, masklimen, 0); + } + static addPositionX(builder, positionX) { + builder.addFieldFloat32(8, positionX, 0); + } + static addPositionY(builder, positionY) { + builder.addFieldFloat32(9, positionY, 0); + } + static addPositionZ(builder, positionZ) { + builder.addFieldFloat32(10, positionZ, 0); + } + static addPivotX(builder, pivotX) { + builder.addFieldFloat32(11, pivotX, 0); + } + static addPivotY(builder, pivotY) { + builder.addFieldFloat32(12, pivotY, 0); + } + static addRotationX(builder, rotationX) { + builder.addFieldFloat32(13, rotationX, 0); + } + static addRotationY(builder, rotationY) { + builder.addFieldFloat32(14, rotationY, 0); + } + static addRotationZ(builder, rotationZ) { + builder.addFieldFloat32(15, rotationZ, 0); + } + static addScaleX(builder, scaleX) { + builder.addFieldFloat32(16, scaleX, 0); + } + static addScaleY(builder, scaleY) { + builder.addFieldFloat32(17, scaleY, 0); + } + static addLocalscaleX(builder, localscaleX) { + builder.addFieldFloat32(18, localscaleX, 0); + } + static addLocalscaleY(builder, localscaleY) { + builder.addFieldFloat32(19, localscaleY, 0); + } + static addSizeX(builder, sizeX) { + builder.addFieldFloat32(20, sizeX, 0); + } + static addSizeY(builder, sizeY) { + builder.addFieldFloat32(21, sizeY, 0); + } + static addUvMoveX(builder, uvMoveX) { + builder.addFieldFloat32(22, uvMoveX, 0); + } + static addUvMoveY(builder, uvMoveY) { + builder.addFieldFloat32(23, uvMoveY, 0); + } + static addUvRotation(builder, uvRotation) { + builder.addFieldFloat32(24, uvRotation, 0); + } + static addUvScaleX(builder, uvScaleX) { + builder.addFieldFloat32(25, uvScaleX, 0); + } + static addUvScaleY(builder, uvScaleY) { + builder.addFieldFloat32(26, uvScaleY, 0); + } + static addBoundingRadius(builder, boundingRadius) { + builder.addFieldFloat32(27, boundingRadius, 0); + } + static addInstanceValueCurKeyframe(builder, instanceValueCurKeyframe) { + builder.addFieldInt32(28, instanceValueCurKeyframe, 0); + } + static addInstanceValueStartFrame(builder, instanceValueStartFrame) { + builder.addFieldInt32(29, instanceValueStartFrame, 0); + } + static addInstanceValueEndFrame(builder, instanceValueEndFrame) { + builder.addFieldInt32(30, instanceValueEndFrame, 0); + } + static addInstanceValueLoopNum(builder, instanceValueLoopNum) { + builder.addFieldInt32(31, instanceValueLoopNum, 0); + } + static addInstanceValueSpeed(builder, instanceValueSpeed) { + builder.addFieldFloat32(32, instanceValueSpeed, 0); + } + static addInstanceValueLoopflag(builder, instanceValueLoopflag) { + builder.addFieldInt32(33, instanceValueLoopflag, 0); + } + static addEffectValueCurKeyframe(builder, effectValueCurKeyframe) { + builder.addFieldInt32(34, effectValueCurKeyframe, 0); + } + static addEffectValueStartTime(builder, effectValueStartTime) { + builder.addFieldInt32(35, effectValueStartTime, 0); + } + static addEffectValueSpeed(builder, effectValueSpeed) { + builder.addFieldFloat32(36, effectValueSpeed, 0); + } + static addEffectValueLoopflag(builder, effectValueLoopflag) { + builder.addFieldInt32(37, effectValueLoopflag, 0); + } + static endAnimationInitialData(builder) { + return builder.endObject(); + } + static createAnimationInitialData(builder, index, lowflag, highflag, priority, cellIndex, opacity, localopacity, masklimen, positionX, positionY, positionZ, pivotX, pivotY, rotationX, rotationY, rotationZ, scaleX, scaleY, localscaleX, localscaleY, sizeX, sizeY, uvMoveX, uvMoveY, uvRotation, uvScaleX, uvScaleY, boundingRadius, instanceValueCurKeyframe, instanceValueStartFrame, instanceValueEndFrame, instanceValueLoopNum, instanceValueSpeed, instanceValueLoopflag, effectValueCurKeyframe, effectValueStartTime, effectValueSpeed, effectValueLoopflag) { + AnimationInitialData.startAnimationInitialData(builder); + AnimationInitialData.addIndex(builder, index); + AnimationInitialData.addLowflag(builder, lowflag); + AnimationInitialData.addHighflag(builder, highflag); + AnimationInitialData.addPriority(builder, priority); + AnimationInitialData.addCellIndex(builder, cellIndex); + AnimationInitialData.addOpacity(builder, opacity); + AnimationInitialData.addLocalopacity(builder, localopacity); + AnimationInitialData.addMasklimen(builder, masklimen); + AnimationInitialData.addPositionX(builder, positionX); + AnimationInitialData.addPositionY(builder, positionY); + AnimationInitialData.addPositionZ(builder, positionZ); + AnimationInitialData.addPivotX(builder, pivotX); + AnimationInitialData.addPivotY(builder, pivotY); + AnimationInitialData.addRotationX(builder, rotationX); + AnimationInitialData.addRotationY(builder, rotationY); + AnimationInitialData.addRotationZ(builder, rotationZ); + AnimationInitialData.addScaleX(builder, scaleX); + AnimationInitialData.addScaleY(builder, scaleY); + AnimationInitialData.addLocalscaleX(builder, localscaleX); + AnimationInitialData.addLocalscaleY(builder, localscaleY); + AnimationInitialData.addSizeX(builder, sizeX); + AnimationInitialData.addSizeY(builder, sizeY); + AnimationInitialData.addUvMoveX(builder, uvMoveX); + AnimationInitialData.addUvMoveY(builder, uvMoveY); + AnimationInitialData.addUvRotation(builder, uvRotation); + AnimationInitialData.addUvScaleX(builder, uvScaleX); + AnimationInitialData.addUvScaleY(builder, uvScaleY); + AnimationInitialData.addBoundingRadius(builder, boundingRadius); + AnimationInitialData.addInstanceValueCurKeyframe(builder, instanceValueCurKeyframe); + AnimationInitialData.addInstanceValueStartFrame(builder, instanceValueStartFrame); + AnimationInitialData.addInstanceValueEndFrame(builder, instanceValueEndFrame); + AnimationInitialData.addInstanceValueLoopNum(builder, instanceValueLoopNum); + AnimationInitialData.addInstanceValueSpeed(builder, instanceValueSpeed); + AnimationInitialData.addInstanceValueLoopflag(builder, instanceValueLoopflag); + AnimationInitialData.addEffectValueCurKeyframe(builder, effectValueCurKeyframe); + AnimationInitialData.addEffectValueStartTime(builder, effectValueStartTime); + AnimationInitialData.addEffectValueSpeed(builder, effectValueSpeed); + AnimationInitialData.addEffectValueLoopflag(builder, effectValueLoopflag); + return AnimationInitialData.endAnimationInitialData(builder); + } + }; + var partState = class partState { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAspartState(bb, obj) { + return (obj || new partState()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAspartState(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new partState()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + index() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + flag1() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + flag2() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + data(index) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readUint32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + dataLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + dataArray() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + static startpartState(builder) { + builder.startObject(4); + } + static addIndex(builder, index) { + builder.addFieldInt16(0, index, 0); + } + static addFlag1(builder, flag1) { + builder.addFieldInt32(1, flag1, 0); + } + static addFlag2(builder, flag2) { + builder.addFieldInt32(2, flag2, 0); + } + static addData(builder, dataOffset) { + builder.addFieldOffset(3, dataOffset, 0); + } + static createDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addInt32(data[i]); + return builder.endVector(); + } + static startDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endpartState(builder) { + return builder.endObject(); + } + static createpartState(builder, index, flag1, flag2, dataOffset) { + partState.startpartState(builder); + partState.addIndex(builder, index); + partState.addFlag1(builder, flag1); + partState.addFlag2(builder, flag2); + partState.addData(builder, dataOffset); + return partState.endpartState(builder); + } + }; + var frameDataIndex = class frameDataIndex { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsframeDataIndex(bb, obj) { + return (obj || new frameDataIndex()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsframeDataIndex(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new frameDataIndex()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + states(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? (obj || new partState()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + statesLength() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startframeDataIndex(builder) { + builder.startObject(1); + } + static addStates(builder, statesOffset) { + builder.addFieldOffset(0, statesOffset, 0); + } + static createStatesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startStatesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endframeDataIndex(builder) { + return builder.endObject(); + } + static createframeDataIndex(builder, statesOffset) { + frameDataIndex.startframeDataIndex(builder); + frameDataIndex.addStates(builder, statesOffset); + return frameDataIndex.endframeDataIndex(builder); + } + }; + var labelDataItem = class labelDataItem { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAslabelDataItem(bb, obj) { + return (obj || new labelDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAslabelDataItem(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new labelDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + label(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + frameIndex() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + static startlabelDataItem(builder) { + builder.startObject(2); + } + static addLabel(builder, labelOffset) { + builder.addFieldOffset(0, labelOffset, 0); + } + static addFrameIndex(builder, frameIndex) { + builder.addFieldInt16(1, frameIndex, 0); + } + static endlabelDataItem(builder) { + return builder.endObject(); + } + static createlabelDataItem(builder, labelOffset, frameIndex) { + labelDataItem.startlabelDataItem(builder); + labelDataItem.addLabel(builder, labelOffset); + labelDataItem.addFrameIndex(builder, frameIndex); + return labelDataItem.endlabelDataItem(builder); + } + }; + var meshDataIndices = class meshDataIndices { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsmeshDataIndices(bb, obj) { + return (obj || new meshDataIndices()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsmeshDataIndices(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new meshDataIndices()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + indices(index) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + indicesLength() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + indicesArray() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + static startmeshDataIndices(builder) { + builder.startObject(1); + } + static addIndices(builder, indicesOffset) { + builder.addFieldOffset(0, indicesOffset, 0); + } + static createIndicesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addFloat32(data[i]); + return builder.endVector(); + } + static startIndicesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endmeshDataIndices(builder) { + return builder.endObject(); + } + static createmeshDataIndices(builder, indicesOffset) { + meshDataIndices.startmeshDataIndices(builder); + meshDataIndices.addIndices(builder, indicesOffset); + return meshDataIndices.endmeshDataIndices(builder); + } + }; + var meshDataUV = class meshDataUV { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsmeshDataUV(bb, obj) { + return (obj || new meshDataUV()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsmeshDataUV(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new meshDataUV()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + uv(index) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + uvLength() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + uvArray() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + static startmeshDataUV(builder) { + builder.startObject(1); + } + static addUv(builder, uvOffset) { + builder.addFieldOffset(0, uvOffset, 0); + } + static createUvVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addFloat32(data[i]); + return builder.endVector(); + } + static startUvVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endmeshDataUV(builder) { + return builder.endObject(); + } + static createmeshDataUV(builder, uvOffset) { + meshDataUV.startmeshDataUV(builder); + meshDataUV.addUv(builder, uvOffset); + return meshDataUV.endmeshDataUV(builder); + } + }; + var userDataItem = class userDataItem { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsuserDataItem(bb, obj) { + return (obj || new userDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsuserDataItem(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new userDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + flags() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + arrayIndex() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + dataType(index) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; + } + dataTypeLength() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + dataTypeArray() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + data(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__union(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; + } + dataLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startuserDataItem(builder) { + builder.startObject(4); + } + static addFlags(builder, flags) { + builder.addFieldInt16(0, flags, 0); + } + static addArrayIndex(builder, arrayIndex) { + builder.addFieldInt16(1, arrayIndex, 0); + } + static addDataType(builder, dataTypeOffset) { + builder.addFieldOffset(2, dataTypeOffset, 0); + } + static createDataTypeVector(builder, data) { + builder.startVector(1, data.length, 1); + for (let i = data.length - 1; i >= 0; i--) builder.addInt8(data[i]); + return builder.endVector(); + } + static startDataTypeVector(builder, numElems) { + builder.startVector(1, numElems, 1); + } + static addData(builder, dataOffset) { + builder.addFieldOffset(3, dataOffset, 0); + } + static createDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static enduserDataItem(builder) { + return builder.endObject(); + } + static createuserDataItem(builder, flags, arrayIndex, dataTypeOffset, dataOffset) { + userDataItem.startuserDataItem(builder); + userDataItem.addFlags(builder, flags); + userDataItem.addArrayIndex(builder, arrayIndex); + userDataItem.addDataType(builder, dataTypeOffset); + userDataItem.addData(builder, dataOffset); + return userDataItem.enduserDataItem(builder); + } + }; + var userDataPerFrame = class userDataPerFrame { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsuserDataPerFrame(bb, obj) { + return (obj || new userDataPerFrame()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsuserDataPerFrame(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new userDataPerFrame()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + frameIndex() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + data(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new userDataItem()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + dataLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startuserDataPerFrame(builder) { + builder.startObject(2); + } + static addFrameIndex(builder, frameIndex) { + builder.addFieldInt16(0, frameIndex, 0); + } + static addData(builder, dataOffset) { + builder.addFieldOffset(1, dataOffset, 0); + } + static createDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static enduserDataPerFrame(builder) { + return builder.endObject(); + } + static createuserDataPerFrame(builder, frameIndex, dataOffset) { + userDataPerFrame.startuserDataPerFrame(builder); + userDataPerFrame.addFrameIndex(builder, frameIndex); + userDataPerFrame.addData(builder, dataOffset); + return userDataPerFrame.enduserDataPerFrame(builder); + } + }; + var AnimationData = class AnimationData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsAnimationData(bb, obj) { + return (obj || new AnimationData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsAnimationData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new AnimationData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + defaultData(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new AnimationInitialData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + defaultDataLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + frameData(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? (obj || new frameDataIndex()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + frameDataLength() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + userData(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? (obj || new userDataPerFrame()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + userDataLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + labelData(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? (obj || new labelDataItem()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + labelDataLength() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + meshsDataUv(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? (obj || new meshDataUV()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + meshsDataUvLength() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + meshsDataIndices(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? (obj || new meshDataIndices()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + meshsDataIndicesLength() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + startFrames() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + endFrames() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + totalFrames() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + fps() { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + labelNum() { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + canvasSizeW() { + const offset = this.bb.__offset(this.bb_pos, 28); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + canvasSizeH() { + const offset = this.bb.__offset(this.bb_pos, 30); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + canvasPvotX() { + const offset = this.bb.__offset(this.bb_pos, 32); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + canvasPvotY() { + const offset = this.bb.__offset(this.bb_pos, 34); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + static startAnimationData(builder) { + builder.startObject(16); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addDefaultData(builder, defaultDataOffset) { + builder.addFieldOffset(1, defaultDataOffset, 0); + } + static createDefaultDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startDefaultDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addFrameData(builder, frameDataOffset) { + builder.addFieldOffset(2, frameDataOffset, 0); + } + static createFrameDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startFrameDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addUserData(builder, userDataOffset) { + builder.addFieldOffset(3, userDataOffset, 0); + } + static createUserDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startUserDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addLabelData(builder, labelDataOffset) { + builder.addFieldOffset(4, labelDataOffset, 0); + } + static createLabelDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startLabelDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addMeshsDataUv(builder, meshsDataUvOffset) { + builder.addFieldOffset(5, meshsDataUvOffset, 0); + } + static createMeshsDataUvVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startMeshsDataUvVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addMeshsDataIndices(builder, meshsDataIndicesOffset) { + builder.addFieldOffset(6, meshsDataIndicesOffset, 0); + } + static createMeshsDataIndicesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startMeshsDataIndicesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addStartFrames(builder, startFrames) { + builder.addFieldInt16(7, startFrames, 0); + } + static addEndFrames(builder, endFrames) { + builder.addFieldInt16(8, endFrames, 0); + } + static addTotalFrames(builder, totalFrames) { + builder.addFieldInt16(9, totalFrames, 0); + } + static addFps(builder, fps) { + builder.addFieldInt16(10, fps, 0); + } + static addLabelNum(builder, labelNum) { + builder.addFieldInt16(11, labelNum, 0); + } + static addCanvasSizeW(builder, canvasSizeW) { + builder.addFieldInt16(12, canvasSizeW, 0); + } + static addCanvasSizeH(builder, canvasSizeH) { + builder.addFieldInt16(13, canvasSizeH, 0); + } + static addCanvasPvotX(builder, canvasPvotX) { + builder.addFieldFloat32(14, canvasPvotX, 0); + } + static addCanvasPvotY(builder, canvasPvotY) { + builder.addFieldFloat32(15, canvasPvotY, 0); + } + static endAnimationData(builder) { + return builder.endObject(); + } + static createAnimationData(builder, nameOffset, defaultDataOffset, frameDataOffset, userDataOffset, labelDataOffset, meshsDataUvOffset, meshsDataIndicesOffset, startFrames, endFrames, totalFrames, fps, labelNum, canvasSizeW, canvasSizeH, canvasPvotX, canvasPvotY) { + AnimationData.startAnimationData(builder); + AnimationData.addName(builder, nameOffset); + AnimationData.addDefaultData(builder, defaultDataOffset); + AnimationData.addFrameData(builder, frameDataOffset); + AnimationData.addUserData(builder, userDataOffset); + AnimationData.addLabelData(builder, labelDataOffset); + AnimationData.addMeshsDataUv(builder, meshsDataUvOffset); + AnimationData.addMeshsDataIndices(builder, meshsDataIndicesOffset); + AnimationData.addStartFrames(builder, startFrames); + AnimationData.addEndFrames(builder, endFrames); + AnimationData.addTotalFrames(builder, totalFrames); + AnimationData.addFps(builder, fps); + AnimationData.addLabelNum(builder, labelNum); + AnimationData.addCanvasSizeW(builder, canvasSizeW); + AnimationData.addCanvasSizeH(builder, canvasSizeH); + AnimationData.addCanvasPvotX(builder, canvasPvotX); + AnimationData.addCanvasPvotY(builder, canvasPvotY); + return AnimationData.endAnimationData(builder); + } + }; + let SsPartType = /* @__PURE__ */ function(SsPartType) { + SsPartType[SsPartType["Invalid"] = -1] = "Invalid"; + SsPartType[SsPartType["Nulltype"] = 0] = "Nulltype"; + SsPartType[SsPartType["Normal"] = 1] = "Normal"; + SsPartType[SsPartType["Text"] = 2] = "Text"; + SsPartType[SsPartType["Instance"] = 3] = "Instance"; + SsPartType[SsPartType["Armature"] = 4] = "Armature"; + SsPartType[SsPartType["Effect"] = 5] = "Effect"; + SsPartType[SsPartType["Mesh"] = 6] = "Mesh"; + SsPartType[SsPartType["Movenode"] = 7] = "Movenode"; + SsPartType[SsPartType["Constraint"] = 8] = "Constraint"; + SsPartType[SsPartType["Mask"] = 9] = "Mask"; + SsPartType[SsPartType["Joint"] = 10] = "Joint"; + SsPartType[SsPartType["Bonepoint"] = 11] = "Bonepoint"; + return SsPartType; + }({}); + var PartData = class PartData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsPartData(bb, obj) { + return (obj || new PartData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsPartData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new PartData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + index() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + parentIndex() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + type() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt8(this.bb_pos + offset) : SsPartType.Nulltype; + } + boundsType() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + alphaBlendType() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + refname(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + effectfilename(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + colorLabel(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + maskInfluence() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + static startPartData(builder) { + builder.startObject(10); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addIndex(builder, index) { + builder.addFieldInt16(1, index, 0); + } + static addParentIndex(builder, parentIndex) { + builder.addFieldInt16(2, parentIndex, 0); + } + static addType(builder, type) { + builder.addFieldInt8(3, type, SsPartType.Nulltype); + } + static addBoundsType(builder, boundsType) { + builder.addFieldInt16(4, boundsType, 0); + } + static addAlphaBlendType(builder, alphaBlendType) { + builder.addFieldInt16(5, alphaBlendType, 0); + } + static addRefname(builder, refnameOffset) { + builder.addFieldOffset(6, refnameOffset, 0); + } + static addEffectfilename(builder, effectfilenameOffset) { + builder.addFieldOffset(7, effectfilenameOffset, 0); + } + static addColorLabel(builder, colorLabelOffset) { + builder.addFieldOffset(8, colorLabelOffset, 0); + } + static addMaskInfluence(builder, maskInfluence) { + builder.addFieldInt16(9, maskInfluence, 0); + } + static endPartData(builder) { + return builder.endObject(); + } + static createPartData(builder, nameOffset, index, parentIndex, type, boundsType, alphaBlendType, refnameOffset, effectfilenameOffset, colorLabelOffset, maskInfluence) { + PartData.startPartData(builder); + PartData.addName(builder, nameOffset); + PartData.addIndex(builder, index); + PartData.addParentIndex(builder, parentIndex); + PartData.addType(builder, type); + PartData.addBoundsType(builder, boundsType); + PartData.addAlphaBlendType(builder, alphaBlendType); + PartData.addRefname(builder, refnameOffset); + PartData.addEffectfilename(builder, effectfilenameOffset); + PartData.addColorLabel(builder, colorLabelOffset); + PartData.addMaskInfluence(builder, maskInfluence); + return PartData.endPartData(builder); + } + }; + var AnimePackData = class AnimePackData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsAnimePackData(bb, obj) { + return (obj || new AnimePackData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsAnimePackData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new AnimePackData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + parts(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new PartData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + partsLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + animations(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? (obj || new AnimationData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + animationsLength() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startAnimePackData(builder) { + builder.startObject(3); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addParts(builder, partsOffset) { + builder.addFieldOffset(1, partsOffset, 0); + } + static createPartsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startPartsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addAnimations(builder, animationsOffset) { + builder.addFieldOffset(2, animationsOffset, 0); + } + static createAnimationsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startAnimationsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endAnimePackData(builder) { + return builder.endObject(); + } + static createAnimePackData(builder, nameOffset, partsOffset, animationsOffset) { + AnimePackData.startAnimePackData(builder); + AnimePackData.addName(builder, nameOffset); + AnimePackData.addParts(builder, partsOffset); + AnimePackData.addAnimations(builder, animationsOffset); + return AnimePackData.endAnimePackData(builder); + } + }; + var CellMap = class CellMap { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsCellMap(bb, obj) { + return (obj || new CellMap()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsCellMap(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new CellMap()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + imagePath(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + index() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + wrapmode() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + filtermode() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + static startCellMap(builder) { + builder.startObject(5); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addImagePath(builder, imagePathOffset) { + builder.addFieldOffset(1, imagePathOffset, 0); + } + static addIndex(builder, index) { + builder.addFieldInt16(2, index, 0); + } + static addWrapmode(builder, wrapmode) { + builder.addFieldInt16(3, wrapmode, 0); + } + static addFiltermode(builder, filtermode) { + builder.addFieldInt16(4, filtermode, 0); + } + static endCellMap(builder) { + return builder.endObject(); + } + static createCellMap(builder, nameOffset, imagePathOffset, index, wrapmode, filtermode) { + CellMap.startCellMap(builder); + CellMap.addName(builder, nameOffset); + CellMap.addImagePath(builder, imagePathOffset); + CellMap.addIndex(builder, index); + CellMap.addWrapmode(builder, wrapmode); + CellMap.addFiltermode(builder, filtermode); + return CellMap.endCellMap(builder); + } + }; + var Cell = class Cell { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsCell(bb, obj) { + return (obj || new Cell()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsCell(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new Cell()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + cellMap(obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new CellMap()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + indexInCellMap() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + x() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + y() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + width() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + height() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + pivotX() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + pivotY() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + u1() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + v1() { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + u2() { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + v2() { + const offset = this.bb.__offset(this.bb_pos, 28); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + static startCell(builder) { + builder.startObject(13); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addCellMap(builder, cellMapOffset) { + builder.addFieldOffset(1, cellMapOffset, 0); + } + static addIndexInCellMap(builder, indexInCellMap) { + builder.addFieldInt16(2, indexInCellMap, 0); + } + static addX(builder, x) { + builder.addFieldInt16(3, x, 0); + } + static addY(builder, y) { + builder.addFieldInt16(4, y, 0); + } + static addWidth(builder, width) { + builder.addFieldInt16(5, width, 0); + } + static addHeight(builder, height) { + builder.addFieldInt16(6, height, 0); + } + static addPivotX(builder, pivotX) { + builder.addFieldFloat32(7, pivotX, 0); + } + static addPivotY(builder, pivotY) { + builder.addFieldFloat32(8, pivotY, 0); + } + static addU1(builder, u1) { + builder.addFieldFloat32(9, u1, 0); + } + static addV1(builder, v1) { + builder.addFieldFloat32(10, v1, 0); + } + static addU2(builder, u2) { + builder.addFieldFloat32(11, u2, 0); + } + static addV2(builder, v2) { + builder.addFieldFloat32(12, v2, 0); + } + static endCell(builder) { + return builder.endObject(); + } + }; + var EffectNode = class EffectNode { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsEffectNode(bb, obj) { + return (obj || new EffectNode()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsEffectNode(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new EffectNode()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + arrayIndex() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + parentIndex() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + type() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + cellIndex() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + blendType() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + numBehavior() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + behaviorType(index) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; + } + behaviorTypeLength() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + behaviorTypeArray() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + behavior(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__union(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; + } + behaviorLength() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startEffectNode(builder) { + builder.startObject(8); + } + static addArrayIndex(builder, arrayIndex) { + builder.addFieldInt16(0, arrayIndex, 0); + } + static addParentIndex(builder, parentIndex) { + builder.addFieldInt16(1, parentIndex, 0); + } + static addType(builder, type) { + builder.addFieldInt16(2, type, 0); + } + static addCellIndex(builder, cellIndex) { + builder.addFieldInt16(3, cellIndex, 0); + } + static addBlendType(builder, blendType) { + builder.addFieldInt16(4, blendType, 0); + } + static addNumBehavior(builder, numBehavior) { + builder.addFieldInt16(5, numBehavior, 0); + } + static addBehaviorType(builder, behaviorTypeOffset) { + builder.addFieldOffset(6, behaviorTypeOffset, 0); + } + static createBehaviorTypeVector(builder, data) { + builder.startVector(1, data.length, 1); + for (let i = data.length - 1; i >= 0; i--) builder.addInt8(data[i]); + return builder.endVector(); + } + static startBehaviorTypeVector(builder, numElems) { + builder.startVector(1, numElems, 1); + } + static addBehavior(builder, behaviorOffset) { + builder.addFieldOffset(7, behaviorOffset, 0); + } + static createBehaviorVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startBehaviorVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endEffectNode(builder) { + return builder.endObject(); + } + static createEffectNode(builder, arrayIndex, parentIndex, type, cellIndex, blendType, numBehavior, behaviorTypeOffset, behaviorOffset) { + EffectNode.startEffectNode(builder); + EffectNode.addArrayIndex(builder, arrayIndex); + EffectNode.addParentIndex(builder, parentIndex); + EffectNode.addType(builder, type); + EffectNode.addCellIndex(builder, cellIndex); + EffectNode.addBlendType(builder, blendType); + EffectNode.addNumBehavior(builder, numBehavior); + EffectNode.addBehaviorType(builder, behaviorTypeOffset); + EffectNode.addBehavior(builder, behaviorOffset); + return EffectNode.endEffectNode(builder); + } + }; + var EffectFile = class EffectFile { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsEffectFile(bb, obj) { + return (obj || new EffectFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsEffectFile(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new EffectFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + fps() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + isLockRandSeed() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + lockRandSeed() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + layoutScaleX() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + layoutScaleY() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + numNodeList() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + effectNode(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? (obj || new EffectNode()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + effectNodeLength() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startEffectFile(builder) { + builder.startObject(8); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addFps(builder, fps) { + builder.addFieldInt16(1, fps, 0); + } + static addIsLockRandSeed(builder, isLockRandSeed) { + builder.addFieldInt16(2, isLockRandSeed, 0); + } + static addLockRandSeed(builder, lockRandSeed) { + builder.addFieldInt16(3, lockRandSeed, 0); + } + static addLayoutScaleX(builder, layoutScaleX) { + builder.addFieldInt16(4, layoutScaleX, 0); + } + static addLayoutScaleY(builder, layoutScaleY) { + builder.addFieldInt16(5, layoutScaleY, 0); + } + static addNumNodeList(builder, numNodeList) { + builder.addFieldInt16(6, numNodeList, 0); + } + static addEffectNode(builder, effectNodeOffset) { + builder.addFieldOffset(7, effectNodeOffset, 0); + } + static createEffectNodeVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startEffectNodeVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endEffectFile(builder) { + return builder.endObject(); + } + static createEffectFile(builder, nameOffset, fps, isLockRandSeed, lockRandSeed, layoutScaleX, layoutScaleY, numNodeList, effectNodeOffset) { + EffectFile.startEffectFile(builder); + EffectFile.addName(builder, nameOffset); + EffectFile.addFps(builder, fps); + EffectFile.addIsLockRandSeed(builder, isLockRandSeed); + EffectFile.addLockRandSeed(builder, lockRandSeed); + EffectFile.addLayoutScaleX(builder, layoutScaleX); + EffectFile.addLayoutScaleY(builder, layoutScaleY); + EffectFile.addNumNodeList(builder, numNodeList); + EffectFile.addEffectNode(builder, effectNodeOffset); + return EffectFile.endEffectFile(builder); + } + }; + let PART_FLAG = /* @__PURE__ */ function(PART_FLAG) { + PART_FLAG[PART_FLAG["INVISIBLE"] = 1] = "INVISIBLE"; + PART_FLAG[PART_FLAG["FLIP_H"] = 2] = "FLIP_H"; + PART_FLAG[PART_FLAG["FLIP_V"] = 4] = "FLIP_V"; + PART_FLAG[PART_FLAG["CELL_INDEX"] = 8] = "CELL_INDEX"; + PART_FLAG[PART_FLAG["POSITION_X"] = 16] = "POSITION_X"; + PART_FLAG[PART_FLAG["POSITION_Y"] = 32] = "POSITION_Y"; + PART_FLAG[PART_FLAG["POSITION_Z"] = 64] = "POSITION_Z"; + PART_FLAG[PART_FLAG["PIVOT_X"] = 128] = "PIVOT_X"; + PART_FLAG[PART_FLAG["PIVOT_Y"] = 256] = "PIVOT_Y"; + PART_FLAG[PART_FLAG["ROTATIONX"] = 512] = "ROTATIONX"; + PART_FLAG[PART_FLAG["ROTATIONY"] = 1024] = "ROTATIONY"; + PART_FLAG[PART_FLAG["ROTATIONZ"] = 2048] = "ROTATIONZ"; + PART_FLAG[PART_FLAG["SCALE_X"] = 4096] = "SCALE_X"; + PART_FLAG[PART_FLAG["SCALE_Y"] = 8192] = "SCALE_Y"; + PART_FLAG[PART_FLAG["LOCALSCALE_X"] = 16384] = "LOCALSCALE_X"; + PART_FLAG[PART_FLAG["LOCALSCALE_Y"] = 32768] = "LOCALSCALE_Y"; + PART_FLAG[PART_FLAG["OPACITY"] = 65536] = "OPACITY"; + PART_FLAG[PART_FLAG["LOCALOPACITY"] = 131072] = "LOCALOPACITY"; + PART_FLAG[PART_FLAG["PARTS_COLOR"] = 262144] = "PARTS_COLOR"; + PART_FLAG[PART_FLAG["VERTEX_TRANSFORM"] = 524288] = "VERTEX_TRANSFORM"; + PART_FLAG[PART_FLAG["SIZE_X"] = 1048576] = "SIZE_X"; + PART_FLAG[PART_FLAG["SIZE_Y"] = 2097152] = "SIZE_Y"; + PART_FLAG[PART_FLAG["U_MOVE"] = 4194304] = "U_MOVE"; + PART_FLAG[PART_FLAG["V_MOVE"] = 8388608] = "V_MOVE"; + PART_FLAG[PART_FLAG["UV_ROTATION"] = 16777216] = "UV_ROTATION"; + PART_FLAG[PART_FLAG["U_SCALE"] = 33554432] = "U_SCALE"; + PART_FLAG[PART_FLAG["V_SCALE"] = 67108864] = "V_SCALE"; + PART_FLAG[PART_FLAG["BOUNDINGRADIUS"] = 134217728] = "BOUNDINGRADIUS"; + PART_FLAG[PART_FLAG["MASK"] = 268435456] = "MASK"; + PART_FLAG[PART_FLAG["PRIORITY"] = 536870912] = "PRIORITY"; + PART_FLAG[PART_FLAG["INSTANCE_KEYFRAME"] = 1073741824] = "INSTANCE_KEYFRAME"; + PART_FLAG[PART_FLAG["EFFECT_KEYFRAME"] = 2147483648] = "EFFECT_KEYFRAME"; + return PART_FLAG; + }({}); + let PART_FLAG2 = /* @__PURE__ */ function(PART_FLAG2) { + PART_FLAG2[PART_FLAG2["MESHDATA"] = 1] = "MESHDATA"; + return PART_FLAG2; + }({}); + var ProjectData = class ProjectData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsProjectData(bb, obj) { + return (obj || new ProjectData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsProjectData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new ProjectData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static bufferHasIdentifier(bb) { + return bb.__has_identifier("SSFB"); + } + dataId() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + version() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + flags() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + imageBaseDir(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + cells(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? (obj || new Cell()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + cellsLength() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + animePacks(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? (obj || new AnimePackData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + animePacksLength() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + effectFileList(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? (obj || new EffectFile()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + effectFileListLength() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + numCells() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + numAnimePacks() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + numEffectFileList() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + static startProjectData(builder) { + builder.startObject(10); + } + static addDataId(builder, dataId) { + builder.addFieldInt32(0, dataId, 0); + } + static addVersion(builder, version) { + builder.addFieldInt32(1, version, 0); + } + static addFlags(builder, flags) { + builder.addFieldInt32(2, flags, 0); + } + static addImageBaseDir(builder, imageBaseDirOffset) { + builder.addFieldOffset(3, imageBaseDirOffset, 0); + } + static addCells(builder, cellsOffset) { + builder.addFieldOffset(4, cellsOffset, 0); + } + static createCellsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startCellsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addAnimePacks(builder, animePacksOffset) { + builder.addFieldOffset(5, animePacksOffset, 0); + } + static createAnimePacksVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startAnimePacksVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addEffectFileList(builder, effectFileListOffset) { + builder.addFieldOffset(6, effectFileListOffset, 0); + } + static createEffectFileListVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startEffectFileListVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addNumCells(builder, numCells) { + builder.addFieldInt16(7, numCells, 0); + } + static addNumAnimePacks(builder, numAnimePacks) { + builder.addFieldInt16(8, numAnimePacks, 0); + } + static addNumEffectFileList(builder, numEffectFileList) { + builder.addFieldInt16(9, numEffectFileList, 0); + } + static endProjectData(builder) { + return builder.endObject(); + } + static finishProjectDataBuffer(builder, offset) { + builder.finish(offset, "SSFB"); + } + static finishSizePrefixedProjectDataBuffer(builder, offset) { + builder.finish(offset, "SSFB", true); + } + static createProjectData(builder, dataId, version, flags, imageBaseDirOffset, cellsOffset, animePacksOffset, effectFileListOffset, numCells, numAnimePacks, numEffectFileList) { + ProjectData.startProjectData(builder); + ProjectData.addDataId(builder, dataId); + ProjectData.addVersion(builder, version); + ProjectData.addFlags(builder, flags); + ProjectData.addImageBaseDir(builder, imageBaseDirOffset); + ProjectData.addCells(builder, cellsOffset); + ProjectData.addAnimePacks(builder, animePacksOffset); + ProjectData.addEffectFileList(builder, effectFileListOffset); + ProjectData.addNumCells(builder, numCells); + ProjectData.addNumAnimePacks(builder, numAnimePacks); + ProjectData.addNumEffectFileList(builder, numEffectFileList); + return ProjectData.endProjectData(builder); + } + }; + var userDataInteger = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + integer() { + return this.bb.readInt32(this.bb_pos); + } + static sizeOf() { + return 4; + } + static createuserDataInteger(builder, integer) { + builder.prep(4, 4); + builder.writeInt32(integer); + return builder.offset(); + } + }; + var userDataPoint = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + x() { + return this.bb.readInt32(this.bb_pos); + } + y() { + return this.bb.readInt32(this.bb_pos + 4); + } + static sizeOf() { + return 8; + } + static createuserDataPoint(builder, x, y) { + builder.prep(4, 8); + builder.writeInt32(y); + builder.writeInt32(x); + return builder.offset(); + } + }; + var userDataRect = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + x() { + return this.bb.readInt32(this.bb_pos); + } + y() { + return this.bb.readInt32(this.bb_pos + 4); + } + w() { + return this.bb.readInt32(this.bb_pos + 8); + } + h() { + return this.bb.readInt32(this.bb_pos + 12); + } + static sizeOf() { + return 16; + } + static createuserDataRect(builder, x, y, w, h) { + builder.prep(4, 16); + builder.writeInt32(h); + builder.writeInt32(w); + builder.writeInt32(y); + builder.writeInt32(x); + return builder.offset(); + } + }; + var userDataString = class userDataString { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsuserDataString(bb, obj) { + return (obj || new userDataString()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsuserDataString(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new userDataString()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + length() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + data(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + static startuserDataString(builder) { + builder.startObject(2); + } + static addLength(builder, length) { + builder.addFieldInt32(0, length, 0); + } + static addData(builder, dataOffset) { + builder.addFieldOffset(1, dataOffset, 0); + } + static enduserDataString(builder) { + return builder.endObject(); + } + static createuserDataString(builder, length, dataOffset) { + userDataString.startuserDataString(builder); + userDataString.addLength(builder, length); + userDataString.addData(builder, dataOffset); + return userDataString.enduserDataString(builder); + } + }; + var Utils$1 = class { + static getProjectData(bytes) { + const buf = new ByteBuffer(bytes); + return ProjectData.getRootAsProjectData(buf); + } + }; + var Utils = class { + static getProjectData(bytes) { + return Utils$1.getProjectData(bytes); + } + }; + var Player = class { + get fbObj() { + return this._fbObj; + } + get animePackName() { + return this.curAnimePackName; + } + get animeName() { + return this.curAnimeName; + } + get animePackIdx() { + return this._animePackIdx; + } + get animePackData() { + return this.curAnimePackData; + } + get animationData() { + return this.curAnimation; + } + get parentIndex() { + return this._parentIndex; + } + get prio2index() { + return this._prio2index; + } + constructor(ssfbData, animePackName = null, animeName = null) { + this.curAnimePackName = null; + this.curAnimeName = null; + this.curAnimation = null; + this.curAnimePackData = null; + this._animePackIdx = -1; + this._parentIndex = []; + this._prio2index = []; + this.userData = []; + this.frameDataCache = null; + this.currentCachedFrameNumber = -1; + this.defaultFrameMap = []; + this._uint32 = new Uint32Array(1); + this._float32 = new Float32Array(this._uint32.buffer); + if (Object.prototype.hasOwnProperty.call(ssfbData, "bb")) this._fbObj = ssfbData; + else this._fbObj = Utils.getProjectData(ssfbData); + if (animePackName !== null && animeName !== null) this.Setup(animePackName, animeName); + } + /** + * Setup + * @param {string} animePackName - The name of animePack(SSAE). + * @param {string} animeName - The name of animation. + */ + Setup(animePackName, animeName) { + this.clearCaches(); + const animePacksLength = this._fbObj.animePacksLength(); + let found = false; + for (let i = 0; i < animePacksLength; i++) if (this._fbObj.animePacks(i).name() === animePackName) { + let j; + const animationsLength = this._fbObj.animePacks(i).animationsLength(); + for (j = 0; j < animationsLength; j++) if (this._fbObj.animePacks(i).animations(j).name() === animeName) { + this.curAnimePackName = animePackName; + this.curAnimeName = animeName; + this.curAnimePackData = this._fbObj.animePacks(i); + this.curAnimation = this.curAnimePackData.animations(j); + found = true; + break; + } + if (!found) continue; + const defaultDataLength = this.curAnimation.defaultDataLength(); + for (let j = 0; j < defaultDataLength; j++) { + const curDefaultData = this.curAnimation.defaultData(j); + this.defaultFrameMap[curDefaultData.index()] = curDefaultData; + } + this._animePackIdx = i; + const partsLength = this.curAnimePackData.partsLength(); + this._parentIndex = new Array(partsLength); + for (j = 0; j < partsLength; j++) { + const index = this.curAnimePackData.parts(j).index(); + this._parentIndex[index] = this._fbObj.animePacks(i).parts(j).parentIndex(); + } + } + if (!found) throw Error("not found animePackName: " + animePackName + " animeName: " + animeName); + } + clearCaches() { + this._prio2index = []; + this.userData = []; + this.frameDataCache = null; + this.currentCachedFrameNumber = -1; + this.defaultFrameMap = []; + } + /** + * ユーザーデータコールバックの設定 + * @param fn + * @constructor + * + * ユーザーデータのフォーマット + * data = [[d0,d1,...,d10],[da0,da1,...,da10],...]) + * data.length : 当該フレームでユーザーデータの存在するパーツ(レイヤー)数 + * d0 : パーツ(レイヤー)番号 + * d1 : 有効データビット(&1:int, &2:rect(int*4), &4:pos(int*2), &8:string) + * d2 : int(int) + * d3 : rect0(int) + * d4 : rect1(int) + * d5 : rect2(int) + * d6 : rect3(int) + * d7 : pos0(int) + * d8 : pos1(int) + * d9 : string.length(int) + * d10: string(string) + * + */ + /** + * ユーザーデータの存在チェック + * @param {number} frameNumber - フレーム番号 + * @return {boolean} - 存在するかどうか + */ + HaveUserData(frameNumber) { + if (this.userData[frameNumber] === null) return false; + if (this.userData[frameNumber] !== void 0) return true; + for (let k = 0; k < this.curAnimation.userDataLength(); k++) if (frameNumber === this.curAnimation.userData(k).frameIndex()) { + this.userData[frameNumber] = this.curAnimation.userData(k); + return true; + } + this.userData[frameNumber] = null; + return false; + } + /** + * ユーザーデータの取得 + * @param {number} frameNumber - フレーム番号 + * @return {array} - ユーザーデータ + */ + GetUserData(frameNumber) { + if (this.HaveUserData(frameNumber) === false) return; + const framedata = this.userData[frameNumber]; + const layers = framedata.dataLength(); + let id = 0; + let data = []; + for (let i = 0; i < layers; i++) { + const bit = framedata.data(i).flags(); + const partsID = framedata.data(i).arrayIndex(); + let d_int = null; + let d_rect_x = null; + let d_rect_y = null; + let d_rect_w = null; + let d_rect_h = null; + let d_pos_x = null; + let d_pos_y = null; + let d_string_length = null; + let d_string = null; + if (bit & 1) { + d_int = framedata.data(i).data(id, new userDataInteger()).integer(); + id++; + } + if (bit & 2) { + d_rect_x = framedata.data(i).data(id, new userDataRect()).x(); + d_rect_y = framedata.data(i).data(id, new userDataRect()).y(); + d_rect_w = framedata.data(i).data(id, new userDataRect()).w(); + d_rect_h = framedata.data(i).data(id, new userDataRect()).h(); + id++; + } + if (bit & 4) { + d_pos_x = framedata.data(i).data(id, new userDataPoint()).x(); + d_pos_y = framedata.data(i).data(id, new userDataPoint()).y(); + id++; + } + if (bit & 8) { + d_string_length = framedata.data(i).data(id, new userDataString()).length(); + d_string = framedata.data(i).data(id, new userDataString()).data(); + id++; + } + data.push([ + partsID, + bit, + d_int, + d_rect_x, + d_rect_y, + d_rect_w, + d_rect_h, + d_pos_x, + d_pos_y, + d_string_length, + d_string + ]); + } + return data; + } + /** + * int型からfloat型に変換する + * @return {floatView[0]} - float型に変換したデータ + */ + I2F(i) { + this._uint32[0] = i; + return this._float32[0]; + } + /** + * 1フレーム分のデータを取得する(未設定項目はデフォルト) + * [注意]現verでは未対応項目があると正常動作しない可能性があります + * @param {number} frameNumber - フレーム番号 + */ + GetFrameData(frameNumber) { + if (this.currentCachedFrameNumber === frameNumber && this.frameDataCache) return this.frameDataCache; + const layers = this.curAnimation.defaultDataLength(); + let frameData = new Array(layers); + this._prio2index = new Array(layers); + const curFrameData = this.curAnimation.frameData(frameNumber); + for (let i = 0; i < layers; i++) { + const curPartState = curFrameData.states(i); + const index = curPartState.index(); + let f1 = curPartState.flag1(); + let f2 = curPartState.flag2(); + let fd = this.GetDefaultDataByIndex(index); + fd.flag1 = f1; + fd.flag2 = f2; + let id = 0; + if (f1 & PART_FLAG.INVISIBLE) fd.f_hide = true; + if (f1 & PART_FLAG.FLIP_H) fd.f_flipH = true; + if (f1 & PART_FLAG.FLIP_V) fd.f_flipV = true; + if (f1 & PART_FLAG.CELL_INDEX) fd.cellIndex = curPartState.data(id++); + if (f1 & PART_FLAG.POSITION_X) fd.positionX = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.POSITION_Y) fd.positionY = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.POSITION_Z) id++; + if (f1 & PART_FLAG.PIVOT_X) fd.pivotX = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.PIVOT_Y) fd.pivotY = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.ROTATIONX) id++; + if (f1 & PART_FLAG.ROTATIONY) id++; + if (f1 & PART_FLAG.ROTATIONZ) fd.rotationZ = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.SCALE_X) fd.scaleX = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.SCALE_Y) fd.scaleY = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.LOCALSCALE_X) fd.localscaleX = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.LOCALSCALE_Y) fd.localscaleY = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.OPACITY) fd.opacity = curPartState.data(id++); + if (f1 & PART_FLAG.LOCALOPACITY) fd.localopacity = curPartState.data(id++); + if (f1 & PART_FLAG.SIZE_X) fd.size_X = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.SIZE_Y) fd.size_Y = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.U_MOVE) fd.uv_move_X = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.V_MOVE) fd.uv_move_Y = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.UV_ROTATION) fd.uv_rotation = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.U_SCALE) fd.uv_scale_X = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.V_SCALE) fd.uv_scale_Y = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.BOUNDINGRADIUS) id++; + if (f1 & PART_FLAG.MASK) fd.masklimen = curPartState.data(id++); + if (f1 & PART_FLAG.PRIORITY) fd.priority = curPartState.data(id++); + if (f1 & PART_FLAG.INSTANCE_KEYFRAME) { + fd.instanceValue_curKeyframe = curPartState.data(id++); + fd.instanceValue_startFrame = curPartState.data(id++); + fd.instanceValue_endFrame = curPartState.data(id++); + fd.instanceValue_loopNum = curPartState.data(id++); + fd.instanceValue_speed = this.I2F(curPartState.data(id++)); + fd.instanceValue_loopflag = curPartState.data(id++); + } + if (f1 & PART_FLAG.EFFECT_KEYFRAME) { + fd.effectValue_curKeyframe = curPartState.data(id++); + fd.effectValue_startTime = curPartState.data(id++); + fd.effectValue_speed = this.I2F(curPartState.data(id++)); + fd.effectValue_loopflag = curPartState.data(id++); + } + if (f1 & PART_FLAG.VERTEX_TRANSFORM) { + fd.f_mesh = true; + const f = fd.i_transformVerts = curPartState.data(id++); + if (f & 1) { + fd.u00 = this.I2F(curPartState.data(id++)); + fd.v00 = this.I2F(curPartState.data(id++)); + } + if (f & 2) { + fd.u01 = this.I2F(curPartState.data(id++)); + fd.v01 = this.I2F(curPartState.data(id++)); + } + if (f & 4) { + fd.u10 = this.I2F(curPartState.data(id++)); + fd.v10 = this.I2F(curPartState.data(id++)); + } + if (f & 8) { + fd.u11 = this.I2F(curPartState.data(id++)); + fd.v11 = this.I2F(curPartState.data(id++)); + } + } + if (f1 & PART_FLAG.PARTS_COLOR) { + const f = curPartState.data(id++); + fd.colorBlendType = f & 255; + fd.useColorMatrix = fd.colorBlendType !== 1; + if (f & 4096) { + fd.colorRate = this.I2F(curPartState.data(id++)); + const bf = curPartState.data(id++); + const bf2 = curPartState.data(id++); + fd.colorArgb32 = bf << 16 | bf2; + fd.partsColorARGB = fd.colorArgb32 >>> 0; + if (fd.colorBlendType === 1) fd.tint = fd.colorArgb32 & 16777215; + } + } + if (f2 & PART_FLAG2.MESHDATA) { + const meshUv = this.curAnimation.meshsDataUv(index); + fd.meshIsBind = meshUv.uv(0); + fd.meshNum = meshUv.uv(1); + let mp = new Float32Array(fd.meshNum * 3); + for (let idx = 0; idx < fd.meshNum; idx++) { + const mx = this.I2F(curPartState.data(id++)); + const my = this.I2F(curPartState.data(id++)); + const mz = this.I2F(curPartState.data(id++)); + mp[idx * 3 + 0] = mx; + mp[idx * 3 + 1] = my; + mp[idx * 3 + 2] = mz; + } + fd.meshDataPoint = mp; + } + frameData[index] = fd; + this._prio2index[i] = index; + if (this.curAnimePackData.parts(index).type() === 0) frameData[index].cellIndex = -2; + } + this.frameDataCache = frameData; + this.currentCachedFrameNumber = frameNumber; + return frameData; + } + /** + * デフォルトデータを取得する + * @param {number} id - パーツ(レイヤー)ID + * @return {array} - データ + */ + GetDefaultDataByIndex(id) { + const curDefaultData = this.defaultFrameMap[id]; + let dfd = new FrameData(); + dfd.index = curDefaultData.index(); + dfd.lowflag = curDefaultData.lowflag(); + dfd.highflag = curDefaultData.highflag(); + dfd.priority = curDefaultData.priority(); + dfd.cellIndex = curDefaultData.cellIndex(); + dfd.opacity = curDefaultData.opacity(); + dfd.localopacity = curDefaultData.localopacity(); + dfd.masklimen = curDefaultData.masklimen(); + dfd.positionX = curDefaultData.positionX(); + dfd.positionY = curDefaultData.positionY(); + dfd.pivotX = curDefaultData.pivotX(); + dfd.pivotY = curDefaultData.pivotY(); + dfd.rotationX = curDefaultData.rotationX(); + dfd.rotationY = curDefaultData.rotationY(); + dfd.rotationZ = curDefaultData.rotationZ(); + dfd.scaleX = curDefaultData.scaleX(); + dfd.scaleY = curDefaultData.scaleY(); + dfd.localscaleX = curDefaultData.localscaleX(); + dfd.localscaleY = curDefaultData.localscaleY(); + dfd.size_X = curDefaultData.sizeX(); + dfd.size_Y = curDefaultData.sizeY(); + dfd.uv_move_X = curDefaultData.uvMoveX(); + dfd.uv_move_Y = curDefaultData.uvMoveY(); + dfd.uv_rotation = curDefaultData.uvRotation(); + dfd.uv_scale_X = curDefaultData.uvScaleX(); + dfd.uv_scale_Y = curDefaultData.uvScaleY(); + dfd.boundingRadius = curDefaultData.boundingRadius(); + dfd.instanceValue_curKeyframe = curDefaultData.instanceValueCurKeyframe(); + dfd.instanceValue_endFrame = curDefaultData.instanceValueEndFrame(); + dfd.instanceValue_startFrame = curDefaultData.instanceValueStartFrame(); + dfd.instanceValue_loopNum = curDefaultData.instanceValueLoopNum(); + dfd.instanceValue_speed = curDefaultData.instanceValueSpeed(); + dfd.instanceValue_loopflag = curDefaultData.instanceValueLoopflag(); + dfd.effectValue_curKeyframe = curDefaultData.effectValueCurKeyframe(); + dfd.effectValue_startTime = curDefaultData.effectValueStartTime(); + dfd.effectValue_speed = curDefaultData.effectValueSpeed(); + dfd.effectValue_loopflag = curDefaultData.effectValueLoopflag(); + dfd.f_hide = false; + dfd.f_flipH = false; + dfd.f_flipV = false; + dfd.f_mesh = false; + dfd.i_transformVerts = 0; + dfd.u00 = 0; + dfd.v00 = 0; + dfd.u01 = 0; + dfd.v01 = 0; + dfd.u10 = 0; + dfd.v10 = 0; + dfd.u11 = 0; + dfd.v11 = 0; + dfd.useColorMatrix = false; + dfd.colorBlendType = 0; + dfd.colorRate = 0; + dfd.colorArgb32 = 0; + dfd.meshIsBind = 0; + dfd.meshNum = 0; + dfd.meshDataPoint = null; + dfd.flag1 = 0; + dfd.flag2 = 0; + dfd.partsColorARGB = 0; + return dfd; + } + /** + * 親を遡って不透明度を継承する + * @param {number} opacity - 透明度 + * @param {number} partId - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {number} - 透明度 + */ + InheritOpacity(opacity, partId, frameNumber) { + opacity = this.GetFrameData(frameNumber)[partId].opacity / 255; + if (this._parentIndex[partId] >= 0) opacity = this.InheritOpacity(opacity, this._parentIndex[partId], frameNumber); + return opacity; + } + /** + * 親を遡って座標変換する(ローカルアトリビュート適用) + * @param {array} verts - 頂点情報配列 + * @param {number} partId - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformVertsLocal(verts, partId, frameNumber) { + const data = this.GetFrameData(frameNumber)[partId]; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + for (let i = 0; i < verts.length / 2; i++) { + let x = verts[i * 2]; + let y = verts[i * 2 + 1]; + if (data.i_transformVerts & 1 && i === 1) { + x += data.u00; + y -= data.v00; + } + if (data.i_transformVerts & 2 && i === 2) { + x += data.u01; + y -= data.v01; + } + if (data.i_transformVerts & 4 && i === 3) { + x += data.u10; + y -= data.v10; + } + if (data.i_transformVerts & 8 && i === 4) { + x += data.u11; + y -= data.v11; + } + x *= data.scaleX * data.localscaleX; + y *= data.scaleY * data.localscaleY; + verts[i * 2] = cos * x - sin * y + data.positionX; + verts[i * 2 + 1] = sin * x + cos * y - data.positionY; + if (data.f_flipH) verts[i * 2] = verts[0] * 2 - verts[i * 2]; + if (data.f_flipV) verts[i * 2 + 1] = verts[1] * 2 - verts[i * 2 + 1]; + } + if (this._parentIndex[partId] >= 0) verts = this.TransformVerts(verts, this._parentIndex[partId], frameNumber); + return verts; + } + /** + * 親を遡って座標変換する(ローカルアトリビュート適用) + * @param {array} verts - 頂点情報配列 + * @param {number} partId - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformMeshVertsLocal(verts, partId, frameNumber) { + const data = this.GetFrameData(frameNumber)[partId]; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + for (let i = 0; i < verts.length / 2; i++) { + let x = verts[i * 2]; + let y = verts[i * 2 + 1]; + x *= data.scaleX * data.localscaleX; + y *= data.scaleY * data.localscaleY; + verts[i * 2] = cos * x - sin * y + data.positionX; + verts[i * 2 + 1] = sin * x + cos * y - data.positionY; + } + if (this._parentIndex[partId] >= 0) verts = this.TransformVerts(verts, this._parentIndex[partId], frameNumber); + return verts; + } + /** + * 親を遡って座標変換する(ローカルアトリビュート適用) + * @param {array} pos - 頂点情報配列 + * @param {number} partId - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformPositionLocal(pos, partId, frameNumber) { + const data = this.GetFrameData(frameNumber)[partId]; + pos[4] += -data.rotationZ; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + const x = pos[0] * data.scaleX * data.localscaleX; + const y = pos[1] * data.scaleY * data.localscaleY; + pos[2] *= data.scaleX * data.localscaleX; + pos[3] *= data.scaleY * data.localscaleY; + pos[0] = cos * x - sin * y + data.positionX; + pos[1] = sin * x + cos * y - data.positionY; + if (this._parentIndex[partId] >= 0) pos = this.TransformPosition(pos, this._parentIndex[partId], frameNumber); + return pos; + } + /** + * 5頂点の中間点を求める + * @param {number} cx - 元の中心点 + * @param {number} cy - 元の中心点 + * @param {number} LUx - 左上座標 + * @param {number} LUy - 左上座標 + * @param {number} RUx - 右上座標 + * @param {number} RUy - 右上座標 + * @param {number} LDx - 左下座標 + * @param {number} LDy - 左下座標 + * @param {number} RDx - 右下座標 + * @param {number} RDy - 右下座標 + * @param vec2 + * @return {array} vec2 - 4頂点から算出した中心点の座標 + */ + static CoordinateGetDiagonalIntersection(cx, cy, LUx, LUy, RUx, RUy, LDx, LDy, RDx, RDy, vec2) { + const c1 = (LDy - RUy) * (LDx - LUx) - (LDx - RUx) * (LDy - LUy); + const c2 = (RDx - LUx) * (LDy - LUy) - (RDy - LUy) * (LDx - LUx); + const c3 = (RDx - LUx) * (LDy - RUy) - (RDy - LUy) * (LDx - RUx); + if (c3 <= 0 && c3 >= 0) return vec2; + const ca = c1 / c3; + const cb = c2 / c3; + if (0 <= ca && 1 >= ca && 0 <= cb && 1 >= cb) { + cx = LUx + ca * (RDx - LUx); + cy = LUy + ca * (RDy - LUy); + } + vec2[0] = cx; + vec2[1] = cy; + return vec2; + } + /** + * 親を遡って座標変換する + * @param {array} verts - 頂点情報配列 + * @param {number} id - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformVerts(verts, id, frameNumber) { + const data = this.GetFrameData(frameNumber)[id]; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + for (let i = 0; i < verts.length / 2; i++) { + let x = verts[i * 2]; + let y = verts[i * 2 + 1]; + x *= data.scaleX; + y *= data.scaleY; + verts[i * 2] = cos * x - sin * y + data.positionX; + verts[i * 2 + 1] = sin * x + cos * y - data.positionY; + if (data.f_flipH) verts[i * 2] = verts[0] * 2 - verts[i * 2]; + if (data.f_flipV) verts[i * 2 + 1] = verts[1] * 2 - verts[i * 2 + 1]; + } + if (this._parentIndex[id] >= 0) verts = this.TransformVerts(verts, this._parentIndex[id], frameNumber); + return verts; + } + /** + * 親を遡って座標変換する + * @param {array} pos - 頂点情報配列 + * @param {number} id - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformPosition(pos, id, frameNumber) { + const data = this.GetFrameData(frameNumber)[id]; + pos[4] += -data.rotationZ; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + const x = pos[0] * data.scaleX; + const y = pos[1] * data.scaleY; + pos[2] *= data.scaleX; + pos[3] *= data.scaleY; + pos[0] = cos * x - sin * y + data.positionX; + pos[1] = sin * x + cos * y - data.positionY; + if (this._parentIndex[id] >= 0) pos = this.TransformPosition(pos, this._parentIndex[id], frameNumber); + return pos; + } + /** + * 矩形セルメッシュの頂点情報のみ取得 + * @param {ssfblib.Cell} cell - セル + * @param {array} data - アニメーションフレームデータ + * @param verts + * @return {array} - 頂点情報配列 + */ + static GetVerts(cell, data, verts) { + const w = data.size_X / 2; + const h = data.size_Y / 2; + const px = data.size_X * -(data.pivotX + cell.pivotX()); + const py = data.size_Y * (data.pivotY + cell.pivotY()); + verts.set([ + px, + py, + px - w, + py - h, + px + w, + py - h, + px - w, + py + h, + px + w, + py + h + ]); + return verts; + } + /** + * 矩形セルメッシュの頂点情報のみ取得 + * @param {ssfblib.Cell} cell - セル + * @param {array} data - アニメーションフレームデータ + * @param verts + * @return {array} - 頂点情報配列 + */ + static GetMeshVerts(cell, data, verts) { + for (let idx = 0; idx < data.meshNum; idx++) { + verts[idx * 2] = data.meshDataPoint[idx * 3]; + verts[idx * 2 + 1] = -data.meshDataPoint[idx * 3 + 1]; + } + return verts; + } + static GetDummyVerts() { + return new Float32Array([ + 0, + 0, + -.5, + -.5, + .5, + -.5, + -.5, + .5, + .5, + .5 + ]); + } + }; + //#endregion + //#region src/loaders/PixiResourceLoaderImpl.ts + var PixiResourceLoaderImpl = class { + constructor() {} + load(sspjfile, sspjMap, onComplete) { + pixi_js.Assets.addBundle(sspjfile, sspjMap); + pixi_js.Assets.loadBundle(sspjfile).then(() => { + if (onComplete !== null) onComplete(null); + }).catch((e) => { + if (onComplete !== null) onComplete(e); + }); + } + unload(sspjfile, sspjMap, onComplete) { + pixi_js.Assets.unloadBundle(sspjfile).then(() => { + if (onComplete !== null) onComplete(null); + }).catch((error) => { + if (onComplete !== null) onComplete(error); + }); + } + texture(key) { + return pixi_js.Assets.get(key); + } + }; + //#endregion + //#region src/SS6ProjectResourceLoader.ts + var SS6ProjectResourceLoader = class { + constructor() { + this.loader = new PixiResourceLoaderImpl(); + } + load(sspjfile, sspjMap, onComplete) { + return this.loader.load(sspjfile, sspjMap, onComplete); + } + unload(sspjfile, sspjMap, onComplete = null) { + return this.loader.unload(sspjfile, sspjMap, onComplete); + } + texture(key) { + return this.loader.texture(key); + } + }; + //#endregion + //#region src/SS6Project.ts + let RESOURCE_PROGRESS = /* @__PURE__ */ function(RESOURCE_PROGRESS) { + RESOURCE_PROGRESS[RESOURCE_PROGRESS["NOT_READY"] = 0] = "NOT_READY"; + RESOURCE_PROGRESS[RESOURCE_PROGRESS["READY"] = 1] = "READY"; + return RESOURCE_PROGRESS; + }({}); + var SS6Project = class { + getBundle() { + return this.ssfbFile; + } + getTexture(key) { + return this.resourceLoader.texture(key); + } + constructor(arg1, arg2, arg3, arg4) { + this.sspjMap = {}; + this.resourceLoader = new SS6ProjectResourceLoader(); + if (typeof arg1 === "string" && arg3 === void 0) { + let ssfbPath = arg1; + this.ssfbPath = ssfbPath; + const index = ssfbPath.lastIndexOf("/"); + this.rootPath = ssfbPath.substring(0, index) + "/"; + this.ssfbFile = ssfbPath.substring(index + 1); + this.onComplete = arg2 === void 0 ? null : arg2; + this.status = RESOURCE_PROGRESS.NOT_READY; + this.LoadFlatBuffersProject(); + } else if (typeof arg2 === "object" && arg2.constructor === Uint8Array) { + this.ssfbPath = null; + this.rootPath = null; + this.ssfbFile = arg1; + let ssfbByte = arg2; + let imageBinaryMap = arg3; + this.onComplete = arg4 === void 0 ? null : arg4; + this.load(ssfbByte, imageBinaryMap); + } + } + dispose(callback = null) { + this.resourceLoader.unload(this.getBundle(), this.sspjMap, (error) => { + if (callback !== null) callback(); + }); + } + /** + * Load json and parse (then, load textures) + */ + LoadFlatBuffersProject() { + const self = this; + fetch(this.ssfbPath, { method: "get" }).then((response) => { + if (response.ok) return Promise.resolve(response.arrayBuffer()); + else return Promise.reject(new Error(response.statusText)); + }).then((a) => { + self.fbObj = Utils.getProjectData(new Uint8Array(a)); + self.LoadCellResources(); + }).catch((error) => { + if (this.onComplete !== null) this.onComplete(null, error); + }); + } + /** + * Load textures + */ + LoadCellResources() { + let ids = []; + this.sspjMap = {}; + for (let i = 0; i < this.fbObj.cellsLength(); i++) { + const cellMap = this.fbObj.cells(i).cellMap(); + const cellMapIndex = cellMap.index(); + if (!ids.some(function(id) { + return id === cellMapIndex; + })) { + ids.push(cellMapIndex); + const name = cellMap.name(); + this.sspjMap[name] = this.rootPath + cellMap.imagePath(); + } + } + const self = this; + this.resourceLoader.load(this.getBundle(), this.sspjMap, (error) => { + if (error === null) { + self.status = RESOURCE_PROGRESS.READY; + if (self.onComplete !== null) self.onComplete(this, null); + } else if (this.onComplete !== null) this.onComplete(null, error); + }); + } + load(bytes, imageBinaryMap) { + this.fbObj = Utils.getProjectData(bytes); + let assetMap = {}; + for (let imageName in imageBinaryMap) { + const binary = imageBinaryMap[imageName]; + let b = ""; + const len = binary.byteLength; + for (let i = 0; i < len; i++) b += String.fromCharCode(binary[i]); + assetMap[imageName] = "data:image/png;base64," + btoa(b); + } + const self = this; + this.resourceLoader.load(this.getBundle(), assetMap, (error) => { + if (error === null) { + self.status = RESOURCE_PROGRESS.READY; + if (self.onComplete !== null) self.onComplete(this, null); + } else if (this.onComplete !== null) this.onComplete(null, error); + }); + } + }; + //#endregion + //#region src/SS6PlayerInstanceKeyParam.ts + /** + * インスタンス差し替え用のキーパラメーター + */ + var SS6PlayerInstanceKeyParam = class { + constructor() { + this.refStartframe = 0; + this.refEndframe = 0; + this.refSpeed = 1; + this.refloopNum = 0; + this.infinity = false; + this.reverse = false; + this.pingpong = false; + this.independent = false; + } + }; + //#endregion + exports.SS6Player = class SS6Player extends pixi_js.Container { + get startFrame() { + return this._startFrame; + } + get endFrame() { + return this._endFrame; + } + get totalFrame() { + return this.playerLib.animationData.totalFrames(); + } + get fps() { + return this.playerLib.animationData.fps(); + } + get frameNo() { + return Math.floor(this._currentFrame); + } + set loop(loop) { + this._loops = loop; + } + get loop() { + return this._loops; + } + get isPlaying() { + return this._isPlaying; + } + get isPausing() { + return this._isPausing; + } + get animePackName() { + return this.playerLib.animePackName; + } + get animeName() { + return this.playerLib.animeName; + } + /** + * SS6Player (extends PIXI.Container) + * @constructor + * @param {SS6Project} ss6project - SS6Project that contains animations. + * @param {string} animePackName - The name of animePack(SSAE). + * @param {string} animeName - The name of animation. + */ + constructor(ss6project, animePackName = null, animeName = null) { + super(); + this.liveFrame = []; + this.colorMatrixFilterCache = []; + this.parentAlpha = 1; + this.prevCellID = []; + this.prevPartObject = []; + this.changeCellID = []; + this.changeVisible = []; + this.changeTint = []; + this.substituteOverWrite = []; + this.substituteKeyParam = []; + this.alphaBlendType = []; + this.defaultColorFilter = new pixi_js.ColorMatrixFilter(); + this._instancePos = new Float32Array(5); + this._CoordinateGetDiagonalIntersectionVec2 = new Float32Array(2); + this.isRenderGroup = true; + this.ss6project = ss6project; + this.playerLib = new Player(ss6project.fbObj, animePackName, animeName); + this.parentAlpha = 1; + if (animePackName !== null && animeName !== null) this.Setup(animePackName, animeName); + this.on("added", (...args) => { + pixi_js.Ticker.shared.add(this.Update, this); + }, this); + this.on("removed", (...args) => { + pixi_js.Ticker.shared.remove(this.Update, this); + }, this); + } + /** + * Setup + * @param {string} animePackName - The name of animePack(SSAE). + * @param {string} animeName - The name of animation. + */ + Setup(animePackName, animeName) { + this.playerLib.Setup(animePackName, animeName); + this.clearCaches(); + const animePackData = this.playerLib.animePackData; + const partsLength = animePackData.partsLength(); + this.prevCellID = new Array(partsLength); + this.prevPartObject = new Array(partsLength); + this.changeCellID = new Array(partsLength); + this.changeVisible = new Array(partsLength); + this.changeTint = new Array(partsLength); + this.substituteOverWrite = new Array(partsLength); + this.substituteKeyParam = new Array(partsLength); + for (let j = 0; j < partsLength; j++) { + const index = animePackData.parts(j).index(); + this.prevCellID[index] = -1; + this.prevPartObject[index] = null; + this.changeCellID[index] = -1; + this.changeVisible[index] = true; + this.changeTint[index] = null; + this.substituteOverWrite[index] = null; + this.substituteKeyParam[index] = null; + } + this.alphaBlendType = this.GetPartsBlendMode(); + this._isPlaying = false; + this._isPausing = true; + this._startFrame = this.playerLib.animationData.startFrames(); + this._endFrame = this.playerLib.animationData.endFrames(); + this._currentFrame = this.playerLib.animationData.startFrames(); + this.nextFrameTime = 0; + this._loops = -1; + this.skipEnabled = true; + this.updateInterval = 1e3 / this.playerLib.animationData.fps(); + this.playDirection = 1; + this.onUserDataCallback = null; + this.playEndCallback = null; + this.parentAlpha = 1; + } + clearCaches() { + this.liveFrame = []; + this.colorMatrixFilterCache = []; + } + Update(ticker) { + this.UpdateInternal(ticker.deltaMS); + } + /** + * Update is called PIXI.ticker + * @param {number} delta - expected 1 + */ + UpdateInternal(delta, rewindAfterReachingEndFrame = true) { + const elapsedTime = delta; + if (this._isPlaying && !this._isPausing && this.updateInterval !== 0) { + this.nextFrameTime += elapsedTime; + if (this.nextFrameTime >= this.updateInterval) { + let playEndFlag = false; + const step = this.nextFrameTime / this.updateInterval; + this.nextFrameTime -= this.updateInterval * step; + let s = this.skipEnabled ? step * this.playDirection : this.playDirection; + let next = this._currentFrame + s; + let nextFrameNo = Math.floor(next); + let nextFrameDecimal = next - nextFrameNo; + let currentFrameNo = Math.floor(this._currentFrame); + if (this.playDirection >= 1) for (let c = nextFrameNo - currentFrameNo; c; c--) { + let incFrameNo = currentFrameNo + 1; + if (incFrameNo > this._endFrame) if (this._loops === -1) incFrameNo = this._startFrame; + else { + this._loops--; + playEndFlag = true; + if (this._loops === 0) { + this._isPlaying = false; + incFrameNo = rewindAfterReachingEndFrame ? this._startFrame : this._endFrame; + break; + } else incFrameNo = this._startFrame; + } + currentFrameNo = incFrameNo; + if (this._isPlaying) { + if (this.playerLib.HaveUserData(currentFrameNo)) { + if (this.onUserDataCallback !== null) this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); + } + } + } + if (this.playDirection <= -1) for (let c = currentFrameNo - nextFrameNo; c; c--) { + let decFrameNo = currentFrameNo - 1; + if (decFrameNo < this._startFrame) if (this._loops === -1) decFrameNo = this._endFrame; + else { + this._loops--; + playEndFlag = true; + if (this._loops === 0) { + this._isPlaying = false; + decFrameNo = rewindAfterReachingEndFrame ? this._endFrame : this._startFrame; + break; + } else decFrameNo = this._endFrame; + } + currentFrameNo = decFrameNo; + if (this._isPlaying) { + if (this.playerLib.HaveUserData(currentFrameNo)) { + if (this.onUserDataCallback !== null) this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); + } + } + } + this._currentFrame = currentFrameNo + nextFrameDecimal; + if (playEndFlag) { + if (this.playEndCallback !== null) this.playEndCallback(this); + } + this.SetFrameAnimation(Math.floor(this._currentFrame), step); + } + } else this.SetFrameAnimation(Math.floor(this._currentFrame)); + } + /** + * アニメーションの速度を設定する (deprecated この関数は削除される可能性があります) + * @param {number} fps - アニメーション速度(frame per sec.) + * @param {boolean} _skipEnabled - 描画更新が間に合わないときにフレームをスキップするかどうか + */ + SetAnimationFramerate(fps, _skipEnabled = true) { + if (fps <= 0) return; + this.updateInterval = 1e3 / fps; + this.skipEnabled = _skipEnabled; + } + /** + * アニメーションの速度を設定する + * @param {number} fpsRate - アニメーション速度(設定値に対する乗率)負数設定で逆再生 + * @param {boolean} _skipEnabled - 描画更新が間に合わないときにフレームをスキップするかどうか + */ + SetAnimationSpeed(fpsRate, _skipEnabled = true) { + if (fpsRate === 0) return; + this.playDirection = fpsRate > 0 ? 1 : -1; + this.updateInterval = 1e3 / (this.playerLib.animationData.fps() * fpsRate * this.playDirection); + this.skipEnabled = _skipEnabled; + } + /** + * アニメーション再生設定 + * @param {number} _startframe - 開始フレーム番号(マイナス設定でデフォルト値を変更しない) + * @param {number} _endframe - 終了フレーム番号(マイナス設定でデフォルト値を変更しない) + * @param {number} _loops - ループ回数(ゼロもしくはマイナス設定で無限ループ) + */ + SetAnimationSection(_startframe = -1, _endframe = -1, _loops = -1) { + if (_startframe >= 0 && _startframe < this.playerLib.animationData.totalFrames()) this._startFrame = _startframe; + if (_endframe >= 0 && _endframe < this.playerLib.animationData.totalFrames()) this._endFrame = _endframe; + if (_loops > 0) this._loops = _loops; + else this._loops = -1; + this._currentFrame = this.playDirection > 0 ? this._startFrame : this._endFrame; + } + /** + * アニメーション再生を開始する + */ + Play(frameNo) { + this._isPlaying = true; + this._isPausing = false; + let currentFrame = this.playDirection > 0 ? this._startFrame : this._endFrame; + if (frameNo && typeof frameNo === "number") currentFrame = frameNo; + this._currentFrame = currentFrame; + this.resetLiveFrame(); + const currentFrameNo = Math.floor(this._currentFrame); + this.SetFrameAnimation(currentFrameNo); + if (this.playerLib.HaveUserData(currentFrameNo)) { + if (this.onUserDataCallback !== null) this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); + } + } + /** + * アニメーション再生を一時停止する + */ + Pause() { + this._isPausing = true; + } + /** + * アニメーション再生を再開する + */ + Resume() { + this._isPausing = false; + } + /** + * アニメーションを停止する + * @constructor + */ + Stop() { + this._isPlaying = false; + } + /** + * アニメーション再生を位置(フレーム)を設定する + */ + SetFrame(frame) { + this._currentFrame = frame; + } + NextFrame() { + const currentFrame = Math.floor(this._currentFrame); + if (currentFrame === this.endFrame) return; + this.SetFrame(currentFrame + 1); + } + PrevFrame() { + const currentFrame = Math.floor(this._currentFrame); + if (currentFrame === 0) return; + this.SetFrame(currentFrame - 1); + } + /** + * アニメーションの透明度を設定する + */ + SetAlpha(alpha) { + this.parentAlpha = alpha; + } + /** + * エラー処理 + * @param {any} _error - エラー + */ + ThrowError(_error) {} + /** + * ユーザーデータコールバックの設定 + * @param fn + * @constructor + * + * ユーザーデータのフォーマット + * data = [[d0,d1,...,d10],[da0,da1,...,da10],...]) + * data.length : 当該フレームでユーザーデータの存在するパーツ(レイヤー)数 + * d0 : パーツ(レイヤー)番号 + * d1 : 有効データビット(&1:int, &2:rect(int*4), &4:pos(int*2), &8:string) + * d2 : int(int) + * d3 : rect0(int) + * d4 : rect1(int) + * d5 : rect2(int) + * d6 : rect3(int) + * d7 : pos0(int) + * d8 : pos1(int) + * d9 : string.length(int) + * d10: string(string) + * + */ + SetUserDataCalback(fn) { + this.onUserDataCallback = fn; + } + /** + * 再生終了時に呼び出されるコールバックを設定します. + * @param fn + * @constructor + * + * ループ回数分再生した後に呼び出される点に注意してください。 + * 無限ループで再生している場合はコールバックが発生しません。 + * + */ + SetPlayEndCallback(fn) { + this.playEndCallback = fn; + } + getCellIndex(sscename, cellname) { + let changeCellIndex = -1; + if (sscename !== "" && cellname !== "") { + const fbObj = this.playerLib.fbObj; + const numCells = this.playerLib.fbObj.numCells(); + for (let i = 0; i < numCells; i++) { + const cell = fbObj.cells(i); + const name1 = cell.name(); + const name2 = cell.cellMap().name(); + if (cellname === name1 && sscename === name2) { + changeCellIndex = i; + break; + } + } + } + return changeCellIndex; + } + /** + * Retrieves the index of a part based on its name from the anime pack data. + * + * @param {string} partsname - The name of the part to search for. + * @return {number} The index of the part if found, or -1 if the part is not found. + */ + GetPartIndexFromName(partsname) { + const animePackData = this.playerLib.animePackData; + const partsLength = animePackData.partsLength(); + let partIndex = -1; + for (let i = 0; i < partsLength; i++) { + const part = animePackData.parts(i); + const index = part.index(); + if (part.name() === partsname) { + partIndex = index; + break; + } + } + return partIndex; + } + /** + * パーツに割り当たるセルを変更します. + * + * @param {string} partsname - パーツ名 + * @param {string} sscename - セルマップ名 + * @param {string} cellname - 表示させたいセル名 + * + * @return {[number, number]} [パーツ名の index, セル名 index] のタプルを返します。見つからない場合は -1 を返します。 + */ + SetPartCell(partsname, sscename, cellname) { + let changeCellIndex = -1; + let partIndex = -1; + if (this.playerLib.animationData) { + changeCellIndex = this.getCellIndex(sscename, cellname); + partIndex = this.GetPartIndexFromName(partsname); + this.SetPartCellByIndex(partIndex, changeCellIndex); + } + return [partIndex, changeCellIndex]; + } + /** + * パーツに割り当たるセルをインデックスで指定して変更します。 + * + * @param {number} partIndex - The index of the part to be updated. Must not be -1 to perform the update. + * @param {number} changeCellIndex - The new cell index to set for the specified partIndex. + * @return {void} This method does not return a value. + */ + SetPartCellByIndex(partIndex, changeCellIndex) { + if (partIndex !== -1) { + this.changeCellID[partIndex] = changeCellIndex; + return true; + } + return false; + } + /** + * Sets the visibility of a specific part by its name. + * + * @param {string} partsname - The name of the part whose visibility is to be set. + * @param {boolean} visible - A boolean indicating whether the part should be visible (true) or hidden (false). + * @return {boolean} Returns true if the operation was successful, false otherwise. + */ + SetPartVisible(partsname, visible) { + if (this.playerLib.animationData) { + const partIndex = this.GetPartIndexFromName(partsname); + return this.SetPartVisibleByIndex(partIndex, visible); + } + return false; + } + /** + * Sets the visibility of a part identified by its index. + * + * @param {number} partIndex - The index of the part to update. Must not be -1. + * @param {boolean} visible - A boolean indicating whether the part should be visible (true) or hidden (false). + * @return {boolean} Returns true if the visibility was successfully updated, otherwise returns false. + */ + SetPartVisibleByIndex(partIndex, visible) { + if (partIndex !== -1) { + this.changeVisible[partIndex] = visible; + return true; + } + return false; + } + /** + * Sets the tint color for a specific part of the player's animation. + * + * @param {string} partName - The name of the part to apply the tint to. + * @param {number} tint - The tint value to apply, represented as a number. + * @return {boolean} Returns true if the tint was successfully applied; otherwise, returns false. + */ + SetPartTint(partName, tint) { + if (this.playerLib.animationData) { + const partIndex = this.GetPartIndexFromName(partName); + return this.SetPartTintByIndex(partIndex, tint); + } + return false; + } + /** + * Updates the tint color of a specific part identified by its index. + * + * @param {number} partIndex - The index of the part for which the tint needs to be set. A value of -1 indicates no part is targeted. + * @param {number} tint - The tint value to be applied to the specified part. + * @return {boolean} Returns true if the tint is successfully applied, otherwise returns false. + */ + SetPartTintByIndex(partIndex, tint) { + if (partIndex !== -1) { + this.changeTint[partIndex] = tint; + return true; + } + return false; + } + /** + * パーツの描画モードを取得する + * @return {array} - 全パーツの描画モード + */ + GetPartsBlendMode() { + const animePacks = this.playerLib.animePackData; + const l = animePacks.partsLength(); + let ret = []; + for (let i = 0; i < l; i++) { + const alphaBlendType = animePacks.parts(i).alphaBlendType(); + let blendMode; + switch (alphaBlendType) { + case 0: + blendMode = "normal"; + break; + case 1: + blendMode = "multiply"; + break; + case 2: + blendMode = "add"; + break; + case 3: + blendMode = "subtract"; + break; + case 4: + blendMode = "multiply"; + break; + case 5: + blendMode = "screen"; + break; + case 6: + blendMode = "exclusion"; + break; + case 7: + blendMode = "normal"; + break; + default: + blendMode = "subtract"; + break; + } + ret.push(blendMode); + } + return ret; + } + /** + * パーツカラーのブレンド用カラーマトリクス + * @param {number} blendType - ブレンド方法(0:mix, 1:multiply, 2:add, 3:sub) + * @param {number} rate - ミックス時の混色レート + * @param {number} argb32 - パーツカラー(単色) + * @return {PIXI.filters.ColorMatrixFilter} - カラーマトリクス + */ + GetColorMatrixFilter(blendType, rate, argb32) { + const key = blendType.toString() + "_" + rate.toString() + "_" + argb32.toString(); + if (this.colorMatrixFilterCache[key]) return this.colorMatrixFilterCache[key]; + const colorMatrix = new pixi_js.ColorMatrixFilter(); + const ca = ((argb32 & 4278190080) >>> 24) / 255; + const cr = ((argb32 & 16711680) >>> 16) / 255; + const cg = ((argb32 & 65280) >>> 8) / 255; + const cb = (argb32 & 255) / 255; + if (blendType === 0) { + const rate_i = 1 - rate; + colorMatrix.matrix = [ + rate_i, + 0, + 0, + 0, + cr * rate, + 0, + rate_i, + 0, + 0, + cg * rate, + 0, + 0, + rate_i, + 0, + cb * rate, + 0, + 0, + 0, + 1, + 0 + ]; + } else if (blendType === 1) colorMatrix.matrix = [ + cr, + 0, + 0, + 0, + 0, + 0, + cg, + 0, + 0, + 0, + 0, + 0, + cb, + 0, + 0, + 0, + 0, + 0, + ca, + 0 + ]; + else if (blendType === 2) colorMatrix.matrix = [ + 1, + 0, + 0, + 0, + cr, + 0, + 1, + 0, + 0, + cg, + 0, + 0, + 1, + 0, + cb, + 0, + 0, + 0, + ca, + 0 + ]; + else if (blendType === 3) colorMatrix.matrix = [ + 1, + 0, + 0, + 0, + -cr, + 0, + 1, + 0, + 0, + -cg, + 0, + 0, + 1, + 0, + -cb, + 0, + 0, + 0, + ca, + 0 + ]; + this.colorMatrixFilterCache[key] = colorMatrix; + return colorMatrix; + } + /** + * 1フレーム分のアニメーション描画 + * @param {number} frameNumber - フレーム番号 + * @param {number} ds - delta step + */ + SetFrameAnimation(frameNumber, ds = 0) { + const fd = this.playerLib.GetFrameData(frameNumber); + this.removeChildren(); + const l = fd.length; + for (let ii = 0; ii < l; ii = ii + 1 | 0) { + const i = this.playerLib.prio2index[ii]; + if (!this.changeVisible[i]) continue; + const data = fd[i]; + const origCellID = data.cellIndex; + const cellID = this.changeCellID[i] !== -1 ? this.changeCellID[i] : origCellID; + let partObject = this.prevPartObject[i]; + const part = this.playerLib.animePackData.parts(i); + const partType = part.type(); + let overWrite = this.substituteOverWrite[i] !== null ? this.substituteOverWrite[i] : false; + let overWritekeyParam = this.substituteKeyParam[i]; + switch (partType) { + case SsPartType.Instance: + if (partObject == null) { + partObject = this.MakeCellPlayer(part.refname()); + partObject.label = part.name(); + } + break; + case SsPartType.Normal: + case SsPartType.Mask: + if (cellID >= 0 && this.prevCellID[i] !== cellID) { + if (partObject != null) partObject.destroy(); + partObject = this.MakeCellMesh(cellID); + partObject.label = part.name(); + } + break; + case SsPartType.Mesh: + if (cellID >= 0 && this.prevCellID[i] !== cellID) { + if (partObject != null) partObject.destroy(); + partObject = this.MakeMeshCellMesh(i, cellID, origCellID); + partObject.label = part.name(); + } + break; + case SsPartType.Nulltype: + case SsPartType.Joint: + if (this.prevCellID[i] !== cellID) { + if (partObject != null) partObject.destroy(); + partObject = new pixi_js.Container(); + partObject.label = part.name(); + } + break; + default: + if (cellID >= 0 && this.prevCellID[i] !== cellID) { + if (partObject != null) partObject.destroy(); + partObject = this.MakeCellMesh(cellID); + partObject.label = part.name(); + } + break; + } + if (partObject == null) continue; + this.prevCellID[i] = cellID; + this.prevPartObject[i] = partObject; + switch (partType) { + case SsPartType.Instance: { + const instance = partObject; + this._instancePos[0] = 0; + this._instancePos[1] = 0; + this._instancePos[2] = 1; + this._instancePos[3] = 1; + this._instancePos[4] = 0; + this._instancePos = this.playerLib.TransformPositionLocal(this._instancePos, data.index, frameNumber); + instance.rotation = this._instancePos[4] * Math.PI / 180; + instance.position.set(this._instancePos[0], this._instancePos[1]); + instance.scale.set(this._instancePos[2], this._instancePos[3]); + let opacity = data.opacity / 255; + if (data.localopacity < 255) opacity = data.localopacity / 255; + instance.SetAlpha(opacity * this.parentAlpha); + instance.visible = !data.f_hide; + let refKeyframe = data.instanceValue_curKeyframe; + let refStartframe = data.instanceValue_startFrame; + let refEndframe = data.instanceValue_endFrame; + let refSpeed = data.instanceValue_speed; + let refloopNum = data.instanceValue_loopNum; + let infinity = false; + let reverse = false; + let pingpong = false; + let independent = false; + const INSTANCE_LOOP_FLAG_INFINITY = 1; + const INSTANCE_LOOP_FLAG_REVERSE = 2; + const INSTANCE_LOOP_FLAG_PINGPONG = 4; + const INSTANCE_LOOP_FLAG_INDEPENDENT = 8; + const lflags = data.instanceValue_loopflag; + if (lflags & INSTANCE_LOOP_FLAG_INFINITY) infinity = true; + if (lflags & INSTANCE_LOOP_FLAG_REVERSE) reverse = true; + if (lflags & INSTANCE_LOOP_FLAG_PINGPONG) pingpong = true; + if (lflags & INSTANCE_LOOP_FLAG_INDEPENDENT) independent = true; + if (overWrite) { + refStartframe = overWritekeyParam.refStartframe; + refEndframe = overWritekeyParam.refEndframe; + refSpeed = overWritekeyParam.refSpeed; + refloopNum = overWritekeyParam.refloopNum; + infinity = overWritekeyParam.infinity; + reverse = overWritekeyParam.reverse; + pingpong = overWritekeyParam.pingpong; + independent = overWritekeyParam.independent; + } + if (instance._startFrame !== refStartframe || instance._endFrame !== refEndframe) instance.SetAnimationSection(refStartframe, refEndframe); + let time = frameNumber; + if (independent === true) { + this.liveFrame[ii] += ds; + time = Math.floor(this.liveFrame[ii]); + } + const selfTopKeyframe = refKeyframe; + let reftime = Math.floor((time - selfTopKeyframe) * refSpeed); + if (reftime < 0) continue; + if (selfTopKeyframe > time) continue; + const inst_scale = refEndframe - refStartframe + 1; + if (inst_scale <= 0) continue; + let nowloop = Math.floor(reftime / inst_scale); + let checkloopnum = refloopNum; + if (pingpong) checkloopnum = checkloopnum * 2; + if (!infinity) { + if (nowloop >= checkloopnum) { + reftime = inst_scale - 1; + nowloop = checkloopnum - 1; + } + } + const temp_frame = Math.floor(reftime % inst_scale); + let _time = 0; + if (pingpong && nowloop % 2 === 1) if (reverse) reverse = false; + else reverse = true; + if (this.playDirection <= -1) reverse = !reverse; + if (reverse) _time = refEndframe - temp_frame; + else _time = temp_frame + refStartframe; + instance.SetFrame(Math.floor(_time)); + this.addChild(instance); + break; + } + case SsPartType.Normal: + case SsPartType.Mesh: + case SsPartType.Joint: + case SsPartType.Mask: { + const mesh = partObject; + const meshVertexBuffer = mesh.geometry.attributes.aPosition.buffer; + let meshVertex = meshVertexBuffer.data; + const cell = this.playerLib.fbObj.cells(cellID); + let verts; + if (partType === SsPartType.Mesh) if (data.meshIsBind === 0) verts = this.playerLib.TransformMeshVertsLocal(Player.GetMeshVerts(cell, data, meshVertex), data.index, frameNumber); + else verts = Player.GetMeshVerts(cell, data, meshVertex); + else { + verts = partType === SsPartType.Joint ? new Float32Array(10) : meshVertex; + verts = this.playerLib.TransformVertsLocal(Player.GetVerts(cell, data, verts), data.index, frameNumber); + } + if (data.flag1 & PART_FLAG.VERTEX_TRANSFORM) { + const vertexCoordinateLUx = verts[6]; + const vertexCoordinateLUy = verts[7]; + const vertexCoordinateLDx = verts[2]; + const vertexCoordinateLDy = verts[3]; + const vertexCoordinateRUx = verts[8]; + const vertexCoordinateRUy = verts[9]; + const vertexCoordinateRDx = verts[4]; + const vertexCoordinateRDy = verts[5]; + const CoordinateLURUx = (vertexCoordinateLUx + vertexCoordinateRUx) * .5; + const CoordinateLURUy = (vertexCoordinateLUy + vertexCoordinateRUy) * .5; + const CoordinateLULDx = (vertexCoordinateLUx + vertexCoordinateLDx) * .5; + const CoordinateLULDy = (vertexCoordinateLUy + vertexCoordinateLDy) * .5; + const CoordinateLDRDx = (vertexCoordinateLDx + vertexCoordinateRDx) * .5; + const CoordinateLDRDy = (vertexCoordinateLDy + vertexCoordinateRDy) * .5; + const CoordinateRURDx = (vertexCoordinateRUx + vertexCoordinateRDx) * .5; + const CoordinateRURDy = (vertexCoordinateRUy + vertexCoordinateRDy) * .5; + const vec2 = Player.CoordinateGetDiagonalIntersection(verts[0], verts[1], CoordinateLURUx, CoordinateLURUy, CoordinateRURDx, CoordinateRURDy, CoordinateLULDx, CoordinateLULDy, CoordinateLDRDx, CoordinateLDRDy, this._CoordinateGetDiagonalIntersectionVec2); + verts[0] = vec2[0]; + verts[1] = vec2[1]; + } + const px = verts[0]; + const py = verts[1]; + for (let j = 0; j < verts.length / 2; j++) { + verts[j * 2] -= px; + verts[j * 2 + 1] -= py; + } + meshVertex = verts; + meshVertexBuffer.update(); + if (data.flag1 & PART_FLAG.U_MOVE || data.flag1 & PART_FLAG.V_MOVE || data.flag1 & PART_FLAG.U_SCALE || data.flag1 & PART_FLAG.V_SCALE || data.flag1 & PART_FLAG.UV_ROTATION) { + const u1 = cell.u1() + data.uv_move_X; + const u2 = cell.u2() + data.uv_move_X; + const v1 = cell.v1() + data.uv_move_Y; + const v2 = cell.v2() + data.uv_move_Y; + const cx = (u2 + u1) / 2; + const cy = (v2 + v1) / 2; + const uvw = (u2 - u1) / 2 * data.uv_scale_X; + const uvh = (v2 - v1) / 2 * data.uv_scale_Y; + const meshUvsBuffer = mesh.geometry.attributes.aUV.buffer; + let meshUvs = mesh.geometry.uvs; + meshUvs[0] = cx; + meshUvs[1] = cy; + meshUvs[2] = cx - uvw; + meshUvs[3] = cy - uvh; + meshUvs[4] = cx + uvw; + meshUvs[5] = cy - uvh; + meshUvs[6] = cx - uvw; + meshUvs[7] = cy + uvh; + meshUvs[8] = cx + uvw; + meshUvs[9] = cy + uvh; + if (data.flag1 & PART_FLAG.UV_ROTATION) { + const rot = data.uv_rotation * Math.PI / 180; + for (let idx = 0; idx < 5; idx++) { + const dx = meshUvs[idx * 2 + 0] - cx; + const dy = meshUvs[idx * 2 + 1] - cy; + const cos = Math.cos(rot); + const sin = Math.sin(rot); + const tmpX = cos * dx - sin * dy; + const tmpY = sin * dx + cos * dy; + meshUvs[idx * 2 + 0] = cx + tmpX; + meshUvs[idx * 2 + 1] = cy + tmpY; + } + } + meshUvsBuffer.update(); + } + mesh.position.set(px, py); + let opacity = data.opacity / 255; + if (data.localopacity < 255) opacity = data.localopacity / 255; + mesh.alpha = opacity * this.parentAlpha; + mesh.visible = !data.f_hide; + if (data.useColorMatrix) mesh.filters = [this.GetColorMatrixFilter(data.colorBlendType, data.colorRate, data.colorArgb32)]; + if (this.changeTint[i] !== null) mesh.tint = this.changeTint[i]; + else if (data.tint) { + mesh.tint = data.tint; + const ca = ((data.partsColorARGB & 4278190080) >>> 24) / 255; + mesh.alpha = mesh.alpha * ca; + } + const blendMode = this.alphaBlendType[i]; + if (blendMode === "multiply" || blendMode === "screen") mesh.alpha = 1; + if (partType !== SsPartType.Mask) this.addChild(mesh); + break; + } + case SsPartType.Nulltype: { + const container = partObject; + container.alpha = this.playerLib.InheritOpacity(1, data.index, frameNumber) * data.localopacity / 255; + const verts = this.playerLib.TransformVerts(Player.GetDummyVerts(), data.index, frameNumber); + const px = verts[0]; + const py = verts[1]; + container.position.set(px, py); + const ax = Math.atan2(verts[5] - verts[3], verts[4] - verts[2]); + const ay = Math.atan2(verts[7] - verts[3], verts[6] - verts[2]); + container.rotation = ax; + container.skew.x = ay - ax - Math.PI / 2; + break; + } + } + } + } + /** + * + * 名前を指定してパーツの再生するインスタンスアニメを変更します。 + * 指定したパーツがインスタンスパーツでない場合、falseを返します. + * インスタンスパーツ名はディフォルトでは「ssae名:モーション名」とつけられています。 + * 再生するアニメの名前は アニメパック名 と アニメ名 で指定してください。 + * 現在再生しているアニメを指定することは入れ子となり無限ループとなるためできません。 + * + * 変更するアニメーションは同じ ssfb に含まれる必要があります。 + * インスタンスパーツが再生するアニメを変更します + * + * インスタンスキーは + * + * @param partName SS上のパーツ名 + * @param animePackName 参照するアニメパック名 + * @param animeName 参照するアニメ名 + * @param overWrite インスタンスキーの上書きフラグ + * @param keyParam インスタンスキー + * + * @constructor + */ + ChangeInstanceAnime(partName, animePackName, animeName, overWrite, keyParam = null) { + let rc = false; + if (this.animePackName !== null && this.animeName !== null) { + let packData = this.playerLib.animePackData; + let partsLength = packData.partsLength(); + for (let index = 0; index < partsLength; index++) { + let partData = packData.parts(index); + if (partData.name() === partName) { + let mesh = this.prevPartObject[index]; + if (mesh === null || mesh instanceof SS6Player) { + this.substituteOverWrite[index] = overWrite; + let keyParamAsSubstitute; + if (keyParam !== null) { + keyParamAsSubstitute = keyParam; + mesh = this.MakeCellPlayer(animePackName + "/" + animeName, keyParam.refStartframe); + } else { + mesh = this.MakeCellPlayer(animePackName + "/" + animeName); + keyParamAsSubstitute = new SS6PlayerInstanceKeyParam(); + keyParamAsSubstitute.refStartframe = mesh.startFrame; + keyParamAsSubstitute.refEndframe = mesh.endFrame; + } + mesh.label = partData.name(); + this.prevPartObject[index] = mesh; + this.substituteKeyParam[index] = keyParamAsSubstitute; + rc = true; + break; + } + } + } + } + return rc; + } + /** + * 矩形セルをメッシュ(5verts4Tri)で作成 + * @param {number} id - セルID + * @return {PIXI.Mesh} - メッシュ + */ + MakeCellMesh(id) { + const cell = this.playerLib.fbObj.cells(id); + const u1 = cell.u1(); + const u2 = cell.u2(); + const v1 = cell.v1(); + const v2 = cell.v2(); + const w = cell.width() / 2; + const h = cell.height() / 2; + return new pixi_js.Mesh({ + geometry: new pixi_js.MeshGeometry({ + positions: new Float32Array([ + 0, + 0, + -w, + -h, + w, + -h, + -w, + h, + w, + h + ]), + uvs: new Float32Array([ + (u1 + u2) / 2, + (v1 + v2) / 2, + u1, + v1, + u2, + v1, + u1, + v2, + u2, + v2 + ]), + indices: new Uint32Array([ + 0, + 1, + 2, + 0, + 2, + 4, + 0, + 4, + 3, + 0, + 1, + 3 + ]), + topology: "triangle-list" + }), + texture: this.ss6project.getTexture(cell.cellMap().name()) + }); + } + /** + * メッシュセルからメッシュを作成 + * @param {number} partID - パーツID + * @param {number} cellID - セルID + * @param {number} origCellID - オリジナルのセルID + * @return {PIXI.Mesh} - メッシュ + */ + MakeMeshCellMesh(partID, cellID, origCellID) { + const meshsDataUV = this.playerLib.animationData.meshsDataUv(partID); + const uvLength = meshsDataUV.uvLength(); + if (uvLength > 0) { + const cell = this.playerLib.fbObj.cells(cellID); + const origCell = this.playerLib.fbObj.cells(origCellID); + const diff_u = cellID === origCellID ? 0 : (cell.u1() + cell.u2()) / 2 - (origCell.u1() + origCell.u2()) / 2; + const diff_v = cellID === origCellID ? 0 : (cell.v1() + cell.v2()) / 2 - (origCell.v1() + origCell.v2()) / 2; + const uvs = new Float32Array(uvLength - 2); + const meshNum = meshsDataUV.uv(1); + for (let idx = 2; idx < uvLength; idx++) uvs[idx - 2] = meshsDataUV.uv(idx) + (idx % 2 === 0 ? diff_u : diff_v); + const meshsDataIndices = this.playerLib.animationData.meshsDataIndices(partID); + const indicesLength = meshsDataIndices.indicesLength(); + const indices = new Uint32Array(indicesLength - 1); + for (let idx = 1; idx < indicesLength; idx++) indices[idx - 1] = meshsDataIndices.indices(idx); + return new pixi_js.Mesh({ + geometry: new pixi_js.MeshGeometry({ + positions: new Float32Array(meshNum * 2), + uvs, + indices, + topology: "triangle-list" + }), + texture: this.ss6project.getTexture(this.playerLib.fbObj.cells(cellID).cellMap().name()) + }); + } + return null; + } + /** + * セルをインスタンスで作成 + * @param {String} refname 参照アニメ名 + * @param {number or undefined} refStart + * @return {SS6Player} - インスタンス + */ + MakeCellPlayer(refname, refStart = void 0) { + const split = refname.split("/"); + const ssp = new SS6Player(this.ss6project); + ssp.Setup(split[0], split[1]); + ssp.Play(refStart); + return ssp; + } + resetLiveFrame() { + const layers = this.playerLib.animationData.defaultDataLength(); + for (let i = 0; i < layers; i++) this.liveFrame[i] = 0; + } + }; + exports.SS6PlayerInstanceKeyParam = SS6PlayerInstanceKeyParam; + exports.SS6Project = SS6Project; +}); -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('pixi.js')) : - typeof define === 'function' && define.amd ? define(['exports', 'pixi.js'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ss6PlayerPixi = {}, global.PIXI)); -})(this, (function (exports, pixi_js) { 'use strict'; - - class FrameData { - } - const SIZEOF_INT = 4; - const FILE_IDENTIFIER_LENGTH = 4; - const SIZE_PREFIX_LENGTH = 4; - const int32 = new Int32Array(2); - const float32 = new Float32Array(int32.buffer); - const float64 = new Float64Array(int32.buffer); - const isLittleEndian = new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1; - var Encoding; - (function(Encoding2) { - Encoding2[Encoding2["UTF8_BYTES"] = 1] = "UTF8_BYTES"; - Encoding2[Encoding2["UTF16_STRING"] = 2] = "UTF16_STRING"; - })(Encoding || (Encoding = {})); - class ByteBuffer { - /** - * Create a new ByteBuffer with a given array of bytes (`Uint8Array`) - */ - constructor(bytes_) { - this.bytes_ = bytes_; - this.position_ = 0; - this.text_decoder_ = new TextDecoder(); - } - /** - * Create and allocate a new ByteBuffer with a given size. - */ - static allocate(byte_size) { - return new ByteBuffer(new Uint8Array(byte_size)); - } - clear() { - this.position_ = 0; - } - /** - * Get the underlying `Uint8Array`. - */ - bytes() { - return this.bytes_; - } - /** - * Get the buffer's position. - */ - position() { - return this.position_; - } - /** - * Set the buffer's position. - */ - setPosition(position) { - this.position_ = position; - } - /** - * Get the buffer's capacity. - */ - capacity() { - return this.bytes_.length; - } - readInt8(offset) { - return this.readUint8(offset) << 24 >> 24; - } - readUint8(offset) { - return this.bytes_[offset]; - } - readInt16(offset) { - return this.readUint16(offset) << 16 >> 16; - } - readUint16(offset) { - return this.bytes_[offset] | this.bytes_[offset + 1] << 8; - } - readInt32(offset) { - return this.bytes_[offset] | this.bytes_[offset + 1] << 8 | this.bytes_[offset + 2] << 16 | this.bytes_[offset + 3] << 24; - } - readUint32(offset) { - return this.readInt32(offset) >>> 0; - } - readInt64(offset) { - return BigInt.asIntN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); - } - readUint64(offset) { - return BigInt.asUintN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); - } - readFloat32(offset) { - int32[0] = this.readInt32(offset); - return float32[0]; - } - readFloat64(offset) { - int32[isLittleEndian ? 0 : 1] = this.readInt32(offset); - int32[isLittleEndian ? 1 : 0] = this.readInt32(offset + 4); - return float64[0]; - } - writeInt8(offset, value) { - this.bytes_[offset] = value; - } - writeUint8(offset, value) { - this.bytes_[offset] = value; - } - writeInt16(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - } - writeUint16(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - } - writeInt32(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - this.bytes_[offset + 2] = value >> 16; - this.bytes_[offset + 3] = value >> 24; - } - writeUint32(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - this.bytes_[offset + 2] = value >> 16; - this.bytes_[offset + 3] = value >> 24; - } - writeInt64(offset, value) { - this.writeInt32(offset, Number(BigInt.asIntN(32, value))); - this.writeInt32(offset + 4, Number(BigInt.asIntN(32, value >> BigInt(32)))); - } - writeUint64(offset, value) { - this.writeUint32(offset, Number(BigInt.asUintN(32, value))); - this.writeUint32(offset + 4, Number(BigInt.asUintN(32, value >> BigInt(32)))); - } - writeFloat32(offset, value) { - float32[0] = value; - this.writeInt32(offset, int32[0]); - } - writeFloat64(offset, value) { - float64[0] = value; - this.writeInt32(offset, int32[isLittleEndian ? 0 : 1]); - this.writeInt32(offset + 4, int32[isLittleEndian ? 1 : 0]); - } - /** - * Return the file identifier. Behavior is undefined for FlatBuffers whose - * schema does not include a file_identifier (likely points at padding or the - * start of a the root vtable). - */ - getBufferIdentifier() { - if (this.bytes_.length < this.position_ + SIZEOF_INT + FILE_IDENTIFIER_LENGTH) { - throw new Error("FlatBuffers: ByteBuffer is too short to contain an identifier."); - } - let result = ""; - for (let i = 0; i < FILE_IDENTIFIER_LENGTH; i++) { - result += String.fromCharCode(this.readInt8(this.position_ + SIZEOF_INT + i)); - } - return result; - } - /** - * Look up a field in the vtable, return an offset into the object, or 0 if the - * field is not present. - */ - __offset(bb_pos, vtable_offset) { - const vtable = bb_pos - this.readInt32(bb_pos); - return vtable_offset < this.readInt16(vtable) ? this.readInt16(vtable + vtable_offset) : 0; - } - /** - * Initialize any Table-derived type to point to the union at the given offset. - */ - __union(t, offset) { - t.bb_pos = offset + this.readInt32(offset); - t.bb = this; - return t; - } - /** - * Create a JavaScript string from UTF-8 data stored inside the FlatBuffer. - * This allocates a new string and converts to wide chars upon each access. - * - * To avoid the conversion to string, pass Encoding.UTF8_BYTES as the - * "optionalEncoding" argument. This is useful for avoiding conversion when - * the data will just be packaged back up in another FlatBuffer later on. - * - * @param offset - * @param opt_encoding Defaults to UTF16_STRING - */ - __string(offset, opt_encoding) { - offset += this.readInt32(offset); - const length = this.readInt32(offset); - offset += SIZEOF_INT; - const utf8bytes = this.bytes_.subarray(offset, offset + length); - if (opt_encoding === Encoding.UTF8_BYTES) - return utf8bytes; - else - return this.text_decoder_.decode(utf8bytes); - } - /** - * Handle unions that can contain string as its member, if a Table-derived type then initialize it, - * if a string then return a new one - * - * WARNING: strings are immutable in JS so we can't change the string that the user gave us, this - * makes the behaviour of __union_with_string different compared to __union - */ - __union_with_string(o, offset) { - if (typeof o === "string") { - return this.__string(offset); - } - return this.__union(o, offset); - } - /** - * Retrieve the relative offset stored at "offset" - */ - __indirect(offset) { - return offset + this.readInt32(offset); - } - /** - * Get the start of data of a vector whose offset is stored at "offset" in this object. - */ - __vector(offset) { - return offset + this.readInt32(offset) + SIZEOF_INT; - } - /** - * Get the length of a vector whose offset is stored at "offset" in this object. - */ - __vector_len(offset) { - return this.readInt32(offset + this.readInt32(offset)); - } - __has_identifier(ident) { - if (ident.length != FILE_IDENTIFIER_LENGTH) { - throw new Error("FlatBuffers: file identifier must be length " + FILE_IDENTIFIER_LENGTH); - } - for (let i = 0; i < FILE_IDENTIFIER_LENGTH; i++) { - if (ident.charCodeAt(i) != this.readInt8(this.position() + SIZEOF_INT + i)) { - return false; - } - } - return true; - } - /** - * A helper function for generating list for obj api - */ - createScalarList(listAccessor, listLength) { - const ret = []; - for (let i = 0; i < listLength; ++i) { - const val = listAccessor(i); - if (val !== null) { - ret.push(val); - } - } - return ret; - } - /** - * A helper function for generating list for obj api - * @param listAccessor function that accepts an index and return data at that index - * @param listLength listLength - * @param res result list - */ - createObjList(listAccessor, listLength) { - const ret = []; - for (let i = 0; i < listLength; ++i) { - const val = listAccessor(i); - if (val !== null) { - ret.push(val.unpack()); - } - } - return ret; - } - } - class AnimationInitialData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsAnimationInitialData(bb, obj) { - return (obj || new AnimationInitialData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsAnimationInitialData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new AnimationInitialData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - index() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - lowflag() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - highflag() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - priority() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - cellIndex() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - opacity() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - localopacity() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - masklimen() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - positionX() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - positionY() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - positionZ() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - pivotX() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - pivotY() { - const offset = this.bb.__offset(this.bb_pos, 28); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - rotationX() { - const offset = this.bb.__offset(this.bb_pos, 30); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - rotationY() { - const offset = this.bb.__offset(this.bb_pos, 32); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - rotationZ() { - const offset = this.bb.__offset(this.bb_pos, 34); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - scaleX() { - const offset = this.bb.__offset(this.bb_pos, 36); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - scaleY() { - const offset = this.bb.__offset(this.bb_pos, 38); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - localscaleX() { - const offset = this.bb.__offset(this.bb_pos, 40); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - localscaleY() { - const offset = this.bb.__offset(this.bb_pos, 42); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - sizeX() { - const offset = this.bb.__offset(this.bb_pos, 44); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - sizeY() { - const offset = this.bb.__offset(this.bb_pos, 46); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvMoveX() { - const offset = this.bb.__offset(this.bb_pos, 48); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvMoveY() { - const offset = this.bb.__offset(this.bb_pos, 50); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvRotation() { - const offset = this.bb.__offset(this.bb_pos, 52); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvScaleX() { - const offset = this.bb.__offset(this.bb_pos, 54); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvScaleY() { - const offset = this.bb.__offset(this.bb_pos, 56); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - boundingRadius() { - const offset = this.bb.__offset(this.bb_pos, 58); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - instanceValueCurKeyframe() { - const offset = this.bb.__offset(this.bb_pos, 60); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueStartFrame() { - const offset = this.bb.__offset(this.bb_pos, 62); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueEndFrame() { - const offset = this.bb.__offset(this.bb_pos, 64); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueLoopNum() { - const offset = this.bb.__offset(this.bb_pos, 66); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueSpeed() { - const offset = this.bb.__offset(this.bb_pos, 68); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - instanceValueLoopflag() { - const offset = this.bb.__offset(this.bb_pos, 70); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - effectValueCurKeyframe() { - const offset = this.bb.__offset(this.bb_pos, 72); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - effectValueStartTime() { - const offset = this.bb.__offset(this.bb_pos, 74); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - effectValueSpeed() { - const offset = this.bb.__offset(this.bb_pos, 76); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - effectValueLoopflag() { - const offset = this.bb.__offset(this.bb_pos, 78); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - static startAnimationInitialData(builder) { - builder.startObject(38); - } - static addIndex(builder, index) { - builder.addFieldInt16(0, index, 0); - } - static addLowflag(builder, lowflag) { - builder.addFieldInt32(1, lowflag, 0); - } - static addHighflag(builder, highflag) { - builder.addFieldInt32(2, highflag, 0); - } - static addPriority(builder, priority) { - builder.addFieldInt16(3, priority, 0); - } - static addCellIndex(builder, cellIndex) { - builder.addFieldInt16(4, cellIndex, 0); - } - static addOpacity(builder, opacity) { - builder.addFieldInt16(5, opacity, 0); - } - static addLocalopacity(builder, localopacity) { - builder.addFieldInt16(6, localopacity, 0); - } - static addMasklimen(builder, masklimen) { - builder.addFieldInt16(7, masklimen, 0); - } - static addPositionX(builder, positionX) { - builder.addFieldFloat32(8, positionX, 0); - } - static addPositionY(builder, positionY) { - builder.addFieldFloat32(9, positionY, 0); - } - static addPositionZ(builder, positionZ) { - builder.addFieldFloat32(10, positionZ, 0); - } - static addPivotX(builder, pivotX) { - builder.addFieldFloat32(11, pivotX, 0); - } - static addPivotY(builder, pivotY) { - builder.addFieldFloat32(12, pivotY, 0); - } - static addRotationX(builder, rotationX) { - builder.addFieldFloat32(13, rotationX, 0); - } - static addRotationY(builder, rotationY) { - builder.addFieldFloat32(14, rotationY, 0); - } - static addRotationZ(builder, rotationZ) { - builder.addFieldFloat32(15, rotationZ, 0); - } - static addScaleX(builder, scaleX) { - builder.addFieldFloat32(16, scaleX, 0); - } - static addScaleY(builder, scaleY) { - builder.addFieldFloat32(17, scaleY, 0); - } - static addLocalscaleX(builder, localscaleX) { - builder.addFieldFloat32(18, localscaleX, 0); - } - static addLocalscaleY(builder, localscaleY) { - builder.addFieldFloat32(19, localscaleY, 0); - } - static addSizeX(builder, sizeX) { - builder.addFieldFloat32(20, sizeX, 0); - } - static addSizeY(builder, sizeY) { - builder.addFieldFloat32(21, sizeY, 0); - } - static addUvMoveX(builder, uvMoveX) { - builder.addFieldFloat32(22, uvMoveX, 0); - } - static addUvMoveY(builder, uvMoveY) { - builder.addFieldFloat32(23, uvMoveY, 0); - } - static addUvRotation(builder, uvRotation) { - builder.addFieldFloat32(24, uvRotation, 0); - } - static addUvScaleX(builder, uvScaleX) { - builder.addFieldFloat32(25, uvScaleX, 0); - } - static addUvScaleY(builder, uvScaleY) { - builder.addFieldFloat32(26, uvScaleY, 0); - } - static addBoundingRadius(builder, boundingRadius) { - builder.addFieldFloat32(27, boundingRadius, 0); - } - static addInstanceValueCurKeyframe(builder, instanceValueCurKeyframe) { - builder.addFieldInt32(28, instanceValueCurKeyframe, 0); - } - static addInstanceValueStartFrame(builder, instanceValueStartFrame) { - builder.addFieldInt32(29, instanceValueStartFrame, 0); - } - static addInstanceValueEndFrame(builder, instanceValueEndFrame) { - builder.addFieldInt32(30, instanceValueEndFrame, 0); - } - static addInstanceValueLoopNum(builder, instanceValueLoopNum) { - builder.addFieldInt32(31, instanceValueLoopNum, 0); - } - static addInstanceValueSpeed(builder, instanceValueSpeed) { - builder.addFieldFloat32(32, instanceValueSpeed, 0); - } - static addInstanceValueLoopflag(builder, instanceValueLoopflag) { - builder.addFieldInt32(33, instanceValueLoopflag, 0); - } - static addEffectValueCurKeyframe(builder, effectValueCurKeyframe) { - builder.addFieldInt32(34, effectValueCurKeyframe, 0); - } - static addEffectValueStartTime(builder, effectValueStartTime) { - builder.addFieldInt32(35, effectValueStartTime, 0); - } - static addEffectValueSpeed(builder, effectValueSpeed) { - builder.addFieldFloat32(36, effectValueSpeed, 0); - } - static addEffectValueLoopflag(builder, effectValueLoopflag) { - builder.addFieldInt32(37, effectValueLoopflag, 0); - } - static endAnimationInitialData(builder) { - const offset = builder.endObject(); - return offset; - } - static createAnimationInitialData(builder, index, lowflag, highflag, priority, cellIndex, opacity, localopacity, masklimen, positionX, positionY, positionZ, pivotX, pivotY, rotationX, rotationY, rotationZ, scaleX, scaleY, localscaleX, localscaleY, sizeX, sizeY, uvMoveX, uvMoveY, uvRotation, uvScaleX, uvScaleY, boundingRadius, instanceValueCurKeyframe, instanceValueStartFrame, instanceValueEndFrame, instanceValueLoopNum, instanceValueSpeed, instanceValueLoopflag, effectValueCurKeyframe, effectValueStartTime, effectValueSpeed, effectValueLoopflag) { - AnimationInitialData.startAnimationInitialData(builder); - AnimationInitialData.addIndex(builder, index); - AnimationInitialData.addLowflag(builder, lowflag); - AnimationInitialData.addHighflag(builder, highflag); - AnimationInitialData.addPriority(builder, priority); - AnimationInitialData.addCellIndex(builder, cellIndex); - AnimationInitialData.addOpacity(builder, opacity); - AnimationInitialData.addLocalopacity(builder, localopacity); - AnimationInitialData.addMasklimen(builder, masklimen); - AnimationInitialData.addPositionX(builder, positionX); - AnimationInitialData.addPositionY(builder, positionY); - AnimationInitialData.addPositionZ(builder, positionZ); - AnimationInitialData.addPivotX(builder, pivotX); - AnimationInitialData.addPivotY(builder, pivotY); - AnimationInitialData.addRotationX(builder, rotationX); - AnimationInitialData.addRotationY(builder, rotationY); - AnimationInitialData.addRotationZ(builder, rotationZ); - AnimationInitialData.addScaleX(builder, scaleX); - AnimationInitialData.addScaleY(builder, scaleY); - AnimationInitialData.addLocalscaleX(builder, localscaleX); - AnimationInitialData.addLocalscaleY(builder, localscaleY); - AnimationInitialData.addSizeX(builder, sizeX); - AnimationInitialData.addSizeY(builder, sizeY); - AnimationInitialData.addUvMoveX(builder, uvMoveX); - AnimationInitialData.addUvMoveY(builder, uvMoveY); - AnimationInitialData.addUvRotation(builder, uvRotation); - AnimationInitialData.addUvScaleX(builder, uvScaleX); - AnimationInitialData.addUvScaleY(builder, uvScaleY); - AnimationInitialData.addBoundingRadius(builder, boundingRadius); - AnimationInitialData.addInstanceValueCurKeyframe(builder, instanceValueCurKeyframe); - AnimationInitialData.addInstanceValueStartFrame(builder, instanceValueStartFrame); - AnimationInitialData.addInstanceValueEndFrame(builder, instanceValueEndFrame); - AnimationInitialData.addInstanceValueLoopNum(builder, instanceValueLoopNum); - AnimationInitialData.addInstanceValueSpeed(builder, instanceValueSpeed); - AnimationInitialData.addInstanceValueLoopflag(builder, instanceValueLoopflag); - AnimationInitialData.addEffectValueCurKeyframe(builder, effectValueCurKeyframe); - AnimationInitialData.addEffectValueStartTime(builder, effectValueStartTime); - AnimationInitialData.addEffectValueSpeed(builder, effectValueSpeed); - AnimationInitialData.addEffectValueLoopflag(builder, effectValueLoopflag); - return AnimationInitialData.endAnimationInitialData(builder); - } - } - class partState { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAspartState(bb, obj) { - return (obj || new partState()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAspartState(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new partState()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - index() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - flag1() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - flag2() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - data(index) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readUint32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; - } - dataLength() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - dataArray() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - static startpartState(builder) { - builder.startObject(4); - } - static addIndex(builder, index) { - builder.addFieldInt16(0, index, 0); - } - static addFlag1(builder, flag1) { - builder.addFieldInt32(1, flag1, 0); - } - static addFlag2(builder, flag2) { - builder.addFieldInt32(2, flag2, 0); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(3, dataOffset, 0); - } - static createDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt32(data[i]); - } - return builder.endVector(); - } - static startDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endpartState(builder) { - const offset = builder.endObject(); - return offset; - } - static createpartState(builder, index, flag1, flag2, dataOffset) { - partState.startpartState(builder); - partState.addIndex(builder, index); - partState.addFlag1(builder, flag1); - partState.addFlag2(builder, flag2); - partState.addData(builder, dataOffset); - return partState.endpartState(builder); - } - } - class frameDataIndex { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsframeDataIndex(bb, obj) { - return (obj || new frameDataIndex()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsframeDataIndex(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new frameDataIndex()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - states(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? (obj || new partState()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - statesLength() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startframeDataIndex(builder) { - builder.startObject(1); - } - static addStates(builder, statesOffset) { - builder.addFieldOffset(0, statesOffset, 0); - } - static createStatesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startStatesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endframeDataIndex(builder) { - const offset = builder.endObject(); - return offset; - } - static createframeDataIndex(builder, statesOffset) { - frameDataIndex.startframeDataIndex(builder); - frameDataIndex.addStates(builder, statesOffset); - return frameDataIndex.endframeDataIndex(builder); - } - } - class labelDataItem { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAslabelDataItem(bb, obj) { - return (obj || new labelDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAslabelDataItem(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new labelDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - label(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - frameIndex() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startlabelDataItem(builder) { - builder.startObject(2); - } - static addLabel(builder, labelOffset) { - builder.addFieldOffset(0, labelOffset, 0); - } - static addFrameIndex(builder, frameIndex) { - builder.addFieldInt16(1, frameIndex, 0); - } - static endlabelDataItem(builder) { - const offset = builder.endObject(); - return offset; - } - static createlabelDataItem(builder, labelOffset, frameIndex) { - labelDataItem.startlabelDataItem(builder); - labelDataItem.addLabel(builder, labelOffset); - labelDataItem.addFrameIndex(builder, frameIndex); - return labelDataItem.endlabelDataItem(builder); - } - } - class meshDataIndices { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsmeshDataIndices(bb, obj) { - return (obj || new meshDataIndices()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsmeshDataIndices(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new meshDataIndices()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - indices(index) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; - } - indicesLength() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - indicesArray() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - static startmeshDataIndices(builder) { - builder.startObject(1); - } - static addIndices(builder, indicesOffset) { - builder.addFieldOffset(0, indicesOffset, 0); - } - static createIndicesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addFloat32(data[i]); - } - return builder.endVector(); - } - static startIndicesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endmeshDataIndices(builder) { - const offset = builder.endObject(); - return offset; - } - static createmeshDataIndices(builder, indicesOffset) { - meshDataIndices.startmeshDataIndices(builder); - meshDataIndices.addIndices(builder, indicesOffset); - return meshDataIndices.endmeshDataIndices(builder); - } - } - class meshDataUV { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsmeshDataUV(bb, obj) { - return (obj || new meshDataUV()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsmeshDataUV(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new meshDataUV()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - uv(index) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; - } - uvLength() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - uvArray() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - static startmeshDataUV(builder) { - builder.startObject(1); - } - static addUv(builder, uvOffset) { - builder.addFieldOffset(0, uvOffset, 0); - } - static createUvVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addFloat32(data[i]); - } - return builder.endVector(); - } - static startUvVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endmeshDataUV(builder) { - const offset = builder.endObject(); - return offset; - } - static createmeshDataUV(builder, uvOffset) { - meshDataUV.startmeshDataUV(builder); - meshDataUV.addUv(builder, uvOffset); - return meshDataUV.endmeshDataUV(builder); - } - } - class userDataItem { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsuserDataItem(bb, obj) { - return (obj || new userDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsuserDataItem(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new userDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - flags() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - arrayIndex() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - dataType(index) { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; - } - dataTypeLength() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - dataTypeArray() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - data(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__union(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; - } - dataLength() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startuserDataItem(builder) { - builder.startObject(4); - } - static addFlags(builder, flags) { - builder.addFieldInt16(0, flags, 0); - } - static addArrayIndex(builder, arrayIndex) { - builder.addFieldInt16(1, arrayIndex, 0); - } - static addDataType(builder, dataTypeOffset) { - builder.addFieldOffset(2, dataTypeOffset, 0); - } - static createDataTypeVector(builder, data) { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]); - } - return builder.endVector(); - } - static startDataTypeVector(builder, numElems) { - builder.startVector(1, numElems, 1); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(3, dataOffset, 0); - } - static createDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static enduserDataItem(builder) { - const offset = builder.endObject(); - return offset; - } - static createuserDataItem(builder, flags, arrayIndex, dataTypeOffset, dataOffset) { - userDataItem.startuserDataItem(builder); - userDataItem.addFlags(builder, flags); - userDataItem.addArrayIndex(builder, arrayIndex); - userDataItem.addDataType(builder, dataTypeOffset); - userDataItem.addData(builder, dataOffset); - return userDataItem.enduserDataItem(builder); - } - } - class userDataPerFrame { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsuserDataPerFrame(bb, obj) { - return (obj || new userDataPerFrame()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsuserDataPerFrame(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new userDataPerFrame()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - frameIndex() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - data(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new userDataItem()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - dataLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startuserDataPerFrame(builder) { - builder.startObject(2); - } - static addFrameIndex(builder, frameIndex) { - builder.addFieldInt16(0, frameIndex, 0); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(1, dataOffset, 0); - } - static createDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static enduserDataPerFrame(builder) { - const offset = builder.endObject(); - return offset; - } - static createuserDataPerFrame(builder, frameIndex, dataOffset) { - userDataPerFrame.startuserDataPerFrame(builder); - userDataPerFrame.addFrameIndex(builder, frameIndex); - userDataPerFrame.addData(builder, dataOffset); - return userDataPerFrame.enduserDataPerFrame(builder); - } - } - class AnimationData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsAnimationData(bb, obj) { - return (obj || new AnimationData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsAnimationData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new AnimationData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - defaultData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new AnimationInitialData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - defaultDataLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - frameData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? (obj || new frameDataIndex()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - frameDataLength() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - userData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? (obj || new userDataPerFrame()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - userDataLength() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - labelData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? (obj || new labelDataItem()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - labelDataLength() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - meshsDataUv(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? (obj || new meshDataUV()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - meshsDataUvLength() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - meshsDataIndices(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? (obj || new meshDataIndices()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - meshsDataIndicesLength() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - startFrames() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - endFrames() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - totalFrames() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - fps() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - labelNum() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - canvasSizeW() { - const offset = this.bb.__offset(this.bb_pos, 28); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - canvasSizeH() { - const offset = this.bb.__offset(this.bb_pos, 30); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - canvasPvotX() { - const offset = this.bb.__offset(this.bb_pos, 32); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - canvasPvotY() { - const offset = this.bb.__offset(this.bb_pos, 34); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - static startAnimationData(builder) { - builder.startObject(16); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addDefaultData(builder, defaultDataOffset) { - builder.addFieldOffset(1, defaultDataOffset, 0); - } - static createDefaultDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDefaultDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addFrameData(builder, frameDataOffset) { - builder.addFieldOffset(2, frameDataOffset, 0); - } - static createFrameDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startFrameDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addUserData(builder, userDataOffset) { - builder.addFieldOffset(3, userDataOffset, 0); - } - static createUserDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startUserDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addLabelData(builder, labelDataOffset) { - builder.addFieldOffset(4, labelDataOffset, 0); - } - static createLabelDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startLabelDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addMeshsDataUv(builder, meshsDataUvOffset) { - builder.addFieldOffset(5, meshsDataUvOffset, 0); - } - static createMeshsDataUvVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startMeshsDataUvVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addMeshsDataIndices(builder, meshsDataIndicesOffset) { - builder.addFieldOffset(6, meshsDataIndicesOffset, 0); - } - static createMeshsDataIndicesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startMeshsDataIndicesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addStartFrames(builder, startFrames) { - builder.addFieldInt16(7, startFrames, 0); - } - static addEndFrames(builder, endFrames) { - builder.addFieldInt16(8, endFrames, 0); - } - static addTotalFrames(builder, totalFrames) { - builder.addFieldInt16(9, totalFrames, 0); - } - static addFps(builder, fps) { - builder.addFieldInt16(10, fps, 0); - } - static addLabelNum(builder, labelNum) { - builder.addFieldInt16(11, labelNum, 0); - } - static addCanvasSizeW(builder, canvasSizeW) { - builder.addFieldInt16(12, canvasSizeW, 0); - } - static addCanvasSizeH(builder, canvasSizeH) { - builder.addFieldInt16(13, canvasSizeH, 0); - } - static addCanvasPvotX(builder, canvasPvotX) { - builder.addFieldFloat32(14, canvasPvotX, 0); - } - static addCanvasPvotY(builder, canvasPvotY) { - builder.addFieldFloat32(15, canvasPvotY, 0); - } - static endAnimationData(builder) { - const offset = builder.endObject(); - return offset; - } - static createAnimationData(builder, nameOffset, defaultDataOffset, frameDataOffset, userDataOffset, labelDataOffset, meshsDataUvOffset, meshsDataIndicesOffset, startFrames, endFrames, totalFrames, fps, labelNum, canvasSizeW, canvasSizeH, canvasPvotX, canvasPvotY) { - AnimationData.startAnimationData(builder); - AnimationData.addName(builder, nameOffset); - AnimationData.addDefaultData(builder, defaultDataOffset); - AnimationData.addFrameData(builder, frameDataOffset); - AnimationData.addUserData(builder, userDataOffset); - AnimationData.addLabelData(builder, labelDataOffset); - AnimationData.addMeshsDataUv(builder, meshsDataUvOffset); - AnimationData.addMeshsDataIndices(builder, meshsDataIndicesOffset); - AnimationData.addStartFrames(builder, startFrames); - AnimationData.addEndFrames(builder, endFrames); - AnimationData.addTotalFrames(builder, totalFrames); - AnimationData.addFps(builder, fps); - AnimationData.addLabelNum(builder, labelNum); - AnimationData.addCanvasSizeW(builder, canvasSizeW); - AnimationData.addCanvasSizeH(builder, canvasSizeH); - AnimationData.addCanvasPvotX(builder, canvasPvotX); - AnimationData.addCanvasPvotY(builder, canvasPvotY); - return AnimationData.endAnimationData(builder); - } - } - var SsPartType = /* @__PURE__ */ ((SsPartType2) => { - SsPartType2[SsPartType2["Invalid"] = -1] = "Invalid"; - SsPartType2[SsPartType2["Nulltype"] = 0] = "Nulltype"; - SsPartType2[SsPartType2["Normal"] = 1] = "Normal"; - SsPartType2[SsPartType2["Text"] = 2] = "Text"; - SsPartType2[SsPartType2["Instance"] = 3] = "Instance"; - SsPartType2[SsPartType2["Armature"] = 4] = "Armature"; - SsPartType2[SsPartType2["Effect"] = 5] = "Effect"; - SsPartType2[SsPartType2["Mesh"] = 6] = "Mesh"; - SsPartType2[SsPartType2["Movenode"] = 7] = "Movenode"; - SsPartType2[SsPartType2["Constraint"] = 8] = "Constraint"; - SsPartType2[SsPartType2["Mask"] = 9] = "Mask"; - SsPartType2[SsPartType2["Joint"] = 10] = "Joint"; - SsPartType2[SsPartType2["Bonepoint"] = 11] = "Bonepoint"; - return SsPartType2; - })(SsPartType || {}); - class PartData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsPartData(bb, obj) { - return (obj || new PartData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsPartData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new PartData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - index() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - parentIndex() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - type() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt8(this.bb_pos + offset) : SsPartType.Nulltype; - } - boundsType() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - alphaBlendType() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - refname(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - effectfilename(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - colorLabel(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - maskInfluence() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startPartData(builder) { - builder.startObject(10); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addIndex(builder, index) { - builder.addFieldInt16(1, index, 0); - } - static addParentIndex(builder, parentIndex) { - builder.addFieldInt16(2, parentIndex, 0); - } - static addType(builder, type) { - builder.addFieldInt8(3, type, SsPartType.Nulltype); - } - static addBoundsType(builder, boundsType) { - builder.addFieldInt16(4, boundsType, 0); - } - static addAlphaBlendType(builder, alphaBlendType) { - builder.addFieldInt16(5, alphaBlendType, 0); - } - static addRefname(builder, refnameOffset) { - builder.addFieldOffset(6, refnameOffset, 0); - } - static addEffectfilename(builder, effectfilenameOffset) { - builder.addFieldOffset(7, effectfilenameOffset, 0); - } - static addColorLabel(builder, colorLabelOffset) { - builder.addFieldOffset(8, colorLabelOffset, 0); - } - static addMaskInfluence(builder, maskInfluence) { - builder.addFieldInt16(9, maskInfluence, 0); - } - static endPartData(builder) { - const offset = builder.endObject(); - return offset; - } - static createPartData(builder, nameOffset, index, parentIndex, type, boundsType, alphaBlendType, refnameOffset, effectfilenameOffset, colorLabelOffset, maskInfluence) { - PartData.startPartData(builder); - PartData.addName(builder, nameOffset); - PartData.addIndex(builder, index); - PartData.addParentIndex(builder, parentIndex); - PartData.addType(builder, type); - PartData.addBoundsType(builder, boundsType); - PartData.addAlphaBlendType(builder, alphaBlendType); - PartData.addRefname(builder, refnameOffset); - PartData.addEffectfilename(builder, effectfilenameOffset); - PartData.addColorLabel(builder, colorLabelOffset); - PartData.addMaskInfluence(builder, maskInfluence); - return PartData.endPartData(builder); - } - } - class AnimePackData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsAnimePackData(bb, obj) { - return (obj || new AnimePackData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsAnimePackData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new AnimePackData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - parts(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new PartData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - partsLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - animations(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? (obj || new AnimationData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - animationsLength() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startAnimePackData(builder) { - builder.startObject(3); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addParts(builder, partsOffset) { - builder.addFieldOffset(1, partsOffset, 0); - } - static createPartsVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startPartsVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addAnimations(builder, animationsOffset) { - builder.addFieldOffset(2, animationsOffset, 0); - } - static createAnimationsVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startAnimationsVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endAnimePackData(builder) { - const offset = builder.endObject(); - return offset; - } - static createAnimePackData(builder, nameOffset, partsOffset, animationsOffset) { - AnimePackData.startAnimePackData(builder); - AnimePackData.addName(builder, nameOffset); - AnimePackData.addParts(builder, partsOffset); - AnimePackData.addAnimations(builder, animationsOffset); - return AnimePackData.endAnimePackData(builder); - } - } - class CellMap { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsCellMap(bb, obj) { - return (obj || new CellMap()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsCellMap(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new CellMap()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - imagePath(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - index() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - wrapmode() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - filtermode() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startCellMap(builder) { - builder.startObject(5); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addImagePath(builder, imagePathOffset) { - builder.addFieldOffset(1, imagePathOffset, 0); - } - static addIndex(builder, index) { - builder.addFieldInt16(2, index, 0); - } - static addWrapmode(builder, wrapmode) { - builder.addFieldInt16(3, wrapmode, 0); - } - static addFiltermode(builder, filtermode) { - builder.addFieldInt16(4, filtermode, 0); - } - static endCellMap(builder) { - const offset = builder.endObject(); - return offset; - } - static createCellMap(builder, nameOffset, imagePathOffset, index, wrapmode, filtermode) { - CellMap.startCellMap(builder); - CellMap.addName(builder, nameOffset); - CellMap.addImagePath(builder, imagePathOffset); - CellMap.addIndex(builder, index); - CellMap.addWrapmode(builder, wrapmode); - CellMap.addFiltermode(builder, filtermode); - return CellMap.endCellMap(builder); - } - } - class Cell { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsCell(bb, obj) { - return (obj || new Cell()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsCell(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new Cell()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - cellMap(obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new CellMap()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; - } - indexInCellMap() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - x() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - y() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - width() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - height() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - pivotX() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - pivotY() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - u1() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - v1() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - u2() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - v2() { - const offset = this.bb.__offset(this.bb_pos, 28); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - static startCell(builder) { - builder.startObject(13); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addCellMap(builder, cellMapOffset) { - builder.addFieldOffset(1, cellMapOffset, 0); - } - static addIndexInCellMap(builder, indexInCellMap) { - builder.addFieldInt16(2, indexInCellMap, 0); - } - static addX(builder, x) { - builder.addFieldInt16(3, x, 0); - } - static addY(builder, y) { - builder.addFieldInt16(4, y, 0); - } - static addWidth(builder, width) { - builder.addFieldInt16(5, width, 0); - } - static addHeight(builder, height) { - builder.addFieldInt16(6, height, 0); - } - static addPivotX(builder, pivotX) { - builder.addFieldFloat32(7, pivotX, 0); - } - static addPivotY(builder, pivotY) { - builder.addFieldFloat32(8, pivotY, 0); - } - static addU1(builder, u1) { - builder.addFieldFloat32(9, u1, 0); - } - static addV1(builder, v1) { - builder.addFieldFloat32(10, v1, 0); - } - static addU2(builder, u2) { - builder.addFieldFloat32(11, u2, 0); - } - static addV2(builder, v2) { - builder.addFieldFloat32(12, v2, 0); - } - static endCell(builder) { - const offset = builder.endObject(); - return offset; - } - } - class EffectNode { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsEffectNode(bb, obj) { - return (obj || new EffectNode()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsEffectNode(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new EffectNode()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - arrayIndex() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - parentIndex() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - type() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - cellIndex() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - blendType() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numBehavior() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - behaviorType(index) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; - } - behaviorTypeLength() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - behaviorTypeArray() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - behavior(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__union(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; - } - behaviorLength() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startEffectNode(builder) { - builder.startObject(8); - } - static addArrayIndex(builder, arrayIndex) { - builder.addFieldInt16(0, arrayIndex, 0); - } - static addParentIndex(builder, parentIndex) { - builder.addFieldInt16(1, parentIndex, 0); - } - static addType(builder, type) { - builder.addFieldInt16(2, type, 0); - } - static addCellIndex(builder, cellIndex) { - builder.addFieldInt16(3, cellIndex, 0); - } - static addBlendType(builder, blendType) { - builder.addFieldInt16(4, blendType, 0); - } - static addNumBehavior(builder, numBehavior) { - builder.addFieldInt16(5, numBehavior, 0); - } - static addBehaviorType(builder, behaviorTypeOffset) { - builder.addFieldOffset(6, behaviorTypeOffset, 0); - } - static createBehaviorTypeVector(builder, data) { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]); - } - return builder.endVector(); - } - static startBehaviorTypeVector(builder, numElems) { - builder.startVector(1, numElems, 1); - } - static addBehavior(builder, behaviorOffset) { - builder.addFieldOffset(7, behaviorOffset, 0); - } - static createBehaviorVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startBehaviorVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endEffectNode(builder) { - const offset = builder.endObject(); - return offset; - } - static createEffectNode(builder, arrayIndex, parentIndex, type, cellIndex, blendType, numBehavior, behaviorTypeOffset, behaviorOffset) { - EffectNode.startEffectNode(builder); - EffectNode.addArrayIndex(builder, arrayIndex); - EffectNode.addParentIndex(builder, parentIndex); - EffectNode.addType(builder, type); - EffectNode.addCellIndex(builder, cellIndex); - EffectNode.addBlendType(builder, blendType); - EffectNode.addNumBehavior(builder, numBehavior); - EffectNode.addBehaviorType(builder, behaviorTypeOffset); - EffectNode.addBehavior(builder, behaviorOffset); - return EffectNode.endEffectNode(builder); - } - } - class EffectFile { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsEffectFile(bb, obj) { - return (obj || new EffectFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsEffectFile(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new EffectFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - fps() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - isLockRandSeed() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - lockRandSeed() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - layoutScaleX() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - layoutScaleY() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numNodeList() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - effectNode(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? (obj || new EffectNode()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - effectNodeLength() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startEffectFile(builder) { - builder.startObject(8); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addFps(builder, fps) { - builder.addFieldInt16(1, fps, 0); - } - static addIsLockRandSeed(builder, isLockRandSeed) { - builder.addFieldInt16(2, isLockRandSeed, 0); - } - static addLockRandSeed(builder, lockRandSeed) { - builder.addFieldInt16(3, lockRandSeed, 0); - } - static addLayoutScaleX(builder, layoutScaleX) { - builder.addFieldInt16(4, layoutScaleX, 0); - } - static addLayoutScaleY(builder, layoutScaleY) { - builder.addFieldInt16(5, layoutScaleY, 0); - } - static addNumNodeList(builder, numNodeList) { - builder.addFieldInt16(6, numNodeList, 0); - } - static addEffectNode(builder, effectNodeOffset) { - builder.addFieldOffset(7, effectNodeOffset, 0); - } - static createEffectNodeVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startEffectNodeVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endEffectFile(builder) { - const offset = builder.endObject(); - return offset; - } - static createEffectFile(builder, nameOffset, fps, isLockRandSeed, lockRandSeed, layoutScaleX, layoutScaleY, numNodeList, effectNodeOffset) { - EffectFile.startEffectFile(builder); - EffectFile.addName(builder, nameOffset); - EffectFile.addFps(builder, fps); - EffectFile.addIsLockRandSeed(builder, isLockRandSeed); - EffectFile.addLockRandSeed(builder, lockRandSeed); - EffectFile.addLayoutScaleX(builder, layoutScaleX); - EffectFile.addLayoutScaleY(builder, layoutScaleY); - EffectFile.addNumNodeList(builder, numNodeList); - EffectFile.addEffectNode(builder, effectNodeOffset); - return EffectFile.endEffectFile(builder); - } - } - var PART_FLAG = /* @__PURE__ */ ((PART_FLAG22) => { - PART_FLAG22[PART_FLAG22["INVISIBLE"] = 1] = "INVISIBLE"; - PART_FLAG22[PART_FLAG22["FLIP_H"] = 2] = "FLIP_H"; - PART_FLAG22[PART_FLAG22["FLIP_V"] = 4] = "FLIP_V"; - PART_FLAG22[PART_FLAG22["CELL_INDEX"] = 8] = "CELL_INDEX"; - PART_FLAG22[PART_FLAG22["POSITION_X"] = 16] = "POSITION_X"; - PART_FLAG22[PART_FLAG22["POSITION_Y"] = 32] = "POSITION_Y"; - PART_FLAG22[PART_FLAG22["POSITION_Z"] = 64] = "POSITION_Z"; - PART_FLAG22[PART_FLAG22["PIVOT_X"] = 128] = "PIVOT_X"; - PART_FLAG22[PART_FLAG22["PIVOT_Y"] = 256] = "PIVOT_Y"; - PART_FLAG22[PART_FLAG22["ROTATIONX"] = 512] = "ROTATIONX"; - PART_FLAG22[PART_FLAG22["ROTATIONY"] = 1024] = "ROTATIONY"; - PART_FLAG22[PART_FLAG22["ROTATIONZ"] = 2048] = "ROTATIONZ"; - PART_FLAG22[PART_FLAG22["SCALE_X"] = 4096] = "SCALE_X"; - PART_FLAG22[PART_FLAG22["SCALE_Y"] = 8192] = "SCALE_Y"; - PART_FLAG22[PART_FLAG22["LOCALSCALE_X"] = 16384] = "LOCALSCALE_X"; - PART_FLAG22[PART_FLAG22["LOCALSCALE_Y"] = 32768] = "LOCALSCALE_Y"; - PART_FLAG22[PART_FLAG22["OPACITY"] = 65536] = "OPACITY"; - PART_FLAG22[PART_FLAG22["LOCALOPACITY"] = 131072] = "LOCALOPACITY"; - PART_FLAG22[PART_FLAG22["PARTS_COLOR"] = 262144] = "PARTS_COLOR"; - PART_FLAG22[PART_FLAG22["VERTEX_TRANSFORM"] = 524288] = "VERTEX_TRANSFORM"; - PART_FLAG22[PART_FLAG22["SIZE_X"] = 1048576] = "SIZE_X"; - PART_FLAG22[PART_FLAG22["SIZE_Y"] = 2097152] = "SIZE_Y"; - PART_FLAG22[PART_FLAG22["U_MOVE"] = 4194304] = "U_MOVE"; - PART_FLAG22[PART_FLAG22["V_MOVE"] = 8388608] = "V_MOVE"; - PART_FLAG22[PART_FLAG22["UV_ROTATION"] = 16777216] = "UV_ROTATION"; - PART_FLAG22[PART_FLAG22["U_SCALE"] = 33554432] = "U_SCALE"; - PART_FLAG22[PART_FLAG22["V_SCALE"] = 67108864] = "V_SCALE"; - PART_FLAG22[PART_FLAG22["BOUNDINGRADIUS"] = 134217728] = "BOUNDINGRADIUS"; - PART_FLAG22[PART_FLAG22["MASK"] = 268435456] = "MASK"; - PART_FLAG22[PART_FLAG22["PRIORITY"] = 536870912] = "PRIORITY"; - PART_FLAG22[PART_FLAG22["INSTANCE_KEYFRAME"] = 1073741824] = "INSTANCE_KEYFRAME"; - PART_FLAG22[PART_FLAG22["EFFECT_KEYFRAME"] = 2147483648] = "EFFECT_KEYFRAME"; - return PART_FLAG22; - })(PART_FLAG || {}); - var PART_FLAG2 = /* @__PURE__ */ ((PART_FLAG22) => { - PART_FLAG22[PART_FLAG22["MESHDATA"] = 1] = "MESHDATA"; - return PART_FLAG22; - })(PART_FLAG2 || {}); - class ProjectData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsProjectData(bb, obj) { - return (obj || new ProjectData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsProjectData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new ProjectData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static bufferHasIdentifier(bb) { - return bb.__has_identifier("SSFB"); - } - dataId() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - version() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - flags() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - imageBaseDir(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - cells(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? (obj || new Cell()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - cellsLength() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - animePacks(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? (obj || new AnimePackData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - animePacksLength() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - effectFileList(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? (obj || new EffectFile()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - effectFileListLength() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - numCells() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numAnimePacks() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numEffectFileList() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startProjectData(builder) { - builder.startObject(10); - } - static addDataId(builder, dataId) { - builder.addFieldInt32(0, dataId, 0); - } - static addVersion(builder, version) { - builder.addFieldInt32(1, version, 0); - } - static addFlags(builder, flags) { - builder.addFieldInt32(2, flags, 0); - } - static addImageBaseDir(builder, imageBaseDirOffset) { - builder.addFieldOffset(3, imageBaseDirOffset, 0); - } - static addCells(builder, cellsOffset) { - builder.addFieldOffset(4, cellsOffset, 0); - } - static createCellsVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startCellsVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addAnimePacks(builder, animePacksOffset) { - builder.addFieldOffset(5, animePacksOffset, 0); - } - static createAnimePacksVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startAnimePacksVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addEffectFileList(builder, effectFileListOffset) { - builder.addFieldOffset(6, effectFileListOffset, 0); - } - static createEffectFileListVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startEffectFileListVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addNumCells(builder, numCells) { - builder.addFieldInt16(7, numCells, 0); - } - static addNumAnimePacks(builder, numAnimePacks) { - builder.addFieldInt16(8, numAnimePacks, 0); - } - static addNumEffectFileList(builder, numEffectFileList) { - builder.addFieldInt16(9, numEffectFileList, 0); - } - static endProjectData(builder) { - const offset = builder.endObject(); - return offset; - } - static finishProjectDataBuffer(builder, offset) { - builder.finish(offset, "SSFB"); - } - static finishSizePrefixedProjectDataBuffer(builder, offset) { - builder.finish(offset, "SSFB", true); - } - static createProjectData(builder, dataId, version, flags, imageBaseDirOffset, cellsOffset, animePacksOffset, effectFileListOffset, numCells, numAnimePacks, numEffectFileList) { - ProjectData.startProjectData(builder); - ProjectData.addDataId(builder, dataId); - ProjectData.addVersion(builder, version); - ProjectData.addFlags(builder, flags); - ProjectData.addImageBaseDir(builder, imageBaseDirOffset); - ProjectData.addCells(builder, cellsOffset); - ProjectData.addAnimePacks(builder, animePacksOffset); - ProjectData.addEffectFileList(builder, effectFileListOffset); - ProjectData.addNumCells(builder, numCells); - ProjectData.addNumAnimePacks(builder, numAnimePacks); - ProjectData.addNumEffectFileList(builder, numEffectFileList); - return ProjectData.endProjectData(builder); - } - } - class userDataInteger { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - integer() { - return this.bb.readInt32(this.bb_pos); - } - static sizeOf() { - return 4; - } - static createuserDataInteger(builder, integer) { - builder.prep(4, 4); - builder.writeInt32(integer); - return builder.offset(); - } - } - class userDataPoint { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - x() { - return this.bb.readInt32(this.bb_pos); - } - y() { - return this.bb.readInt32(this.bb_pos + 4); - } - static sizeOf() { - return 8; - } - static createuserDataPoint(builder, x, y) { - builder.prep(4, 8); - builder.writeInt32(y); - builder.writeInt32(x); - return builder.offset(); - } - } - class userDataRect { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - x() { - return this.bb.readInt32(this.bb_pos); - } - y() { - return this.bb.readInt32(this.bb_pos + 4); - } - w() { - return this.bb.readInt32(this.bb_pos + 8); - } - h() { - return this.bb.readInt32(this.bb_pos + 12); - } - static sizeOf() { - return 16; - } - static createuserDataRect(builder, x, y, w, h) { - builder.prep(4, 16); - builder.writeInt32(h); - builder.writeInt32(w); - builder.writeInt32(y); - builder.writeInt32(x); - return builder.offset(); - } - } - class userDataString { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsuserDataString(bb, obj) { - return (obj || new userDataString()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsuserDataString(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new userDataString()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - length() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - data(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - static startuserDataString(builder) { - builder.startObject(2); - } - static addLength(builder, length) { - builder.addFieldInt32(0, length, 0); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(1, dataOffset, 0); - } - static enduserDataString(builder) { - const offset = builder.endObject(); - return offset; - } - static createuserDataString(builder, length, dataOffset) { - userDataString.startuserDataString(builder); - userDataString.addLength(builder, length); - userDataString.addData(builder, dataOffset); - return userDataString.enduserDataString(builder); - } - } - let Utils$1 = class Utils { - static getProjectData(bytes) { - const buf = new ByteBuffer(bytes); - return ProjectData.getRootAsProjectData(buf); - } - }; - class Utils2 { - static getProjectData(bytes) { - return Utils$1.getProjectData(bytes); - } - } - class Player { - constructor(ssfbData, animePackName = null, animeName = null) { - this.curAnimePackName = null; - this.curAnimeName = null; - this.curAnimation = null; - this.curAnimePackData = null; - this._animePackIdx = -1; - this._parentIndex = []; - this._prio2index = []; - this.userData = []; - this.frameDataCache = null; - this.currentCachedFrameNumber = -1; - this.defaultFrameMap = []; - this._uint32 = new Uint32Array(1); - this._float32 = new Float32Array(this._uint32.buffer); - if (Object.prototype.hasOwnProperty.call(ssfbData, "bb")) { - this._fbObj = ssfbData; - } else { - this._fbObj = Utils2.getProjectData(ssfbData); - } - if (animePackName !== null && animeName !== null) { - this.Setup(animePackName, animeName); - } - } - get fbObj() { - return this._fbObj; - } - get animePackName() { - return this.curAnimePackName; - } - get animeName() { - return this.curAnimeName; - } - get animePackIdx() { - return this._animePackIdx; - } - get animePackData() { - return this.curAnimePackData; - } - get animationData() { - return this.curAnimation; - } - get parentIndex() { - return this._parentIndex; - } - get prio2index() { - return this._prio2index; - } - /** - * Setup - * @param {string} animePackName - The name of animePack(SSAE). - * @param {string} animeName - The name of animation. - */ - Setup(animePackName, animeName) { - this.clearCaches(); - const animePacksLength = this._fbObj.animePacksLength(); - let found = false; - for (let i = 0; i < animePacksLength; i++) { - if (this._fbObj.animePacks(i).name() === animePackName) { - let j; - const animationsLength = this._fbObj.animePacks(i).animationsLength(); - for (j = 0; j < animationsLength; j++) { - if (this._fbObj.animePacks(i).animations(j).name() === animeName) { - this.curAnimePackName = animePackName; - this.curAnimeName = animeName; - this.curAnimePackData = this._fbObj.animePacks(i); - this.curAnimation = this.curAnimePackData.animations(j); - found = true; - break; - } - } - if (!found) { - continue; - } - const defaultDataLength = this.curAnimation.defaultDataLength(); - for (let j2 = 0; j2 < defaultDataLength; j2++) { - const curDefaultData = this.curAnimation.defaultData(j2); - this.defaultFrameMap[curDefaultData.index()] = curDefaultData; - } - this._animePackIdx = i; - const partsLength = this.curAnimePackData.partsLength(); - this._parentIndex = new Array(partsLength); - for (j = 0; j < partsLength; j++) { - const index = this.curAnimePackData.parts(j).index(); - this._parentIndex[index] = this._fbObj.animePacks(i).parts(j).parentIndex(); - } - } - } - if (!found) { - throw Error("not found animePackName: " + animePackName + " animeName: " + animeName); - } - } - clearCaches() { - this._prio2index = []; - this.userData = []; - this.frameDataCache = null; - this.currentCachedFrameNumber = -1; - this.defaultFrameMap = []; - } - /** - * ユーザーデータコールバックの設定 - * @param fn - * @constructor - * - * ユーザーデータのフォーマット - * data = [[d0,d1,...,d10],[da0,da1,...,da10],...]) - * data.length : 当該フレームでユーザーデータの存在するパーツ(レイヤー)数 - * d0 : パーツ(レイヤー)番号 - * d1 : 有効データビット(&1:int, &2:rect(int*4), &4:pos(int*2), &8:string) - * d2 : int(int) - * d3 : rect0(int) - * d4 : rect1(int) - * d5 : rect2(int) - * d6 : rect3(int) - * d7 : pos0(int) - * d8 : pos1(int) - * d9 : string.length(int) - * d10: string(string) - * - */ - /** - * ユーザーデータの存在チェック - * @param {number} frameNumber - フレーム番号 - * @return {boolean} - 存在するかどうか - */ - HaveUserData(frameNumber) { - if (this.userData[frameNumber] === null) { - return false; - } - if (this.userData[frameNumber] !== void 0) { - return true; - } - for (let k = 0; k < this.curAnimation.userDataLength(); k++) { - if (frameNumber === this.curAnimation.userData(k).frameIndex()) { - this.userData[frameNumber] = this.curAnimation.userData(k); - return true; - } - } - this.userData[frameNumber] = null; - return false; - } - /** - * ユーザーデータの取得 - * @param {number} frameNumber - フレーム番号 - * @return {array} - ユーザーデータ - */ - GetUserData(frameNumber) { - if (this.HaveUserData(frameNumber) === false) { - return; - } - const framedata = this.userData[frameNumber]; - const layers = framedata.dataLength(); - let id = 0; - let data = []; - for (let i = 0; i < layers; i++) { - const bit = framedata.data(i).flags(); - const partsID = framedata.data(i).arrayIndex(); - let d_int = null; - let d_rect_x = null; - let d_rect_y = null; - let d_rect_w = null; - let d_rect_h = null; - let d_pos_x = null; - let d_pos_y = null; - let d_string_length = null; - let d_string = null; - if (bit & 1) { - d_int = framedata.data(i).data(id, new userDataInteger()).integer(); - id++; - } - if (bit & 2) { - d_rect_x = framedata.data(i).data(id, new userDataRect()).x(); - d_rect_y = framedata.data(i).data(id, new userDataRect()).y(); - d_rect_w = framedata.data(i).data(id, new userDataRect()).w(); - d_rect_h = framedata.data(i).data(id, new userDataRect()).h(); - id++; - } - if (bit & 4) { - d_pos_x = framedata.data(i).data(id, new userDataPoint()).x(); - d_pos_y = framedata.data(i).data(id, new userDataPoint()).y(); - id++; - } - if (bit & 8) { - d_string_length = framedata.data(i).data(id, new userDataString()).length(); - d_string = framedata.data(i).data(id, new userDataString()).data(); - id++; - } - data.push([partsID, bit, d_int, d_rect_x, d_rect_y, d_rect_w, d_rect_h, d_pos_x, d_pos_y, d_string_length, d_string]); - } - return data; - } - /** - * int型からfloat型に変換する - * @return {floatView[0]} - float型に変換したデータ - */ - I2F(i) { - this._uint32[0] = i; - return this._float32[0]; - } - /** - * 1フレーム分のデータを取得する(未設定項目はデフォルト) - * [注意]現verでは未対応項目があると正常動作しない可能性があります - * @param {number} frameNumber - フレーム番号 - */ - GetFrameData(frameNumber) { - if (this.currentCachedFrameNumber === frameNumber && this.frameDataCache) { - return this.frameDataCache; - } - const layers = this.curAnimation.defaultDataLength(); - let frameData = new Array(layers); - this._prio2index = new Array(layers); - const curFrameData = this.curAnimation.frameData(frameNumber); - for (let i = 0; i < layers; i++) { - const curPartState = curFrameData.states(i); - const index = curPartState.index(); - let f1 = curPartState.flag1(); - let f2 = curPartState.flag2(); - let fd = this.GetDefaultDataByIndex(index); - fd.flag1 = f1; - fd.flag2 = f2; - let id = 0; - if (f1 & PART_FLAG.INVISIBLE) fd.f_hide = true; - if (f1 & PART_FLAG.FLIP_H) fd.f_flipH = true; - if (f1 & PART_FLAG.FLIP_V) fd.f_flipV = true; - if (f1 & PART_FLAG.CELL_INDEX) fd.cellIndex = curPartState.data(id++); - if (f1 & PART_FLAG.POSITION_X) fd.positionX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.POSITION_Y) fd.positionY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.POSITION_Z) id++; - if (f1 & PART_FLAG.PIVOT_X) fd.pivotX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.PIVOT_Y) fd.pivotY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.ROTATIONX) id++; - if (f1 & PART_FLAG.ROTATIONY) id++; - if (f1 & PART_FLAG.ROTATIONZ) fd.rotationZ = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.SCALE_X) fd.scaleX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.SCALE_Y) fd.scaleY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.LOCALSCALE_X) fd.localscaleX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.LOCALSCALE_Y) fd.localscaleY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.OPACITY) fd.opacity = curPartState.data(id++); - if (f1 & PART_FLAG.LOCALOPACITY) fd.localopacity = curPartState.data(id++); - if (f1 & PART_FLAG.SIZE_X) fd.size_X = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.SIZE_Y) fd.size_Y = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.U_MOVE) fd.uv_move_X = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.V_MOVE) fd.uv_move_Y = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.UV_ROTATION) fd.uv_rotation = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.U_SCALE) fd.uv_scale_X = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.V_SCALE) fd.uv_scale_Y = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.BOUNDINGRADIUS) id++; - if (f1 & PART_FLAG.MASK) fd.masklimen = curPartState.data(id++); - if (f1 & PART_FLAG.PRIORITY) fd.priority = curPartState.data(id++); - if (f1 & PART_FLAG.INSTANCE_KEYFRAME) { - fd.instanceValue_curKeyframe = curPartState.data(id++); - fd.instanceValue_startFrame = curPartState.data(id++); - fd.instanceValue_endFrame = curPartState.data(id++); - fd.instanceValue_loopNum = curPartState.data(id++); - fd.instanceValue_speed = this.I2F(curPartState.data(id++)); - fd.instanceValue_loopflag = curPartState.data(id++); - } - if (f1 & PART_FLAG.EFFECT_KEYFRAME) { - fd.effectValue_curKeyframe = curPartState.data(id++); - fd.effectValue_startTime = curPartState.data(id++); - fd.effectValue_speed = this.I2F(curPartState.data(id++)); - fd.effectValue_loopflag = curPartState.data(id++); - } - if (f1 & PART_FLAG.VERTEX_TRANSFORM) { - fd.f_mesh = true; - const f = fd.i_transformVerts = curPartState.data(id++); - if (f & 1) { - fd.u00 = this.I2F(curPartState.data(id++)); - fd.v00 = this.I2F(curPartState.data(id++)); - } - if (f & 2) { - fd.u01 = this.I2F(curPartState.data(id++)); - fd.v01 = this.I2F(curPartState.data(id++)); - } - if (f & 4) { - fd.u10 = this.I2F(curPartState.data(id++)); - fd.v10 = this.I2F(curPartState.data(id++)); - } - if (f & 8) { - fd.u11 = this.I2F(curPartState.data(id++)); - fd.v11 = this.I2F(curPartState.data(id++)); - } - } - if (f1 & PART_FLAG.PARTS_COLOR) { - const f = curPartState.data(id++); - fd.colorBlendType = f & 255; - fd.useColorMatrix = fd.colorBlendType !== 1; - if (f & 4096) { - fd.colorRate = this.I2F(curPartState.data(id++)); - const bf = curPartState.data(id++); - const bf2 = curPartState.data(id++); - fd.colorArgb32 = bf << 16 | bf2; - fd.partsColorARGB = fd.colorArgb32 >>> 0; - if (fd.colorBlendType === 1) { - fd.tint = fd.colorArgb32 & 16777215; - } - } - } - if (f2 & PART_FLAG2.MESHDATA) { - const meshUv = this.curAnimation.meshsDataUv(index); - fd.meshIsBind = meshUv.uv(0); - fd.meshNum = meshUv.uv(1); - let mp = new Float32Array(fd.meshNum * 3); - for (let idx = 0; idx < fd.meshNum; idx++) { - const mx = this.I2F(curPartState.data(id++)); - const my = this.I2F(curPartState.data(id++)); - const mz = this.I2F(curPartState.data(id++)); - mp[idx * 3 + 0] = mx; - mp[idx * 3 + 1] = my; - mp[idx * 3 + 2] = mz; - } - fd.meshDataPoint = mp; - } - frameData[index] = fd; - this._prio2index[i] = index; - if (this.curAnimePackData.parts(index).type() === 0) { - frameData[index].cellIndex = -2; - } - } - this.frameDataCache = frameData; - this.currentCachedFrameNumber = frameNumber; - return frameData; - } - /** - * デフォルトデータを取得する - * @param {number} id - パーツ(レイヤー)ID - * @return {array} - データ - */ - GetDefaultDataByIndex(id) { - const curDefaultData = this.defaultFrameMap[id]; - let dfd = new FrameData(); - dfd.index = curDefaultData.index(); - dfd.lowflag = curDefaultData.lowflag(); - dfd.highflag = curDefaultData.highflag(); - dfd.priority = curDefaultData.priority(); - dfd.cellIndex = curDefaultData.cellIndex(); - dfd.opacity = curDefaultData.opacity(); - dfd.localopacity = curDefaultData.localopacity(); - dfd.masklimen = curDefaultData.masklimen(); - dfd.positionX = curDefaultData.positionX(); - dfd.positionY = curDefaultData.positionY(); - dfd.pivotX = curDefaultData.pivotX(); - dfd.pivotY = curDefaultData.pivotY(); - dfd.rotationX = curDefaultData.rotationX(); - dfd.rotationY = curDefaultData.rotationY(); - dfd.rotationZ = curDefaultData.rotationZ(); - dfd.scaleX = curDefaultData.scaleX(); - dfd.scaleY = curDefaultData.scaleY(); - dfd.localscaleX = curDefaultData.localscaleX(); - dfd.localscaleY = curDefaultData.localscaleY(); - dfd.size_X = curDefaultData.sizeX(); - dfd.size_Y = curDefaultData.sizeY(); - dfd.uv_move_X = curDefaultData.uvMoveX(); - dfd.uv_move_Y = curDefaultData.uvMoveY(); - dfd.uv_rotation = curDefaultData.uvRotation(); - dfd.uv_scale_X = curDefaultData.uvScaleX(); - dfd.uv_scale_Y = curDefaultData.uvScaleY(); - dfd.boundingRadius = curDefaultData.boundingRadius(); - dfd.instanceValue_curKeyframe = curDefaultData.instanceValueCurKeyframe(); - dfd.instanceValue_endFrame = curDefaultData.instanceValueEndFrame(); - dfd.instanceValue_startFrame = curDefaultData.instanceValueStartFrame(); - dfd.instanceValue_loopNum = curDefaultData.instanceValueLoopNum(); - dfd.instanceValue_speed = curDefaultData.instanceValueSpeed(); - dfd.instanceValue_loopflag = curDefaultData.instanceValueLoopflag(); - dfd.effectValue_curKeyframe = curDefaultData.effectValueCurKeyframe(); - dfd.effectValue_startTime = curDefaultData.effectValueStartTime(); - dfd.effectValue_speed = curDefaultData.effectValueSpeed(); - dfd.effectValue_loopflag = curDefaultData.effectValueLoopflag(); - dfd.f_hide = false; - dfd.f_flipH = false; - dfd.f_flipV = false; - dfd.f_mesh = false; - dfd.i_transformVerts = 0; - dfd.u00 = 0; - dfd.v00 = 0; - dfd.u01 = 0; - dfd.v01 = 0; - dfd.u10 = 0; - dfd.v10 = 0; - dfd.u11 = 0; - dfd.v11 = 0; - dfd.useColorMatrix = false; - dfd.colorBlendType = 0; - dfd.colorRate = 0; - dfd.colorArgb32 = 0; - dfd.meshIsBind = 0; - dfd.meshNum = 0; - dfd.meshDataPoint = null; - dfd.flag1 = 0; - dfd.flag2 = 0; - dfd.partsColorARGB = 0; - return dfd; - } - /** - * 親を遡って不透明度を継承する - * @param {number} opacity - 透明度 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {number} - 透明度 - */ - InheritOpacity(opacity, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - opacity = data.opacity / 255; - if (this._parentIndex[partId] >= 0) { - opacity = this.InheritOpacity(opacity, this._parentIndex[partId], frameNumber); - } - return opacity; - } - /** - * 親を遡って座標変換する(ローカルアトリビュート適用) - * @param {array} verts - 頂点情報配列 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformVertsLocal(verts, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - for (let i = 0; i < verts.length / 2; i++) { - let x = verts[i * 2]; - let y = verts[i * 2 + 1]; - if (data.i_transformVerts & 1 && i === 1) { - x += data.u00; - y -= data.v00; - } - if (data.i_transformVerts & 2 && i === 2) { - x += data.u01; - y -= data.v01; - } - if (data.i_transformVerts & 4 && i === 3) { - x += data.u10; - y -= data.v10; - } - if (data.i_transformVerts & 8 && i === 4) { - x += data.u11; - y -= data.v11; - } - x *= data.scaleX * data.localscaleX; - y *= data.scaleY * data.localscaleY; - verts[i * 2] = cos * x - sin * y + data.positionX; - verts[i * 2 + 1] = sin * x + cos * y - data.positionY; - if (data.f_flipH) { - verts[i * 2] = verts[0] * 2 - verts[i * 2]; - } - if (data.f_flipV) { - verts[i * 2 + 1] = verts[1] * 2 - verts[i * 2 + 1]; - } - } - if (this._parentIndex[partId] >= 0) { - verts = this.TransformVerts(verts, this._parentIndex[partId], frameNumber); - } - return verts; - } - /** - * 親を遡って座標変換する(ローカルアトリビュート適用) - * @param {array} verts - 頂点情報配列 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformMeshVertsLocal(verts, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - for (let i = 0; i < verts.length / 2; i++) { - let x = verts[i * 2]; - let y = verts[i * 2 + 1]; - x *= data.scaleX * data.localscaleX; - y *= data.scaleY * data.localscaleY; - verts[i * 2] = cos * x - sin * y + data.positionX; - verts[i * 2 + 1] = sin * x + cos * y - data.positionY; - } - if (this._parentIndex[partId] >= 0) { - verts = this.TransformVerts(verts, this._parentIndex[partId], frameNumber); - } - return verts; - } - /** - * 親を遡って座標変換する(ローカルアトリビュート適用) - * @param {array} pos - 頂点情報配列 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformPositionLocal(pos, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - pos[4] += -data.rotationZ; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - const x = pos[0] * data.scaleX * data.localscaleX; - const y = pos[1] * data.scaleY * data.localscaleY; - pos[2] *= data.scaleX * data.localscaleX; - pos[3] *= data.scaleY * data.localscaleY; - pos[0] = cos * x - sin * y + data.positionX; - pos[1] = sin * x + cos * y - data.positionY; - if (this._parentIndex[partId] >= 0) { - pos = this.TransformPosition(pos, this._parentIndex[partId], frameNumber); - } - return pos; - } - /** - * 5頂点の中間点を求める - * @param {number} cx - 元の中心点 - * @param {number} cy - 元の中心点 - * @param {number} LUx - 左上座標 - * @param {number} LUy - 左上座標 - * @param {number} RUx - 右上座標 - * @param {number} RUy - 右上座標 - * @param {number} LDx - 左下座標 - * @param {number} LDy - 左下座標 - * @param {number} RDx - 右下座標 - * @param {number} RDy - 右下座標 - * @param vec2 - * @return {array} vec2 - 4頂点から算出した中心点の座標 - */ - static CoordinateGetDiagonalIntersection(cx, cy, LUx, LUy, RUx, RUy, LDx, LDy, RDx, RDy, vec2) { - const c1 = (LDy - RUy) * (LDx - LUx) - (LDx - RUx) * (LDy - LUy); - const c2 = (RDx - LUx) * (LDy - LUy) - (RDy - LUy) * (LDx - LUx); - const c3 = (RDx - LUx) * (LDy - RUy) - (RDy - LUy) * (LDx - RUx); - if (c3 <= 0 && c3 >= 0) return vec2; - const ca = c1 / c3; - const cb = c2 / c3; - if (0 <= ca && 1 >= ca && (0 <= cb && 1 >= cb)) { - cx = LUx + ca * (RDx - LUx); - cy = LUy + ca * (RDy - LUy); - } - vec2[0] = cx; - vec2[1] = cy; - return vec2; - } - /** - * 親を遡って座標変換する - * @param {array} verts - 頂点情報配列 - * @param {number} id - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformVerts(verts, id, frameNumber) { - const data = this.GetFrameData(frameNumber)[id]; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - for (let i = 0; i < verts.length / 2; i++) { - let x = verts[i * 2]; - let y = verts[i * 2 + 1]; - x *= data.scaleX; - y *= data.scaleY; - verts[i * 2] = cos * x - sin * y + data.positionX; - verts[i * 2 + 1] = sin * x + cos * y - data.positionY; - if (data.f_flipH) { - verts[i * 2] = verts[0] * 2 - verts[i * 2]; - } - if (data.f_flipV) { - verts[i * 2 + 1] = verts[1] * 2 - verts[i * 2 + 1]; - } - } - if (this._parentIndex[id] >= 0) { - verts = this.TransformVerts(verts, this._parentIndex[id], frameNumber); - } - return verts; - } - /** - * 親を遡って座標変換する - * @param {array} pos - 頂点情報配列 - * @param {number} id - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformPosition(pos, id, frameNumber) { - const data = this.GetFrameData(frameNumber)[id]; - pos[4] += -data.rotationZ; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - const x = pos[0] * data.scaleX; - const y = pos[1] * data.scaleY; - pos[2] *= data.scaleX; - pos[3] *= data.scaleY; - pos[0] = cos * x - sin * y + data.positionX; - pos[1] = sin * x + cos * y - data.positionY; - if (this._parentIndex[id] >= 0) { - pos = this.TransformPosition(pos, this._parentIndex[id], frameNumber); - } - return pos; - } - /** - * 矩形セルメッシュの頂点情報のみ取得 - * @param {ssfblib.Cell} cell - セル - * @param {array} data - アニメーションフレームデータ - * @param verts - * @return {array} - 頂点情報配列 - */ - static GetVerts(cell, data, verts) { - const w = data.size_X / 2; - const h = data.size_Y / 2; - const px = data.size_X * -(data.pivotX + cell.pivotX()); - const py = data.size_Y * (data.pivotY + cell.pivotY()); - verts.set([px, py, px - w, py - h, px + w, py - h, px - w, py + h, px + w, py + h]); - return verts; - } - /** - * 矩形セルメッシュの頂点情報のみ取得 - * @param {ssfblib.Cell} cell - セル - * @param {array} data - アニメーションフレームデータ - * @param verts - * @return {array} - 頂点情報配列 - */ - static GetMeshVerts(cell, data, verts) { - for (let idx = 0; idx < data.meshNum; idx++) { - verts[ - idx * 2 - /*+ 0*/ - ] = data.meshDataPoint[ - idx * 3 - /* + 0 */ - ]; - verts[idx * 2 + 1] = -data.meshDataPoint[idx * 3 + 1]; - } - return verts; - } - static GetDummyVerts() { - return new Float32Array([0, 0, -0.5, -0.5, 0.5, -0.5, -0.5, 0.5, 0.5, 0.5]); - } - } - - class PixiResourceLoaderImpl { - constructor() { - } - load(sspjfile, sspjMap, onComplete) { - pixi_js.Assets.addBundle(sspjfile, sspjMap); - pixi_js.Assets.loadBundle(sspjfile).then(() => { - if (onComplete !== null) { - onComplete(null); - } - }).catch((e) => { - if (onComplete !== null) { - onComplete(e); - } - }); - } - unload(sspjfile, sspjMap, onComplete) { - pixi_js.Assets.unloadBundle(sspjfile).then(() => { - if (onComplete !== null) { - onComplete(null); - } - }).catch((error) => { - if (onComplete !== null) { - onComplete(error); - } - }); - } - texture(key) { - return pixi_js.Assets.get(key); - } - } - - class SS6ProjectResourceLoader { - constructor() { - this.loader = new PixiResourceLoaderImpl(); - } - load(sspjfile, sspjMap, onComplete) { - return this.loader.load(sspjfile, sspjMap, onComplete); - } - unload(sspjfile, sspjMap, onComplete = null) { - return this.loader.unload(sspjfile, sspjMap, onComplete); - } - texture(key) { - return this.loader.texture(key); - } - } - - class SS6Project { - constructor(arg1, arg2, arg3, arg4) { - this.sspjMap = {}; - this.resourceLoader = new SS6ProjectResourceLoader(); - if (typeof arg1 === "string" && arg3 === void 0) { - let ssfbPath = arg1; - this.ssfbPath = ssfbPath; - const index = ssfbPath.lastIndexOf("/"); - this.rootPath = ssfbPath.substring(0, index) + "/"; - this.ssfbFile = ssfbPath.substring(index + 1); - this.onComplete = arg2 === void 0 ? null : arg2; - this.status = 0 /* NOT_READY */; - this.LoadFlatBuffersProject(); - } else if (typeof arg2 === "object" && arg2.constructor === Uint8Array) { - this.ssfbPath = null; - this.rootPath = null; - this.ssfbFile = arg1; - let ssfbByte = arg2; - let imageBinaryMap = arg3; - this.onComplete = arg4 === void 0 ? null : arg4; - this.load(ssfbByte, imageBinaryMap); - } - } - getBundle() { - return this.ssfbFile; - } - getTexture(key) { - return this.resourceLoader.texture(key); - } - dispose(callback = null) { - this.resourceLoader.unload(this.getBundle(), this.sspjMap, (error) => { - if (callback !== null) { - callback(); - } - }); - } - /** - * Load json and parse (then, load textures) - */ - LoadFlatBuffersProject() { - const self = this; - fetch(this.ssfbPath, { method: "get" }).then((response) => { - if (response.ok) { - return Promise.resolve(response.arrayBuffer()); - } else { - return Promise.reject(new Error(response.statusText)); - } - }).then((a) => { - self.fbObj = Utils2.getProjectData(new Uint8Array(a)); - self.LoadCellResources(); - }).catch((error) => { - if (this.onComplete !== null) { - this.onComplete(null, error); - } - }); - } - /** - * Load textures - */ - LoadCellResources() { - let ids = []; - this.sspjMap = {}; - for (let i = 0; i < this.fbObj.cellsLength(); i++) { - const cellMap = this.fbObj.cells(i).cellMap(); - const cellMapIndex = cellMap.index(); - if (!ids.some(function(id) { - return id === cellMapIndex; - })) { - ids.push(cellMapIndex); - const name = cellMap.name(); - this.sspjMap[name] = this.rootPath + cellMap.imagePath(); - } - } - const self = this; - this.resourceLoader.load(this.getBundle(), this.sspjMap, (error) => { - if (error === null) { - self.status = 1 /* READY */; - if (self.onComplete !== null) { - self.onComplete(this, null); - } - } else { - if (this.onComplete !== null) { - this.onComplete(null, error); - } - } - }); - } - load(bytes, imageBinaryMap) { - this.fbObj = Utils2.getProjectData(bytes); - let assetMap = {}; - for (let imageName in imageBinaryMap) { - const binary = imageBinaryMap[imageName]; - let b = ""; - const len = binary.byteLength; - for (let i = 0; i < len; i++) { - b += String.fromCharCode(binary[i]); - } - assetMap[imageName] = "data:image/png;base64," + btoa(b); - } - const self = this; - this.resourceLoader.load(this.getBundle(), assetMap, (error) => { - if (error === null) { - self.status = 1 /* READY */; - if (self.onComplete !== null) { - self.onComplete(this, null); - } - } else { - if (this.onComplete !== null) { - this.onComplete(null, error); - } - } - }); - } - } - - class SS6PlayerInstanceKeyParam { - constructor() { - this.refStartframe = 0; - this.refEndframe = 0; - this.refSpeed = 1; - this.refloopNum = 0; - this.infinity = false; - this.reverse = false; - this.pingpong = false; - this.independent = false; - } - } - - class SS6Player extends pixi_js.Container { - /** - * SS6Player (extends PIXI.Container) - * @constructor - * @param {SS6Project} ss6project - SS6Project that contains animations. - * @param {string} animePackName - The name of animePack(SSAE). - * @param {string} animeName - The name of animation. - */ - constructor(ss6project, animePackName = null, animeName = null) { - super(); - this.liveFrame = []; - this.colorMatrixFilterCache = []; - this.parentAlpha = 1; - // - // cell再利用 - this.prevCellID = []; - // 各パーツ(レイヤー)で前回使用したセルID - this.prevPartObject = []; - this.changeCellID = []; - this.changeVisible = []; - this.changeTint = []; - // for change instance - this.substituteOverWrite = []; - this.substituteKeyParam = []; - this.alphaBlendType = []; - this.defaultColorFilter = new pixi_js.ColorMatrixFilter(); - this._instancePos = new Float32Array(5); - this._CoordinateGetDiagonalIntersectionVec2 = new Float32Array(2); - this.isRenderGroup = true; - this.ss6project = ss6project; - this.playerLib = new Player(ss6project.fbObj, animePackName, animeName); - this.parentAlpha = 1; - if (animePackName !== null && animeName !== null) { - this.Setup(animePackName, animeName); - } - this.on("added", (...args) => { - pixi_js.Ticker.shared.add(this.Update, this); - }, this); - this.on("removed", (...args) => { - pixi_js.Ticker.shared.remove(this.Update, this); - }, this); - } - get startFrame() { - return this._startFrame; - } - get endFrame() { - return this._endFrame; - } - get totalFrame() { - return this.playerLib.animationData.totalFrames(); - } - get fps() { - return this.playerLib.animationData.fps(); - } - get frameNo() { - return Math.floor(this._currentFrame); - } - set loop(loop) { - this._loops = loop; - } - get loop() { - return this._loops; - } - get isPlaying() { - return this._isPlaying; - } - get isPausing() { - return this._isPausing; - } - get animePackName() { - return this.playerLib.animePackName; - } - get animeName() { - return this.playerLib.animeName; - } - /** - * Setup - * @param {string} animePackName - The name of animePack(SSAE). - * @param {string} animeName - The name of animation. - */ - Setup(animePackName, animeName) { - this.playerLib.Setup(animePackName, animeName); - this.clearCaches(); - const animePackData = this.playerLib.animePackData; - const partsLength = animePackData.partsLength(); - this.prevCellID = new Array(partsLength); - this.prevPartObject = new Array(partsLength); - this.changeCellID = new Array(partsLength); - this.changeVisible = new Array(partsLength); - this.changeTint = new Array(partsLength); - this.substituteOverWrite = new Array(partsLength); - this.substituteKeyParam = new Array(partsLength); - for (let j = 0; j < partsLength; j++) { - const index = animePackData.parts(j).index(); - this.prevCellID[index] = -1; - this.prevPartObject[index] = null; - this.changeCellID[index] = -1; - this.changeVisible[index] = true; - this.changeTint[index] = null; - this.substituteOverWrite[index] = null; - this.substituteKeyParam[index] = null; - } - this.alphaBlendType = this.GetPartsBlendMode(); - this._isPlaying = false; - this._isPausing = true; - this._startFrame = this.playerLib.animationData.startFrames(); - this._endFrame = this.playerLib.animationData.endFrames(); - this._currentFrame = this.playerLib.animationData.startFrames(); - this.nextFrameTime = 0; - this._loops = -1; - this.skipEnabled = true; - this.updateInterval = 1e3 / this.playerLib.animationData.fps(); - this.playDirection = 1; - this.onUserDataCallback = null; - this.playEndCallback = null; - this.parentAlpha = 1; - } - clearCaches() { - this.liveFrame = []; - this.colorMatrixFilterCache = []; - } - Update(ticker) { - this.UpdateInternal(ticker.deltaMS); - } - /** - * Update is called PIXI.ticker - * @param {number} delta - expected 1 - */ - UpdateInternal(delta, rewindAfterReachingEndFrame = true) { - const elapsedTime = delta; - const toNextFrame = this._isPlaying && !this._isPausing; - if (toNextFrame && this.updateInterval !== 0) { - this.nextFrameTime += elapsedTime; - if (this.nextFrameTime >= this.updateInterval) { - let playEndFlag = false; - const step = this.nextFrameTime / this.updateInterval; - this.nextFrameTime -= this.updateInterval * step; - let s = this.skipEnabled ? step * this.playDirection : this.playDirection; - let next = this._currentFrame + s; - let nextFrameNo = Math.floor(next); - let nextFrameDecimal = next - nextFrameNo; - let currentFrameNo = Math.floor(this._currentFrame); - if (this.playDirection >= 1) { - for (let c = nextFrameNo - currentFrameNo; c; c--) { - let incFrameNo = currentFrameNo + 1; - if (incFrameNo > this._endFrame) { - if (this._loops === -1) { - incFrameNo = this._startFrame; - } else { - this._loops--; - playEndFlag = true; - if (this._loops === 0) { - this._isPlaying = false; - incFrameNo = rewindAfterReachingEndFrame ? this._startFrame : this._endFrame; - break; - } else { - incFrameNo = this._startFrame; - } - } - } - currentFrameNo = incFrameNo; - if (this._isPlaying) { - if (this.playerLib.HaveUserData(currentFrameNo)) { - if (this.onUserDataCallback !== null) { - this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); - } - } - } - } - } - if (this.playDirection <= -1) { - for (let c = currentFrameNo - nextFrameNo; c; c--) { - let decFrameNo = currentFrameNo - 1; - if (decFrameNo < this._startFrame) { - if (this._loops === -1) { - decFrameNo = this._endFrame; - } else { - this._loops--; - playEndFlag = true; - if (this._loops === 0) { - this._isPlaying = false; - decFrameNo = rewindAfterReachingEndFrame ? this._endFrame : this._startFrame; - break; - } else { - decFrameNo = this._endFrame; - } - } - } - currentFrameNo = decFrameNo; - if (this._isPlaying) { - if (this.playerLib.HaveUserData(currentFrameNo)) { - if (this.onUserDataCallback !== null) { - this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); - } - } - } - } - } - this._currentFrame = currentFrameNo + nextFrameDecimal; - if (playEndFlag) { - if (this.playEndCallback !== null) { - this.playEndCallback(this); - } - } - this.SetFrameAnimation(Math.floor(this._currentFrame), step); - } - } else { - this.SetFrameAnimation(Math.floor(this._currentFrame)); - } - } - /** - * アニメーションの速度を設定する (deprecated この関数は削除される可能性があります) - * @param {number} fps - アニメーション速度(frame per sec.) - * @param {boolean} _skipEnabled - 描画更新が間に合わないときにフレームをスキップするかどうか - */ - SetAnimationFramerate(fps, _skipEnabled = true) { - if (fps <= 0) return; - this.updateInterval = 1e3 / fps; - this.skipEnabled = _skipEnabled; - } - /** - * アニメーションの速度を設定する - * @param {number} fpsRate - アニメーション速度(設定値に対する乗率)負数設定で逆再生 - * @param {boolean} _skipEnabled - 描画更新が間に合わないときにフレームをスキップするかどうか - */ - SetAnimationSpeed(fpsRate, _skipEnabled = true) { - if (fpsRate === 0) return; - this.playDirection = fpsRate > 0 ? 1 : -1; - this.updateInterval = 1e3 / (this.playerLib.animationData.fps() * fpsRate * this.playDirection); - this.skipEnabled = _skipEnabled; - } - /** - * アニメーション再生設定 - * @param {number} _startframe - 開始フレーム番号(マイナス設定でデフォルト値を変更しない) - * @param {number} _endframe - 終了フレーム番号(マイナス設定でデフォルト値を変更しない) - * @param {number} _loops - ループ回数(ゼロもしくはマイナス設定で無限ループ) - */ - SetAnimationSection(_startframe = -1, _endframe = -1, _loops = -1) { - if (_startframe >= 0 && _startframe < this.playerLib.animationData.totalFrames()) { - this._startFrame = _startframe; - } - if (_endframe >= 0 && _endframe < this.playerLib.animationData.totalFrames()) { - this._endFrame = _endframe; - } - if (_loops > 0) { - this._loops = _loops; - } else { - this._loops = -1; - } - this._currentFrame = this.playDirection > 0 ? this._startFrame : this._endFrame; - } - /** - * アニメーション再生を開始する - */ - Play(frameNo) { - this._isPlaying = true; - this._isPausing = false; - let currentFrame = this.playDirection > 0 ? this._startFrame : this._endFrame; - if (frameNo && typeof frameNo === "number") { - currentFrame = frameNo; - } - this._currentFrame = currentFrame; - this.resetLiveFrame(); - const currentFrameNo = Math.floor(this._currentFrame); - this.SetFrameAnimation(currentFrameNo); - if (this.playerLib.HaveUserData(currentFrameNo)) { - if (this.onUserDataCallback !== null) { - this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); - } - } - } - /** - * アニメーション再生を一時停止する - */ - Pause() { - this._isPausing = true; - } - /** - * アニメーション再生を再開する - */ - Resume() { - this._isPausing = false; - } - /** - * アニメーションを停止する - * @constructor - */ - Stop() { - this._isPlaying = false; - } - /** - * アニメーション再生を位置(フレーム)を設定する - */ - SetFrame(frame) { - this._currentFrame = frame; - } - NextFrame() { - const currentFrame = Math.floor(this._currentFrame); - const endFrame = this.endFrame; - if (currentFrame === endFrame) { - return; - } - this.SetFrame(currentFrame + 1); - } - PrevFrame() { - const currentFrame = Math.floor(this._currentFrame); - if (currentFrame === 0) { - return; - } - this.SetFrame(currentFrame - 1); - } - /** - * アニメーションの透明度を設定する - */ - SetAlpha(alpha) { - this.parentAlpha = alpha; - } - /** - * エラー処理 - * @param {any} _error - エラー - */ - ThrowError(_error) { - } - /** - * ユーザーデータコールバックの設定 - * @param fn - * @constructor - * - * ユーザーデータのフォーマット - * data = [[d0,d1,...,d10],[da0,da1,...,da10],...]) - * data.length : 当該フレームでユーザーデータの存在するパーツ(レイヤー)数 - * d0 : パーツ(レイヤー)番号 - * d1 : 有効データビット(&1:int, &2:rect(int*4), &4:pos(int*2), &8:string) - * d2 : int(int) - * d3 : rect0(int) - * d4 : rect1(int) - * d5 : rect2(int) - * d6 : rect3(int) - * d7 : pos0(int) - * d8 : pos1(int) - * d9 : string.length(int) - * d10: string(string) - * - */ - SetUserDataCalback(fn) { - this.onUserDataCallback = fn; - } - /** - * 再生終了時に呼び出されるコールバックを設定します. - * @param fn - * @constructor - * - * ループ回数分再生した後に呼び出される点に注意してください。 - * 無限ループで再生している場合はコールバックが発生しません。 - * - */ - SetPlayEndCallback(fn) { - this.playEndCallback = fn; - } - getCellIndex(sscename, cellname) { - let changeCellIndex = -1; - if (sscename !== "" && cellname !== "") { - const fbObj = this.playerLib.fbObj; - const numCells = this.playerLib.fbObj.numCells(); - for (let i = 0; i < numCells; i++) { - const cell = fbObj.cells(i); - const name1 = cell.name(); - const cellMap = cell.cellMap(); - const name2 = cellMap.name(); - if (cellname === name1 && sscename === name2) { - changeCellIndex = i; - break; - } - } - } - return changeCellIndex; - } - /** - * Retrieves the index of a part based on its name from the anime pack data. - * - * @param {string} partsname - The name of the part to search for. - * @return {number} The index of the part if found, or -1 if the part is not found. - */ - GetPartIndexFromName(partsname) { - const animePackData = this.playerLib.animePackData; - const partsLength = animePackData.partsLength(); - let partIndex = -1; - for (let i = 0; i < partsLength; i++) { - const part = animePackData.parts(i); - const index = part.index(); - const partName = part.name(); - if (partName === partsname) { - partIndex = index; - break; - } - } - return partIndex; - } - /** - * パーツに割り当たるセルを変更します. - * - * @param {string} partsname - パーツ名 - * @param {string} sscename - セルマップ名 - * @param {string} cellname - 表示させたいセル名 - * - * @return {[number, number]} [パーツ名の index, セル名 index] のタプルを返します。見つからない場合は -1 を返します。 - */ - SetPartCell(partsname, sscename, cellname) { - let changeCellIndex = -1; - let partIndex = -1; - if (this.playerLib.animationData) { - changeCellIndex = this.getCellIndex(sscename, cellname); - partIndex = this.GetPartIndexFromName(partsname); - this.SetPartCellByIndex(partIndex, changeCellIndex); - } - return [partIndex, changeCellIndex]; - } - /** - * パーツに割り当たるセルをインデックスで指定して変更します。 - * - * @param {number} partIndex - The index of the part to be updated. Must not be -1 to perform the update. - * @param {number} changeCellIndex - The new cell index to set for the specified partIndex. - * @return {void} This method does not return a value. - */ - SetPartCellByIndex(partIndex, changeCellIndex) { - if (partIndex !== -1) { - this.changeCellID[partIndex] = changeCellIndex; - return true; - } - return false; - } - /** - * Sets the visibility of a specific part by its name. - * - * @param {string} partsname - The name of the part whose visibility is to be set. - * @param {boolean} visible - A boolean indicating whether the part should be visible (true) or hidden (false). - * @return {boolean} Returns true if the operation was successful, false otherwise. - */ - SetPartVisible(partsname, visible) { - if (this.playerLib.animationData) { - const partIndex = this.GetPartIndexFromName(partsname); - return this.SetPartVisibleByIndex(partIndex, visible); - } - return false; - } - /** - * Sets the visibility of a part identified by its index. - * - * @param {number} partIndex - The index of the part to update. Must not be -1. - * @param {boolean} visible - A boolean indicating whether the part should be visible (true) or hidden (false). - * @return {boolean} Returns true if the visibility was successfully updated, otherwise returns false. - */ - SetPartVisibleByIndex(partIndex, visible) { - if (partIndex !== -1) { - this.changeVisible[partIndex] = visible; - return true; - } - return false; - } - /** - * Sets the tint color for a specific part of the player's animation. - * - * @param {string} partName - The name of the part to apply the tint to. - * @param {number} tint - The tint value to apply, represented as a number. - * @return {boolean} Returns true if the tint was successfully applied; otherwise, returns false. - */ - SetPartTint(partName, tint) { - if (this.playerLib.animationData) { - const partIndex = this.GetPartIndexFromName(partName); - return this.SetPartTintByIndex(partIndex, tint); - } - return false; - } - /** - * Updates the tint color of a specific part identified by its index. - * - * @param {number} partIndex - The index of the part for which the tint needs to be set. A value of -1 indicates no part is targeted. - * @param {number} tint - The tint value to be applied to the specified part. - * @return {boolean} Returns true if the tint is successfully applied, otherwise returns false. - */ - SetPartTintByIndex(partIndex, tint) { - if (partIndex !== -1) { - this.changeTint[partIndex] = tint; - return true; - } - return false; - } - /** - * パーツの描画モードを取得する - * @return {array} - 全パーツの描画モード - */ - GetPartsBlendMode() { - const animePacks = this.playerLib.animePackData; - const l = animePacks.partsLength(); - let ret = []; - for (let i = 0; i < l; i++) { - const alphaBlendType = animePacks.parts(i).alphaBlendType(); - let blendMode; - switch (alphaBlendType) { - case 0: - blendMode = "normal"; - break; - case 1: - blendMode = "multiply"; - break; - case 2: - blendMode = "add"; - break; - case 3: - blendMode = "subtract"; - break; - case 4: - blendMode = "multiply"; - break; - case 5: - blendMode = "screen"; - break; - case 6: - blendMode = "exclusion"; - break; - case 7: - blendMode = "normal"; - break; - default: - blendMode = "subtract"; - break; - } - ret.push(blendMode); - } - return ret; - } - /** - * パーツカラーのブレンド用カラーマトリクス - * @param {number} blendType - ブレンド方法(0:mix, 1:multiply, 2:add, 3:sub) - * @param {number} rate - ミックス時の混色レート - * @param {number} argb32 - パーツカラー(単色) - * @return {PIXI.filters.ColorMatrixFilter} - カラーマトリクス - */ - GetColorMatrixFilter(blendType, rate, argb32) { - const key = blendType.toString() + "_" + rate.toString() + "_" + argb32.toString(); - if (this.colorMatrixFilterCache[key]) return this.colorMatrixFilterCache[key]; - const colorMatrix = new pixi_js.ColorMatrixFilter(); - const ca = ((argb32 & 4278190080) >>> 24) / 255; - const cr = ((argb32 & 16711680) >>> 16) / 255; - const cg = ((argb32 & 65280) >>> 8) / 255; - const cb = (argb32 & 255) / 255; - if (blendType === 0) { - const rate_i = 1 - rate; - colorMatrix.matrix = [ - rate_i, - 0, - 0, - 0, - cr * rate, - 0, - rate_i, - 0, - 0, - cg * rate, - 0, - 0, - rate_i, - 0, - cb * rate, - 0, - 0, - 0, - 1, - 0 - ]; - } else if (blendType === 1) { - colorMatrix.matrix = [ - cr, - 0, - 0, - 0, - 0, - 0, - cg, - 0, - 0, - 0, - 0, - 0, - cb, - 0, - 0, - 0, - 0, - 0, - ca, - 0 - ]; - } else if (blendType === 2) { - colorMatrix.matrix = [ - 1, - 0, - 0, - 0, - cr, - 0, - 1, - 0, - 0, - cg, - 0, - 0, - 1, - 0, - cb, - 0, - 0, - 0, - ca, - 0 - ]; - } else if (blendType === 3) { - colorMatrix.matrix = [ - 1, - 0, - 0, - 0, - -cr, - 0, - 1, - 0, - 0, - -cg, - 0, - 0, - 1, - 0, - -cb, - 0, - 0, - 0, - ca, - 0 - ]; - } - this.colorMatrixFilterCache[key] = colorMatrix; - return colorMatrix; - } - /** - * 1フレーム分のアニメーション描画 - * @param {number} frameNumber - フレーム番号 - * @param {number} ds - delta step - */ - SetFrameAnimation(frameNumber, ds = 0) { - const fd = this.playerLib.GetFrameData(frameNumber); - this.removeChildren(); - const l = fd.length; - for (let ii = 0; ii < l; ii = ii + 1 | 0) { - const i = this.playerLib.prio2index[ii]; - if (!this.changeVisible[i]) { - continue; - } - const data = fd[i]; - const origCellID = data.cellIndex; - const cellID = this.changeCellID[i] !== -1 ? this.changeCellID[i] : origCellID; - let partObject = this.prevPartObject[i]; - const part = this.playerLib.animePackData.parts(i); - const partType = part.type(); - let overWrite = this.substituteOverWrite[i] !== null ? this.substituteOverWrite[i] : false; - let overWritekeyParam = this.substituteKeyParam[i]; - switch (partType) { - case SsPartType.Instance: - if (partObject == null) { - partObject = this.MakeCellPlayer(part.refname()); - partObject.label = part.name(); - } - break; - case SsPartType.Normal: - case SsPartType.Mask: - if (cellID >= 0 && this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = this.MakeCellMesh(cellID); - partObject.label = part.name(); - } - break; - case SsPartType.Mesh: - if (cellID >= 0 && this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = this.MakeMeshCellMesh(i, cellID, origCellID); - partObject.label = part.name(); - } - break; - case SsPartType.Nulltype: - case SsPartType.Joint: - if (this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = new pixi_js.Container(); - partObject.label = part.name(); - } - break; - default: - if (cellID >= 0 && this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = this.MakeCellMesh(cellID); - partObject.label = part.name(); - } - break; - } - if (partObject == null) continue; - this.prevCellID[i] = cellID; - this.prevPartObject[i] = partObject; - switch (partType) { - case SsPartType.Instance: { - const instance = partObject; - this._instancePos[0] = 0; - this._instancePos[1] = 0; - this._instancePos[2] = 1; - this._instancePos[3] = 1; - this._instancePos[4] = 0; - this._instancePos = this.playerLib.TransformPositionLocal(this._instancePos, data.index, frameNumber); - instance.rotation = this._instancePos[4] * Math.PI / 180; - instance.position.set(this._instancePos[0], this._instancePos[1]); - instance.scale.set(this._instancePos[2], this._instancePos[3]); - let opacity = data.opacity / 255; - if (data.localopacity < 255) { - opacity = data.localopacity / 255; - } - instance.SetAlpha(opacity * this.parentAlpha); - instance.visible = !data.f_hide; - let refKeyframe = data.instanceValue_curKeyframe; - let refStartframe = data.instanceValue_startFrame; - let refEndframe = data.instanceValue_endFrame; - let refSpeed = data.instanceValue_speed; - let refloopNum = data.instanceValue_loopNum; - let infinity = false; - let reverse = false; - let pingpong = false; - let independent = false; - const INSTANCE_LOOP_FLAG_INFINITY = 1; - const INSTANCE_LOOP_FLAG_REVERSE = 2; - const INSTANCE_LOOP_FLAG_PINGPONG = 4; - const INSTANCE_LOOP_FLAG_INDEPENDENT = 8; - const lflags = data.instanceValue_loopflag; - if (lflags & INSTANCE_LOOP_FLAG_INFINITY) { - infinity = true; - } - if (lflags & INSTANCE_LOOP_FLAG_REVERSE) { - reverse = true; - } - if (lflags & INSTANCE_LOOP_FLAG_PINGPONG) { - pingpong = true; - } - if (lflags & INSTANCE_LOOP_FLAG_INDEPENDENT) { - independent = true; - } - if (overWrite) { - refStartframe = overWritekeyParam.refStartframe; - refEndframe = overWritekeyParam.refEndframe; - refSpeed = overWritekeyParam.refSpeed; - refloopNum = overWritekeyParam.refloopNum; - infinity = overWritekeyParam.infinity; - reverse = overWritekeyParam.reverse; - pingpong = overWritekeyParam.pingpong; - independent = overWritekeyParam.independent; - } - if (instance._startFrame !== refStartframe || instance._endFrame !== refEndframe) { - instance.SetAnimationSection(refStartframe, refEndframe); - } - let time = frameNumber; - if (independent === true) { - this.liveFrame[ii] += ds; - time = Math.floor(this.liveFrame[ii]); - } - const selfTopKeyframe = refKeyframe; - let reftime = Math.floor((time - selfTopKeyframe) * refSpeed); - if (reftime < 0) continue; - if (selfTopKeyframe > time) continue; - const inst_scale = refEndframe - refStartframe + 1; - if (inst_scale <= 0) continue; - let nowloop = Math.floor(reftime / inst_scale); - let checkloopnum = refloopNum; - if (pingpong) checkloopnum = checkloopnum * 2; - if (!infinity) { - if (nowloop >= checkloopnum) { - reftime = inst_scale - 1; - nowloop = checkloopnum - 1; - } - } - const temp_frame = Math.floor(reftime % inst_scale); - let _time = 0; - if (pingpong && nowloop % 2 === 1) { - if (reverse) { - reverse = false; - } else { - reverse = true; - } - } - if (this.playDirection <= -1) { - reverse = !reverse; - } - if (reverse) { - _time = refEndframe - temp_frame; - } else { - _time = temp_frame + refStartframe; - } - instance.SetFrame(Math.floor(_time)); - this.addChild(instance); - break; - } - // Instance以外の通常のMeshと空のContainerで処理分岐 - case SsPartType.Normal: - case SsPartType.Mesh: - case SsPartType.Joint: - case SsPartType.Mask: { - const mesh = partObject; - const meshVertexBuffer = mesh.geometry.attributes.aPosition.buffer; - let meshVertex = meshVertexBuffer.data; - const cell = this.playerLib.fbObj.cells(cellID); - let verts; - if (partType === SsPartType.Mesh) { - if (data.meshIsBind === 0) { - verts = this.playerLib.TransformMeshVertsLocal(Player.GetMeshVerts(cell, data, meshVertex), data.index, frameNumber); - } else { - verts = Player.GetMeshVerts(cell, data, meshVertex); - } - } else { - verts = partType === SsPartType.Joint ? new Float32Array(10) : meshVertex; - verts = this.playerLib.TransformVertsLocal(Player.GetVerts(cell, data, verts), data.index, frameNumber); - } - if (data.flag1 & PART_FLAG.VERTEX_TRANSFORM) { - const vertexCoordinateLUx = verts[3 * 2 + 0]; - const vertexCoordinateLUy = verts[3 * 2 + 1]; - const vertexCoordinateLDx = verts[1 * 2 + 0]; - const vertexCoordinateLDy = verts[1 * 2 + 1]; - const vertexCoordinateRUx = verts[4 * 2 + 0]; - const vertexCoordinateRUy = verts[4 * 2 + 1]; - const vertexCoordinateRDx = verts[2 * 2 + 0]; - const vertexCoordinateRDy = verts[2 * 2 + 1]; - const CoordinateLURUx = (vertexCoordinateLUx + vertexCoordinateRUx) * 0.5; - const CoordinateLURUy = (vertexCoordinateLUy + vertexCoordinateRUy) * 0.5; - const CoordinateLULDx = (vertexCoordinateLUx + vertexCoordinateLDx) * 0.5; - const CoordinateLULDy = (vertexCoordinateLUy + vertexCoordinateLDy) * 0.5; - const CoordinateLDRDx = (vertexCoordinateLDx + vertexCoordinateRDx) * 0.5; - const CoordinateLDRDy = (vertexCoordinateLDy + vertexCoordinateRDy) * 0.5; - const CoordinateRURDx = (vertexCoordinateRUx + vertexCoordinateRDx) * 0.5; - const CoordinateRURDy = (vertexCoordinateRUy + vertexCoordinateRDy) * 0.5; - const vec2 = Player.CoordinateGetDiagonalIntersection(verts[0], verts[1], CoordinateLURUx, CoordinateLURUy, CoordinateRURDx, CoordinateRURDy, CoordinateLULDx, CoordinateLULDy, CoordinateLDRDx, CoordinateLDRDy, this._CoordinateGetDiagonalIntersectionVec2); - verts[0] = vec2[0]; - verts[1] = vec2[1]; - } - const px = verts[0]; - const py = verts[1]; - for (let j = 0; j < verts.length / 2; j++) { - verts[j * 2] -= px; - verts[j * 2 + 1] -= py; - } - meshVertex = verts; - meshVertexBuffer.update(); - if (data.flag1 & PART_FLAG.U_MOVE || data.flag1 & PART_FLAG.V_MOVE || data.flag1 & PART_FLAG.U_SCALE || data.flag1 & PART_FLAG.V_SCALE || data.flag1 & PART_FLAG.UV_ROTATION) { - const u1 = cell.u1() + data.uv_move_X; - const u2 = cell.u2() + data.uv_move_X; - const v1 = cell.v1() + data.uv_move_Y; - const v2 = cell.v2() + data.uv_move_Y; - const cx = (u2 + u1) / 2; - const cy = (v2 + v1) / 2; - const uvw = (u2 - u1) / 2 * data.uv_scale_X; - const uvh = (v2 - v1) / 2 * data.uv_scale_Y; - const meshUvsBuffer = mesh.geometry.attributes.aUV.buffer; - let meshUvs = mesh.geometry.uvs; - meshUvs[0] = cx; - meshUvs[1] = cy; - meshUvs[2] = cx - uvw; - meshUvs[3] = cy - uvh; - meshUvs[4] = cx + uvw; - meshUvs[5] = cy - uvh; - meshUvs[6] = cx - uvw; - meshUvs[7] = cy + uvh; - meshUvs[8] = cx + uvw; - meshUvs[9] = cy + uvh; - if (data.flag1 & PART_FLAG.UV_ROTATION) { - const rot = data.uv_rotation * Math.PI / 180; - for (let idx = 0; idx < 5; idx++) { - const dx = meshUvs[idx * 2 + 0] - cx; - const dy = meshUvs[idx * 2 + 1] - cy; - const cos = Math.cos(rot); - const sin = Math.sin(rot); - const tmpX = cos * dx - sin * dy; - const tmpY = sin * dx + cos * dy; - meshUvs[idx * 2 + 0] = cx + tmpX; - meshUvs[idx * 2 + 1] = cy + tmpY; - } - } - meshUvsBuffer.update(); - } - mesh.position.set(px, py); - let opacity = data.opacity / 255; - if (data.localopacity < 255) { - opacity = data.localopacity / 255; - } - mesh.alpha = opacity * this.parentAlpha; - mesh.visible = !data.f_hide; - if (data.useColorMatrix) { - const colorMatrix = this.GetColorMatrixFilter(data.colorBlendType, data.colorRate, data.colorArgb32); - mesh.filters = [colorMatrix]; - } - if (this.changeTint[i] !== null) { - mesh.tint = this.changeTint[i]; - } else if (data.tint) { - mesh.tint = data.tint; - const ca = ((data.partsColorARGB & 4278190080) >>> 24) / 255; - mesh.alpha = mesh.alpha * ca; - } - const blendMode = this.alphaBlendType[i]; - if (blendMode === "multiply" || blendMode === "screen") { - mesh.alpha = 1; - } - if (partType !== SsPartType.Mask) this.addChild(mesh); - break; - } - case SsPartType.Nulltype: { - const container = partObject; - const opacity = this.playerLib.InheritOpacity(1, data.index, frameNumber); - container.alpha = opacity * data.localopacity / 255; - const verts = this.playerLib.TransformVerts(Player.GetDummyVerts(), data.index, frameNumber); - const px = verts[0]; - const py = verts[1]; - container.position.set(px, py); - const ax = Math.atan2(verts[5] - verts[3], verts[4] - verts[2]); - const ay = Math.atan2(verts[7] - verts[3], verts[6] - verts[2]); - container.rotation = ax; - container.skew.x = ay - ax - Math.PI / 2; - break; - } - } - } - } - /** - * - * 名前を指定してパーツの再生するインスタンスアニメを変更します。 - * 指定したパーツがインスタンスパーツでない場合、falseを返します. - * インスタンスパーツ名はディフォルトでは「ssae名:モーション名」とつけられています。 - * 再生するアニメの名前は アニメパック名 と アニメ名 で指定してください。 - * 現在再生しているアニメを指定することは入れ子となり無限ループとなるためできません。 - * - * 変更するアニメーションは同じ ssfb に含まれる必要があります。 - * インスタンスパーツが再生するアニメを変更します - * - * インスタンスキーは - * - * @param partName SS上のパーツ名 - * @param animePackName 参照するアニメパック名 - * @param animeName 参照するアニメ名 - * @param overWrite インスタンスキーの上書きフラグ - * @param keyParam インスタンスキー - * - * @constructor - */ - ChangeInstanceAnime(partName, animePackName, animeName, overWrite, keyParam = null) { - let rc = false; - if (this.animePackName !== null && this.animeName !== null) { - let packData = this.playerLib.animePackData; - let partsLength = packData.partsLength(); - for (let index = 0; index < partsLength; index++) { - let partData = packData.parts(index); - if (partData.name() === partName) { - let mesh = this.prevPartObject[index]; - if (mesh === null || mesh instanceof SS6Player) { - this.substituteOverWrite[index] = overWrite; - let keyParamAsSubstitute; - if (keyParam !== null) { - keyParamAsSubstitute = keyParam; - mesh = this.MakeCellPlayer(animePackName + "/" + animeName, keyParam.refStartframe); - } else { - mesh = this.MakeCellPlayer(animePackName + "/" + animeName); - keyParamAsSubstitute = new SS6PlayerInstanceKeyParam(); - keyParamAsSubstitute.refStartframe = mesh.startFrame; - keyParamAsSubstitute.refEndframe = mesh.endFrame; - } - mesh.label = partData.name(); - this.prevPartObject[index] = mesh; - this.substituteKeyParam[index] = keyParamAsSubstitute; - rc = true; - break; - } - } - } - } - return rc; - } - /** - * 矩形セルをメッシュ(5verts4Tri)で作成 - * @param {number} id - セルID - * @return {PIXI.Mesh} - メッシュ - */ - MakeCellMesh(id) { - const cell = this.playerLib.fbObj.cells(id); - const u1 = cell.u1(); - const u2 = cell.u2(); - const v1 = cell.v1(); - const v2 = cell.v2(); - const w = cell.width() / 2; - const h = cell.height() / 2; - const verts = new Float32Array([0, 0, -w, -h, w, -h, -w, h, w, h]); - const uvs = new Float32Array([(u1 + u2) / 2, (v1 + v2) / 2, u1, v1, u2, v1, u1, v2, u2, v2]); - const indices = new Uint32Array([0, 1, 2, 0, 2, 4, 0, 4, 3, 0, 1, 3]); - const geometry = new pixi_js.MeshGeometry({ positions: verts, uvs, indices, topology: "triangle-list" }); - return new pixi_js.Mesh({ geometry, texture: this.ss6project.getTexture(cell.cellMap().name()) }); - } - /** - * メッシュセルからメッシュを作成 - * @param {number} partID - パーツID - * @param {number} cellID - セルID - * @param {number} origCellID - オリジナルのセルID - * @return {PIXI.Mesh} - メッシュ - */ - MakeMeshCellMesh(partID, cellID, origCellID) { - const meshsDataUV = this.playerLib.animationData.meshsDataUv(partID); - const uvLength = meshsDataUV.uvLength(); - if (uvLength > 0) { - const cell = this.playerLib.fbObj.cells(cellID); - const origCell = this.playerLib.fbObj.cells(origCellID); - const diff_u = cellID === origCellID ? 0 : (cell.u1() + cell.u2()) / 2 - (origCell.u1() + origCell.u2()) / 2; - const diff_v = cellID === origCellID ? 0 : (cell.v1() + cell.v2()) / 2 - (origCell.v1() + origCell.v2()) / 2; - const uvs = new Float32Array(uvLength - 2); - const meshNum = meshsDataUV.uv(1); - for (let idx = 2; idx < uvLength; idx++) { - uvs[idx - 2] = meshsDataUV.uv(idx) + (idx % 2 === 0 ? diff_u : diff_v); - } - const meshsDataIndices = this.playerLib.animationData.meshsDataIndices(partID); - const indicesLength = meshsDataIndices.indicesLength(); - const indices = new Uint32Array(indicesLength - 1); - for (let idx = 1; idx < indicesLength; idx++) { - indices[idx - 1] = meshsDataIndices.indices(idx); - } - const verts = new Float32Array(meshNum * 2); - const geometry = new pixi_js.MeshGeometry({ positions: verts, uvs, indices, topology: "triangle-list" }); - return new pixi_js.Mesh({ geometry, texture: this.ss6project.getTexture(this.playerLib.fbObj.cells(cellID).cellMap().name()) }); - } - return null; - } - /** - * セルをインスタンスで作成 - * @param {String} refname 参照アニメ名 - * @param {number or undefined} refStart - * @return {SS6Player} - インスタンス - */ - MakeCellPlayer(refname, refStart = void 0) { - const split = refname.split("/"); - const ssp = new SS6Player(this.ss6project); - ssp.Setup(split[0], split[1]); - ssp.Play(refStart); - return ssp; - } - resetLiveFrame() { - const layers = this.playerLib.animationData.defaultDataLength(); - for (let i = 0; i < layers; i++) { - this.liveFrame[i] = 0; - } - } - } - - exports.SS6Player = SS6Player; - exports.SS6PlayerInstanceKeyParam = SS6PlayerInstanceKeyParam; - exports.SS6Project = SS6Project; - -})); -//# sourceMappingURL=ss6player-pixi.umd.js.map +//# sourceMappingURL=ss6player-pixi.umd.js.map \ No newline at end of file diff --git a/docs/Player6/ss6player-pixi6.min.js b/docs/Player6/ss6player-pixi6.min.js index c6354538..08573fab 100644 --- a/docs/Player6/ss6player-pixi6.min.js +++ b/docs/Player6/ss6player-pixi6.min.js @@ -1,10 +1,27 @@ -/** - * ----------------------------------------------------------- - * SS6Player For pixi.js v6 v1.0.5 - * - * Copyright(C) CRI Middleware Co., Ltd. - * https://www.webtech.co.jp/ - * ----------------------------------------------------------- - */ - -var ss6PlayerPixi6=function(ft,Ct,gt,ot,ut,yt,N){"use strict";class xt{}const ct=4,dt=4,D=4,Q=new Int32Array(2),Ot=new Float32Array(Q.buffer),Vt=new Float64Array(Q.buffer),bt=new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1;var It;(function(c){c[c.UTF8_BYTES=1]="UTF8_BYTES",c[c.UTF16_STRING=2]="UTF16_STRING"})(It||(It={}));class mt{constructor(t){this.bytes_=t,this.position_=0,this.text_decoder_=new TextDecoder}static allocate(t){return new mt(new Uint8Array(t))}clear(){this.position_=0}bytes(){return this.bytes_}position(){return this.position_}setPosition(t){this.position_=t}capacity(){return this.bytes_.length}readInt8(t){return this.readUint8(t)<<24>>24}readUint8(t){return this.bytes_[t]}readInt16(t){return this.readUint16(t)<<16>>16}readUint16(t){return this.bytes_[t]|this.bytes_[t+1]<<8}readInt32(t){return this.bytes_[t]|this.bytes_[t+1]<<8|this.bytes_[t+2]<<16|this.bytes_[t+3]<<24}readUint32(t){return this.readInt32(t)>>>0}readInt64(t){return BigInt.asIntN(64,BigInt(this.readUint32(t))+(BigInt(this.readUint32(t+4))<>8}writeUint16(t,s){this.bytes_[t]=s,this.bytes_[t+1]=s>>8}writeInt32(t,s){this.bytes_[t]=s,this.bytes_[t+1]=s>>8,this.bytes_[t+2]=s>>16,this.bytes_[t+3]=s>>24}writeUint32(t,s){this.bytes_[t]=s,this.bytes_[t+1]=s>>8,this.bytes_[t+2]=s>>16,this.bytes_[t+3]=s>>24}writeInt64(t,s){this.writeInt32(t,Number(BigInt.asIntN(32,s))),this.writeInt32(t+4,Number(BigInt.asIntN(32,s>>BigInt(32))))}writeUint64(t,s){this.writeUint32(t,Number(BigInt.asUintN(32,s))),this.writeUint32(t+4,Number(BigInt.asUintN(32,s>>BigInt(32))))}writeFloat32(t,s){Ot[0]=s,this.writeInt32(t,Q[0])}writeFloat64(t,s){Vt[0]=s,this.writeInt32(t,Q[bt?0:1]),this.writeInt32(t+4,Q[bt?1:0])}getBufferIdentifier(){if(this.bytes_.length=0;e--)t.addInt32(s[e]);return t.endVector()}static startDataVector(t,s){t.startVector(4,s,4)}static endpartState(t){return t.endObject()}static createpartState(t,s,e,i,n){return T.startpartState(t),T.addIndex(t,s),T.addFlag1(t,e),T.addFlag2(t,i),T.addData(t,n),T.endpartState(t)}}class et{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsframeDataIndex(t,s){return(s||new et).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsframeDataIndex(t,s){return t.setPosition(t.position()+D),(s||new et).__init(t.readInt32(t.position())+t.position(),t)}states(t,s){const e=this.bb.__offset(this.bb_pos,4);return e?(s||new T).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}statesLength(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}static startframeDataIndex(t){t.startObject(1)}static addStates(t,s){t.addFieldOffset(0,s,0)}static createStatesVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startStatesVector(t,s){t.startVector(4,s,4)}static endframeDataIndex(t){return t.endObject()}static createframeDataIndex(t,s){return et.startframeDataIndex(t),et.addStates(t,s),et.endframeDataIndex(t)}}class G{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAslabelDataItem(t,s){return(s||new G).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAslabelDataItem(t,s){return t.setPosition(t.position()+D),(s||new G).__init(t.readInt32(t.position())+t.position(),t)}label(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}frameIndex(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}static startlabelDataItem(t){t.startObject(2)}static addLabel(t,s){t.addFieldOffset(0,s,0)}static addFrameIndex(t,s){t.addFieldInt16(1,s,0)}static endlabelDataItem(t){return t.endObject()}static createlabelDataItem(t,s,e){return G.startlabelDataItem(t),G.addLabel(t,s),G.addFrameIndex(t,e),G.endlabelDataItem(t)}}class it{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsmeshDataIndices(t,s){return(s||new it).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsmeshDataIndices(t,s){return t.setPosition(t.position()+D),(s||new it).__init(t.readInt32(t.position())+t.position(),t)}indices(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.readFloat32(this.bb.__vector(this.bb_pos+s)+t*4):0}indicesLength(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}indicesArray(){const t=this.bb.__offset(this.bb_pos,4);return t?new Float32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}static startmeshDataIndices(t){t.startObject(1)}static addIndices(t,s){t.addFieldOffset(0,s,0)}static createIndicesVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addFloat32(s[e]);return t.endVector()}static startIndicesVector(t,s){t.startVector(4,s,4)}static endmeshDataIndices(t){return t.endObject()}static createmeshDataIndices(t,s){return it.startmeshDataIndices(t),it.addIndices(t,s),it.endmeshDataIndices(t)}}class at{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsmeshDataUV(t,s){return(s||new at).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsmeshDataUV(t,s){return t.setPosition(t.position()+D),(s||new at).__init(t.readInt32(t.position())+t.position(),t)}uv(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.readFloat32(this.bb.__vector(this.bb_pos+s)+t*4):0}uvLength(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}uvArray(){const t=this.bb.__offset(this.bb_pos,4);return t?new Float32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}static startmeshDataUV(t){t.startObject(1)}static addUv(t,s){t.addFieldOffset(0,s,0)}static createUvVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addFloat32(s[e]);return t.endVector()}static startUvVector(t,s){t.startVector(4,s,4)}static endmeshDataUV(t){return t.endObject()}static createmeshDataUV(t,s){return at.startmeshDataUV(t),at.addUv(t,s),at.endmeshDataUV(t)}}class R{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsuserDataItem(t,s){return(s||new R).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataItem(t,s){return t.setPosition(t.position()+D),(s||new R).__init(t.readInt32(t.position())+t.position(),t)}flags(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):0}arrayIndex(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}dataType(t){const s=this.bb.__offset(this.bb_pos,8);return s?this.bb.readUint8(this.bb.__vector(this.bb_pos+s)+t):0}dataTypeLength(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}dataTypeArray(){const t=this.bb.__offset(this.bb_pos,8);return t?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}data(t,s){const e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__union(s,this.bb.__vector(this.bb_pos+e)+t*4):null}dataLength(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}static startuserDataItem(t){t.startObject(4)}static addFlags(t,s){t.addFieldInt16(0,s,0)}static addArrayIndex(t,s){t.addFieldInt16(1,s,0)}static addDataType(t,s){t.addFieldOffset(2,s,0)}static createDataTypeVector(t,s){t.startVector(1,s.length,1);for(let e=s.length-1;e>=0;e--)t.addInt8(s[e]);return t.endVector()}static startDataTypeVector(t,s){t.startVector(1,s,1)}static addData(t,s){t.addFieldOffset(3,s,0)}static createDataVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startDataVector(t,s){t.startVector(4,s,4)}static enduserDataItem(t){return t.endObject()}static createuserDataItem(t,s,e,i,n){return R.startuserDataItem(t),R.addFlags(t,s),R.addArrayIndex(t,e),R.addDataType(t,i),R.addData(t,n),R.enduserDataItem(t)}}class tt{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsuserDataPerFrame(t,s){return(s||new tt).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataPerFrame(t,s){return t.setPosition(t.position()+D),(s||new tt).__init(t.readInt32(t.position())+t.position(),t)}frameIndex(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):0}data(t,s){const e=this.bb.__offset(this.bb_pos,6);return e?(s||new R).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}dataLength(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}static startuserDataPerFrame(t){t.startObject(2)}static addFrameIndex(t,s){t.addFieldInt16(0,s,0)}static addData(t,s){t.addFieldOffset(1,s,0)}static createDataVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startDataVector(t,s){t.startVector(4,s,4)}static enduserDataPerFrame(t){return t.endObject()}static createuserDataPerFrame(t,s,e){return tt.startuserDataPerFrame(t),tt.addFrameIndex(t,s),tt.addData(t,e),tt.enduserDataPerFrame(t)}}class y{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsAnimationData(t,s){return(s||new y).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAnimationData(t,s){return t.setPosition(t.position()+D),(s||new y).__init(t.readInt32(t.position())+t.position(),t)}name(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}defaultData(t,s){const e=this.bb.__offset(this.bb_pos,6);return e?(s||new _).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}defaultDataLength(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}frameData(t,s){const e=this.bb.__offset(this.bb_pos,8);return e?(s||new et).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}frameDataLength(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}userData(t,s){const e=this.bb.__offset(this.bb_pos,10);return e?(s||new tt).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}userDataLength(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}labelData(t,s){const e=this.bb.__offset(this.bb_pos,12);return e?(s||new G).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}labelDataLength(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}meshsDataUv(t,s){const e=this.bb.__offset(this.bb_pos,14);return e?(s||new at).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}meshsDataUvLength(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__vector_len(this.bb_pos+t):0}meshsDataIndices(t,s){const e=this.bb.__offset(this.bb_pos,16);return e?(s||new it).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}meshsDataIndicesLength(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}startFrames(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.readInt16(this.bb_pos+t):0}endFrames(){const t=this.bb.__offset(this.bb_pos,20);return t?this.bb.readInt16(this.bb_pos+t):0}totalFrames(){const t=this.bb.__offset(this.bb_pos,22);return t?this.bb.readInt16(this.bb_pos+t):0}fps(){const t=this.bb.__offset(this.bb_pos,24);return t?this.bb.readInt16(this.bb_pos+t):0}labelNum(){const t=this.bb.__offset(this.bb_pos,26);return t?this.bb.readInt16(this.bb_pos+t):0}canvasSizeW(){const t=this.bb.__offset(this.bb_pos,28);return t?this.bb.readInt16(this.bb_pos+t):0}canvasSizeH(){const t=this.bb.__offset(this.bb_pos,30);return t?this.bb.readInt16(this.bb_pos+t):0}canvasPvotX(){const t=this.bb.__offset(this.bb_pos,32);return t?this.bb.readFloat32(this.bb_pos+t):0}canvasPvotY(){const t=this.bb.__offset(this.bb_pos,34);return t?this.bb.readFloat32(this.bb_pos+t):0}static startAnimationData(t){t.startObject(16)}static addName(t,s){t.addFieldOffset(0,s,0)}static addDefaultData(t,s){t.addFieldOffset(1,s,0)}static createDefaultDataVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startDefaultDataVector(t,s){t.startVector(4,s,4)}static addFrameData(t,s){t.addFieldOffset(2,s,0)}static createFrameDataVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startFrameDataVector(t,s){t.startVector(4,s,4)}static addUserData(t,s){t.addFieldOffset(3,s,0)}static createUserDataVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startUserDataVector(t,s){t.startVector(4,s,4)}static addLabelData(t,s){t.addFieldOffset(4,s,0)}static createLabelDataVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startLabelDataVector(t,s){t.startVector(4,s,4)}static addMeshsDataUv(t,s){t.addFieldOffset(5,s,0)}static createMeshsDataUvVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startMeshsDataUvVector(t,s){t.startVector(4,s,4)}static addMeshsDataIndices(t,s){t.addFieldOffset(6,s,0)}static createMeshsDataIndicesVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startMeshsDataIndicesVector(t,s){t.startVector(4,s,4)}static addStartFrames(t,s){t.addFieldInt16(7,s,0)}static addEndFrames(t,s){t.addFieldInt16(8,s,0)}static addTotalFrames(t,s){t.addFieldInt16(9,s,0)}static addFps(t,s){t.addFieldInt16(10,s,0)}static addLabelNum(t,s){t.addFieldInt16(11,s,0)}static addCanvasSizeW(t,s){t.addFieldInt16(12,s,0)}static addCanvasSizeH(t,s){t.addFieldInt16(13,s,0)}static addCanvasPvotX(t,s){t.addFieldFloat32(14,s,0)}static addCanvasPvotY(t,s){t.addFieldFloat32(15,s,0)}static endAnimationData(t){return t.endObject()}static createAnimationData(t,s,e,i,n,a,r,o,f,h,d,u,b,l,O,m,F){return y.startAnimationData(t),y.addName(t,s),y.addDefaultData(t,e),y.addFrameData(t,i),y.addUserData(t,n),y.addLabelData(t,a),y.addMeshsDataUv(t,r),y.addMeshsDataIndices(t,o),y.addStartFrames(t,f),y.addEndFrames(t,h),y.addTotalFrames(t,d),y.addFps(t,u),y.addLabelNum(t,b),y.addCanvasSizeW(t,l),y.addCanvasSizeH(t,O),y.addCanvasPvotX(t,m),y.addCanvasPvotY(t,F),y.endAnimationData(t)}}var v=(c=>(c[c.Invalid=-1]="Invalid",c[c.Nulltype=0]="Nulltype",c[c.Normal=1]="Normal",c[c.Text=2]="Text",c[c.Instance=3]="Instance",c[c.Armature=4]="Armature",c[c.Effect=5]="Effect",c[c.Mesh=6]="Mesh",c[c.Movenode=7]="Movenode",c[c.Constraint=8]="Constraint",c[c.Mask=9]="Mask",c[c.Joint=10]="Joint",c[c.Bonepoint=11]="Bonepoint",c))(v||{});class S{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsPartData(t,s){return(s||new S).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsPartData(t,s){return t.setPosition(t.position()+D),(s||new S).__init(t.readInt32(t.position())+t.position(),t)}name(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}index(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}parentIndex(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}type(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt8(this.bb_pos+t):v.Nulltype}boundsType(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}alphaBlendType(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readInt16(this.bb_pos+t):0}refname(t){const s=this.bb.__offset(this.bb_pos,16);return s?this.bb.__string(this.bb_pos+s,t):null}effectfilename(t){const s=this.bb.__offset(this.bb_pos,18);return s?this.bb.__string(this.bb_pos+s,t):null}colorLabel(t){const s=this.bb.__offset(this.bb_pos,20);return s?this.bb.__string(this.bb_pos+s,t):null}maskInfluence(){const t=this.bb.__offset(this.bb_pos,22);return t?this.bb.readInt16(this.bb_pos+t):0}static startPartData(t){t.startObject(10)}static addName(t,s){t.addFieldOffset(0,s,0)}static addIndex(t,s){t.addFieldInt16(1,s,0)}static addParentIndex(t,s){t.addFieldInt16(2,s,0)}static addType(t,s){t.addFieldInt8(3,s,v.Nulltype)}static addBoundsType(t,s){t.addFieldInt16(4,s,0)}static addAlphaBlendType(t,s){t.addFieldInt16(5,s,0)}static addRefname(t,s){t.addFieldOffset(6,s,0)}static addEffectfilename(t,s){t.addFieldOffset(7,s,0)}static addColorLabel(t,s){t.addFieldOffset(8,s,0)}static addMaskInfluence(t,s){t.addFieldInt16(9,s,0)}static endPartData(t){return t.endObject()}static createPartData(t,s,e,i,n,a,r,o,f,h,d){return S.startPartData(t),S.addName(t,s),S.addIndex(t,e),S.addParentIndex(t,i),S.addType(t,n),S.addBoundsType(t,a),S.addAlphaBlendType(t,r),S.addRefname(t,o),S.addEffectfilename(t,f),S.addColorLabel(t,h),S.addMaskInfluence(t,d),S.endPartData(t)}}class K{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsAnimePackData(t,s){return(s||new K).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAnimePackData(t,s){return t.setPosition(t.position()+D),(s||new K).__init(t.readInt32(t.position())+t.position(),t)}name(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}parts(t,s){const e=this.bb.__offset(this.bb_pos,6);return e?(s||new S).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}partsLength(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}animations(t,s){const e=this.bb.__offset(this.bb_pos,8);return e?(s||new y).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}animationsLength(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}static startAnimePackData(t){t.startObject(3)}static addName(t,s){t.addFieldOffset(0,s,0)}static addParts(t,s){t.addFieldOffset(1,s,0)}static createPartsVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startPartsVector(t,s){t.startVector(4,s,4)}static addAnimations(t,s){t.addFieldOffset(2,s,0)}static createAnimationsVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startAnimationsVector(t,s){t.startVector(4,s,4)}static endAnimePackData(t){return t.endObject()}static createAnimePackData(t,s,e,i){return K.startAnimePackData(t),K.addName(t,s),K.addParts(t,e),K.addAnimations(t,i),K.endAnimePackData(t)}}class k{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsCellMap(t,s){return(s||new k).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsCellMap(t,s){return t.setPosition(t.position()+D),(s||new k).__init(t.readInt32(t.position())+t.position(),t)}name(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}imagePath(t){const s=this.bb.__offset(this.bb_pos,6);return s?this.bb.__string(this.bb_pos+s,t):null}index(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}wrapmode(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt16(this.bb_pos+t):0}filtermode(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}static startCellMap(t){t.startObject(5)}static addName(t,s){t.addFieldOffset(0,s,0)}static addImagePath(t,s){t.addFieldOffset(1,s,0)}static addIndex(t,s){t.addFieldInt16(2,s,0)}static addWrapmode(t,s){t.addFieldInt16(3,s,0)}static addFiltermode(t,s){t.addFieldInt16(4,s,0)}static endCellMap(t){return t.endObject()}static createCellMap(t,s,e,i,n,a){return k.startCellMap(t),k.addName(t,s),k.addImagePath(t,e),k.addIndex(t,i),k.addWrapmode(t,n),k.addFiltermode(t,a),k.endCellMap(t)}}class lt{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsCell(t,s){return(s||new lt).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsCell(t,s){return t.setPosition(t.position()+D),(s||new lt).__init(t.readInt32(t.position())+t.position(),t)}name(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}cellMap(t){const s=this.bb.__offset(this.bb_pos,6);return s?(t||new k).__init(this.bb.__indirect(this.bb_pos+s),this.bb):null}indexInCellMap(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}x(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt16(this.bb_pos+t):0}y(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}width(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readInt16(this.bb_pos+t):0}height(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.readInt16(this.bb_pos+t):0}pivotX(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.readFloat32(this.bb_pos+t):0}pivotY(){const t=this.bb.__offset(this.bb_pos,20);return t?this.bb.readFloat32(this.bb_pos+t):0}u1(){const t=this.bb.__offset(this.bb_pos,22);return t?this.bb.readFloat32(this.bb_pos+t):0}v1(){const t=this.bb.__offset(this.bb_pos,24);return t?this.bb.readFloat32(this.bb_pos+t):0}u2(){const t=this.bb.__offset(this.bb_pos,26);return t?this.bb.readFloat32(this.bb_pos+t):0}v2(){const t=this.bb.__offset(this.bb_pos,28);return t?this.bb.readFloat32(this.bb_pos+t):0}static startCell(t){t.startObject(13)}static addName(t,s){t.addFieldOffset(0,s,0)}static addCellMap(t,s){t.addFieldOffset(1,s,0)}static addIndexInCellMap(t,s){t.addFieldInt16(2,s,0)}static addX(t,s){t.addFieldInt16(3,s,0)}static addY(t,s){t.addFieldInt16(4,s,0)}static addWidth(t,s){t.addFieldInt16(5,s,0)}static addHeight(t,s){t.addFieldInt16(6,s,0)}static addPivotX(t,s){t.addFieldFloat32(7,s,0)}static addPivotY(t,s){t.addFieldFloat32(8,s,0)}static addU1(t,s){t.addFieldFloat32(9,s,0)}static addV1(t,s){t.addFieldFloat32(10,s,0)}static addU2(t,s){t.addFieldFloat32(11,s,0)}static addV2(t,s){t.addFieldFloat32(12,s,0)}static endCell(t){return t.endObject()}}class x{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsEffectNode(t,s){return(s||new x).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsEffectNode(t,s){return t.setPosition(t.position()+D),(s||new x).__init(t.readInt32(t.position())+t.position(),t)}arrayIndex(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):0}parentIndex(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}type(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}cellIndex(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt16(this.bb_pos+t):0}blendType(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}numBehavior(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readInt16(this.bb_pos+t):0}behaviorType(t){const s=this.bb.__offset(this.bb_pos,16);return s?this.bb.readUint8(this.bb.__vector(this.bb_pos+s)+t):0}behaviorTypeLength(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}behaviorTypeArray(){const t=this.bb.__offset(this.bb_pos,16);return t?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}behavior(t,s){const e=this.bb.__offset(this.bb_pos,18);return e?this.bb.__union(s,this.bb.__vector(this.bb_pos+e)+t*4):null}behaviorLength(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.__vector_len(this.bb_pos+t):0}static startEffectNode(t){t.startObject(8)}static addArrayIndex(t,s){t.addFieldInt16(0,s,0)}static addParentIndex(t,s){t.addFieldInt16(1,s,0)}static addType(t,s){t.addFieldInt16(2,s,0)}static addCellIndex(t,s){t.addFieldInt16(3,s,0)}static addBlendType(t,s){t.addFieldInt16(4,s,0)}static addNumBehavior(t,s){t.addFieldInt16(5,s,0)}static addBehaviorType(t,s){t.addFieldOffset(6,s,0)}static createBehaviorTypeVector(t,s){t.startVector(1,s.length,1);for(let e=s.length-1;e>=0;e--)t.addInt8(s[e]);return t.endVector()}static startBehaviorTypeVector(t,s){t.startVector(1,s,1)}static addBehavior(t,s){t.addFieldOffset(7,s,0)}static createBehaviorVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startBehaviorVector(t,s){t.startVector(4,s,4)}static endEffectNode(t){return t.endObject()}static createEffectNode(t,s,e,i,n,a,r,o,f){return x.startEffectNode(t),x.addArrayIndex(t,s),x.addParentIndex(t,e),x.addType(t,i),x.addCellIndex(t,n),x.addBlendType(t,a),x.addNumBehavior(t,r),x.addBehaviorType(t,o),x.addBehavior(t,f),x.endEffectNode(t)}}class L{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsEffectFile(t,s){return(s||new L).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsEffectFile(t,s){return t.setPosition(t.position()+D),(s||new L).__init(t.readInt32(t.position())+t.position(),t)}name(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}fps(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}isLockRandSeed(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}lockRandSeed(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt16(this.bb_pos+t):0}layoutScaleX(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}layoutScaleY(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readInt16(this.bb_pos+t):0}numNodeList(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.readInt16(this.bb_pos+t):0}effectNode(t,s){const e=this.bb.__offset(this.bb_pos,18);return e?(s||new x).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}effectNodeLength(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.__vector_len(this.bb_pos+t):0}static startEffectFile(t){t.startObject(8)}static addName(t,s){t.addFieldOffset(0,s,0)}static addFps(t,s){t.addFieldInt16(1,s,0)}static addIsLockRandSeed(t,s){t.addFieldInt16(2,s,0)}static addLockRandSeed(t,s){t.addFieldInt16(3,s,0)}static addLayoutScaleX(t,s){t.addFieldInt16(4,s,0)}static addLayoutScaleY(t,s){t.addFieldInt16(5,s,0)}static addNumNodeList(t,s){t.addFieldInt16(6,s,0)}static addEffectNode(t,s){t.addFieldOffset(7,s,0)}static createEffectNodeVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startEffectNodeVector(t,s){t.startVector(4,s,4)}static endEffectFile(t){return t.endObject()}static createEffectFile(t,s,e,i,n,a,r,o,f){return L.startEffectFile(t),L.addName(t,s),L.addFps(t,e),L.addIsLockRandSeed(t,i),L.addLockRandSeed(t,n),L.addLayoutScaleX(t,a),L.addLayoutScaleY(t,r),L.addNumNodeList(t,o),L.addEffectNode(t,f),L.endEffectFile(t)}}var p=(c=>(c[c.INVISIBLE=1]="INVISIBLE",c[c.FLIP_H=2]="FLIP_H",c[c.FLIP_V=4]="FLIP_V",c[c.CELL_INDEX=8]="CELL_INDEX",c[c.POSITION_X=16]="POSITION_X",c[c.POSITION_Y=32]="POSITION_Y",c[c.POSITION_Z=64]="POSITION_Z",c[c.PIVOT_X=128]="PIVOT_X",c[c.PIVOT_Y=256]="PIVOT_Y",c[c.ROTATIONX=512]="ROTATIONX",c[c.ROTATIONY=1024]="ROTATIONY",c[c.ROTATIONZ=2048]="ROTATIONZ",c[c.SCALE_X=4096]="SCALE_X",c[c.SCALE_Y=8192]="SCALE_Y",c[c.LOCALSCALE_X=16384]="LOCALSCALE_X",c[c.LOCALSCALE_Y=32768]="LOCALSCALE_Y",c[c.OPACITY=65536]="OPACITY",c[c.LOCALOPACITY=131072]="LOCALOPACITY",c[c.PARTS_COLOR=262144]="PARTS_COLOR",c[c.VERTEX_TRANSFORM=524288]="VERTEX_TRANSFORM",c[c.SIZE_X=1048576]="SIZE_X",c[c.SIZE_Y=2097152]="SIZE_Y",c[c.U_MOVE=4194304]="U_MOVE",c[c.V_MOVE=8388608]="V_MOVE",c[c.UV_ROTATION=16777216]="UV_ROTATION",c[c.U_SCALE=33554432]="U_SCALE",c[c.V_SCALE=67108864]="V_SCALE",c[c.BOUNDINGRADIUS=134217728]="BOUNDINGRADIUS",c[c.MASK=268435456]="MASK",c[c.PRIORITY=536870912]="PRIORITY",c[c.INSTANCE_KEYFRAME=1073741824]="INSTANCE_KEYFRAME",c[c.EFFECT_KEYFRAME=2147483648]="EFFECT_KEYFRAME",c))(p||{}),vt=(c=>(c[c.MESHDATA=1]="MESHDATA",c))(vt||{});class C{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsProjectData(t,s){return(s||new C).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsProjectData(t,s){return t.setPosition(t.position()+D),(s||new C).__init(t.readInt32(t.position())+t.position(),t)}static bufferHasIdentifier(t){return t.__has_identifier("SSFB")}dataId(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint32(this.bb_pos+t):0}version(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readUint32(this.bb_pos+t):0}flags(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readUint32(this.bb_pos+t):0}imageBaseDir(t){const s=this.bb.__offset(this.bb_pos,10);return s?this.bb.__string(this.bb_pos+s,t):null}cells(t,s){const e=this.bb.__offset(this.bb_pos,12);return e?(s||new lt).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}cellsLength(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}animePacks(t,s){const e=this.bb.__offset(this.bb_pos,14);return e?(s||new K).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}animePacksLength(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__vector_len(this.bb_pos+t):0}effectFileList(t,s){const e=this.bb.__offset(this.bb_pos,16);return e?(s||new L).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}effectFileListLength(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}numCells(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.readInt16(this.bb_pos+t):0}numAnimePacks(){const t=this.bb.__offset(this.bb_pos,20);return t?this.bb.readInt16(this.bb_pos+t):0}numEffectFileList(){const t=this.bb.__offset(this.bb_pos,22);return t?this.bb.readInt16(this.bb_pos+t):0}static startProjectData(t){t.startObject(10)}static addDataId(t,s){t.addFieldInt32(0,s,0)}static addVersion(t,s){t.addFieldInt32(1,s,0)}static addFlags(t,s){t.addFieldInt32(2,s,0)}static addImageBaseDir(t,s){t.addFieldOffset(3,s,0)}static addCells(t,s){t.addFieldOffset(4,s,0)}static createCellsVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startCellsVector(t,s){t.startVector(4,s,4)}static addAnimePacks(t,s){t.addFieldOffset(5,s,0)}static createAnimePacksVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startAnimePacksVector(t,s){t.startVector(4,s,4)}static addEffectFileList(t,s){t.addFieldOffset(6,s,0)}static createEffectFileListVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startEffectFileListVector(t,s){t.startVector(4,s,4)}static addNumCells(t,s){t.addFieldInt16(7,s,0)}static addNumAnimePacks(t,s){t.addFieldInt16(8,s,0)}static addNumEffectFileList(t,s){t.addFieldInt16(9,s,0)}static endProjectData(t){return t.endObject()}static finishProjectDataBuffer(t,s){t.finish(s,"SSFB")}static finishSizePrefixedProjectDataBuffer(t,s){t.finish(s,"SSFB",!0)}static createProjectData(t,s,e,i,n,a,r,o,f,h,d){return C.startProjectData(t),C.addDataId(t,s),C.addVersion(t,e),C.addFlags(t,i),C.addImageBaseDir(t,n),C.addCells(t,a),C.addAnimePacks(t,r),C.addEffectFileList(t,o),C.addNumCells(t,f),C.addNumAnimePacks(t,h),C.addNumEffectFileList(t,d),C.endProjectData(t)}}class Lt{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}integer(){return this.bb.readInt32(this.bb_pos)}static sizeOf(){return 4}static createuserDataInteger(t,s){return t.prep(4,4),t.writeInt32(s),t.offset()}}class Dt{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}x(){return this.bb.readInt32(this.bb_pos)}y(){return this.bb.readInt32(this.bb_pos+4)}static sizeOf(){return 8}static createuserDataPoint(t,s,e){return t.prep(4,8),t.writeInt32(e),t.writeInt32(s),t.offset()}}class _t{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}x(){return this.bb.readInt32(this.bb_pos)}y(){return this.bb.readInt32(this.bb_pos+4)}w(){return this.bb.readInt32(this.bb_pos+8)}h(){return this.bb.readInt32(this.bb_pos+12)}static sizeOf(){return 16}static createuserDataRect(t,s,e,i,n){return t.prep(4,16),t.writeInt32(n),t.writeInt32(i),t.writeInt32(e),t.writeInt32(s),t.offset()}}class Z{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsuserDataString(t,s){return(s||new Z).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataString(t,s){return t.setPosition(t.position()+D),(s||new Z).__init(t.readInt32(t.position())+t.position(),t)}length(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt32(this.bb_pos+t):0}data(t){const s=this.bb.__offset(this.bb_pos,6);return s?this.bb.__string(this.bb_pos+s,t):null}static startuserDataString(t){t.startObject(2)}static addLength(t,s){t.addFieldInt32(0,s,0)}static addData(t,s){t.addFieldOffset(1,s,0)}static enduserDataString(t){return t.endObject()}static createuserDataString(t,s,e){return Z.startuserDataString(t),Z.addLength(t,s),Z.addData(t,e),Z.enduserDataString(t)}}let Mt=class{static getProjectData(t){const s=new mt(t);return C.getRootAsProjectData(s)}};class Ft{static getProjectData(t){return Mt.getProjectData(t)}}class nt{constructor(t,s=null,e=null){this.curAnimePackName=null,this.curAnimeName=null,this.curAnimation=null,this.curAnimePackData=null,this._animePackIdx=-1,this._parentIndex=[],this._prio2index=[],this.userData=[],this.frameDataCache=null,this.currentCachedFrameNumber=-1,this.defaultFrameMap=[],this._uint32=new Uint32Array(1),this._float32=new Float32Array(this._uint32.buffer),Object.prototype.hasOwnProperty.call(t,"bb")?this._fbObj=t:this._fbObj=Ft.getProjectData(t),s!==null&&e!==null&&this.Setup(s,e)}get fbObj(){return this._fbObj}get animePackName(){return this.curAnimePackName}get animeName(){return this.curAnimeName}get animePackIdx(){return this._animePackIdx}get animePackData(){return this.curAnimePackData}get animationData(){return this.curAnimation}get parentIndex(){return this._parentIndex}get prio2index(){return this._prio2index}Setup(t,s){this.clearCaches();const e=this._fbObj.animePacksLength();let i=!1;for(let n=0;n>>0,h.colorBlendType===1&&(h.tint=h.colorArgb32&16777215)}}if(f&vt.MESHDATA){const u=this.curAnimation.meshsDataUv(r);h.meshIsBind=u.uv(0),h.meshNum=u.uv(1);let b=new Float32Array(h.meshNum*3);for(let l=0;l=0&&(t=this.InheritOpacity(t,this._parentIndex[s],e)),t}TransformVertsLocal(t,s,e){const i=this.GetFrameData(e)[s],n=-i.rotationZ*Math.PI/180,a=Math.cos(n),r=Math.sin(n);for(let o=0;o=0&&(t=this.TransformVerts(t,this._parentIndex[s],e)),t}TransformMeshVertsLocal(t,s,e){const i=this.GetFrameData(e)[s],n=-i.rotationZ*Math.PI/180,a=Math.cos(n),r=Math.sin(n);for(let o=0;o=0&&(t=this.TransformVerts(t,this._parentIndex[s],e)),t}TransformPositionLocal(t,s,e){const i=this.GetFrameData(e)[s];t[4]+=-i.rotationZ;const n=-i.rotationZ*Math.PI/180,a=Math.cos(n),r=Math.sin(n),o=t[0]*i.scaleX*i.localscaleX,f=t[1]*i.scaleY*i.localscaleY;return t[2]*=i.scaleX*i.localscaleX,t[3]*=i.scaleY*i.localscaleY,t[0]=a*o-r*f+i.positionX,t[1]=r*o+a*f-i.positionY,this._parentIndex[s]>=0&&(t=this.TransformPosition(t,this._parentIndex[s],e)),t}static CoordinateGetDiagonalIntersection(t,s,e,i,n,a,r,o,f,h,d){const u=(o-a)*(r-e)-(r-n)*(o-i),b=(f-e)*(o-i)-(h-i)*(r-e),l=(f-e)*(o-a)-(h-i)*(r-n);if(l<=0&&l>=0)return d;const O=u/l,m=b/l;return 0<=O&&1>=O&&0<=m&&1>=m&&(t=e+O*(f-e),s=i+O*(h-i)),d[0]=t,d[1]=s,d}TransformVerts(t,s,e){const i=this.GetFrameData(e)[s],n=-i.rotationZ*Math.PI/180,a=Math.cos(n),r=Math.sin(n);for(let o=0;o=0&&(t=this.TransformVerts(t,this._parentIndex[s],e)),t}TransformPosition(t,s,e){const i=this.GetFrameData(e)[s];t[4]+=-i.rotationZ;const n=-i.rotationZ*Math.PI/180,a=Math.cos(n),r=Math.sin(n),o=t[0]*i.scaleX,f=t[1]*i.scaleY;return t[2]*=i.scaleX,t[3]*=i.scaleY,t[0]=a*o-r*f+i.positionX,t[1]=r*o+a*f-i.positionY,this._parentIndex[s]>=0&&(t=this.TransformPosition(t,this._parentIndex[s],e)),t}static GetVerts(t,s,e){const i=s.size_X/2,n=s.size_Y/2,a=s.size_X*-(s.pivotX+t.pivotX()),r=s.size_Y*(s.pivotY+t.pivotY());return e.set([a,r,a-i,r-n,a+i,r-n,a-i,r+n,a+i,r+n]),e}static GetMeshVerts(t,s,e){for(let i=0;i{i.resources=a,e!==null&&e(null)})}unload(t,s,e){this.resources=null,e!==null&&e(null)}texture(t){return console.log(this.resources),this.resources[t].texture}}class Pt{constructor(){this.loader=new Et}load(t,s,e){return this.loader.load(t,s,e)}unload(t,s,e=null){return this.loader.unload(t,s,e)}texture(t){return this.loader.texture(t)}}class wt{constructor(t,s,e,i){if(this.sspjMap={},this.resourceLoader=new Pt,typeof t=="string"&&e===void 0){let n=t;this.ssfbPath=n;const a=n.lastIndexOf("/");this.rootPath=n.substring(0,a)+"/",this.ssfbFile=n.substring(a+1),this.onComplete=s===void 0?null:s,this.status=0,this.LoadFlatBuffersProject()}else if(typeof s=="object"&&s.constructor===Uint8Array){this.ssfbPath=null,this.rootPath=null,this.ssfbFile=t;let n=s,a=e;this.onComplete=i===void 0?null:i,this.load(n,a)}}getBundle(){return this.ssfbFile}getTexture(t){return this.resourceLoader.texture(t)}dispose(t=null){this.resourceLoader.unload(this.getBundle(),this.sspjMap,s=>{t!==null&&t()})}LoadFlatBuffersProject(){const t=this;fetch(this.ssfbPath,{method:"get"}).then(s=>s.ok?Promise.resolve(s.arrayBuffer()):Promise.reject(new Error(s.statusText))).then(s=>{t.fbObj=Ft.getProjectData(new Uint8Array(s)),t.LoadCellResources()}).catch(s=>{this.onComplete!==null&&this.onComplete(null,s)})}LoadCellResources(){let t=[];this.sspjMap={};for(let e=0;e{e===null?(s.status=1,s.onComplete!==null&&s.onComplete(this,null)):this.onComplete!==null&&this.onComplete(null,e)})}load(t,s){this.fbObj=Ft.getProjectData(t);let e={};for(let n in s){const a=s[n];let r="";const o=a.byteLength;for(let f=0;f{n===null?(i.status=1,i.onComplete!==null&&i.onComplete(this,null)):this.onComplete!==null&&this.onComplete(null,n)})}}class St{constructor(){this.refStartframe=0,this.refEndframe=0,this.refSpeed=1,this.refloopNum=0,this.infinity=!1,this.reverse=!1,this.pingpong=!1,this.independent=!1}}class pt extends gt.Container{constructor(t,s=null,e=null){super(),this.liveFrame=[],this.colorMatrixFilterCache=[],this.parentAlpha=1,this.prevCellID=[],this.prevPartObject=[],this.substituteOverWrite=[],this.substituteKeyParam=[],this.alphaBlendType=[],this.defaultColorFilter=new yt.ColorMatrixFilter,this._instancePos=new Float32Array(5),this._CoordinateGetDiagonalIntersectionVec2=new Float32Array(2),this.ss6project=t,this.playerLib=new nt(t.fbObj,s,e),this.parentAlpha=1,s!==null&&e!==null&&this.Setup(s,e),this.on("added",(...i)=>{ut.Ticker.shared.add(this.Update,this)},this),this.on("removed",(...i)=>{ut.Ticker.shared.remove(this.Update,this)},this)}get startFrame(){return this._startFrame}get endFrame(){return this._endFrame}get totalFrame(){return this.playerLib.animationData.totalFrames()}get fps(){return this.playerLib.animationData.fps()}get frameNo(){return Math.floor(this._currentFrame)}set loop(t){this._loops=t}get loop(){return this._loops}get isPlaying(){return this._isPlaying}get isPausing(){return this._isPausing}get animePackName(){return this.playerLib.animePackName}get animeName(){return this.playerLib.animeName}Setup(t,s){this.playerLib.Setup(t,s),this.clearCaches();const e=this.playerLib.animePackData,i=e.partsLength();this.prevCellID=new Array(i),this.prevPartObject=new Array(i),this.substituteOverWrite=new Array(i),this.substituteKeyParam=new Array(i);for(let n=0;n=this.updateInterval){let n=!1;const a=this.nextFrameTime/this.updateInterval;this.nextFrameTime-=this.updateInterval*a;let r=this.skipEnabled?a*this.playDirection:this.playDirection,o=this._currentFrame+r,f=Math.floor(o),h=o-f,d=Math.floor(this._currentFrame);if(this.playDirection>=1)for(let u=f-d;u;u--){let b=d+1;if(b>this._endFrame)if(this._loops===-1)b=this._startFrame;else if(this._loops--,n=!0,this._loops===0){this._isPlaying=!1,b=s?this._startFrame:this._endFrame;break}else b=this._startFrame;d=b,this._isPlaying&&this.playerLib.HaveUserData(d)&&this.onUserDataCallback!==null&&this.onUserDataCallback(this.playerLib.GetUserData(d))}if(this.playDirection<=-1)for(let u=d-f;u;u--){let b=d-1;if(b0?1:-1,this.updateInterval=1e3/(this.playerLib.animationData.fps()*t*this.playDirection),this.skipEnabled=s)}SetAnimationSection(t=-1,s=-1,e=-1){t>=0&&t=0&&s0?this._loops=e:this._loops=-1,this._currentFrame=this.playDirection>0?this._startFrame:this._endFrame}Play(t){this._isPlaying=!0,this._isPausing=!1;let s=this.playDirection>0?this._startFrame:this._endFrame;t&&typeof t=="number"&&(s=t),this._currentFrame=s,this.resetLiveFrame();const e=Math.floor(this._currentFrame);this.SetFrameAnimation(e),this.playerLib.HaveUserData(e)&&this.onUserDataCallback!==null&&this.onUserDataCallback(this.playerLib.GetUserData(e))}Pause(){this._isPausing=!0}Resume(){this._isPausing=!1}Stop(){this._isPlaying=!1}SetFrame(t){this._currentFrame=t}NextFrame(){const t=Math.floor(this._currentFrame),s=this.endFrame;t!==s&&this.SetFrame(t+1)}PrevFrame(){const t=Math.floor(this._currentFrame);t!==0&&this.SetFrame(t-1)}SetAlpha(t){this.parentAlpha=t}ThrowError(t){}SetUserDataCalback(t){this.onUserDataCallback=t}SetPlayEndCallback(t){this.playEndCallback=t}GetPartsBlendMode(){const t=this.playerLib.animePackData,s=t.partsLength();let e=[];for(let i=0;i>>24)/255,r=((e&16711680)>>>16)/255,o=((e&65280)>>>8)/255,f=(e&255)/255;if(t===0){const h=1-s;n.matrix=[h,0,0,0,r*s,0,h,0,0,o*s,0,0,h,0,f*s,0,0,0,1,0]}else t===1?n.matrix=[r,0,0,0,0,0,o,0,0,0,0,0,f,0,0,0,0,0,a,0]:t===2?n.matrix=[1,0,0,0,r,0,1,0,0,o,0,0,1,0,f,0,0,0,a,0]:t===3&&(n.matrix=[1,0,0,0,-r,0,1,0,0,-o,0,0,1,0,-f,0,0,0,a,0]);return this.colorMatrixFilterCache[i]=n,n}SetFrameAnimation(t,s=0){const e=this.playerLib.GetFrameData(t);this.removeChildren();const i=e.length;for(let n=0;n=0&&this.prevCellID[a]!==o&&(f?.destroy(),f=this.MakeCellMesh(o),f.name=h.name());break;case v.Mesh:o>=0&&this.prevCellID[a]!==o&&(f?.destroy(),f=this.MakeMeshCellMesh(a,o),f.name=h.name());break;case v.Nulltype:case v.Joint:this.prevCellID[a]!==o&&(f?.destroy(),f=new gt.Container,f.name=h.name());break;default:o>=0&&this.prevCellID[a]!==o&&(f?.destroy(),f=this.MakeCellMesh(o),f.name=h.name());break}if(f!=null)switch(this.prevCellID[a]=o,this.prevPartObject[a]=f,d){case v.Instance:{const l=f;this._instancePos[0]=0,this._instancePos[1]=0,this._instancePos[2]=1,this._instancePos[3]=1,this._instancePos[4]=0,this._instancePos=this.playerLib.TransformPositionLocal(this._instancePos,r.index,t),l.rotation=this._instancePos[4]*Math.PI/180,l.position.set(this._instancePos[0],this._instancePos[1]),l.scale.set(this._instancePos[2],this._instancePos[3]);let O=r.opacity/255;r.localopacity<255&&(O=r.localopacity/255),l.SetAlpha(O*this.parentAlpha),l.visible=!r.f_hide;let m=r.instanceValue_curKeyframe,F=r.instanceValue_startFrame,I=r.instanceValue_endFrame,A=r.instanceValue_speed,H=r.instanceValue_loopNum,st=!1,U=!1,V=!1,X=!1;const W=1,J=2,M=4,E=8,P=r.instanceValue_loopflag;P&W&&(st=!0),P&J&&(U=!0),P&M&&(V=!0),P&E&&(X=!0),u&&(F=b.refStartframe,I=b.refEndframe,A=b.refSpeed,H=b.refloopNum,st=b.infinity,U=b.reverse,V=b.pingpong,X=b.independent),(l._startFrame!==F||l._endFrame!==I)&&l.SetAnimationSection(F,I);let Y=t;X===!0&&(this.liveFrame[n]+=s,Y=Math.floor(this.liveFrame[n]));const $=m;let g=Math.floor((Y-$)*A);if(g<0||$>Y)continue;const B=I-F+1;if(B<=0)continue;let w=Math.floor(g/B),j=H;V&&(j=j*2),st||w>=j&&(g=B-1,w=j-1);const q=Math.floor(g%B);let z=0;V&&w%2===1&&(U?U=!1:U=!0),this.playDirection<=-1&&(U=!U),U?z=I-q:z=q+F,l.SetFrame(Math.floor(z)),this.addChild(l);break}case v.Normal:case v.Mesh:case v.Joint:case v.Mask:{const l=f,O=l.geometry.getBuffer("aVertexPosition");let m=O.data;const F=this.playerLib.fbObj.cells(o);let I;if(d===v.Mesh?r.meshIsBind===0?I=this.playerLib.TransformMeshVertsLocal(nt.GetMeshVerts(F,r,m),r.index,t):I=nt.GetMeshVerts(F,r,m):(I=d===v.Joint?new Float32Array(10):m,I=this.playerLib.TransformVertsLocal(nt.GetVerts(F,r,I),r.index,t)),r.flag1&p.VERTEX_TRANSFORM){const V=I[6],X=I[7],W=I[2],J=I[3],M=I[8],E=I[9],P=I[4],Y=I[5],$=(V+M)*.5,g=(X+E)*.5,B=(V+W)*.5,w=(X+J)*.5,j=(W+P)*.5,q=(J+Y)*.5,z=(M+P)*.5,rt=(E+Y)*.5,ht=nt.CoordinateGetDiagonalIntersection(I[0],I[1],$,g,z,rt,B,w,j,q,this._CoordinateGetDiagonalIntersectionVec2);I[0]=ht[0],I[1]=ht[1]}const A=I[0],H=I[1];for(let V=0;V>>24)/255;l.alpha=l.alpha*V}const U=this.alphaBlendType[a];(U===N.BLEND_MODES.MULTIPLY||U===N.BLEND_MODES.SCREEN)&&(l.alpha=1),d!==v.Mask&&this.addChild(l);break}case v.Nulltype:{const l=f,O=this.playerLib.InheritOpacity(1,r.index,t);l.alpha=O*r.localopacity/255;const m=this.playerLib.TransformVerts(nt.GetDummyVerts(),r.index,t),F=m[0],I=m[1];l.position.set(F,I);const A=Math.atan2(m[5]-m[3],m[4]-m[2]),H=Math.atan2(m[7]-m[3],m[6]-m[2]);l.rotation=A,l.skew.x=H-A-Math.PI/2;break}}}}ChangeInstanceAnime(t,s,e,i,n=null){let a=!1;if(this.animePackName!==null&&this.animeName!==null){let r=this.playerLib.animePackData,o=r.partsLength();for(let f=0;f0){const n=new Float32Array(i-2),a=e.uv(1);for(let b=2;b>24}readUint8(e){return this.bytes_[e]}readInt16(e){return this.readUint16(e)<<16>>16}readUint16(e){return this.bytes_[e]|this.bytes_[e+1]<<8}readInt32(e){return this.bytes_[e]|this.bytes_[e+1]<<8|this.bytes_[e+2]<<16|this.bytes_[e+3]<<24}readUint32(e){return this.readInt32(e)>>>0}readInt64(e){return BigInt.asIntN(64,BigInt(this.readUint32(e))+(BigInt(this.readUint32(e+4))<>8}writeUint16(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8}writeInt32(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8,this.bytes_[e+2]=t>>16,this.bytes_[e+3]=t>>24}writeUint32(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8,this.bytes_[e+2]=t>>16,this.bytes_[e+3]=t>>24}writeInt64(e,t){this.writeInt32(e,Number(BigInt.asIntN(32,t))),this.writeInt32(e+4,Number(BigInt.asIntN(32,t>>BigInt(32))))}writeUint64(e,t){this.writeUint32(e,Number(BigInt.asUintN(32,t))),this.writeUint32(e+4,Number(BigInt.asUintN(32,t>>BigInt(32))))}writeFloat32(e,t){l[0]=t,this.writeInt32(e,c[0])}writeFloat64(e,t){u[0]=t,this.writeInt32(e,c[d?0:1]),this.writeInt32(e+4,c[d?1:0])}getBufferIdentifier(){if(this.bytes_.length=0;n--)e.addInt32(t[n]);return e.endVector()}static startDataVector(e,t){e.startVector(4,t,4)}static endpartState(e){return e.endObject()}static createpartState(t,n,r,i,a){return e.startpartState(t),e.addIndex(t,n),e.addFlag1(t,r),e.addFlag2(t,i),e.addData(t,a),e.endpartState(t)}},g=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsframeDataIndex(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsframeDataIndex(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}states(e,t){let n=this.bb.__offset(this.bb_pos,4);return n?(t||new h).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}statesLength(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__vector_len(this.bb_pos+e):0}static startframeDataIndex(e){e.startObject(1)}static addStates(e,t){e.addFieldOffset(0,t,0)}static createStatesVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startStatesVector(e,t){e.startVector(4,t,4)}static endframeDataIndex(e){return e.endObject()}static createframeDataIndex(t,n){return e.startframeDataIndex(t),e.addStates(t,n),e.endframeDataIndex(t)}},_=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAslabelDataItem(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAslabelDataItem(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}label(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}frameIndex(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}static startlabelDataItem(e){e.startObject(2)}static addLabel(e,t){e.addFieldOffset(0,t,0)}static addFrameIndex(e,t){e.addFieldInt16(1,t,0)}static endlabelDataItem(e){return e.endObject()}static createlabelDataItem(t,n,r){return e.startlabelDataItem(t),e.addLabel(t,n),e.addFrameIndex(t,r),e.endlabelDataItem(t)}},v=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsmeshDataIndices(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsmeshDataIndices(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}indices(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readFloat32(this.bb.__vector(this.bb_pos+t)+e*4):0}indicesLength(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__vector_len(this.bb_pos+e):0}indicesArray(){let e=this.bb.__offset(this.bb_pos,4);return e?new Float32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}static startmeshDataIndices(e){e.startObject(1)}static addIndices(e,t){e.addFieldOffset(0,t,0)}static createIndicesVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addFloat32(t[n]);return e.endVector()}static startIndicesVector(e,t){e.startVector(4,t,4)}static endmeshDataIndices(e){return e.endObject()}static createmeshDataIndices(t,n){return e.startmeshDataIndices(t),e.addIndices(t,n),e.endmeshDataIndices(t)}},y=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsmeshDataUV(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsmeshDataUV(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}uv(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readFloat32(this.bb.__vector(this.bb_pos+t)+e*4):0}uvLength(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__vector_len(this.bb_pos+e):0}uvArray(){let e=this.bb.__offset(this.bb_pos,4);return e?new Float32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}static startmeshDataUV(e){e.startObject(1)}static addUv(e,t){e.addFieldOffset(0,t,0)}static createUvVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addFloat32(t[n]);return e.endVector()}static startUvVector(e,t){e.startVector(4,t,4)}static endmeshDataUV(e){return e.endObject()}static createmeshDataUV(t,n){return e.startmeshDataUV(t),e.addUv(t,n),e.endmeshDataUV(t)}},b=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsuserDataItem(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataItem(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}flags(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):0}arrayIndex(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}dataType(e){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readUint8(this.bb.__vector(this.bb_pos+t)+e):0}dataTypeLength(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__vector_len(this.bb_pos+e):0}dataTypeArray(){let e=this.bb.__offset(this.bb_pos,8);return e?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}data(e,t){let n=this.bb.__offset(this.bb_pos,10);return n?this.bb.__union(t,this.bb.__vector(this.bb_pos+n)+e*4):null}dataLength(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__vector_len(this.bb_pos+e):0}static startuserDataItem(e){e.startObject(4)}static addFlags(e,t){e.addFieldInt16(0,t,0)}static addArrayIndex(e,t){e.addFieldInt16(1,t,0)}static addDataType(e,t){e.addFieldOffset(2,t,0)}static createDataTypeVector(e,t){e.startVector(1,t.length,1);for(let n=t.length-1;n>=0;n--)e.addInt8(t[n]);return e.endVector()}static startDataTypeVector(e,t){e.startVector(1,t,1)}static addData(e,t){e.addFieldOffset(3,t,0)}static createDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startDataVector(e,t){e.startVector(4,t,4)}static enduserDataItem(e){return e.endObject()}static createuserDataItem(t,n,r,i,a){return e.startuserDataItem(t),e.addFlags(t,n),e.addArrayIndex(t,r),e.addDataType(t,i),e.addData(t,a),e.enduserDataItem(t)}},x=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsuserDataPerFrame(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataPerFrame(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}frameIndex(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):0}data(e,t){let n=this.bb.__offset(this.bb_pos,6);return n?(t||new b).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}dataLength(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__vector_len(this.bb_pos+e):0}static startuserDataPerFrame(e){e.startObject(2)}static addFrameIndex(e,t){e.addFieldInt16(0,t,0)}static addData(e,t){e.addFieldOffset(1,t,0)}static createDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startDataVector(e,t){e.startVector(4,t,4)}static enduserDataPerFrame(e){return e.endObject()}static createuserDataPerFrame(t,n,r){return e.startuserDataPerFrame(t),e.addFrameIndex(t,n),e.addData(t,r),e.enduserDataPerFrame(t)}},S=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsAnimationData(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAnimationData(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}defaultData(e,t){let n=this.bb.__offset(this.bb_pos,6);return n?(t||new m).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}defaultDataLength(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__vector_len(this.bb_pos+e):0}frameData(e,t){let n=this.bb.__offset(this.bb_pos,8);return n?(t||new g).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}frameDataLength(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__vector_len(this.bb_pos+e):0}userData(e,t){let n=this.bb.__offset(this.bb_pos,10);return n?(t||new x).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}userDataLength(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__vector_len(this.bb_pos+e):0}labelData(e,t){let n=this.bb.__offset(this.bb_pos,12);return n?(t||new _).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}labelDataLength(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.__vector_len(this.bb_pos+e):0}meshsDataUv(e,t){let n=this.bb.__offset(this.bb_pos,14);return n?(t||new y).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}meshsDataUvLength(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.__vector_len(this.bb_pos+e):0}meshsDataIndices(e,t){let n=this.bb.__offset(this.bb_pos,16);return n?(t||new v).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}meshsDataIndicesLength(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.__vector_len(this.bb_pos+e):0}startFrames(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.readInt16(this.bb_pos+e):0}endFrames(){let e=this.bb.__offset(this.bb_pos,20);return e?this.bb.readInt16(this.bb_pos+e):0}totalFrames(){let e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readInt16(this.bb_pos+e):0}fps(){let e=this.bb.__offset(this.bb_pos,24);return e?this.bb.readInt16(this.bb_pos+e):0}labelNum(){let e=this.bb.__offset(this.bb_pos,26);return e?this.bb.readInt16(this.bb_pos+e):0}canvasSizeW(){let e=this.bb.__offset(this.bb_pos,28);return e?this.bb.readInt16(this.bb_pos+e):0}canvasSizeH(){let e=this.bb.__offset(this.bb_pos,30);return e?this.bb.readInt16(this.bb_pos+e):0}canvasPvotX(){let e=this.bb.__offset(this.bb_pos,32);return e?this.bb.readFloat32(this.bb_pos+e):0}canvasPvotY(){let e=this.bb.__offset(this.bb_pos,34);return e?this.bb.readFloat32(this.bb_pos+e):0}static startAnimationData(e){e.startObject(16)}static addName(e,t){e.addFieldOffset(0,t,0)}static addDefaultData(e,t){e.addFieldOffset(1,t,0)}static createDefaultDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startDefaultDataVector(e,t){e.startVector(4,t,4)}static addFrameData(e,t){e.addFieldOffset(2,t,0)}static createFrameDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startFrameDataVector(e,t){e.startVector(4,t,4)}static addUserData(e,t){e.addFieldOffset(3,t,0)}static createUserDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startUserDataVector(e,t){e.startVector(4,t,4)}static addLabelData(e,t){e.addFieldOffset(4,t,0)}static createLabelDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startLabelDataVector(e,t){e.startVector(4,t,4)}static addMeshsDataUv(e,t){e.addFieldOffset(5,t,0)}static createMeshsDataUvVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startMeshsDataUvVector(e,t){e.startVector(4,t,4)}static addMeshsDataIndices(e,t){e.addFieldOffset(6,t,0)}static createMeshsDataIndicesVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startMeshsDataIndicesVector(e,t){e.startVector(4,t,4)}static addStartFrames(e,t){e.addFieldInt16(7,t,0)}static addEndFrames(e,t){e.addFieldInt16(8,t,0)}static addTotalFrames(e,t){e.addFieldInt16(9,t,0)}static addFps(e,t){e.addFieldInt16(10,t,0)}static addLabelNum(e,t){e.addFieldInt16(11,t,0)}static addCanvasSizeW(e,t){e.addFieldInt16(12,t,0)}static addCanvasSizeH(e,t){e.addFieldInt16(13,t,0)}static addCanvasPvotX(e,t){e.addFieldFloat32(14,t,0)}static addCanvasPvotY(e,t){e.addFieldFloat32(15,t,0)}static endAnimationData(e){return e.endObject()}static createAnimationData(t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_){return e.startAnimationData(t),e.addName(t,n),e.addDefaultData(t,r),e.addFrameData(t,i),e.addUserData(t,a),e.addLabelData(t,o),e.addMeshsDataUv(t,s),e.addMeshsDataIndices(t,c),e.addStartFrames(t,l),e.addEndFrames(t,u),e.addTotalFrames(t,d),e.addFps(t,f),e.addLabelNum(t,p),e.addCanvasSizeW(t,m),e.addCanvasSizeH(t,h),e.addCanvasPvotX(t,g),e.addCanvasPvotY(t,_),e.endAnimationData(t)}};let C=function(e){return e[e.Invalid=-1]=`Invalid`,e[e.Nulltype=0]=`Nulltype`,e[e.Normal=1]=`Normal`,e[e.Text=2]=`Text`,e[e.Instance=3]=`Instance`,e[e.Armature=4]=`Armature`,e[e.Effect=5]=`Effect`,e[e.Mesh=6]=`Mesh`,e[e.Movenode=7]=`Movenode`,e[e.Constraint=8]=`Constraint`,e[e.Mask=9]=`Mask`,e[e.Joint=10]=`Joint`,e[e.Bonepoint=11]=`Bonepoint`,e}({});var w=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsPartData(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsPartData(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}index(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}parentIndex(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}type(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt8(this.bb_pos+e):C.Nulltype}boundsType(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}alphaBlendType(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.readInt16(this.bb_pos+e):0}refname(e){let t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__string(this.bb_pos+t,e):null}effectfilename(e){let t=this.bb.__offset(this.bb_pos,18);return t?this.bb.__string(this.bb_pos+t,e):null}colorLabel(e){let t=this.bb.__offset(this.bb_pos,20);return t?this.bb.__string(this.bb_pos+t,e):null}maskInfluence(){let e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readInt16(this.bb_pos+e):0}static startPartData(e){e.startObject(10)}static addName(e,t){e.addFieldOffset(0,t,0)}static addIndex(e,t){e.addFieldInt16(1,t,0)}static addParentIndex(e,t){e.addFieldInt16(2,t,0)}static addType(e,t){e.addFieldInt8(3,t,C.Nulltype)}static addBoundsType(e,t){e.addFieldInt16(4,t,0)}static addAlphaBlendType(e,t){e.addFieldInt16(5,t,0)}static addRefname(e,t){e.addFieldOffset(6,t,0)}static addEffectfilename(e,t){e.addFieldOffset(7,t,0)}static addColorLabel(e,t){e.addFieldOffset(8,t,0)}static addMaskInfluence(e,t){e.addFieldInt16(9,t,0)}static endPartData(e){return e.endObject()}static createPartData(t,n,r,i,a,o,s,c,l,u,d){return e.startPartData(t),e.addName(t,n),e.addIndex(t,r),e.addParentIndex(t,i),e.addType(t,a),e.addBoundsType(t,o),e.addAlphaBlendType(t,s),e.addRefname(t,c),e.addEffectfilename(t,l),e.addColorLabel(t,u),e.addMaskInfluence(t,d),e.endPartData(t)}},T=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsAnimePackData(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAnimePackData(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}parts(e,t){let n=this.bb.__offset(this.bb_pos,6);return n?(t||new w).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}partsLength(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__vector_len(this.bb_pos+e):0}animations(e,t){let n=this.bb.__offset(this.bb_pos,8);return n?(t||new S).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}animationsLength(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__vector_len(this.bb_pos+e):0}static startAnimePackData(e){e.startObject(3)}static addName(e,t){e.addFieldOffset(0,t,0)}static addParts(e,t){e.addFieldOffset(1,t,0)}static createPartsVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startPartsVector(e,t){e.startVector(4,t,4)}static addAnimations(e,t){e.addFieldOffset(2,t,0)}static createAnimationsVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startAnimationsVector(e,t){e.startVector(4,t,4)}static endAnimePackData(e){return e.endObject()}static createAnimePackData(t,n,r,i){return e.startAnimePackData(t),e.addName(t,n),e.addParts(t,r),e.addAnimations(t,i),e.endAnimePackData(t)}},E=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsCellMap(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsCellMap(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}imagePath(e){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__string(this.bb_pos+t,e):null}index(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}wrapmode(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt16(this.bb_pos+e):0}filtermode(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}static startCellMap(e){e.startObject(5)}static addName(e,t){e.addFieldOffset(0,t,0)}static addImagePath(e,t){e.addFieldOffset(1,t,0)}static addIndex(e,t){e.addFieldInt16(2,t,0)}static addWrapmode(e,t){e.addFieldInt16(3,t,0)}static addFiltermode(e,t){e.addFieldInt16(4,t,0)}static endCellMap(e){return e.endObject()}static createCellMap(t,n,r,i,a,o){return e.startCellMap(t),e.addName(t,n),e.addImagePath(t,r),e.addIndex(t,i),e.addWrapmode(t,a),e.addFiltermode(t,o),e.endCellMap(t)}},D=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsCell(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsCell(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}cellMap(e){let t=this.bb.__offset(this.bb_pos,6);return t?(e||new E).__init(this.bb.__indirect(this.bb_pos+t),this.bb):null}indexInCellMap(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}x(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt16(this.bb_pos+e):0}y(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}width(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.readInt16(this.bb_pos+e):0}height(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.readInt16(this.bb_pos+e):0}pivotX(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.readFloat32(this.bb_pos+e):0}pivotY(){let e=this.bb.__offset(this.bb_pos,20);return e?this.bb.readFloat32(this.bb_pos+e):0}u1(){let e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readFloat32(this.bb_pos+e):0}v1(){let e=this.bb.__offset(this.bb_pos,24);return e?this.bb.readFloat32(this.bb_pos+e):0}u2(){let e=this.bb.__offset(this.bb_pos,26);return e?this.bb.readFloat32(this.bb_pos+e):0}v2(){let e=this.bb.__offset(this.bb_pos,28);return e?this.bb.readFloat32(this.bb_pos+e):0}static startCell(e){e.startObject(13)}static addName(e,t){e.addFieldOffset(0,t,0)}static addCellMap(e,t){e.addFieldOffset(1,t,0)}static addIndexInCellMap(e,t){e.addFieldInt16(2,t,0)}static addX(e,t){e.addFieldInt16(3,t,0)}static addY(e,t){e.addFieldInt16(4,t,0)}static addWidth(e,t){e.addFieldInt16(5,t,0)}static addHeight(e,t){e.addFieldInt16(6,t,0)}static addPivotX(e,t){e.addFieldFloat32(7,t,0)}static addPivotY(e,t){e.addFieldFloat32(8,t,0)}static addU1(e,t){e.addFieldFloat32(9,t,0)}static addV1(e,t){e.addFieldFloat32(10,t,0)}static addU2(e,t){e.addFieldFloat32(11,t,0)}static addV2(e,t){e.addFieldFloat32(12,t,0)}static endCell(e){return e.endObject()}},O=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsEffectNode(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsEffectNode(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}arrayIndex(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):0}parentIndex(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}type(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}cellIndex(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt16(this.bb_pos+e):0}blendType(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}numBehavior(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.readInt16(this.bb_pos+e):0}behaviorType(e){let t=this.bb.__offset(this.bb_pos,16);return t?this.bb.readUint8(this.bb.__vector(this.bb_pos+t)+e):0}behaviorTypeLength(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.__vector_len(this.bb_pos+e):0}behaviorTypeArray(){let e=this.bb.__offset(this.bb_pos,16);return e?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}behavior(e,t){let n=this.bb.__offset(this.bb_pos,18);return n?this.bb.__union(t,this.bb.__vector(this.bb_pos+n)+e*4):null}behaviorLength(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.__vector_len(this.bb_pos+e):0}static startEffectNode(e){e.startObject(8)}static addArrayIndex(e,t){e.addFieldInt16(0,t,0)}static addParentIndex(e,t){e.addFieldInt16(1,t,0)}static addType(e,t){e.addFieldInt16(2,t,0)}static addCellIndex(e,t){e.addFieldInt16(3,t,0)}static addBlendType(e,t){e.addFieldInt16(4,t,0)}static addNumBehavior(e,t){e.addFieldInt16(5,t,0)}static addBehaviorType(e,t){e.addFieldOffset(6,t,0)}static createBehaviorTypeVector(e,t){e.startVector(1,t.length,1);for(let n=t.length-1;n>=0;n--)e.addInt8(t[n]);return e.endVector()}static startBehaviorTypeVector(e,t){e.startVector(1,t,1)}static addBehavior(e,t){e.addFieldOffset(7,t,0)}static createBehaviorVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startBehaviorVector(e,t){e.startVector(4,t,4)}static endEffectNode(e){return e.endObject()}static createEffectNode(t,n,r,i,a,o,s,c,l){return e.startEffectNode(t),e.addArrayIndex(t,n),e.addParentIndex(t,r),e.addType(t,i),e.addCellIndex(t,a),e.addBlendType(t,o),e.addNumBehavior(t,s),e.addBehaviorType(t,c),e.addBehavior(t,l),e.endEffectNode(t)}},k=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsEffectFile(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsEffectFile(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}fps(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}isLockRandSeed(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}lockRandSeed(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt16(this.bb_pos+e):0}layoutScaleX(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}layoutScaleY(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.readInt16(this.bb_pos+e):0}numNodeList(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.readInt16(this.bb_pos+e):0}effectNode(e,t){let n=this.bb.__offset(this.bb_pos,18);return n?(t||new O).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}effectNodeLength(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.__vector_len(this.bb_pos+e):0}static startEffectFile(e){e.startObject(8)}static addName(e,t){e.addFieldOffset(0,t,0)}static addFps(e,t){e.addFieldInt16(1,t,0)}static addIsLockRandSeed(e,t){e.addFieldInt16(2,t,0)}static addLockRandSeed(e,t){e.addFieldInt16(3,t,0)}static addLayoutScaleX(e,t){e.addFieldInt16(4,t,0)}static addLayoutScaleY(e,t){e.addFieldInt16(5,t,0)}static addNumNodeList(e,t){e.addFieldInt16(6,t,0)}static addEffectNode(e,t){e.addFieldOffset(7,t,0)}static createEffectNodeVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startEffectNodeVector(e,t){e.startVector(4,t,4)}static endEffectFile(e){return e.endObject()}static createEffectFile(t,n,r,i,a,o,s,c,l){return e.startEffectFile(t),e.addName(t,n),e.addFps(t,r),e.addIsLockRandSeed(t,i),e.addLockRandSeed(t,a),e.addLayoutScaleX(t,o),e.addLayoutScaleY(t,s),e.addNumNodeList(t,c),e.addEffectNode(t,l),e.endEffectFile(t)}};let A=function(e){return e[e.INVISIBLE=1]=`INVISIBLE`,e[e.FLIP_H=2]=`FLIP_H`,e[e.FLIP_V=4]=`FLIP_V`,e[e.CELL_INDEX=8]=`CELL_INDEX`,e[e.POSITION_X=16]=`POSITION_X`,e[e.POSITION_Y=32]=`POSITION_Y`,e[e.POSITION_Z=64]=`POSITION_Z`,e[e.PIVOT_X=128]=`PIVOT_X`,e[e.PIVOT_Y=256]=`PIVOT_Y`,e[e.ROTATIONX=512]=`ROTATIONX`,e[e.ROTATIONY=1024]=`ROTATIONY`,e[e.ROTATIONZ=2048]=`ROTATIONZ`,e[e.SCALE_X=4096]=`SCALE_X`,e[e.SCALE_Y=8192]=`SCALE_Y`,e[e.LOCALSCALE_X=16384]=`LOCALSCALE_X`,e[e.LOCALSCALE_Y=32768]=`LOCALSCALE_Y`,e[e.OPACITY=65536]=`OPACITY`,e[e.LOCALOPACITY=131072]=`LOCALOPACITY`,e[e.PARTS_COLOR=262144]=`PARTS_COLOR`,e[e.VERTEX_TRANSFORM=524288]=`VERTEX_TRANSFORM`,e[e.SIZE_X=1048576]=`SIZE_X`,e[e.SIZE_Y=2097152]=`SIZE_Y`,e[e.U_MOVE=4194304]=`U_MOVE`,e[e.V_MOVE=8388608]=`V_MOVE`,e[e.UV_ROTATION=16777216]=`UV_ROTATION`,e[e.U_SCALE=33554432]=`U_SCALE`,e[e.V_SCALE=67108864]=`V_SCALE`,e[e.BOUNDINGRADIUS=134217728]=`BOUNDINGRADIUS`,e[e.MASK=268435456]=`MASK`,e[e.PRIORITY=536870912]=`PRIORITY`,e[e.INSTANCE_KEYFRAME=1073741824]=`INSTANCE_KEYFRAME`,e[e.EFFECT_KEYFRAME=2147483648]=`EFFECT_KEYFRAME`,e}({}),j=function(e){return e[e.MESHDATA=1]=`MESHDATA`,e}({});var M=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsProjectData(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsProjectData(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static bufferHasIdentifier(e){return e.__has_identifier(`SSFB`)}dataId(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readUint32(this.bb_pos+e):0}version(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readUint32(this.bb_pos+e):0}flags(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readUint32(this.bb_pos+e):0}imageBaseDir(e){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__string(this.bb_pos+t,e):null}cells(e,t){let n=this.bb.__offset(this.bb_pos,12);return n?(t||new D).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}cellsLength(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.__vector_len(this.bb_pos+e):0}animePacks(e,t){let n=this.bb.__offset(this.bb_pos,14);return n?(t||new T).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}animePacksLength(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.__vector_len(this.bb_pos+e):0}effectFileList(e,t){let n=this.bb.__offset(this.bb_pos,16);return n?(t||new k).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}effectFileListLength(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.__vector_len(this.bb_pos+e):0}numCells(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.readInt16(this.bb_pos+e):0}numAnimePacks(){let e=this.bb.__offset(this.bb_pos,20);return e?this.bb.readInt16(this.bb_pos+e):0}numEffectFileList(){let e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readInt16(this.bb_pos+e):0}static startProjectData(e){e.startObject(10)}static addDataId(e,t){e.addFieldInt32(0,t,0)}static addVersion(e,t){e.addFieldInt32(1,t,0)}static addFlags(e,t){e.addFieldInt32(2,t,0)}static addImageBaseDir(e,t){e.addFieldOffset(3,t,0)}static addCells(e,t){e.addFieldOffset(4,t,0)}static createCellsVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startCellsVector(e,t){e.startVector(4,t,4)}static addAnimePacks(e,t){e.addFieldOffset(5,t,0)}static createAnimePacksVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startAnimePacksVector(e,t){e.startVector(4,t,4)}static addEffectFileList(e,t){e.addFieldOffset(6,t,0)}static createEffectFileListVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startEffectFileListVector(e,t){e.startVector(4,t,4)}static addNumCells(e,t){e.addFieldInt16(7,t,0)}static addNumAnimePacks(e,t){e.addFieldInt16(8,t,0)}static addNumEffectFileList(e,t){e.addFieldInt16(9,t,0)}static endProjectData(e){return e.endObject()}static finishProjectDataBuffer(e,t){e.finish(t,`SSFB`)}static finishSizePrefixedProjectDataBuffer(e,t){e.finish(t,`SSFB`,!0)}static createProjectData(t,n,r,i,a,o,s,c,l,u,d){return e.startProjectData(t),e.addDataId(t,n),e.addVersion(t,r),e.addFlags(t,i),e.addImageBaseDir(t,a),e.addCells(t,o),e.addAnimePacks(t,s),e.addEffectFileList(t,c),e.addNumCells(t,l),e.addNumAnimePacks(t,u),e.addNumEffectFileList(t,d),e.endProjectData(t)}},N=class{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}integer(){return this.bb.readInt32(this.bb_pos)}static sizeOf(){return 4}static createuserDataInteger(e,t){return e.prep(4,4),e.writeInt32(t),e.offset()}},P=class{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}x(){return this.bb.readInt32(this.bb_pos)}y(){return this.bb.readInt32(this.bb_pos+4)}static sizeOf(){return 8}static createuserDataPoint(e,t,n){return e.prep(4,8),e.writeInt32(n),e.writeInt32(t),e.offset()}},F=class{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}x(){return this.bb.readInt32(this.bb_pos)}y(){return this.bb.readInt32(this.bb_pos+4)}w(){return this.bb.readInt32(this.bb_pos+8)}h(){return this.bb.readInt32(this.bb_pos+12)}static sizeOf(){return 16}static createuserDataRect(e,t,n,r,i){return e.prep(4,16),e.writeInt32(i),e.writeInt32(r),e.writeInt32(n),e.writeInt32(t),e.offset()}},I=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsuserDataString(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataString(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}length(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt32(this.bb_pos+e):0}data(e){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__string(this.bb_pos+t,e):null}static startuserDataString(e){e.startObject(2)}static addLength(e,t){e.addFieldInt32(0,t,0)}static addData(e,t){e.addFieldOffset(1,t,0)}static enduserDataString(e){return e.endObject()}static createuserDataString(t,n,r){return e.startuserDataString(t),e.addLength(t,n),e.addData(t,r),e.enduserDataString(t)}},L=class{static getProjectData(e){let t=new p(e);return M.getRootAsProjectData(t)}},R=class{static getProjectData(e){return L.getProjectData(e)}},z=class{get fbObj(){return this._fbObj}get animePackName(){return this.curAnimePackName}get animeName(){return this.curAnimeName}get animePackIdx(){return this._animePackIdx}get animePackData(){return this.curAnimePackData}get animationData(){return this.curAnimation}get parentIndex(){return this._parentIndex}get prio2index(){return this._prio2index}constructor(e,t=null,n=null){this.curAnimePackName=null,this.curAnimeName=null,this.curAnimation=null,this.curAnimePackData=null,this._animePackIdx=-1,this._parentIndex=[],this._prio2index=[],this.userData=[],this.frameDataCache=null,this.currentCachedFrameNumber=-1,this.defaultFrameMap=[],this._uint32=new Uint32Array(1),this._float32=new Float32Array(this._uint32.buffer),Object.prototype.hasOwnProperty.call(e,`bb`)?this._fbObj=e:this._fbObj=R.getProjectData(e),t!==null&&n!==null&&this.Setup(t,n)}Setup(e,t){this.clearCaches();let n=this._fbObj.animePacksLength(),r=!1;for(let i=0;i>>0,s.colorBlendType===1&&(s.tint=s.colorArgb32&16777215)}}if(o&j.MESHDATA){let e=this.curAnimation.meshsDataUv(i);s.meshIsBind=e.uv(0),s.meshNum=e.uv(1);let n=new Float32Array(s.meshNum*3);for(let e=0;e=0&&(e=this.InheritOpacity(e,this._parentIndex[t],n)),e}TransformVertsLocal(e,t,n){let r=this.GetFrameData(n)[t],i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i);for(let t=0;t=0&&(e=this.TransformVerts(e,this._parentIndex[t],n)),e}TransformMeshVertsLocal(e,t,n){let r=this.GetFrameData(n)[t],i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i);for(let t=0;t=0&&(e=this.TransformVerts(e,this._parentIndex[t],n)),e}TransformPositionLocal(e,t,n){let r=this.GetFrameData(n)[t];e[4]+=-r.rotationZ;let i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i),s=e[0]*r.scaleX*r.localscaleX,c=e[1]*r.scaleY*r.localscaleY;return e[2]*=r.scaleX*r.localscaleX,e[3]*=r.scaleY*r.localscaleY,e[0]=a*s-o*c+r.positionX,e[1]=o*s+a*c-r.positionY,this._parentIndex[t]>=0&&(e=this.TransformPosition(e,this._parentIndex[t],n)),e}static CoordinateGetDiagonalIntersection(e,t,n,r,i,a,o,s,c,l,u){let d=(s-a)*(o-n)-(o-i)*(s-r),f=(c-n)*(s-r)-(l-r)*(o-n),p=(c-n)*(s-a)-(l-r)*(o-i);if(p<=0&&p>=0)return u;let m=d/p,h=f/p;return 0<=m&&1>=m&&0<=h&&1>=h&&(e=n+m*(c-n),t=r+m*(l-r)),u[0]=e,u[1]=t,u}TransformVerts(e,t,n){let r=this.GetFrameData(n)[t],i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i);for(let t=0;t=0&&(e=this.TransformVerts(e,this._parentIndex[t],n)),e}TransformPosition(e,t,n){let r=this.GetFrameData(n)[t];e[4]+=-r.rotationZ;let i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i),s=e[0]*r.scaleX,c=e[1]*r.scaleY;return e[2]*=r.scaleX,e[3]*=r.scaleY,e[0]=a*s-o*c+r.positionX,e[1]=o*s+a*c-r.positionY,this._parentIndex[t]>=0&&(e=this.TransformPosition(e,this._parentIndex[t],n)),e}static GetVerts(e,t,n){let r=t.size_X/2,i=t.size_Y/2,a=t.size_X*-(t.pivotX+e.pivotX()),o=t.size_Y*(t.pivotY+e.pivotY());return n.set([a,o,a-r,o-i,a+r,o-i,a-r,o+i,a+r,o+i]),n}static GetMeshVerts(e,t,n){for(let e=0;e{r.resources=t,n!==null&&n(null)})}unload(e,t,n){this.resources=null,n!==null&&n(null)}texture(e){return console.log(this.resources),this.resources[e].texture}},V=class{constructor(){this.loader=new B}load(e,t,n){return this.loader.load(e,t,n)}unload(e,t,n=null){return this.loader.unload(e,t,n)}texture(e){return this.loader.texture(e)}};let H=function(e){return e[e.NOT_READY=0]=`NOT_READY`,e[e.READY=1]=`READY`,e}({});var U=class{getBundle(){return this.ssfbFile}getTexture(e){return this.resourceLoader.texture(e)}constructor(e,t,n,r){if(this.sspjMap={},this.resourceLoader=new V,typeof e==`string`&&n===void 0){let n=e;this.ssfbPath=n;let r=n.lastIndexOf(`/`);this.rootPath=n.substring(0,r)+`/`,this.ssfbFile=n.substring(r+1),this.onComplete=t===void 0?null:t,this.status=H.NOT_READY,this.LoadFlatBuffersProject()}else if(typeof t==`object`&&t.constructor===Uint8Array){this.ssfbPath=null,this.rootPath=null,this.ssfbFile=e;let i=t,a=n;this.onComplete=r===void 0?null:r,this.load(i,a)}}dispose(e=null){this.resourceLoader.unload(this.getBundle(),this.sspjMap,t=>{e!==null&&e()})}LoadFlatBuffersProject(){let e=this;fetch(this.ssfbPath,{method:`get`}).then(e=>e.ok?Promise.resolve(e.arrayBuffer()):Promise.reject(Error(e.statusText))).then(t=>{e.fbObj=R.getProjectData(new Uint8Array(t)),e.LoadCellResources()}).catch(e=>{this.onComplete!==null&&this.onComplete(null,e)})}LoadCellResources(){let e=[];this.sspjMap={};for(let t=0;t{e===null?(t.status=H.READY,t.onComplete!==null&&t.onComplete(this,null)):this.onComplete!==null&&this.onComplete(null,e)})}load(e,t){this.fbObj=R.getProjectData(e);let n={};for(let e in t){let r=t[e],i=``,a=r.byteLength;for(let e=0;e{e===null?(r.status=H.READY,r.onComplete!==null&&r.onComplete(this,null)):this.onComplete!==null&&this.onComplete(null,e)})}},W=class{constructor(){this.refStartframe=0,this.refEndframe=0,this.refSpeed=1,this.refloopNum=0,this.infinity=!1,this.reverse=!1,this.pingpong=!1,this.independent=!1}};return e.SS6Player=class e extends n.Container{get startFrame(){return this._startFrame}get endFrame(){return this._endFrame}get totalFrame(){return this.playerLib.animationData.totalFrames()}get fps(){return this.playerLib.animationData.fps()}get frameNo(){return Math.floor(this._currentFrame)}set loop(e){this._loops=e}get loop(){return this._loops}get isPlaying(){return this._isPlaying}get isPausing(){return this._isPausing}get animePackName(){return this.playerLib.animePackName}get animeName(){return this.playerLib.animeName}constructor(e,t=null,n=null){super(),this.liveFrame=[],this.colorMatrixFilterCache=[],this.parentAlpha=1,this.prevCellID=[],this.prevPartObject=[],this.substituteOverWrite=[],this.substituteKeyParam=[],this.alphaBlendType=[],this.defaultColorFilter=new a.ColorMatrixFilter,this._instancePos=new Float32Array(5),this._CoordinateGetDiagonalIntersectionVec2=new Float32Array(2),this.ss6project=e,this.playerLib=new z(e.fbObj,t,n),this.parentAlpha=1,t!==null&&n!==null&&this.Setup(t,n),this.on(`added`,(...e)=>{i.Ticker.shared.add(this.Update,this)},this),this.on(`removed`,(...e)=>{i.Ticker.shared.remove(this.Update,this)},this)}Setup(e,t){this.playerLib.Setup(e,t),this.clearCaches();let n=this.playerLib.animePackData,r=n.partsLength();this.prevCellID=Array(r),this.prevPartObject=Array(r),this.substituteOverWrite=Array(r),this.substituteKeyParam=Array(r);for(let e=0;e=this.updateInterval){let e=!1,n=this.nextFrameTime/this.updateInterval;this.nextFrameTime-=this.updateInterval*n;let r=this.skipEnabled?n*this.playDirection:this.playDirection,i=this._currentFrame+r,a=Math.floor(i),o=i-a,s=Math.floor(this._currentFrame);if(this.playDirection>=1)for(let n=a-s;n;n--){let n=s+1;if(n>this._endFrame)if(this._loops===-1)n=this._startFrame;else if(this._loops--,e=!0,this._loops===0){this._isPlaying=!1,n=t?this._startFrame:this._endFrame;break}else n=this._startFrame;s=n,this._isPlaying&&this.playerLib.HaveUserData(s)&&this.onUserDataCallback!==null&&this.onUserDataCallback(this.playerLib.GetUserData(s))}if(this.playDirection<=-1)for(let n=s-a;n;n--){let n=s-1;if(n0?1:-1,this.updateInterval=1e3/(this.playerLib.animationData.fps()*e*this.playDirection),this.skipEnabled=t)}SetAnimationSection(e=-1,t=-1,n=-1){e>=0&&e=0&&t0?this._loops=n:this._loops=-1,this._currentFrame=this.playDirection>0?this._startFrame:this._endFrame}Play(e){this._isPlaying=!0,this._isPausing=!1;let t=this.playDirection>0?this._startFrame:this._endFrame;e&&typeof e==`number`&&(t=e),this._currentFrame=t,this.resetLiveFrame();let n=Math.floor(this._currentFrame);this.SetFrameAnimation(n),this.playerLib.HaveUserData(n)&&this.onUserDataCallback!==null&&this.onUserDataCallback(this.playerLib.GetUserData(n))}Pause(){this._isPausing=!0}Resume(){this._isPausing=!1}Stop(){this._isPlaying=!1}SetFrame(e){this._currentFrame=e}NextFrame(){let e=Math.floor(this._currentFrame);e!==this.endFrame&&this.SetFrame(e+1)}PrevFrame(){let e=Math.floor(this._currentFrame);e!==0&&this.SetFrame(e-1)}SetAlpha(e){this.parentAlpha=e}ThrowError(e){}SetUserDataCalback(e){this.onUserDataCallback=e}SetPlayEndCallback(e){this.playEndCallback=e}GetPartsBlendMode(){let e=this.playerLib.animePackData,t=e.partsLength(),n=[];for(let r=0;r>>24)/255,s=((n&16711680)>>>16)/255,c=((n&65280)>>>8)/255,l=(n&255)/255;if(e===0){let e=1-t;i.matrix=[e,0,0,0,s*t,0,e,0,0,c*t,0,0,e,0,l*t,0,0,0,1,0]}else e===1?i.matrix=[s,0,0,0,0,0,c,0,0,0,0,0,l,0,0,0,0,0,o,0]:e===2?i.matrix=[1,0,0,0,s,0,1,0,0,c,0,0,1,0,l,0,0,0,o,0]:e===3&&(i.matrix=[1,0,0,0,-s,0,1,0,0,-c,0,0,1,0,-l,0,0,0,o,0]);return this.colorMatrixFilterCache[r]=i,i}SetFrameAnimation(e,t=0){let r=this.playerLib.GetFrameData(e);this.removeChildren();let i=r.length;for(let a=0;a=0&&this.prevCellID[i]!==c&&(l?.destroy(),l=this.MakeCellMesh(c),l.name=u.name());break;case C.Mesh:c>=0&&this.prevCellID[i]!==c&&(l?.destroy(),l=this.MakeMeshCellMesh(i,c),l.name=u.name());break;case C.Nulltype:case C.Joint:this.prevCellID[i]!==c&&(l?.destroy(),l=new n.Container,l.name=u.name());break;default:c>=0&&this.prevCellID[i]!==c&&(l?.destroy(),l=this.MakeCellMesh(c),l.name=u.name());break}if(l!=null)switch(this.prevCellID[i]=c,this.prevPartObject[i]=l,d){case C.Instance:{let n=l;this._instancePos[0]=0,this._instancePos[1]=0,this._instancePos[2]=1,this._instancePos[3]=1,this._instancePos[4]=0,this._instancePos=this.playerLib.TransformPositionLocal(this._instancePos,s.index,e),n.rotation=this._instancePos[4]*Math.PI/180,n.position.set(this._instancePos[0],this._instancePos[1]),n.scale.set(this._instancePos[2],this._instancePos[3]);let r=s.opacity/255;s.localopacity<255&&(r=s.localopacity/255),n.SetAlpha(r*this.parentAlpha),n.visible=!s.f_hide;let i=s.instanceValue_curKeyframe,o=s.instanceValue_startFrame,c=s.instanceValue_endFrame,u=s.instanceValue_speed,d=s.instanceValue_loopNum,m=!1,h=!1,g=!1,_=!1,v=s.instanceValue_loopflag;v&1&&(m=!0),v&2&&(h=!0),v&4&&(g=!0),v&8&&(_=!0),f&&(o=p.refStartframe,c=p.refEndframe,u=p.refSpeed,d=p.refloopNum,m=p.infinity,h=p.reverse,g=p.pingpong,_=p.independent),(n._startFrame!==o||n._endFrame!==c)&&n.SetAnimationSection(o,c);let y=e;_===!0&&(this.liveFrame[a]+=t,y=Math.floor(this.liveFrame[a]));let b=i,x=Math.floor((y-b)*u);if(x<0||b>y)continue;let S=c-o+1;if(S<=0)continue;let C=Math.floor(x/S),w=d;g&&(w*=2),m||C>=w&&(x=S-1,C=w-1);let T=Math.floor(x%S),E=0;g&&C%2==1&&(h=!h),this.playDirection<=-1&&(h=!h),E=h?c-T:T+o,n.SetFrame(Math.floor(E)),this.addChild(n);break}case C.Normal:case C.Mesh:case C.Joint:case C.Mask:{let t=l,n=t.geometry.getBuffer(`aVertexPosition`),r=n.data,a=this.playerLib.fbObj.cells(c),u;if(d===C.Mesh?u=s.meshIsBind===0?this.playerLib.TransformMeshVertsLocal(z.GetMeshVerts(a,s,r),s.index,e):z.GetMeshVerts(a,s,r):(u=d===C.Joint?new Float32Array(10):r,u=this.playerLib.TransformVertsLocal(z.GetVerts(a,s,u),s.index,e)),s.flag1&A.VERTEX_TRANSFORM){let e=u[6],t=u[7],n=u[2],r=u[3],i=u[8],a=u[9],o=u[4],s=u[5],c=(e+i)*.5,l=(t+a)*.5,d=(e+n)*.5,f=(t+r)*.5,p=(n+o)*.5,m=(r+s)*.5,h=(i+o)*.5,g=(a+s)*.5,_=z.CoordinateGetDiagonalIntersection(u[0],u[1],c,l,h,g,d,f,p,m,this._CoordinateGetDiagonalIntersectionVec2);u[0]=_[0],u[1]=_[1]}let f=u[0],p=u[1];for(let e=0;e>>24)/255;t.alpha*=e}let h=this.alphaBlendType[i];(h===o.BLEND_MODES.MULTIPLY||h===o.BLEND_MODES.SCREEN)&&(t.alpha=1),d!==C.Mask&&this.addChild(t);break}case C.Nulltype:{let t=l;t.alpha=this.playerLib.InheritOpacity(1,s.index,e)*s.localopacity/255;let n=this.playerLib.TransformVerts(z.GetDummyVerts(),s.index,e),r=n[0],i=n[1];t.position.set(r,i);let a=Math.atan2(n[5]-n[3],n[4]-n[2]),o=Math.atan2(n[7]-n[3],n[6]-n[2]);t.rotation=a,t.skew.x=o-a-Math.PI/2;break}}}}ChangeInstanceAnime(t,n,r,i,a=null){let o=!1;if(this.animePackName!==null&&this.animeName!==null){let s=this.playerLib.animePackData,c=s.partsLength();for(let l=0;l0){let a=new Float32Array(i-2),s=n.uv(1);for(let e=2;e> 24; + } + readUint8(offset) { + return this.bytes_[offset]; + } + readInt16(offset) { + return this.readUint16(offset) << 16 >> 16; + } + readUint16(offset) { + return this.bytes_[offset] | this.bytes_[offset + 1] << 8; + } + readInt32(offset) { + return this.bytes_[offset] | this.bytes_[offset + 1] << 8 | this.bytes_[offset + 2] << 16 | this.bytes_[offset + 3] << 24; + } + readUint32(offset) { + return this.readInt32(offset) >>> 0; + } + readInt64(offset) { + return BigInt.asIntN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); + } + readUint64(offset) { + return BigInt.asUintN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); + } + readFloat32(offset) { + int32[0] = this.readInt32(offset); + return float32[0]; + } + readFloat64(offset) { + int32[isLittleEndian ? 0 : 1] = this.readInt32(offset); + int32[isLittleEndian ? 1 : 0] = this.readInt32(offset + 4); + return float64[0]; + } + writeInt8(offset, value) { + this.bytes_[offset] = value; + } + writeUint8(offset, value) { + this.bytes_[offset] = value; + } + writeInt16(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + } + writeUint16(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + } + writeInt32(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + this.bytes_[offset + 2] = value >> 16; + this.bytes_[offset + 3] = value >> 24; + } + writeUint32(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + this.bytes_[offset + 2] = value >> 16; + this.bytes_[offset + 3] = value >> 24; + } + writeInt64(offset, value) { + this.writeInt32(offset, Number(BigInt.asIntN(32, value))); + this.writeInt32(offset + 4, Number(BigInt.asIntN(32, value >> BigInt(32)))); + } + writeUint64(offset, value) { + this.writeUint32(offset, Number(BigInt.asUintN(32, value))); + this.writeUint32(offset + 4, Number(BigInt.asUintN(32, value >> BigInt(32)))); + } + writeFloat32(offset, value) { + float32[0] = value; + this.writeInt32(offset, int32[0]); + } + writeFloat64(offset, value) { + float64[0] = value; + this.writeInt32(offset, int32[isLittleEndian ? 0 : 1]); + this.writeInt32(offset + 4, int32[isLittleEndian ? 1 : 0]); + } + /** + * Return the file identifier. Behavior is undefined for FlatBuffers whose + * schema does not include a file_identifier (likely points at padding or the + * start of a the root vtable). + */ + getBufferIdentifier() { + if (this.bytes_.length < this.position_ + 4 + 4) throw new Error("FlatBuffers: ByteBuffer is too short to contain an identifier."); + let result = ""; + for (let i = 0; i < 4; i++) result += String.fromCharCode(this.readInt8(this.position_ + 4 + i)); + return result; + } + /** + * Look up a field in the vtable, return an offset into the object, or 0 if the + * field is not present. + */ + __offset(bb_pos, vtable_offset) { + const vtable = bb_pos - this.readInt32(bb_pos); + return vtable_offset < this.readInt16(vtable) ? this.readInt16(vtable + vtable_offset) : 0; + } + /** + * Initialize any Table-derived type to point to the union at the given offset. + */ + __union(t, offset) { + t.bb_pos = offset + this.readInt32(offset); + t.bb = this; + return t; + } + /** + * Create a JavaScript string from UTF-8 data stored inside the FlatBuffer. + * This allocates a new string and converts to wide chars upon each access. + * + * To avoid the conversion to string, pass Encoding.UTF8_BYTES as the + * "optionalEncoding" argument. This is useful for avoiding conversion when + * the data will just be packaged back up in another FlatBuffer later on. + * + * @param offset + * @param opt_encoding Defaults to UTF16_STRING + */ + __string(offset, opt_encoding) { + offset += this.readInt32(offset); + const length = this.readInt32(offset); + offset += 4; + const utf8bytes = this.bytes_.subarray(offset, offset + length); + if (opt_encoding === Encoding.UTF8_BYTES) return utf8bytes; + else return this.text_decoder_.decode(utf8bytes); + } + /** + * Handle unions that can contain string as its member, if a Table-derived type then initialize it, + * if a string then return a new one + * + * WARNING: strings are immutable in JS so we can't change the string that the user gave us, this + * makes the behaviour of __union_with_string different compared to __union + */ + __union_with_string(o, offset) { + if (typeof o === "string") return this.__string(offset); + return this.__union(o, offset); + } + /** + * Retrieve the relative offset stored at "offset" + */ + __indirect(offset) { + return offset + this.readInt32(offset); + } + /** + * Get the start of data of a vector whose offset is stored at "offset" in this object. + */ + __vector(offset) { + return offset + this.readInt32(offset) + 4; + } + /** + * Get the length of a vector whose offset is stored at "offset" in this object. + */ + __vector_len(offset) { + return this.readInt32(offset + this.readInt32(offset)); + } + __has_identifier(ident) { + if (ident.length != 4) throw new Error("FlatBuffers: file identifier must be length 4"); + for (let i = 0; i < 4; i++) if (ident.charCodeAt(i) != this.readInt8(this.position() + 4 + i)) return false; + return true; + } + /** + * A helper function for generating list for obj api + */ + createScalarList(listAccessor, listLength) { + const ret = []; + for (let i = 0; i < listLength; ++i) { + const val = listAccessor(i); + if (val !== null) ret.push(val); + } + return ret; + } + /** + * A helper function for generating list for obj api + * @param listAccessor function that accepts an index and return data at that index + * @param listLength listLength + * @param res result list + */ + createObjList(listAccessor, listLength) { + const ret = []; + for (let i = 0; i < listLength; ++i) { + const val = listAccessor(i); + if (val !== null) ret.push(val.unpack()); + } + return ret; + } + }; + var AnimationInitialData = class AnimationInitialData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsAnimationInitialData(bb, obj) { + return (obj || new AnimationInitialData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsAnimationInitialData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new AnimationInitialData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + index() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + lowflag() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + highflag() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + priority() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + cellIndex() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + opacity() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + localopacity() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + masklimen() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + positionX() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + positionY() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + positionZ() { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + pivotX() { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + pivotY() { + const offset = this.bb.__offset(this.bb_pos, 28); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + rotationX() { + const offset = this.bb.__offset(this.bb_pos, 30); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + rotationY() { + const offset = this.bb.__offset(this.bb_pos, 32); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + rotationZ() { + const offset = this.bb.__offset(this.bb_pos, 34); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + scaleX() { + const offset = this.bb.__offset(this.bb_pos, 36); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + scaleY() { + const offset = this.bb.__offset(this.bb_pos, 38); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + localscaleX() { + const offset = this.bb.__offset(this.bb_pos, 40); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + localscaleY() { + const offset = this.bb.__offset(this.bb_pos, 42); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + sizeX() { + const offset = this.bb.__offset(this.bb_pos, 44); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + sizeY() { + const offset = this.bb.__offset(this.bb_pos, 46); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvMoveX() { + const offset = this.bb.__offset(this.bb_pos, 48); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvMoveY() { + const offset = this.bb.__offset(this.bb_pos, 50); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvRotation() { + const offset = this.bb.__offset(this.bb_pos, 52); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvScaleX() { + const offset = this.bb.__offset(this.bb_pos, 54); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvScaleY() { + const offset = this.bb.__offset(this.bb_pos, 56); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + boundingRadius() { + const offset = this.bb.__offset(this.bb_pos, 58); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + instanceValueCurKeyframe() { + const offset = this.bb.__offset(this.bb_pos, 60); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + instanceValueStartFrame() { + const offset = this.bb.__offset(this.bb_pos, 62); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + instanceValueEndFrame() { + const offset = this.bb.__offset(this.bb_pos, 64); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + instanceValueLoopNum() { + const offset = this.bb.__offset(this.bb_pos, 66); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + instanceValueSpeed() { + const offset = this.bb.__offset(this.bb_pos, 68); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + instanceValueLoopflag() { + const offset = this.bb.__offset(this.bb_pos, 70); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + effectValueCurKeyframe() { + const offset = this.bb.__offset(this.bb_pos, 72); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + effectValueStartTime() { + const offset = this.bb.__offset(this.bb_pos, 74); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + effectValueSpeed() { + const offset = this.bb.__offset(this.bb_pos, 76); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + effectValueLoopflag() { + const offset = this.bb.__offset(this.bb_pos, 78); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + static startAnimationInitialData(builder) { + builder.startObject(38); + } + static addIndex(builder, index) { + builder.addFieldInt16(0, index, 0); + } + static addLowflag(builder, lowflag) { + builder.addFieldInt32(1, lowflag, 0); + } + static addHighflag(builder, highflag) { + builder.addFieldInt32(2, highflag, 0); + } + static addPriority(builder, priority) { + builder.addFieldInt16(3, priority, 0); + } + static addCellIndex(builder, cellIndex) { + builder.addFieldInt16(4, cellIndex, 0); + } + static addOpacity(builder, opacity) { + builder.addFieldInt16(5, opacity, 0); + } + static addLocalopacity(builder, localopacity) { + builder.addFieldInt16(6, localopacity, 0); + } + static addMasklimen(builder, masklimen) { + builder.addFieldInt16(7, masklimen, 0); + } + static addPositionX(builder, positionX) { + builder.addFieldFloat32(8, positionX, 0); + } + static addPositionY(builder, positionY) { + builder.addFieldFloat32(9, positionY, 0); + } + static addPositionZ(builder, positionZ) { + builder.addFieldFloat32(10, positionZ, 0); + } + static addPivotX(builder, pivotX) { + builder.addFieldFloat32(11, pivotX, 0); + } + static addPivotY(builder, pivotY) { + builder.addFieldFloat32(12, pivotY, 0); + } + static addRotationX(builder, rotationX) { + builder.addFieldFloat32(13, rotationX, 0); + } + static addRotationY(builder, rotationY) { + builder.addFieldFloat32(14, rotationY, 0); + } + static addRotationZ(builder, rotationZ) { + builder.addFieldFloat32(15, rotationZ, 0); + } + static addScaleX(builder, scaleX) { + builder.addFieldFloat32(16, scaleX, 0); + } + static addScaleY(builder, scaleY) { + builder.addFieldFloat32(17, scaleY, 0); + } + static addLocalscaleX(builder, localscaleX) { + builder.addFieldFloat32(18, localscaleX, 0); + } + static addLocalscaleY(builder, localscaleY) { + builder.addFieldFloat32(19, localscaleY, 0); + } + static addSizeX(builder, sizeX) { + builder.addFieldFloat32(20, sizeX, 0); + } + static addSizeY(builder, sizeY) { + builder.addFieldFloat32(21, sizeY, 0); + } + static addUvMoveX(builder, uvMoveX) { + builder.addFieldFloat32(22, uvMoveX, 0); + } + static addUvMoveY(builder, uvMoveY) { + builder.addFieldFloat32(23, uvMoveY, 0); + } + static addUvRotation(builder, uvRotation) { + builder.addFieldFloat32(24, uvRotation, 0); + } + static addUvScaleX(builder, uvScaleX) { + builder.addFieldFloat32(25, uvScaleX, 0); + } + static addUvScaleY(builder, uvScaleY) { + builder.addFieldFloat32(26, uvScaleY, 0); + } + static addBoundingRadius(builder, boundingRadius) { + builder.addFieldFloat32(27, boundingRadius, 0); + } + static addInstanceValueCurKeyframe(builder, instanceValueCurKeyframe) { + builder.addFieldInt32(28, instanceValueCurKeyframe, 0); + } + static addInstanceValueStartFrame(builder, instanceValueStartFrame) { + builder.addFieldInt32(29, instanceValueStartFrame, 0); + } + static addInstanceValueEndFrame(builder, instanceValueEndFrame) { + builder.addFieldInt32(30, instanceValueEndFrame, 0); + } + static addInstanceValueLoopNum(builder, instanceValueLoopNum) { + builder.addFieldInt32(31, instanceValueLoopNum, 0); + } + static addInstanceValueSpeed(builder, instanceValueSpeed) { + builder.addFieldFloat32(32, instanceValueSpeed, 0); + } + static addInstanceValueLoopflag(builder, instanceValueLoopflag) { + builder.addFieldInt32(33, instanceValueLoopflag, 0); + } + static addEffectValueCurKeyframe(builder, effectValueCurKeyframe) { + builder.addFieldInt32(34, effectValueCurKeyframe, 0); + } + static addEffectValueStartTime(builder, effectValueStartTime) { + builder.addFieldInt32(35, effectValueStartTime, 0); + } + static addEffectValueSpeed(builder, effectValueSpeed) { + builder.addFieldFloat32(36, effectValueSpeed, 0); + } + static addEffectValueLoopflag(builder, effectValueLoopflag) { + builder.addFieldInt32(37, effectValueLoopflag, 0); + } + static endAnimationInitialData(builder) { + return builder.endObject(); + } + static createAnimationInitialData(builder, index, lowflag, highflag, priority, cellIndex, opacity, localopacity, masklimen, positionX, positionY, positionZ, pivotX, pivotY, rotationX, rotationY, rotationZ, scaleX, scaleY, localscaleX, localscaleY, sizeX, sizeY, uvMoveX, uvMoveY, uvRotation, uvScaleX, uvScaleY, boundingRadius, instanceValueCurKeyframe, instanceValueStartFrame, instanceValueEndFrame, instanceValueLoopNum, instanceValueSpeed, instanceValueLoopflag, effectValueCurKeyframe, effectValueStartTime, effectValueSpeed, effectValueLoopflag) { + AnimationInitialData.startAnimationInitialData(builder); + AnimationInitialData.addIndex(builder, index); + AnimationInitialData.addLowflag(builder, lowflag); + AnimationInitialData.addHighflag(builder, highflag); + AnimationInitialData.addPriority(builder, priority); + AnimationInitialData.addCellIndex(builder, cellIndex); + AnimationInitialData.addOpacity(builder, opacity); + AnimationInitialData.addLocalopacity(builder, localopacity); + AnimationInitialData.addMasklimen(builder, masklimen); + AnimationInitialData.addPositionX(builder, positionX); + AnimationInitialData.addPositionY(builder, positionY); + AnimationInitialData.addPositionZ(builder, positionZ); + AnimationInitialData.addPivotX(builder, pivotX); + AnimationInitialData.addPivotY(builder, pivotY); + AnimationInitialData.addRotationX(builder, rotationX); + AnimationInitialData.addRotationY(builder, rotationY); + AnimationInitialData.addRotationZ(builder, rotationZ); + AnimationInitialData.addScaleX(builder, scaleX); + AnimationInitialData.addScaleY(builder, scaleY); + AnimationInitialData.addLocalscaleX(builder, localscaleX); + AnimationInitialData.addLocalscaleY(builder, localscaleY); + AnimationInitialData.addSizeX(builder, sizeX); + AnimationInitialData.addSizeY(builder, sizeY); + AnimationInitialData.addUvMoveX(builder, uvMoveX); + AnimationInitialData.addUvMoveY(builder, uvMoveY); + AnimationInitialData.addUvRotation(builder, uvRotation); + AnimationInitialData.addUvScaleX(builder, uvScaleX); + AnimationInitialData.addUvScaleY(builder, uvScaleY); + AnimationInitialData.addBoundingRadius(builder, boundingRadius); + AnimationInitialData.addInstanceValueCurKeyframe(builder, instanceValueCurKeyframe); + AnimationInitialData.addInstanceValueStartFrame(builder, instanceValueStartFrame); + AnimationInitialData.addInstanceValueEndFrame(builder, instanceValueEndFrame); + AnimationInitialData.addInstanceValueLoopNum(builder, instanceValueLoopNum); + AnimationInitialData.addInstanceValueSpeed(builder, instanceValueSpeed); + AnimationInitialData.addInstanceValueLoopflag(builder, instanceValueLoopflag); + AnimationInitialData.addEffectValueCurKeyframe(builder, effectValueCurKeyframe); + AnimationInitialData.addEffectValueStartTime(builder, effectValueStartTime); + AnimationInitialData.addEffectValueSpeed(builder, effectValueSpeed); + AnimationInitialData.addEffectValueLoopflag(builder, effectValueLoopflag); + return AnimationInitialData.endAnimationInitialData(builder); + } + }; + var partState = class partState { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAspartState(bb, obj) { + return (obj || new partState()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAspartState(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new partState()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + index() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + flag1() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + flag2() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + data(index) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readUint32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + dataLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + dataArray() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + static startpartState(builder) { + builder.startObject(4); + } + static addIndex(builder, index) { + builder.addFieldInt16(0, index, 0); + } + static addFlag1(builder, flag1) { + builder.addFieldInt32(1, flag1, 0); + } + static addFlag2(builder, flag2) { + builder.addFieldInt32(2, flag2, 0); + } + static addData(builder, dataOffset) { + builder.addFieldOffset(3, dataOffset, 0); + } + static createDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addInt32(data[i]); + return builder.endVector(); + } + static startDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endpartState(builder) { + return builder.endObject(); + } + static createpartState(builder, index, flag1, flag2, dataOffset) { + partState.startpartState(builder); + partState.addIndex(builder, index); + partState.addFlag1(builder, flag1); + partState.addFlag2(builder, flag2); + partState.addData(builder, dataOffset); + return partState.endpartState(builder); + } + }; + var frameDataIndex = class frameDataIndex { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsframeDataIndex(bb, obj) { + return (obj || new frameDataIndex()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsframeDataIndex(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new frameDataIndex()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + states(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? (obj || new partState()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + statesLength() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startframeDataIndex(builder) { + builder.startObject(1); + } + static addStates(builder, statesOffset) { + builder.addFieldOffset(0, statesOffset, 0); + } + static createStatesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startStatesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endframeDataIndex(builder) { + return builder.endObject(); + } + static createframeDataIndex(builder, statesOffset) { + frameDataIndex.startframeDataIndex(builder); + frameDataIndex.addStates(builder, statesOffset); + return frameDataIndex.endframeDataIndex(builder); + } + }; + var labelDataItem = class labelDataItem { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAslabelDataItem(bb, obj) { + return (obj || new labelDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAslabelDataItem(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new labelDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + label(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + frameIndex() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + static startlabelDataItem(builder) { + builder.startObject(2); + } + static addLabel(builder, labelOffset) { + builder.addFieldOffset(0, labelOffset, 0); + } + static addFrameIndex(builder, frameIndex) { + builder.addFieldInt16(1, frameIndex, 0); + } + static endlabelDataItem(builder) { + return builder.endObject(); + } + static createlabelDataItem(builder, labelOffset, frameIndex) { + labelDataItem.startlabelDataItem(builder); + labelDataItem.addLabel(builder, labelOffset); + labelDataItem.addFrameIndex(builder, frameIndex); + return labelDataItem.endlabelDataItem(builder); + } + }; + var meshDataIndices = class meshDataIndices { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsmeshDataIndices(bb, obj) { + return (obj || new meshDataIndices()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsmeshDataIndices(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new meshDataIndices()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + indices(index) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + indicesLength() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + indicesArray() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + static startmeshDataIndices(builder) { + builder.startObject(1); + } + static addIndices(builder, indicesOffset) { + builder.addFieldOffset(0, indicesOffset, 0); + } + static createIndicesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addFloat32(data[i]); + return builder.endVector(); + } + static startIndicesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endmeshDataIndices(builder) { + return builder.endObject(); + } + static createmeshDataIndices(builder, indicesOffset) { + meshDataIndices.startmeshDataIndices(builder); + meshDataIndices.addIndices(builder, indicesOffset); + return meshDataIndices.endmeshDataIndices(builder); + } + }; + var meshDataUV = class meshDataUV { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsmeshDataUV(bb, obj) { + return (obj || new meshDataUV()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsmeshDataUV(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new meshDataUV()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + uv(index) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + uvLength() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + uvArray() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + static startmeshDataUV(builder) { + builder.startObject(1); + } + static addUv(builder, uvOffset) { + builder.addFieldOffset(0, uvOffset, 0); + } + static createUvVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addFloat32(data[i]); + return builder.endVector(); + } + static startUvVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endmeshDataUV(builder) { + return builder.endObject(); + } + static createmeshDataUV(builder, uvOffset) { + meshDataUV.startmeshDataUV(builder); + meshDataUV.addUv(builder, uvOffset); + return meshDataUV.endmeshDataUV(builder); + } + }; + var userDataItem = class userDataItem { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsuserDataItem(bb, obj) { + return (obj || new userDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsuserDataItem(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new userDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + flags() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + arrayIndex() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + dataType(index) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; + } + dataTypeLength() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + dataTypeArray() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + data(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__union(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; + } + dataLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startuserDataItem(builder) { + builder.startObject(4); + } + static addFlags(builder, flags) { + builder.addFieldInt16(0, flags, 0); + } + static addArrayIndex(builder, arrayIndex) { + builder.addFieldInt16(1, arrayIndex, 0); + } + static addDataType(builder, dataTypeOffset) { + builder.addFieldOffset(2, dataTypeOffset, 0); + } + static createDataTypeVector(builder, data) { + builder.startVector(1, data.length, 1); + for (let i = data.length - 1; i >= 0; i--) builder.addInt8(data[i]); + return builder.endVector(); + } + static startDataTypeVector(builder, numElems) { + builder.startVector(1, numElems, 1); + } + static addData(builder, dataOffset) { + builder.addFieldOffset(3, dataOffset, 0); + } + static createDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static enduserDataItem(builder) { + return builder.endObject(); + } + static createuserDataItem(builder, flags, arrayIndex, dataTypeOffset, dataOffset) { + userDataItem.startuserDataItem(builder); + userDataItem.addFlags(builder, flags); + userDataItem.addArrayIndex(builder, arrayIndex); + userDataItem.addDataType(builder, dataTypeOffset); + userDataItem.addData(builder, dataOffset); + return userDataItem.enduserDataItem(builder); + } + }; + var userDataPerFrame = class userDataPerFrame { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsuserDataPerFrame(bb, obj) { + return (obj || new userDataPerFrame()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsuserDataPerFrame(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new userDataPerFrame()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + frameIndex() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + data(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new userDataItem()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + dataLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startuserDataPerFrame(builder) { + builder.startObject(2); + } + static addFrameIndex(builder, frameIndex) { + builder.addFieldInt16(0, frameIndex, 0); + } + static addData(builder, dataOffset) { + builder.addFieldOffset(1, dataOffset, 0); + } + static createDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static enduserDataPerFrame(builder) { + return builder.endObject(); + } + static createuserDataPerFrame(builder, frameIndex, dataOffset) { + userDataPerFrame.startuserDataPerFrame(builder); + userDataPerFrame.addFrameIndex(builder, frameIndex); + userDataPerFrame.addData(builder, dataOffset); + return userDataPerFrame.enduserDataPerFrame(builder); + } + }; + var AnimationData = class AnimationData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsAnimationData(bb, obj) { + return (obj || new AnimationData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsAnimationData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new AnimationData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + defaultData(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new AnimationInitialData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + defaultDataLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + frameData(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? (obj || new frameDataIndex()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + frameDataLength() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + userData(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? (obj || new userDataPerFrame()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + userDataLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + labelData(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? (obj || new labelDataItem()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + labelDataLength() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + meshsDataUv(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? (obj || new meshDataUV()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + meshsDataUvLength() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + meshsDataIndices(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? (obj || new meshDataIndices()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + meshsDataIndicesLength() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + startFrames() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + endFrames() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + totalFrames() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + fps() { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + labelNum() { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + canvasSizeW() { + const offset = this.bb.__offset(this.bb_pos, 28); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + canvasSizeH() { + const offset = this.bb.__offset(this.bb_pos, 30); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + canvasPvotX() { + const offset = this.bb.__offset(this.bb_pos, 32); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + canvasPvotY() { + const offset = this.bb.__offset(this.bb_pos, 34); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + static startAnimationData(builder) { + builder.startObject(16); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addDefaultData(builder, defaultDataOffset) { + builder.addFieldOffset(1, defaultDataOffset, 0); + } + static createDefaultDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startDefaultDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addFrameData(builder, frameDataOffset) { + builder.addFieldOffset(2, frameDataOffset, 0); + } + static createFrameDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startFrameDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addUserData(builder, userDataOffset) { + builder.addFieldOffset(3, userDataOffset, 0); + } + static createUserDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startUserDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addLabelData(builder, labelDataOffset) { + builder.addFieldOffset(4, labelDataOffset, 0); + } + static createLabelDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startLabelDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addMeshsDataUv(builder, meshsDataUvOffset) { + builder.addFieldOffset(5, meshsDataUvOffset, 0); + } + static createMeshsDataUvVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startMeshsDataUvVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addMeshsDataIndices(builder, meshsDataIndicesOffset) { + builder.addFieldOffset(6, meshsDataIndicesOffset, 0); + } + static createMeshsDataIndicesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startMeshsDataIndicesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addStartFrames(builder, startFrames) { + builder.addFieldInt16(7, startFrames, 0); + } + static addEndFrames(builder, endFrames) { + builder.addFieldInt16(8, endFrames, 0); + } + static addTotalFrames(builder, totalFrames) { + builder.addFieldInt16(9, totalFrames, 0); + } + static addFps(builder, fps) { + builder.addFieldInt16(10, fps, 0); + } + static addLabelNum(builder, labelNum) { + builder.addFieldInt16(11, labelNum, 0); + } + static addCanvasSizeW(builder, canvasSizeW) { + builder.addFieldInt16(12, canvasSizeW, 0); + } + static addCanvasSizeH(builder, canvasSizeH) { + builder.addFieldInt16(13, canvasSizeH, 0); + } + static addCanvasPvotX(builder, canvasPvotX) { + builder.addFieldFloat32(14, canvasPvotX, 0); + } + static addCanvasPvotY(builder, canvasPvotY) { + builder.addFieldFloat32(15, canvasPvotY, 0); + } + static endAnimationData(builder) { + return builder.endObject(); + } + static createAnimationData(builder, nameOffset, defaultDataOffset, frameDataOffset, userDataOffset, labelDataOffset, meshsDataUvOffset, meshsDataIndicesOffset, startFrames, endFrames, totalFrames, fps, labelNum, canvasSizeW, canvasSizeH, canvasPvotX, canvasPvotY) { + AnimationData.startAnimationData(builder); + AnimationData.addName(builder, nameOffset); + AnimationData.addDefaultData(builder, defaultDataOffset); + AnimationData.addFrameData(builder, frameDataOffset); + AnimationData.addUserData(builder, userDataOffset); + AnimationData.addLabelData(builder, labelDataOffset); + AnimationData.addMeshsDataUv(builder, meshsDataUvOffset); + AnimationData.addMeshsDataIndices(builder, meshsDataIndicesOffset); + AnimationData.addStartFrames(builder, startFrames); + AnimationData.addEndFrames(builder, endFrames); + AnimationData.addTotalFrames(builder, totalFrames); + AnimationData.addFps(builder, fps); + AnimationData.addLabelNum(builder, labelNum); + AnimationData.addCanvasSizeW(builder, canvasSizeW); + AnimationData.addCanvasSizeH(builder, canvasSizeH); + AnimationData.addCanvasPvotX(builder, canvasPvotX); + AnimationData.addCanvasPvotY(builder, canvasPvotY); + return AnimationData.endAnimationData(builder); + } + }; + let SsPartType = /* @__PURE__ */ function(SsPartType) { + SsPartType[SsPartType["Invalid"] = -1] = "Invalid"; + SsPartType[SsPartType["Nulltype"] = 0] = "Nulltype"; + SsPartType[SsPartType["Normal"] = 1] = "Normal"; + SsPartType[SsPartType["Text"] = 2] = "Text"; + SsPartType[SsPartType["Instance"] = 3] = "Instance"; + SsPartType[SsPartType["Armature"] = 4] = "Armature"; + SsPartType[SsPartType["Effect"] = 5] = "Effect"; + SsPartType[SsPartType["Mesh"] = 6] = "Mesh"; + SsPartType[SsPartType["Movenode"] = 7] = "Movenode"; + SsPartType[SsPartType["Constraint"] = 8] = "Constraint"; + SsPartType[SsPartType["Mask"] = 9] = "Mask"; + SsPartType[SsPartType["Joint"] = 10] = "Joint"; + SsPartType[SsPartType["Bonepoint"] = 11] = "Bonepoint"; + return SsPartType; + }({}); + var PartData = class PartData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsPartData(bb, obj) { + return (obj || new PartData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsPartData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new PartData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + index() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + parentIndex() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + type() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt8(this.bb_pos + offset) : SsPartType.Nulltype; + } + boundsType() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + alphaBlendType() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + refname(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + effectfilename(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + colorLabel(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + maskInfluence() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + static startPartData(builder) { + builder.startObject(10); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addIndex(builder, index) { + builder.addFieldInt16(1, index, 0); + } + static addParentIndex(builder, parentIndex) { + builder.addFieldInt16(2, parentIndex, 0); + } + static addType(builder, type) { + builder.addFieldInt8(3, type, SsPartType.Nulltype); + } + static addBoundsType(builder, boundsType) { + builder.addFieldInt16(4, boundsType, 0); + } + static addAlphaBlendType(builder, alphaBlendType) { + builder.addFieldInt16(5, alphaBlendType, 0); + } + static addRefname(builder, refnameOffset) { + builder.addFieldOffset(6, refnameOffset, 0); + } + static addEffectfilename(builder, effectfilenameOffset) { + builder.addFieldOffset(7, effectfilenameOffset, 0); + } + static addColorLabel(builder, colorLabelOffset) { + builder.addFieldOffset(8, colorLabelOffset, 0); + } + static addMaskInfluence(builder, maskInfluence) { + builder.addFieldInt16(9, maskInfluence, 0); + } + static endPartData(builder) { + return builder.endObject(); + } + static createPartData(builder, nameOffset, index, parentIndex, type, boundsType, alphaBlendType, refnameOffset, effectfilenameOffset, colorLabelOffset, maskInfluence) { + PartData.startPartData(builder); + PartData.addName(builder, nameOffset); + PartData.addIndex(builder, index); + PartData.addParentIndex(builder, parentIndex); + PartData.addType(builder, type); + PartData.addBoundsType(builder, boundsType); + PartData.addAlphaBlendType(builder, alphaBlendType); + PartData.addRefname(builder, refnameOffset); + PartData.addEffectfilename(builder, effectfilenameOffset); + PartData.addColorLabel(builder, colorLabelOffset); + PartData.addMaskInfluence(builder, maskInfluence); + return PartData.endPartData(builder); + } + }; + var AnimePackData = class AnimePackData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsAnimePackData(bb, obj) { + return (obj || new AnimePackData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsAnimePackData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new AnimePackData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + parts(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new PartData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + partsLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + animations(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? (obj || new AnimationData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + animationsLength() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startAnimePackData(builder) { + builder.startObject(3); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addParts(builder, partsOffset) { + builder.addFieldOffset(1, partsOffset, 0); + } + static createPartsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startPartsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addAnimations(builder, animationsOffset) { + builder.addFieldOffset(2, animationsOffset, 0); + } + static createAnimationsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startAnimationsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endAnimePackData(builder) { + return builder.endObject(); + } + static createAnimePackData(builder, nameOffset, partsOffset, animationsOffset) { + AnimePackData.startAnimePackData(builder); + AnimePackData.addName(builder, nameOffset); + AnimePackData.addParts(builder, partsOffset); + AnimePackData.addAnimations(builder, animationsOffset); + return AnimePackData.endAnimePackData(builder); + } + }; + var CellMap = class CellMap { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsCellMap(bb, obj) { + return (obj || new CellMap()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsCellMap(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new CellMap()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + imagePath(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + index() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + wrapmode() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + filtermode() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + static startCellMap(builder) { + builder.startObject(5); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addImagePath(builder, imagePathOffset) { + builder.addFieldOffset(1, imagePathOffset, 0); + } + static addIndex(builder, index) { + builder.addFieldInt16(2, index, 0); + } + static addWrapmode(builder, wrapmode) { + builder.addFieldInt16(3, wrapmode, 0); + } + static addFiltermode(builder, filtermode) { + builder.addFieldInt16(4, filtermode, 0); + } + static endCellMap(builder) { + return builder.endObject(); + } + static createCellMap(builder, nameOffset, imagePathOffset, index, wrapmode, filtermode) { + CellMap.startCellMap(builder); + CellMap.addName(builder, nameOffset); + CellMap.addImagePath(builder, imagePathOffset); + CellMap.addIndex(builder, index); + CellMap.addWrapmode(builder, wrapmode); + CellMap.addFiltermode(builder, filtermode); + return CellMap.endCellMap(builder); + } + }; + var Cell = class Cell { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsCell(bb, obj) { + return (obj || new Cell()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsCell(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new Cell()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + cellMap(obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new CellMap()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + indexInCellMap() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + x() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + y() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + width() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + height() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + pivotX() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + pivotY() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + u1() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + v1() { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + u2() { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + v2() { + const offset = this.bb.__offset(this.bb_pos, 28); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + static startCell(builder) { + builder.startObject(13); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addCellMap(builder, cellMapOffset) { + builder.addFieldOffset(1, cellMapOffset, 0); + } + static addIndexInCellMap(builder, indexInCellMap) { + builder.addFieldInt16(2, indexInCellMap, 0); + } + static addX(builder, x) { + builder.addFieldInt16(3, x, 0); + } + static addY(builder, y) { + builder.addFieldInt16(4, y, 0); + } + static addWidth(builder, width) { + builder.addFieldInt16(5, width, 0); + } + static addHeight(builder, height) { + builder.addFieldInt16(6, height, 0); + } + static addPivotX(builder, pivotX) { + builder.addFieldFloat32(7, pivotX, 0); + } + static addPivotY(builder, pivotY) { + builder.addFieldFloat32(8, pivotY, 0); + } + static addU1(builder, u1) { + builder.addFieldFloat32(9, u1, 0); + } + static addV1(builder, v1) { + builder.addFieldFloat32(10, v1, 0); + } + static addU2(builder, u2) { + builder.addFieldFloat32(11, u2, 0); + } + static addV2(builder, v2) { + builder.addFieldFloat32(12, v2, 0); + } + static endCell(builder) { + return builder.endObject(); + } + }; + var EffectNode = class EffectNode { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsEffectNode(bb, obj) { + return (obj || new EffectNode()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsEffectNode(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new EffectNode()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + arrayIndex() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + parentIndex() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + type() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + cellIndex() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + blendType() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + numBehavior() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + behaviorType(index) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; + } + behaviorTypeLength() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + behaviorTypeArray() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + behavior(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__union(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; + } + behaviorLength() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startEffectNode(builder) { + builder.startObject(8); + } + static addArrayIndex(builder, arrayIndex) { + builder.addFieldInt16(0, arrayIndex, 0); + } + static addParentIndex(builder, parentIndex) { + builder.addFieldInt16(1, parentIndex, 0); + } + static addType(builder, type) { + builder.addFieldInt16(2, type, 0); + } + static addCellIndex(builder, cellIndex) { + builder.addFieldInt16(3, cellIndex, 0); + } + static addBlendType(builder, blendType) { + builder.addFieldInt16(4, blendType, 0); + } + static addNumBehavior(builder, numBehavior) { + builder.addFieldInt16(5, numBehavior, 0); + } + static addBehaviorType(builder, behaviorTypeOffset) { + builder.addFieldOffset(6, behaviorTypeOffset, 0); + } + static createBehaviorTypeVector(builder, data) { + builder.startVector(1, data.length, 1); + for (let i = data.length - 1; i >= 0; i--) builder.addInt8(data[i]); + return builder.endVector(); + } + static startBehaviorTypeVector(builder, numElems) { + builder.startVector(1, numElems, 1); + } + static addBehavior(builder, behaviorOffset) { + builder.addFieldOffset(7, behaviorOffset, 0); + } + static createBehaviorVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startBehaviorVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endEffectNode(builder) { + return builder.endObject(); + } + static createEffectNode(builder, arrayIndex, parentIndex, type, cellIndex, blendType, numBehavior, behaviorTypeOffset, behaviorOffset) { + EffectNode.startEffectNode(builder); + EffectNode.addArrayIndex(builder, arrayIndex); + EffectNode.addParentIndex(builder, parentIndex); + EffectNode.addType(builder, type); + EffectNode.addCellIndex(builder, cellIndex); + EffectNode.addBlendType(builder, blendType); + EffectNode.addNumBehavior(builder, numBehavior); + EffectNode.addBehaviorType(builder, behaviorTypeOffset); + EffectNode.addBehavior(builder, behaviorOffset); + return EffectNode.endEffectNode(builder); + } + }; + var EffectFile = class EffectFile { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsEffectFile(bb, obj) { + return (obj || new EffectFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsEffectFile(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new EffectFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + fps() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + isLockRandSeed() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + lockRandSeed() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + layoutScaleX() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + layoutScaleY() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + numNodeList() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + effectNode(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? (obj || new EffectNode()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + effectNodeLength() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startEffectFile(builder) { + builder.startObject(8); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addFps(builder, fps) { + builder.addFieldInt16(1, fps, 0); + } + static addIsLockRandSeed(builder, isLockRandSeed) { + builder.addFieldInt16(2, isLockRandSeed, 0); + } + static addLockRandSeed(builder, lockRandSeed) { + builder.addFieldInt16(3, lockRandSeed, 0); + } + static addLayoutScaleX(builder, layoutScaleX) { + builder.addFieldInt16(4, layoutScaleX, 0); + } + static addLayoutScaleY(builder, layoutScaleY) { + builder.addFieldInt16(5, layoutScaleY, 0); + } + static addNumNodeList(builder, numNodeList) { + builder.addFieldInt16(6, numNodeList, 0); + } + static addEffectNode(builder, effectNodeOffset) { + builder.addFieldOffset(7, effectNodeOffset, 0); + } + static createEffectNodeVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startEffectNodeVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endEffectFile(builder) { + return builder.endObject(); + } + static createEffectFile(builder, nameOffset, fps, isLockRandSeed, lockRandSeed, layoutScaleX, layoutScaleY, numNodeList, effectNodeOffset) { + EffectFile.startEffectFile(builder); + EffectFile.addName(builder, nameOffset); + EffectFile.addFps(builder, fps); + EffectFile.addIsLockRandSeed(builder, isLockRandSeed); + EffectFile.addLockRandSeed(builder, lockRandSeed); + EffectFile.addLayoutScaleX(builder, layoutScaleX); + EffectFile.addLayoutScaleY(builder, layoutScaleY); + EffectFile.addNumNodeList(builder, numNodeList); + EffectFile.addEffectNode(builder, effectNodeOffset); + return EffectFile.endEffectFile(builder); + } + }; + let PART_FLAG = /* @__PURE__ */ function(PART_FLAG) { + PART_FLAG[PART_FLAG["INVISIBLE"] = 1] = "INVISIBLE"; + PART_FLAG[PART_FLAG["FLIP_H"] = 2] = "FLIP_H"; + PART_FLAG[PART_FLAG["FLIP_V"] = 4] = "FLIP_V"; + PART_FLAG[PART_FLAG["CELL_INDEX"] = 8] = "CELL_INDEX"; + PART_FLAG[PART_FLAG["POSITION_X"] = 16] = "POSITION_X"; + PART_FLAG[PART_FLAG["POSITION_Y"] = 32] = "POSITION_Y"; + PART_FLAG[PART_FLAG["POSITION_Z"] = 64] = "POSITION_Z"; + PART_FLAG[PART_FLAG["PIVOT_X"] = 128] = "PIVOT_X"; + PART_FLAG[PART_FLAG["PIVOT_Y"] = 256] = "PIVOT_Y"; + PART_FLAG[PART_FLAG["ROTATIONX"] = 512] = "ROTATIONX"; + PART_FLAG[PART_FLAG["ROTATIONY"] = 1024] = "ROTATIONY"; + PART_FLAG[PART_FLAG["ROTATIONZ"] = 2048] = "ROTATIONZ"; + PART_FLAG[PART_FLAG["SCALE_X"] = 4096] = "SCALE_X"; + PART_FLAG[PART_FLAG["SCALE_Y"] = 8192] = "SCALE_Y"; + PART_FLAG[PART_FLAG["LOCALSCALE_X"] = 16384] = "LOCALSCALE_X"; + PART_FLAG[PART_FLAG["LOCALSCALE_Y"] = 32768] = "LOCALSCALE_Y"; + PART_FLAG[PART_FLAG["OPACITY"] = 65536] = "OPACITY"; + PART_FLAG[PART_FLAG["LOCALOPACITY"] = 131072] = "LOCALOPACITY"; + PART_FLAG[PART_FLAG["PARTS_COLOR"] = 262144] = "PARTS_COLOR"; + PART_FLAG[PART_FLAG["VERTEX_TRANSFORM"] = 524288] = "VERTEX_TRANSFORM"; + PART_FLAG[PART_FLAG["SIZE_X"] = 1048576] = "SIZE_X"; + PART_FLAG[PART_FLAG["SIZE_Y"] = 2097152] = "SIZE_Y"; + PART_FLAG[PART_FLAG["U_MOVE"] = 4194304] = "U_MOVE"; + PART_FLAG[PART_FLAG["V_MOVE"] = 8388608] = "V_MOVE"; + PART_FLAG[PART_FLAG["UV_ROTATION"] = 16777216] = "UV_ROTATION"; + PART_FLAG[PART_FLAG["U_SCALE"] = 33554432] = "U_SCALE"; + PART_FLAG[PART_FLAG["V_SCALE"] = 67108864] = "V_SCALE"; + PART_FLAG[PART_FLAG["BOUNDINGRADIUS"] = 134217728] = "BOUNDINGRADIUS"; + PART_FLAG[PART_FLAG["MASK"] = 268435456] = "MASK"; + PART_FLAG[PART_FLAG["PRIORITY"] = 536870912] = "PRIORITY"; + PART_FLAG[PART_FLAG["INSTANCE_KEYFRAME"] = 1073741824] = "INSTANCE_KEYFRAME"; + PART_FLAG[PART_FLAG["EFFECT_KEYFRAME"] = 2147483648] = "EFFECT_KEYFRAME"; + return PART_FLAG; + }({}); + let PART_FLAG2 = /* @__PURE__ */ function(PART_FLAG2) { + PART_FLAG2[PART_FLAG2["MESHDATA"] = 1] = "MESHDATA"; + return PART_FLAG2; + }({}); + var ProjectData = class ProjectData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsProjectData(bb, obj) { + return (obj || new ProjectData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsProjectData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new ProjectData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static bufferHasIdentifier(bb) { + return bb.__has_identifier("SSFB"); + } + dataId() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + version() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + flags() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + imageBaseDir(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + cells(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? (obj || new Cell()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + cellsLength() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + animePacks(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? (obj || new AnimePackData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + animePacksLength() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + effectFileList(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? (obj || new EffectFile()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + effectFileListLength() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + numCells() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + numAnimePacks() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + numEffectFileList() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + static startProjectData(builder) { + builder.startObject(10); + } + static addDataId(builder, dataId) { + builder.addFieldInt32(0, dataId, 0); + } + static addVersion(builder, version) { + builder.addFieldInt32(1, version, 0); + } + static addFlags(builder, flags) { + builder.addFieldInt32(2, flags, 0); + } + static addImageBaseDir(builder, imageBaseDirOffset) { + builder.addFieldOffset(3, imageBaseDirOffset, 0); + } + static addCells(builder, cellsOffset) { + builder.addFieldOffset(4, cellsOffset, 0); + } + static createCellsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startCellsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addAnimePacks(builder, animePacksOffset) { + builder.addFieldOffset(5, animePacksOffset, 0); + } + static createAnimePacksVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startAnimePacksVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addEffectFileList(builder, effectFileListOffset) { + builder.addFieldOffset(6, effectFileListOffset, 0); + } + static createEffectFileListVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startEffectFileListVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addNumCells(builder, numCells) { + builder.addFieldInt16(7, numCells, 0); + } + static addNumAnimePacks(builder, numAnimePacks) { + builder.addFieldInt16(8, numAnimePacks, 0); + } + static addNumEffectFileList(builder, numEffectFileList) { + builder.addFieldInt16(9, numEffectFileList, 0); + } + static endProjectData(builder) { + return builder.endObject(); + } + static finishProjectDataBuffer(builder, offset) { + builder.finish(offset, "SSFB"); + } + static finishSizePrefixedProjectDataBuffer(builder, offset) { + builder.finish(offset, "SSFB", true); + } + static createProjectData(builder, dataId, version, flags, imageBaseDirOffset, cellsOffset, animePacksOffset, effectFileListOffset, numCells, numAnimePacks, numEffectFileList) { + ProjectData.startProjectData(builder); + ProjectData.addDataId(builder, dataId); + ProjectData.addVersion(builder, version); + ProjectData.addFlags(builder, flags); + ProjectData.addImageBaseDir(builder, imageBaseDirOffset); + ProjectData.addCells(builder, cellsOffset); + ProjectData.addAnimePacks(builder, animePacksOffset); + ProjectData.addEffectFileList(builder, effectFileListOffset); + ProjectData.addNumCells(builder, numCells); + ProjectData.addNumAnimePacks(builder, numAnimePacks); + ProjectData.addNumEffectFileList(builder, numEffectFileList); + return ProjectData.endProjectData(builder); + } + }; + var userDataInteger = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + integer() { + return this.bb.readInt32(this.bb_pos); + } + static sizeOf() { + return 4; + } + static createuserDataInteger(builder, integer) { + builder.prep(4, 4); + builder.writeInt32(integer); + return builder.offset(); + } + }; + var userDataPoint = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + x() { + return this.bb.readInt32(this.bb_pos); + } + y() { + return this.bb.readInt32(this.bb_pos + 4); + } + static sizeOf() { + return 8; + } + static createuserDataPoint(builder, x, y) { + builder.prep(4, 8); + builder.writeInt32(y); + builder.writeInt32(x); + return builder.offset(); + } + }; + var userDataRect = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + x() { + return this.bb.readInt32(this.bb_pos); + } + y() { + return this.bb.readInt32(this.bb_pos + 4); + } + w() { + return this.bb.readInt32(this.bb_pos + 8); + } + h() { + return this.bb.readInt32(this.bb_pos + 12); + } + static sizeOf() { + return 16; + } + static createuserDataRect(builder, x, y, w, h) { + builder.prep(4, 16); + builder.writeInt32(h); + builder.writeInt32(w); + builder.writeInt32(y); + builder.writeInt32(x); + return builder.offset(); + } + }; + var userDataString = class userDataString { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsuserDataString(bb, obj) { + return (obj || new userDataString()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsuserDataString(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new userDataString()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + length() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + data(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + static startuserDataString(builder) { + builder.startObject(2); + } + static addLength(builder, length) { + builder.addFieldInt32(0, length, 0); + } + static addData(builder, dataOffset) { + builder.addFieldOffset(1, dataOffset, 0); + } + static enduserDataString(builder) { + return builder.endObject(); + } + static createuserDataString(builder, length, dataOffset) { + userDataString.startuserDataString(builder); + userDataString.addLength(builder, length); + userDataString.addData(builder, dataOffset); + return userDataString.enduserDataString(builder); + } + }; + var Utils$1 = class { + static getProjectData(bytes) { + const buf = new ByteBuffer(bytes); + return ProjectData.getRootAsProjectData(buf); + } + }; + var Utils = class { + static getProjectData(bytes) { + return Utils$1.getProjectData(bytes); + } + }; + var Player = class { + get fbObj() { + return this._fbObj; + } + get animePackName() { + return this.curAnimePackName; + } + get animeName() { + return this.curAnimeName; + } + get animePackIdx() { + return this._animePackIdx; + } + get animePackData() { + return this.curAnimePackData; + } + get animationData() { + return this.curAnimation; + } + get parentIndex() { + return this._parentIndex; + } + get prio2index() { + return this._prio2index; + } + constructor(ssfbData, animePackName = null, animeName = null) { + this.curAnimePackName = null; + this.curAnimeName = null; + this.curAnimation = null; + this.curAnimePackData = null; + this._animePackIdx = -1; + this._parentIndex = []; + this._prio2index = []; + this.userData = []; + this.frameDataCache = null; + this.currentCachedFrameNumber = -1; + this.defaultFrameMap = []; + this._uint32 = new Uint32Array(1); + this._float32 = new Float32Array(this._uint32.buffer); + if (Object.prototype.hasOwnProperty.call(ssfbData, "bb")) this._fbObj = ssfbData; + else this._fbObj = Utils.getProjectData(ssfbData); + if (animePackName !== null && animeName !== null) this.Setup(animePackName, animeName); + } + /** + * Setup + * @param {string} animePackName - The name of animePack(SSAE). + * @param {string} animeName - The name of animation. + */ + Setup(animePackName, animeName) { + this.clearCaches(); + const animePacksLength = this._fbObj.animePacksLength(); + let found = false; + for (let i = 0; i < animePacksLength; i++) if (this._fbObj.animePacks(i).name() === animePackName) { + let j; + const animationsLength = this._fbObj.animePacks(i).animationsLength(); + for (j = 0; j < animationsLength; j++) if (this._fbObj.animePacks(i).animations(j).name() === animeName) { + this.curAnimePackName = animePackName; + this.curAnimeName = animeName; + this.curAnimePackData = this._fbObj.animePacks(i); + this.curAnimation = this.curAnimePackData.animations(j); + found = true; + break; + } + if (!found) continue; + const defaultDataLength = this.curAnimation.defaultDataLength(); + for (let j = 0; j < defaultDataLength; j++) { + const curDefaultData = this.curAnimation.defaultData(j); + this.defaultFrameMap[curDefaultData.index()] = curDefaultData; + } + this._animePackIdx = i; + const partsLength = this.curAnimePackData.partsLength(); + this._parentIndex = new Array(partsLength); + for (j = 0; j < partsLength; j++) { + const index = this.curAnimePackData.parts(j).index(); + this._parentIndex[index] = this._fbObj.animePacks(i).parts(j).parentIndex(); + } + } + if (!found) throw Error("not found animePackName: " + animePackName + " animeName: " + animeName); + } + clearCaches() { + this._prio2index = []; + this.userData = []; + this.frameDataCache = null; + this.currentCachedFrameNumber = -1; + this.defaultFrameMap = []; + } + /** + * ユーザーデータコールバックの設定 + * @param fn + * @constructor + * + * ユーザーデータのフォーマット + * data = [[d0,d1,...,d10],[da0,da1,...,da10],...]) + * data.length : 当該フレームでユーザーデータの存在するパーツ(レイヤー)数 + * d0 : パーツ(レイヤー)番号 + * d1 : 有効データビット(&1:int, &2:rect(int*4), &4:pos(int*2), &8:string) + * d2 : int(int) + * d3 : rect0(int) + * d4 : rect1(int) + * d5 : rect2(int) + * d6 : rect3(int) + * d7 : pos0(int) + * d8 : pos1(int) + * d9 : string.length(int) + * d10: string(string) + * + */ + /** + * ユーザーデータの存在チェック + * @param {number} frameNumber - フレーム番号 + * @return {boolean} - 存在するかどうか + */ + HaveUserData(frameNumber) { + if (this.userData[frameNumber] === null) return false; + if (this.userData[frameNumber] !== void 0) return true; + for (let k = 0; k < this.curAnimation.userDataLength(); k++) if (frameNumber === this.curAnimation.userData(k).frameIndex()) { + this.userData[frameNumber] = this.curAnimation.userData(k); + return true; + } + this.userData[frameNumber] = null; + return false; + } + /** + * ユーザーデータの取得 + * @param {number} frameNumber - フレーム番号 + * @return {array} - ユーザーデータ + */ + GetUserData(frameNumber) { + if (this.HaveUserData(frameNumber) === false) return; + const framedata = this.userData[frameNumber]; + const layers = framedata.dataLength(); + let id = 0; + let data = []; + for (let i = 0; i < layers; i++) { + const bit = framedata.data(i).flags(); + const partsID = framedata.data(i).arrayIndex(); + let d_int = null; + let d_rect_x = null; + let d_rect_y = null; + let d_rect_w = null; + let d_rect_h = null; + let d_pos_x = null; + let d_pos_y = null; + let d_string_length = null; + let d_string = null; + if (bit & 1) { + d_int = framedata.data(i).data(id, new userDataInteger()).integer(); + id++; + } + if (bit & 2) { + d_rect_x = framedata.data(i).data(id, new userDataRect()).x(); + d_rect_y = framedata.data(i).data(id, new userDataRect()).y(); + d_rect_w = framedata.data(i).data(id, new userDataRect()).w(); + d_rect_h = framedata.data(i).data(id, new userDataRect()).h(); + id++; + } + if (bit & 4) { + d_pos_x = framedata.data(i).data(id, new userDataPoint()).x(); + d_pos_y = framedata.data(i).data(id, new userDataPoint()).y(); + id++; + } + if (bit & 8) { + d_string_length = framedata.data(i).data(id, new userDataString()).length(); + d_string = framedata.data(i).data(id, new userDataString()).data(); + id++; + } + data.push([ + partsID, + bit, + d_int, + d_rect_x, + d_rect_y, + d_rect_w, + d_rect_h, + d_pos_x, + d_pos_y, + d_string_length, + d_string + ]); + } + return data; + } + /** + * int型からfloat型に変換する + * @return {floatView[0]} - float型に変換したデータ + */ + I2F(i) { + this._uint32[0] = i; + return this._float32[0]; + } + /** + * 1フレーム分のデータを取得する(未設定項目はデフォルト) + * [注意]現verでは未対応項目があると正常動作しない可能性があります + * @param {number} frameNumber - フレーム番号 + */ + GetFrameData(frameNumber) { + if (this.currentCachedFrameNumber === frameNumber && this.frameDataCache) return this.frameDataCache; + const layers = this.curAnimation.defaultDataLength(); + let frameData = new Array(layers); + this._prio2index = new Array(layers); + const curFrameData = this.curAnimation.frameData(frameNumber); + for (let i = 0; i < layers; i++) { + const curPartState = curFrameData.states(i); + const index = curPartState.index(); + let f1 = curPartState.flag1(); + let f2 = curPartState.flag2(); + let fd = this.GetDefaultDataByIndex(index); + fd.flag1 = f1; + fd.flag2 = f2; + let id = 0; + if (f1 & PART_FLAG.INVISIBLE) fd.f_hide = true; + if (f1 & PART_FLAG.FLIP_H) fd.f_flipH = true; + if (f1 & PART_FLAG.FLIP_V) fd.f_flipV = true; + if (f1 & PART_FLAG.CELL_INDEX) fd.cellIndex = curPartState.data(id++); + if (f1 & PART_FLAG.POSITION_X) fd.positionX = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.POSITION_Y) fd.positionY = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.POSITION_Z) id++; + if (f1 & PART_FLAG.PIVOT_X) fd.pivotX = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.PIVOT_Y) fd.pivotY = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.ROTATIONX) id++; + if (f1 & PART_FLAG.ROTATIONY) id++; + if (f1 & PART_FLAG.ROTATIONZ) fd.rotationZ = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.SCALE_X) fd.scaleX = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.SCALE_Y) fd.scaleY = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.LOCALSCALE_X) fd.localscaleX = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.LOCALSCALE_Y) fd.localscaleY = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.OPACITY) fd.opacity = curPartState.data(id++); + if (f1 & PART_FLAG.LOCALOPACITY) fd.localopacity = curPartState.data(id++); + if (f1 & PART_FLAG.SIZE_X) fd.size_X = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.SIZE_Y) fd.size_Y = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.U_MOVE) fd.uv_move_X = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.V_MOVE) fd.uv_move_Y = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.UV_ROTATION) fd.uv_rotation = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.U_SCALE) fd.uv_scale_X = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.V_SCALE) fd.uv_scale_Y = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.BOUNDINGRADIUS) id++; + if (f1 & PART_FLAG.MASK) fd.masklimen = curPartState.data(id++); + if (f1 & PART_FLAG.PRIORITY) fd.priority = curPartState.data(id++); + if (f1 & PART_FLAG.INSTANCE_KEYFRAME) { + fd.instanceValue_curKeyframe = curPartState.data(id++); + fd.instanceValue_startFrame = curPartState.data(id++); + fd.instanceValue_endFrame = curPartState.data(id++); + fd.instanceValue_loopNum = curPartState.data(id++); + fd.instanceValue_speed = this.I2F(curPartState.data(id++)); + fd.instanceValue_loopflag = curPartState.data(id++); + } + if (f1 & PART_FLAG.EFFECT_KEYFRAME) { + fd.effectValue_curKeyframe = curPartState.data(id++); + fd.effectValue_startTime = curPartState.data(id++); + fd.effectValue_speed = this.I2F(curPartState.data(id++)); + fd.effectValue_loopflag = curPartState.data(id++); + } + if (f1 & PART_FLAG.VERTEX_TRANSFORM) { + fd.f_mesh = true; + const f = fd.i_transformVerts = curPartState.data(id++); + if (f & 1) { + fd.u00 = this.I2F(curPartState.data(id++)); + fd.v00 = this.I2F(curPartState.data(id++)); + } + if (f & 2) { + fd.u01 = this.I2F(curPartState.data(id++)); + fd.v01 = this.I2F(curPartState.data(id++)); + } + if (f & 4) { + fd.u10 = this.I2F(curPartState.data(id++)); + fd.v10 = this.I2F(curPartState.data(id++)); + } + if (f & 8) { + fd.u11 = this.I2F(curPartState.data(id++)); + fd.v11 = this.I2F(curPartState.data(id++)); + } + } + if (f1 & PART_FLAG.PARTS_COLOR) { + const f = curPartState.data(id++); + fd.colorBlendType = f & 255; + fd.useColorMatrix = fd.colorBlendType !== 1; + if (f & 4096) { + fd.colorRate = this.I2F(curPartState.data(id++)); + const bf = curPartState.data(id++); + const bf2 = curPartState.data(id++); + fd.colorArgb32 = bf << 16 | bf2; + fd.partsColorARGB = fd.colorArgb32 >>> 0; + if (fd.colorBlendType === 1) fd.tint = fd.colorArgb32 & 16777215; + } + } + if (f2 & PART_FLAG2.MESHDATA) { + const meshUv = this.curAnimation.meshsDataUv(index); + fd.meshIsBind = meshUv.uv(0); + fd.meshNum = meshUv.uv(1); + let mp = new Float32Array(fd.meshNum * 3); + for (let idx = 0; idx < fd.meshNum; idx++) { + const mx = this.I2F(curPartState.data(id++)); + const my = this.I2F(curPartState.data(id++)); + const mz = this.I2F(curPartState.data(id++)); + mp[idx * 3 + 0] = mx; + mp[idx * 3 + 1] = my; + mp[idx * 3 + 2] = mz; + } + fd.meshDataPoint = mp; + } + frameData[index] = fd; + this._prio2index[i] = index; + if (this.curAnimePackData.parts(index).type() === 0) frameData[index].cellIndex = -2; + } + this.frameDataCache = frameData; + this.currentCachedFrameNumber = frameNumber; + return frameData; + } + /** + * デフォルトデータを取得する + * @param {number} id - パーツ(レイヤー)ID + * @return {array} - データ + */ + GetDefaultDataByIndex(id) { + const curDefaultData = this.defaultFrameMap[id]; + let dfd = new FrameData(); + dfd.index = curDefaultData.index(); + dfd.lowflag = curDefaultData.lowflag(); + dfd.highflag = curDefaultData.highflag(); + dfd.priority = curDefaultData.priority(); + dfd.cellIndex = curDefaultData.cellIndex(); + dfd.opacity = curDefaultData.opacity(); + dfd.localopacity = curDefaultData.localopacity(); + dfd.masklimen = curDefaultData.masklimen(); + dfd.positionX = curDefaultData.positionX(); + dfd.positionY = curDefaultData.positionY(); + dfd.pivotX = curDefaultData.pivotX(); + dfd.pivotY = curDefaultData.pivotY(); + dfd.rotationX = curDefaultData.rotationX(); + dfd.rotationY = curDefaultData.rotationY(); + dfd.rotationZ = curDefaultData.rotationZ(); + dfd.scaleX = curDefaultData.scaleX(); + dfd.scaleY = curDefaultData.scaleY(); + dfd.localscaleX = curDefaultData.localscaleX(); + dfd.localscaleY = curDefaultData.localscaleY(); + dfd.size_X = curDefaultData.sizeX(); + dfd.size_Y = curDefaultData.sizeY(); + dfd.uv_move_X = curDefaultData.uvMoveX(); + dfd.uv_move_Y = curDefaultData.uvMoveY(); + dfd.uv_rotation = curDefaultData.uvRotation(); + dfd.uv_scale_X = curDefaultData.uvScaleX(); + dfd.uv_scale_Y = curDefaultData.uvScaleY(); + dfd.boundingRadius = curDefaultData.boundingRadius(); + dfd.instanceValue_curKeyframe = curDefaultData.instanceValueCurKeyframe(); + dfd.instanceValue_endFrame = curDefaultData.instanceValueEndFrame(); + dfd.instanceValue_startFrame = curDefaultData.instanceValueStartFrame(); + dfd.instanceValue_loopNum = curDefaultData.instanceValueLoopNum(); + dfd.instanceValue_speed = curDefaultData.instanceValueSpeed(); + dfd.instanceValue_loopflag = curDefaultData.instanceValueLoopflag(); + dfd.effectValue_curKeyframe = curDefaultData.effectValueCurKeyframe(); + dfd.effectValue_startTime = curDefaultData.effectValueStartTime(); + dfd.effectValue_speed = curDefaultData.effectValueSpeed(); + dfd.effectValue_loopflag = curDefaultData.effectValueLoopflag(); + dfd.f_hide = false; + dfd.f_flipH = false; + dfd.f_flipV = false; + dfd.f_mesh = false; + dfd.i_transformVerts = 0; + dfd.u00 = 0; + dfd.v00 = 0; + dfd.u01 = 0; + dfd.v01 = 0; + dfd.u10 = 0; + dfd.v10 = 0; + dfd.u11 = 0; + dfd.v11 = 0; + dfd.useColorMatrix = false; + dfd.colorBlendType = 0; + dfd.colorRate = 0; + dfd.colorArgb32 = 0; + dfd.meshIsBind = 0; + dfd.meshNum = 0; + dfd.meshDataPoint = null; + dfd.flag1 = 0; + dfd.flag2 = 0; + dfd.partsColorARGB = 0; + return dfd; + } + /** + * 親を遡って不透明度を継承する + * @param {number} opacity - 透明度 + * @param {number} partId - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {number} - 透明度 + */ + InheritOpacity(opacity, partId, frameNumber) { + opacity = this.GetFrameData(frameNumber)[partId].opacity / 255; + if (this._parentIndex[partId] >= 0) opacity = this.InheritOpacity(opacity, this._parentIndex[partId], frameNumber); + return opacity; + } + /** + * 親を遡って座標変換する(ローカルアトリビュート適用) + * @param {array} verts - 頂点情報配列 + * @param {number} partId - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformVertsLocal(verts, partId, frameNumber) { + const data = this.GetFrameData(frameNumber)[partId]; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + for (let i = 0; i < verts.length / 2; i++) { + let x = verts[i * 2]; + let y = verts[i * 2 + 1]; + if (data.i_transformVerts & 1 && i === 1) { + x += data.u00; + y -= data.v00; + } + if (data.i_transformVerts & 2 && i === 2) { + x += data.u01; + y -= data.v01; + } + if (data.i_transformVerts & 4 && i === 3) { + x += data.u10; + y -= data.v10; + } + if (data.i_transformVerts & 8 && i === 4) { + x += data.u11; + y -= data.v11; + } + x *= data.scaleX * data.localscaleX; + y *= data.scaleY * data.localscaleY; + verts[i * 2] = cos * x - sin * y + data.positionX; + verts[i * 2 + 1] = sin * x + cos * y - data.positionY; + if (data.f_flipH) verts[i * 2] = verts[0] * 2 - verts[i * 2]; + if (data.f_flipV) verts[i * 2 + 1] = verts[1] * 2 - verts[i * 2 + 1]; + } + if (this._parentIndex[partId] >= 0) verts = this.TransformVerts(verts, this._parentIndex[partId], frameNumber); + return verts; + } + /** + * 親を遡って座標変換する(ローカルアトリビュート適用) + * @param {array} verts - 頂点情報配列 + * @param {number} partId - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformMeshVertsLocal(verts, partId, frameNumber) { + const data = this.GetFrameData(frameNumber)[partId]; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + for (let i = 0; i < verts.length / 2; i++) { + let x = verts[i * 2]; + let y = verts[i * 2 + 1]; + x *= data.scaleX * data.localscaleX; + y *= data.scaleY * data.localscaleY; + verts[i * 2] = cos * x - sin * y + data.positionX; + verts[i * 2 + 1] = sin * x + cos * y - data.positionY; + } + if (this._parentIndex[partId] >= 0) verts = this.TransformVerts(verts, this._parentIndex[partId], frameNumber); + return verts; + } + /** + * 親を遡って座標変換する(ローカルアトリビュート適用) + * @param {array} pos - 頂点情報配列 + * @param {number} partId - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformPositionLocal(pos, partId, frameNumber) { + const data = this.GetFrameData(frameNumber)[partId]; + pos[4] += -data.rotationZ; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + const x = pos[0] * data.scaleX * data.localscaleX; + const y = pos[1] * data.scaleY * data.localscaleY; + pos[2] *= data.scaleX * data.localscaleX; + pos[3] *= data.scaleY * data.localscaleY; + pos[0] = cos * x - sin * y + data.positionX; + pos[1] = sin * x + cos * y - data.positionY; + if (this._parentIndex[partId] >= 0) pos = this.TransformPosition(pos, this._parentIndex[partId], frameNumber); + return pos; + } + /** + * 5頂点の中間点を求める + * @param {number} cx - 元の中心点 + * @param {number} cy - 元の中心点 + * @param {number} LUx - 左上座標 + * @param {number} LUy - 左上座標 + * @param {number} RUx - 右上座標 + * @param {number} RUy - 右上座標 + * @param {number} LDx - 左下座標 + * @param {number} LDy - 左下座標 + * @param {number} RDx - 右下座標 + * @param {number} RDy - 右下座標 + * @param vec2 + * @return {array} vec2 - 4頂点から算出した中心点の座標 + */ + static CoordinateGetDiagonalIntersection(cx, cy, LUx, LUy, RUx, RUy, LDx, LDy, RDx, RDy, vec2) { + const c1 = (LDy - RUy) * (LDx - LUx) - (LDx - RUx) * (LDy - LUy); + const c2 = (RDx - LUx) * (LDy - LUy) - (RDy - LUy) * (LDx - LUx); + const c3 = (RDx - LUx) * (LDy - RUy) - (RDy - LUy) * (LDx - RUx); + if (c3 <= 0 && c3 >= 0) return vec2; + const ca = c1 / c3; + const cb = c2 / c3; + if (0 <= ca && 1 >= ca && 0 <= cb && 1 >= cb) { + cx = LUx + ca * (RDx - LUx); + cy = LUy + ca * (RDy - LUy); + } + vec2[0] = cx; + vec2[1] = cy; + return vec2; + } + /** + * 親を遡って座標変換する + * @param {array} verts - 頂点情報配列 + * @param {number} id - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformVerts(verts, id, frameNumber) { + const data = this.GetFrameData(frameNumber)[id]; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + for (let i = 0; i < verts.length / 2; i++) { + let x = verts[i * 2]; + let y = verts[i * 2 + 1]; + x *= data.scaleX; + y *= data.scaleY; + verts[i * 2] = cos * x - sin * y + data.positionX; + verts[i * 2 + 1] = sin * x + cos * y - data.positionY; + if (data.f_flipH) verts[i * 2] = verts[0] * 2 - verts[i * 2]; + if (data.f_flipV) verts[i * 2 + 1] = verts[1] * 2 - verts[i * 2 + 1]; + } + if (this._parentIndex[id] >= 0) verts = this.TransformVerts(verts, this._parentIndex[id], frameNumber); + return verts; + } + /** + * 親を遡って座標変換する + * @param {array} pos - 頂点情報配列 + * @param {number} id - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformPosition(pos, id, frameNumber) { + const data = this.GetFrameData(frameNumber)[id]; + pos[4] += -data.rotationZ; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + const x = pos[0] * data.scaleX; + const y = pos[1] * data.scaleY; + pos[2] *= data.scaleX; + pos[3] *= data.scaleY; + pos[0] = cos * x - sin * y + data.positionX; + pos[1] = sin * x + cos * y - data.positionY; + if (this._parentIndex[id] >= 0) pos = this.TransformPosition(pos, this._parentIndex[id], frameNumber); + return pos; + } + /** + * 矩形セルメッシュの頂点情報のみ取得 + * @param {ssfblib.Cell} cell - セル + * @param {array} data - アニメーションフレームデータ + * @param verts + * @return {array} - 頂点情報配列 + */ + static GetVerts(cell, data, verts) { + const w = data.size_X / 2; + const h = data.size_Y / 2; + const px = data.size_X * -(data.pivotX + cell.pivotX()); + const py = data.size_Y * (data.pivotY + cell.pivotY()); + verts.set([ + px, + py, + px - w, + py - h, + px + w, + py - h, + px - w, + py + h, + px + w, + py + h + ]); + return verts; + } + /** + * 矩形セルメッシュの頂点情報のみ取得 + * @param {ssfblib.Cell} cell - セル + * @param {array} data - アニメーションフレームデータ + * @param verts + * @return {array} - 頂点情報配列 + */ + static GetMeshVerts(cell, data, verts) { + for (let idx = 0; idx < data.meshNum; idx++) { + verts[idx * 2] = data.meshDataPoint[idx * 3]; + verts[idx * 2 + 1] = -data.meshDataPoint[idx * 3 + 1]; + } + return verts; + } + static GetDummyVerts() { + return new Float32Array([ + 0, + 0, + -.5, + -.5, + .5, + -.5, + -.5, + .5, + .5, + .5 + ]); + } + }; + //#endregion + //#region src/loaders/PixiResourceLoaderImpl.ts + var PixiResourceLoaderImpl = class { + constructor() { + this.loader = new _pixi_loaders.Loader(); + } + load(sspjfile, sspjMap, onComplete) { + for (let key in sspjMap) this.loader.add(key, sspjMap[key]); + const self = this; + this.loader.load((loader, resources) => { + self.resources = resources; + if (onComplete !== null) onComplete(null); + }); + } + unload(sspjfile, sspjMap, onComplete) { + this.resources = null; + if (onComplete !== null) onComplete(null); + } + texture(key) { + console.log(this.resources); + return this.resources[key].texture; + } + }; + //#endregion + //#region src/SS6ProjectResourceLoader.ts + var SS6ProjectResourceLoader = class { + constructor() { + this.loader = new PixiResourceLoaderImpl(); + } + load(sspjfile, sspjMap, onComplete) { + return this.loader.load(sspjfile, sspjMap, onComplete); + } + unload(sspjfile, sspjMap, onComplete = null) { + return this.loader.unload(sspjfile, sspjMap, onComplete); + } + texture(key) { + return this.loader.texture(key); + } + }; + //#endregion + //#region src/SS6Project.ts + let RESOURCE_PROGRESS = /* @__PURE__ */ function(RESOURCE_PROGRESS) { + RESOURCE_PROGRESS[RESOURCE_PROGRESS["NOT_READY"] = 0] = "NOT_READY"; + RESOURCE_PROGRESS[RESOURCE_PROGRESS["READY"] = 1] = "READY"; + return RESOURCE_PROGRESS; + }({}); + var SS6Project = class { + getBundle() { + return this.ssfbFile; + } + getTexture(key) { + return this.resourceLoader.texture(key); + } + constructor(arg1, arg2, arg3, arg4) { + this.sspjMap = {}; + this.resourceLoader = new SS6ProjectResourceLoader(); + if (typeof arg1 === "string" && arg3 === void 0) { + let ssfbPath = arg1; + this.ssfbPath = ssfbPath; + const index = ssfbPath.lastIndexOf("/"); + this.rootPath = ssfbPath.substring(0, index) + "/"; + this.ssfbFile = ssfbPath.substring(index + 1); + this.onComplete = arg2 === void 0 ? null : arg2; + this.status = RESOURCE_PROGRESS.NOT_READY; + this.LoadFlatBuffersProject(); + } else if (typeof arg2 === "object" && arg2.constructor === Uint8Array) { + this.ssfbPath = null; + this.rootPath = null; + this.ssfbFile = arg1; + let ssfbByte = arg2; + let imageBinaryMap = arg3; + this.onComplete = arg4 === void 0 ? null : arg4; + this.load(ssfbByte, imageBinaryMap); + } + } + dispose(callback = null) { + this.resourceLoader.unload(this.getBundle(), this.sspjMap, (error) => { + if (callback !== null) callback(); + }); + } + /** + * Load json and parse (then, load textures) + */ + LoadFlatBuffersProject() { + const self = this; + fetch(this.ssfbPath, { method: "get" }).then((response) => { + if (response.ok) return Promise.resolve(response.arrayBuffer()); + else return Promise.reject(new Error(response.statusText)); + }).then((a) => { + self.fbObj = Utils.getProjectData(new Uint8Array(a)); + self.LoadCellResources(); + }).catch((error) => { + if (this.onComplete !== null) this.onComplete(null, error); + }); + } + /** + * Load textures + */ + LoadCellResources() { + let ids = []; + this.sspjMap = {}; + for (let i = 0; i < this.fbObj.cellsLength(); i++) { + const cellMap = this.fbObj.cells(i).cellMap(); + const cellMapIndex = cellMap.index(); + if (!ids.some(function(id) { + return id === cellMapIndex; + })) { + ids.push(cellMapIndex); + const name = cellMap.name(); + this.sspjMap[name] = this.rootPath + cellMap.imagePath(); + } + } + const self = this; + this.resourceLoader.load(this.getBundle(), this.sspjMap, (error) => { + if (error === null) { + self.status = RESOURCE_PROGRESS.READY; + if (self.onComplete !== null) self.onComplete(this, null); + } else if (this.onComplete !== null) this.onComplete(null, error); + }); + } + load(bytes, imageBinaryMap) { + this.fbObj = Utils.getProjectData(bytes); + let assetMap = {}; + for (let imageName in imageBinaryMap) { + const binary = imageBinaryMap[imageName]; + let b = ""; + const len = binary.byteLength; + for (let i = 0; i < len; i++) b += String.fromCharCode(binary[i]); + assetMap[imageName] = "data:image/png;base64," + btoa(b); + } + const self = this; + this.resourceLoader.load(this.getBundle(), assetMap, (error) => { + if (error === null) { + self.status = RESOURCE_PROGRESS.READY; + if (self.onComplete !== null) self.onComplete(this, null); + } else if (this.onComplete !== null) this.onComplete(null, error); + }); + } + }; + //#endregion + //#region ../ss6player-pixi/src/SS6PlayerInstanceKeyParam.ts + /** + * インスタンス差し替え用のキーパラメーター + */ + var SS6PlayerInstanceKeyParam = class { + constructor() { + this.refStartframe = 0; + this.refEndframe = 0; + this.refSpeed = 1; + this.refloopNum = 0; + this.infinity = false; + this.reverse = false; + this.pingpong = false; + this.independent = false; + } + }; + //#endregion + exports.SS6Player = class SS6Player extends _pixi_display.Container { + get startFrame() { + return this._startFrame; + } + get endFrame() { + return this._endFrame; + } + get totalFrame() { + return this.playerLib.animationData.totalFrames(); + } + get fps() { + return this.playerLib.animationData.fps(); + } + get frameNo() { + return Math.floor(this._currentFrame); + } + set loop(loop) { + this._loops = loop; + } + get loop() { + return this._loops; + } + get isPlaying() { + return this._isPlaying; + } + get isPausing() { + return this._isPausing; + } + get animePackName() { + return this.playerLib.animePackName; + } + get animeName() { + return this.playerLib.animeName; + } + /** + * SS6Player (extends PIXI.Container) + * @constructor + * @param {SS6Project} ss6project - SS6Project that contains animations. + * @param {string} animePackName - The name of animePack(SSAE). + * @param {string} animeName - The name of animation. + */ + constructor(ss6project, animePackName = null, animeName = null) { + super(); + this.liveFrame = []; + this.colorMatrixFilterCache = []; + this.parentAlpha = 1; + this.prevCellID = []; + this.prevPartObject = []; + this.substituteOverWrite = []; + this.substituteKeyParam = []; + this.alphaBlendType = []; + this.defaultColorFilter = new _pixi_filter_color_matrix.ColorMatrixFilter(); + this._instancePos = new Float32Array(5); + this._CoordinateGetDiagonalIntersectionVec2 = new Float32Array(2); + this.ss6project = ss6project; + this.playerLib = new Player(ss6project.fbObj, animePackName, animeName); + this.parentAlpha = 1; + if (animePackName !== null && animeName !== null) this.Setup(animePackName, animeName); + this.on("added", (...args) => { + _pixi_ticker.Ticker.shared.add(this.Update, this); + }, this); + this.on("removed", (...args) => { + _pixi_ticker.Ticker.shared.remove(this.Update, this); + }, this); + } + /** + * Setup + * @param {string} animePackName - The name of animePack(SSAE). + * @param {string} animeName - The name of animation. + */ + Setup(animePackName, animeName) { + this.playerLib.Setup(animePackName, animeName); + this.clearCaches(); + const animePackData = this.playerLib.animePackData; + const partsLength = animePackData.partsLength(); + this.prevCellID = new Array(partsLength); + this.prevPartObject = new Array(partsLength); + this.substituteOverWrite = new Array(partsLength); + this.substituteKeyParam = new Array(partsLength); + for (let j = 0; j < partsLength; j++) { + const index = animePackData.parts(j).index(); + this.prevCellID[index] = -1; + this.prevPartObject[index] = null; + this.substituteOverWrite[index] = null; + this.substituteKeyParam[index] = null; + } + this.alphaBlendType = this.GetPartsBlendMode(); + this._isPlaying = false; + this._isPausing = true; + this._startFrame = this.playerLib.animationData.startFrames(); + this._endFrame = this.playerLib.animationData.endFrames(); + this._currentFrame = this.playerLib.animationData.startFrames(); + this.nextFrameTime = 0; + this._loops = -1; + this.skipEnabled = true; + this.updateInterval = 1e3 / this.playerLib.animationData.fps(); + this.playDirection = 1; + this.onUserDataCallback = null; + this.playEndCallback = null; + this.parentAlpha = 1; + } + clearCaches() { + this.liveFrame = []; + this.colorMatrixFilterCache = []; + } + Update(delta) { + this.UpdateInternal(delta); + } + /** + * Update is called PIXI.ticker + * @param {number} delta - expected 1 + */ + UpdateInternal(delta, rewindAfterReachingEndFrame = true) { + const elapsedTime = _pixi_ticker.Ticker.shared.elapsedMS; + if (this._isPlaying && !this._isPausing && this.updateInterval !== 0) { + this.nextFrameTime += elapsedTime; + if (this.nextFrameTime >= this.updateInterval) { + let playEndFlag = false; + const step = this.nextFrameTime / this.updateInterval; + this.nextFrameTime -= this.updateInterval * step; + let s = this.skipEnabled ? step * this.playDirection : this.playDirection; + let next = this._currentFrame + s; + let nextFrameNo = Math.floor(next); + let nextFrameDecimal = next - nextFrameNo; + let currentFrameNo = Math.floor(this._currentFrame); + if (this.playDirection >= 1) for (let c = nextFrameNo - currentFrameNo; c; c--) { + let incFrameNo = currentFrameNo + 1; + if (incFrameNo > this._endFrame) if (this._loops === -1) incFrameNo = this._startFrame; + else { + this._loops--; + playEndFlag = true; + if (this._loops === 0) { + this._isPlaying = false; + incFrameNo = rewindAfterReachingEndFrame ? this._startFrame : this._endFrame; + break; + } else incFrameNo = this._startFrame; + } + currentFrameNo = incFrameNo; + if (this._isPlaying) { + if (this.playerLib.HaveUserData(currentFrameNo)) { + if (this.onUserDataCallback !== null) this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); + } + } + } + if (this.playDirection <= -1) for (let c = currentFrameNo - nextFrameNo; c; c--) { + let decFrameNo = currentFrameNo - 1; + if (decFrameNo < this._startFrame) if (this._loops === -1) decFrameNo = this._endFrame; + else { + this._loops--; + playEndFlag = true; + if (this._loops === 0) { + this._isPlaying = false; + decFrameNo = rewindAfterReachingEndFrame ? this._endFrame : this._startFrame; + break; + } else decFrameNo = this._endFrame; + } + currentFrameNo = decFrameNo; + if (this._isPlaying) { + if (this.playerLib.HaveUserData(currentFrameNo)) { + if (this.onUserDataCallback !== null) this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); + } + } + } + this._currentFrame = currentFrameNo + nextFrameDecimal; + if (playEndFlag) { + if (this.playEndCallback !== null) this.playEndCallback(this); + } + this.SetFrameAnimation(Math.floor(this._currentFrame), step); + } + } else this.SetFrameAnimation(Math.floor(this._currentFrame)); + } + /** + * アニメーションの速度を設定する (deprecated この関数は削除される可能性があります) + * @param {number} fps - アニメーション速度(frame per sec.) + * @param {boolean} _skipEnabled - 描画更新が間に合わないときにフレームをスキップするかどうか + */ + SetAnimationFramerate(fps, _skipEnabled = true) { + if (fps <= 0) return; + this.updateInterval = 1e3 / fps; + this.skipEnabled = _skipEnabled; + } + /** + * アニメーションの速度を設定する + * @param {number} fpsRate - アニメーション速度(設定値に対する乗率)負数設定で逆再生 + * @param {boolean} _skipEnabled - 描画更新が間に合わないときにフレームをスキップするかどうか + */ + SetAnimationSpeed(fpsRate, _skipEnabled = true) { + if (fpsRate === 0) return; + this.playDirection = fpsRate > 0 ? 1 : -1; + this.updateInterval = 1e3 / (this.playerLib.animationData.fps() * fpsRate * this.playDirection); + this.skipEnabled = _skipEnabled; + } + /** + * アニメーション再生設定 + * @param {number} _startframe - 開始フレーム番号(マイナス設定でデフォルト値を変更しない) + * @param {number} _endframe - 終了フレーム番号(マイナス設定でデフォルト値を変更しない) + * @param {number} _loops - ループ回数(ゼロもしくはマイナス設定で無限ループ) + */ + SetAnimationSection(_startframe = -1, _endframe = -1, _loops = -1) { + if (_startframe >= 0 && _startframe < this.playerLib.animationData.totalFrames()) this._startFrame = _startframe; + if (_endframe >= 0 && _endframe < this.playerLib.animationData.totalFrames()) this._endFrame = _endframe; + if (_loops > 0) this._loops = _loops; + else this._loops = -1; + this._currentFrame = this.playDirection > 0 ? this._startFrame : this._endFrame; + } + /** + * アニメーション再生を開始する + */ + Play(frameNo) { + this._isPlaying = true; + this._isPausing = false; + let currentFrame = this.playDirection > 0 ? this._startFrame : this._endFrame; + if (frameNo && typeof frameNo === "number") currentFrame = frameNo; + this._currentFrame = currentFrame; + this.resetLiveFrame(); + const currentFrameNo = Math.floor(this._currentFrame); + this.SetFrameAnimation(currentFrameNo); + if (this.playerLib.HaveUserData(currentFrameNo)) { + if (this.onUserDataCallback !== null) this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); + } + } + /** + * アニメーション再生を一時停止する + */ + Pause() { + this._isPausing = true; + } + /** + * アニメーション再生を再開する + */ + Resume() { + this._isPausing = false; + } + /** + * アニメーションを停止する + * @constructor + */ + Stop() { + this._isPlaying = false; + } + /** + * アニメーション再生を位置(フレーム)を設定する + */ + SetFrame(frame) { + this._currentFrame = frame; + } + NextFrame() { + const currentFrame = Math.floor(this._currentFrame); + if (currentFrame === this.endFrame) return; + this.SetFrame(currentFrame + 1); + } + PrevFrame() { + const currentFrame = Math.floor(this._currentFrame); + if (currentFrame === 0) return; + this.SetFrame(currentFrame - 1); + } + /** + * アニメーションの透明度を設定する + */ + SetAlpha(alpha) { + this.parentAlpha = alpha; + } + /** + * エラー処理 + * @param {any} _error - エラー + */ + ThrowError(_error) {} + /** + * ユーザーデータコールバックの設定 + * @param fn + * @constructor + * + * ユーザーデータのフォーマット + * data = [[d0,d1,...,d10],[da0,da1,...,da10],...]) + * data.length : 当該フレームでユーザーデータの存在するパーツ(レイヤー)数 + * d0 : パーツ(レイヤー)番号 + * d1 : 有効データビット(&1:int, &2:rect(int*4), &4:pos(int*2), &8:string) + * d2 : int(int) + * d3 : rect0(int) + * d4 : rect1(int) + * d5 : rect2(int) + * d6 : rect3(int) + * d7 : pos0(int) + * d8 : pos1(int) + * d9 : string.length(int) + * d10: string(string) + * + */ + SetUserDataCalback(fn) { + this.onUserDataCallback = fn; + } + /** + * 再生終了時に呼び出されるコールバックを設定します. + * @param fn + * @constructor + * + * ループ回数分再生した後に呼び出される点に注意してください。 + * 無限ループで再生している場合はコールバックが発生しません。 + * + */ + SetPlayEndCallback(fn) { + this.playEndCallback = fn; + } + /** + * パーツの描画モードを取得する + * @return {array} - 全パーツの描画モード + */ + GetPartsBlendMode() { + const animePacks = this.playerLib.animePackData; + const l = animePacks.partsLength(); + let ret = []; + for (let i = 0; i < l; i++) { + const alphaBlendType = animePacks.parts(i).alphaBlendType(); + let blendMode; + switch (alphaBlendType) { + case 0: + blendMode = _pixi_constants.BLEND_MODES.NORMAL; + break; + case 1: + blendMode = _pixi_constants.BLEND_MODES.MULTIPLY; + break; + case 2: + blendMode = _pixi_constants.BLEND_MODES.ADD; + break; + case 3: + blendMode = _pixi_constants.BLEND_MODES.NORMAL; + break; + case 4: + blendMode = _pixi_constants.BLEND_MODES.MULTIPLY; + break; + case 5: + blendMode = _pixi_constants.BLEND_MODES.SCREEN; + break; + case 6: + blendMode = _pixi_constants.BLEND_MODES.EXCLUSION; + break; + case 7: + blendMode = _pixi_constants.BLEND_MODES.NORMAL; + break; + default: + blendMode = _pixi_constants.BLEND_MODES.NORMAL; + break; + } + ret.push(blendMode); + } + return ret; + } + /** + * パーツカラーのブレンド用カラーマトリクス + * @param {number} blendType - ブレンド方法(0:mix, 1:multiply, 2:add, 3:sub) + * @param {number} rate - ミックス時の混色レート + * @param {number} argb32 - パーツカラー(単色) + * @return {PIXI.filters.ColorMatrixFilter} - カラーマトリクス + */ + GetColorMatrixFilter(blendType, rate, argb32) { + const key = blendType.toString() + "_" + rate.toString() + "_" + argb32.toString(); + if (this.colorMatrixFilterCache[key]) return this.colorMatrixFilterCache[key]; + const colorMatrix = new _pixi_filter_color_matrix.ColorMatrixFilter(); + const ca = ((argb32 & 4278190080) >>> 24) / 255; + const cr = ((argb32 & 16711680) >>> 16) / 255; + const cg = ((argb32 & 65280) >>> 8) / 255; + const cb = (argb32 & 255) / 255; + if (blendType === 0) { + const rate_i = 1 - rate; + colorMatrix.matrix = [ + rate_i, + 0, + 0, + 0, + cr * rate, + 0, + rate_i, + 0, + 0, + cg * rate, + 0, + 0, + rate_i, + 0, + cb * rate, + 0, + 0, + 0, + 1, + 0 + ]; + } else if (blendType === 1) colorMatrix.matrix = [ + cr, + 0, + 0, + 0, + 0, + 0, + cg, + 0, + 0, + 0, + 0, + 0, + cb, + 0, + 0, + 0, + 0, + 0, + ca, + 0 + ]; + else if (blendType === 2) colorMatrix.matrix = [ + 1, + 0, + 0, + 0, + cr, + 0, + 1, + 0, + 0, + cg, + 0, + 0, + 1, + 0, + cb, + 0, + 0, + 0, + ca, + 0 + ]; + else if (blendType === 3) colorMatrix.matrix = [ + 1, + 0, + 0, + 0, + -cr, + 0, + 1, + 0, + 0, + -cg, + 0, + 0, + 1, + 0, + -cb, + 0, + 0, + 0, + ca, + 0 + ]; + this.colorMatrixFilterCache[key] = colorMatrix; + return colorMatrix; + } + /** + * 1フレーム分のアニメーション描画 + * @param {number} frameNumber - フレーム番号 + * @param {number} ds - delta step + */ + SetFrameAnimation(frameNumber, ds = 0) { + const fd = this.playerLib.GetFrameData(frameNumber); + this.removeChildren(); + const l = fd.length; + for (let ii = 0; ii < l; ii = ii + 1 | 0) { + const i = this.playerLib.prio2index[ii]; + const data = fd[i]; + const cellID = data.cellIndex; + let partObject = this.prevPartObject[i]; + const part = this.playerLib.animePackData.parts(i); + const partType = part.type(); + let overWrite = this.substituteOverWrite[i] !== null ? this.substituteOverWrite[i] : false; + let overWritekeyParam = this.substituteKeyParam[i]; + switch (partType) { + case SsPartType.Instance: + if (partObject == null) { + partObject = this.MakeCellPlayer(part.refname()); + partObject.name = part.name(); + } + break; + case SsPartType.Normal: + case SsPartType.Mask: + if (cellID >= 0 && this.prevCellID[i] !== cellID) { + if (partObject != null) partObject.destroy(); + partObject = this.MakeCellMesh(cellID); + partObject.name = part.name(); + } + break; + case SsPartType.Mesh: + if (cellID >= 0 && this.prevCellID[i] !== cellID) { + if (partObject != null) partObject.destroy(); + partObject = this.MakeMeshCellMesh(i, cellID); + partObject.name = part.name(); + } + break; + case SsPartType.Nulltype: + case SsPartType.Joint: + if (this.prevCellID[i] !== cellID) { + if (partObject != null) partObject.destroy(); + partObject = new _pixi_display.Container(); + partObject.name = part.name(); + } + break; + default: + if (cellID >= 0 && this.prevCellID[i] !== cellID) { + if (partObject != null) partObject.destroy(); + partObject = this.MakeCellMesh(cellID); + partObject.name = part.name(); + } + break; + } + if (partObject == null) continue; + this.prevCellID[i] = cellID; + this.prevPartObject[i] = partObject; + switch (partType) { + case SsPartType.Instance: { + const instance = partObject; + this._instancePos[0] = 0; + this._instancePos[1] = 0; + this._instancePos[2] = 1; + this._instancePos[3] = 1; + this._instancePos[4] = 0; + this._instancePos = this.playerLib.TransformPositionLocal(this._instancePos, data.index, frameNumber); + instance.rotation = this._instancePos[4] * Math.PI / 180; + instance.position.set(this._instancePos[0], this._instancePos[1]); + instance.scale.set(this._instancePos[2], this._instancePos[3]); + let opacity = data.opacity / 255; + if (data.localopacity < 255) opacity = data.localopacity / 255; + instance.SetAlpha(opacity * this.parentAlpha); + instance.visible = !data.f_hide; + let refKeyframe = data.instanceValue_curKeyframe; + let refStartframe = data.instanceValue_startFrame; + let refEndframe = data.instanceValue_endFrame; + let refSpeed = data.instanceValue_speed; + let refloopNum = data.instanceValue_loopNum; + let infinity = false; + let reverse = false; + let pingpong = false; + let independent = false; + const INSTANCE_LOOP_FLAG_INFINITY = 1; + const INSTANCE_LOOP_FLAG_REVERSE = 2; + const INSTANCE_LOOP_FLAG_PINGPONG = 4; + const INSTANCE_LOOP_FLAG_INDEPENDENT = 8; + const lflags = data.instanceValue_loopflag; + if (lflags & INSTANCE_LOOP_FLAG_INFINITY) infinity = true; + if (lflags & INSTANCE_LOOP_FLAG_REVERSE) reverse = true; + if (lflags & INSTANCE_LOOP_FLAG_PINGPONG) pingpong = true; + if (lflags & INSTANCE_LOOP_FLAG_INDEPENDENT) independent = true; + if (overWrite) { + refStartframe = overWritekeyParam.refStartframe; + refEndframe = overWritekeyParam.refEndframe; + refSpeed = overWritekeyParam.refSpeed; + refloopNum = overWritekeyParam.refloopNum; + infinity = overWritekeyParam.infinity; + reverse = overWritekeyParam.reverse; + pingpong = overWritekeyParam.pingpong; + independent = overWritekeyParam.independent; + } + if (instance._startFrame !== refStartframe || instance._endFrame !== refEndframe) instance.SetAnimationSection(refStartframe, refEndframe); + let time = frameNumber; + if (independent === true) { + this.liveFrame[ii] += ds; + time = Math.floor(this.liveFrame[ii]); + } + const selfTopKeyframe = refKeyframe; + let reftime = Math.floor((time - selfTopKeyframe) * refSpeed); + if (reftime < 0) continue; + if (selfTopKeyframe > time) continue; + const inst_scale = refEndframe - refStartframe + 1; + if (inst_scale <= 0) continue; + let nowloop = Math.floor(reftime / inst_scale); + let checkloopnum = refloopNum; + if (pingpong) checkloopnum = checkloopnum * 2; + if (!infinity) { + if (nowloop >= checkloopnum) { + reftime = inst_scale - 1; + nowloop = checkloopnum - 1; + } + } + const temp_frame = Math.floor(reftime % inst_scale); + let _time = 0; + if (pingpong && nowloop % 2 === 1) if (reverse) reverse = false; + else reverse = true; + if (this.playDirection <= -1) reverse = !reverse; + if (reverse) _time = refEndframe - temp_frame; + else _time = temp_frame + refStartframe; + instance.SetFrame(Math.floor(_time)); + this.addChild(instance); + break; + } + case SsPartType.Normal: + case SsPartType.Mesh: + case SsPartType.Joint: + case SsPartType.Mask: { + const mesh = partObject; + const meshVertexBuffer = mesh.geometry.getBuffer("aVertexPosition"); + let meshVertex = meshVertexBuffer.data; + const cell = this.playerLib.fbObj.cells(cellID); + let verts; + if (partType === SsPartType.Mesh) if (data.meshIsBind === 0) verts = this.playerLib.TransformMeshVertsLocal(Player.GetMeshVerts(cell, data, meshVertex), data.index, frameNumber); + else verts = Player.GetMeshVerts(cell, data, meshVertex); + else { + verts = partType === SsPartType.Joint ? new Float32Array(10) : meshVertex; + verts = this.playerLib.TransformVertsLocal(Player.GetVerts(cell, data, verts), data.index, frameNumber); + } + if (data.flag1 & PART_FLAG.VERTEX_TRANSFORM) { + const vertexCoordinateLUx = verts[6]; + const vertexCoordinateLUy = verts[7]; + const vertexCoordinateLDx = verts[2]; + const vertexCoordinateLDy = verts[3]; + const vertexCoordinateRUx = verts[8]; + const vertexCoordinateRUy = verts[9]; + const vertexCoordinateRDx = verts[4]; + const vertexCoordinateRDy = verts[5]; + const CoordinateLURUx = (vertexCoordinateLUx + vertexCoordinateRUx) * .5; + const CoordinateLURUy = (vertexCoordinateLUy + vertexCoordinateRUy) * .5; + const CoordinateLULDx = (vertexCoordinateLUx + vertexCoordinateLDx) * .5; + const CoordinateLULDy = (vertexCoordinateLUy + vertexCoordinateLDy) * .5; + const CoordinateLDRDx = (vertexCoordinateLDx + vertexCoordinateRDx) * .5; + const CoordinateLDRDy = (vertexCoordinateLDy + vertexCoordinateRDy) * .5; + const CoordinateRURDx = (vertexCoordinateRUx + vertexCoordinateRDx) * .5; + const CoordinateRURDy = (vertexCoordinateRUy + vertexCoordinateRDy) * .5; + const vec2 = Player.CoordinateGetDiagonalIntersection(verts[0], verts[1], CoordinateLURUx, CoordinateLURUy, CoordinateRURDx, CoordinateRURDy, CoordinateLULDx, CoordinateLULDy, CoordinateLDRDx, CoordinateLDRDy, this._CoordinateGetDiagonalIntersectionVec2); + verts[0] = vec2[0]; + verts[1] = vec2[1]; + } + const px = verts[0]; + const py = verts[1]; + for (let j = 0; j < verts.length / 2; j++) { + verts[j * 2] -= px; + verts[j * 2 + 1] -= py; + } + meshVertex = verts; + meshVertexBuffer.update(); + if (data.flag1 & PART_FLAG.U_MOVE || data.flag1 & PART_FLAG.V_MOVE || data.flag1 & PART_FLAG.U_SCALE || data.flag1 & PART_FLAG.V_SCALE || data.flag1 & PART_FLAG.UV_ROTATION) { + const u1 = cell.u1() + data.uv_move_X; + const u2 = cell.u2() + data.uv_move_X; + const v1 = cell.v1() + data.uv_move_Y; + const v2 = cell.v2() + data.uv_move_Y; + const cx = (u2 + u1) / 2; + const cy = (v2 + v1) / 2; + const uvw = (u2 - u1) / 2 * data.uv_scale_X; + const uvh = (v2 - v1) / 2 * data.uv_scale_Y; + const meshUvsBuffer = mesh.uvBuffer; + let meshUvs = meshUvsBuffer.data; + meshUvs[0] = cx; + meshUvs[1] = cy; + meshUvs[2] = cx - uvw; + meshUvs[3] = cy - uvh; + meshUvs[4] = cx + uvw; + meshUvs[5] = cy - uvh; + meshUvs[6] = cx - uvw; + meshUvs[7] = cy + uvh; + meshUvs[8] = cx + uvw; + meshUvs[9] = cy + uvh; + if (data.flag1 & PART_FLAG.UV_ROTATION) { + const rot = data.uv_rotation * Math.PI / 180; + for (let idx = 0; idx < 5; idx++) { + const dx = meshUvs[idx * 2 + 0] - cx; + const dy = meshUvs[idx * 2 + 1] - cy; + const cos = Math.cos(rot); + const sin = Math.sin(rot); + const tmpX = cos * dx - sin * dy; + const tmpY = sin * dx + cos * dy; + meshUvs[idx * 2 + 0] = cx + tmpX; + meshUvs[idx * 2 + 1] = cy + tmpY; + } + } + meshUvsBuffer.update(); + } + mesh.position.set(px, py); + let opacity = data.opacity / 255; + if (data.localopacity < 255) opacity = data.localopacity / 255; + mesh.alpha = opacity * this.parentAlpha; + mesh.visible = !data.f_hide; + if (data.useColorMatrix) mesh.filters = [this.GetColorMatrixFilter(data.colorBlendType, data.colorRate, data.colorArgb32)]; + if (data.tint) { + mesh.tint = data.tint; + const ca = ((data.partsColorARGB & 4278190080) >>> 24) / 255; + mesh.alpha = mesh.alpha * ca; + } + const blendMode = this.alphaBlendType[i]; + if (blendMode === _pixi_constants.BLEND_MODES.MULTIPLY || blendMode === _pixi_constants.BLEND_MODES.SCREEN) mesh.alpha = 1; + if (partType !== SsPartType.Mask) this.addChild(mesh); + break; + } + case SsPartType.Nulltype: { + const container = partObject; + container.alpha = this.playerLib.InheritOpacity(1, data.index, frameNumber) * data.localopacity / 255; + const verts = this.playerLib.TransformVerts(Player.GetDummyVerts(), data.index, frameNumber); + const px = verts[0]; + const py = verts[1]; + container.position.set(px, py); + const ax = Math.atan2(verts[5] - verts[3], verts[4] - verts[2]); + const ay = Math.atan2(verts[7] - verts[3], verts[6] - verts[2]); + container.rotation = ax; + container.skew.x = ay - ax - Math.PI / 2; + break; + } + } + } + } + /** + * + * 名前を指定してパーツの再生するインスタンスアニメを変更します。 + * 指定したパーツがインスタンスパーツでない場合、falseを返します. + * インスタンスパーツ名はディフォルトでは「ssae名:モーション名」とつけられています。 + * 再生するアニメの名前は アニメパック名 と アニメ名 で指定してください。 + * 現在再生しているアニメを指定することは入れ子となり無限ループとなるためできません。 + * + * 変更するアニメーションは同じ ssfb に含まれる必要があります。 + * インスタンスパーツが再生するアニメを変更します + * + * インスタンスキーは + * + * @param partName SS上のパーツ名 + * @param animePackName 参照するアニメパック名 + * @param animeName 参照するアニメ名 + * @param overWrite インスタンスキーの上書きフラグ + * @param keyParam インスタンスキー + * + * @constructor + */ + ChangeInstanceAnime(partName, animePackName, animeName, overWrite, keyParam = null) { + let rc = false; + if (this.animePackName !== null && this.animeName !== null) { + let packData = this.playerLib.animePackData; + let partsLength = packData.partsLength(); + for (let index = 0; index < partsLength; index++) { + let partData = packData.parts(index); + if (partData.name() === partName) { + let mesh = this.prevPartObject[index]; + if (mesh === null || mesh instanceof SS6Player) { + this.substituteOverWrite[index] = overWrite; + let keyParamAsSubstitute; + if (keyParam !== null) { + keyParamAsSubstitute = keyParam; + mesh = this.MakeCellPlayer(animePackName + "/" + animeName, keyParam.refStartframe); + } else { + mesh = this.MakeCellPlayer(animePackName + "/" + animeName); + keyParamAsSubstitute = new SS6PlayerInstanceKeyParam(); + keyParamAsSubstitute.refStartframe = mesh.startFrame; + keyParamAsSubstitute.refEndframe = mesh.endFrame; + } + mesh.name = partData.name(); + this.prevPartObject[index] = mesh; + this.substituteKeyParam[index] = keyParamAsSubstitute; + rc = true; + break; + } + } + } + } + return rc; + } + /** + * 矩形セルをメッシュ(5verts4Tri)で作成 + * @param {number} id - セルID + * @return {PIXI.Mesh} - メッシュ + */ + MakeCellMesh(id) { + const cell = this.playerLib.fbObj.cells(id); + const u1 = cell.u1(); + const u2 = cell.u2(); + const v1 = cell.v1(); + const v2 = cell.v2(); + const w = cell.width() / 2; + const h = cell.height() / 2; + return new _pixi_mesh.Mesh(new _pixi_mesh.MeshGeometry(new Float32Array([ + 0, + 0, + -w, + -h, + w, + -h, + -w, + h, + w, + h + ]), new Float32Array([ + (u1 + u2) / 2, + (v1 + v2) / 2, + u1, + v1, + u2, + v1, + u1, + v2, + u2, + v2 + ]), new Uint16Array([ + 0, + 1, + 2, + 0, + 2, + 4, + 0, + 4, + 3, + 0, + 1, + 3 + ])), new _pixi_mesh.MeshMaterial(this.ss6project.getTexture(cell.cellMap().name())), null, _pixi_constants.DRAW_MODES.TRIANGLES); + } + /** + * メッシュセルからメッシュを作成 + * @param {number} partID - パーツID + * @param {number} cellID - セルID + * @return {PIXI.Mesh} - メッシュ + */ + MakeMeshCellMesh(partID, cellID) { + const meshsDataUV = this.playerLib.animationData.meshsDataUv(partID); + const uvLength = meshsDataUV.uvLength(); + if (uvLength > 0) { + const uvs = new Float32Array(uvLength - 2); + const meshNum = meshsDataUV.uv(1); + for (let idx = 2; idx < uvLength; idx++) uvs[idx - 2] = meshsDataUV.uv(idx); + const meshsDataIndices = this.playerLib.animationData.meshsDataIndices(partID); + const indicesLength = meshsDataIndices.indicesLength(); + const indices = new Uint16Array(indicesLength - 1); + for (let idx = 1; idx < indicesLength; idx++) indices[idx - 1] = meshsDataIndices.indices(idx); + return new _pixi_mesh.Mesh(new _pixi_mesh.MeshGeometry(new Float32Array(meshNum * 2), uvs, indices), new _pixi_mesh.MeshMaterial(this.ss6project.getTexture(this.playerLib.fbObj.cells(cellID).cellMap().name())), null, _pixi_constants.DRAW_MODES.TRIANGLES); + } + return null; + } + /** + * セルをインスタンスで作成 + * @param {String} refname 参照アニメ名 + * @param {number or undefined} refStart + * @return {SS6Player} - インスタンス + */ + MakeCellPlayer(refname, refStart = void 0) { + const split = refname.split("/"); + const ssp = new SS6Player(this.ss6project); + ssp.Setup(split[0], split[1]); + ssp.Play(refStart); + return ssp; + } + resetLiveFrame() { + const layers = this.playerLib.animationData.defaultDataLength(); + for (let i = 0; i < layers; i++) this.liveFrame[i] = 0; + } + }; + exports.SS6PlayerInstanceKeyParam = SS6PlayerInstanceKeyParam; + exports.SS6Project = SS6Project; +}); -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@pixi/loaders'), require('@pixi/display'), require('@pixi/mesh'), require('@pixi/ticker'), require('@pixi/filter-color-matrix'), require('@pixi/constants'), require('@pixi/mixin-get-child-by-name')) : - typeof define === 'function' && define.amd ? define(['exports', '@pixi/loaders', '@pixi/display', '@pixi/mesh', '@pixi/ticker', '@pixi/filter-color-matrix', '@pixi/constants', '@pixi/mixin-get-child-by-name'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ss6PlayerPixi6 = {}, global.PIXI, global.PIXI, global.PIXI, global.PIXI, global.PIXI.filters, global.PIXI)); -})(this, (function (exports, loaders, display, mesh, ticker, filterColorMatrix, constants) { 'use strict'; - - class FrameData { - } - const SIZEOF_INT = 4; - const FILE_IDENTIFIER_LENGTH = 4; - const SIZE_PREFIX_LENGTH = 4; - const int32 = new Int32Array(2); - const float32 = new Float32Array(int32.buffer); - const float64 = new Float64Array(int32.buffer); - const isLittleEndian = new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1; - var Encoding; - (function(Encoding2) { - Encoding2[Encoding2["UTF8_BYTES"] = 1] = "UTF8_BYTES"; - Encoding2[Encoding2["UTF16_STRING"] = 2] = "UTF16_STRING"; - })(Encoding || (Encoding = {})); - class ByteBuffer { - /** - * Create a new ByteBuffer with a given array of bytes (`Uint8Array`) - */ - constructor(bytes_) { - this.bytes_ = bytes_; - this.position_ = 0; - this.text_decoder_ = new TextDecoder(); - } - /** - * Create and allocate a new ByteBuffer with a given size. - */ - static allocate(byte_size) { - return new ByteBuffer(new Uint8Array(byte_size)); - } - clear() { - this.position_ = 0; - } - /** - * Get the underlying `Uint8Array`. - */ - bytes() { - return this.bytes_; - } - /** - * Get the buffer's position. - */ - position() { - return this.position_; - } - /** - * Set the buffer's position. - */ - setPosition(position) { - this.position_ = position; - } - /** - * Get the buffer's capacity. - */ - capacity() { - return this.bytes_.length; - } - readInt8(offset) { - return this.readUint8(offset) << 24 >> 24; - } - readUint8(offset) { - return this.bytes_[offset]; - } - readInt16(offset) { - return this.readUint16(offset) << 16 >> 16; - } - readUint16(offset) { - return this.bytes_[offset] | this.bytes_[offset + 1] << 8; - } - readInt32(offset) { - return this.bytes_[offset] | this.bytes_[offset + 1] << 8 | this.bytes_[offset + 2] << 16 | this.bytes_[offset + 3] << 24; - } - readUint32(offset) { - return this.readInt32(offset) >>> 0; - } - readInt64(offset) { - return BigInt.asIntN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); - } - readUint64(offset) { - return BigInt.asUintN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); - } - readFloat32(offset) { - int32[0] = this.readInt32(offset); - return float32[0]; - } - readFloat64(offset) { - int32[isLittleEndian ? 0 : 1] = this.readInt32(offset); - int32[isLittleEndian ? 1 : 0] = this.readInt32(offset + 4); - return float64[0]; - } - writeInt8(offset, value) { - this.bytes_[offset] = value; - } - writeUint8(offset, value) { - this.bytes_[offset] = value; - } - writeInt16(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - } - writeUint16(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - } - writeInt32(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - this.bytes_[offset + 2] = value >> 16; - this.bytes_[offset + 3] = value >> 24; - } - writeUint32(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - this.bytes_[offset + 2] = value >> 16; - this.bytes_[offset + 3] = value >> 24; - } - writeInt64(offset, value) { - this.writeInt32(offset, Number(BigInt.asIntN(32, value))); - this.writeInt32(offset + 4, Number(BigInt.asIntN(32, value >> BigInt(32)))); - } - writeUint64(offset, value) { - this.writeUint32(offset, Number(BigInt.asUintN(32, value))); - this.writeUint32(offset + 4, Number(BigInt.asUintN(32, value >> BigInt(32)))); - } - writeFloat32(offset, value) { - float32[0] = value; - this.writeInt32(offset, int32[0]); - } - writeFloat64(offset, value) { - float64[0] = value; - this.writeInt32(offset, int32[isLittleEndian ? 0 : 1]); - this.writeInt32(offset + 4, int32[isLittleEndian ? 1 : 0]); - } - /** - * Return the file identifier. Behavior is undefined for FlatBuffers whose - * schema does not include a file_identifier (likely points at padding or the - * start of a the root vtable). - */ - getBufferIdentifier() { - if (this.bytes_.length < this.position_ + SIZEOF_INT + FILE_IDENTIFIER_LENGTH) { - throw new Error("FlatBuffers: ByteBuffer is too short to contain an identifier."); - } - let result = ""; - for (let i = 0; i < FILE_IDENTIFIER_LENGTH; i++) { - result += String.fromCharCode(this.readInt8(this.position_ + SIZEOF_INT + i)); - } - return result; - } - /** - * Look up a field in the vtable, return an offset into the object, or 0 if the - * field is not present. - */ - __offset(bb_pos, vtable_offset) { - const vtable = bb_pos - this.readInt32(bb_pos); - return vtable_offset < this.readInt16(vtable) ? this.readInt16(vtable + vtable_offset) : 0; - } - /** - * Initialize any Table-derived type to point to the union at the given offset. - */ - __union(t, offset) { - t.bb_pos = offset + this.readInt32(offset); - t.bb = this; - return t; - } - /** - * Create a JavaScript string from UTF-8 data stored inside the FlatBuffer. - * This allocates a new string and converts to wide chars upon each access. - * - * To avoid the conversion to string, pass Encoding.UTF8_BYTES as the - * "optionalEncoding" argument. This is useful for avoiding conversion when - * the data will just be packaged back up in another FlatBuffer later on. - * - * @param offset - * @param opt_encoding Defaults to UTF16_STRING - */ - __string(offset, opt_encoding) { - offset += this.readInt32(offset); - const length = this.readInt32(offset); - offset += SIZEOF_INT; - const utf8bytes = this.bytes_.subarray(offset, offset + length); - if (opt_encoding === Encoding.UTF8_BYTES) - return utf8bytes; - else - return this.text_decoder_.decode(utf8bytes); - } - /** - * Handle unions that can contain string as its member, if a Table-derived type then initialize it, - * if a string then return a new one - * - * WARNING: strings are immutable in JS so we can't change the string that the user gave us, this - * makes the behaviour of __union_with_string different compared to __union - */ - __union_with_string(o, offset) { - if (typeof o === "string") { - return this.__string(offset); - } - return this.__union(o, offset); - } - /** - * Retrieve the relative offset stored at "offset" - */ - __indirect(offset) { - return offset + this.readInt32(offset); - } - /** - * Get the start of data of a vector whose offset is stored at "offset" in this object. - */ - __vector(offset) { - return offset + this.readInt32(offset) + SIZEOF_INT; - } - /** - * Get the length of a vector whose offset is stored at "offset" in this object. - */ - __vector_len(offset) { - return this.readInt32(offset + this.readInt32(offset)); - } - __has_identifier(ident) { - if (ident.length != FILE_IDENTIFIER_LENGTH) { - throw new Error("FlatBuffers: file identifier must be length " + FILE_IDENTIFIER_LENGTH); - } - for (let i = 0; i < FILE_IDENTIFIER_LENGTH; i++) { - if (ident.charCodeAt(i) != this.readInt8(this.position() + SIZEOF_INT + i)) { - return false; - } - } - return true; - } - /** - * A helper function for generating list for obj api - */ - createScalarList(listAccessor, listLength) { - const ret = []; - for (let i = 0; i < listLength; ++i) { - const val = listAccessor(i); - if (val !== null) { - ret.push(val); - } - } - return ret; - } - /** - * A helper function for generating list for obj api - * @param listAccessor function that accepts an index and return data at that index - * @param listLength listLength - * @param res result list - */ - createObjList(listAccessor, listLength) { - const ret = []; - for (let i = 0; i < listLength; ++i) { - const val = listAccessor(i); - if (val !== null) { - ret.push(val.unpack()); - } - } - return ret; - } - } - class AnimationInitialData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsAnimationInitialData(bb, obj) { - return (obj || new AnimationInitialData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsAnimationInitialData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new AnimationInitialData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - index() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - lowflag() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - highflag() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - priority() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - cellIndex() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - opacity() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - localopacity() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - masklimen() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - positionX() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - positionY() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - positionZ() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - pivotX() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - pivotY() { - const offset = this.bb.__offset(this.bb_pos, 28); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - rotationX() { - const offset = this.bb.__offset(this.bb_pos, 30); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - rotationY() { - const offset = this.bb.__offset(this.bb_pos, 32); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - rotationZ() { - const offset = this.bb.__offset(this.bb_pos, 34); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - scaleX() { - const offset = this.bb.__offset(this.bb_pos, 36); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - scaleY() { - const offset = this.bb.__offset(this.bb_pos, 38); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - localscaleX() { - const offset = this.bb.__offset(this.bb_pos, 40); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - localscaleY() { - const offset = this.bb.__offset(this.bb_pos, 42); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - sizeX() { - const offset = this.bb.__offset(this.bb_pos, 44); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - sizeY() { - const offset = this.bb.__offset(this.bb_pos, 46); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvMoveX() { - const offset = this.bb.__offset(this.bb_pos, 48); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvMoveY() { - const offset = this.bb.__offset(this.bb_pos, 50); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvRotation() { - const offset = this.bb.__offset(this.bb_pos, 52); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvScaleX() { - const offset = this.bb.__offset(this.bb_pos, 54); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvScaleY() { - const offset = this.bb.__offset(this.bb_pos, 56); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - boundingRadius() { - const offset = this.bb.__offset(this.bb_pos, 58); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - instanceValueCurKeyframe() { - const offset = this.bb.__offset(this.bb_pos, 60); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueStartFrame() { - const offset = this.bb.__offset(this.bb_pos, 62); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueEndFrame() { - const offset = this.bb.__offset(this.bb_pos, 64); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueLoopNum() { - const offset = this.bb.__offset(this.bb_pos, 66); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueSpeed() { - const offset = this.bb.__offset(this.bb_pos, 68); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - instanceValueLoopflag() { - const offset = this.bb.__offset(this.bb_pos, 70); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - effectValueCurKeyframe() { - const offset = this.bb.__offset(this.bb_pos, 72); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - effectValueStartTime() { - const offset = this.bb.__offset(this.bb_pos, 74); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - effectValueSpeed() { - const offset = this.bb.__offset(this.bb_pos, 76); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - effectValueLoopflag() { - const offset = this.bb.__offset(this.bb_pos, 78); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - static startAnimationInitialData(builder) { - builder.startObject(38); - } - static addIndex(builder, index) { - builder.addFieldInt16(0, index, 0); - } - static addLowflag(builder, lowflag) { - builder.addFieldInt32(1, lowflag, 0); - } - static addHighflag(builder, highflag) { - builder.addFieldInt32(2, highflag, 0); - } - static addPriority(builder, priority) { - builder.addFieldInt16(3, priority, 0); - } - static addCellIndex(builder, cellIndex) { - builder.addFieldInt16(4, cellIndex, 0); - } - static addOpacity(builder, opacity) { - builder.addFieldInt16(5, opacity, 0); - } - static addLocalopacity(builder, localopacity) { - builder.addFieldInt16(6, localopacity, 0); - } - static addMasklimen(builder, masklimen) { - builder.addFieldInt16(7, masklimen, 0); - } - static addPositionX(builder, positionX) { - builder.addFieldFloat32(8, positionX, 0); - } - static addPositionY(builder, positionY) { - builder.addFieldFloat32(9, positionY, 0); - } - static addPositionZ(builder, positionZ) { - builder.addFieldFloat32(10, positionZ, 0); - } - static addPivotX(builder, pivotX) { - builder.addFieldFloat32(11, pivotX, 0); - } - static addPivotY(builder, pivotY) { - builder.addFieldFloat32(12, pivotY, 0); - } - static addRotationX(builder, rotationX) { - builder.addFieldFloat32(13, rotationX, 0); - } - static addRotationY(builder, rotationY) { - builder.addFieldFloat32(14, rotationY, 0); - } - static addRotationZ(builder, rotationZ) { - builder.addFieldFloat32(15, rotationZ, 0); - } - static addScaleX(builder, scaleX) { - builder.addFieldFloat32(16, scaleX, 0); - } - static addScaleY(builder, scaleY) { - builder.addFieldFloat32(17, scaleY, 0); - } - static addLocalscaleX(builder, localscaleX) { - builder.addFieldFloat32(18, localscaleX, 0); - } - static addLocalscaleY(builder, localscaleY) { - builder.addFieldFloat32(19, localscaleY, 0); - } - static addSizeX(builder, sizeX) { - builder.addFieldFloat32(20, sizeX, 0); - } - static addSizeY(builder, sizeY) { - builder.addFieldFloat32(21, sizeY, 0); - } - static addUvMoveX(builder, uvMoveX) { - builder.addFieldFloat32(22, uvMoveX, 0); - } - static addUvMoveY(builder, uvMoveY) { - builder.addFieldFloat32(23, uvMoveY, 0); - } - static addUvRotation(builder, uvRotation) { - builder.addFieldFloat32(24, uvRotation, 0); - } - static addUvScaleX(builder, uvScaleX) { - builder.addFieldFloat32(25, uvScaleX, 0); - } - static addUvScaleY(builder, uvScaleY) { - builder.addFieldFloat32(26, uvScaleY, 0); - } - static addBoundingRadius(builder, boundingRadius) { - builder.addFieldFloat32(27, boundingRadius, 0); - } - static addInstanceValueCurKeyframe(builder, instanceValueCurKeyframe) { - builder.addFieldInt32(28, instanceValueCurKeyframe, 0); - } - static addInstanceValueStartFrame(builder, instanceValueStartFrame) { - builder.addFieldInt32(29, instanceValueStartFrame, 0); - } - static addInstanceValueEndFrame(builder, instanceValueEndFrame) { - builder.addFieldInt32(30, instanceValueEndFrame, 0); - } - static addInstanceValueLoopNum(builder, instanceValueLoopNum) { - builder.addFieldInt32(31, instanceValueLoopNum, 0); - } - static addInstanceValueSpeed(builder, instanceValueSpeed) { - builder.addFieldFloat32(32, instanceValueSpeed, 0); - } - static addInstanceValueLoopflag(builder, instanceValueLoopflag) { - builder.addFieldInt32(33, instanceValueLoopflag, 0); - } - static addEffectValueCurKeyframe(builder, effectValueCurKeyframe) { - builder.addFieldInt32(34, effectValueCurKeyframe, 0); - } - static addEffectValueStartTime(builder, effectValueStartTime) { - builder.addFieldInt32(35, effectValueStartTime, 0); - } - static addEffectValueSpeed(builder, effectValueSpeed) { - builder.addFieldFloat32(36, effectValueSpeed, 0); - } - static addEffectValueLoopflag(builder, effectValueLoopflag) { - builder.addFieldInt32(37, effectValueLoopflag, 0); - } - static endAnimationInitialData(builder) { - const offset = builder.endObject(); - return offset; - } - static createAnimationInitialData(builder, index, lowflag, highflag, priority, cellIndex, opacity, localopacity, masklimen, positionX, positionY, positionZ, pivotX, pivotY, rotationX, rotationY, rotationZ, scaleX, scaleY, localscaleX, localscaleY, sizeX, sizeY, uvMoveX, uvMoveY, uvRotation, uvScaleX, uvScaleY, boundingRadius, instanceValueCurKeyframe, instanceValueStartFrame, instanceValueEndFrame, instanceValueLoopNum, instanceValueSpeed, instanceValueLoopflag, effectValueCurKeyframe, effectValueStartTime, effectValueSpeed, effectValueLoopflag) { - AnimationInitialData.startAnimationInitialData(builder); - AnimationInitialData.addIndex(builder, index); - AnimationInitialData.addLowflag(builder, lowflag); - AnimationInitialData.addHighflag(builder, highflag); - AnimationInitialData.addPriority(builder, priority); - AnimationInitialData.addCellIndex(builder, cellIndex); - AnimationInitialData.addOpacity(builder, opacity); - AnimationInitialData.addLocalopacity(builder, localopacity); - AnimationInitialData.addMasklimen(builder, masklimen); - AnimationInitialData.addPositionX(builder, positionX); - AnimationInitialData.addPositionY(builder, positionY); - AnimationInitialData.addPositionZ(builder, positionZ); - AnimationInitialData.addPivotX(builder, pivotX); - AnimationInitialData.addPivotY(builder, pivotY); - AnimationInitialData.addRotationX(builder, rotationX); - AnimationInitialData.addRotationY(builder, rotationY); - AnimationInitialData.addRotationZ(builder, rotationZ); - AnimationInitialData.addScaleX(builder, scaleX); - AnimationInitialData.addScaleY(builder, scaleY); - AnimationInitialData.addLocalscaleX(builder, localscaleX); - AnimationInitialData.addLocalscaleY(builder, localscaleY); - AnimationInitialData.addSizeX(builder, sizeX); - AnimationInitialData.addSizeY(builder, sizeY); - AnimationInitialData.addUvMoveX(builder, uvMoveX); - AnimationInitialData.addUvMoveY(builder, uvMoveY); - AnimationInitialData.addUvRotation(builder, uvRotation); - AnimationInitialData.addUvScaleX(builder, uvScaleX); - AnimationInitialData.addUvScaleY(builder, uvScaleY); - AnimationInitialData.addBoundingRadius(builder, boundingRadius); - AnimationInitialData.addInstanceValueCurKeyframe(builder, instanceValueCurKeyframe); - AnimationInitialData.addInstanceValueStartFrame(builder, instanceValueStartFrame); - AnimationInitialData.addInstanceValueEndFrame(builder, instanceValueEndFrame); - AnimationInitialData.addInstanceValueLoopNum(builder, instanceValueLoopNum); - AnimationInitialData.addInstanceValueSpeed(builder, instanceValueSpeed); - AnimationInitialData.addInstanceValueLoopflag(builder, instanceValueLoopflag); - AnimationInitialData.addEffectValueCurKeyframe(builder, effectValueCurKeyframe); - AnimationInitialData.addEffectValueStartTime(builder, effectValueStartTime); - AnimationInitialData.addEffectValueSpeed(builder, effectValueSpeed); - AnimationInitialData.addEffectValueLoopflag(builder, effectValueLoopflag); - return AnimationInitialData.endAnimationInitialData(builder); - } - } - class partState { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAspartState(bb, obj) { - return (obj || new partState()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAspartState(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new partState()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - index() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - flag1() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - flag2() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - data(index) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readUint32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; - } - dataLength() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - dataArray() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - static startpartState(builder) { - builder.startObject(4); - } - static addIndex(builder, index) { - builder.addFieldInt16(0, index, 0); - } - static addFlag1(builder, flag1) { - builder.addFieldInt32(1, flag1, 0); - } - static addFlag2(builder, flag2) { - builder.addFieldInt32(2, flag2, 0); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(3, dataOffset, 0); - } - static createDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt32(data[i]); - } - return builder.endVector(); - } - static startDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endpartState(builder) { - const offset = builder.endObject(); - return offset; - } - static createpartState(builder, index, flag1, flag2, dataOffset) { - partState.startpartState(builder); - partState.addIndex(builder, index); - partState.addFlag1(builder, flag1); - partState.addFlag2(builder, flag2); - partState.addData(builder, dataOffset); - return partState.endpartState(builder); - } - } - class frameDataIndex { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsframeDataIndex(bb, obj) { - return (obj || new frameDataIndex()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsframeDataIndex(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new frameDataIndex()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - states(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? (obj || new partState()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - statesLength() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startframeDataIndex(builder) { - builder.startObject(1); - } - static addStates(builder, statesOffset) { - builder.addFieldOffset(0, statesOffset, 0); - } - static createStatesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startStatesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endframeDataIndex(builder) { - const offset = builder.endObject(); - return offset; - } - static createframeDataIndex(builder, statesOffset) { - frameDataIndex.startframeDataIndex(builder); - frameDataIndex.addStates(builder, statesOffset); - return frameDataIndex.endframeDataIndex(builder); - } - } - class labelDataItem { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAslabelDataItem(bb, obj) { - return (obj || new labelDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAslabelDataItem(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new labelDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - label(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - frameIndex() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startlabelDataItem(builder) { - builder.startObject(2); - } - static addLabel(builder, labelOffset) { - builder.addFieldOffset(0, labelOffset, 0); - } - static addFrameIndex(builder, frameIndex) { - builder.addFieldInt16(1, frameIndex, 0); - } - static endlabelDataItem(builder) { - const offset = builder.endObject(); - return offset; - } - static createlabelDataItem(builder, labelOffset, frameIndex) { - labelDataItem.startlabelDataItem(builder); - labelDataItem.addLabel(builder, labelOffset); - labelDataItem.addFrameIndex(builder, frameIndex); - return labelDataItem.endlabelDataItem(builder); - } - } - class meshDataIndices { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsmeshDataIndices(bb, obj) { - return (obj || new meshDataIndices()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsmeshDataIndices(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new meshDataIndices()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - indices(index) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; - } - indicesLength() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - indicesArray() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - static startmeshDataIndices(builder) { - builder.startObject(1); - } - static addIndices(builder, indicesOffset) { - builder.addFieldOffset(0, indicesOffset, 0); - } - static createIndicesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addFloat32(data[i]); - } - return builder.endVector(); - } - static startIndicesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endmeshDataIndices(builder) { - const offset = builder.endObject(); - return offset; - } - static createmeshDataIndices(builder, indicesOffset) { - meshDataIndices.startmeshDataIndices(builder); - meshDataIndices.addIndices(builder, indicesOffset); - return meshDataIndices.endmeshDataIndices(builder); - } - } - class meshDataUV { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsmeshDataUV(bb, obj) { - return (obj || new meshDataUV()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsmeshDataUV(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new meshDataUV()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - uv(index) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; - } - uvLength() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - uvArray() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - static startmeshDataUV(builder) { - builder.startObject(1); - } - static addUv(builder, uvOffset) { - builder.addFieldOffset(0, uvOffset, 0); - } - static createUvVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addFloat32(data[i]); - } - return builder.endVector(); - } - static startUvVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endmeshDataUV(builder) { - const offset = builder.endObject(); - return offset; - } - static createmeshDataUV(builder, uvOffset) { - meshDataUV.startmeshDataUV(builder); - meshDataUV.addUv(builder, uvOffset); - return meshDataUV.endmeshDataUV(builder); - } - } - class userDataItem { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsuserDataItem(bb, obj) { - return (obj || new userDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsuserDataItem(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new userDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - flags() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - arrayIndex() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - dataType(index) { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; - } - dataTypeLength() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - dataTypeArray() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - data(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__union(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; - } - dataLength() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startuserDataItem(builder) { - builder.startObject(4); - } - static addFlags(builder, flags) { - builder.addFieldInt16(0, flags, 0); - } - static addArrayIndex(builder, arrayIndex) { - builder.addFieldInt16(1, arrayIndex, 0); - } - static addDataType(builder, dataTypeOffset) { - builder.addFieldOffset(2, dataTypeOffset, 0); - } - static createDataTypeVector(builder, data) { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]); - } - return builder.endVector(); - } - static startDataTypeVector(builder, numElems) { - builder.startVector(1, numElems, 1); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(3, dataOffset, 0); - } - static createDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static enduserDataItem(builder) { - const offset = builder.endObject(); - return offset; - } - static createuserDataItem(builder, flags, arrayIndex, dataTypeOffset, dataOffset) { - userDataItem.startuserDataItem(builder); - userDataItem.addFlags(builder, flags); - userDataItem.addArrayIndex(builder, arrayIndex); - userDataItem.addDataType(builder, dataTypeOffset); - userDataItem.addData(builder, dataOffset); - return userDataItem.enduserDataItem(builder); - } - } - class userDataPerFrame { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsuserDataPerFrame(bb, obj) { - return (obj || new userDataPerFrame()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsuserDataPerFrame(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new userDataPerFrame()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - frameIndex() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - data(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new userDataItem()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - dataLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startuserDataPerFrame(builder) { - builder.startObject(2); - } - static addFrameIndex(builder, frameIndex) { - builder.addFieldInt16(0, frameIndex, 0); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(1, dataOffset, 0); - } - static createDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static enduserDataPerFrame(builder) { - const offset = builder.endObject(); - return offset; - } - static createuserDataPerFrame(builder, frameIndex, dataOffset) { - userDataPerFrame.startuserDataPerFrame(builder); - userDataPerFrame.addFrameIndex(builder, frameIndex); - userDataPerFrame.addData(builder, dataOffset); - return userDataPerFrame.enduserDataPerFrame(builder); - } - } - class AnimationData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsAnimationData(bb, obj) { - return (obj || new AnimationData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsAnimationData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new AnimationData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - defaultData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new AnimationInitialData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - defaultDataLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - frameData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? (obj || new frameDataIndex()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - frameDataLength() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - userData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? (obj || new userDataPerFrame()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - userDataLength() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - labelData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? (obj || new labelDataItem()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - labelDataLength() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - meshsDataUv(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? (obj || new meshDataUV()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - meshsDataUvLength() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - meshsDataIndices(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? (obj || new meshDataIndices()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - meshsDataIndicesLength() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - startFrames() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - endFrames() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - totalFrames() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - fps() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - labelNum() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - canvasSizeW() { - const offset = this.bb.__offset(this.bb_pos, 28); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - canvasSizeH() { - const offset = this.bb.__offset(this.bb_pos, 30); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - canvasPvotX() { - const offset = this.bb.__offset(this.bb_pos, 32); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - canvasPvotY() { - const offset = this.bb.__offset(this.bb_pos, 34); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - static startAnimationData(builder) { - builder.startObject(16); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addDefaultData(builder, defaultDataOffset) { - builder.addFieldOffset(1, defaultDataOffset, 0); - } - static createDefaultDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDefaultDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addFrameData(builder, frameDataOffset) { - builder.addFieldOffset(2, frameDataOffset, 0); - } - static createFrameDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startFrameDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addUserData(builder, userDataOffset) { - builder.addFieldOffset(3, userDataOffset, 0); - } - static createUserDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startUserDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addLabelData(builder, labelDataOffset) { - builder.addFieldOffset(4, labelDataOffset, 0); - } - static createLabelDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startLabelDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addMeshsDataUv(builder, meshsDataUvOffset) { - builder.addFieldOffset(5, meshsDataUvOffset, 0); - } - static createMeshsDataUvVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startMeshsDataUvVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addMeshsDataIndices(builder, meshsDataIndicesOffset) { - builder.addFieldOffset(6, meshsDataIndicesOffset, 0); - } - static createMeshsDataIndicesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startMeshsDataIndicesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addStartFrames(builder, startFrames) { - builder.addFieldInt16(7, startFrames, 0); - } - static addEndFrames(builder, endFrames) { - builder.addFieldInt16(8, endFrames, 0); - } - static addTotalFrames(builder, totalFrames) { - builder.addFieldInt16(9, totalFrames, 0); - } - static addFps(builder, fps) { - builder.addFieldInt16(10, fps, 0); - } - static addLabelNum(builder, labelNum) { - builder.addFieldInt16(11, labelNum, 0); - } - static addCanvasSizeW(builder, canvasSizeW) { - builder.addFieldInt16(12, canvasSizeW, 0); - } - static addCanvasSizeH(builder, canvasSizeH) { - builder.addFieldInt16(13, canvasSizeH, 0); - } - static addCanvasPvotX(builder, canvasPvotX) { - builder.addFieldFloat32(14, canvasPvotX, 0); - } - static addCanvasPvotY(builder, canvasPvotY) { - builder.addFieldFloat32(15, canvasPvotY, 0); - } - static endAnimationData(builder) { - const offset = builder.endObject(); - return offset; - } - static createAnimationData(builder, nameOffset, defaultDataOffset, frameDataOffset, userDataOffset, labelDataOffset, meshsDataUvOffset, meshsDataIndicesOffset, startFrames, endFrames, totalFrames, fps, labelNum, canvasSizeW, canvasSizeH, canvasPvotX, canvasPvotY) { - AnimationData.startAnimationData(builder); - AnimationData.addName(builder, nameOffset); - AnimationData.addDefaultData(builder, defaultDataOffset); - AnimationData.addFrameData(builder, frameDataOffset); - AnimationData.addUserData(builder, userDataOffset); - AnimationData.addLabelData(builder, labelDataOffset); - AnimationData.addMeshsDataUv(builder, meshsDataUvOffset); - AnimationData.addMeshsDataIndices(builder, meshsDataIndicesOffset); - AnimationData.addStartFrames(builder, startFrames); - AnimationData.addEndFrames(builder, endFrames); - AnimationData.addTotalFrames(builder, totalFrames); - AnimationData.addFps(builder, fps); - AnimationData.addLabelNum(builder, labelNum); - AnimationData.addCanvasSizeW(builder, canvasSizeW); - AnimationData.addCanvasSizeH(builder, canvasSizeH); - AnimationData.addCanvasPvotX(builder, canvasPvotX); - AnimationData.addCanvasPvotY(builder, canvasPvotY); - return AnimationData.endAnimationData(builder); - } - } - var SsPartType = /* @__PURE__ */ ((SsPartType2) => { - SsPartType2[SsPartType2["Invalid"] = -1] = "Invalid"; - SsPartType2[SsPartType2["Nulltype"] = 0] = "Nulltype"; - SsPartType2[SsPartType2["Normal"] = 1] = "Normal"; - SsPartType2[SsPartType2["Text"] = 2] = "Text"; - SsPartType2[SsPartType2["Instance"] = 3] = "Instance"; - SsPartType2[SsPartType2["Armature"] = 4] = "Armature"; - SsPartType2[SsPartType2["Effect"] = 5] = "Effect"; - SsPartType2[SsPartType2["Mesh"] = 6] = "Mesh"; - SsPartType2[SsPartType2["Movenode"] = 7] = "Movenode"; - SsPartType2[SsPartType2["Constraint"] = 8] = "Constraint"; - SsPartType2[SsPartType2["Mask"] = 9] = "Mask"; - SsPartType2[SsPartType2["Joint"] = 10] = "Joint"; - SsPartType2[SsPartType2["Bonepoint"] = 11] = "Bonepoint"; - return SsPartType2; - })(SsPartType || {}); - class PartData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsPartData(bb, obj) { - return (obj || new PartData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsPartData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new PartData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - index() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - parentIndex() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - type() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt8(this.bb_pos + offset) : SsPartType.Nulltype; - } - boundsType() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - alphaBlendType() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - refname(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - effectfilename(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - colorLabel(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - maskInfluence() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startPartData(builder) { - builder.startObject(10); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addIndex(builder, index) { - builder.addFieldInt16(1, index, 0); - } - static addParentIndex(builder, parentIndex) { - builder.addFieldInt16(2, parentIndex, 0); - } - static addType(builder, type) { - builder.addFieldInt8(3, type, SsPartType.Nulltype); - } - static addBoundsType(builder, boundsType) { - builder.addFieldInt16(4, boundsType, 0); - } - static addAlphaBlendType(builder, alphaBlendType) { - builder.addFieldInt16(5, alphaBlendType, 0); - } - static addRefname(builder, refnameOffset) { - builder.addFieldOffset(6, refnameOffset, 0); - } - static addEffectfilename(builder, effectfilenameOffset) { - builder.addFieldOffset(7, effectfilenameOffset, 0); - } - static addColorLabel(builder, colorLabelOffset) { - builder.addFieldOffset(8, colorLabelOffset, 0); - } - static addMaskInfluence(builder, maskInfluence) { - builder.addFieldInt16(9, maskInfluence, 0); - } - static endPartData(builder) { - const offset = builder.endObject(); - return offset; - } - static createPartData(builder, nameOffset, index, parentIndex, type, boundsType, alphaBlendType, refnameOffset, effectfilenameOffset, colorLabelOffset, maskInfluence) { - PartData.startPartData(builder); - PartData.addName(builder, nameOffset); - PartData.addIndex(builder, index); - PartData.addParentIndex(builder, parentIndex); - PartData.addType(builder, type); - PartData.addBoundsType(builder, boundsType); - PartData.addAlphaBlendType(builder, alphaBlendType); - PartData.addRefname(builder, refnameOffset); - PartData.addEffectfilename(builder, effectfilenameOffset); - PartData.addColorLabel(builder, colorLabelOffset); - PartData.addMaskInfluence(builder, maskInfluence); - return PartData.endPartData(builder); - } - } - class AnimePackData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsAnimePackData(bb, obj) { - return (obj || new AnimePackData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsAnimePackData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new AnimePackData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - parts(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new PartData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - partsLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - animations(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? (obj || new AnimationData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - animationsLength() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startAnimePackData(builder) { - builder.startObject(3); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addParts(builder, partsOffset) { - builder.addFieldOffset(1, partsOffset, 0); - } - static createPartsVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startPartsVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addAnimations(builder, animationsOffset) { - builder.addFieldOffset(2, animationsOffset, 0); - } - static createAnimationsVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startAnimationsVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endAnimePackData(builder) { - const offset = builder.endObject(); - return offset; - } - static createAnimePackData(builder, nameOffset, partsOffset, animationsOffset) { - AnimePackData.startAnimePackData(builder); - AnimePackData.addName(builder, nameOffset); - AnimePackData.addParts(builder, partsOffset); - AnimePackData.addAnimations(builder, animationsOffset); - return AnimePackData.endAnimePackData(builder); - } - } - class CellMap { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsCellMap(bb, obj) { - return (obj || new CellMap()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsCellMap(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new CellMap()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - imagePath(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - index() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - wrapmode() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - filtermode() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startCellMap(builder) { - builder.startObject(5); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addImagePath(builder, imagePathOffset) { - builder.addFieldOffset(1, imagePathOffset, 0); - } - static addIndex(builder, index) { - builder.addFieldInt16(2, index, 0); - } - static addWrapmode(builder, wrapmode) { - builder.addFieldInt16(3, wrapmode, 0); - } - static addFiltermode(builder, filtermode) { - builder.addFieldInt16(4, filtermode, 0); - } - static endCellMap(builder) { - const offset = builder.endObject(); - return offset; - } - static createCellMap(builder, nameOffset, imagePathOffset, index, wrapmode, filtermode) { - CellMap.startCellMap(builder); - CellMap.addName(builder, nameOffset); - CellMap.addImagePath(builder, imagePathOffset); - CellMap.addIndex(builder, index); - CellMap.addWrapmode(builder, wrapmode); - CellMap.addFiltermode(builder, filtermode); - return CellMap.endCellMap(builder); - } - } - class Cell { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsCell(bb, obj) { - return (obj || new Cell()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsCell(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new Cell()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - cellMap(obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new CellMap()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; - } - indexInCellMap() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - x() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - y() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - width() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - height() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - pivotX() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - pivotY() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - u1() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - v1() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - u2() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - v2() { - const offset = this.bb.__offset(this.bb_pos, 28); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - static startCell(builder) { - builder.startObject(13); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addCellMap(builder, cellMapOffset) { - builder.addFieldOffset(1, cellMapOffset, 0); - } - static addIndexInCellMap(builder, indexInCellMap) { - builder.addFieldInt16(2, indexInCellMap, 0); - } - static addX(builder, x) { - builder.addFieldInt16(3, x, 0); - } - static addY(builder, y) { - builder.addFieldInt16(4, y, 0); - } - static addWidth(builder, width) { - builder.addFieldInt16(5, width, 0); - } - static addHeight(builder, height) { - builder.addFieldInt16(6, height, 0); - } - static addPivotX(builder, pivotX) { - builder.addFieldFloat32(7, pivotX, 0); - } - static addPivotY(builder, pivotY) { - builder.addFieldFloat32(8, pivotY, 0); - } - static addU1(builder, u1) { - builder.addFieldFloat32(9, u1, 0); - } - static addV1(builder, v1) { - builder.addFieldFloat32(10, v1, 0); - } - static addU2(builder, u2) { - builder.addFieldFloat32(11, u2, 0); - } - static addV2(builder, v2) { - builder.addFieldFloat32(12, v2, 0); - } - static endCell(builder) { - const offset = builder.endObject(); - return offset; - } - } - class EffectNode { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsEffectNode(bb, obj) { - return (obj || new EffectNode()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsEffectNode(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new EffectNode()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - arrayIndex() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - parentIndex() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - type() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - cellIndex() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - blendType() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numBehavior() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - behaviorType(index) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; - } - behaviorTypeLength() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - behaviorTypeArray() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - behavior(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__union(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; - } - behaviorLength() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startEffectNode(builder) { - builder.startObject(8); - } - static addArrayIndex(builder, arrayIndex) { - builder.addFieldInt16(0, arrayIndex, 0); - } - static addParentIndex(builder, parentIndex) { - builder.addFieldInt16(1, parentIndex, 0); - } - static addType(builder, type) { - builder.addFieldInt16(2, type, 0); - } - static addCellIndex(builder, cellIndex) { - builder.addFieldInt16(3, cellIndex, 0); - } - static addBlendType(builder, blendType) { - builder.addFieldInt16(4, blendType, 0); - } - static addNumBehavior(builder, numBehavior) { - builder.addFieldInt16(5, numBehavior, 0); - } - static addBehaviorType(builder, behaviorTypeOffset) { - builder.addFieldOffset(6, behaviorTypeOffset, 0); - } - static createBehaviorTypeVector(builder, data) { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]); - } - return builder.endVector(); - } - static startBehaviorTypeVector(builder, numElems) { - builder.startVector(1, numElems, 1); - } - static addBehavior(builder, behaviorOffset) { - builder.addFieldOffset(7, behaviorOffset, 0); - } - static createBehaviorVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startBehaviorVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endEffectNode(builder) { - const offset = builder.endObject(); - return offset; - } - static createEffectNode(builder, arrayIndex, parentIndex, type, cellIndex, blendType, numBehavior, behaviorTypeOffset, behaviorOffset) { - EffectNode.startEffectNode(builder); - EffectNode.addArrayIndex(builder, arrayIndex); - EffectNode.addParentIndex(builder, parentIndex); - EffectNode.addType(builder, type); - EffectNode.addCellIndex(builder, cellIndex); - EffectNode.addBlendType(builder, blendType); - EffectNode.addNumBehavior(builder, numBehavior); - EffectNode.addBehaviorType(builder, behaviorTypeOffset); - EffectNode.addBehavior(builder, behaviorOffset); - return EffectNode.endEffectNode(builder); - } - } - class EffectFile { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsEffectFile(bb, obj) { - return (obj || new EffectFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsEffectFile(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new EffectFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - fps() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - isLockRandSeed() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - lockRandSeed() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - layoutScaleX() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - layoutScaleY() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numNodeList() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - effectNode(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? (obj || new EffectNode()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - effectNodeLength() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startEffectFile(builder) { - builder.startObject(8); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addFps(builder, fps) { - builder.addFieldInt16(1, fps, 0); - } - static addIsLockRandSeed(builder, isLockRandSeed) { - builder.addFieldInt16(2, isLockRandSeed, 0); - } - static addLockRandSeed(builder, lockRandSeed) { - builder.addFieldInt16(3, lockRandSeed, 0); - } - static addLayoutScaleX(builder, layoutScaleX) { - builder.addFieldInt16(4, layoutScaleX, 0); - } - static addLayoutScaleY(builder, layoutScaleY) { - builder.addFieldInt16(5, layoutScaleY, 0); - } - static addNumNodeList(builder, numNodeList) { - builder.addFieldInt16(6, numNodeList, 0); - } - static addEffectNode(builder, effectNodeOffset) { - builder.addFieldOffset(7, effectNodeOffset, 0); - } - static createEffectNodeVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startEffectNodeVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endEffectFile(builder) { - const offset = builder.endObject(); - return offset; - } - static createEffectFile(builder, nameOffset, fps, isLockRandSeed, lockRandSeed, layoutScaleX, layoutScaleY, numNodeList, effectNodeOffset) { - EffectFile.startEffectFile(builder); - EffectFile.addName(builder, nameOffset); - EffectFile.addFps(builder, fps); - EffectFile.addIsLockRandSeed(builder, isLockRandSeed); - EffectFile.addLockRandSeed(builder, lockRandSeed); - EffectFile.addLayoutScaleX(builder, layoutScaleX); - EffectFile.addLayoutScaleY(builder, layoutScaleY); - EffectFile.addNumNodeList(builder, numNodeList); - EffectFile.addEffectNode(builder, effectNodeOffset); - return EffectFile.endEffectFile(builder); - } - } - var PART_FLAG = /* @__PURE__ */ ((PART_FLAG22) => { - PART_FLAG22[PART_FLAG22["INVISIBLE"] = 1] = "INVISIBLE"; - PART_FLAG22[PART_FLAG22["FLIP_H"] = 2] = "FLIP_H"; - PART_FLAG22[PART_FLAG22["FLIP_V"] = 4] = "FLIP_V"; - PART_FLAG22[PART_FLAG22["CELL_INDEX"] = 8] = "CELL_INDEX"; - PART_FLAG22[PART_FLAG22["POSITION_X"] = 16] = "POSITION_X"; - PART_FLAG22[PART_FLAG22["POSITION_Y"] = 32] = "POSITION_Y"; - PART_FLAG22[PART_FLAG22["POSITION_Z"] = 64] = "POSITION_Z"; - PART_FLAG22[PART_FLAG22["PIVOT_X"] = 128] = "PIVOT_X"; - PART_FLAG22[PART_FLAG22["PIVOT_Y"] = 256] = "PIVOT_Y"; - PART_FLAG22[PART_FLAG22["ROTATIONX"] = 512] = "ROTATIONX"; - PART_FLAG22[PART_FLAG22["ROTATIONY"] = 1024] = "ROTATIONY"; - PART_FLAG22[PART_FLAG22["ROTATIONZ"] = 2048] = "ROTATIONZ"; - PART_FLAG22[PART_FLAG22["SCALE_X"] = 4096] = "SCALE_X"; - PART_FLAG22[PART_FLAG22["SCALE_Y"] = 8192] = "SCALE_Y"; - PART_FLAG22[PART_FLAG22["LOCALSCALE_X"] = 16384] = "LOCALSCALE_X"; - PART_FLAG22[PART_FLAG22["LOCALSCALE_Y"] = 32768] = "LOCALSCALE_Y"; - PART_FLAG22[PART_FLAG22["OPACITY"] = 65536] = "OPACITY"; - PART_FLAG22[PART_FLAG22["LOCALOPACITY"] = 131072] = "LOCALOPACITY"; - PART_FLAG22[PART_FLAG22["PARTS_COLOR"] = 262144] = "PARTS_COLOR"; - PART_FLAG22[PART_FLAG22["VERTEX_TRANSFORM"] = 524288] = "VERTEX_TRANSFORM"; - PART_FLAG22[PART_FLAG22["SIZE_X"] = 1048576] = "SIZE_X"; - PART_FLAG22[PART_FLAG22["SIZE_Y"] = 2097152] = "SIZE_Y"; - PART_FLAG22[PART_FLAG22["U_MOVE"] = 4194304] = "U_MOVE"; - PART_FLAG22[PART_FLAG22["V_MOVE"] = 8388608] = "V_MOVE"; - PART_FLAG22[PART_FLAG22["UV_ROTATION"] = 16777216] = "UV_ROTATION"; - PART_FLAG22[PART_FLAG22["U_SCALE"] = 33554432] = "U_SCALE"; - PART_FLAG22[PART_FLAG22["V_SCALE"] = 67108864] = "V_SCALE"; - PART_FLAG22[PART_FLAG22["BOUNDINGRADIUS"] = 134217728] = "BOUNDINGRADIUS"; - PART_FLAG22[PART_FLAG22["MASK"] = 268435456] = "MASK"; - PART_FLAG22[PART_FLAG22["PRIORITY"] = 536870912] = "PRIORITY"; - PART_FLAG22[PART_FLAG22["INSTANCE_KEYFRAME"] = 1073741824] = "INSTANCE_KEYFRAME"; - PART_FLAG22[PART_FLAG22["EFFECT_KEYFRAME"] = 2147483648] = "EFFECT_KEYFRAME"; - return PART_FLAG22; - })(PART_FLAG || {}); - var PART_FLAG2 = /* @__PURE__ */ ((PART_FLAG22) => { - PART_FLAG22[PART_FLAG22["MESHDATA"] = 1] = "MESHDATA"; - return PART_FLAG22; - })(PART_FLAG2 || {}); - class ProjectData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsProjectData(bb, obj) { - return (obj || new ProjectData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsProjectData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new ProjectData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static bufferHasIdentifier(bb) { - return bb.__has_identifier("SSFB"); - } - dataId() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - version() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - flags() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - imageBaseDir(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - cells(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? (obj || new Cell()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - cellsLength() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - animePacks(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? (obj || new AnimePackData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - animePacksLength() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - effectFileList(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? (obj || new EffectFile()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - effectFileListLength() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - numCells() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numAnimePacks() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numEffectFileList() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startProjectData(builder) { - builder.startObject(10); - } - static addDataId(builder, dataId) { - builder.addFieldInt32(0, dataId, 0); - } - static addVersion(builder, version) { - builder.addFieldInt32(1, version, 0); - } - static addFlags(builder, flags) { - builder.addFieldInt32(2, flags, 0); - } - static addImageBaseDir(builder, imageBaseDirOffset) { - builder.addFieldOffset(3, imageBaseDirOffset, 0); - } - static addCells(builder, cellsOffset) { - builder.addFieldOffset(4, cellsOffset, 0); - } - static createCellsVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startCellsVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addAnimePacks(builder, animePacksOffset) { - builder.addFieldOffset(5, animePacksOffset, 0); - } - static createAnimePacksVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startAnimePacksVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addEffectFileList(builder, effectFileListOffset) { - builder.addFieldOffset(6, effectFileListOffset, 0); - } - static createEffectFileListVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startEffectFileListVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addNumCells(builder, numCells) { - builder.addFieldInt16(7, numCells, 0); - } - static addNumAnimePacks(builder, numAnimePacks) { - builder.addFieldInt16(8, numAnimePacks, 0); - } - static addNumEffectFileList(builder, numEffectFileList) { - builder.addFieldInt16(9, numEffectFileList, 0); - } - static endProjectData(builder) { - const offset = builder.endObject(); - return offset; - } - static finishProjectDataBuffer(builder, offset) { - builder.finish(offset, "SSFB"); - } - static finishSizePrefixedProjectDataBuffer(builder, offset) { - builder.finish(offset, "SSFB", true); - } - static createProjectData(builder, dataId, version, flags, imageBaseDirOffset, cellsOffset, animePacksOffset, effectFileListOffset, numCells, numAnimePacks, numEffectFileList) { - ProjectData.startProjectData(builder); - ProjectData.addDataId(builder, dataId); - ProjectData.addVersion(builder, version); - ProjectData.addFlags(builder, flags); - ProjectData.addImageBaseDir(builder, imageBaseDirOffset); - ProjectData.addCells(builder, cellsOffset); - ProjectData.addAnimePacks(builder, animePacksOffset); - ProjectData.addEffectFileList(builder, effectFileListOffset); - ProjectData.addNumCells(builder, numCells); - ProjectData.addNumAnimePacks(builder, numAnimePacks); - ProjectData.addNumEffectFileList(builder, numEffectFileList); - return ProjectData.endProjectData(builder); - } - } - class userDataInteger { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - integer() { - return this.bb.readInt32(this.bb_pos); - } - static sizeOf() { - return 4; - } - static createuserDataInteger(builder, integer) { - builder.prep(4, 4); - builder.writeInt32(integer); - return builder.offset(); - } - } - class userDataPoint { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - x() { - return this.bb.readInt32(this.bb_pos); - } - y() { - return this.bb.readInt32(this.bb_pos + 4); - } - static sizeOf() { - return 8; - } - static createuserDataPoint(builder, x, y) { - builder.prep(4, 8); - builder.writeInt32(y); - builder.writeInt32(x); - return builder.offset(); - } - } - class userDataRect { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - x() { - return this.bb.readInt32(this.bb_pos); - } - y() { - return this.bb.readInt32(this.bb_pos + 4); - } - w() { - return this.bb.readInt32(this.bb_pos + 8); - } - h() { - return this.bb.readInt32(this.bb_pos + 12); - } - static sizeOf() { - return 16; - } - static createuserDataRect(builder, x, y, w, h) { - builder.prep(4, 16); - builder.writeInt32(h); - builder.writeInt32(w); - builder.writeInt32(y); - builder.writeInt32(x); - return builder.offset(); - } - } - class userDataString { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsuserDataString(bb, obj) { - return (obj || new userDataString()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsuserDataString(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new userDataString()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - length() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - data(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - static startuserDataString(builder) { - builder.startObject(2); - } - static addLength(builder, length) { - builder.addFieldInt32(0, length, 0); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(1, dataOffset, 0); - } - static enduserDataString(builder) { - const offset = builder.endObject(); - return offset; - } - static createuserDataString(builder, length, dataOffset) { - userDataString.startuserDataString(builder); - userDataString.addLength(builder, length); - userDataString.addData(builder, dataOffset); - return userDataString.enduserDataString(builder); - } - } - let Utils$1 = class Utils { - static getProjectData(bytes) { - const buf = new ByteBuffer(bytes); - return ProjectData.getRootAsProjectData(buf); - } - }; - class Utils2 { - static getProjectData(bytes) { - return Utils$1.getProjectData(bytes); - } - } - class Player { - constructor(ssfbData, animePackName = null, animeName = null) { - this.curAnimePackName = null; - this.curAnimeName = null; - this.curAnimation = null; - this.curAnimePackData = null; - this._animePackIdx = -1; - this._parentIndex = []; - this._prio2index = []; - this.userData = []; - this.frameDataCache = null; - this.currentCachedFrameNumber = -1; - this.defaultFrameMap = []; - this._uint32 = new Uint32Array(1); - this._float32 = new Float32Array(this._uint32.buffer); - if (Object.prototype.hasOwnProperty.call(ssfbData, "bb")) { - this._fbObj = ssfbData; - } else { - this._fbObj = Utils2.getProjectData(ssfbData); - } - if (animePackName !== null && animeName !== null) { - this.Setup(animePackName, animeName); - } - } - get fbObj() { - return this._fbObj; - } - get animePackName() { - return this.curAnimePackName; - } - get animeName() { - return this.curAnimeName; - } - get animePackIdx() { - return this._animePackIdx; - } - get animePackData() { - return this.curAnimePackData; - } - get animationData() { - return this.curAnimation; - } - get parentIndex() { - return this._parentIndex; - } - get prio2index() { - return this._prio2index; - } - /** - * Setup - * @param {string} animePackName - The name of animePack(SSAE). - * @param {string} animeName - The name of animation. - */ - Setup(animePackName, animeName) { - this.clearCaches(); - const animePacksLength = this._fbObj.animePacksLength(); - let found = false; - for (let i = 0; i < animePacksLength; i++) { - if (this._fbObj.animePacks(i).name() === animePackName) { - let j; - const animationsLength = this._fbObj.animePacks(i).animationsLength(); - for (j = 0; j < animationsLength; j++) { - if (this._fbObj.animePacks(i).animations(j).name() === animeName) { - this.curAnimePackName = animePackName; - this.curAnimeName = animeName; - this.curAnimePackData = this._fbObj.animePacks(i); - this.curAnimation = this.curAnimePackData.animations(j); - found = true; - break; - } - } - if (!found) { - continue; - } - const defaultDataLength = this.curAnimation.defaultDataLength(); - for (let j2 = 0; j2 < defaultDataLength; j2++) { - const curDefaultData = this.curAnimation.defaultData(j2); - this.defaultFrameMap[curDefaultData.index()] = curDefaultData; - } - this._animePackIdx = i; - const partsLength = this.curAnimePackData.partsLength(); - this._parentIndex = new Array(partsLength); - for (j = 0; j < partsLength; j++) { - const index = this.curAnimePackData.parts(j).index(); - this._parentIndex[index] = this._fbObj.animePacks(i).parts(j).parentIndex(); - } - } - } - if (!found) { - throw Error("not found animePackName: " + animePackName + " animeName: " + animeName); - } - } - clearCaches() { - this._prio2index = []; - this.userData = []; - this.frameDataCache = null; - this.currentCachedFrameNumber = -1; - this.defaultFrameMap = []; - } - /** - * ユーザーデータコールバックの設定 - * @param fn - * @constructor - * - * ユーザーデータのフォーマット - * data = [[d0,d1,...,d10],[da0,da1,...,da10],...]) - * data.length : 当該フレームでユーザーデータの存在するパーツ(レイヤー)数 - * d0 : パーツ(レイヤー)番号 - * d1 : 有効データビット(&1:int, &2:rect(int*4), &4:pos(int*2), &8:string) - * d2 : int(int) - * d3 : rect0(int) - * d4 : rect1(int) - * d5 : rect2(int) - * d6 : rect3(int) - * d7 : pos0(int) - * d8 : pos1(int) - * d9 : string.length(int) - * d10: string(string) - * - */ - /** - * ユーザーデータの存在チェック - * @param {number} frameNumber - フレーム番号 - * @return {boolean} - 存在するかどうか - */ - HaveUserData(frameNumber) { - if (this.userData[frameNumber] === null) { - return false; - } - if (this.userData[frameNumber] !== void 0) { - return true; - } - for (let k = 0; k < this.curAnimation.userDataLength(); k++) { - if (frameNumber === this.curAnimation.userData(k).frameIndex()) { - this.userData[frameNumber] = this.curAnimation.userData(k); - return true; - } - } - this.userData[frameNumber] = null; - return false; - } - /** - * ユーザーデータの取得 - * @param {number} frameNumber - フレーム番号 - * @return {array} - ユーザーデータ - */ - GetUserData(frameNumber) { - if (this.HaveUserData(frameNumber) === false) { - return; - } - const framedata = this.userData[frameNumber]; - const layers = framedata.dataLength(); - let id = 0; - let data = []; - for (let i = 0; i < layers; i++) { - const bit = framedata.data(i).flags(); - const partsID = framedata.data(i).arrayIndex(); - let d_int = null; - let d_rect_x = null; - let d_rect_y = null; - let d_rect_w = null; - let d_rect_h = null; - let d_pos_x = null; - let d_pos_y = null; - let d_string_length = null; - let d_string = null; - if (bit & 1) { - d_int = framedata.data(i).data(id, new userDataInteger()).integer(); - id++; - } - if (bit & 2) { - d_rect_x = framedata.data(i).data(id, new userDataRect()).x(); - d_rect_y = framedata.data(i).data(id, new userDataRect()).y(); - d_rect_w = framedata.data(i).data(id, new userDataRect()).w(); - d_rect_h = framedata.data(i).data(id, new userDataRect()).h(); - id++; - } - if (bit & 4) { - d_pos_x = framedata.data(i).data(id, new userDataPoint()).x(); - d_pos_y = framedata.data(i).data(id, new userDataPoint()).y(); - id++; - } - if (bit & 8) { - d_string_length = framedata.data(i).data(id, new userDataString()).length(); - d_string = framedata.data(i).data(id, new userDataString()).data(); - id++; - } - data.push([partsID, bit, d_int, d_rect_x, d_rect_y, d_rect_w, d_rect_h, d_pos_x, d_pos_y, d_string_length, d_string]); - } - return data; - } - /** - * int型からfloat型に変換する - * @return {floatView[0]} - float型に変換したデータ - */ - I2F(i) { - this._uint32[0] = i; - return this._float32[0]; - } - /** - * 1フレーム分のデータを取得する(未設定項目はデフォルト) - * [注意]現verでは未対応項目があると正常動作しない可能性があります - * @param {number} frameNumber - フレーム番号 - */ - GetFrameData(frameNumber) { - if (this.currentCachedFrameNumber === frameNumber && this.frameDataCache) { - return this.frameDataCache; - } - const layers = this.curAnimation.defaultDataLength(); - let frameData = new Array(layers); - this._prio2index = new Array(layers); - const curFrameData = this.curAnimation.frameData(frameNumber); - for (let i = 0; i < layers; i++) { - const curPartState = curFrameData.states(i); - const index = curPartState.index(); - let f1 = curPartState.flag1(); - let f2 = curPartState.flag2(); - let fd = this.GetDefaultDataByIndex(index); - fd.flag1 = f1; - fd.flag2 = f2; - let id = 0; - if (f1 & PART_FLAG.INVISIBLE) fd.f_hide = true; - if (f1 & PART_FLAG.FLIP_H) fd.f_flipH = true; - if (f1 & PART_FLAG.FLIP_V) fd.f_flipV = true; - if (f1 & PART_FLAG.CELL_INDEX) fd.cellIndex = curPartState.data(id++); - if (f1 & PART_FLAG.POSITION_X) fd.positionX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.POSITION_Y) fd.positionY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.POSITION_Z) id++; - if (f1 & PART_FLAG.PIVOT_X) fd.pivotX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.PIVOT_Y) fd.pivotY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.ROTATIONX) id++; - if (f1 & PART_FLAG.ROTATIONY) id++; - if (f1 & PART_FLAG.ROTATIONZ) fd.rotationZ = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.SCALE_X) fd.scaleX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.SCALE_Y) fd.scaleY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.LOCALSCALE_X) fd.localscaleX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.LOCALSCALE_Y) fd.localscaleY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.OPACITY) fd.opacity = curPartState.data(id++); - if (f1 & PART_FLAG.LOCALOPACITY) fd.localopacity = curPartState.data(id++); - if (f1 & PART_FLAG.SIZE_X) fd.size_X = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.SIZE_Y) fd.size_Y = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.U_MOVE) fd.uv_move_X = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.V_MOVE) fd.uv_move_Y = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.UV_ROTATION) fd.uv_rotation = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.U_SCALE) fd.uv_scale_X = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.V_SCALE) fd.uv_scale_Y = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.BOUNDINGRADIUS) id++; - if (f1 & PART_FLAG.MASK) fd.masklimen = curPartState.data(id++); - if (f1 & PART_FLAG.PRIORITY) fd.priority = curPartState.data(id++); - if (f1 & PART_FLAG.INSTANCE_KEYFRAME) { - fd.instanceValue_curKeyframe = curPartState.data(id++); - fd.instanceValue_startFrame = curPartState.data(id++); - fd.instanceValue_endFrame = curPartState.data(id++); - fd.instanceValue_loopNum = curPartState.data(id++); - fd.instanceValue_speed = this.I2F(curPartState.data(id++)); - fd.instanceValue_loopflag = curPartState.data(id++); - } - if (f1 & PART_FLAG.EFFECT_KEYFRAME) { - fd.effectValue_curKeyframe = curPartState.data(id++); - fd.effectValue_startTime = curPartState.data(id++); - fd.effectValue_speed = this.I2F(curPartState.data(id++)); - fd.effectValue_loopflag = curPartState.data(id++); - } - if (f1 & PART_FLAG.VERTEX_TRANSFORM) { - fd.f_mesh = true; - const f = fd.i_transformVerts = curPartState.data(id++); - if (f & 1) { - fd.u00 = this.I2F(curPartState.data(id++)); - fd.v00 = this.I2F(curPartState.data(id++)); - } - if (f & 2) { - fd.u01 = this.I2F(curPartState.data(id++)); - fd.v01 = this.I2F(curPartState.data(id++)); - } - if (f & 4) { - fd.u10 = this.I2F(curPartState.data(id++)); - fd.v10 = this.I2F(curPartState.data(id++)); - } - if (f & 8) { - fd.u11 = this.I2F(curPartState.data(id++)); - fd.v11 = this.I2F(curPartState.data(id++)); - } - } - if (f1 & PART_FLAG.PARTS_COLOR) { - const f = curPartState.data(id++); - fd.colorBlendType = f & 255; - fd.useColorMatrix = fd.colorBlendType !== 1; - if (f & 4096) { - fd.colorRate = this.I2F(curPartState.data(id++)); - const bf = curPartState.data(id++); - const bf2 = curPartState.data(id++); - fd.colorArgb32 = bf << 16 | bf2; - fd.partsColorARGB = fd.colorArgb32 >>> 0; - if (fd.colorBlendType === 1) { - fd.tint = fd.colorArgb32 & 16777215; - } - } - } - if (f2 & PART_FLAG2.MESHDATA) { - const meshUv = this.curAnimation.meshsDataUv(index); - fd.meshIsBind = meshUv.uv(0); - fd.meshNum = meshUv.uv(1); - let mp = new Float32Array(fd.meshNum * 3); - for (let idx = 0; idx < fd.meshNum; idx++) { - const mx = this.I2F(curPartState.data(id++)); - const my = this.I2F(curPartState.data(id++)); - const mz = this.I2F(curPartState.data(id++)); - mp[idx * 3 + 0] = mx; - mp[idx * 3 + 1] = my; - mp[idx * 3 + 2] = mz; - } - fd.meshDataPoint = mp; - } - frameData[index] = fd; - this._prio2index[i] = index; - if (this.curAnimePackData.parts(index).type() === 0) { - frameData[index].cellIndex = -2; - } - } - this.frameDataCache = frameData; - this.currentCachedFrameNumber = frameNumber; - return frameData; - } - /** - * デフォルトデータを取得する - * @param {number} id - パーツ(レイヤー)ID - * @return {array} - データ - */ - GetDefaultDataByIndex(id) { - const curDefaultData = this.defaultFrameMap[id]; - let dfd = new FrameData(); - dfd.index = curDefaultData.index(); - dfd.lowflag = curDefaultData.lowflag(); - dfd.highflag = curDefaultData.highflag(); - dfd.priority = curDefaultData.priority(); - dfd.cellIndex = curDefaultData.cellIndex(); - dfd.opacity = curDefaultData.opacity(); - dfd.localopacity = curDefaultData.localopacity(); - dfd.masklimen = curDefaultData.masklimen(); - dfd.positionX = curDefaultData.positionX(); - dfd.positionY = curDefaultData.positionY(); - dfd.pivotX = curDefaultData.pivotX(); - dfd.pivotY = curDefaultData.pivotY(); - dfd.rotationX = curDefaultData.rotationX(); - dfd.rotationY = curDefaultData.rotationY(); - dfd.rotationZ = curDefaultData.rotationZ(); - dfd.scaleX = curDefaultData.scaleX(); - dfd.scaleY = curDefaultData.scaleY(); - dfd.localscaleX = curDefaultData.localscaleX(); - dfd.localscaleY = curDefaultData.localscaleY(); - dfd.size_X = curDefaultData.sizeX(); - dfd.size_Y = curDefaultData.sizeY(); - dfd.uv_move_X = curDefaultData.uvMoveX(); - dfd.uv_move_Y = curDefaultData.uvMoveY(); - dfd.uv_rotation = curDefaultData.uvRotation(); - dfd.uv_scale_X = curDefaultData.uvScaleX(); - dfd.uv_scale_Y = curDefaultData.uvScaleY(); - dfd.boundingRadius = curDefaultData.boundingRadius(); - dfd.instanceValue_curKeyframe = curDefaultData.instanceValueCurKeyframe(); - dfd.instanceValue_endFrame = curDefaultData.instanceValueEndFrame(); - dfd.instanceValue_startFrame = curDefaultData.instanceValueStartFrame(); - dfd.instanceValue_loopNum = curDefaultData.instanceValueLoopNum(); - dfd.instanceValue_speed = curDefaultData.instanceValueSpeed(); - dfd.instanceValue_loopflag = curDefaultData.instanceValueLoopflag(); - dfd.effectValue_curKeyframe = curDefaultData.effectValueCurKeyframe(); - dfd.effectValue_startTime = curDefaultData.effectValueStartTime(); - dfd.effectValue_speed = curDefaultData.effectValueSpeed(); - dfd.effectValue_loopflag = curDefaultData.effectValueLoopflag(); - dfd.f_hide = false; - dfd.f_flipH = false; - dfd.f_flipV = false; - dfd.f_mesh = false; - dfd.i_transformVerts = 0; - dfd.u00 = 0; - dfd.v00 = 0; - dfd.u01 = 0; - dfd.v01 = 0; - dfd.u10 = 0; - dfd.v10 = 0; - dfd.u11 = 0; - dfd.v11 = 0; - dfd.useColorMatrix = false; - dfd.colorBlendType = 0; - dfd.colorRate = 0; - dfd.colorArgb32 = 0; - dfd.meshIsBind = 0; - dfd.meshNum = 0; - dfd.meshDataPoint = null; - dfd.flag1 = 0; - dfd.flag2 = 0; - dfd.partsColorARGB = 0; - return dfd; - } - /** - * 親を遡って不透明度を継承する - * @param {number} opacity - 透明度 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {number} - 透明度 - */ - InheritOpacity(opacity, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - opacity = data.opacity / 255; - if (this._parentIndex[partId] >= 0) { - opacity = this.InheritOpacity(opacity, this._parentIndex[partId], frameNumber); - } - return opacity; - } - /** - * 親を遡って座標変換する(ローカルアトリビュート適用) - * @param {array} verts - 頂点情報配列 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformVertsLocal(verts, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - for (let i = 0; i < verts.length / 2; i++) { - let x = verts[i * 2]; - let y = verts[i * 2 + 1]; - if (data.i_transformVerts & 1 && i === 1) { - x += data.u00; - y -= data.v00; - } - if (data.i_transformVerts & 2 && i === 2) { - x += data.u01; - y -= data.v01; - } - if (data.i_transformVerts & 4 && i === 3) { - x += data.u10; - y -= data.v10; - } - if (data.i_transformVerts & 8 && i === 4) { - x += data.u11; - y -= data.v11; - } - x *= data.scaleX * data.localscaleX; - y *= data.scaleY * data.localscaleY; - verts[i * 2] = cos * x - sin * y + data.positionX; - verts[i * 2 + 1] = sin * x + cos * y - data.positionY; - if (data.f_flipH) { - verts[i * 2] = verts[0] * 2 - verts[i * 2]; - } - if (data.f_flipV) { - verts[i * 2 + 1] = verts[1] * 2 - verts[i * 2 + 1]; - } - } - if (this._parentIndex[partId] >= 0) { - verts = this.TransformVerts(verts, this._parentIndex[partId], frameNumber); - } - return verts; - } - /** - * 親を遡って座標変換する(ローカルアトリビュート適用) - * @param {array} verts - 頂点情報配列 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformMeshVertsLocal(verts, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - for (let i = 0; i < verts.length / 2; i++) { - let x = verts[i * 2]; - let y = verts[i * 2 + 1]; - x *= data.scaleX * data.localscaleX; - y *= data.scaleY * data.localscaleY; - verts[i * 2] = cos * x - sin * y + data.positionX; - verts[i * 2 + 1] = sin * x + cos * y - data.positionY; - } - if (this._parentIndex[partId] >= 0) { - verts = this.TransformVerts(verts, this._parentIndex[partId], frameNumber); - } - return verts; - } - /** - * 親を遡って座標変換する(ローカルアトリビュート適用) - * @param {array} pos - 頂点情報配列 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformPositionLocal(pos, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - pos[4] += -data.rotationZ; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - const x = pos[0] * data.scaleX * data.localscaleX; - const y = pos[1] * data.scaleY * data.localscaleY; - pos[2] *= data.scaleX * data.localscaleX; - pos[3] *= data.scaleY * data.localscaleY; - pos[0] = cos * x - sin * y + data.positionX; - pos[1] = sin * x + cos * y - data.positionY; - if (this._parentIndex[partId] >= 0) { - pos = this.TransformPosition(pos, this._parentIndex[partId], frameNumber); - } - return pos; - } - /** - * 5頂点の中間点を求める - * @param {number} cx - 元の中心点 - * @param {number} cy - 元の中心点 - * @param {number} LUx - 左上座標 - * @param {number} LUy - 左上座標 - * @param {number} RUx - 右上座標 - * @param {number} RUy - 右上座標 - * @param {number} LDx - 左下座標 - * @param {number} LDy - 左下座標 - * @param {number} RDx - 右下座標 - * @param {number} RDy - 右下座標 - * @param vec2 - * @return {array} vec2 - 4頂点から算出した中心点の座標 - */ - static CoordinateGetDiagonalIntersection(cx, cy, LUx, LUy, RUx, RUy, LDx, LDy, RDx, RDy, vec2) { - const c1 = (LDy - RUy) * (LDx - LUx) - (LDx - RUx) * (LDy - LUy); - const c2 = (RDx - LUx) * (LDy - LUy) - (RDy - LUy) * (LDx - LUx); - const c3 = (RDx - LUx) * (LDy - RUy) - (RDy - LUy) * (LDx - RUx); - if (c3 <= 0 && c3 >= 0) return vec2; - const ca = c1 / c3; - const cb = c2 / c3; - if (0 <= ca && 1 >= ca && (0 <= cb && 1 >= cb)) { - cx = LUx + ca * (RDx - LUx); - cy = LUy + ca * (RDy - LUy); - } - vec2[0] = cx; - vec2[1] = cy; - return vec2; - } - /** - * 親を遡って座標変換する - * @param {array} verts - 頂点情報配列 - * @param {number} id - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformVerts(verts, id, frameNumber) { - const data = this.GetFrameData(frameNumber)[id]; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - for (let i = 0; i < verts.length / 2; i++) { - let x = verts[i * 2]; - let y = verts[i * 2 + 1]; - x *= data.scaleX; - y *= data.scaleY; - verts[i * 2] = cos * x - sin * y + data.positionX; - verts[i * 2 + 1] = sin * x + cos * y - data.positionY; - if (data.f_flipH) { - verts[i * 2] = verts[0] * 2 - verts[i * 2]; - } - if (data.f_flipV) { - verts[i * 2 + 1] = verts[1] * 2 - verts[i * 2 + 1]; - } - } - if (this._parentIndex[id] >= 0) { - verts = this.TransformVerts(verts, this._parentIndex[id], frameNumber); - } - return verts; - } - /** - * 親を遡って座標変換する - * @param {array} pos - 頂点情報配列 - * @param {number} id - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformPosition(pos, id, frameNumber) { - const data = this.GetFrameData(frameNumber)[id]; - pos[4] += -data.rotationZ; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - const x = pos[0] * data.scaleX; - const y = pos[1] * data.scaleY; - pos[2] *= data.scaleX; - pos[3] *= data.scaleY; - pos[0] = cos * x - sin * y + data.positionX; - pos[1] = sin * x + cos * y - data.positionY; - if (this._parentIndex[id] >= 0) { - pos = this.TransformPosition(pos, this._parentIndex[id], frameNumber); - } - return pos; - } - /** - * 矩形セルメッシュの頂点情報のみ取得 - * @param {ssfblib.Cell} cell - セル - * @param {array} data - アニメーションフレームデータ - * @param verts - * @return {array} - 頂点情報配列 - */ - static GetVerts(cell, data, verts) { - const w = data.size_X / 2; - const h = data.size_Y / 2; - const px = data.size_X * -(data.pivotX + cell.pivotX()); - const py = data.size_Y * (data.pivotY + cell.pivotY()); - verts.set([px, py, px - w, py - h, px + w, py - h, px - w, py + h, px + w, py + h]); - return verts; - } - /** - * 矩形セルメッシュの頂点情報のみ取得 - * @param {ssfblib.Cell} cell - セル - * @param {array} data - アニメーションフレームデータ - * @param verts - * @return {array} - 頂点情報配列 - */ - static GetMeshVerts(cell, data, verts) { - for (let idx = 0; idx < data.meshNum; idx++) { - verts[ - idx * 2 - /*+ 0*/ - ] = data.meshDataPoint[ - idx * 3 - /* + 0 */ - ]; - verts[idx * 2 + 1] = -data.meshDataPoint[idx * 3 + 1]; - } - return verts; - } - static GetDummyVerts() { - return new Float32Array([0, 0, -0.5, -0.5, 0.5, -0.5, -0.5, 0.5, 0.5, 0.5]); - } - } - - class PixiResourceLoaderImpl { - constructor() { - this.loader = new loaders.Loader(); - } - load(sspjfile, sspjMap, onComplete) { - for (let key in sspjMap) { - this.loader.add(key, sspjMap[key]); - } - const self = this; - this.loader.load((loader, resources) => { - self.resources = resources; - if (onComplete !== null) { - onComplete(null); - } - }); - } - unload(sspjfile, sspjMap, onComplete) { - this.resources = null; - if (onComplete !== null) { - onComplete(null); - } - } - texture(key) { - console.log(this.resources); - return this.resources[key].texture; - } - } - - class SS6ProjectResourceLoader { - constructor() { - this.loader = new PixiResourceLoaderImpl(); - } - load(sspjfile, sspjMap, onComplete) { - return this.loader.load(sspjfile, sspjMap, onComplete); - } - unload(sspjfile, sspjMap, onComplete = null) { - return this.loader.unload(sspjfile, sspjMap, onComplete); - } - texture(key) { - return this.loader.texture(key); - } - } - - class SS6Project { - constructor(arg1, arg2, arg3, arg4) { - this.sspjMap = {}; - this.resourceLoader = new SS6ProjectResourceLoader(); - if (typeof arg1 === "string" && arg3 === void 0) { - let ssfbPath = arg1; - this.ssfbPath = ssfbPath; - const index = ssfbPath.lastIndexOf("/"); - this.rootPath = ssfbPath.substring(0, index) + "/"; - this.ssfbFile = ssfbPath.substring(index + 1); - this.onComplete = arg2 === void 0 ? null : arg2; - this.status = 0 /* NOT_READY */; - this.LoadFlatBuffersProject(); - } else if (typeof arg2 === "object" && arg2.constructor === Uint8Array) { - this.ssfbPath = null; - this.rootPath = null; - this.ssfbFile = arg1; - let ssfbByte = arg2; - let imageBinaryMap = arg3; - this.onComplete = arg4 === void 0 ? null : arg4; - this.load(ssfbByte, imageBinaryMap); - } - } - getBundle() { - return this.ssfbFile; - } - getTexture(key) { - return this.resourceLoader.texture(key); - } - dispose(callback = null) { - this.resourceLoader.unload(this.getBundle(), this.sspjMap, (error) => { - if (callback !== null) { - callback(); - } - }); - } - /** - * Load json and parse (then, load textures) - */ - LoadFlatBuffersProject() { - const self = this; - fetch(this.ssfbPath, { method: "get" }).then((response) => { - if (response.ok) { - return Promise.resolve(response.arrayBuffer()); - } else { - return Promise.reject(new Error(response.statusText)); - } - }).then((a) => { - self.fbObj = Utils2.getProjectData(new Uint8Array(a)); - self.LoadCellResources(); - }).catch((error) => { - if (this.onComplete !== null) { - this.onComplete(null, error); - } - }); - } - /** - * Load textures - */ - LoadCellResources() { - let ids = []; - this.sspjMap = {}; - for (let i = 0; i < this.fbObj.cellsLength(); i++) { - const cellMap = this.fbObj.cells(i).cellMap(); - const cellMapIndex = cellMap.index(); - if (!ids.some(function(id) { - return id === cellMapIndex; - })) { - ids.push(cellMapIndex); - const name = cellMap.name(); - this.sspjMap[name] = this.rootPath + cellMap.imagePath(); - } - } - const self = this; - this.resourceLoader.load(this.getBundle(), this.sspjMap, (error) => { - if (error === null) { - self.status = 1 /* READY */; - if (self.onComplete !== null) { - self.onComplete(this, null); - } - } else { - if (this.onComplete !== null) { - this.onComplete(null, error); - } - } - }); - } - load(bytes, imageBinaryMap) { - this.fbObj = Utils2.getProjectData(bytes); - let assetMap = {}; - for (let imageName in imageBinaryMap) { - const binary = imageBinaryMap[imageName]; - let b = ""; - const len = binary.byteLength; - for (let i = 0; i < len; i++) { - b += String.fromCharCode(binary[i]); - } - assetMap[imageName] = "data:image/png;base64," + btoa(b); - } - const self = this; - this.resourceLoader.load(this.getBundle(), assetMap, (error) => { - if (error === null) { - self.status = 1 /* READY */; - if (self.onComplete !== null) { - self.onComplete(this, null); - } - } else { - if (this.onComplete !== null) { - this.onComplete(null, error); - } - } - }); - } - } - - class SS6PlayerInstanceKeyParam { - constructor() { - this.refStartframe = 0; - this.refEndframe = 0; - this.refSpeed = 1; - this.refloopNum = 0; - this.infinity = false; - this.reverse = false; - this.pingpong = false; - this.independent = false; - } - } - - class SS6Player extends display.Container { - /** - * SS6Player (extends PIXI.Container) - * @constructor - * @param {SS6Project} ss6project - SS6Project that contains animations. - * @param {string} animePackName - The name of animePack(SSAE). - * @param {string} animeName - The name of animation. - */ - constructor(ss6project, animePackName = null, animeName = null) { - super(); - this.liveFrame = []; - this.colorMatrixFilterCache = []; - this.parentAlpha = 1; - // - // cell再利用 - this.prevCellID = []; - // 各パーツ(レイヤー)で前回使用したセルID - this.prevPartObject = []; - // for change instance - this.substituteOverWrite = []; - this.substituteKeyParam = []; - this.alphaBlendType = []; - this.defaultColorFilter = new filterColorMatrix.ColorMatrixFilter(); - this._instancePos = new Float32Array(5); - this._CoordinateGetDiagonalIntersectionVec2 = new Float32Array(2); - this.ss6project = ss6project; - this.playerLib = new Player(ss6project.fbObj, animePackName, animeName); - this.parentAlpha = 1; - if (animePackName !== null && animeName !== null) { - this.Setup(animePackName, animeName); - } - this.on("added", (...args) => { - ticker.Ticker.shared.add(this.Update, this); - }, this); - this.on("removed", (...args) => { - ticker.Ticker.shared.remove(this.Update, this); - }, this); - } - get startFrame() { - return this._startFrame; - } - get endFrame() { - return this._endFrame; - } - get totalFrame() { - return this.playerLib.animationData.totalFrames(); - } - get fps() { - return this.playerLib.animationData.fps(); - } - get frameNo() { - return Math.floor(this._currentFrame); - } - set loop(loop) { - this._loops = loop; - } - get loop() { - return this._loops; - } - get isPlaying() { - return this._isPlaying; - } - get isPausing() { - return this._isPausing; - } - get animePackName() { - return this.playerLib.animePackName; - } - get animeName() { - return this.playerLib.animeName; - } - /** - * Setup - * @param {string} animePackName - The name of animePack(SSAE). - * @param {string} animeName - The name of animation. - */ - Setup(animePackName, animeName) { - this.playerLib.Setup(animePackName, animeName); - this.clearCaches(); - const animePackData = this.playerLib.animePackData; - const partsLength = animePackData.partsLength(); - this.prevCellID = new Array(partsLength); - this.prevPartObject = new Array(partsLength); - this.substituteOverWrite = new Array(partsLength); - this.substituteKeyParam = new Array(partsLength); - for (let j = 0; j < partsLength; j++) { - const index = animePackData.parts(j).index(); - this.prevCellID[index] = -1; - this.prevPartObject[index] = null; - this.substituteOverWrite[index] = null; - this.substituteKeyParam[index] = null; - } - this.alphaBlendType = this.GetPartsBlendMode(); - this._isPlaying = false; - this._isPausing = true; - this._startFrame = this.playerLib.animationData.startFrames(); - this._endFrame = this.playerLib.animationData.endFrames(); - this._currentFrame = this.playerLib.animationData.startFrames(); - this.nextFrameTime = 0; - this._loops = -1; - this.skipEnabled = true; - this.updateInterval = 1e3 / this.playerLib.animationData.fps(); - this.playDirection = 1; - this.onUserDataCallback = null; - this.playEndCallback = null; - this.parentAlpha = 1; - } - clearCaches() { - this.liveFrame = []; - this.colorMatrixFilterCache = []; - } - Update(delta) { - this.UpdateInternal(delta); - } - /** - * Update is called PIXI.ticker - * @param {number} delta - expected 1 - */ - UpdateInternal(delta, rewindAfterReachingEndFrame = true) { - const elapsedTime = ticker.Ticker.shared.elapsedMS; - const toNextFrame = this._isPlaying && !this._isPausing; - if (toNextFrame && this.updateInterval !== 0) { - this.nextFrameTime += elapsedTime; - if (this.nextFrameTime >= this.updateInterval) { - let playEndFlag = false; - const step = this.nextFrameTime / this.updateInterval; - this.nextFrameTime -= this.updateInterval * step; - let s = this.skipEnabled ? step * this.playDirection : this.playDirection; - let next = this._currentFrame + s; - let nextFrameNo = Math.floor(next); - let nextFrameDecimal = next - nextFrameNo; - let currentFrameNo = Math.floor(this._currentFrame); - if (this.playDirection >= 1) { - for (let c = nextFrameNo - currentFrameNo; c; c--) { - let incFrameNo = currentFrameNo + 1; - if (incFrameNo > this._endFrame) { - if (this._loops === -1) { - incFrameNo = this._startFrame; - } else { - this._loops--; - playEndFlag = true; - if (this._loops === 0) { - this._isPlaying = false; - incFrameNo = rewindAfterReachingEndFrame ? this._startFrame : this._endFrame; - break; - } else { - incFrameNo = this._startFrame; - } - } - } - currentFrameNo = incFrameNo; - if (this._isPlaying) { - if (this.playerLib.HaveUserData(currentFrameNo)) { - if (this.onUserDataCallback !== null) { - this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); - } - } - } - } - } - if (this.playDirection <= -1) { - for (let c = currentFrameNo - nextFrameNo; c; c--) { - let decFrameNo = currentFrameNo - 1; - if (decFrameNo < this._startFrame) { - if (this._loops === -1) { - decFrameNo = this._endFrame; - } else { - this._loops--; - playEndFlag = true; - if (this._loops === 0) { - this._isPlaying = false; - decFrameNo = rewindAfterReachingEndFrame ? this._endFrame : this._startFrame; - break; - } else { - decFrameNo = this._endFrame; - } - } - } - currentFrameNo = decFrameNo; - if (this._isPlaying) { - if (this.playerLib.HaveUserData(currentFrameNo)) { - if (this.onUserDataCallback !== null) { - this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); - } - } - } - } - } - this._currentFrame = currentFrameNo + nextFrameDecimal; - if (playEndFlag) { - if (this.playEndCallback !== null) { - this.playEndCallback(this); - } - } - this.SetFrameAnimation(Math.floor(this._currentFrame), step); - } - } else { - this.SetFrameAnimation(Math.floor(this._currentFrame)); - } - } - /** - * アニメーションの速度を設定する (deprecated この関数は削除される可能性があります) - * @param {number} fps - アニメーション速度(frame per sec.) - * @param {boolean} _skipEnabled - 描画更新が間に合わないときにフレームをスキップするかどうか - */ - SetAnimationFramerate(fps, _skipEnabled = true) { - if (fps <= 0) return; - this.updateInterval = 1e3 / fps; - this.skipEnabled = _skipEnabled; - } - /** - * アニメーションの速度を設定する - * @param {number} fpsRate - アニメーション速度(設定値に対する乗率)負数設定で逆再生 - * @param {boolean} _skipEnabled - 描画更新が間に合わないときにフレームをスキップするかどうか - */ - SetAnimationSpeed(fpsRate, _skipEnabled = true) { - if (fpsRate === 0) return; - this.playDirection = fpsRate > 0 ? 1 : -1; - this.updateInterval = 1e3 / (this.playerLib.animationData.fps() * fpsRate * this.playDirection); - this.skipEnabled = _skipEnabled; - } - /** - * アニメーション再生設定 - * @param {number} _startframe - 開始フレーム番号(マイナス設定でデフォルト値を変更しない) - * @param {number} _endframe - 終了フレーム番号(マイナス設定でデフォルト値を変更しない) - * @param {number} _loops - ループ回数(ゼロもしくはマイナス設定で無限ループ) - */ - SetAnimationSection(_startframe = -1, _endframe = -1, _loops = -1) { - if (_startframe >= 0 && _startframe < this.playerLib.animationData.totalFrames()) { - this._startFrame = _startframe; - } - if (_endframe >= 0 && _endframe < this.playerLib.animationData.totalFrames()) { - this._endFrame = _endframe; - } - if (_loops > 0) { - this._loops = _loops; - } else { - this._loops = -1; - } - this._currentFrame = this.playDirection > 0 ? this._startFrame : this._endFrame; - } - /** - * アニメーション再生を開始する - */ - Play(frameNo) { - this._isPlaying = true; - this._isPausing = false; - let currentFrame = this.playDirection > 0 ? this._startFrame : this._endFrame; - if (frameNo && typeof frameNo === "number") { - currentFrame = frameNo; - } - this._currentFrame = currentFrame; - this.resetLiveFrame(); - const currentFrameNo = Math.floor(this._currentFrame); - this.SetFrameAnimation(currentFrameNo); - if (this.playerLib.HaveUserData(currentFrameNo)) { - if (this.onUserDataCallback !== null) { - this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); - } - } - } - /** - * アニメーション再生を一時停止する - */ - Pause() { - this._isPausing = true; - } - /** - * アニメーション再生を再開する - */ - Resume() { - this._isPausing = false; - } - /** - * アニメーションを停止する - * @constructor - */ - Stop() { - this._isPlaying = false; - } - /** - * アニメーション再生を位置(フレーム)を設定する - */ - SetFrame(frame) { - this._currentFrame = frame; - } - NextFrame() { - const currentFrame = Math.floor(this._currentFrame); - const endFrame = this.endFrame; - if (currentFrame === endFrame) { - return; - } - this.SetFrame(currentFrame + 1); - } - PrevFrame() { - const currentFrame = Math.floor(this._currentFrame); - if (currentFrame === 0) { - return; - } - this.SetFrame(currentFrame - 1); - } - /** - * アニメーションの透明度を設定する - */ - SetAlpha(alpha) { - this.parentAlpha = alpha; - } - /** - * エラー処理 - * @param {any} _error - エラー - */ - ThrowError(_error) { - } - /** - * ユーザーデータコールバックの設定 - * @param fn - * @constructor - * - * ユーザーデータのフォーマット - * data = [[d0,d1,...,d10],[da0,da1,...,da10],...]) - * data.length : 当該フレームでユーザーデータの存在するパーツ(レイヤー)数 - * d0 : パーツ(レイヤー)番号 - * d1 : 有効データビット(&1:int, &2:rect(int*4), &4:pos(int*2), &8:string) - * d2 : int(int) - * d3 : rect0(int) - * d4 : rect1(int) - * d5 : rect2(int) - * d6 : rect3(int) - * d7 : pos0(int) - * d8 : pos1(int) - * d9 : string.length(int) - * d10: string(string) - * - */ - SetUserDataCalback(fn) { - this.onUserDataCallback = fn; - } - /** - * 再生終了時に呼び出されるコールバックを設定します. - * @param fn - * @constructor - * - * ループ回数分再生した後に呼び出される点に注意してください。 - * 無限ループで再生している場合はコールバックが発生しません。 - * - */ - SetPlayEndCallback(fn) { - this.playEndCallback = fn; - } - /** - * パーツの描画モードを取得する - * @return {array} - 全パーツの描画モード - */ - GetPartsBlendMode() { - const animePacks = this.playerLib.animePackData; - const l = animePacks.partsLength(); - let ret = []; - for (let i = 0; i < l; i++) { - const alphaBlendType = animePacks.parts(i).alphaBlendType(); - let blendMode; - switch (alphaBlendType) { - case 0: - blendMode = constants.BLEND_MODES.NORMAL; - break; - case 1: - blendMode = constants.BLEND_MODES.MULTIPLY; - break; - case 2: - blendMode = constants.BLEND_MODES.ADD; - break; - case 3: - blendMode = constants.BLEND_MODES.NORMAL; - break; - case 4: - blendMode = constants.BLEND_MODES.MULTIPLY; - break; - case 5: - blendMode = constants.BLEND_MODES.SCREEN; - break; - case 6: - blendMode = constants.BLEND_MODES.EXCLUSION; - break; - case 7: - blendMode = constants.BLEND_MODES.NORMAL; - break; - default: - blendMode = constants.BLEND_MODES.NORMAL; - break; - } - ret.push(blendMode); - } - return ret; - } - /** - * パーツカラーのブレンド用カラーマトリクス - * @param {number} blendType - ブレンド方法(0:mix, 1:multiply, 2:add, 3:sub) - * @param {number} rate - ミックス時の混色レート - * @param {number} argb32 - パーツカラー(単色) - * @return {PIXI.filters.ColorMatrixFilter} - カラーマトリクス - */ - GetColorMatrixFilter(blendType, rate, argb32) { - const key = blendType.toString() + "_" + rate.toString() + "_" + argb32.toString(); - if (this.colorMatrixFilterCache[key]) return this.colorMatrixFilterCache[key]; - const colorMatrix = new filterColorMatrix.ColorMatrixFilter(); - const ca = ((argb32 & 4278190080) >>> 24) / 255; - const cr = ((argb32 & 16711680) >>> 16) / 255; - const cg = ((argb32 & 65280) >>> 8) / 255; - const cb = (argb32 & 255) / 255; - if (blendType === 0) { - const rate_i = 1 - rate; - colorMatrix.matrix = [ - rate_i, - 0, - 0, - 0, - cr * rate, - 0, - rate_i, - 0, - 0, - cg * rate, - 0, - 0, - rate_i, - 0, - cb * rate, - 0, - 0, - 0, - 1, - 0 - ]; - } else if (blendType === 1) { - colorMatrix.matrix = [ - cr, - 0, - 0, - 0, - 0, - 0, - cg, - 0, - 0, - 0, - 0, - 0, - cb, - 0, - 0, - 0, - 0, - 0, - ca, - 0 - ]; - } else if (blendType === 2) { - colorMatrix.matrix = [ - 1, - 0, - 0, - 0, - cr, - 0, - 1, - 0, - 0, - cg, - 0, - 0, - 1, - 0, - cb, - 0, - 0, - 0, - ca, - 0 - ]; - } else if (blendType === 3) { - colorMatrix.matrix = [ - 1, - 0, - 0, - 0, - -cr, - 0, - 1, - 0, - 0, - -cg, - 0, - 0, - 1, - 0, - -cb, - 0, - 0, - 0, - ca, - 0 - ]; - } - this.colorMatrixFilterCache[key] = colorMatrix; - return colorMatrix; - } - /** - * 1フレーム分のアニメーション描画 - * @param {number} frameNumber - フレーム番号 - * @param {number} ds - delta step - */ - SetFrameAnimation(frameNumber, ds = 0) { - const fd = this.playerLib.GetFrameData(frameNumber); - this.removeChildren(); - const l = fd.length; - for (let ii = 0; ii < l; ii = ii + 1 | 0) { - const i = this.playerLib.prio2index[ii]; - const data = fd[i]; - const cellID = data.cellIndex; - let partObject = this.prevPartObject[i]; - const part = this.playerLib.animePackData.parts(i); - const partType = part.type(); - let overWrite = this.substituteOverWrite[i] !== null ? this.substituteOverWrite[i] : false; - let overWritekeyParam = this.substituteKeyParam[i]; - switch (partType) { - case SsPartType.Instance: - if (partObject == null) { - partObject = this.MakeCellPlayer(part.refname()); - partObject.name = part.name(); - } - break; - case SsPartType.Normal: - case SsPartType.Mask: - if (cellID >= 0 && this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = this.MakeCellMesh(cellID); - partObject.name = part.name(); - } - break; - case SsPartType.Mesh: - if (cellID >= 0 && this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = this.MakeMeshCellMesh(i, cellID); - partObject.name = part.name(); - } - break; - case SsPartType.Nulltype: - case SsPartType.Joint: - if (this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = new display.Container(); - partObject.name = part.name(); - } - break; - default: - if (cellID >= 0 && this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = this.MakeCellMesh(cellID); - partObject.name = part.name(); - } - break; - } - if (partObject == null) continue; - this.prevCellID[i] = cellID; - this.prevPartObject[i] = partObject; - switch (partType) { - case SsPartType.Instance: { - const instance = partObject; - this._instancePos[0] = 0; - this._instancePos[1] = 0; - this._instancePos[2] = 1; - this._instancePos[3] = 1; - this._instancePos[4] = 0; - this._instancePos = this.playerLib.TransformPositionLocal(this._instancePos, data.index, frameNumber); - instance.rotation = this._instancePos[4] * Math.PI / 180; - instance.position.set(this._instancePos[0], this._instancePos[1]); - instance.scale.set(this._instancePos[2], this._instancePos[3]); - let opacity = data.opacity / 255; - if (data.localopacity < 255) { - opacity = data.localopacity / 255; - } - instance.SetAlpha(opacity * this.parentAlpha); - instance.visible = !data.f_hide; - let refKeyframe = data.instanceValue_curKeyframe; - let refStartframe = data.instanceValue_startFrame; - let refEndframe = data.instanceValue_endFrame; - let refSpeed = data.instanceValue_speed; - let refloopNum = data.instanceValue_loopNum; - let infinity = false; - let reverse = false; - let pingpong = false; - let independent = false; - const INSTANCE_LOOP_FLAG_INFINITY = 1; - const INSTANCE_LOOP_FLAG_REVERSE = 2; - const INSTANCE_LOOP_FLAG_PINGPONG = 4; - const INSTANCE_LOOP_FLAG_INDEPENDENT = 8; - const lflags = data.instanceValue_loopflag; - if (lflags & INSTANCE_LOOP_FLAG_INFINITY) { - infinity = true; - } - if (lflags & INSTANCE_LOOP_FLAG_REVERSE) { - reverse = true; - } - if (lflags & INSTANCE_LOOP_FLAG_PINGPONG) { - pingpong = true; - } - if (lflags & INSTANCE_LOOP_FLAG_INDEPENDENT) { - independent = true; - } - if (overWrite) { - refStartframe = overWritekeyParam.refStartframe; - refEndframe = overWritekeyParam.refEndframe; - refSpeed = overWritekeyParam.refSpeed; - refloopNum = overWritekeyParam.refloopNum; - infinity = overWritekeyParam.infinity; - reverse = overWritekeyParam.reverse; - pingpong = overWritekeyParam.pingpong; - independent = overWritekeyParam.independent; - } - if (instance._startFrame !== refStartframe || instance._endFrame !== refEndframe) { - instance.SetAnimationSection(refStartframe, refEndframe); - } - let time = frameNumber; - if (independent === true) { - this.liveFrame[ii] += ds; - time = Math.floor(this.liveFrame[ii]); - } - const selfTopKeyframe = refKeyframe; - let reftime = Math.floor((time - selfTopKeyframe) * refSpeed); - if (reftime < 0) continue; - if (selfTopKeyframe > time) continue; - const inst_scale = refEndframe - refStartframe + 1; - if (inst_scale <= 0) continue; - let nowloop = Math.floor(reftime / inst_scale); - let checkloopnum = refloopNum; - if (pingpong) checkloopnum = checkloopnum * 2; - if (!infinity) { - if (nowloop >= checkloopnum) { - reftime = inst_scale - 1; - nowloop = checkloopnum - 1; - } - } - const temp_frame = Math.floor(reftime % inst_scale); - let _time = 0; - if (pingpong && nowloop % 2 === 1) { - if (reverse) { - reverse = false; - } else { - reverse = true; - } - } - if (this.playDirection <= -1) { - reverse = !reverse; - } - if (reverse) { - _time = refEndframe - temp_frame; - } else { - _time = temp_frame + refStartframe; - } - instance.SetFrame(Math.floor(_time)); - this.addChild(instance); - break; - } - // Instance以外の通常のMeshと空のContainerで処理分岐 - case SsPartType.Normal: - case SsPartType.Mesh: - case SsPartType.Joint: - case SsPartType.Mask: { - const mesh = partObject; - const meshVertexBuffer = mesh.geometry.getBuffer("aVertexPosition"); - let meshVertex = meshVertexBuffer.data; - const cell = this.playerLib.fbObj.cells(cellID); - let verts; - if (partType === SsPartType.Mesh) { - if (data.meshIsBind === 0) { - verts = this.playerLib.TransformMeshVertsLocal(Player.GetMeshVerts(cell, data, meshVertex), data.index, frameNumber); - } else { - verts = Player.GetMeshVerts(cell, data, meshVertex); - } - } else { - verts = partType === SsPartType.Joint ? new Float32Array(10) : meshVertex; - verts = this.playerLib.TransformVertsLocal(Player.GetVerts(cell, data, verts), data.index, frameNumber); - } - if (data.flag1 & PART_FLAG.VERTEX_TRANSFORM) { - const vertexCoordinateLUx = verts[3 * 2 + 0]; - const vertexCoordinateLUy = verts[3 * 2 + 1]; - const vertexCoordinateLDx = verts[1 * 2 + 0]; - const vertexCoordinateLDy = verts[1 * 2 + 1]; - const vertexCoordinateRUx = verts[4 * 2 + 0]; - const vertexCoordinateRUy = verts[4 * 2 + 1]; - const vertexCoordinateRDx = verts[2 * 2 + 0]; - const vertexCoordinateRDy = verts[2 * 2 + 1]; - const CoordinateLURUx = (vertexCoordinateLUx + vertexCoordinateRUx) * 0.5; - const CoordinateLURUy = (vertexCoordinateLUy + vertexCoordinateRUy) * 0.5; - const CoordinateLULDx = (vertexCoordinateLUx + vertexCoordinateLDx) * 0.5; - const CoordinateLULDy = (vertexCoordinateLUy + vertexCoordinateLDy) * 0.5; - const CoordinateLDRDx = (vertexCoordinateLDx + vertexCoordinateRDx) * 0.5; - const CoordinateLDRDy = (vertexCoordinateLDy + vertexCoordinateRDy) * 0.5; - const CoordinateRURDx = (vertexCoordinateRUx + vertexCoordinateRDx) * 0.5; - const CoordinateRURDy = (vertexCoordinateRUy + vertexCoordinateRDy) * 0.5; - const vec2 = Player.CoordinateGetDiagonalIntersection(verts[0], verts[1], CoordinateLURUx, CoordinateLURUy, CoordinateRURDx, CoordinateRURDy, CoordinateLULDx, CoordinateLULDy, CoordinateLDRDx, CoordinateLDRDy, this._CoordinateGetDiagonalIntersectionVec2); - verts[0] = vec2[0]; - verts[1] = vec2[1]; - } - const px = verts[0]; - const py = verts[1]; - for (let j = 0; j < verts.length / 2; j++) { - verts[j * 2] -= px; - verts[j * 2 + 1] -= py; - } - meshVertex = verts; - meshVertexBuffer.update(); - if (data.flag1 & PART_FLAG.U_MOVE || data.flag1 & PART_FLAG.V_MOVE || data.flag1 & PART_FLAG.U_SCALE || data.flag1 & PART_FLAG.V_SCALE || data.flag1 & PART_FLAG.UV_ROTATION) { - const u1 = cell.u1() + data.uv_move_X; - const u2 = cell.u2() + data.uv_move_X; - const v1 = cell.v1() + data.uv_move_Y; - const v2 = cell.v2() + data.uv_move_Y; - const cx = (u2 + u1) / 2; - const cy = (v2 + v1) / 2; - const uvw = (u2 - u1) / 2 * data.uv_scale_X; - const uvh = (v2 - v1) / 2 * data.uv_scale_Y; - const meshUvsBuffer = mesh.uvBuffer; - let meshUvs = meshUvsBuffer.data; - meshUvs[0] = cx; - meshUvs[1] = cy; - meshUvs[2] = cx - uvw; - meshUvs[3] = cy - uvh; - meshUvs[4] = cx + uvw; - meshUvs[5] = cy - uvh; - meshUvs[6] = cx - uvw; - meshUvs[7] = cy + uvh; - meshUvs[8] = cx + uvw; - meshUvs[9] = cy + uvh; - if (data.flag1 & PART_FLAG.UV_ROTATION) { - const rot = data.uv_rotation * Math.PI / 180; - for (let idx = 0; idx < 5; idx++) { - const dx = meshUvs[idx * 2 + 0] - cx; - const dy = meshUvs[idx * 2 + 1] - cy; - const cos = Math.cos(rot); - const sin = Math.sin(rot); - const tmpX = cos * dx - sin * dy; - const tmpY = sin * dx + cos * dy; - meshUvs[idx * 2 + 0] = cx + tmpX; - meshUvs[idx * 2 + 1] = cy + tmpY; - } - } - meshUvsBuffer.update(); - } - mesh.position.set(px, py); - let opacity = data.opacity / 255; - if (data.localopacity < 255) { - opacity = data.localopacity / 255; - } - mesh.alpha = opacity * this.parentAlpha; - mesh.visible = !data.f_hide; - if (data.useColorMatrix) { - const colorMatrix = this.GetColorMatrixFilter(data.colorBlendType, data.colorRate, data.colorArgb32); - mesh.filters = [colorMatrix]; - } - if (data.tint) { - mesh.tint = data.tint; - const ca = ((data.partsColorARGB & 4278190080) >>> 24) / 255; - mesh.alpha = mesh.alpha * ca; - } - const blendMode = this.alphaBlendType[i]; - if (blendMode === constants.BLEND_MODES.MULTIPLY || blendMode === constants.BLEND_MODES.SCREEN) { - mesh.alpha = 1; - } - if (partType !== SsPartType.Mask) this.addChild(mesh); - break; - } - case SsPartType.Nulltype: { - const container = partObject; - const opacity = this.playerLib.InheritOpacity(1, data.index, frameNumber); - container.alpha = opacity * data.localopacity / 255; - const verts = this.playerLib.TransformVerts(Player.GetDummyVerts(), data.index, frameNumber); - const px = verts[0]; - const py = verts[1]; - container.position.set(px, py); - const ax = Math.atan2(verts[5] - verts[3], verts[4] - verts[2]); - const ay = Math.atan2(verts[7] - verts[3], verts[6] - verts[2]); - container.rotation = ax; - container.skew.x = ay - ax - Math.PI / 2; - break; - } - } - } - } - /** - * - * 名前を指定してパーツの再生するインスタンスアニメを変更します。 - * 指定したパーツがインスタンスパーツでない場合、falseを返します. - * インスタンスパーツ名はディフォルトでは「ssae名:モーション名」とつけられています。 - * 再生するアニメの名前は アニメパック名 と アニメ名 で指定してください。 - * 現在再生しているアニメを指定することは入れ子となり無限ループとなるためできません。 - * - * 変更するアニメーションは同じ ssfb に含まれる必要があります。 - * インスタンスパーツが再生するアニメを変更します - * - * インスタンスキーは - * - * @param partName SS上のパーツ名 - * @param animePackName 参照するアニメパック名 - * @param animeName 参照するアニメ名 - * @param overWrite インスタンスキーの上書きフラグ - * @param keyParam インスタンスキー - * - * @constructor - */ - ChangeInstanceAnime(partName, animePackName, animeName, overWrite, keyParam = null) { - let rc = false; - if (this.animePackName !== null && this.animeName !== null) { - let packData = this.playerLib.animePackData; - let partsLength = packData.partsLength(); - for (let index = 0; index < partsLength; index++) { - let partData = packData.parts(index); - if (partData.name() === partName) { - let mesh = this.prevPartObject[index]; - if (mesh === null || mesh instanceof SS6Player) { - this.substituteOverWrite[index] = overWrite; - let keyParamAsSubstitute; - if (keyParam !== null) { - keyParamAsSubstitute = keyParam; - mesh = this.MakeCellPlayer(animePackName + "/" + animeName, keyParam.refStartframe); - } else { - mesh = this.MakeCellPlayer(animePackName + "/" + animeName); - keyParamAsSubstitute = new SS6PlayerInstanceKeyParam(); - keyParamAsSubstitute.refStartframe = mesh.startFrame; - keyParamAsSubstitute.refEndframe = mesh.endFrame; - } - mesh.name = partData.name(); - this.prevPartObject[index] = mesh; - this.substituteKeyParam[index] = keyParamAsSubstitute; - rc = true; - break; - } - } - } - } - return rc; - } - /** - * 矩形セルをメッシュ(5verts4Tri)で作成 - * @param {number} id - セルID - * @return {PIXI.Mesh} - メッシュ - */ - MakeCellMesh(id) { - const cell = this.playerLib.fbObj.cells(id); - const u1 = cell.u1(); - const u2 = cell.u2(); - const v1 = cell.v1(); - const v2 = cell.v2(); - const w = cell.width() / 2; - const h = cell.height() / 2; - const verts = new Float32Array([0, 0, -w, -h, w, -h, -w, h, w, h]); - const uvs = new Float32Array([(u1 + u2) / 2, (v1 + v2) / 2, u1, v1, u2, v1, u1, v2, u2, v2]); - const indices = new Uint16Array([0, 1, 2, 0, 2, 4, 0, 4, 3, 0, 1, 3]); - const geometry = new mesh.MeshGeometry(verts, uvs, indices); - const meshMaterial = new mesh.MeshMaterial(this.ss6project.getTexture(cell.cellMap().name())); - return new mesh.Mesh(geometry, meshMaterial, null, constants.DRAW_MODES.TRIANGLES); - } - /** - * メッシュセルからメッシュを作成 - * @param {number} partID - パーツID - * @param {number} cellID - セルID - * @return {PIXI.Mesh} - メッシュ - */ - MakeMeshCellMesh(partID, cellID) { - const meshsDataUV = this.playerLib.animationData.meshsDataUv(partID); - const uvLength = meshsDataUV.uvLength(); - if (uvLength > 0) { - const uvs = new Float32Array(uvLength - 2); - const meshNum = meshsDataUV.uv(1); - for (let idx = 2; idx < uvLength; idx++) { - uvs[idx - 2] = meshsDataUV.uv(idx); - } - const meshsDataIndices = this.playerLib.animationData.meshsDataIndices(partID); - const indicesLength = meshsDataIndices.indicesLength(); - const indices = new Uint16Array(indicesLength - 1); - for (let idx = 1; idx < indicesLength; idx++) { - indices[idx - 1] = meshsDataIndices.indices(idx); - } - const verts = new Float32Array(meshNum * 2); - const geometry = new mesh.MeshGeometry(verts, uvs, indices); - const meshMaterial = new mesh.MeshMaterial(this.ss6project.getTexture(this.playerLib.fbObj.cells(cellID).cellMap().name())); - return new mesh.Mesh(geometry, meshMaterial, null, constants.DRAW_MODES.TRIANGLES); - } - return null; - } - /** - * セルをインスタンスで作成 - * @param {String} refname 参照アニメ名 - * @param {number or undefined} refStart - * @return {SS6Player} - インスタンス - */ - MakeCellPlayer(refname, refStart = void 0) { - const split = refname.split("/"); - const ssp = new SS6Player(this.ss6project); - ssp.Setup(split[0], split[1]); - ssp.Play(refStart); - return ssp; - } - resetLiveFrame() { - const layers = this.playerLib.animationData.defaultDataLength(); - for (let i = 0; i < layers; i++) { - this.liveFrame[i] = 0; - } - } - } - - exports.SS6Player = SS6Player; - exports.SS6PlayerInstanceKeyParam = SS6PlayerInstanceKeyParam; - exports.SS6Project = SS6Project; - -})); -//# sourceMappingURL=ss6player-pixi6.umd.js.map +//# sourceMappingURL=ss6player-pixi6.umd.js.map \ No newline at end of file diff --git a/docs/ViewerPlayer/player.html b/docs/ViewerPlayer/player.html index 73a6a6e8..ba64ae12 100644 --- a/docs/ViewerPlayer/player.html +++ b/docs/ViewerPlayer/player.html @@ -10,7 +10,7 @@ SpriteStudio Web Player - + diff --git a/docs/ViewerPlayer/ss6player-viewer.min.js b/docs/ViewerPlayer/ss6player-viewer.min.js index 503b3fb9..34abd0cd 100644 --- a/docs/ViewerPlayer/ss6player-viewer.min.js +++ b/docs/ViewerPlayer/ss6player-viewer.min.js @@ -1,21 +1,31 @@ -/** - * ----------------------------------------------------------- - * SS6Player For Viewer v1.6.0 - * - * Copyright(C) CRI Middleware Co., Ltd. - * https://www.webtech.co.jp/ - * ----------------------------------------------------------- - */ +/*! +* ----------------------------------------------------------- +* SS6Player For Viewer v1.6.1 +* +* Copyright(C) CRI Middleware Co., Ltd. +* https://www.webtech.co.jp/ +* ----------------------------------------------------------- +*/ +var ss6PlayerViewer=(function(e,t){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),l=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=a(t),l=0,u=c.length,d;lt[e]).bind(null,d),enumerable:!(o=i(t,d))||o.enumerable});return e},u=(e,t,i)=>(i=e==null?{}:n(o(e)),l(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e));let d=[5,10,15,20,25,50,75,100,150,200,300,400,800];var f=class extends t.Container{constructor(){super(),this.rootLineGraphics=null,this.gridGraphics=null,this.defaultScaleRatio=null,this.zoomPercent=null,this.isDisplayGrid=!1;let e=new t.Graphics,n=new t.Graphics;this.addChild(e),this.addChild(n),this.rootLineGraphics=e,this.gridGraphics=n}setDefaultScaleRatio(e){this.defaultScaleRatio=e}setPosition(e,t){this.position.set(e,t)}movePosition(e,t){let n=this.position;n.x+=e,n.y+=t,this.position=n}zoom(e){let t=this.defaultScaleRatio;e!==100&&(t=this.defaultScaleRatio*(e*.01)),this.zoomPercent=e,this.scale.set(t,t)}zoomIn(){let e=d.indexOf(this.zoomPercent)+1;if(e>=d.length)return;let t=d[e];this.zoom(t)}zoomOut(){let e=d.indexOf(this.zoomPercent)-1;if(e<0)return;let t=d[e];this.zoom(t)}switchGridDisplay(){let e=this.rootLineGraphics,t=this.gridGraphics;if(!(e==null||t==null)&&(e.clear(),t.clear(),this.isDisplayGrid=!this.isDisplayGrid,this.isDisplayGrid)){let n=-5e3,r=n*-1+1;e.lineStyle(1,0),e.alpha=.3,e.moveTo(n,0).lineTo(r,0),e.moveTo(0,n).lineTo(0,r),t.lineStyle(1,0),t.alpha=.1;for(let e=n;e>24}readUint8(e){return this.bytes_[e]}readInt16(e){return this.readUint16(e)<<16>>16}readUint16(e){return this.bytes_[e]|this.bytes_[e+1]<<8}readInt32(e){return this.bytes_[e]|this.bytes_[e+1]<<8|this.bytes_[e+2]<<16|this.bytes_[e+3]<<24}readUint32(e){return this.readInt32(e)>>>0}readInt64(e){return BigInt.asIntN(64,BigInt(this.readUint32(e))+(BigInt(this.readUint32(e+4))<>8}writeUint16(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8}writeInt32(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8,this.bytes_[e+2]=t>>16,this.bytes_[e+3]=t>>24}writeUint32(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8,this.bytes_[e+2]=t>>16,this.bytes_[e+3]=t>>24}writeInt64(e,t){this.writeInt32(e,Number(BigInt.asIntN(32,t))),this.writeInt32(e+4,Number(BigInt.asIntN(32,t>>BigInt(32))))}writeUint64(e,t){this.writeUint32(e,Number(BigInt.asUintN(32,t))),this.writeUint32(e+4,Number(BigInt.asUintN(32,t>>BigInt(32))))}writeFloat32(e,t){h[0]=t,this.writeInt32(e,m[0])}writeFloat64(e,t){g[0]=t,this.writeInt32(e,m[_?0:1]),this.writeInt32(e+4,m[_?1:0])}getBufferIdentifier(){if(this.bytes_.length=0;n--)e.addInt32(t[n]);return e.endVector()}static startDataVector(e,t){e.startVector(4,t,4)}static endpartState(e){return e.endObject()}static createpartState(t,n,r,i,a){return e.startpartState(t),e.addIndex(t,n),e.addFlag1(t,r),e.addFlag2(t,i),e.addData(t,a),e.endpartState(t)}},S=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsframeDataIndex(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsframeDataIndex(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}states(e,t){let n=this.bb.__offset(this.bb_pos,4);return n?(t||new x).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}statesLength(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__vector_len(this.bb_pos+e):0}static startframeDataIndex(e){e.startObject(1)}static addStates(e,t){e.addFieldOffset(0,t,0)}static createStatesVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startStatesVector(e,t){e.startVector(4,t,4)}static endframeDataIndex(e){return e.endObject()}static createframeDataIndex(t,n){return e.startframeDataIndex(t),e.addStates(t,n),e.endframeDataIndex(t)}},C=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAslabelDataItem(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAslabelDataItem(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}label(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}frameIndex(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}static startlabelDataItem(e){e.startObject(2)}static addLabel(e,t){e.addFieldOffset(0,t,0)}static addFrameIndex(e,t){e.addFieldInt16(1,t,0)}static endlabelDataItem(e){return e.endObject()}static createlabelDataItem(t,n,r){return e.startlabelDataItem(t),e.addLabel(t,n),e.addFrameIndex(t,r),e.endlabelDataItem(t)}},w=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsmeshDataIndices(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsmeshDataIndices(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}indices(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readFloat32(this.bb.__vector(this.bb_pos+t)+e*4):0}indicesLength(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__vector_len(this.bb_pos+e):0}indicesArray(){let e=this.bb.__offset(this.bb_pos,4);return e?new Float32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}static startmeshDataIndices(e){e.startObject(1)}static addIndices(e,t){e.addFieldOffset(0,t,0)}static createIndicesVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addFloat32(t[n]);return e.endVector()}static startIndicesVector(e,t){e.startVector(4,t,4)}static endmeshDataIndices(e){return e.endObject()}static createmeshDataIndices(t,n){return e.startmeshDataIndices(t),e.addIndices(t,n),e.endmeshDataIndices(t)}},T=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsmeshDataUV(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsmeshDataUV(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}uv(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readFloat32(this.bb.__vector(this.bb_pos+t)+e*4):0}uvLength(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__vector_len(this.bb_pos+e):0}uvArray(){let e=this.bb.__offset(this.bb_pos,4);return e?new Float32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}static startmeshDataUV(e){e.startObject(1)}static addUv(e,t){e.addFieldOffset(0,t,0)}static createUvVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addFloat32(t[n]);return e.endVector()}static startUvVector(e,t){e.startVector(4,t,4)}static endmeshDataUV(e){return e.endObject()}static createmeshDataUV(t,n){return e.startmeshDataUV(t),e.addUv(t,n),e.endmeshDataUV(t)}},E=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsuserDataItem(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataItem(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}flags(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):0}arrayIndex(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}dataType(e){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readUint8(this.bb.__vector(this.bb_pos+t)+e):0}dataTypeLength(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__vector_len(this.bb_pos+e):0}dataTypeArray(){let e=this.bb.__offset(this.bb_pos,8);return e?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}data(e,t){let n=this.bb.__offset(this.bb_pos,10);return n?this.bb.__union(t,this.bb.__vector(this.bb_pos+n)+e*4):null}dataLength(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__vector_len(this.bb_pos+e):0}static startuserDataItem(e){e.startObject(4)}static addFlags(e,t){e.addFieldInt16(0,t,0)}static addArrayIndex(e,t){e.addFieldInt16(1,t,0)}static addDataType(e,t){e.addFieldOffset(2,t,0)}static createDataTypeVector(e,t){e.startVector(1,t.length,1);for(let n=t.length-1;n>=0;n--)e.addInt8(t[n]);return e.endVector()}static startDataTypeVector(e,t){e.startVector(1,t,1)}static addData(e,t){e.addFieldOffset(3,t,0)}static createDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startDataVector(e,t){e.startVector(4,t,4)}static enduserDataItem(e){return e.endObject()}static createuserDataItem(t,n,r,i,a){return e.startuserDataItem(t),e.addFlags(t,n),e.addArrayIndex(t,r),e.addDataType(t,i),e.addData(t,a),e.enduserDataItem(t)}},D=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsuserDataPerFrame(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataPerFrame(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}frameIndex(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):0}data(e,t){let n=this.bb.__offset(this.bb_pos,6);return n?(t||new E).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}dataLength(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__vector_len(this.bb_pos+e):0}static startuserDataPerFrame(e){e.startObject(2)}static addFrameIndex(e,t){e.addFieldInt16(0,t,0)}static addData(e,t){e.addFieldOffset(1,t,0)}static createDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startDataVector(e,t){e.startVector(4,t,4)}static enduserDataPerFrame(e){return e.endObject()}static createuserDataPerFrame(t,n,r){return e.startuserDataPerFrame(t),e.addFrameIndex(t,n),e.addData(t,r),e.enduserDataPerFrame(t)}},O=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsAnimationData(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAnimationData(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}defaultData(e,t){let n=this.bb.__offset(this.bb_pos,6);return n?(t||new b).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}defaultDataLength(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__vector_len(this.bb_pos+e):0}frameData(e,t){let n=this.bb.__offset(this.bb_pos,8);return n?(t||new S).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}frameDataLength(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__vector_len(this.bb_pos+e):0}userData(e,t){let n=this.bb.__offset(this.bb_pos,10);return n?(t||new D).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}userDataLength(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__vector_len(this.bb_pos+e):0}labelData(e,t){let n=this.bb.__offset(this.bb_pos,12);return n?(t||new C).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}labelDataLength(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.__vector_len(this.bb_pos+e):0}meshsDataUv(e,t){let n=this.bb.__offset(this.bb_pos,14);return n?(t||new T).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}meshsDataUvLength(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.__vector_len(this.bb_pos+e):0}meshsDataIndices(e,t){let n=this.bb.__offset(this.bb_pos,16);return n?(t||new w).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}meshsDataIndicesLength(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.__vector_len(this.bb_pos+e):0}startFrames(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.readInt16(this.bb_pos+e):0}endFrames(){let e=this.bb.__offset(this.bb_pos,20);return e?this.bb.readInt16(this.bb_pos+e):0}totalFrames(){let e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readInt16(this.bb_pos+e):0}fps(){let e=this.bb.__offset(this.bb_pos,24);return e?this.bb.readInt16(this.bb_pos+e):0}labelNum(){let e=this.bb.__offset(this.bb_pos,26);return e?this.bb.readInt16(this.bb_pos+e):0}canvasSizeW(){let e=this.bb.__offset(this.bb_pos,28);return e?this.bb.readInt16(this.bb_pos+e):0}canvasSizeH(){let e=this.bb.__offset(this.bb_pos,30);return e?this.bb.readInt16(this.bb_pos+e):0}canvasPvotX(){let e=this.bb.__offset(this.bb_pos,32);return e?this.bb.readFloat32(this.bb_pos+e):0}canvasPvotY(){let e=this.bb.__offset(this.bb_pos,34);return e?this.bb.readFloat32(this.bb_pos+e):0}static startAnimationData(e){e.startObject(16)}static addName(e,t){e.addFieldOffset(0,t,0)}static addDefaultData(e,t){e.addFieldOffset(1,t,0)}static createDefaultDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startDefaultDataVector(e,t){e.startVector(4,t,4)}static addFrameData(e,t){e.addFieldOffset(2,t,0)}static createFrameDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startFrameDataVector(e,t){e.startVector(4,t,4)}static addUserData(e,t){e.addFieldOffset(3,t,0)}static createUserDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startUserDataVector(e,t){e.startVector(4,t,4)}static addLabelData(e,t){e.addFieldOffset(4,t,0)}static createLabelDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startLabelDataVector(e,t){e.startVector(4,t,4)}static addMeshsDataUv(e,t){e.addFieldOffset(5,t,0)}static createMeshsDataUvVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startMeshsDataUvVector(e,t){e.startVector(4,t,4)}static addMeshsDataIndices(e,t){e.addFieldOffset(6,t,0)}static createMeshsDataIndicesVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startMeshsDataIndicesVector(e,t){e.startVector(4,t,4)}static addStartFrames(e,t){e.addFieldInt16(7,t,0)}static addEndFrames(e,t){e.addFieldInt16(8,t,0)}static addTotalFrames(e,t){e.addFieldInt16(9,t,0)}static addFps(e,t){e.addFieldInt16(10,t,0)}static addLabelNum(e,t){e.addFieldInt16(11,t,0)}static addCanvasSizeW(e,t){e.addFieldInt16(12,t,0)}static addCanvasSizeH(e,t){e.addFieldInt16(13,t,0)}static addCanvasPvotX(e,t){e.addFieldFloat32(14,t,0)}static addCanvasPvotY(e,t){e.addFieldFloat32(15,t,0)}static endAnimationData(e){return e.endObject()}static createAnimationData(t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_){return e.startAnimationData(t),e.addName(t,n),e.addDefaultData(t,r),e.addFrameData(t,i),e.addUserData(t,a),e.addLabelData(t,o),e.addMeshsDataUv(t,s),e.addMeshsDataIndices(t,c),e.addStartFrames(t,l),e.addEndFrames(t,u),e.addTotalFrames(t,d),e.addFps(t,f),e.addLabelNum(t,p),e.addCanvasSizeW(t,m),e.addCanvasSizeH(t,h),e.addCanvasPvotX(t,g),e.addCanvasPvotY(t,_),e.endAnimationData(t)}};let k=function(e){return e[e.Invalid=-1]=`Invalid`,e[e.Nulltype=0]=`Nulltype`,e[e.Normal=1]=`Normal`,e[e.Text=2]=`Text`,e[e.Instance=3]=`Instance`,e[e.Armature=4]=`Armature`,e[e.Effect=5]=`Effect`,e[e.Mesh=6]=`Mesh`,e[e.Movenode=7]=`Movenode`,e[e.Constraint=8]=`Constraint`,e[e.Mask=9]=`Mask`,e[e.Joint=10]=`Joint`,e[e.Bonepoint=11]=`Bonepoint`,e}({});var A=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsPartData(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsPartData(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}index(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}parentIndex(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}type(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt8(this.bb_pos+e):k.Nulltype}boundsType(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}alphaBlendType(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.readInt16(this.bb_pos+e):0}refname(e){let t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__string(this.bb_pos+t,e):null}effectfilename(e){let t=this.bb.__offset(this.bb_pos,18);return t?this.bb.__string(this.bb_pos+t,e):null}colorLabel(e){let t=this.bb.__offset(this.bb_pos,20);return t?this.bb.__string(this.bb_pos+t,e):null}maskInfluence(){let e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readInt16(this.bb_pos+e):0}static startPartData(e){e.startObject(10)}static addName(e,t){e.addFieldOffset(0,t,0)}static addIndex(e,t){e.addFieldInt16(1,t,0)}static addParentIndex(e,t){e.addFieldInt16(2,t,0)}static addType(e,t){e.addFieldInt8(3,t,k.Nulltype)}static addBoundsType(e,t){e.addFieldInt16(4,t,0)}static addAlphaBlendType(e,t){e.addFieldInt16(5,t,0)}static addRefname(e,t){e.addFieldOffset(6,t,0)}static addEffectfilename(e,t){e.addFieldOffset(7,t,0)}static addColorLabel(e,t){e.addFieldOffset(8,t,0)}static addMaskInfluence(e,t){e.addFieldInt16(9,t,0)}static endPartData(e){return e.endObject()}static createPartData(t,n,r,i,a,o,s,c,l,u,d){return e.startPartData(t),e.addName(t,n),e.addIndex(t,r),e.addParentIndex(t,i),e.addType(t,a),e.addBoundsType(t,o),e.addAlphaBlendType(t,s),e.addRefname(t,c),e.addEffectfilename(t,l),e.addColorLabel(t,u),e.addMaskInfluence(t,d),e.endPartData(t)}},ee=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsAnimePackData(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAnimePackData(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}parts(e,t){let n=this.bb.__offset(this.bb_pos,6);return n?(t||new A).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}partsLength(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__vector_len(this.bb_pos+e):0}animations(e,t){let n=this.bb.__offset(this.bb_pos,8);return n?(t||new O).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}animationsLength(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__vector_len(this.bb_pos+e):0}static startAnimePackData(e){e.startObject(3)}static addName(e,t){e.addFieldOffset(0,t,0)}static addParts(e,t){e.addFieldOffset(1,t,0)}static createPartsVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startPartsVector(e,t){e.startVector(4,t,4)}static addAnimations(e,t){e.addFieldOffset(2,t,0)}static createAnimationsVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startAnimationsVector(e,t){e.startVector(4,t,4)}static endAnimePackData(e){return e.endObject()}static createAnimePackData(t,n,r,i){return e.startAnimePackData(t),e.addName(t,n),e.addParts(t,r),e.addAnimations(t,i),e.endAnimePackData(t)}},j=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsCellMap(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsCellMap(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}imagePath(e){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__string(this.bb_pos+t,e):null}index(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}wrapmode(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt16(this.bb_pos+e):0}filtermode(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}static startCellMap(e){e.startObject(5)}static addName(e,t){e.addFieldOffset(0,t,0)}static addImagePath(e,t){e.addFieldOffset(1,t,0)}static addIndex(e,t){e.addFieldInt16(2,t,0)}static addWrapmode(e,t){e.addFieldInt16(3,t,0)}static addFiltermode(e,t){e.addFieldInt16(4,t,0)}static endCellMap(e){return e.endObject()}static createCellMap(t,n,r,i,a,o){return e.startCellMap(t),e.addName(t,n),e.addImagePath(t,r),e.addIndex(t,i),e.addWrapmode(t,a),e.addFiltermode(t,o),e.endCellMap(t)}},M=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsCell(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsCell(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}cellMap(e){let t=this.bb.__offset(this.bb_pos,6);return t?(e||new j).__init(this.bb.__indirect(this.bb_pos+t),this.bb):null}indexInCellMap(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}x(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt16(this.bb_pos+e):0}y(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}width(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.readInt16(this.bb_pos+e):0}height(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.readInt16(this.bb_pos+e):0}pivotX(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.readFloat32(this.bb_pos+e):0}pivotY(){let e=this.bb.__offset(this.bb_pos,20);return e?this.bb.readFloat32(this.bb_pos+e):0}u1(){let e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readFloat32(this.bb_pos+e):0}v1(){let e=this.bb.__offset(this.bb_pos,24);return e?this.bb.readFloat32(this.bb_pos+e):0}u2(){let e=this.bb.__offset(this.bb_pos,26);return e?this.bb.readFloat32(this.bb_pos+e):0}v2(){let e=this.bb.__offset(this.bb_pos,28);return e?this.bb.readFloat32(this.bb_pos+e):0}static startCell(e){e.startObject(13)}static addName(e,t){e.addFieldOffset(0,t,0)}static addCellMap(e,t){e.addFieldOffset(1,t,0)}static addIndexInCellMap(e,t){e.addFieldInt16(2,t,0)}static addX(e,t){e.addFieldInt16(3,t,0)}static addY(e,t){e.addFieldInt16(4,t,0)}static addWidth(e,t){e.addFieldInt16(5,t,0)}static addHeight(e,t){e.addFieldInt16(6,t,0)}static addPivotX(e,t){e.addFieldFloat32(7,t,0)}static addPivotY(e,t){e.addFieldFloat32(8,t,0)}static addU1(e,t){e.addFieldFloat32(9,t,0)}static addV1(e,t){e.addFieldFloat32(10,t,0)}static addU2(e,t){e.addFieldFloat32(11,t,0)}static addV2(e,t){e.addFieldFloat32(12,t,0)}static endCell(e){return e.endObject()}},N=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsEffectNode(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsEffectNode(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}arrayIndex(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):0}parentIndex(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}type(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}cellIndex(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt16(this.bb_pos+e):0}blendType(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}numBehavior(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.readInt16(this.bb_pos+e):0}behaviorType(e){let t=this.bb.__offset(this.bb_pos,16);return t?this.bb.readUint8(this.bb.__vector(this.bb_pos+t)+e):0}behaviorTypeLength(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.__vector_len(this.bb_pos+e):0}behaviorTypeArray(){let e=this.bb.__offset(this.bb_pos,16);return e?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}behavior(e,t){let n=this.bb.__offset(this.bb_pos,18);return n?this.bb.__union(t,this.bb.__vector(this.bb_pos+n)+e*4):null}behaviorLength(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.__vector_len(this.bb_pos+e):0}static startEffectNode(e){e.startObject(8)}static addArrayIndex(e,t){e.addFieldInt16(0,t,0)}static addParentIndex(e,t){e.addFieldInt16(1,t,0)}static addType(e,t){e.addFieldInt16(2,t,0)}static addCellIndex(e,t){e.addFieldInt16(3,t,0)}static addBlendType(e,t){e.addFieldInt16(4,t,0)}static addNumBehavior(e,t){e.addFieldInt16(5,t,0)}static addBehaviorType(e,t){e.addFieldOffset(6,t,0)}static createBehaviorTypeVector(e,t){e.startVector(1,t.length,1);for(let n=t.length-1;n>=0;n--)e.addInt8(t[n]);return e.endVector()}static startBehaviorTypeVector(e,t){e.startVector(1,t,1)}static addBehavior(e,t){e.addFieldOffset(7,t,0)}static createBehaviorVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startBehaviorVector(e,t){e.startVector(4,t,4)}static endEffectNode(e){return e.endObject()}static createEffectNode(t,n,r,i,a,o,s,c,l){return e.startEffectNode(t),e.addArrayIndex(t,n),e.addParentIndex(t,r),e.addType(t,i),e.addCellIndex(t,a),e.addBlendType(t,o),e.addNumBehavior(t,s),e.addBehaviorType(t,c),e.addBehavior(t,l),e.endEffectNode(t)}},P=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsEffectFile(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsEffectFile(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}fps(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}isLockRandSeed(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}lockRandSeed(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt16(this.bb_pos+e):0}layoutScaleX(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}layoutScaleY(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.readInt16(this.bb_pos+e):0}numNodeList(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.readInt16(this.bb_pos+e):0}effectNode(e,t){let n=this.bb.__offset(this.bb_pos,18);return n?(t||new N).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}effectNodeLength(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.__vector_len(this.bb_pos+e):0}static startEffectFile(e){e.startObject(8)}static addName(e,t){e.addFieldOffset(0,t,0)}static addFps(e,t){e.addFieldInt16(1,t,0)}static addIsLockRandSeed(e,t){e.addFieldInt16(2,t,0)}static addLockRandSeed(e,t){e.addFieldInt16(3,t,0)}static addLayoutScaleX(e,t){e.addFieldInt16(4,t,0)}static addLayoutScaleY(e,t){e.addFieldInt16(5,t,0)}static addNumNodeList(e,t){e.addFieldInt16(6,t,0)}static addEffectNode(e,t){e.addFieldOffset(7,t,0)}static createEffectNodeVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startEffectNodeVector(e,t){e.startVector(4,t,4)}static endEffectFile(e){return e.endObject()}static createEffectFile(t,n,r,i,a,o,s,c,l){return e.startEffectFile(t),e.addName(t,n),e.addFps(t,r),e.addIsLockRandSeed(t,i),e.addLockRandSeed(t,a),e.addLayoutScaleX(t,o),e.addLayoutScaleY(t,s),e.addNumNodeList(t,c),e.addEffectNode(t,l),e.endEffectFile(t)}};let F=function(e){return e[e.INVISIBLE=1]=`INVISIBLE`,e[e.FLIP_H=2]=`FLIP_H`,e[e.FLIP_V=4]=`FLIP_V`,e[e.CELL_INDEX=8]=`CELL_INDEX`,e[e.POSITION_X=16]=`POSITION_X`,e[e.POSITION_Y=32]=`POSITION_Y`,e[e.POSITION_Z=64]=`POSITION_Z`,e[e.PIVOT_X=128]=`PIVOT_X`,e[e.PIVOT_Y=256]=`PIVOT_Y`,e[e.ROTATIONX=512]=`ROTATIONX`,e[e.ROTATIONY=1024]=`ROTATIONY`,e[e.ROTATIONZ=2048]=`ROTATIONZ`,e[e.SCALE_X=4096]=`SCALE_X`,e[e.SCALE_Y=8192]=`SCALE_Y`,e[e.LOCALSCALE_X=16384]=`LOCALSCALE_X`,e[e.LOCALSCALE_Y=32768]=`LOCALSCALE_Y`,e[e.OPACITY=65536]=`OPACITY`,e[e.LOCALOPACITY=131072]=`LOCALOPACITY`,e[e.PARTS_COLOR=262144]=`PARTS_COLOR`,e[e.VERTEX_TRANSFORM=524288]=`VERTEX_TRANSFORM`,e[e.SIZE_X=1048576]=`SIZE_X`,e[e.SIZE_Y=2097152]=`SIZE_Y`,e[e.U_MOVE=4194304]=`U_MOVE`,e[e.V_MOVE=8388608]=`V_MOVE`,e[e.UV_ROTATION=16777216]=`UV_ROTATION`,e[e.U_SCALE=33554432]=`U_SCALE`,e[e.V_SCALE=67108864]=`V_SCALE`,e[e.BOUNDINGRADIUS=134217728]=`BOUNDINGRADIUS`,e[e.MASK=268435456]=`MASK`,e[e.PRIORITY=536870912]=`PRIORITY`,e[e.INSTANCE_KEYFRAME=1073741824]=`INSTANCE_KEYFRAME`,e[e.EFFECT_KEYFRAME=2147483648]=`EFFECT_KEYFRAME`,e}({}),te=function(e){return e[e.MESHDATA=1]=`MESHDATA`,e}({});var I=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsProjectData(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsProjectData(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static bufferHasIdentifier(e){return e.__has_identifier(`SSFB`)}dataId(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readUint32(this.bb_pos+e):0}version(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readUint32(this.bb_pos+e):0}flags(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readUint32(this.bb_pos+e):0}imageBaseDir(e){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__string(this.bb_pos+t,e):null}cells(e,t){let n=this.bb.__offset(this.bb_pos,12);return n?(t||new M).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}cellsLength(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.__vector_len(this.bb_pos+e):0}animePacks(e,t){let n=this.bb.__offset(this.bb_pos,14);return n?(t||new ee).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}animePacksLength(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.__vector_len(this.bb_pos+e):0}effectFileList(e,t){let n=this.bb.__offset(this.bb_pos,16);return n?(t||new P).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}effectFileListLength(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.__vector_len(this.bb_pos+e):0}numCells(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.readInt16(this.bb_pos+e):0}numAnimePacks(){let e=this.bb.__offset(this.bb_pos,20);return e?this.bb.readInt16(this.bb_pos+e):0}numEffectFileList(){let e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readInt16(this.bb_pos+e):0}static startProjectData(e){e.startObject(10)}static addDataId(e,t){e.addFieldInt32(0,t,0)}static addVersion(e,t){e.addFieldInt32(1,t,0)}static addFlags(e,t){e.addFieldInt32(2,t,0)}static addImageBaseDir(e,t){e.addFieldOffset(3,t,0)}static addCells(e,t){e.addFieldOffset(4,t,0)}static createCellsVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startCellsVector(e,t){e.startVector(4,t,4)}static addAnimePacks(e,t){e.addFieldOffset(5,t,0)}static createAnimePacksVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startAnimePacksVector(e,t){e.startVector(4,t,4)}static addEffectFileList(e,t){e.addFieldOffset(6,t,0)}static createEffectFileListVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startEffectFileListVector(e,t){e.startVector(4,t,4)}static addNumCells(e,t){e.addFieldInt16(7,t,0)}static addNumAnimePacks(e,t){e.addFieldInt16(8,t,0)}static addNumEffectFileList(e,t){e.addFieldInt16(9,t,0)}static endProjectData(e){return e.endObject()}static finishProjectDataBuffer(e,t){e.finish(t,`SSFB`)}static finishSizePrefixedProjectDataBuffer(e,t){e.finish(t,`SSFB`,!0)}static createProjectData(t,n,r,i,a,o,s,c,l,u,d){return e.startProjectData(t),e.addDataId(t,n),e.addVersion(t,r),e.addFlags(t,i),e.addImageBaseDir(t,a),e.addCells(t,o),e.addAnimePacks(t,s),e.addEffectFileList(t,c),e.addNumCells(t,l),e.addNumAnimePacks(t,u),e.addNumEffectFileList(t,d),e.endProjectData(t)}},ne=class{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}integer(){return this.bb.readInt32(this.bb_pos)}static sizeOf(){return 4}static createuserDataInteger(e,t){return e.prep(4,4),e.writeInt32(t),e.offset()}},re=class{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}x(){return this.bb.readInt32(this.bb_pos)}y(){return this.bb.readInt32(this.bb_pos+4)}static sizeOf(){return 8}static createuserDataPoint(e,t,n){return e.prep(4,8),e.writeInt32(n),e.writeInt32(t),e.offset()}},ie=class{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}x(){return this.bb.readInt32(this.bb_pos)}y(){return this.bb.readInt32(this.bb_pos+4)}w(){return this.bb.readInt32(this.bb_pos+8)}h(){return this.bb.readInt32(this.bb_pos+12)}static sizeOf(){return 16}static createuserDataRect(e,t,n,r,i){return e.prep(4,16),e.writeInt32(i),e.writeInt32(r),e.writeInt32(n),e.writeInt32(t),e.offset()}},ae=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsuserDataString(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataString(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}length(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt32(this.bb_pos+e):0}data(e){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__string(this.bb_pos+t,e):null}static startuserDataString(e){e.startObject(2)}static addLength(e,t){e.addFieldInt32(0,t,0)}static addData(e,t){e.addFieldOffset(1,t,0)}static enduserDataString(e){return e.endObject()}static createuserDataString(t,n,r){return e.startuserDataString(t),e.addLength(t,n),e.addData(t,r),e.enduserDataString(t)}},oe=class{static getProjectData(e){let t=new y(e);return I.getRootAsProjectData(t)}},L=class{static getProjectData(e){return oe.getProjectData(e)}},R=class{get fbObj(){return this._fbObj}get animePackName(){return this.curAnimePackName}get animeName(){return this.curAnimeName}get animePackIdx(){return this._animePackIdx}get animePackData(){return this.curAnimePackData}get animationData(){return this.curAnimation}get parentIndex(){return this._parentIndex}get prio2index(){return this._prio2index}constructor(e,t=null,n=null){this.curAnimePackName=null,this.curAnimeName=null,this.curAnimation=null,this.curAnimePackData=null,this._animePackIdx=-1,this._parentIndex=[],this._prio2index=[],this.userData=[],this.frameDataCache=null,this.currentCachedFrameNumber=-1,this.defaultFrameMap=[],this._uint32=new Uint32Array(1),this._float32=new Float32Array(this._uint32.buffer),Object.prototype.hasOwnProperty.call(e,`bb`)?this._fbObj=e:this._fbObj=L.getProjectData(e),t!==null&&n!==null&&this.Setup(t,n)}Setup(e,t){this.clearCaches();let n=this._fbObj.animePacksLength(),r=!1;for(let i=0;i>>0,s.colorBlendType===1&&(s.tint=s.colorArgb32&16777215)}}if(o&te.MESHDATA){let e=this.curAnimation.meshsDataUv(i);s.meshIsBind=e.uv(0),s.meshNum=e.uv(1);let n=new Float32Array(s.meshNum*3);for(let e=0;e=0&&(e=this.InheritOpacity(e,this._parentIndex[t],n)),e}TransformVertsLocal(e,t,n){let r=this.GetFrameData(n)[t],i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i);for(let t=0;t=0&&(e=this.TransformVerts(e,this._parentIndex[t],n)),e}TransformMeshVertsLocal(e,t,n){let r=this.GetFrameData(n)[t],i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i);for(let t=0;t=0&&(e=this.TransformVerts(e,this._parentIndex[t],n)),e}TransformPositionLocal(e,t,n){let r=this.GetFrameData(n)[t];e[4]+=-r.rotationZ;let i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i),s=e[0]*r.scaleX*r.localscaleX,c=e[1]*r.scaleY*r.localscaleY;return e[2]*=r.scaleX*r.localscaleX,e[3]*=r.scaleY*r.localscaleY,e[0]=a*s-o*c+r.positionX,e[1]=o*s+a*c-r.positionY,this._parentIndex[t]>=0&&(e=this.TransformPosition(e,this._parentIndex[t],n)),e}static CoordinateGetDiagonalIntersection(e,t,n,r,i,a,o,s,c,l,u){let d=(s-a)*(o-n)-(o-i)*(s-r),f=(c-n)*(s-r)-(l-r)*(o-n),p=(c-n)*(s-a)-(l-r)*(o-i);if(p<=0&&p>=0)return u;let m=d/p,h=f/p;return 0<=m&&1>=m&&0<=h&&1>=h&&(e=n+m*(c-n),t=r+m*(l-r)),u[0]=e,u[1]=t,u}TransformVerts(e,t,n){let r=this.GetFrameData(n)[t],i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i);for(let t=0;t=0&&(e=this.TransformVerts(e,this._parentIndex[t],n)),e}TransformPosition(e,t,n){let r=this.GetFrameData(n)[t];e[4]+=-r.rotationZ;let i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i),s=e[0]*r.scaleX,c=e[1]*r.scaleY;return e[2]*=r.scaleX,e[3]*=r.scaleY,e[0]=a*s-o*c+r.positionX,e[1]=o*s+a*c-r.positionY,this._parentIndex[t]>=0&&(e=this.TransformPosition(e,this._parentIndex[t],n)),e}static GetVerts(e,t,n){let r=t.size_X/2,i=t.size_Y/2,a=t.size_X*-(t.pivotX+e.pivotX()),o=t.size_Y*(t.pivotY+e.pivotY());return n.set([a,o,a-r,o-i,a+r,o-i,a-r,o+i,a+r,o+i]),n}static GetMeshVerts(e,t,n){for(let e=0;e{r!==null&&r(null)}).catch(e=>{r!==null&&r(e)})}unload(e,n,r){t.Assets.unloadBundle(e).then(()=>{r!==null&&r(null)}).catch(e=>{r!==null&&r(e)})}texture(e){return t.Assets.get(e)}},ce=class{constructor(){this.loader=new se}load(e,t,n){return this.loader.load(e,t,n)}unload(e,t,n=null){return this.loader.unload(e,t,n)}texture(e){return this.loader.texture(e)}};let le=function(e){return e[e.NOT_READY=0]=`NOT_READY`,e[e.READY=1]=`READY`,e}({});var ue=class{getBundle(){return this.ssfbFile}getTexture(e){return this.resourceLoader.texture(e)}constructor(e,t,n,r){if(this.sspjMap={},this.resourceLoader=new ce,typeof e==`string`&&n===void 0){let n=e;this.ssfbPath=n;let r=n.lastIndexOf(`/`);this.rootPath=n.substring(0,r)+`/`,this.ssfbFile=n.substring(r+1),this.onComplete=t===void 0?null:t,this.status=le.NOT_READY,this.LoadFlatBuffersProject()}else if(typeof t==`object`&&t.constructor===Uint8Array){this.ssfbPath=null,this.rootPath=null,this.ssfbFile=e;let i=t,a=n;this.onComplete=r===void 0?null:r,this.load(i,a)}}dispose(e=null){this.resourceLoader.unload(this.getBundle(),this.sspjMap,t=>{e!==null&&e()})}LoadFlatBuffersProject(){let e=this;fetch(this.ssfbPath,{method:`get`}).then(e=>e.ok?Promise.resolve(e.arrayBuffer()):Promise.reject(Error(e.statusText))).then(t=>{e.fbObj=L.getProjectData(new Uint8Array(t)),e.LoadCellResources()}).catch(e=>{this.onComplete!==null&&this.onComplete(null,e)})}LoadCellResources(){let e=[];this.sspjMap={};for(let t=0;t{e===null?(t.status=le.READY,t.onComplete!==null&&t.onComplete(this,null)):this.onComplete!==null&&this.onComplete(null,e)})}load(e,t){this.fbObj=L.getProjectData(e);let n={};for(let e in t){let r=t[e],i=``,a=r.byteLength;for(let e=0;e{e===null?(r.status=le.READY,r.onComplete!==null&&r.onComplete(this,null)):this.onComplete!==null&&this.onComplete(null,e)})}},de=class{constructor(){this.refStartframe=0,this.refEndframe=0,this.refSpeed=1,this.refloopNum=0,this.infinity=!1,this.reverse=!1,this.pingpong=!1,this.independent=!1}},z=class e extends t.Container{get startFrame(){return this._startFrame}get endFrame(){return this._endFrame}get totalFrame(){return this.playerLib.animationData.totalFrames()}get fps(){return this.playerLib.animationData.fps()}get frameNo(){return Math.floor(this._currentFrame)}set loop(e){this._loops=e}get loop(){return this._loops}get isPlaying(){return this._isPlaying}get isPausing(){return this._isPausing}get animePackName(){return this.playerLib.animePackName}get animeName(){return this.playerLib.animeName}constructor(e,n=null,r=null){super(),this.liveFrame=[],this.colorMatrixFilterCache=[],this.parentAlpha=1,this.prevCellID=[],this.prevPartObject=[],this.changeCellID=[],this.changeVisible=[],this.changeTint=[],this.substituteOverWrite=[],this.substituteKeyParam=[],this.alphaBlendType=[],this.defaultColorFilter=new t.ColorMatrixFilter,this._instancePos=new Float32Array(5),this._CoordinateGetDiagonalIntersectionVec2=new Float32Array(2),this.isRenderGroup=!0,this.ss6project=e,this.playerLib=new R(e.fbObj,n,r),this.parentAlpha=1,n!==null&&r!==null&&this.Setup(n,r),this.on(`added`,(...e)=>{t.Ticker.shared.add(this.Update,this)},this),this.on(`removed`,(...e)=>{t.Ticker.shared.remove(this.Update,this)},this)}Setup(e,t){this.playerLib.Setup(e,t),this.clearCaches();let n=this.playerLib.animePackData,r=n.partsLength();this.prevCellID=Array(r),this.prevPartObject=Array(r),this.changeCellID=Array(r),this.changeVisible=Array(r),this.changeTint=Array(r),this.substituteOverWrite=Array(r),this.substituteKeyParam=Array(r);for(let e=0;e=this.updateInterval){let e=!1,n=this.nextFrameTime/this.updateInterval;this.nextFrameTime-=this.updateInterval*n;let r=this.skipEnabled?n*this.playDirection:this.playDirection,i=this._currentFrame+r,a=Math.floor(i),o=i-a,s=Math.floor(this._currentFrame);if(this.playDirection>=1)for(let n=a-s;n;n--){let n=s+1;if(n>this._endFrame)if(this._loops===-1)n=this._startFrame;else if(this._loops--,e=!0,this._loops===0){this._isPlaying=!1,n=t?this._startFrame:this._endFrame;break}else n=this._startFrame;s=n,this._isPlaying&&this.playerLib.HaveUserData(s)&&this.onUserDataCallback!==null&&this.onUserDataCallback(this.playerLib.GetUserData(s))}if(this.playDirection<=-1)for(let n=s-a;n;n--){let n=s-1;if(n0?1:-1,this.updateInterval=1e3/(this.playerLib.animationData.fps()*e*this.playDirection),this.skipEnabled=t)}SetAnimationSection(e=-1,t=-1,n=-1){e>=0&&e=0&&t0?this._loops=n:this._loops=-1,this._currentFrame=this.playDirection>0?this._startFrame:this._endFrame}Play(e){this._isPlaying=!0,this._isPausing=!1;let t=this.playDirection>0?this._startFrame:this._endFrame;e&&typeof e==`number`&&(t=e),this._currentFrame=t,this.resetLiveFrame();let n=Math.floor(this._currentFrame);this.SetFrameAnimation(n),this.playerLib.HaveUserData(n)&&this.onUserDataCallback!==null&&this.onUserDataCallback(this.playerLib.GetUserData(n))}Pause(){this._isPausing=!0}Resume(){this._isPausing=!1}Stop(){this._isPlaying=!1}SetFrame(e){this._currentFrame=e}NextFrame(){let e=Math.floor(this._currentFrame);e!==this.endFrame&&this.SetFrame(e+1)}PrevFrame(){let e=Math.floor(this._currentFrame);e!==0&&this.SetFrame(e-1)}SetAlpha(e){this.parentAlpha=e}ThrowError(e){}SetUserDataCalback(e){this.onUserDataCallback=e}SetPlayEndCallback(e){this.playEndCallback=e}getCellIndex(e,t){let n=-1;if(e!==``&&t!==``){let r=this.playerLib.fbObj,i=this.playerLib.fbObj.numCells();for(let a=0;a>>24)/255,s=((r&16711680)>>>16)/255,c=((r&65280)>>>8)/255,l=(r&255)/255;if(e===0){let e=1-n;a.matrix=[e,0,0,0,s*n,0,e,0,0,c*n,0,0,e,0,l*n,0,0,0,1,0]}else e===1?a.matrix=[s,0,0,0,0,0,c,0,0,0,0,0,l,0,0,0,0,0,o,0]:e===2?a.matrix=[1,0,0,0,s,0,1,0,0,c,0,0,1,0,l,0,0,0,o,0]:e===3&&(a.matrix=[1,0,0,0,-s,0,1,0,0,-c,0,0,1,0,-l,0,0,0,o,0]);return this.colorMatrixFilterCache[i]=a,a}SetFrameAnimation(e,n=0){let r=this.playerLib.GetFrameData(e);this.removeChildren();let i=r.length;for(let a=0;a=0&&this.prevCellID[i]!==c&&(l?.destroy(),l=this.MakeCellMesh(c),l.label=u.name());break;case k.Mesh:c>=0&&this.prevCellID[i]!==c&&(l?.destroy(),l=this.MakeMeshCellMesh(i,c,s),l.label=u.name());break;case k.Nulltype:case k.Joint:this.prevCellID[i]!==c&&(l?.destroy(),l=new t.Container,l.label=u.name());break;default:c>=0&&this.prevCellID[i]!==c&&(l?.destroy(),l=this.MakeCellMesh(c),l.label=u.name());break}if(l!=null)switch(this.prevCellID[i]=c,this.prevPartObject[i]=l,d){case k.Instance:{let t=l;this._instancePos[0]=0,this._instancePos[1]=0,this._instancePos[2]=1,this._instancePos[3]=1,this._instancePos[4]=0,this._instancePos=this.playerLib.TransformPositionLocal(this._instancePos,o.index,e),t.rotation=this._instancePos[4]*Math.PI/180,t.position.set(this._instancePos[0],this._instancePos[1]),t.scale.set(this._instancePos[2],this._instancePos[3]);let r=o.opacity/255;o.localopacity<255&&(r=o.localopacity/255),t.SetAlpha(r*this.parentAlpha),t.visible=!o.f_hide;let i=o.instanceValue_curKeyframe,s=o.instanceValue_startFrame,c=o.instanceValue_endFrame,u=o.instanceValue_speed,d=o.instanceValue_loopNum,m=!1,h=!1,g=!1,_=!1,v=o.instanceValue_loopflag;v&1&&(m=!0),v&2&&(h=!0),v&4&&(g=!0),v&8&&(_=!0),f&&(s=p.refStartframe,c=p.refEndframe,u=p.refSpeed,d=p.refloopNum,m=p.infinity,h=p.reverse,g=p.pingpong,_=p.independent),(t._startFrame!==s||t._endFrame!==c)&&t.SetAnimationSection(s,c);let y=e;_===!0&&(this.liveFrame[a]+=n,y=Math.floor(this.liveFrame[a]));let b=i,x=Math.floor((y-b)*u);if(x<0||b>y)continue;let S=c-s+1;if(S<=0)continue;let C=Math.floor(x/S),w=d;g&&(w*=2),m||C>=w&&(x=S-1,C=w-1);let T=Math.floor(x%S),E=0;g&&C%2==1&&(h=!h),this.playDirection<=-1&&(h=!h),E=h?c-T:T+s,t.SetFrame(Math.floor(E)),this.addChild(t);break}case k.Normal:case k.Mesh:case k.Joint:case k.Mask:{let t=l,n=t.geometry.attributes.aPosition.buffer,r=n.data,a=this.playerLib.fbObj.cells(c),s;if(d===k.Mesh?s=o.meshIsBind===0?this.playerLib.TransformMeshVertsLocal(R.GetMeshVerts(a,o,r),o.index,e):R.GetMeshVerts(a,o,r):(s=d===k.Joint?new Float32Array(10):r,s=this.playerLib.TransformVertsLocal(R.GetVerts(a,o,s),o.index,e)),o.flag1&F.VERTEX_TRANSFORM){let e=s[6],t=s[7],n=s[2],r=s[3],i=s[8],a=s[9],o=s[4],c=s[5],l=(e+i)*.5,u=(t+a)*.5,d=(e+n)*.5,f=(t+r)*.5,p=(n+o)*.5,m=(r+c)*.5,h=(i+o)*.5,g=(a+c)*.5,_=R.CoordinateGetDiagonalIntersection(s[0],s[1],l,u,h,g,d,f,p,m,this._CoordinateGetDiagonalIntersectionVec2);s[0]=_[0],s[1]=_[1]}let u=s[0],f=s[1];for(let e=0;e>>24)/255;t.alpha*=e}let m=this.alphaBlendType[i];(m===`multiply`||m===`screen`)&&(t.alpha=1),d!==k.Mask&&this.addChild(t);break}case k.Nulltype:{let t=l;t.alpha=this.playerLib.InheritOpacity(1,o.index,e)*o.localopacity/255;let n=this.playerLib.TransformVerts(R.GetDummyVerts(),o.index,e),r=n[0],i=n[1];t.position.set(r,i);let a=Math.atan2(n[5]-n[3],n[4]-n[2]),s=Math.atan2(n[7]-n[3],n[6]-n[2]);t.rotation=a,t.skew.x=s-a-Math.PI/2;break}}}}ChangeInstanceAnime(t,n,r,i,a=null){let o=!1;if(this.animePackName!==null&&this.animeName!==null){let s=this.playerLib.animePackData,c=s.partsLength();for(let l=0;l0){let o=this.playerLib.fbObj.cells(n),s=this.playerLib.fbObj.cells(r),c=n===r?0:(o.u1()+o.u2())/2-(s.u1()+s.u2())/2,l=n===r?0:(o.v1()+o.v2())/2-(s.v1()+s.v2())/2,u=new Float32Array(a-2),d=i.uv(1);for(let e=2;e{n.ssWebPlayer&&n.ssWebPlayer.playEndCallback&&n.ssWebPlayer.playEndCallback(n)},this.onUserDataCallback=e=>{n.ssWebPlayer&&n.ssWebPlayer.onUpdateCallback&&n.ssWebPlayer.onUpdateCallback(n)},this.setupCurrentAnimationFrameDataMap()}getCurrentAnimationFrameDataMap(){return this.currentAnimationFrameDataMap}setupCurrentAnimationFrameDataMap(){let e=this.playerLib.animationData,t={},n=e.userDataLength();for(let r=0;r{ +/*! -var ss6PlayerViewer=function(Pe,wt){"use strict";const be=[5,10,15,20,25,50,75,100,150,200,300,400,800];class Ue extends wt.Container{constructor(){super(),this.rootLineGraphics=null,this.gridGraphics=null,this.defaultScaleRatio=null,this.zoomPercent=null,this.isDisplayGrid=!1;const t=new wt.Graphics,e=new wt.Graphics;this.addChild(t),this.addChild(e),this.rootLineGraphics=t,this.gridGraphics=e}setDefaultScaleRatio(t){this.defaultScaleRatio=t}setPosition(t,e){this.position.set(t,e)}movePosition(t,e){const r=this.position;r.x+=t,r.y+=e,this.position=r}zoom(t){let e=this.defaultScaleRatio;t!==100&&(e=this.defaultScaleRatio*(t*.01)),this.zoomPercent=t,this.scale.set(e,e)}zoomIn(){const e=be.indexOf(this.zoomPercent)+1;if(e>=be.length)return;const r=be[e];this.zoom(r)}zoomOut(){const e=be.indexOf(this.zoomPercent)-1;if(e<0)return;const r=be[e];this.zoom(r)}switchGridDisplay(){const t=this.rootLineGraphics,e=this.gridGraphics;if(!(t==null||e==null)&&(t.clear(),e.clear(),this.isDisplayGrid=!this.isDisplayGrid,this.isDisplayGrid)){t.lineStyle(1,0),t.alpha=.3,t.moveTo(-5e3,0).lineTo(5001,0),t.moveTo(0,-5e3).lineTo(0,5001),e.lineStyle(1,0),e.alpha=.1;let f=100;for(let a=-5e3;a<5001;a+=f)e.moveTo(a,-5e3).lineTo(a,5001);for(let a=-5e3;a<5001;a+=f)e.moveTo(-5e3,-a).lineTo(5001,-a)}}}class Ve{}const me=4,ve=4,St=4,ee=new Int32Array(2),Te=new Float32Array(ee.buffer),Le=new Float64Array(ee.buffer),ge=new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1;var Ee;(function(L){L[L.UTF8_BYTES=1]="UTF8_BYTES",L[L.UTF16_STRING=2]="UTF16_STRING"})(Ee||(Ee={}));class Oe{constructor(t){this.bytes_=t,this.position_=0,this.text_decoder_=new TextDecoder}static allocate(t){return new Oe(new Uint8Array(t))}clear(){this.position_=0}bytes(){return this.bytes_}position(){return this.position_}setPosition(t){this.position_=t}capacity(){return this.bytes_.length}readInt8(t){return this.readUint8(t)<<24>>24}readUint8(t){return this.bytes_[t]}readInt16(t){return this.readUint16(t)<<16>>16}readUint16(t){return this.bytes_[t]|this.bytes_[t+1]<<8}readInt32(t){return this.bytes_[t]|this.bytes_[t+1]<<8|this.bytes_[t+2]<<16|this.bytes_[t+3]<<24}readUint32(t){return this.readInt32(t)>>>0}readInt64(t){return BigInt.asIntN(64,BigInt(this.readUint32(t))+(BigInt(this.readUint32(t+4))<>8}writeUint16(t,e){this.bytes_[t]=e,this.bytes_[t+1]=e>>8}writeInt32(t,e){this.bytes_[t]=e,this.bytes_[t+1]=e>>8,this.bytes_[t+2]=e>>16,this.bytes_[t+3]=e>>24}writeUint32(t,e){this.bytes_[t]=e,this.bytes_[t+1]=e>>8,this.bytes_[t+2]=e>>16,this.bytes_[t+3]=e>>24}writeInt64(t,e){this.writeInt32(t,Number(BigInt.asIntN(32,e))),this.writeInt32(t+4,Number(BigInt.asIntN(32,e>>BigInt(32))))}writeUint64(t,e){this.writeUint32(t,Number(BigInt.asUintN(32,e))),this.writeUint32(t+4,Number(BigInt.asUintN(32,e>>BigInt(32))))}writeFloat32(t,e){Te[0]=e,this.writeInt32(t,ee[0])}writeFloat64(t,e){Le[0]=e,this.writeInt32(t,ee[ge?0:1]),this.writeInt32(t+4,ee[ge?1:0])}getBufferIdentifier(){if(this.bytes_.length=0;r--)t.addInt32(e[r]);return t.endVector()}static startDataVector(t,e){t.startVector(4,e,4)}static endpartState(t){return t.endObject()}static createpartState(t,e,r,s,f){return Ht.startpartState(t),Ht.addIndex(t,e),Ht.addFlag1(t,r),Ht.addFlag2(t,s),Ht.addData(t,f),Ht.endpartState(t)}}class oe{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsframeDataIndex(t,e){return(e||new oe).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsframeDataIndex(t,e){return t.setPosition(t.position()+St),(e||new oe).__init(t.readInt32(t.position())+t.position(),t)}states(t,e){const r=this.bb.__offset(this.bb_pos,4);return r?(e||new Ht).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+t*4),this.bb):null}statesLength(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}static startframeDataIndex(t){t.startObject(1)}static addStates(t,e){t.addFieldOffset(0,e,0)}static createStatesVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startStatesVector(t,e){t.startVector(4,e,4)}static endframeDataIndex(t){return t.endObject()}static createframeDataIndex(t,e){return oe.startframeDataIndex(t),oe.addStates(t,e),oe.endframeDataIndex(t)}}class ie{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAslabelDataItem(t,e){return(e||new ie).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAslabelDataItem(t,e){return t.setPosition(t.position()+St),(e||new ie).__init(t.readInt32(t.position())+t.position(),t)}label(t){const e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}frameIndex(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}static startlabelDataItem(t){t.startObject(2)}static addLabel(t,e){t.addFieldOffset(0,e,0)}static addFrameIndex(t,e){t.addFieldInt16(1,e,0)}static endlabelDataItem(t){return t.endObject()}static createlabelDataItem(t,e,r){return ie.startlabelDataItem(t),ie.addLabel(t,e),ie.addFrameIndex(t,r),ie.endlabelDataItem(t)}}class fe{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsmeshDataIndices(t,e){return(e||new fe).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsmeshDataIndices(t,e){return t.setPosition(t.position()+St),(e||new fe).__init(t.readInt32(t.position())+t.position(),t)}indices(t){const e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readFloat32(this.bb.__vector(this.bb_pos+e)+t*4):0}indicesLength(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}indicesArray(){const t=this.bb.__offset(this.bb_pos,4);return t?new Float32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}static startmeshDataIndices(t){t.startObject(1)}static addIndices(t,e){t.addFieldOffset(0,e,0)}static createIndicesVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addFloat32(e[r]);return t.endVector()}static startIndicesVector(t,e){t.startVector(4,e,4)}static endmeshDataIndices(t){return t.endObject()}static createmeshDataIndices(t,e){return fe.startmeshDataIndices(t),fe.addIndices(t,e),fe.endmeshDataIndices(t)}}class le{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsmeshDataUV(t,e){return(e||new le).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsmeshDataUV(t,e){return t.setPosition(t.position()+St),(e||new le).__init(t.readInt32(t.position())+t.position(),t)}uv(t){const e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readFloat32(this.bb.__vector(this.bb_pos+e)+t*4):0}uvLength(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}uvArray(){const t=this.bb.__offset(this.bb_pos,4);return t?new Float32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}static startmeshDataUV(t){t.startObject(1)}static addUv(t,e){t.addFieldOffset(0,e,0)}static createUvVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addFloat32(e[r]);return t.endVector()}static startUvVector(t,e){t.startVector(4,e,4)}static endmeshDataUV(t){return t.endObject()}static createmeshDataUV(t,e){return le.startmeshDataUV(t),le.addUv(t,e),le.endmeshDataUV(t)}}class Kt{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsuserDataItem(t,e){return(e||new Kt).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataItem(t,e){return t.setPosition(t.position()+St),(e||new Kt).__init(t.readInt32(t.position())+t.position(),t)}flags(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):0}arrayIndex(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}dataType(t){const e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readUint8(this.bb.__vector(this.bb_pos+e)+t):0}dataTypeLength(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}dataTypeArray(){const t=this.bb.__offset(this.bb_pos,8);return t?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}data(t,e){const r=this.bb.__offset(this.bb_pos,10);return r?this.bb.__union(e,this.bb.__vector(this.bb_pos+r)+t*4):null}dataLength(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}static startuserDataItem(t){t.startObject(4)}static addFlags(t,e){t.addFieldInt16(0,e,0)}static addArrayIndex(t,e){t.addFieldInt16(1,e,0)}static addDataType(t,e){t.addFieldOffset(2,e,0)}static createDataTypeVector(t,e){t.startVector(1,e.length,1);for(let r=e.length-1;r>=0;r--)t.addInt8(e[r]);return t.endVector()}static startDataTypeVector(t,e){t.startVector(1,e,1)}static addData(t,e){t.addFieldOffset(3,e,0)}static createDataVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startDataVector(t,e){t.startVector(4,e,4)}static enduserDataItem(t){return t.endObject()}static createuserDataItem(t,e,r,s,f){return Kt.startuserDataItem(t),Kt.addFlags(t,e),Kt.addArrayIndex(t,r),Kt.addDataType(t,s),Kt.addData(t,f),Kt.enduserDataItem(t)}}class re{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsuserDataPerFrame(t,e){return(e||new re).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataPerFrame(t,e){return t.setPosition(t.position()+St),(e||new re).__init(t.readInt32(t.position())+t.position(),t)}frameIndex(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):0}data(t,e){const r=this.bb.__offset(this.bb_pos,6);return r?(e||new Kt).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+t*4),this.bb):null}dataLength(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}static startuserDataPerFrame(t){t.startObject(2)}static addFrameIndex(t,e){t.addFieldInt16(0,e,0)}static addData(t,e){t.addFieldOffset(1,e,0)}static createDataVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startDataVector(t,e){t.startVector(4,e,4)}static enduserDataPerFrame(t){return t.endObject()}static createuserDataPerFrame(t,e,r){return re.startuserDataPerFrame(t),re.addFrameIndex(t,e),re.addData(t,r),re.enduserDataPerFrame(t)}}class pt{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsAnimationData(t,e){return(e||new pt).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAnimationData(t,e){return t.setPosition(t.position()+St),(e||new pt).__init(t.readInt32(t.position())+t.position(),t)}name(t){const e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}defaultData(t,e){const r=this.bb.__offset(this.bb_pos,6);return r?(e||new tt).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+t*4),this.bb):null}defaultDataLength(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}frameData(t,e){const r=this.bb.__offset(this.bb_pos,8);return r?(e||new oe).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+t*4),this.bb):null}frameDataLength(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}userData(t,e){const r=this.bb.__offset(this.bb_pos,10);return r?(e||new re).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+t*4),this.bb):null}userDataLength(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}labelData(t,e){const r=this.bb.__offset(this.bb_pos,12);return r?(e||new ie).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+t*4),this.bb):null}labelDataLength(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}meshsDataUv(t,e){const r=this.bb.__offset(this.bb_pos,14);return r?(e||new le).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+t*4),this.bb):null}meshsDataUvLength(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__vector_len(this.bb_pos+t):0}meshsDataIndices(t,e){const r=this.bb.__offset(this.bb_pos,16);return r?(e||new fe).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+t*4),this.bb):null}meshsDataIndicesLength(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}startFrames(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.readInt16(this.bb_pos+t):0}endFrames(){const t=this.bb.__offset(this.bb_pos,20);return t?this.bb.readInt16(this.bb_pos+t):0}totalFrames(){const t=this.bb.__offset(this.bb_pos,22);return t?this.bb.readInt16(this.bb_pos+t):0}fps(){const t=this.bb.__offset(this.bb_pos,24);return t?this.bb.readInt16(this.bb_pos+t):0}labelNum(){const t=this.bb.__offset(this.bb_pos,26);return t?this.bb.readInt16(this.bb_pos+t):0}canvasSizeW(){const t=this.bb.__offset(this.bb_pos,28);return t?this.bb.readInt16(this.bb_pos+t):0}canvasSizeH(){const t=this.bb.__offset(this.bb_pos,30);return t?this.bb.readInt16(this.bb_pos+t):0}canvasPvotX(){const t=this.bb.__offset(this.bb_pos,32);return t?this.bb.readFloat32(this.bb_pos+t):0}canvasPvotY(){const t=this.bb.__offset(this.bb_pos,34);return t?this.bb.readFloat32(this.bb_pos+t):0}static startAnimationData(t){t.startObject(16)}static addName(t,e){t.addFieldOffset(0,e,0)}static addDefaultData(t,e){t.addFieldOffset(1,e,0)}static createDefaultDataVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startDefaultDataVector(t,e){t.startVector(4,e,4)}static addFrameData(t,e){t.addFieldOffset(2,e,0)}static createFrameDataVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startFrameDataVector(t,e){t.startVector(4,e,4)}static addUserData(t,e){t.addFieldOffset(3,e,0)}static createUserDataVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startUserDataVector(t,e){t.startVector(4,e,4)}static addLabelData(t,e){t.addFieldOffset(4,e,0)}static createLabelDataVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startLabelDataVector(t,e){t.startVector(4,e,4)}static addMeshsDataUv(t,e){t.addFieldOffset(5,e,0)}static createMeshsDataUvVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startMeshsDataUvVector(t,e){t.startVector(4,e,4)}static addMeshsDataIndices(t,e){t.addFieldOffset(6,e,0)}static createMeshsDataIndicesVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startMeshsDataIndicesVector(t,e){t.startVector(4,e,4)}static addStartFrames(t,e){t.addFieldInt16(7,e,0)}static addEndFrames(t,e){t.addFieldInt16(8,e,0)}static addTotalFrames(t,e){t.addFieldInt16(9,e,0)}static addFps(t,e){t.addFieldInt16(10,e,0)}static addLabelNum(t,e){t.addFieldInt16(11,e,0)}static addCanvasSizeW(t,e){t.addFieldInt16(12,e,0)}static addCanvasSizeH(t,e){t.addFieldInt16(13,e,0)}static addCanvasPvotX(t,e){t.addFieldFloat32(14,e,0)}static addCanvasPvotY(t,e){t.addFieldFloat32(15,e,0)}static endAnimationData(t){return t.endObject()}static createAnimationData(t,e,r,s,f,a,c,n,m,o,_,y,v,E,F,l,d){return pt.startAnimationData(t),pt.addName(t,e),pt.addDefaultData(t,r),pt.addFrameData(t,s),pt.addUserData(t,f),pt.addLabelData(t,a),pt.addMeshsDataUv(t,c),pt.addMeshsDataIndices(t,n),pt.addStartFrames(t,m),pt.addEndFrames(t,o),pt.addTotalFrames(t,_),pt.addFps(t,y),pt.addLabelNum(t,v),pt.addCanvasSizeW(t,E),pt.addCanvasSizeH(t,F),pt.addCanvasPvotX(t,l),pt.addCanvasPvotY(t,d),pt.endAnimationData(t)}}var It=(L=>(L[L.Invalid=-1]="Invalid",L[L.Nulltype=0]="Nulltype",L[L.Normal=1]="Normal",L[L.Text=2]="Text",L[L.Instance=3]="Instance",L[L.Armature=4]="Armature",L[L.Effect=5]="Effect",L[L.Mesh=6]="Mesh",L[L.Movenode=7]="Movenode",L[L.Constraint=8]="Constraint",L[L.Mask=9]="Mask",L[L.Joint=10]="Joint",L[L.Bonepoint=11]="Bonepoint",L))(It||{});class Ot{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsPartData(t,e){return(e||new Ot).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsPartData(t,e){return t.setPosition(t.position()+St),(e||new Ot).__init(t.readInt32(t.position())+t.position(),t)}name(t){const e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}index(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}parentIndex(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}type(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt8(this.bb_pos+t):It.Nulltype}boundsType(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}alphaBlendType(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readInt16(this.bb_pos+t):0}refname(t){const e=this.bb.__offset(this.bb_pos,16);return e?this.bb.__string(this.bb_pos+e,t):null}effectfilename(t){const e=this.bb.__offset(this.bb_pos,18);return e?this.bb.__string(this.bb_pos+e,t):null}colorLabel(t){const e=this.bb.__offset(this.bb_pos,20);return e?this.bb.__string(this.bb_pos+e,t):null}maskInfluence(){const t=this.bb.__offset(this.bb_pos,22);return t?this.bb.readInt16(this.bb_pos+t):0}static startPartData(t){t.startObject(10)}static addName(t,e){t.addFieldOffset(0,e,0)}static addIndex(t,e){t.addFieldInt16(1,e,0)}static addParentIndex(t,e){t.addFieldInt16(2,e,0)}static addType(t,e){t.addFieldInt8(3,e,It.Nulltype)}static addBoundsType(t,e){t.addFieldInt16(4,e,0)}static addAlphaBlendType(t,e){t.addFieldInt16(5,e,0)}static addRefname(t,e){t.addFieldOffset(6,e,0)}static addEffectfilename(t,e){t.addFieldOffset(7,e,0)}static addColorLabel(t,e){t.addFieldOffset(8,e,0)}static addMaskInfluence(t,e){t.addFieldInt16(9,e,0)}static endPartData(t){return t.endObject()}static createPartData(t,e,r,s,f,a,c,n,m,o,_){return Ot.startPartData(t),Ot.addName(t,e),Ot.addIndex(t,r),Ot.addParentIndex(t,s),Ot.addType(t,f),Ot.addBoundsType(t,a),Ot.addAlphaBlendType(t,c),Ot.addRefname(t,n),Ot.addEffectfilename(t,m),Ot.addColorLabel(t,o),Ot.addMaskInfluence(t,_),Ot.endPartData(t)}}class $t{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsAnimePackData(t,e){return(e||new $t).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAnimePackData(t,e){return t.setPosition(t.position()+St),(e||new $t).__init(t.readInt32(t.position())+t.position(),t)}name(t){const e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}parts(t,e){const r=this.bb.__offset(this.bb_pos,6);return r?(e||new Ot).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+t*4),this.bb):null}partsLength(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}animations(t,e){const r=this.bb.__offset(this.bb_pos,8);return r?(e||new pt).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+t*4),this.bb):null}animationsLength(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}static startAnimePackData(t){t.startObject(3)}static addName(t,e){t.addFieldOffset(0,e,0)}static addParts(t,e){t.addFieldOffset(1,e,0)}static createPartsVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startPartsVector(t,e){t.startVector(4,e,4)}static addAnimations(t,e){t.addFieldOffset(2,e,0)}static createAnimationsVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startAnimationsVector(t,e){t.startVector(4,e,4)}static endAnimePackData(t){return t.endObject()}static createAnimePackData(t,e,r,s){return $t.startAnimePackData(t),$t.addName(t,e),$t.addParts(t,r),$t.addAnimations(t,s),$t.endAnimePackData(t)}}class Xt{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsCellMap(t,e){return(e||new Xt).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsCellMap(t,e){return t.setPosition(t.position()+St),(e||new Xt).__init(t.readInt32(t.position())+t.position(),t)}name(t){const e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}imagePath(t){const e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__string(this.bb_pos+e,t):null}index(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}wrapmode(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt16(this.bb_pos+t):0}filtermode(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}static startCellMap(t){t.startObject(5)}static addName(t,e){t.addFieldOffset(0,e,0)}static addImagePath(t,e){t.addFieldOffset(1,e,0)}static addIndex(t,e){t.addFieldInt16(2,e,0)}static addWrapmode(t,e){t.addFieldInt16(3,e,0)}static addFiltermode(t,e){t.addFieldInt16(4,e,0)}static endCellMap(t){return t.endObject()}static createCellMap(t,e,r,s,f,a){return Xt.startCellMap(t),Xt.addName(t,e),Xt.addImagePath(t,r),Xt.addIndex(t,s),Xt.addWrapmode(t,f),Xt.addFiltermode(t,a),Xt.endCellMap(t)}}class ye{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsCell(t,e){return(e||new ye).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsCell(t,e){return t.setPosition(t.position()+St),(e||new ye).__init(t.readInt32(t.position())+t.position(),t)}name(t){const e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}cellMap(t){const e=this.bb.__offset(this.bb_pos,6);return e?(t||new Xt).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}indexInCellMap(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}x(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt16(this.bb_pos+t):0}y(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}width(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readInt16(this.bb_pos+t):0}height(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.readInt16(this.bb_pos+t):0}pivotX(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.readFloat32(this.bb_pos+t):0}pivotY(){const t=this.bb.__offset(this.bb_pos,20);return t?this.bb.readFloat32(this.bb_pos+t):0}u1(){const t=this.bb.__offset(this.bb_pos,22);return t?this.bb.readFloat32(this.bb_pos+t):0}v1(){const t=this.bb.__offset(this.bb_pos,24);return t?this.bb.readFloat32(this.bb_pos+t):0}u2(){const t=this.bb.__offset(this.bb_pos,26);return t?this.bb.readFloat32(this.bb_pos+t):0}v2(){const t=this.bb.__offset(this.bb_pos,28);return t?this.bb.readFloat32(this.bb_pos+t):0}static startCell(t){t.startObject(13)}static addName(t,e){t.addFieldOffset(0,e,0)}static addCellMap(t,e){t.addFieldOffset(1,e,0)}static addIndexInCellMap(t,e){t.addFieldInt16(2,e,0)}static addX(t,e){t.addFieldInt16(3,e,0)}static addY(t,e){t.addFieldInt16(4,e,0)}static addWidth(t,e){t.addFieldInt16(5,e,0)}static addHeight(t,e){t.addFieldInt16(6,e,0)}static addPivotX(t,e){t.addFieldFloat32(7,e,0)}static addPivotY(t,e){t.addFieldFloat32(8,e,0)}static addU1(t,e){t.addFieldFloat32(9,e,0)}static addV1(t,e){t.addFieldFloat32(10,e,0)}static addU2(t,e){t.addFieldFloat32(11,e,0)}static addV2(t,e){t.addFieldFloat32(12,e,0)}static endCell(t){return t.endObject()}}class Lt{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsEffectNode(t,e){return(e||new Lt).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsEffectNode(t,e){return t.setPosition(t.position()+St),(e||new Lt).__init(t.readInt32(t.position())+t.position(),t)}arrayIndex(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):0}parentIndex(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}type(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}cellIndex(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt16(this.bb_pos+t):0}blendType(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}numBehavior(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readInt16(this.bb_pos+t):0}behaviorType(t){const e=this.bb.__offset(this.bb_pos,16);return e?this.bb.readUint8(this.bb.__vector(this.bb_pos+e)+t):0}behaviorTypeLength(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}behaviorTypeArray(){const t=this.bb.__offset(this.bb_pos,16);return t?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}behavior(t,e){const r=this.bb.__offset(this.bb_pos,18);return r?this.bb.__union(e,this.bb.__vector(this.bb_pos+r)+t*4):null}behaviorLength(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.__vector_len(this.bb_pos+t):0}static startEffectNode(t){t.startObject(8)}static addArrayIndex(t,e){t.addFieldInt16(0,e,0)}static addParentIndex(t,e){t.addFieldInt16(1,e,0)}static addType(t,e){t.addFieldInt16(2,e,0)}static addCellIndex(t,e){t.addFieldInt16(3,e,0)}static addBlendType(t,e){t.addFieldInt16(4,e,0)}static addNumBehavior(t,e){t.addFieldInt16(5,e,0)}static addBehaviorType(t,e){t.addFieldOffset(6,e,0)}static createBehaviorTypeVector(t,e){t.startVector(1,e.length,1);for(let r=e.length-1;r>=0;r--)t.addInt8(e[r]);return t.endVector()}static startBehaviorTypeVector(t,e){t.startVector(1,e,1)}static addBehavior(t,e){t.addFieldOffset(7,e,0)}static createBehaviorVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startBehaviorVector(t,e){t.startVector(4,e,4)}static endEffectNode(t){return t.endObject()}static createEffectNode(t,e,r,s,f,a,c,n,m){return Lt.startEffectNode(t),Lt.addArrayIndex(t,e),Lt.addParentIndex(t,r),Lt.addType(t,s),Lt.addCellIndex(t,f),Lt.addBlendType(t,a),Lt.addNumBehavior(t,c),Lt.addBehaviorType(t,n),Lt.addBehavior(t,m),Lt.endEffectNode(t)}}class zt{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsEffectFile(t,e){return(e||new zt).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsEffectFile(t,e){return t.setPosition(t.position()+St),(e||new zt).__init(t.readInt32(t.position())+t.position(),t)}name(t){const e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}fps(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}isLockRandSeed(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}lockRandSeed(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt16(this.bb_pos+t):0}layoutScaleX(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}layoutScaleY(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readInt16(this.bb_pos+t):0}numNodeList(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.readInt16(this.bb_pos+t):0}effectNode(t,e){const r=this.bb.__offset(this.bb_pos,18);return r?(e||new Lt).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+t*4),this.bb):null}effectNodeLength(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.__vector_len(this.bb_pos+t):0}static startEffectFile(t){t.startObject(8)}static addName(t,e){t.addFieldOffset(0,e,0)}static addFps(t,e){t.addFieldInt16(1,e,0)}static addIsLockRandSeed(t,e){t.addFieldInt16(2,e,0)}static addLockRandSeed(t,e){t.addFieldInt16(3,e,0)}static addLayoutScaleX(t,e){t.addFieldInt16(4,e,0)}static addLayoutScaleY(t,e){t.addFieldInt16(5,e,0)}static addNumNodeList(t,e){t.addFieldInt16(6,e,0)}static addEffectNode(t,e){t.addFieldOffset(7,e,0)}static createEffectNodeVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startEffectNodeVector(t,e){t.startVector(4,e,4)}static endEffectFile(t){return t.endObject()}static createEffectFile(t,e,r,s,f,a,c,n,m){return zt.startEffectFile(t),zt.addName(t,e),zt.addFps(t,r),zt.addIsLockRandSeed(t,s),zt.addLockRandSeed(t,f),zt.addLayoutScaleX(t,a),zt.addLayoutScaleY(t,c),zt.addNumNodeList(t,n),zt.addEffectNode(t,m),zt.endEffectFile(t)}}var it=(L=>(L[L.INVISIBLE=1]="INVISIBLE",L[L.FLIP_H=2]="FLIP_H",L[L.FLIP_V=4]="FLIP_V",L[L.CELL_INDEX=8]="CELL_INDEX",L[L.POSITION_X=16]="POSITION_X",L[L.POSITION_Y=32]="POSITION_Y",L[L.POSITION_Z=64]="POSITION_Z",L[L.PIVOT_X=128]="PIVOT_X",L[L.PIVOT_Y=256]="PIVOT_Y",L[L.ROTATIONX=512]="ROTATIONX",L[L.ROTATIONY=1024]="ROTATIONY",L[L.ROTATIONZ=2048]="ROTATIONZ",L[L.SCALE_X=4096]="SCALE_X",L[L.SCALE_Y=8192]="SCALE_Y",L[L.LOCALSCALE_X=16384]="LOCALSCALE_X",L[L.LOCALSCALE_Y=32768]="LOCALSCALE_Y",L[L.OPACITY=65536]="OPACITY",L[L.LOCALOPACITY=131072]="LOCALOPACITY",L[L.PARTS_COLOR=262144]="PARTS_COLOR",L[L.VERTEX_TRANSFORM=524288]="VERTEX_TRANSFORM",L[L.SIZE_X=1048576]="SIZE_X",L[L.SIZE_Y=2097152]="SIZE_Y",L[L.U_MOVE=4194304]="U_MOVE",L[L.V_MOVE=8388608]="V_MOVE",L[L.UV_ROTATION=16777216]="UV_ROTATION",L[L.U_SCALE=33554432]="U_SCALE",L[L.V_SCALE=67108864]="V_SCALE",L[L.BOUNDINGRADIUS=134217728]="BOUNDINGRADIUS",L[L.MASK=268435456]="MASK",L[L.PRIORITY=536870912]="PRIORITY",L[L.INSTANCE_KEYFRAME=1073741824]="INSTANCE_KEYFRAME",L[L.EFFECT_KEYFRAME=2147483648]="EFFECT_KEYFRAME",L))(it||{}),ze=(L=>(L[L.MESHDATA=1]="MESHDATA",L))(ze||{});class Dt{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsProjectData(t,e){return(e||new Dt).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsProjectData(t,e){return t.setPosition(t.position()+St),(e||new Dt).__init(t.readInt32(t.position())+t.position(),t)}static bufferHasIdentifier(t){return t.__has_identifier("SSFB")}dataId(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint32(this.bb_pos+t):0}version(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readUint32(this.bb_pos+t):0}flags(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readUint32(this.bb_pos+t):0}imageBaseDir(t){const e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__string(this.bb_pos+e,t):null}cells(t,e){const r=this.bb.__offset(this.bb_pos,12);return r?(e||new ye).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+t*4),this.bb):null}cellsLength(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}animePacks(t,e){const r=this.bb.__offset(this.bb_pos,14);return r?(e||new $t).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+t*4),this.bb):null}animePacksLength(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__vector_len(this.bb_pos+t):0}effectFileList(t,e){const r=this.bb.__offset(this.bb_pos,16);return r?(e||new zt).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+t*4),this.bb):null}effectFileListLength(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}numCells(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.readInt16(this.bb_pos+t):0}numAnimePacks(){const t=this.bb.__offset(this.bb_pos,20);return t?this.bb.readInt16(this.bb_pos+t):0}numEffectFileList(){const t=this.bb.__offset(this.bb_pos,22);return t?this.bb.readInt16(this.bb_pos+t):0}static startProjectData(t){t.startObject(10)}static addDataId(t,e){t.addFieldInt32(0,e,0)}static addVersion(t,e){t.addFieldInt32(1,e,0)}static addFlags(t,e){t.addFieldInt32(2,e,0)}static addImageBaseDir(t,e){t.addFieldOffset(3,e,0)}static addCells(t,e){t.addFieldOffset(4,e,0)}static createCellsVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startCellsVector(t,e){t.startVector(4,e,4)}static addAnimePacks(t,e){t.addFieldOffset(5,e,0)}static createAnimePacksVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startAnimePacksVector(t,e){t.startVector(4,e,4)}static addEffectFileList(t,e){t.addFieldOffset(6,e,0)}static createEffectFileListVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startEffectFileListVector(t,e){t.startVector(4,e,4)}static addNumCells(t,e){t.addFieldInt16(7,e,0)}static addNumAnimePacks(t,e){t.addFieldInt16(8,e,0)}static addNumEffectFileList(t,e){t.addFieldInt16(9,e,0)}static endProjectData(t){return t.endObject()}static finishProjectDataBuffer(t,e){t.finish(e,"SSFB")}static finishSizePrefixedProjectDataBuffer(t,e){t.finish(e,"SSFB",!0)}static createProjectData(t,e,r,s,f,a,c,n,m,o,_){return Dt.startProjectData(t),Dt.addDataId(t,e),Dt.addVersion(t,r),Dt.addFlags(t,s),Dt.addImageBaseDir(t,f),Dt.addCells(t,a),Dt.addAnimePacks(t,c),Dt.addEffectFileList(t,n),Dt.addNumCells(t,m),Dt.addNumAnimePacks(t,o),Dt.addNumEffectFileList(t,_),Dt.endProjectData(t)}}class je{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}integer(){return this.bb.readInt32(this.bb_pos)}static sizeOf(){return 4}static createuserDataInteger(t,e){return t.prep(4,4),t.writeInt32(e),t.offset()}}class Ne{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}x(){return this.bb.readInt32(this.bb_pos)}y(){return this.bb.readInt32(this.bb_pos+4)}static sizeOf(){return 8}static createuserDataPoint(t,e,r){return t.prep(4,8),t.writeInt32(r),t.writeInt32(e),t.offset()}}class xe{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}x(){return this.bb.readInt32(this.bb_pos)}y(){return this.bb.readInt32(this.bb_pos+4)}w(){return this.bb.readInt32(this.bb_pos+8)}h(){return this.bb.readInt32(this.bb_pos+12)}static sizeOf(){return 16}static createuserDataRect(t,e,r,s,f){return t.prep(4,16),t.writeInt32(f),t.writeInt32(s),t.writeInt32(r),t.writeInt32(e),t.offset()}}class Qt{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsuserDataString(t,e){return(e||new Qt).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataString(t,e){return t.setPosition(t.position()+St),(e||new Qt).__init(t.readInt32(t.position())+t.position(),t)}length(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt32(this.bb_pos+t):0}data(t){const e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__string(this.bb_pos+e,t):null}static startuserDataString(t){t.startObject(2)}static addLength(t,e){t.addFieldInt32(0,e,0)}static addData(t,e){t.addFieldOffset(1,e,0)}static enduserDataString(t){return t.endObject()}static createuserDataString(t,e,r){return Qt.startuserDataString(t),Qt.addLength(t,e),Qt.addData(t,r),Qt.enduserDataString(t)}}let Ze=class{static getProjectData(t){const e=new Oe(t);return Dt.getRootAsProjectData(e)}};class De{static getProjectData(t){return Ze.getProjectData(t)}}let ce=class{constructor(t,e=null,r=null){this.curAnimePackName=null,this.curAnimeName=null,this.curAnimation=null,this.curAnimePackData=null,this._animePackIdx=-1,this._parentIndex=[],this._prio2index=[],this.userData=[],this.frameDataCache=null,this.currentCachedFrameNumber=-1,this.defaultFrameMap=[],this._uint32=new Uint32Array(1),this._float32=new Float32Array(this._uint32.buffer),Object.prototype.hasOwnProperty.call(t,"bb")?this._fbObj=t:this._fbObj=De.getProjectData(t),e!==null&&r!==null&&this.Setup(e,r)}get fbObj(){return this._fbObj}get animePackName(){return this.curAnimePackName}get animeName(){return this.curAnimeName}get animePackIdx(){return this._animePackIdx}get animePackData(){return this.curAnimePackData}get animationData(){return this.curAnimation}get parentIndex(){return this._parentIndex}get prio2index(){return this._prio2index}Setup(t,e){this.clearCaches();const r=this._fbObj.animePacksLength();let s=!1;for(let f=0;f>>0,o.colorBlendType===1&&(o.tint=o.colorArgb32&16777215)}}if(m&ze.MESHDATA){const y=this.curAnimation.meshsDataUv(c);o.meshIsBind=y.uv(0),o.meshNum=y.uv(1);let v=new Float32Array(o.meshNum*3);for(let E=0;E=0&&(t=this.InheritOpacity(t,this._parentIndex[e],r)),t}TransformVertsLocal(t,e,r){const s=this.GetFrameData(r)[e],f=-s.rotationZ*Math.PI/180,a=Math.cos(f),c=Math.sin(f);for(let n=0;n=0&&(t=this.TransformVerts(t,this._parentIndex[e],r)),t}TransformMeshVertsLocal(t,e,r){const s=this.GetFrameData(r)[e],f=-s.rotationZ*Math.PI/180,a=Math.cos(f),c=Math.sin(f);for(let n=0;n=0&&(t=this.TransformVerts(t,this._parentIndex[e],r)),t}TransformPositionLocal(t,e,r){const s=this.GetFrameData(r)[e];t[4]+=-s.rotationZ;const f=-s.rotationZ*Math.PI/180,a=Math.cos(f),c=Math.sin(f),n=t[0]*s.scaleX*s.localscaleX,m=t[1]*s.scaleY*s.localscaleY;return t[2]*=s.scaleX*s.localscaleX,t[3]*=s.scaleY*s.localscaleY,t[0]=a*n-c*m+s.positionX,t[1]=c*n+a*m-s.positionY,this._parentIndex[e]>=0&&(t=this.TransformPosition(t,this._parentIndex[e],r)),t}static CoordinateGetDiagonalIntersection(t,e,r,s,f,a,c,n,m,o,_){const y=(n-a)*(c-r)-(c-f)*(n-s),v=(m-r)*(n-s)-(o-s)*(c-r),E=(m-r)*(n-a)-(o-s)*(c-f);if(E<=0&&E>=0)return _;const F=y/E,l=v/E;return 0<=F&&1>=F&&0<=l&&1>=l&&(t=r+F*(m-r),e=s+F*(o-s)),_[0]=t,_[1]=e,_}TransformVerts(t,e,r){const s=this.GetFrameData(r)[e],f=-s.rotationZ*Math.PI/180,a=Math.cos(f),c=Math.sin(f);for(let n=0;n=0&&(t=this.TransformVerts(t,this._parentIndex[e],r)),t}TransformPosition(t,e,r){const s=this.GetFrameData(r)[e];t[4]+=-s.rotationZ;const f=-s.rotationZ*Math.PI/180,a=Math.cos(f),c=Math.sin(f),n=t[0]*s.scaleX,m=t[1]*s.scaleY;return t[2]*=s.scaleX,t[3]*=s.scaleY,t[0]=a*n-c*m+s.positionX,t[1]=c*n+a*m-s.positionY,this._parentIndex[e]>=0&&(t=this.TransformPosition(t,this._parentIndex[e],r)),t}static GetVerts(t,e,r){const s=e.size_X/2,f=e.size_Y/2,a=e.size_X*-(e.pivotX+t.pivotX()),c=e.size_Y*(e.pivotY+t.pivotY());return r.set([a,c,a-s,c-f,a+s,c-f,a-s,c+f,a+s,c+f]),r}static GetMeshVerts(t,e,r){for(let s=0;s{r!==null&&r(null)}).catch(s=>{r!==null&&r(s)})}unload(t,e,r){wt.Assets.unloadBundle(t).then(()=>{r!==null&&r(null)}).catch(s=>{r!==null&&r(s)})}texture(t){return wt.Assets.get(t)}}class Xe{constructor(){this.loader=new Ye}load(t,e,r){return this.loader.load(t,e,r)}unload(t,e,r=null){return this.loader.unload(t,e,r)}texture(t){return this.loader.texture(t)}}class Re{constructor(t,e,r,s){if(this.sspjMap={},this.resourceLoader=new Xe,typeof t=="string"&&r===void 0){let f=t;this.ssfbPath=f;const a=f.lastIndexOf("/");this.rootPath=f.substring(0,a)+"/",this.ssfbFile=f.substring(a+1),this.onComplete=e===void 0?null:e,this.status=0,this.LoadFlatBuffersProject()}else if(typeof e=="object"&&e.constructor===Uint8Array){this.ssfbPath=null,this.rootPath=null,this.ssfbFile=t;let f=e,a=r;this.onComplete=s===void 0?null:s,this.load(f,a)}}getBundle(){return this.ssfbFile}getTexture(t){return this.resourceLoader.texture(t)}dispose(t=null){this.resourceLoader.unload(this.getBundle(),this.sspjMap,e=>{t!==null&&t()})}LoadFlatBuffersProject(){const t=this;fetch(this.ssfbPath,{method:"get"}).then(e=>e.ok?Promise.resolve(e.arrayBuffer()):Promise.reject(new Error(e.statusText))).then(e=>{t.fbObj=De.getProjectData(new Uint8Array(e)),t.LoadCellResources()}).catch(e=>{this.onComplete!==null&&this.onComplete(null,e)})}LoadCellResources(){let t=[];this.sspjMap={};for(let r=0;r{r===null?(e.status=1,e.onComplete!==null&&e.onComplete(this,null)):this.onComplete!==null&&this.onComplete(null,r)})}load(t,e){this.fbObj=De.getProjectData(t);let r={};for(let f in e){const a=e[f];let c="";const n=a.byteLength;for(let m=0;m{f===null?(s.status=1,s.onComplete!==null&&s.onComplete(this,null)):this.onComplete!==null&&this.onComplete(null,f)})}}class We{constructor(){this.refStartframe=0,this.refEndframe=0,this.refSpeed=1,this.refloopNum=0,this.infinity=!1,this.reverse=!1,this.pingpong=!1,this.independent=!1}}class we extends wt.Container{constructor(t,e=null,r=null){super(),this.liveFrame=[],this.colorMatrixFilterCache=[],this.parentAlpha=1,this.prevCellID=[],this.prevPartObject=[],this.changeCellID=[],this.changeVisible=[],this.changeTint=[],this.substituteOverWrite=[],this.substituteKeyParam=[],this.alphaBlendType=[],this.defaultColorFilter=new wt.ColorMatrixFilter,this._instancePos=new Float32Array(5),this._CoordinateGetDiagonalIntersectionVec2=new Float32Array(2),this.isRenderGroup=!0,this.ss6project=t,this.playerLib=new ce(t.fbObj,e,r),this.parentAlpha=1,e!==null&&r!==null&&this.Setup(e,r),this.on("added",(...s)=>{wt.Ticker.shared.add(this.Update,this)},this),this.on("removed",(...s)=>{wt.Ticker.shared.remove(this.Update,this)},this)}get startFrame(){return this._startFrame}get endFrame(){return this._endFrame}get totalFrame(){return this.playerLib.animationData.totalFrames()}get fps(){return this.playerLib.animationData.fps()}get frameNo(){return Math.floor(this._currentFrame)}set loop(t){this._loops=t}get loop(){return this._loops}get isPlaying(){return this._isPlaying}get isPausing(){return this._isPausing}get animePackName(){return this.playerLib.animePackName}get animeName(){return this.playerLib.animeName}Setup(t,e){this.playerLib.Setup(t,e),this.clearCaches();const r=this.playerLib.animePackData,s=r.partsLength();this.prevCellID=new Array(s),this.prevPartObject=new Array(s),this.changeCellID=new Array(s),this.changeVisible=new Array(s),this.changeTint=new Array(s),this.substituteOverWrite=new Array(s),this.substituteKeyParam=new Array(s);for(let f=0;f=this.updateInterval){let f=!1;const a=this.nextFrameTime/this.updateInterval;this.nextFrameTime-=this.updateInterval*a;let c=this.skipEnabled?a*this.playDirection:this.playDirection,n=this._currentFrame+c,m=Math.floor(n),o=n-m,_=Math.floor(this._currentFrame);if(this.playDirection>=1)for(let y=m-_;y;y--){let v=_+1;if(v>this._endFrame)if(this._loops===-1)v=this._startFrame;else if(this._loops--,f=!0,this._loops===0){this._isPlaying=!1,v=e?this._startFrame:this._endFrame;break}else v=this._startFrame;_=v,this._isPlaying&&this.playerLib.HaveUserData(_)&&this.onUserDataCallback!==null&&this.onUserDataCallback(this.playerLib.GetUserData(_))}if(this.playDirection<=-1)for(let y=_-m;y;y--){let v=_-1;if(v0?1:-1,this.updateInterval=1e3/(this.playerLib.animationData.fps()*t*this.playDirection),this.skipEnabled=e)}SetAnimationSection(t=-1,e=-1,r=-1){t>=0&&t=0&&e0?this._loops=r:this._loops=-1,this._currentFrame=this.playDirection>0?this._startFrame:this._endFrame}Play(t){this._isPlaying=!0,this._isPausing=!1;let e=this.playDirection>0?this._startFrame:this._endFrame;t&&typeof t=="number"&&(e=t),this._currentFrame=e,this.resetLiveFrame();const r=Math.floor(this._currentFrame);this.SetFrameAnimation(r),this.playerLib.HaveUserData(r)&&this.onUserDataCallback!==null&&this.onUserDataCallback(this.playerLib.GetUserData(r))}Pause(){this._isPausing=!0}Resume(){this._isPausing=!1}Stop(){this._isPlaying=!1}SetFrame(t){this._currentFrame=t}NextFrame(){const t=Math.floor(this._currentFrame),e=this.endFrame;t!==e&&this.SetFrame(t+1)}PrevFrame(){const t=Math.floor(this._currentFrame);t!==0&&this.SetFrame(t-1)}SetAlpha(t){this.parentAlpha=t}ThrowError(t){}SetUserDataCalback(t){this.onUserDataCallback=t}SetPlayEndCallback(t){this.playEndCallback=t}getCellIndex(t,e){let r=-1;if(t!==""&&e!==""){const s=this.playerLib.fbObj,f=this.playerLib.fbObj.numCells();for(let a=0;a>>24)/255,c=((r&16711680)>>>16)/255,n=((r&65280)>>>8)/255,m=(r&255)/255;if(t===0){const o=1-e;f.matrix=[o,0,0,0,c*e,0,o,0,0,n*e,0,0,o,0,m*e,0,0,0,1,0]}else t===1?f.matrix=[c,0,0,0,0,0,n,0,0,0,0,0,m,0,0,0,0,0,a,0]:t===2?f.matrix=[1,0,0,0,c,0,1,0,0,n,0,0,1,0,m,0,0,0,a,0]:t===3&&(f.matrix=[1,0,0,0,-c,0,1,0,0,-n,0,0,1,0,-m,0,0,0,a,0]);return this.colorMatrixFilterCache[s]=f,f}SetFrameAnimation(t,e=0){const r=this.playerLib.GetFrameData(t);this.removeChildren();const s=r.length;for(let f=0;f=0&&this.prevCellID[a]!==m&&(o?.destroy(),o=this.MakeCellMesh(m),o.label=_.name());break;case It.Mesh:m>=0&&this.prevCellID[a]!==m&&(o?.destroy(),o=this.MakeMeshCellMesh(a,m,n),o.label=_.name());break;case It.Nulltype:case It.Joint:this.prevCellID[a]!==m&&(o?.destroy(),o=new wt.Container,o.label=_.name());break;default:m>=0&&this.prevCellID[a]!==m&&(o?.destroy(),o=this.MakeCellMesh(m),o.label=_.name());break}if(o!=null)switch(this.prevCellID[a]=m,this.prevPartObject[a]=o,y){case It.Instance:{const F=o;this._instancePos[0]=0,this._instancePos[1]=0,this._instancePos[2]=1,this._instancePos[3]=1,this._instancePos[4]=0,this._instancePos=this.playerLib.TransformPositionLocal(this._instancePos,c.index,t),F.rotation=this._instancePos[4]*Math.PI/180,F.position.set(this._instancePos[0],this._instancePos[1]),F.scale.set(this._instancePos[2],this._instancePos[3]);let l=c.opacity/255;c.localopacity<255&&(l=c.localopacity/255),F.SetAlpha(l*this.parentAlpha),F.visible=!c.f_hide;let d=c.instanceValue_curKeyframe,b=c.instanceValue_startFrame,x=c.instanceValue_endFrame,P=c.instanceValue_speed,g=c.instanceValue_loopNum,I=!1,C=!1,S=!1,N=!1;const D=1,V=2,R=4,j=8,$=c.instanceValue_loopflag;$&D&&(I=!0),$&V&&(C=!0),$&R&&(S=!0),$&j&&(N=!0),v&&(b=E.refStartframe,x=E.refEndframe,P=E.refSpeed,g=E.refloopNum,I=E.infinity,C=E.reverse,S=E.pingpong,N=E.independent),(F._startFrame!==b||F._endFrame!==x)&&F.SetAnimationSection(b,x);let G=t;N===!0&&(this.liveFrame[f]+=e,G=Math.floor(this.liveFrame[f]));const et=d;let W=Math.floor((G-et)*P);if(W<0||et>G)continue;const Z=x-b+1;if(Z<=0)continue;let Q=Math.floor(W/Z),at=g;S&&(at=at*2),I||Q>=at&&(W=Z-1,Q=at-1);const ht=Math.floor(W%Z);let K=0;S&&Q%2===1&&(C?C=!1:C=!0),this.playDirection<=-1&&(C=!C),C?K=x-ht:K=ht+b,F.SetFrame(Math.floor(K)),this.addChild(F);break}case It.Normal:case It.Mesh:case It.Joint:case It.Mask:{const F=o,l=F.geometry.attributes.aPosition.buffer;let d=l.data;const b=this.playerLib.fbObj.cells(m);let x;if(y===It.Mesh?c.meshIsBind===0?x=this.playerLib.TransformMeshVertsLocal(ce.GetMeshVerts(b,c,d),c.index,t):x=ce.GetMeshVerts(b,c,d):(x=y===It.Joint?new Float32Array(10):d,x=this.playerLib.TransformVertsLocal(ce.GetVerts(b,c,x),c.index,t)),c.flag1&it.VERTEX_TRANSFORM){const S=x[6],N=x[7],D=x[2],V=x[3],R=x[8],j=x[9],$=x[4],G=x[5],et=(S+R)*.5,W=(N+j)*.5,Z=(S+D)*.5,Q=(N+V)*.5,at=(D+$)*.5,ht=(V+G)*.5,K=(R+$)*.5,ot=(j+G)*.5,nt=ce.CoordinateGetDiagonalIntersection(x[0],x[1],et,W,K,ot,Z,Q,at,ht,this._CoordinateGetDiagonalIntersectionVec2);x[0]=nt[0],x[1]=nt[1]}const P=x[0],g=x[1];for(let S=0;S>>24)/255;F.alpha=F.alpha*S}const C=this.alphaBlendType[a];(C==="multiply"||C==="screen")&&(F.alpha=1),y!==It.Mask&&this.addChild(F);break}case It.Nulltype:{const F=o,l=this.playerLib.InheritOpacity(1,c.index,t);F.alpha=l*c.localopacity/255;const d=this.playerLib.TransformVerts(ce.GetDummyVerts(),c.index,t),b=d[0],x=d[1];F.position.set(b,x);const P=Math.atan2(d[5]-d[3],d[4]-d[2]),g=Math.atan2(d[7]-d[3],d[6]-d[2]);F.rotation=P,F.skew.x=g-P-Math.PI/2;break}}}}ChangeInstanceAnime(t,e,r,s,f=null){let a=!1;if(this.animePackName!==null&&this.animeName!==null){let c=this.playerLib.animePackData,n=c.partsLength();for(let m=0;m0){const a=this.playerLib.fbObj.cells(e),c=this.playerLib.fbObj.cells(r),n=e===r?0:(a.u1()+a.u2())/2-(c.u1()+c.u2())/2,m=e===r?0:(a.v1()+a.v2())/2-(c.v1()+c.v2())/2,o=new Float32Array(f-2),_=s.uv(1);for(let d=2;d{r.ssWebPlayer&&r.ssWebPlayer.playEndCallback&&r.ssWebPlayer.playEndCallback(r)},this.onUserDataCallback=s=>{r.ssWebPlayer&&r.ssWebPlayer.onUpdateCallback&&r.ssWebPlayer.onUpdateCallback(r)},this.setupCurrentAnimationFrameDataMap()}getCurrentAnimationFrameDataMap(){return this.currentAnimationFrameDataMap}setupCurrentAnimationFrameDataMap(){const t=this.playerLib.animationData;let e={};const r=t.userDataLength();for(let s=0;s - JSZip v3.10.1 - A JavaScript class for generating and reading zip files - +(c) 2009-2016 Stuart Knightley +Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. - (c) 2009-2016 Stuart Knightley - Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. - - JSZip uses the library pako released under the MIT license : - https://github.com/nodeca/pako/blob/main/LICENSE - */var Be;function Ge(){return Be||(Be=1,function(L,t){(function(e){L.exports=e()})(function(){return function e(r,s,f){function a(m,o){if(!s[m]){if(!r[m]){var _=typeof ke=="function"&&ke;if(!o&&_)return _(m,!0);if(c)return c(m,!0);var y=new Error("Cannot find module '"+m+"'");throw y.code="MODULE_NOT_FOUND",y}var v=s[m]={exports:{}};r[m][0].call(v.exports,function(E){var F=r[m][1][E];return a(F||E)},v,v.exports,e,r,s,f)}return s[m].exports}for(var c=typeof ke=="function"&&ke,n=0;n>2,E=(o&3)<<4|_>>4,F=x>1?(_&15)<<2|y>>6:64,l=x>2?y&63:64,m.push(c.charAt(v)+c.charAt(E)+c.charAt(F)+c.charAt(l));return m.join("")},s.decode=function(n){var m,o,_,y,v,E,F,l=0,d=0,b="data:";if(n.substr(0,b.length)===b)throw new Error("Invalid base64 input, it looks like a data url.");n=n.replace(/[^A-Za-z0-9+/=]/g,"");var x=n.length*3/4;if(n.charAt(n.length-1)===c.charAt(64)&&x--,n.charAt(n.length-2)===c.charAt(64)&&x--,x%1!==0)throw new Error("Invalid base64 input, bad content length.");var P;for(a.uint8array?P=new Uint8Array(x|0):P=new Array(x|0);l>4,o=(v&15)<<4|E>>2,_=(E&3)<<6|F,P[d++]=m,E!==64&&(P[d++]=o),F!==64&&(P[d++]=_);return P}},{"./support":30,"./utils":32}],2:[function(e,r,s){var f=e("./external"),a=e("./stream/DataWorker"),c=e("./stream/Crc32Probe"),n=e("./stream/DataLengthProbe");function m(o,_,y,v,E){this.compressedSize=o,this.uncompressedSize=_,this.crc32=y,this.compression=v,this.compressedContent=E}m.prototype={getContentWorker:function(){var o=new a(f.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new n("data_length")),_=this;return o.on("end",function(){if(this.streamInfo.data_length!==_.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),o},getCompressedWorker:function(){return new a(f.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},m.createWorkerFrom=function(o,_,y){return o.pipe(new c).pipe(new n("uncompressedSize")).pipe(_.compressWorker(y)).pipe(new n("compressedSize")).withStreamInfo("compression",_)},r.exports=m},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,r,s){var f=e("./stream/GenericWorker");s.STORE={magic:"\0\0",compressWorker:function(){return new f("STORE compression")},uncompressWorker:function(){return new f("STORE decompression")}},s.DEFLATE=e("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,r,s){var f=e("./utils");function a(){for(var o,_=[],y=0;y<256;y++){o=y;for(var v=0;v<8;v++)o=o&1?3988292384^o>>>1:o>>>1;_[y]=o}return _}var c=a();function n(o,_,y,v){var E=c,F=v+y;o=o^-1;for(var l=v;l>>8^E[(o^_[l])&255];return o^-1}function m(o,_,y,v){var E=c,F=v+y;o=o^-1;for(var l=v;l>>8^E[(o^_.charCodeAt(l))&255];return o^-1}r.exports=function(_,y){if(typeof _>"u"||!_.length)return 0;var v=f.getTypeOf(_)!=="string";return v?n(y|0,_,_.length,0):m(y|0,_,_.length,0)}},{"./utils":32}],5:[function(e,r,s){s.base64=!1,s.binary=!1,s.dir=!1,s.createFolders=!0,s.date=null,s.compression=null,s.compressionOptions=null,s.comment=null,s.unixPermissions=null,s.dosPermissions=null},{}],6:[function(e,r,s){var f=null;typeof Promise<"u"?f=Promise:f=e("lie"),r.exports={Promise:f}},{lie:37}],7:[function(e,r,s){var f=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",a=e("pako"),c=e("./utils"),n=e("./stream/GenericWorker"),m=f?"uint8array":"array";s.magic="\b\0";function o(_,y){n.call(this,"FlateWorker/"+_),this._pako=null,this._pakoAction=_,this._pakoOptions=y,this.meta={}}c.inherits(o,n),o.prototype.processChunk=function(_){this.meta=_.meta,this._pako===null&&this._createPako(),this._pako.push(c.transformTo(m,_.data),!1)},o.prototype.flush=function(){n.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},o.prototype.cleanUp=function(){n.prototype.cleanUp.call(this),this._pako=null},o.prototype._createPako=function(){this._pako=new a[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var _=this;this._pako.onData=function(y){_.push({data:y,meta:_.meta})}},s.compressWorker=function(_){return new o("Deflate",_)},s.uncompressWorker=function(){return new o("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,r,s){var f=e("../utils"),a=e("../stream/GenericWorker"),c=e("../utf8"),n=e("../crc32"),m=e("../signature"),o=function(d,b){var x="",P;for(P=0;P>>8;return x},_=function(d,b){var x=d;return d||(x=b?16893:33204),(x&65535)<<16},y=function(d){return(d||0)&63},v=function(d,b,x,P,g,I){var C=d.file,S=d.compression,N=I!==c.utf8encode,D=f.transformTo("string",I(C.name)),V=f.transformTo("string",c.utf8encode(C.name)),R=C.comment,j=f.transformTo("string",I(R)),$=f.transformTo("string",c.utf8encode(R)),G=V.length!==C.name.length,et=$.length!==R.length,W,Z,Q="",at="",ht="",K=C.dir,ot=C.date,nt={crc32:0,compressedSize:0,uncompressedSize:0};(!b||x)&&(nt.crc32=d.crc32,nt.compressedSize=d.compressedSize,nt.uncompressedSize=d.uncompressedSize);var kt=0;b&&(kt|=8),!N&&(G||et)&&(kt|=2048);var Ft=0,vt=0;K&&(Ft|=16),g==="UNIX"?(vt=798,Ft|=_(C.unixPermissions,K)):(vt=20,Ft|=y(C.dosPermissions)),W=ot.getUTCHours(),W=W<<6,W=W|ot.getUTCMinutes(),W=W<<5,W=W|ot.getUTCSeconds()/2,Z=ot.getUTCFullYear()-1980,Z=Z<<4,Z=Z|ot.getUTCMonth()+1,Z=Z<<5,Z=Z|ot.getUTCDate(),G&&(at=o(1,1)+o(n(D),4)+V,Q+="up"+o(at.length,2)+at),et&&(ht=o(1,1)+o(n(j),4)+$,Q+="uc"+o(ht.length,2)+ht);var st="";st+=` -\0`,st+=o(kt,2),st+=S.magic,st+=o(W,2),st+=o(Z,2),st+=o(nt.crc32,4),st+=o(nt.compressedSize,4),st+=o(nt.uncompressedSize,4),st+=o(D.length,2),st+=o(Q.length,2);var Ct=m.LOCAL_FILE_HEADER+st+D+Q,gt=m.CENTRAL_FILE_HEADER+o(vt,2)+st+o(j.length,2)+"\0\0\0\0"+o(Ft,4)+o(P,4)+D+Q+j;return{fileRecord:Ct,dirRecord:gt}},E=function(d,b,x,P,g){var I="",C=f.transformTo("string",g(P));return I=m.CENTRAL_DIRECTORY_END+"\0\0\0\0"+o(d,2)+o(d,2)+o(b,4)+o(x,4)+o(C.length,2)+C,I},F=function(d){var b="";return b=m.DATA_DESCRIPTOR+o(d.crc32,4)+o(d.compressedSize,4)+o(d.uncompressedSize,4),b};function l(d,b,x,P){a.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=b,this.zipPlatform=x,this.encodeFileName=P,this.streamFiles=d,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}f.inherits(l,a),l.prototype.push=function(d){var b=d.meta.percent||0,x=this.entriesCount,P=this._sources.length;this.accumulate?this.contentBuffer.push(d):(this.bytesWritten+=d.data.length,a.prototype.push.call(this,{data:d.data,meta:{currentFile:this.currentFile,percent:x?(b+100*(x-P-1))/x:100}}))},l.prototype.openedSource=function(d){this.currentSourceOffset=this.bytesWritten,this.currentFile=d.file.name;var b=this.streamFiles&&!d.file.dir;if(b){var x=v(d,b,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:x.fileRecord,meta:{percent:0}})}else this.accumulate=!0},l.prototype.closedSource=function(d){this.accumulate=!1;var b=this.streamFiles&&!d.file.dir,x=v(d,b,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(x.dirRecord),b)this.push({data:F(d),meta:{percent:100}});else for(this.push({data:x.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},l.prototype.flush=function(){for(var d=this.bytesWritten,b=0;b"u")&&(D.binary=!V);var R=I instanceof o&&I.uncompressedSize===0;(R||D.dir||!I||I.length===0)&&(D.base64=!1,D.binary=!0,I="",D.compression="STORE",S="string");var j=null;I instanceof o||I instanceof c?j=I:v.isNode&&v.isStream(I)?j=new E(g,I):j=a.prepareContent(g,I,D.binary,D.optimizedBinaryString,D.base64);var $=new _(g,j,D);this.files[g]=$},l=function(g){g.slice(-1)==="/"&&(g=g.substring(0,g.length-1));var I=g.lastIndexOf("/");return I>0?g.substring(0,I):""},d=function(g){return g.slice(-1)!=="/"&&(g+="/"),g},b=function(g,I){return I=typeof I<"u"?I:m.createFolders,g=d(g),this.files[g]||F.call(this,g,null,{dir:!0,createFolders:I}),this.files[g]};function x(g){return Object.prototype.toString.call(g)==="[object RegExp]"}var P={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(g){var I,C,S;for(I in this.files)S=this.files[I],C=I.slice(this.root.length,I.length),C&&I.slice(0,this.root.length)===this.root&&g(C,S)},filter:function(g){var I=[];return this.forEach(function(C,S){g(C,S)&&I.push(S)}),I},file:function(g,I,C){if(arguments.length===1)if(x(g)){var S=g;return this.filter(function(D,V){return!V.dir&&S.test(D)})}else{var N=this.files[this.root+g];return N&&!N.dir?N:null}else g=this.root+g,F.call(this,g,I,C);return this},folder:function(g){if(!g)return this;if(x(g))return this.filter(function(N,D){return D.dir&&g.test(N)});var I=this.root+g,C=b.call(this,I),S=this.clone();return S.root=C.name,S},remove:function(g){g=this.root+g;var I=this.files[g];if(I||(g.slice(-1)!=="/"&&(g+="/"),I=this.files[g]),I&&!I.dir)delete this.files[g];else for(var C=this.filter(function(N,D){return D.name.slice(0,g.length)===g}),S=0;S=0;--v)if(this.data[v]===m&&this.data[v+1]===o&&this.data[v+2]===_&&this.data[v+3]===y)return v-this.zero;return-1},c.prototype.readAndCheckSignature=function(n){var m=n.charCodeAt(0),o=n.charCodeAt(1),_=n.charCodeAt(2),y=n.charCodeAt(3),v=this.readData(4);return m===v[0]&&o===v[1]&&_===v[2]&&y===v[3]},c.prototype.readData=function(n){if(this.checkOffset(n),n===0)return[];var m=this.data.slice(this.zero+this.index,this.zero+this.index+n);return this.index+=n,m},r.exports=c},{"../utils":32,"./DataReader":18}],18:[function(e,r,s){var f=e("../utils");function a(c){this.data=c,this.length=c.length,this.index=0,this.zero=0}a.prototype={checkOffset:function(c){this.checkIndex(this.index+c)},checkIndex:function(c){if(this.length=this.index;m--)n=(n<<8)+this.byteAt(m);return this.index+=c,n},readString:function(c){return f.transformTo("string",this.readData(c))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var c=this.readInt(4);return new Date(Date.UTC((c>>25&127)+1980,(c>>21&15)-1,c>>16&31,c>>11&31,c>>5&63,(c&31)<<1))}},r.exports=a},{"../utils":32}],19:[function(e,r,s){var f=e("./Uint8ArrayReader"),a=e("../utils");function c(n){f.call(this,n)}a.inherits(c,f),c.prototype.readData=function(n){this.checkOffset(n);var m=this.data.slice(this.zero+this.index,this.zero+this.index+n);return this.index+=n,m},r.exports=c},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,r,s){var f=e("./DataReader"),a=e("../utils");function c(n){f.call(this,n)}a.inherits(c,f),c.prototype.byteAt=function(n){return this.data.charCodeAt(this.zero+n)},c.prototype.lastIndexOfSignature=function(n){return this.data.lastIndexOf(n)-this.zero},c.prototype.readAndCheckSignature=function(n){var m=this.readData(4);return n===m},c.prototype.readData=function(n){this.checkOffset(n);var m=this.data.slice(this.zero+this.index,this.zero+this.index+n);return this.index+=n,m},r.exports=c},{"../utils":32,"./DataReader":18}],21:[function(e,r,s){var f=e("./ArrayReader"),a=e("../utils");function c(n){f.call(this,n)}a.inherits(c,f),c.prototype.readData=function(n){if(this.checkOffset(n),n===0)return new Uint8Array(0);var m=this.data.subarray(this.zero+this.index,this.zero+this.index+n);return this.index+=n,m},r.exports=c},{"../utils":32,"./ArrayReader":17}],22:[function(e,r,s){var f=e("../utils"),a=e("../support"),c=e("./ArrayReader"),n=e("./StringReader"),m=e("./NodeBufferReader"),o=e("./Uint8ArrayReader");r.exports=function(_){var y=f.getTypeOf(_);return f.checkSupport(y),y==="string"&&!a.uint8array?new n(_):y==="nodebuffer"?new m(_):a.uint8array?new o(f.transformTo("uint8array",_)):new c(f.transformTo("array",_))}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,r,s){s.LOCAL_FILE_HEADER="PK",s.CENTRAL_FILE_HEADER="PK",s.CENTRAL_DIRECTORY_END="PK",s.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",s.ZIP64_CENTRAL_DIRECTORY_END="PK",s.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(e,r,s){var f=e("./GenericWorker"),a=e("../utils");function c(n){f.call(this,"ConvertWorker to "+n),this.destType=n}a.inherits(c,f),c.prototype.processChunk=function(n){this.push({data:a.transformTo(this.destType,n.data),meta:n.meta})},r.exports=c},{"../utils":32,"./GenericWorker":28}],25:[function(e,r,s){var f=e("./GenericWorker"),a=e("../crc32"),c=e("../utils");function n(){f.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}c.inherits(n,f),n.prototype.processChunk=function(m){this.streamInfo.crc32=a(m.data,this.streamInfo.crc32||0),this.push(m)},r.exports=n},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,r,s){var f=e("../utils"),a=e("./GenericWorker");function c(n){a.call(this,"DataLengthProbe for "+n),this.propName=n,this.withStreamInfo(n,0)}f.inherits(c,a),c.prototype.processChunk=function(n){if(n){var m=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=m+n.data.length}a.prototype.processChunk.call(this,n)},r.exports=c},{"../utils":32,"./GenericWorker":28}],27:[function(e,r,s){var f=e("../utils"),a=e("./GenericWorker"),c=16*1024;function n(m){a.call(this,"DataWorker");var o=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,m.then(function(_){o.dataIsReady=!0,o.data=_,o.max=_&&_.length||0,o.type=f.getTypeOf(_),o.isPaused||o._tickAndRepeat()},function(_){o.error(_)})}f.inherits(n,a),n.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this.data=null},n.prototype.resume=function(){return a.prototype.resume.call(this)?(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,f.delay(this._tickAndRepeat,[],this)),!0):!1},n.prototype._tickAndRepeat=function(){this._tickScheduled=!1,!(this.isPaused||this.isFinished)&&(this._tick(),this.isFinished||(f.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},n.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var m=c,o=null,_=Math.min(this.max,this.index+m);if(this.index>=this.max)return this.end();switch(this.type){case"string":o=this.data.substring(this.index,_);break;case"uint8array":o=this.data.subarray(this.index,_);break;case"array":case"nodebuffer":o=this.data.slice(this.index,_);break}return this.index=_,this.push({data:o,meta:{percent:this.max?this.index/this.max*100:0}})},r.exports=n},{"../utils":32,"./GenericWorker":28}],28:[function(e,r,s){function f(a){this.name=a||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}f.prototype={push:function(a){this.emit("data",a)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(a){this.emit("error",a)}return!0},error:function(a){return this.isFinished?!1:(this.isPaused?this.generatedError=a:(this.isFinished=!0,this.emit("error",a),this.previous&&this.previous.error(a),this.cleanUp()),!0)},on:function(a,c){return this._listeners[a].push(c),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(a,c){if(this._listeners[a])for(var n=0;n "+a:a}},r.exports=f},{}],29:[function(e,r,s){var f=e("../utils"),a=e("./ConvertWorker"),c=e("./GenericWorker"),n=e("../base64"),m=e("../support"),o=e("../external"),_=null;if(m.nodestream)try{_=e("../nodejs/NodejsStreamOutputAdapter")}catch{}function y(l,d,b){switch(l){case"blob":return f.newBlob(f.transformTo("arraybuffer",d),b);case"base64":return n.encode(d);default:return f.transformTo(l,d)}}function v(l,d){var b,x=0,P=null,g=0;for(b=0;b"u")s.blob=!1;else{var f=new ArrayBuffer(0);try{s.blob=new Blob([f],{type:"application/zip"}).size===0}catch{try{var a=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,c=new a;c.append(f),s.blob=c.getBlob("application/zip").size===0}catch{s.blob=!1}}}try{s.nodestream=!!e("readable-stream").Readable}catch{s.nodestream=!1}},{"readable-stream":16}],31:[function(e,r,s){for(var f=e("./utils"),a=e("./support"),c=e("./nodejsUtils"),n=e("./stream/GenericWorker"),m=new Array(256),o=0;o<256;o++)m[o]=o>=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1;m[254]=m[254]=1;var _=function(l){var d,b,x,P,g,I=l.length,C=0;for(P=0;P>>6,d[g++]=128|b&63):b<65536?(d[g++]=224|b>>>12,d[g++]=128|b>>>6&63,d[g++]=128|b&63):(d[g++]=240|b>>>18,d[g++]=128|b>>>12&63,d[g++]=128|b>>>6&63,d[g++]=128|b&63);return d},y=function(l,d){var b;for(d=d||l.length,d>l.length&&(d=l.length),b=d-1;b>=0&&(l[b]&192)===128;)b--;return b<0||b===0?d:b+m[l[b]]>d?b:d},v=function(l){var d,b,x,P,g=l.length,I=new Array(g*2);for(b=0,d=0;d4){I[b++]=65533,d+=P-1;continue}for(x&=P===2?31:P===3?15:7;P>1&&d1){I[b++]=65533;continue}x<65536?I[b++]=x:(x-=65536,I[b++]=55296|x>>10&1023,I[b++]=56320|x&1023)}return I.length!==b&&(I.subarray?I=I.subarray(0,b):I.length=b),f.applyFromCharCode(I)};s.utf8encode=function(d){return a.nodebuffer?c.newBufferFrom(d,"utf-8"):_(d)},s.utf8decode=function(d){return a.nodebuffer?f.transformTo("nodebuffer",d).toString("utf-8"):(d=f.transformTo(a.uint8array?"uint8array":"array",d),v(d))};function E(){n.call(this,"utf-8 decode"),this.leftOver=null}f.inherits(E,n),E.prototype.processChunk=function(l){var d=f.transformTo(a.uint8array?"uint8array":"array",l.data);if(this.leftOver&&this.leftOver.length){if(a.uint8array){var b=d;d=new Uint8Array(b.length+this.leftOver.length),d.set(this.leftOver,0),d.set(b,this.leftOver.length)}else d=this.leftOver.concat(d);this.leftOver=null}var x=y(d),P=d;x!==d.length&&(a.uint8array?(P=d.subarray(0,x),this.leftOver=d.subarray(x,d.length)):(P=d.slice(0,x),this.leftOver=d.slice(x,d.length))),this.push({data:s.utf8decode(P),meta:l.meta})},E.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=E;function F(){n.call(this,"utf-8 encode")}f.inherits(F,n),F.prototype.processChunk=function(l){this.push({data:s.utf8encode(l.data),meta:l.meta})},s.Utf8EncodeWorker=F},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,r,s){var f=e("./support"),a=e("./base64"),c=e("./nodejsUtils"),n=e("./external");e("setimmediate");function m(l){var d=null;return f.uint8array?d=new Uint8Array(l.length):d=new Array(l.length),_(l,d)}s.newBlob=function(l,d){s.checkSupport("blob");try{return new Blob([l],{type:d})}catch{try{var b=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,x=new b;return x.append(l),x.getBlob(d)}catch{throw new Error("Bug : can't construct the Blob.")}}};function o(l){return l}function _(l,d){for(var b=0;b1;)try{return y.stringifyByChunk(l,b,d)}catch{d=Math.floor(d/2)}return y.stringifyByChar(l)}s.applyFromCharCode=v;function E(l,d){for(var b=0;b"u"&&(l[b]=arguments[d][b]);return l},s.prepareContent=function(l,d,b,x,P){var g=n.Promise.resolve(d).then(function(I){var C=f.blob&&(I instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(I))!==-1);return C&&typeof FileReader<"u"?new n.Promise(function(S,N){var D=new FileReader;D.onload=function(V){S(V.target.result)},D.onerror=function(V){N(V.target.error)},D.readAsArrayBuffer(I)}):I});return g.then(function(I){var C=s.getTypeOf(I);return C?(C==="arraybuffer"?I=s.transformTo("uint8array",I):C==="string"&&(P?I=a.decode(I):b&&x!==!0&&(I=m(I))),I):n.Promise.reject(new Error("Can't read the data of '"+l+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,setimmediate:54}],33:[function(e,r,s){var f=e("./reader/readerFor"),a=e("./utils"),c=e("./signature"),n=e("./zipEntry"),m=e("./support");function o(_){this.files=[],this.loadOptions=_}o.prototype={checkSignature:function(_){if(!this.reader.readAndCheckSignature(_)){this.reader.index-=4;var y=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+a.pretty(y)+", expected "+a.pretty(_)+")")}},isSignature:function(_,y){var v=this.reader.index;this.reader.setIndex(_);var E=this.reader.readString(4),F=E===y;return this.reader.setIndex(v),F},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var _=this.reader.readData(this.zipCommentLength),y=m.uint8array?"uint8array":"array",v=a.transformTo(y,_);this.zipComment=this.loadOptions.decodeFileName(v)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var _=this.zip64EndOfCentralSize-44,y=0,v,E,F;y<_;)v=this.reader.readInt(2),E=this.reader.readInt(4),F=this.reader.readData(E),this.zip64ExtensibleData[v]={id:v,length:E,value:F}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var _,y;for(_=0;_0)this.isSignature(v,c.CENTRAL_FILE_HEADER)||(this.reader.zero=F);else if(F<0)throw new Error("Corrupted zip: missing "+Math.abs(F)+" bytes.")},prepareReader:function(_){this.reader=f(_)},load:function(_){this.prepareReader(_),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},r.exports=o},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(e,r,s){var f=e("./reader/readerFor"),a=e("./utils"),c=e("./compressedObject"),n=e("./crc32"),m=e("./utf8"),o=e("./compressions"),_=e("./support"),y=0,v=3,E=function(l){for(var d in o)if(Object.prototype.hasOwnProperty.call(o,d)&&o[d].magic===l)return o[d];return null};function F(l,d){this.options=l,this.loadOptions=d}F.prototype={isEncrypted:function(){return(this.bitFlag&1)===1},useUTF8:function(){return(this.bitFlag&2048)===2048},readLocalPart:function(l){var d,b;if(l.skip(22),this.fileNameLength=l.readInt(2),b=l.readInt(2),this.fileName=l.readData(this.fileNameLength),l.skip(b),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(d=E(this.compressionMethod),d===null)throw new Error("Corrupted zip : compression "+a.pretty(this.compressionMethod)+" unknown (inner file : "+a.transformTo("string",this.fileName)+")");this.decompressed=new c(this.compressedSize,this.uncompressedSize,this.crc32,d,l.readData(this.compressedSize))},readCentralPart:function(l){this.versionMadeBy=l.readInt(2),l.skip(2),this.bitFlag=l.readInt(2),this.compressionMethod=l.readString(2),this.date=l.readDate(),this.crc32=l.readInt(4),this.compressedSize=l.readInt(4),this.uncompressedSize=l.readInt(4);var d=l.readInt(2);if(this.extraFieldsLength=l.readInt(2),this.fileCommentLength=l.readInt(2),this.diskNumberStart=l.readInt(2),this.internalFileAttributes=l.readInt(2),this.externalFileAttributes=l.readInt(4),this.localHeaderOffset=l.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");l.skip(d),this.readExtraFields(l),this.parseZIP64ExtraField(l),this.fileComment=l.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var l=this.versionMadeBy>>8;this.dir=!!(this.externalFileAttributes&16),l===y&&(this.dosPermissions=this.externalFileAttributes&63),l===v&&(this.unixPermissions=this.externalFileAttributes>>16&65535),!this.dir&&this.fileNameStr.slice(-1)==="/"&&(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var l=f(this.extraFields[1].value);this.uncompressedSize===a.MAX_VALUE_32BITS&&(this.uncompressedSize=l.readInt(8)),this.compressedSize===a.MAX_VALUE_32BITS&&(this.compressedSize=l.readInt(8)),this.localHeaderOffset===a.MAX_VALUE_32BITS&&(this.localHeaderOffset=l.readInt(8)),this.diskNumberStart===a.MAX_VALUE_32BITS&&(this.diskNumberStart=l.readInt(4))}},readExtraFields:function(l){var d=l.index+this.extraFieldsLength,b,x,P;for(this.extraFields||(this.extraFields={});l.index+40?S.windowBits=-S.windowBits:S.gzip&&S.windowBits>0&&S.windowBits<16&&(S.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new m,this.strm.avail_out=0;var N=f.deflateInit2(this.strm,S.level,S.method,S.windowBits,S.memLevel,S.strategy);if(N!==v)throw new Error(n[N]);if(S.header&&f.deflateSetHeader(this.strm,S.header),S.dictionary){var D;if(typeof S.dictionary=="string"?D=c.string2buf(S.dictionary):o.call(S.dictionary)==="[object ArrayBuffer]"?D=new Uint8Array(S.dictionary):D=S.dictionary,N=f.deflateSetDictionary(this.strm,D),N!==v)throw new Error(n[N]);this._dict_set=!0}}x.prototype.push=function(C,S){var N=this.strm,D=this.options.chunkSize,V,R;if(this.ended)return!1;R=S===~~S?S:S===!0?y:_,typeof C=="string"?N.input=c.string2buf(C):o.call(C)==="[object ArrayBuffer]"?N.input=new Uint8Array(C):N.input=C,N.next_in=0,N.avail_in=N.input.length;do{if(N.avail_out===0&&(N.output=new a.Buf8(D),N.next_out=0,N.avail_out=D),V=f.deflate(N,R),V!==E&&V!==v)return this.onEnd(V),this.ended=!0,!1;(N.avail_out===0||N.avail_in===0&&(R===y||R===F))&&(this.options.to==="string"?this.onData(c.buf2binstring(a.shrinkBuf(N.output,N.next_out))):this.onData(a.shrinkBuf(N.output,N.next_out)))}while((N.avail_in>0||N.avail_out===0)&&V!==E);return R===y?(V=f.deflateEnd(this.strm),this.onEnd(V),this.ended=!0,V===v):(R===F&&(this.onEnd(v),N.avail_out=0),!0)},x.prototype.onData=function(C){this.chunks.push(C)},x.prototype.onEnd=function(C){C===v&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=C,this.msg=this.strm.msg};function P(C,S){var N=new x(S);if(N.push(C,!0),N.err)throw N.msg||n[N.err];return N.result}function g(C,S){return S=S||{},S.raw=!0,P(C,S)}function I(C,S){return S=S||{},S.gzip=!0,P(C,S)}s.Deflate=x,s.deflate=P,s.deflateRaw=g,s.gzip=I},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(e,r,s){var f=e("./zlib/inflate"),a=e("./utils/common"),c=e("./utils/strings"),n=e("./zlib/constants"),m=e("./zlib/messages"),o=e("./zlib/zstream"),_=e("./zlib/gzheader"),y=Object.prototype.toString;function v(l){if(!(this instanceof v))return new v(l);this.options=a.assign({chunkSize:16384,windowBits:0,to:""},l||{});var d=this.options;d.raw&&d.windowBits>=0&&d.windowBits<16&&(d.windowBits=-d.windowBits,d.windowBits===0&&(d.windowBits=-15)),d.windowBits>=0&&d.windowBits<16&&!(l&&l.windowBits)&&(d.windowBits+=32),d.windowBits>15&&d.windowBits<48&&(d.windowBits&15)===0&&(d.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new o,this.strm.avail_out=0;var b=f.inflateInit2(this.strm,d.windowBits);if(b!==n.Z_OK)throw new Error(m[b]);this.header=new _,f.inflateGetHeader(this.strm,this.header)}v.prototype.push=function(l,d){var b=this.strm,x=this.options.chunkSize,P=this.options.dictionary,g,I,C,S,N,D,V=!1;if(this.ended)return!1;I=d===~~d?d:d===!0?n.Z_FINISH:n.Z_NO_FLUSH,typeof l=="string"?b.input=c.binstring2buf(l):y.call(l)==="[object ArrayBuffer]"?b.input=new Uint8Array(l):b.input=l,b.next_in=0,b.avail_in=b.input.length;do{if(b.avail_out===0&&(b.output=new a.Buf8(x),b.next_out=0,b.avail_out=x),g=f.inflate(b,n.Z_NO_FLUSH),g===n.Z_NEED_DICT&&P&&(typeof P=="string"?D=c.string2buf(P):y.call(P)==="[object ArrayBuffer]"?D=new Uint8Array(P):D=P,g=f.inflateSetDictionary(this.strm,D)),g===n.Z_BUF_ERROR&&V===!0&&(g=n.Z_OK,V=!1),g!==n.Z_STREAM_END&&g!==n.Z_OK)return this.onEnd(g),this.ended=!0,!1;b.next_out&&(b.avail_out===0||g===n.Z_STREAM_END||b.avail_in===0&&(I===n.Z_FINISH||I===n.Z_SYNC_FLUSH))&&(this.options.to==="string"?(C=c.utf8border(b.output,b.next_out),S=b.next_out-C,N=c.buf2string(b.output,C),b.next_out=S,b.avail_out=x-S,S&&a.arraySet(b.output,b.output,C,S,0),this.onData(N)):this.onData(a.shrinkBuf(b.output,b.next_out))),b.avail_in===0&&b.avail_out===0&&(V=!0)}while((b.avail_in>0||b.avail_out===0)&&g!==n.Z_STREAM_END);return g===n.Z_STREAM_END&&(I=n.Z_FINISH),I===n.Z_FINISH?(g=f.inflateEnd(this.strm),this.onEnd(g),this.ended=!0,g===n.Z_OK):(I===n.Z_SYNC_FLUSH&&(this.onEnd(n.Z_OK),b.avail_out=0),!0)},v.prototype.onData=function(l){this.chunks.push(l)},v.prototype.onEnd=function(l){l===n.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=l,this.msg=this.strm.msg};function E(l,d){var b=new v(d);if(b.push(l,!0),b.err)throw b.msg||m[b.err];return b.result}function F(l,d){return d=d||{},d.raw=!0,E(l,d)}s.Inflate=v,s.inflate=E,s.inflateRaw=F,s.ungzip=E},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(e,r,s){var f=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";s.assign=function(n){for(var m=Array.prototype.slice.call(arguments,1);m.length;){var o=m.shift();if(o){if(typeof o!="object")throw new TypeError(o+"must be non-object");for(var _ in o)o.hasOwnProperty(_)&&(n[_]=o[_])}}return n},s.shrinkBuf=function(n,m){return n.length===m?n:n.subarray?n.subarray(0,m):(n.length=m,n)};var a={arraySet:function(n,m,o,_,y){if(m.subarray&&n.subarray){n.set(m.subarray(o,o+_),y);return}for(var v=0;v<_;v++)n[y+v]=m[o+v]},flattenChunks:function(n){var m,o,_,y,v,E;for(_=0,m=0,o=n.length;m=252?6:m>=248?5:m>=240?4:m>=224?3:m>=192?2:1;n[254]=n[254]=1,s.string2buf=function(_){var y,v,E,F,l,d=_.length,b=0;for(F=0;F>>6,y[l++]=128|v&63):v<65536?(y[l++]=224|v>>>12,y[l++]=128|v>>>6&63,y[l++]=128|v&63):(y[l++]=240|v>>>18,y[l++]=128|v>>>12&63,y[l++]=128|v>>>6&63,y[l++]=128|v&63);return y};function o(_,y){if(y<65537&&(_.subarray&&c||!_.subarray&&a))return String.fromCharCode.apply(null,f.shrinkBuf(_,y));for(var v="",E=0;E4){b[E++]=65533,v+=l-1;continue}for(F&=l===2?31:l===3?15:7;l>1&&v1){b[E++]=65533;continue}F<65536?b[E++]=F:(F-=65536,b[E++]=55296|F>>10&1023,b[E++]=56320|F&1023)}return o(b,E)},s.utf8border=function(_,y){var v;for(y=y||_.length,y>_.length&&(y=_.length),v=y-1;v>=0&&(_[v]&192)===128;)v--;return v<0||v===0?y:v+n[_[v]]>y?v:y}},{"./common":41}],43:[function(e,r,s){function f(a,c,n,m){for(var o=a&65535|0,_=a>>>16&65535|0,y=0;n!==0;){y=n>2e3?2e3:n,n-=y;do o=o+c[m++]|0,_=_+o|0;while(--y);o%=65521,_%=65521}return o|_<<16|0}r.exports=f},{}],44:[function(e,r,s){r.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,r,s){function f(){for(var n,m=[],o=0;o<256;o++){n=o;for(var _=0;_<8;_++)n=n&1?3988292384^n>>>1:n>>>1;m[o]=n}return m}var a=f();function c(n,m,o,_){var y=a,v=_+o;n^=-1;for(var E=_;E>>8^y[(n^m[E])&255];return n^-1}r.exports=c},{}],46:[function(e,r,s){var f=e("../utils/common"),a=e("./trees"),c=e("./adler32"),n=e("./crc32"),m=e("./messages"),o=0,_=1,y=3,v=4,E=5,F=0,l=1,d=-2,b=-3,x=-5,P=-1,g=1,I=2,C=3,S=4,N=0,D=2,V=8,R=9,j=15,$=8,G=29,et=256,W=et+1+G,Z=30,Q=19,at=2*W+1,ht=15,K=3,ot=258,nt=ot+K+1,kt=32,Ft=42,vt=69,st=73,Ct=91,gt=103,dt=113,bt=666,ct=1,At=2,Mt=3,Ut=4,ut=3;function Nt(i,A){return i.msg=m[A],A}function he(i){return(i<<1)-(i>4?9:0)}function Vt(i){for(var A=i.length;--A>=0;)i[A]=0}function Bt(i){var A=i.state,T=A.pending;T>i.avail_out&&(T=i.avail_out),T!==0&&(f.arraySet(i.output,A.pending_buf,A.pending_out,T,i.next_out),i.next_out+=T,A.pending_out+=T,i.total_out+=T,i.avail_out-=T,A.pending-=T,A.pending===0&&(A.pending_out=0))}function _t(i,A){a._tr_flush_block(i,i.block_start>=0?i.block_start:-1,i.strstart-i.block_start,A),i.block_start=i.strstart,Bt(i.strm)}function rt(i,A){i.pending_buf[i.pending++]=A}function jt(i,A){i.pending_buf[i.pending++]=A>>>8&255,i.pending_buf[i.pending++]=A&255}function de(i,A,T,u){var w=i.avail_in;return w>u&&(w=u),w===0?0:(i.avail_in-=w,f.arraySet(A,i.input,i.next_in,w,T),i.state.wrap===1?i.adler=c(i.adler,A,w,T):i.state.wrap===2&&(i.adler=n(i.adler,A,w,T)),i.next_in+=w,i.total_in+=w,w)}function ae(i,A){var T=i.max_chain_length,u=i.strstart,w,O,J=i.prev_length,Y=i.nice_match,X=i.strstart>i.w_size-nt?i.strstart-(i.w_size-nt):0,ft=i.window,qt=i.w_mask,mt=i.prev,lt=i.strstart+ot,xt=ft[u+J-1],Tt=ft[u+J];i.prev_length>=i.good_match&&(T>>=2),Y>i.lookahead&&(Y=i.lookahead);do if(w=A,!(ft[w+J]!==Tt||ft[w+J-1]!==xt||ft[w]!==ft[u]||ft[++w]!==ft[u+1])){u+=2,w++;do;while(ft[++u]===ft[++w]&&ft[++u]===ft[++w]&&ft[++u]===ft[++w]&&ft[++u]===ft[++w]&&ft[++u]===ft[++w]&&ft[++u]===ft[++w]&&ft[++u]===ft[++w]&&ft[++u]===ft[++w]&&uJ){if(i.match_start=A,J=O,O>=Y)break;xt=ft[u+J-1],Tt=ft[u+J]}}while((A=mt[A&qt])>X&&--T!==0);return J<=i.lookahead?J:i.lookahead}function Zt(i){var A=i.w_size,T,u,w,O,J;do{if(O=i.window_size-i.lookahead-i.strstart,i.strstart>=A+(A-nt)){f.arraySet(i.window,i.window,A,A,0),i.match_start-=A,i.strstart-=A,i.block_start-=A,u=i.hash_size,T=u;do w=i.head[--T],i.head[T]=w>=A?w-A:0;while(--u);u=A,T=u;do w=i.prev[--T],i.prev[T]=w>=A?w-A:0;while(--u);O+=A}if(i.strm.avail_in===0)break;if(u=de(i.strm,i.window,i.strstart+i.lookahead,O),i.lookahead+=u,i.lookahead+i.insert>=K)for(J=i.strstart-i.insert,i.ins_h=i.window[J],i.ins_h=(i.ins_h<i.pending_buf_size-5&&(T=i.pending_buf_size-5);;){if(i.lookahead<=1){if(Zt(i),i.lookahead===0&&A===o)return ct;if(i.lookahead===0)break}i.strstart+=i.lookahead,i.lookahead=0;var u=i.block_start+T;if((i.strstart===0||i.strstart>=u)&&(i.lookahead=i.strstart-u,i.strstart=u,_t(i,!1),i.strm.avail_out===0)||i.strstart-i.block_start>=i.w_size-nt&&(_t(i,!1),i.strm.avail_out===0))return ct}return i.insert=0,A===v?(_t(i,!0),i.strm.avail_out===0?Mt:Ut):(i.strstart>i.block_start&&(_t(i,!1),i.strm.avail_out===0),ct)}function ne(i,A){for(var T,u;;){if(i.lookahead=K&&(i.ins_h=(i.ins_h<=K)if(u=a._tr_tally(i,i.strstart-i.match_start,i.match_length-K),i.lookahead-=i.match_length,i.match_length<=i.max_lazy_match&&i.lookahead>=K){i.match_length--;do i.strstart++,i.ins_h=(i.ins_h<=K&&(i.ins_h=(i.ins_h<4096)&&(i.match_length=K-1)),i.prev_length>=K&&i.match_length<=i.prev_length){w=i.strstart+i.lookahead-K,u=a._tr_tally(i,i.strstart-1-i.prev_match,i.prev_length-K),i.lookahead-=i.prev_length-1,i.prev_length-=2;do++i.strstart<=w&&(i.ins_h=(i.ins_h<=K&&i.strstart>0&&(w=i.strstart-1,u=J[w],u===J[++w]&&u===J[++w]&&u===J[++w])){O=i.strstart+ot;do;while(u===J[++w]&&u===J[++w]&&u===J[++w]&&u===J[++w]&&u===J[++w]&&u===J[++w]&&u===J[++w]&&u===J[++w]&&wi.lookahead&&(i.match_length=i.lookahead)}if(i.match_length>=K?(T=a._tr_tally(i,1,i.match_length-K),i.lookahead-=i.match_length,i.strstart+=i.match_length,i.match_length=0):(T=a._tr_tally(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++),T&&(_t(i,!1),i.strm.avail_out===0))return ct}return i.insert=0,A===v?(_t(i,!0),i.strm.avail_out===0?Mt:Ut):i.last_lit&&(_t(i,!1),i.strm.avail_out===0)?ct:At}function se(i,A){for(var T;;){if(i.lookahead===0&&(Zt(i),i.lookahead===0)){if(A===o)return ct;break}if(i.match_length=0,T=a._tr_tally(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++,T&&(_t(i,!1),i.strm.avail_out===0))return ct}return i.insert=0,A===v?(_t(i,!0),i.strm.avail_out===0?Mt:Ut):i.last_lit&&(_t(i,!1),i.strm.avail_out===0)?ct:At}function Pt(i,A,T,u,w){this.good_length=i,this.max_lazy=A,this.nice_length=T,this.max_chain=u,this.func=w}var Gt;Gt=[new Pt(0,0,0,0,ue),new Pt(4,4,8,4,ne),new Pt(4,5,16,8,ne),new Pt(4,6,32,32,ne),new Pt(4,4,16,16,Wt),new Pt(8,16,32,32,Wt),new Pt(8,16,128,128,Wt),new Pt(8,32,128,256,Wt),new Pt(32,128,258,1024,Wt),new Pt(32,258,258,4096,Wt)];function pe(i){i.window_size=2*i.w_size,Vt(i.head),i.max_lazy_match=Gt[i.level].max_lazy,i.good_match=Gt[i.level].good_length,i.nice_match=Gt[i.level].nice_length,i.max_chain_length=Gt[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=K-1,i.match_available=0,i.ins_h=0}function p(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=V,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new f.Buf16(at*2),this.dyn_dtree=new f.Buf16((2*Z+1)*2),this.bl_tree=new f.Buf16((2*Q+1)*2),Vt(this.dyn_ltree),Vt(this.dyn_dtree),Vt(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new f.Buf16(ht+1),this.heap=new f.Buf16(2*W+1),Vt(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new f.Buf16(2*W+1),Vt(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function B(i){var A;return!i||!i.state?Nt(i,d):(i.total_in=i.total_out=0,i.data_type=D,A=i.state,A.pending=0,A.pending_out=0,A.wrap<0&&(A.wrap=-A.wrap),A.status=A.wrap?Ft:dt,i.adler=A.wrap===2?0:1,A.last_flush=o,a._tr_init(A),F)}function U(i){var A=B(i);return A===F&&pe(i.state),A}function H(i,A){return!i||!i.state||i.state.wrap!==2?d:(i.state.gzhead=A,F)}function k(i,A,T,u,w,O){if(!i)return d;var J=1;if(A===P&&(A=6),u<0?(J=0,u=-u):u>15&&(J=2,u-=16),w<1||w>R||T!==V||u<8||u>15||A<0||A>9||O<0||O>S)return Nt(i,d);u===8&&(u=9);var Y=new p;return i.state=Y,Y.strm=i,Y.wrap=J,Y.gzhead=null,Y.w_bits=u,Y.w_size=1<E||A<0)return i?Nt(i,d):d;if(u=i.state,!i.output||!i.input&&i.avail_in!==0||u.status===bt&&A!==v)return Nt(i,i.avail_out===0?x:d);if(u.strm=i,T=u.last_flush,u.last_flush=A,u.status===Ft)if(u.wrap===2)i.adler=0,rt(u,31),rt(u,139),rt(u,8),u.gzhead?(rt(u,(u.gzhead.text?1:0)+(u.gzhead.hcrc?2:0)+(u.gzhead.extra?4:0)+(u.gzhead.name?8:0)+(u.gzhead.comment?16:0)),rt(u,u.gzhead.time&255),rt(u,u.gzhead.time>>8&255),rt(u,u.gzhead.time>>16&255),rt(u,u.gzhead.time>>24&255),rt(u,u.level===9?2:u.strategy>=I||u.level<2?4:0),rt(u,u.gzhead.os&255),u.gzhead.extra&&u.gzhead.extra.length&&(rt(u,u.gzhead.extra.length&255),rt(u,u.gzhead.extra.length>>8&255)),u.gzhead.hcrc&&(i.adler=n(i.adler,u.pending_buf,u.pending,0)),u.gzindex=0,u.status=vt):(rt(u,0),rt(u,0),rt(u,0),rt(u,0),rt(u,0),rt(u,u.level===9?2:u.strategy>=I||u.level<2?4:0),rt(u,ut),u.status=dt);else{var J=V+(u.w_bits-8<<4)<<8,Y=-1;u.strategy>=I||u.level<2?Y=0:u.level<6?Y=1:u.level===6?Y=2:Y=3,J|=Y<<6,u.strstart!==0&&(J|=kt),J+=31-J%31,u.status=dt,jt(u,J),u.strstart!==0&&(jt(u,i.adler>>>16),jt(u,i.adler&65535)),i.adler=1}if(u.status===vt)if(u.gzhead.extra){for(w=u.pending;u.gzindex<(u.gzhead.extra.length&65535)&&!(u.pending===u.pending_buf_size&&(u.gzhead.hcrc&&u.pending>w&&(i.adler=n(i.adler,u.pending_buf,u.pending-w,w)),Bt(i),w=u.pending,u.pending===u.pending_buf_size));)rt(u,u.gzhead.extra[u.gzindex]&255),u.gzindex++;u.gzhead.hcrc&&u.pending>w&&(i.adler=n(i.adler,u.pending_buf,u.pending-w,w)),u.gzindex===u.gzhead.extra.length&&(u.gzindex=0,u.status=st)}else u.status=st;if(u.status===st)if(u.gzhead.name){w=u.pending;do{if(u.pending===u.pending_buf_size&&(u.gzhead.hcrc&&u.pending>w&&(i.adler=n(i.adler,u.pending_buf,u.pending-w,w)),Bt(i),w=u.pending,u.pending===u.pending_buf_size)){O=1;break}u.gzindexw&&(i.adler=n(i.adler,u.pending_buf,u.pending-w,w)),O===0&&(u.gzindex=0,u.status=Ct)}else u.status=Ct;if(u.status===Ct)if(u.gzhead.comment){w=u.pending;do{if(u.pending===u.pending_buf_size&&(u.gzhead.hcrc&&u.pending>w&&(i.adler=n(i.adler,u.pending_buf,u.pending-w,w)),Bt(i),w=u.pending,u.pending===u.pending_buf_size)){O=1;break}u.gzindexw&&(i.adler=n(i.adler,u.pending_buf,u.pending-w,w)),O===0&&(u.status=gt)}else u.status=gt;if(u.status===gt&&(u.gzhead.hcrc?(u.pending+2>u.pending_buf_size&&Bt(i),u.pending+2<=u.pending_buf_size&&(rt(u,i.adler&255),rt(u,i.adler>>8&255),i.adler=0,u.status=dt)):u.status=dt),u.pending!==0){if(Bt(i),i.avail_out===0)return u.last_flush=-1,F}else if(i.avail_in===0&&he(A)<=he(T)&&A!==v)return Nt(i,x);if(u.status===bt&&i.avail_in!==0)return Nt(i,x);if(i.avail_in!==0||u.lookahead!==0||A!==o&&u.status!==bt){var X=u.strategy===I?se(u,A):u.strategy===C?_e(u,A):Gt[u.level].func(u,A);if((X===Mt||X===Ut)&&(u.status=bt),X===ct||X===Mt)return i.avail_out===0&&(u.last_flush=-1),F;if(X===At&&(A===_?a._tr_align(u):A!==E&&(a._tr_stored_block(u,0,0,!1),A===y&&(Vt(u.head),u.lookahead===0&&(u.strstart=0,u.block_start=0,u.insert=0))),Bt(i),i.avail_out===0))return u.last_flush=-1,F}return A!==v?F:u.wrap<=0?l:(u.wrap===2?(rt(u,i.adler&255),rt(u,i.adler>>8&255),rt(u,i.adler>>16&255),rt(u,i.adler>>24&255),rt(u,i.total_in&255),rt(u,i.total_in>>8&255),rt(u,i.total_in>>16&255),rt(u,i.total_in>>24&255)):(jt(u,i.adler>>>16),jt(u,i.adler&65535)),Bt(i),u.wrap>0&&(u.wrap=-u.wrap),u.pending!==0?F:l)}function M(i){var A;return!i||!i.state?d:(A=i.state.status,A!==Ft&&A!==vt&&A!==st&&A!==Ct&&A!==gt&&A!==dt&&A!==bt?Nt(i,d):(i.state=null,A===dt?Nt(i,b):F))}function q(i,A){var T=A.length,u,w,O,J,Y,X,ft,qt;if(!i||!i.state||(u=i.state,J=u.wrap,J===2||J===1&&u.status!==Ft||u.lookahead))return d;for(J===1&&(i.adler=c(i.adler,A,T,0)),u.wrap=0,T>=u.w_size&&(J===0&&(Vt(u.head),u.strstart=0,u.block_start=0,u.insert=0),qt=new f.Buf8(u.w_size),f.arraySet(qt,A,T-u.w_size,u.w_size,0),A=qt,T=u.w_size),Y=i.avail_in,X=i.next_in,ft=i.input,i.avail_in=T,i.next_in=0,i.input=A,Zt(u);u.lookahead>=K;){w=u.strstart,O=u.lookahead-(K-1);do u.ins_h=(u.ins_h<>>24,g>>>=R,I-=R,R=V>>>16&255,R===0)Z[v++]=V&65535;else if(R&16){j=V&65535,R&=15,R&&(I>>=R,I-=R),I<15&&(g+=W[_++]<>>24,g>>>=R,I-=R,R=V>>>16&255,R&16){if($=V&65535,R&=15,Il){n.msg="invalid distance too far back",o.mode=f;break t}if(g>>>=R,I-=R,R=v-E,$>R){if(R=$-R,R>b&&o.sane){n.msg="invalid distance too far back",o.mode=f;break t}if(G=0,et=P,x===0){if(G+=d-R,R2;)Z[v++]=et[G++],Z[v++]=et[G++],Z[v++]=et[G++],j-=3;j&&(Z[v++]=et[G++],j>1&&(Z[v++]=et[G++]))}else{G=v-$;do Z[v++]=Z[G++],Z[v++]=Z[G++],Z[v++]=Z[G++],j-=3;while(j>2);j&&(Z[v++]=Z[G++],j>1&&(Z[v++]=Z[G++]))}}else if((R&64)===0){V=S[(V&65535)+(g&(1<>3,_-=j,I-=j<<3,g&=(1<>>24&255)+(k>>>8&65280)+((k&65280)<<8)+((k&255)<<24)}function de(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new f.Buf16(320),this.work=new f.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function ae(k){var z;return!k||!k.state?x:(z=k.state,k.total_in=k.total_out=z.total=0,k.msg="",z.wrap&&(k.adler=z.wrap&1),z.mode=S,z.last=0,z.havedict=0,z.dmax=32768,z.head=null,z.hold=0,z.bits=0,z.lencode=z.lendyn=new f.Buf32(Vt),z.distcode=z.distdyn=new f.Buf32(Bt),z.sane=1,z.back=-1,l)}function Zt(k){var z;return!k||!k.state?x:(z=k.state,z.wsize=0,z.whave=0,z.wnext=0,ae(k))}function ue(k,z){var h,M;return!k||!k.state||(M=k.state,z<0?(h=0,z=-z):(h=(z>>4)+1,z<48&&(z&=15)),z&&(z<8||z>15))?x:(M.window!==null&&M.wbits!==z&&(M.window=null),M.wrap=h,M.wbits=z,Zt(k))}function ne(k,z){var h,M;return k?(M=new de,k.state=M,M.window=null,h=ue(k,z),h!==l&&(k.state=null),h):x}function Wt(k){return ne(k,rt)}var _e=!0,se,Pt;function Gt(k){if(_e){var z;for(se=new f.Buf32(512),Pt=new f.Buf32(32),z=0;z<144;)k.lens[z++]=8;for(;z<256;)k.lens[z++]=9;for(;z<280;)k.lens[z++]=7;for(;z<288;)k.lens[z++]=8;for(m(_,k.lens,0,288,se,0,k.work,{bits:9}),z=0;z<32;)k.lens[z++]=5;m(y,k.lens,0,32,Pt,0,k.work,{bits:5}),_e=!1}k.lencode=se,k.lenbits=9,k.distcode=Pt,k.distbits=5}function pe(k,z,h,M){var q,i=k.state;return i.window===null&&(i.wsize=1<=i.wsize?(f.arraySet(i.window,z,h-i.wsize,i.wsize,0),i.wnext=0,i.whave=i.wsize):(q=i.wsize-i.wnext,q>M&&(q=M),f.arraySet(i.window,z,h-M,q,i.wnext),M-=q,M?(f.arraySet(i.window,z,h-M,M,0),i.wnext=M,i.whave=i.wsize):(i.wnext+=q,i.wnext===i.wsize&&(i.wnext=0),i.whave>>8&255,h.check=c(h.check,Et,2,0),w=0,O=0,h.mode=N;break}if(h.flags=0,h.head&&(h.head.done=!1),!(h.wrap&1)||(((w&255)<<8)+(w>>8))%31){k.msg="incorrect header check",h.mode=ut;break}if((w&15)!==C){k.msg="unknown compression method",h.mode=ut;break}if(w>>>=4,O-=4,yt=(w&15)+8,h.wbits===0)h.wbits=yt;else if(yt>h.wbits){k.msg="invalid window size",h.mode=ut;break}h.dmax=1<>8&1),h.flags&512&&(Et[0]=w&255,Et[1]=w>>>8&255,h.check=c(h.check,Et,2,0)),w=0,O=0,h.mode=D;case D:for(;O<32;){if(T===0)break t;T--,w+=M[i++]<>>8&255,Et[2]=w>>>16&255,Et[3]=w>>>24&255,h.check=c(h.check,Et,4,0)),w=0,O=0,h.mode=V;case V:for(;O<16;){if(T===0)break t;T--,w+=M[i++]<>8),h.flags&512&&(Et[0]=w&255,Et[1]=w>>>8&255,h.check=c(h.check,Et,2,0)),w=0,O=0,h.mode=R;case R:if(h.flags&1024){for(;O<16;){if(T===0)break t;T--,w+=M[i++]<>>8&255,h.check=c(h.check,Et,2,0)),w=0,O=0}else h.head&&(h.head.extra=null);h.mode=j;case j:if(h.flags&1024&&(X=h.length,X>T&&(X=T),X&&(h.head&&(yt=h.head.extra_len-h.length,h.head.extra||(h.head.extra=new Array(h.head.extra_len)),f.arraySet(h.head.extra,M,i,X,yt)),h.flags&512&&(h.check=c(h.check,M,X,i)),T-=X,i+=X,h.length-=X),h.length))break t;h.length=0,h.mode=$;case $:if(h.flags&2048){if(T===0)break t;X=0;do yt=M[i+X++],h.head&&yt&&h.length<65536&&(h.head.name+=String.fromCharCode(yt));while(yt&&X>9&1,h.head.done=!0),k.adler=h.check=0,h.mode=Q;break;case W:for(;O<32;){if(T===0)break t;T--,w+=M[i++]<>>=O&7,O-=O&7,h.mode=At;break}for(;O<3;){if(T===0)break t;T--,w+=M[i++]<>>=1,O-=1,w&3){case 0:h.mode=ht;break;case 1:if(Gt(h),h.mode=vt,z===F){w>>>=2,O-=2;break t}break;case 2:h.mode=nt;break;case 3:k.msg="invalid block type",h.mode=ut}w>>>=2,O-=2;break;case ht:for(w>>>=O&7,O-=O&7;O<32;){if(T===0)break t;T--,w+=M[i++]<>>16^65535)){k.msg="invalid stored block lengths",h.mode=ut;break}if(h.length=w&65535,w=0,O=0,h.mode=K,z===F)break t;case K:h.mode=ot;case ot:if(X=h.length,X){if(X>T&&(X=T),X>u&&(X=u),X===0)break t;f.arraySet(q,M,i,X,A),T-=X,i+=X,u-=X,A+=X,h.length-=X;break}h.mode=Q;break;case nt:for(;O<14;){if(T===0)break t;T--,w+=M[i++]<>>=5,O-=5,h.ndist=(w&31)+1,w>>>=5,O-=5,h.ncode=(w&15)+4,w>>>=4,O-=4,h.nlen>286||h.ndist>30){k.msg="too many length or distance symbols",h.mode=ut;break}h.have=0,h.mode=kt;case kt:for(;h.have>>=3,O-=3}for(;h.have<19;)h.lens[Me[h.have++]]=0;if(h.lencode=h.lendyn,h.lenbits=7,te={bits:h.lenbits},Yt=m(o,h.lens,0,19,h.lencode,0,h.work,te),h.lenbits=te.bits,Yt){k.msg="invalid code lengths set",h.mode=ut;break}h.have=0,h.mode=Ft;case Ft:for(;h.have>>24,xt=mt>>>16&255,Tt=mt&65535,!(lt<=O);){if(T===0)break t;T--,w+=M[i++]<>>=lt,O-=lt,h.lens[h.have++]=Tt;else{if(Tt===16){for(Jt=lt+2;O>>=lt,O-=lt,h.have===0){k.msg="invalid bit length repeat",h.mode=ut;break}yt=h.lens[h.have-1],X=3+(w&3),w>>>=2,O-=2}else if(Tt===17){for(Jt=lt+3;O>>=lt,O-=lt,yt=0,X=3+(w&7),w>>>=3,O-=3}else{for(Jt=lt+7;O>>=lt,O-=lt,yt=0,X=11+(w&127),w>>>=7,O-=7}if(h.have+X>h.nlen+h.ndist){k.msg="invalid bit length repeat",h.mode=ut;break}for(;X--;)h.lens[h.have++]=yt}}if(h.mode===ut)break;if(h.lens[256]===0){k.msg="invalid code -- missing end-of-block",h.mode=ut;break}if(h.lenbits=9,te={bits:h.lenbits},Yt=m(_,h.lens,0,h.nlen,h.lencode,0,h.work,te),h.lenbits=te.bits,Yt){k.msg="invalid literal/lengths set",h.mode=ut;break}if(h.distbits=6,h.distcode=h.distdyn,te={bits:h.distbits},Yt=m(y,h.lens,h.nlen,h.ndist,h.distcode,0,h.work,te),h.distbits=te.bits,Yt){k.msg="invalid distances set",h.mode=ut;break}if(h.mode=vt,z===F)break t;case vt:h.mode=st;case st:if(T>=6&&u>=258){k.next_out=A,k.avail_out=u,k.next_in=i,k.avail_in=T,h.hold=w,h.bits=O,n(k,Y),A=k.next_out,q=k.output,u=k.avail_out,i=k.next_in,M=k.input,T=k.avail_in,w=h.hold,O=h.bits,h.mode===Q&&(h.back=-1);break}for(h.back=0;mt=h.lencode[w&(1<>>24,xt=mt>>>16&255,Tt=mt&65535,!(lt<=O);){if(T===0)break t;T--,w+=M[i++]<>Rt)],lt=mt>>>24,xt=mt>>>16&255,Tt=mt&65535,!(Rt+lt<=O);){if(T===0)break t;T--,w+=M[i++]<>>=Rt,O-=Rt,h.back+=Rt}if(w>>>=lt,O-=lt,h.back+=lt,h.length=Tt,xt===0){h.mode=ct;break}if(xt&32){h.back=-1,h.mode=Q;break}if(xt&64){k.msg="invalid literal/length code",h.mode=ut;break}h.extra=xt&15,h.mode=Ct;case Ct:if(h.extra){for(Jt=h.extra;O>>=h.extra,O-=h.extra,h.back+=h.extra}h.was=h.length,h.mode=gt;case gt:for(;mt=h.distcode[w&(1<>>24,xt=mt>>>16&255,Tt=mt&65535,!(lt<=O);){if(T===0)break t;T--,w+=M[i++]<>Rt)],lt=mt>>>24,xt=mt>>>16&255,Tt=mt&65535,!(Rt+lt<=O);){if(T===0)break t;T--,w+=M[i++]<>>=Rt,O-=Rt,h.back+=Rt}if(w>>>=lt,O-=lt,h.back+=lt,xt&64){k.msg="invalid distance code",h.mode=ut;break}h.offset=Tt,h.extra=xt&15,h.mode=dt;case dt:if(h.extra){for(Jt=h.extra;O>>=h.extra,O-=h.extra,h.back+=h.extra}if(h.offset>h.dmax){k.msg="invalid distance too far back",h.mode=ut;break}h.mode=bt;case bt:if(u===0)break t;if(X=Y-u,h.offset>X){if(X=h.offset-X,X>h.whave&&h.sane){k.msg="invalid distance too far back",h.mode=ut;break}X>h.wnext?(X-=h.wnext,ft=h.wsize-X):ft=h.wnext-X,X>h.length&&(X=h.length),qt=h.window}else qt=q,ft=A-h.offset,X=h.length;X>u&&(X=u),u-=X,h.length-=X;do q[A++]=qt[ft++];while(--X);h.length===0&&(h.mode=st);break;case ct:if(u===0)break t;q[A++]=h.length,u--,h.mode=st;break;case At:if(h.wrap){for(;O<32;){if(T===0)break t;T--,w|=M[i++]<=1&&st[j]===0;j--);if($>j&&($=j),j===0)return g[I++]=20971520,g[I++]=20971520,S.bits=1,0;for(R=1;R0&&(d===m||j!==1))return-1;for(Ct[1]=0,D=1;Dc||d===_&&Z>n)return 1;for(;;){bt=D-et,C[V]vt?(ct=gt[dt+C[V]],At=kt[Ft+C[V]]):(ct=96,At=0),at=1<>et)+ht]=bt<<24|ct<<16|At|0;while(ht!==0);for(at=1<>=1;if(at!==0?(Q&=at-1,Q+=at):Q=0,V++,--st[D]===0){if(D===j)break;D=b[x+C[V]]}if(D>$&&(Q&ot)!==K){for(et===0&&(et=$),nt+=R,G=D-et,W=1<c||d===_&&Z>n)return 1;K=Q&ot,g[K]=$<<24|G<<16|nt-I|0}}return Q!==0&&(g[nt+Q]=D-et<<24|4194304|0),S.bits=$,0}},{"../utils/common":41}],51:[function(e,r,s){r.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(e,r,s){var f=e("../utils/common"),a=4,c=0,n=1,m=2;function o(p){for(var B=p.length;--B>=0;)p[B]=0}var _=0,y=1,v=2,E=3,F=258,l=29,d=256,b=d+1+l,x=30,P=19,g=2*b+1,I=15,C=16,S=7,N=256,D=16,V=17,R=18,j=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],$=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],G=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],et=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],W=512,Z=new Array((b+2)*2);o(Z);var Q=new Array(x*2);o(Q);var at=new Array(W);o(at);var ht=new Array(F-E+1);o(ht);var K=new Array(l);o(K);var ot=new Array(x);o(ot);function nt(p,B,U,H,k){this.static_tree=p,this.extra_bits=B,this.extra_base=U,this.elems=H,this.max_length=k,this.has_stree=p&&p.length}var kt,Ft,vt;function st(p,B){this.dyn_tree=p,this.max_code=0,this.stat_desc=B}function Ct(p){return p<256?at[p]:at[256+(p>>>7)]}function gt(p,B){p.pending_buf[p.pending++]=B&255,p.pending_buf[p.pending++]=B>>>8&255}function dt(p,B,U){p.bi_valid>C-U?(p.bi_buf|=B<>C-p.bi_valid,p.bi_valid+=U-C):(p.bi_buf|=B<>>=1,U<<=1;while(--B>0);return U>>>1}function At(p){p.bi_valid===16?(gt(p,p.bi_buf),p.bi_buf=0,p.bi_valid=0):p.bi_valid>=8&&(p.pending_buf[p.pending++]=p.bi_buf&255,p.bi_buf>>=8,p.bi_valid-=8)}function Mt(p,B){var U=B.dyn_tree,H=B.max_code,k=B.stat_desc.static_tree,z=B.stat_desc.has_stree,h=B.stat_desc.extra_bits,M=B.stat_desc.extra_base,q=B.stat_desc.max_length,i,A,T,u,w,O,J=0;for(u=0;u<=I;u++)p.bl_count[u]=0;for(U[p.heap[p.heap_max]*2+1]=0,i=p.heap_max+1;iq&&(u=q,J++),U[A*2+1]=u,!(A>H)&&(p.bl_count[u]++,w=0,A>=M&&(w=h[A-M]),O=U[A*2],p.opt_len+=O*(u+w),z&&(p.static_len+=O*(k[A*2+1]+w)));if(J!==0){do{for(u=q-1;p.bl_count[u]===0;)u--;p.bl_count[u]--,p.bl_count[u+1]+=2,p.bl_count[q]--,J-=2}while(J>0);for(u=q;u!==0;u--)for(A=p.bl_count[u];A!==0;)T=p.heap[--i],!(T>H)&&(U[T*2+1]!==u&&(p.opt_len+=(u-U[T*2+1])*U[T*2],U[T*2+1]=u),A--)}}function Ut(p,B,U){var H=new Array(I+1),k=0,z,h;for(z=1;z<=I;z++)H[z]=k=k+U[z-1]<<1;for(h=0;h<=B;h++){var M=p[h*2+1];M!==0&&(p[h*2]=ct(H[M]++,M))}}function ut(){var p,B,U,H,k,z=new Array(I+1);for(U=0,H=0;H>=7;H8?gt(p,p.bi_buf):p.bi_valid>0&&(p.pending_buf[p.pending++]=p.bi_buf),p.bi_buf=0,p.bi_valid=0}function Vt(p,B,U,H){he(p),gt(p,U),gt(p,~U),f.arraySet(p.pending_buf,p.window,B,U,p.pending),p.pending+=U}function Bt(p,B,U,H){var k=B*2,z=U*2;return p[k]>1;h>=1;h--)_t(p,U,h);i=z;do h=p.heap[1],p.heap[1]=p.heap[p.heap_len--],_t(p,U,1),M=p.heap[1],p.heap[--p.heap_max]=h,p.heap[--p.heap_max]=M,U[i*2]=U[h*2]+U[M*2],p.depth[i]=(p.depth[h]>=p.depth[M]?p.depth[h]:p.depth[M])+1,U[h*2+1]=U[M*2+1]=i,p.heap[1]=i++,_t(p,U,1);while(p.heap_len>=2);p.heap[--p.heap_max]=p.heap[1],Mt(p,B),Ut(U,q,p.bl_count)}function de(p,B,U){var H,k=-1,z,h=B[1],M=0,q=7,i=4;for(h===0&&(q=138,i=3),B[(U+1)*2+1]=65535,H=0;H<=U;H++)z=h,h=B[(H+1)*2+1],!(++M=3&&p.bl_tree[et[B]*2+1]===0;B--);return p.opt_len+=3*(B+1)+5+5+4,B}function ue(p,B,U,H){var k;for(dt(p,B-257,5),dt(p,U-1,5),dt(p,H-4,4),k=0;k>>=1)if(B&1&&p.dyn_ltree[U*2]!==0)return c;if(p.dyn_ltree[18]!==0||p.dyn_ltree[20]!==0||p.dyn_ltree[26]!==0)return n;for(U=32;U0?(p.strm.data_type===m&&(p.strm.data_type=ne(p)),jt(p,p.l_desc),jt(p,p.d_desc),h=Zt(p),k=p.opt_len+3+7>>>3,z=p.static_len+3+7>>>3,z<=k&&(k=z)):k=z=U+5,U+4<=k&&B!==-1?se(p,B,U,H):p.strategy===a||z===k?(dt(p,(y<<1)+(H?1:0),3),rt(p,Z,Q)):(dt(p,(v<<1)+(H?1:0),3),ue(p,p.l_desc.max_code+1,p.d_desc.max_code+1,h+1),rt(p,p.dyn_ltree,p.dyn_dtree)),Nt(p),H&&he(p)}function pe(p,B,U){return p.pending_buf[p.d_buf+p.last_lit*2]=B>>>8&255,p.pending_buf[p.d_buf+p.last_lit*2+1]=B&255,p.pending_buf[p.l_buf+p.last_lit]=U&255,p.last_lit++,B===0?p.dyn_ltree[U*2]++:(p.matches++,B--,p.dyn_ltree[(ht[U]+d+1)*2]++,p.dyn_dtree[Ct(B)*2]++),p.last_lit===p.lit_bufsize-1}s._tr_init=_e,s._tr_stored_block=se,s._tr_flush_block=Gt,s._tr_tally=pe,s._tr_align=Pt},{"../utils/common":41}],53:[function(e,r,s){function f(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}r.exports=f},{}],54:[function(e,r,s){(function(f){(function(a,c){if(a.setImmediate)return;var n=1,m={},o=!1,_=a.document,y;function v(S){typeof S!="function"&&(S=new Function(""+S));for(var N=new Array(arguments.length-1),D=0;D"u"?typeof f>"u"?this:f:self)}).call(this,typeof Ie<"u"?Ie:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})}(Ae)),Ae.exports}var Je=Ge(),$e=Ke(Je);class Qe{load(t,e){fetch(t).then(function(r){return r.status===200||r.status===0?Promise.resolve(r.blob()):Promise.reject(new Error(r.statusText))}).then($e.loadAsync).then(async function(r){let s=null;const f={};for(let c in r.files){r.files[c];const n=c.split(".").pop();if(n==="ssfb"){if(s!==null){e(null,null,null,new Error("already exist ssfb file"));return}s=c}else if(n==="png"){const m=c.split(".").slice(0,-1).join(".");f[m]=await r.file(c).async("uint8array")}}let a=await r.file(s).async("uint8array");e(s,a,f,null)},function(s){e(null,null,null,s)})}}class qe{static createAnimePackMap(t){const e=t.fbObj.animePacksLength(),r={};for(let s=0;s{e.setupForLoadComplete(r)})}loadSspkg(t){const e=this;new Qe().load(t,(s,f,a,c)=>{if(c!==null)return;let n=new Re(s,f,a,()=>{e.setupForLoadComplete(n)})})}setupForLoadComplete(t){this.projectData=t,this.animePackMap=qe.createAnimePackMap(this.projectData),this.onComplete!==null&&this.onComplete()}loadAnimation(t,e){let r=!1;this.textureContainer==null&&(r=!0,this.textureContainer=new He(this));const s=this.animePackMap[t],f=s.animePack,c=s.animationMap[e];this.currentAnimation=c,this.currentAnimePack=f,this.textureContainer.Setup(t,e);const n=c.labelDataLength();for(let m=0;m>2,c=(n&3)<<4|i>>4,l=p>1?(i&15)<<2|o>>6:64,u=p>2?o&63:64,t.push(a.charAt(s)+a.charAt(c)+a.charAt(l)+a.charAt(u));return t.join(``)},n.decode=function(e){var t,n,r,o,s,c,l,u=0,d=0,f=`data:`;if(e.substr(0,f.length)===f)throw Error(`Invalid base64 input, it looks like a data url.`);e=e.replace(/[^A-Za-z0-9+/=]/g,``);var p=e.length*3/4;if(e.charAt(e.length-1)===a.charAt(64)&&p--,e.charAt(e.length-2)===a.charAt(64)&&p--,p%1!=0)throw Error(`Invalid base64 input, bad content length.`);for(var m=i.uint8array?new Uint8Array(p|0):Array(p|0);u>4,n=(s&15)<<4|c>>2,r=(c&3)<<6|l,m[d++]=t,c!==64&&(m[d++]=n),l!==64&&(m[d++]=r);return m}},{"./support":30,"./utils":32}],2:[function(e,t,n){"use strict";var r=e(`./external`),i=e(`./stream/DataWorker`),a=e(`./stream/Crc32Probe`),o=e(`./stream/DataLengthProbe`);function s(e,t,n,r,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=n,this.compression=r,this.compressedContent=i}s.prototype={getContentWorker:function(){var e=new i(r.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new o(`data_length`)),t=this;return e.on(`end`,function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw Error(`Bug : uncompressed data size mismatch`)}),e},getCompressedWorker:function(){return new i(r.Promise.resolve(this.compressedContent)).withStreamInfo(`compressedSize`,this.compressedSize).withStreamInfo(`uncompressedSize`,this.uncompressedSize).withStreamInfo(`crc32`,this.crc32).withStreamInfo(`compression`,this.compression)}},s.createWorkerFrom=function(e,t,n){return e.pipe(new a).pipe(new o(`uncompressedSize`)).pipe(t.compressWorker(n)).pipe(new o(`compressedSize`)).withStreamInfo(`compression`,t)},t.exports=s},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,t,n){"use strict";var r=e(`./stream/GenericWorker`);n.STORE={magic:`\0\0`,compressWorker:function(){return new r(`STORE compression`)},uncompressWorker:function(){return new r(`STORE decompression`)}},n.DEFLATE=e(`./flate`)},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,t,n){"use strict";var r=e(`./utils`);function i(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t}var a=i();function o(e,t,n,r){var i=a,o=r+n;e^=-1;for(var s=r;s>>8^i[(e^t[s])&255];return e^-1}function s(e,t,n,r){var i=a,o=r+n;e^=-1;for(var s=r;s>>8^i[(e^t.charCodeAt(s))&255];return e^-1}t.exports=function(e,t){return e===void 0||!e.length?0:r.getTypeOf(e)===`string`?s(t|0,e,e.length,0):o(t|0,e,e.length,0)}},{"./utils":32}],5:[function(e,t,n){"use strict";n.base64=!1,n.binary=!1,n.dir=!1,n.createFolders=!0,n.date=null,n.compression=null,n.compressionOptions=null,n.comment=null,n.unixPermissions=null,n.dosPermissions=null},{}],6:[function(e,t,n){"use strict";var r=null;r=typeof Promise<`u`?Promise:e(`lie`),t.exports={Promise:r}},{lie:37}],7:[function(e,t,n){"use strict";var r=typeof Uint8Array<`u`&&typeof Uint16Array<`u`&&typeof Uint32Array<`u`,i=e(`pako`),a=e(`./utils`),o=e(`./stream/GenericWorker`),s=r?`uint8array`:`array`;n.magic=`\b\0`;function c(e,t){o.call(this,`FlateWorker/`+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}a.inherits(c,o),c.prototype.processChunk=function(e){this.meta=e.meta,this._pako===null&&this._createPako(),this._pako.push(a.transformTo(s,e.data),!1)},c.prototype.flush=function(){o.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},c.prototype.cleanUp=function(){o.prototype.cleanUp.call(this),this._pako=null},c.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},n.compressWorker=function(e){return new c(`Deflate`,e)},n.uncompressWorker=function(){return new c(`Inflate`,{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,t,n){"use strict";var r=e(`../utils`),i=e(`../stream/GenericWorker`),a=e(`../utf8`),o=e(`../crc32`),s=e(`../signature`),c=function(e,t){var n=``,r;for(r=0;r>>=8;return n},l=function(e,t){var n=e;return e||(n=t?16893:33204),(n&65535)<<16},u=function(e){return(e||0)&63},d=function(e,t,n,i,d,f){var p=e.file,m=e.compression,h=f!==a.utf8encode,g=r.transformTo(`string`,f(p.name)),_=r.transformTo(`string`,a.utf8encode(p.name)),v=p.comment,y=r.transformTo(`string`,f(v)),b=r.transformTo(`string`,a.utf8encode(v)),x=_.length!==p.name.length,S=b.length!==v.length,C,w,T=``,E=``,D=``,O=p.dir,k=p.date,A={crc32:0,compressedSize:0,uncompressedSize:0};(!t||n)&&(A.crc32=e.crc32,A.compressedSize=e.compressedSize,A.uncompressedSize=e.uncompressedSize);var ee=0;t&&(ee|=8),!h&&(x||S)&&(ee|=2048);var j=0,M=0;O&&(j|=16),d===`UNIX`?(M=798,j|=l(p.unixPermissions,O)):(M=20,j|=u(p.dosPermissions,O)),C=k.getUTCHours(),C<<=6,C|=k.getUTCMinutes(),C<<=5,C|=k.getUTCSeconds()/2,w=k.getUTCFullYear()-1980,w<<=4,w|=k.getUTCMonth()+1,w<<=5,w|=k.getUTCDate(),x&&(E=c(1,1)+c(o(g),4)+_,T+=`up`+c(E.length,2)+E),S&&(D=c(1,1)+c(o(y),4)+b,T+=`uc`+c(D.length,2)+D);var N=``;return N+=` +\0`,N+=c(ee,2),N+=m.magic,N+=c(C,2),N+=c(w,2),N+=c(A.crc32,4),N+=c(A.compressedSize,4),N+=c(A.uncompressedSize,4),N+=c(g.length,2),N+=c(T.length,2),{fileRecord:s.LOCAL_FILE_HEADER+N+g+T,dirRecord:s.CENTRAL_FILE_HEADER+c(M,2)+N+c(y.length,2)+`\0\0\0\0`+c(j,4)+c(i,4)+g+T+y}},f=function(e,t,n,i,a){var o=``,l=r.transformTo(`string`,a(i));return o=s.CENTRAL_DIRECTORY_END+`\0\0\0\0`+c(e,2)+c(e,2)+c(t,4)+c(n,4)+c(l.length,2)+l,o},p=function(e){var t=``;return t=s.DATA_DESCRIPTOR+c(e.crc32,4)+c(e.compressedSize,4)+c(e.uncompressedSize,4),t};function m(e,t,n,r){i.call(this,`ZipFileWorker`),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=n,this.encodeFileName=r,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}r.inherits(m,i),m.prototype.push=function(e){var t=e.meta.percent||0,n=this.entriesCount,r=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:n?(t+100*(n-r-1))/n:100}}))},m.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var n=d(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:n.fileRecord,meta:{percent:0}})}else this.accumulate=!0},m.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,n=d(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(n.dirRecord),t)this.push({data:p(e),meta:{percent:100}});else for(this.push({data:n.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},m.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t0?e.substring(0,t):``},h=function(e){return e.slice(-1)!==`/`&&(e+=`/`),e},g=function(e,t){return t=t===void 0?s.createFolders:t,e=h(e),this.files[e]||p.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function _(e){return Object.prototype.toString.call(e)===`[object RegExp]`}t.exports={load:function(){throw Error(`This method has been removed in JSZip 3.0, please check the upgrade guide.`)},forEach:function(e){var t,n,r;for(t in this.files)r=this.files[t],n=t.slice(this.root.length,t.length),n&&t.slice(0,this.root.length)===this.root&&e(n,r)},filter:function(e){var t=[];return this.forEach(function(n,r){e(n,r)&&t.push(r)}),t},file:function(e,t,n){if(arguments.length===1)if(_(e)){var r=e;return this.filter(function(e,t){return!t.dir&&r.test(e)})}else{var i=this.files[this.root+e];return i&&!i.dir?i:null}else e=this.root+e,p.call(this,e,t,n);return this},folder:function(e){if(!e)return this;if(_(e))return this.filter(function(t,n){return n.dir&&e.test(t)});var t=this.root+e,n=g.call(this,t),r=this.clone();return r.root=n.name,r},remove:function(e){e=this.root+e;var t=this.files[e];if(t||=(e.slice(-1)!==`/`&&(e+=`/`),this.files[e]),t&&!t.dir)delete this.files[e];else for(var n=this.filter(function(t,n){return n.name.slice(0,e.length)===e}),r=0;r=0;--a)if(this.data[a]===t&&this.data[a+1]===n&&this.data[a+2]===r&&this.data[a+3]===i)return a-this.zero;return-1},a.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1),r=e.charCodeAt(2),i=e.charCodeAt(3),a=this.readData(4);return t===a[0]&&n===a[1]&&r===a[2]&&i===a[3]},a.prototype.readData=function(e){if(this.checkOffset(e),e===0)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=a},{"../utils":32,"./DataReader":18}],18:[function(e,t,n){"use strict";var r=e(`../utils`);function i(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}i.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length=this.index;n--)t=(t<<8)+this.byteAt(n);return this.index+=e,t},readString:function(e){return r.transformTo(`string`,this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC((e>>25&127)+1980,(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(e&31)<<1))}},t.exports=i},{"../utils":32}],19:[function(e,t,n){"use strict";var r=e(`./Uint8ArrayReader`),i=e(`../utils`);function a(e){r.call(this,e)}i.inherits(a,r),a.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=a},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,t,n){"use strict";var r=e(`./DataReader`),i=e(`../utils`);function a(e){r.call(this,e)}i.inherits(a,r),a.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},a.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},a.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},a.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=a},{"../utils":32,"./DataReader":18}],21:[function(e,t,n){"use strict";var r=e(`./ArrayReader`),i=e(`../utils`);function a(e){r.call(this,e)}i.inherits(a,r),a.prototype.readData=function(e){if(this.checkOffset(e),e===0)return new Uint8Array;var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=a},{"../utils":32,"./ArrayReader":17}],22:[function(e,t,n){"use strict";var r=e(`../utils`),i=e(`../support`),a=e(`./ArrayReader`),o=e(`./StringReader`),s=e(`./NodeBufferReader`),c=e(`./Uint8ArrayReader`);t.exports=function(e){var t=r.getTypeOf(e);return r.checkSupport(t),t===`string`&&!i.uint8array?new o(e):t===`nodebuffer`?new s(e):i.uint8array?new c(r.transformTo(`uint8array`,e)):new a(r.transformTo(`array`,e))}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,t,n){"use strict";n.LOCAL_FILE_HEADER=`PK`,n.CENTRAL_FILE_HEADER=`PK`,n.CENTRAL_DIRECTORY_END=`PK`,n.ZIP64_CENTRAL_DIRECTORY_LOCATOR=`PK\x07`,n.ZIP64_CENTRAL_DIRECTORY_END=`PK`,n.DATA_DESCRIPTOR=`PK\x07\b`},{}],24:[function(e,t,n){"use strict";var r=e(`./GenericWorker`),i=e(`../utils`);function a(e){r.call(this,`ConvertWorker to `+e),this.destType=e}i.inherits(a,r),a.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=a},{"../utils":32,"./GenericWorker":28}],25:[function(e,t,n){"use strict";var r=e(`./GenericWorker`),i=e(`../crc32`),a=e(`../utils`);function o(){r.call(this,`Crc32Probe`),this.withStreamInfo(`crc32`,0)}a.inherits(o,r),o.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=o},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,t,n){"use strict";var r=e(`../utils`),i=e(`./GenericWorker`);function a(e){i.call(this,`DataLengthProbe for `+e),this.propName=e,this.withStreamInfo(e,0)}r.inherits(a,i),a.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=a},{"../utils":32,"./GenericWorker":28}],27:[function(e,t,n){"use strict";var r=e(`../utils`),i=e(`./GenericWorker`),a=16*1024;function o(e){i.call(this,`DataWorker`);var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=``,this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=r.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}r.inherits(o,i),o.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},o.prototype.resume=function(){return i.prototype.resume.call(this)?(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,r.delay(this._tickAndRepeat,[],this)),!0):!1},o.prototype._tickAndRepeat=function(){this._tickScheduled=!1,!(this.isPaused||this.isFinished)&&(this._tick(),this.isFinished||(r.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},o.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=a,t=null,n=Math.min(this.max,this.index+e);if(this.index>=this.max)return this.end();switch(this.type){case`string`:t=this.data.substring(this.index,n);break;case`uint8array`:t=this.data.subarray(this.index,n);break;case`array`:case`nodebuffer`:t=this.data.slice(this.index,n);break}return this.index=n,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=o},{"../utils":32,"./GenericWorker":28}],28:[function(e,t,n){"use strict";function r(e){this.name=e||`default`,this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}r.prototype={push:function(e){this.emit(`data`,e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(`end`),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(`error`,e)}return!0},error:function(e){return this.isFinished?!1:(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(`error`,e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var n=0;n `+e:e}},t.exports=r},{}],29:[function(e,t,n){"use strict";var r=e(`../utils`),i=e(`./ConvertWorker`),a=e(`./GenericWorker`),o=e(`../base64`),s=e(`../support`),c=e(`../external`),l=null;if(s.nodestream)try{l=e(`../nodejs/NodejsStreamOutputAdapter`)}catch{}function u(e,t,n){switch(e){case`blob`:return r.newBlob(r.transformTo(`arraybuffer`,t),n);case`base64`:return o.encode(t);default:return r.transformTo(e,t)}}function d(e,t){var n,r=0,i=null,a=0;for(n=0;n`u`)n.blob=!1;else{var r=new ArrayBuffer(0);try{n.blob=new Blob([r],{type:`application/zip`}).size===0}catch{try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);i.append(r),n.blob=i.getBlob(`application/zip`).size===0}catch{n.blob=!1}}}try{n.nodestream=!!e(`readable-stream`).Readable}catch{n.nodestream=!1}},{"readable-stream":16}],31:[function(e,t,n){"use strict";for(var r=e(`./utils`),i=e(`./support`),a=e(`./nodejsUtils`),o=e(`./stream/GenericWorker`),s=Array(256),c=0;c<256;c++)s[c]=c>=252?6:c>=248?5:c>=240?4:c>=224?3:c>=192?2:1;s[254]=s[254]=1;var l=function(e){var t,n,r,a,o,s=e.length,c=0;for(a=0;a>>6,t[o++]=128|n&63):n<65536?(t[o++]=224|n>>>12,t[o++]=128|n>>>6&63,t[o++]=128|n&63):(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63,t[o++]=128|n>>>6&63,t[o++]=128|n&63);return t},u=function(e,t){var n;for(t||=e.length,t>e.length&&(t=e.length),n=t-1;n>=0&&(e[n]&192)==128;)n--;return n<0||n===0?t:n+s[e[n]]>t?n:t},d=function(e){var t,n,i,a,o=e.length,c=Array(o*2);for(n=0,t=0;t4){c[n++]=65533,t+=a-1;continue}for(i&=a===2?31:a===3?15:7;a>1&&t1){c[n++]=65533;continue}i<65536?c[n++]=i:(i-=65536,c[n++]=55296|i>>10&1023,c[n++]=56320|i&1023)}return c.length!==n&&(c.subarray?c=c.subarray(0,n):c.length=n),r.applyFromCharCode(c)};n.utf8encode=function(e){return i.nodebuffer?a.newBufferFrom(e,`utf-8`):l(e)},n.utf8decode=function(e){return i.nodebuffer?r.transformTo(`nodebuffer`,e).toString(`utf-8`):(e=r.transformTo(i.uint8array?`uint8array`:`array`,e),d(e))};function f(){o.call(this,`utf-8 decode`),this.leftOver=null}r.inherits(f,o),f.prototype.processChunk=function(e){var t=r.transformTo(i.uint8array?`uint8array`:`array`,e.data);if(this.leftOver&&this.leftOver.length){if(i.uint8array){var a=t;t=new Uint8Array(a.length+this.leftOver.length),t.set(this.leftOver,0),t.set(a,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var o=u(t),s=t;o!==t.length&&(i.uint8array?(s=t.subarray(0,o),this.leftOver=t.subarray(o,t.length)):(s=t.slice(0,o),this.leftOver=t.slice(o,t.length))),this.push({data:n.utf8decode(s),meta:e.meta})},f.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:n.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},n.Utf8DecodeWorker=f;function p(){o.call(this,`utf-8 encode`)}r.inherits(p,o),p.prototype.processChunk=function(e){this.push({data:n.utf8encode(e.data),meta:e.meta})},n.Utf8EncodeWorker=p},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,t,n){"use strict";var r=e(`./support`),i=e(`./base64`),a=e(`./nodejsUtils`),o=e(`./external`);e(`setimmediate`);function s(e){var t=null;return t=r.uint8array?new Uint8Array(e.length):Array(e.length),l(e,t)}n.newBlob=function(e,t){n.checkSupport(`blob`);try{return new Blob([e],{type:t})}catch{try{var r=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return r.append(e),r.getBlob(t)}catch{throw Error(`Bug : can't construct the Blob.`)}}};function c(e){return e}function l(e,t){for(var n=0;n1;)try{return u.stringifyByChunk(e,r,t)}catch{t=Math.floor(t/2)}return u.stringifyByChar(e)}n.applyFromCharCode=d;function f(e,t){for(var n=0;n1)throw Error(`Multi-volumes zip are not supported`)},readLocalFiles:function(){var e,t;for(e=0;e0)this.isSignature(t,a.CENTRAL_FILE_HEADER)||(this.reader.zero=r);else if(r<0)throw Error(`Corrupted zip: missing `+Math.abs(r)+` bytes.`)},prepareReader:function(e){this.reader=r(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=c},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(e,t,n){"use strict";var r=e(`./reader/readerFor`),i=e(`./utils`),a=e(`./compressedObject`),o=e(`./crc32`),s=e(`./utf8`),c=e(`./compressions`),l=e(`./support`),u=0,d=3,f=function(e){for(var t in c)if(Object.prototype.hasOwnProperty.call(c,t)&&c[t].magic===e)return c[t];return null};function p(e,t){this.options=e,this.loadOptions=t}p.prototype={isEncrypted:function(){return(this.bitFlag&1)==1},useUTF8:function(){return(this.bitFlag&2048)==2048},readLocalPart:function(e){var t,n;if(e.skip(22),this.fileNameLength=e.readInt(2),n=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(n),this.compressedSize===-1||this.uncompressedSize===-1)throw Error(`Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)`);if(t=f(this.compressionMethod),t===null)throw Error(`Corrupted zip : compression `+i.pretty(this.compressionMethod)+` unknown (inner file : `+i.transformTo(`string`,this.fileName)+`)`);this.decompressed=new a(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw Error(`Encrypted zip are not supported`);e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(this.externalFileAttributes&16),e===u&&(this.dosPermissions=this.externalFileAttributes&63),e===d&&(this.unixPermissions=this.externalFileAttributes>>16&65535),!this.dir&&this.fileNameStr.slice(-1)===`/`&&(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=r(this.extraFields[1].value);this.uncompressedSize===i.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===i.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===i.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===i.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t=e.index+this.extraFieldsLength,n,r,i;for(this.extraFields||={};e.index+40?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg=``,this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var n=r.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==d)throw Error(o[n]);if(t.header&&r.deflateSetHeader(this.strm,t.header),t.dictionary){var l=typeof t.dictionary==`string`?a.string2buf(t.dictionary):c.call(t.dictionary)===`[object ArrayBuffer]`?new Uint8Array(t.dictionary):t.dictionary;if(n=r.deflateSetDictionary(this.strm,l),n!==d)throw Error(o[n]);this._dict_set=!0}}_.prototype.push=function(e,t){var n=this.strm,o=this.options.chunkSize,s,m;if(this.ended)return!1;m=t===~~t?t:t===!0?u:l,typeof e==`string`?n.input=a.string2buf(e):c.call(e)===`[object ArrayBuffer]`?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new i.Buf8(o),n.next_out=0,n.avail_out=o),s=r.deflate(n,m),s!==f&&s!==d)return this.onEnd(s),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(m===u||m===p))&&(this.options.to===`string`?this.onData(a.buf2binstring(i.shrinkBuf(n.output,n.next_out))):this.onData(i.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&s!==f);return m===u?(s=r.deflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===d):m===p?(this.onEnd(d),n.avail_out=0,!0):!0},_.prototype.onData=function(e){this.chunks.push(e)},_.prototype.onEnd=function(e){e===d&&(this.options.to===`string`?this.result=this.chunks.join(``):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function v(e,t){var n=new _(t);if(n.push(e,!0),n.err)throw n.msg||o[n.err];return n.result}function y(e,t){return t||={},t.raw=!0,v(e,t)}function b(e,t){return t||={},t.gzip=!0,v(e,t)}n.Deflate=_,n.deflate=v,n.deflateRaw=y,n.gzip=b},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(e,t,n){"use strict";var r=e(`./zlib/inflate`),i=e(`./utils/common`),a=e(`./utils/strings`),o=e(`./zlib/constants`),s=e(`./zlib/messages`),c=e(`./zlib/zstream`),l=e(`./zlib/gzheader`),u=Object.prototype.toString;function d(e){if(!(this instanceof d))return new d(e);this.options=i.assign({chunkSize:16384,windowBits:0,to:``},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg=``,this.ended=!1,this.chunks=[],this.strm=new c,this.strm.avail_out=0;var n=r.inflateInit2(this.strm,t.windowBits);if(n!==o.Z_OK)throw Error(s[n]);this.header=new l,r.inflateGetHeader(this.strm,this.header)}d.prototype.push=function(e,t){var n=this.strm,s=this.options.chunkSize,c=this.options.dictionary,l,d,f,p,m,h,g=!1;if(this.ended)return!1;d=t===~~t?t:t===!0?o.Z_FINISH:o.Z_NO_FLUSH,typeof e==`string`?n.input=a.binstring2buf(e):u.call(e)===`[object ArrayBuffer]`?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new i.Buf8(s),n.next_out=0,n.avail_out=s),l=r.inflate(n,o.Z_NO_FLUSH),l===o.Z_NEED_DICT&&c&&(h=typeof c==`string`?a.string2buf(c):u.call(c)===`[object ArrayBuffer]`?new Uint8Array(c):c,l=r.inflateSetDictionary(this.strm,h)),l===o.Z_BUF_ERROR&&g===!0&&(l=o.Z_OK,g=!1),l!==o.Z_STREAM_END&&l!==o.Z_OK)return this.onEnd(l),this.ended=!0,!1;n.next_out&&(n.avail_out===0||l===o.Z_STREAM_END||n.avail_in===0&&(d===o.Z_FINISH||d===o.Z_SYNC_FLUSH))&&(this.options.to===`string`?(f=a.utf8border(n.output,n.next_out),p=n.next_out-f,m=a.buf2string(n.output,f),n.next_out=p,n.avail_out=s-p,p&&i.arraySet(n.output,n.output,f,p,0),this.onData(m)):this.onData(i.shrinkBuf(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(g=!0)}while((n.avail_in>0||n.avail_out===0)&&l!==o.Z_STREAM_END);return l===o.Z_STREAM_END&&(d=o.Z_FINISH),d===o.Z_FINISH?(l=r.inflateEnd(this.strm),this.onEnd(l),this.ended=!0,l===o.Z_OK):d===o.Z_SYNC_FLUSH?(this.onEnd(o.Z_OK),n.avail_out=0,!0):!0},d.prototype.onData=function(e){this.chunks.push(e)},d.prototype.onEnd=function(e){e===o.Z_OK&&(this.options.to===`string`?this.result=this.chunks.join(``):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function f(e,t){var n=new d(t);if(n.push(e,!0),n.err)throw n.msg||s[n.err];return n.result}function p(e,t){return t||={},t.raw=!0,f(e,t)}n.Inflate=d,n.inflate=f,n.inflateRaw=p,n.ungzip=f},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(e,t,n){"use strict";var r=typeof Uint8Array<`u`&&typeof Uint16Array<`u`&&typeof Int32Array<`u`;n.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var n=t.shift();if(n){if(typeof n!=`object`)throw TypeError(n+`must be non-object`);for(var r in n)n.hasOwnProperty(r)&&(e[r]=n[r])}}return e},n.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,n,r,i){if(t.subarray&&e.subarray){e.set(t.subarray(n,n+r),i);return}for(var a=0;a=252?6:s>=248?5:s>=240?4:s>=224?3:s>=192?2:1;o[254]=o[254]=1,n.string2buf=function(e){var t,n,i,a,o,s=e.length,c=0;for(a=0;a>>6,t[o++]=128|n&63):n<65536?(t[o++]=224|n>>>12,t[o++]=128|n>>>6&63,t[o++]=128|n&63):(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63,t[o++]=128|n>>>6&63,t[o++]=128|n&63);return t};function c(e,t){if(t<65537&&(e.subarray&&a||!e.subarray&&i))return String.fromCharCode.apply(null,r.shrinkBuf(e,t));for(var n=``,o=0;o4){l[r++]=65533,n+=a-1;continue}for(i&=a===2?31:a===3?15:7;a>1&&n1){l[r++]=65533;continue}i<65536?l[r++]=i:(i-=65536,l[r++]=55296|i>>10&1023,l[r++]=56320|i&1023)}return c(l,r)},n.utf8border=function(e,t){var n;for(t||=e.length,t>e.length&&(t=e.length),n=t-1;n>=0&&(e[n]&192)==128;)n--;return n<0||n===0?t:n+o[e[n]]>t?n:t}},{"./common":41}],43:[function(e,t,n){"use strict";function r(e,t,n,r){for(var i=e&65535|0,a=e>>>16&65535|0,o=0;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0}t.exports=r},{}],44:[function(e,t,n){"use strict";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,t,n){"use strict";function r(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t}var i=r();function a(e,t,n,r){var a=i,o=r+n;e^=-1;for(var s=r;s>>8^a[(e^t[s])&255];return e^-1}t.exports=a},{}],46:[function(e,t,n){"use strict";var r=e(`../utils/common`),i=e(`./trees`),a=e(`./adler32`),o=e(`./crc32`),s=e(`./messages`),c=0,l=1,u=3,d=4,f=5,p=0,m=1,h=-2,g=-3,_=-5,v=-1,y=1,b=2,x=3,S=4,C=0,w=2,T=8,E=9,D=15,O=8,k=286,A=30,ee=19,j=2*k+1,M=15,N=3,P=258,F=P+N+1,te=32,I=42,ne=69,re=73,ie=91,ae=103,oe=113,L=666,R=1,se=2,ce=3,le=4,ue=3;function de(e,t){return e.msg=s[t],t}function z(e){return(e<<1)-(e>4?9:0)}function fe(e){for(var t=e.length;--t>=0;)e[t]=0}function pe(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(r.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))}function B(e,t){i._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,pe(e.strm)}function V(e,t){e.pending_buf[e.pending++]=t}function H(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function me(e,t,n,i){var s=e.avail_in;return s>i&&(s=i),s===0?0:(e.avail_in-=s,r.arraySet(t,e.input,e.next_in,s,n),e.state.wrap===1?e.adler=a(e.adler,t,s,n):e.state.wrap===2&&(e.adler=o(e.adler,t,s,n)),e.next_in+=s,e.total_in+=s,s)}function U(e,t){var n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match,c=e.strstart>e.w_size-F?e.strstart-(e.w_size-F):0,l=e.window,u=e.w_mask,d=e.prev,f=e.strstart+P,p=l[r+o-1],m=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do{if(i=t,l[i+o]!==m||l[i+o-1]!==p||l[i]!==l[r]||l[++i]!==l[r+1])continue;r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&ro){if(e.match_start=t,o=a,a>=s)break;p=l[r+o-1],m=l[r+o]}}while((t=d[t&u])>c&&--n!==0);return o<=e.lookahead?o:e.lookahead}function W(e){var t=e.w_size,n,i,a,o,s;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-F)){r.arraySet(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,i=e.hash_size,n=i;do a=e.head[--n],e.head[n]=a>=t?a-t:0;while(--i);i=t,n=i;do a=e.prev[--n],e.prev[n]=a>=t?a-t:0;while(--i);o+=t}if(e.strm.avail_in===0)break;if(i=me(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=i,e.lookahead+e.insert>=N)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(W(e),e.lookahead===0&&t===c)return R;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((e.strstart===0||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,B(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-F&&(B(e,!1),e.strm.avail_out===0))return R}return e.insert=0,t===d?(B(e,!0),e.strm.avail_out===0?ce:le):(e.strstart>e.block_start&&(B(e,!1),e.strm.avail_out),R)}function K(e,t){for(var n,r;;){if(e.lookahead=N&&(e.ins_h=(e.ins_h<=N)if(r=i._tr_tally(e,e.strstart-e.match_start,e.match_length-N),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=N){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<=N&&(e.ins_h=(e.ins_h<4096)&&(e.match_length=N-1)),e.prev_length>=N&&e.match_length<=e.prev_length){a=e.strstart+e.lookahead-N,r=i._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-N),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=a&&(e.ins_h=(e.ins_h<=N&&e.strstart>0&&(a=e.strstart-1,r=s[a],r===s[++a]&&r===s[++a]&&r===s[++a])){o=e.strstart+P;do;while(r===s[++a]&&r===s[++a]&&r===s[++a]&&r===s[++a]&&r===s[++a]&&r===s[++a]&&r===s[++a]&&r===s[++a]&&ae.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=N?(n=i._tr_tally(e,1,e.match_length-N),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=i._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(B(e,!1),e.strm.avail_out===0))return R}return e.insert=0,t===d?(B(e,!0),e.strm.avail_out===0?ce:le):e.last_lit&&(B(e,!1),e.strm.avail_out===0)?R:se}function J(e,t){for(var n;;){if(e.lookahead===0&&(W(e),e.lookahead===0)){if(t===c)return R;break}if(e.match_length=0,n=i._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(B(e,!1),e.strm.avail_out===0))return R}return e.insert=0,t===d?(B(e,!0),e.strm.avail_out===0?ce:le):e.last_lit&&(B(e,!1),e.strm.avail_out===0)?R:se}function Y(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}var ge=[new Y(0,0,0,0,G),new Y(4,4,8,4,K),new Y(4,5,16,8,K),new Y(4,6,32,32,K),new Y(4,4,16,16,q),new Y(8,16,32,32,q),new Y(8,16,128,128,q),new Y(8,32,128,256,q),new Y(32,128,258,1024,q),new Y(32,258,258,4096,q)];function _e(e){e.window_size=2*e.w_size,fe(e.head),e.max_lazy_match=ge[e.level].max_lazy,e.good_match=ge[e.level].good_length,e.nice_match=ge[e.level].nice_length,e.max_chain_length=ge[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=N-1,e.match_available=0,e.ins_h=0}function ve(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=T,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new r.Buf16(j*2),this.dyn_dtree=new r.Buf16((2*A+1)*2),this.bl_tree=new r.Buf16((2*ee+1)*2),fe(this.dyn_ltree),fe(this.dyn_dtree),fe(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new r.Buf16(M+1),this.heap=new r.Buf16(2*k+1),fe(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new r.Buf16(2*k+1),fe(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function ye(e){var t;return!e||!e.state?de(e,h):(e.total_in=e.total_out=0,e.data_type=w,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?I:oe,e.adler=t.wrap===2?0:1,t.last_flush=c,i._tr_init(t),p)}function X(e){var t=ye(e);return t===p&&_e(e.state),t}function Z(e,t){return!e||!e.state||e.state.wrap!==2?h:(e.state.gzhead=t,p)}function Q(e,t,n,i,a,o){if(!e)return h;var s=1;if(t===v&&(t=6),i<0?(s=0,i=-i):i>15&&(s=2,i-=16),a<1||a>E||n!==T||i<8||i>15||t<0||t>9||o<0||o>S)return de(e,h);i===8&&(i=9);var c=new ve;return e.state=c,c.strm=e,c.wrap=s,c.gzhead=null,c.w_bits=i,c.w_size=1<f||t<0)return e?de(e,h):h;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===L&&t!==d)return de(e,e.avail_out===0?_:h);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===I)if(r.wrap===2)e.adler=0,V(r,31),V(r,139),V(r,8),r.gzhead?(V(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),V(r,r.gzhead.time&255),V(r,r.gzhead.time>>8&255),V(r,r.gzhead.time>>16&255),V(r,r.gzhead.time>>24&255),V(r,r.level===9?2:r.strategy>=b||r.level<2?4:0),V(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(V(r,r.gzhead.extra.length&255),V(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=o(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=ne):(V(r,0),V(r,0),V(r,0),V(r,0),V(r,0),V(r,r.level===9?2:r.strategy>=b||r.level<2?4:0),V(r,ue),r.status=oe);else{var g=T+(r.w_bits-8<<4)<<8,v=-1;v=r.strategy>=b||r.level<2?0:r.level<6?1:r.level===6?2:3,g|=v<<6,r.strstart!==0&&(g|=te),g+=31-g%31,r.status=oe,H(r,g),r.strstart!==0&&(H(r,e.adler>>>16),H(r,e.adler&65535)),e.adler=1}if(r.status===ne)if(r.gzhead.extra){for(a=r.pending;r.gzindex<(r.gzhead.extra.length&65535)&&!(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(e.adler=o(e.adler,r.pending_buf,r.pending-a,a)),pe(e),a=r.pending,r.pending===r.pending_buf_size));)V(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>a&&(e.adler=o(e.adler,r.pending_buf,r.pending-a,a)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=re)}else r.status=re;if(r.status===re)if(r.gzhead.name){a=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(e.adler=o(e.adler,r.pending_buf,r.pending-a,a)),pe(e),a=r.pending,r.pending===r.pending_buf_size)){s=1;break}s=r.gzindexa&&(e.adler=o(e.adler,r.pending_buf,r.pending-a,a)),s===0&&(r.gzindex=0,r.status=ie)}else r.status=ie;if(r.status===ie)if(r.gzhead.comment){a=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(e.adler=o(e.adler,r.pending_buf,r.pending-a,a)),pe(e),a=r.pending,r.pending===r.pending_buf_size)){s=1;break}s=r.gzindexa&&(e.adler=o(e.adler,r.pending_buf,r.pending-a,a)),s===0&&(r.status=ae)}else r.status=ae;if(r.status===ae&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&pe(e),r.pending+2<=r.pending_buf_size&&(V(r,e.adler&255),V(r,e.adler>>8&255),e.adler=0,r.status=oe)):r.status=oe),r.pending!==0){if(pe(e),e.avail_out===0)return r.last_flush=-1,p}else if(e.avail_in===0&&z(t)<=z(n)&&t!==d)return de(e,_);if(r.status===L&&e.avail_in!==0)return de(e,_);if(e.avail_in!==0||r.lookahead!==0||t!==c&&r.status!==L){var y=r.strategy===b?J(r,t):r.strategy===x?he(r,t):ge[r.level].func(r,t);if((y===ce||y===le)&&(r.status=L),y===R||y===ce)return e.avail_out===0&&(r.last_flush=-1),p;if(y===se&&(t===l?i._tr_align(r):t!==f&&(i._tr_stored_block(r,0,0,!1),t===u&&(fe(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),pe(e),e.avail_out===0))return r.last_flush=-1,p}return t===d?r.wrap<=0?m:(r.wrap===2?(V(r,e.adler&255),V(r,e.adler>>8&255),V(r,e.adler>>16&255),V(r,e.adler>>24&255),V(r,e.total_in&255),V(r,e.total_in>>8&255),V(r,e.total_in>>16&255),V(r,e.total_in>>24&255)):(H(r,e.adler>>>16),H(r,e.adler&65535)),pe(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending===0?m:p):p}function Se(e){var t;return!e||!e.state?h:(t=e.state.status,t!==I&&t!==ne&&t!==re&&t!==ie&&t!==ae&&t!==oe&&t!==L?de(e,h):(e.state=null,t===oe?de(e,g):p))}function Ce(e,t){var n=t.length,i,o,s,c,l,u,d,f;if(!e||!e.state||(i=e.state,c=i.wrap,c===2||c===1&&i.status!==I||i.lookahead))return h;for(c===1&&(e.adler=a(e.adler,t,n,0)),i.wrap=0,n>=i.w_size&&(c===0&&(fe(i.head),i.strstart=0,i.block_start=0,i.insert=0),f=new r.Buf8(i.w_size),r.arraySet(f,t,n-i.w_size,i.w_size,0),t=f,n=i.w_size),l=e.avail_in,u=e.next_in,d=e.input,e.avail_in=n,e.next_in=0,e.input=t,W(i);i.lookahead>=N;){o=i.strstart,s=i.lookahead-(N-1);do i.ins_h=(i.ins_h<>>24,h>>>=S,g-=S,S=x>>>16&255,S===0)O[s++]=x&65535;else if(S&16){C=x&65535,S&=15,S&&(g>>=S,g-=S),g<15&&(h+=D[a++]<>>24,h>>>=S,g-=S,S=x>>>16&255,S&16){if(w=x&65535,S&=15,gu){e.msg=`invalid distance too far back`,n.mode=r;break top}if(h>>>=S,g-=S,S=s-c,w>S){if(S=w-S,S>f&&n.sane){e.msg=`invalid distance too far back`,n.mode=r;break top}if(T=0,E=m,p===0){if(T+=d-S,S2;)O[s++]=E[T++],O[s++]=E[T++],O[s++]=E[T++],C-=3;C&&(O[s++]=E[T++],C>1&&(O[s++]=E[T++]))}else{T=s-w;do O[s++]=O[T++],O[s++]=O[T++],O[s++]=O[T++],C-=3;while(C>2);C&&(O[s++]=O[T++],C>1&&(O[s++]=O[T++]))}}else if(S&64){e.msg=`invalid distance code`,n.mode=r;break top}else{x=v[(x&65535)+(h&(1<>3,a-=C,g-=C<<3,h&=(1<>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function U(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function W(e){var t;return!e||!e.state?_:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=``,t.wrap&&(e.adler=t.wrap&1),t.mode=S,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new r.Buf32(B),t.distcode=t.distdyn=new r.Buf32(V),t.sane=1,t.back=-1,m)}function G(e){var t;return!e||!e.state?_:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,W(e))}function K(e,t){var n,r;return!e||!e.state||(r=e.state,t<0?(n=0,t=-t):(n=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?_:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,G(e))}function q(e,t){var n,r;return e?(r=new U,e.state=r,r.window=null,n=K(e,t),n!==m&&(e.state=null),n):_}function he(e){return q(e,H)}var J=!0,Y,ge;function _e(e){if(J){var t;for(Y=new r.Buf32(512),ge=new r.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(s(l,e.lens,0,288,Y,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;s(u,e.lens,0,32,ge,0,e.work,{bits:5}),J=!1}e.lencode=Y,e.lenbits=9,e.distcode=ge,e.distbits=5}function ve(e,t,n,i){var a,o=e.state;return o.window===null&&(o.wsize=1<=o.wsize?(r.arraySet(o.window,t,n-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(a=o.wsize-o.wnext,a>i&&(a=i),r.arraySet(o.window,t,n-i,a,o.wnext),i-=a,i?(r.arraySet(o.window,t,n-i,i,0),o.wnext=i,o.whave=o.wsize):(o.wnext+=a,o.wnext===o.wsize&&(o.wnext=0),o.whave>>8&255,n.check=a(n.check,Te,2,0),K=0,q=0,n.mode=C;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((K&255)<<8)+(K>>8))%31){e.msg=`incorrect header check`,n.mode=z;break}if((K&15)!==x){e.msg=`unknown compression method`,n.mode=z;break}if(K>>>=4,q-=4,$=(K&15)+8,n.wbits===0)n.wbits=$;else if($>n.wbits){e.msg=`invalid window size`,n.mode=z;break}n.dmax=1<<$,e.adler=n.check=1,n.mode=K&512?ee:M,K=0,q=0;break;case C:for(;q<16;){if(W===0)break inf_leave;W--,K+=B[H++]<>8&1),n.flags&512&&(Te[0]=K&255,Te[1]=K>>>8&255,n.check=a(n.check,Te,2,0)),K=0,q=0,n.mode=w;case w:for(;q<32;){if(W===0)break inf_leave;W--,K+=B[H++]<>>8&255,Te[2]=K>>>16&255,Te[3]=K>>>24&255,n.check=a(n.check,Te,4,0)),K=0,q=0,n.mode=T;case T:for(;q<16;){if(W===0)break inf_leave;W--,K+=B[H++]<>8),n.flags&512&&(Te[0]=K&255,Te[1]=K>>>8&255,n.check=a(n.check,Te,2,0)),K=0,q=0,n.mode=E;case E:if(n.flags&1024){for(;q<16;){if(W===0)break inf_leave;W--,K+=B[H++]<>>8&255,n.check=a(n.check,Te,2,0)),K=0,q=0}else n.head&&(n.head.extra=null);n.mode=D;case D:if(n.flags&1024&&(Y=n.length,Y>W&&(Y=W),Y&&(n.head&&($=n.head.extra_len-n.length,n.head.extra||(n.head.extra=Array(n.head.extra_len)),r.arraySet(n.head.extra,B,H,Y,$)),n.flags&512&&(n.check=a(n.check,B,Y,H)),W-=Y,H+=Y,n.length-=Y),n.length))break inf_leave;n.length=0,n.mode=O;case O:if(n.flags&2048){if(W===0)break inf_leave;Y=0;do $=B[H+ Y++],n.head&&$&&n.length<65536&&(n.head.name+=String.fromCharCode($));while($&&Y>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=M;break;case ee:for(;q<32;){if(W===0)break inf_leave;W--,K+=B[H++]<>>=q&7,q-=q&7,n.mode=le;break}for(;q<3;){if(W===0)break inf_leave;W--,K+=B[H++]<>>=1,--q,K&3){case 0:n.mode=P;break;case 1:if(_e(n),n.mode=ie,t===p){K>>>=2,q-=2;break inf_leave}break;case 2:n.mode=I;break;case 3:e.msg=`invalid block type`,n.mode=z}K>>>=2,q-=2;break;case P:for(K>>>=q&7,q-=q&7;q<32;){if(W===0)break inf_leave;W--,K+=B[H++]<>>16^65535)){e.msg=`invalid stored block lengths`,n.mode=z;break}if(n.length=K&65535,K=0,q=0,n.mode=F,t===p)break inf_leave;case F:n.mode=te;case te:if(Y=n.length,Y){if(Y>W&&(Y=W),Y>G&&(Y=G),Y===0)break inf_leave;r.arraySet(V,B,H,Y,U),W-=Y,H+=Y,G-=Y,U+=Y,n.length-=Y;break}n.mode=M;break;case I:for(;q<14;){if(W===0)break inf_leave;W--,K+=B[H++]<>>=5,q-=5,n.ndist=(K&31)+1,K>>>=5,q-=5,n.ncode=(K&15)+4,K>>>=4,q-=4,n.nlen>286||n.ndist>30){e.msg=`too many length or distance symbols`,n.mode=z;break}n.have=0,n.mode=ne;case ne:for(;n.have>>=3,q-=3}for(;n.have<19;)n.lens[Oe[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,Ee={bits:n.lenbits},we=s(c,n.lens,0,19,n.lencode,0,n.work,Ee),n.lenbits=Ee.bits,we){e.msg=`invalid code lengths set`,n.mode=z;break}n.have=0,n.mode=re;case re:for(;n.have>>24,Q=X>>>16&255,be=X&65535,!(Z<=q);){if(W===0)break inf_leave;W--,K+=B[H++]<>>=Z,q-=Z,n.lens[n.have++]=be;else{if(be===16){for(De=Z+2;q>>=Z,q-=Z,n.have===0){e.msg=`invalid bit length repeat`,n.mode=z;break}$=n.lens[n.have-1],Y=3+(K&3),K>>>=2,q-=2}else if(be===17){for(De=Z+3;q>>=Z,q-=Z,$=0,Y=3+(K&7),K>>>=3,q-=3}else{for(De=Z+7;q>>=Z,q-=Z,$=0,Y=11+(K&127),K>>>=7,q-=7}if(n.have+Y>n.nlen+n.ndist){e.msg=`invalid bit length repeat`,n.mode=z;break}for(;Y--;)n.lens[n.have++]=$}}if(n.mode===z)break;if(n.lens[256]===0){e.msg=`invalid code -- missing end-of-block`,n.mode=z;break}if(n.lenbits=9,Ee={bits:n.lenbits},we=s(l,n.lens,0,n.nlen,n.lencode,0,n.work,Ee),n.lenbits=Ee.bits,we){e.msg=`invalid literal/lengths set`,n.mode=z;break}if(n.distbits=6,n.distcode=n.distdyn,Ee={bits:n.distbits},we=s(u,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,Ee),n.distbits=Ee.bits,we){e.msg=`invalid distances set`,n.mode=z;break}if(n.mode=ie,t===p)break inf_leave;case ie:n.mode=ae;case ae:if(W>=6&&G>=258){e.next_out=U,e.avail_out=G,e.next_in=H,e.avail_in=W,n.hold=K,n.bits=q,o(e,J),U=e.next_out,V=e.output,G=e.avail_out,H=e.next_in,B=e.input,W=e.avail_in,K=n.hold,q=n.bits,n.mode===M&&(n.back=-1);break}for(n.back=0;X=n.lencode[K&(1<>>24,Q=X>>>16&255,be=X&65535,!(Z<=q);){if(W===0)break inf_leave;W--,K+=B[H++]<>xe)],Z=X>>>24,Q=X>>>16&255,be=X&65535,!(xe+Z<=q);){if(W===0)break inf_leave;W--,K+=B[H++]<>>=xe,q-=xe,n.back+=xe}if(K>>>=Z,q-=Z,n.back+=Z,n.length=be,Q===0){n.mode=ce;break}if(Q&32){n.back=-1,n.mode=M;break}if(Q&64){e.msg=`invalid literal/length code`,n.mode=z;break}n.extra=Q&15,n.mode=oe;case oe:if(n.extra){for(De=n.extra;q>>=n.extra,q-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=L;case L:for(;X=n.distcode[K&(1<>>24,Q=X>>>16&255,be=X&65535,!(Z<=q);){if(W===0)break inf_leave;W--,K+=B[H++]<>xe)],Z=X>>>24,Q=X>>>16&255,be=X&65535,!(xe+Z<=q);){if(W===0)break inf_leave;W--,K+=B[H++]<>>=xe,q-=xe,n.back+=xe}if(K>>>=Z,q-=Z,n.back+=Z,Q&64){e.msg=`invalid distance code`,n.mode=z;break}n.offset=be,n.extra=Q&15,n.mode=R;case R:if(n.extra){for(De=n.extra;q>>=n.extra,q-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg=`invalid distance too far back`,n.mode=z;break}n.mode=se;case se:if(G===0)break inf_leave;if(Y=J-G,n.offset>Y){if(Y=n.offset-Y,Y>n.whave&&n.sane){e.msg=`invalid distance too far back`,n.mode=z;break}Y>n.wnext?(Y-=n.wnext,ge=n.wsize-Y):ge=n.wnext-Y,Y>n.length&&(Y=n.length),ye=n.window}else ye=V,ge=U-n.offset,Y=n.length;Y>G&&(Y=G),G-=Y,n.length-=Y;do V[U++]=ye[ge++];while(--Y);n.length===0&&(n.mode=ae);break;case ce:if(G===0)break inf_leave;V[U++]=n.length,G--,n.mode=ae;break;case le:if(n.wrap){for(;q<32;){if(W===0)break inf_leave;W--,K|=B[H++]<=1&&I[C]===0;C--);if(w>C&&(w=C),C===0)return h[g++]=20971520,h[g++]=20971520,v.bits=1,0;for(S=1;S0&&(e===s||C!==1))return-1;for(ne[1]=0,b=1;ba||e===l&&O>o)return 1;for(;;){ae=b-E,_[x]te?(oe=re[ie+_[x]],L=P[F+_[x]]):(oe=96,L=0),A=1<>E)+ee]=ae<<24|oe<<16|L|0;while(ee!==0);for(A=1<>=1;if(A===0?k=0:(k&=A-1,k+=A),x++,--I[b]===0){if(b===C)break;b=t[n+_[x]]}if(b>w&&(k&M)!==j){for(E===0&&(E=w),N+=S,T=b-E,D=1<a||e===l&&O>o)return 1;j=k&M,h[j]=w<<24|T<<16|N-g|0}}return k!==0&&(h[N+k]=b-E<<24|4194304),v.bits=w,0}},{"../utils/common":41}],51:[function(e,t,n){"use strict";t.exports={2:`need dictionary`,1:`stream end`,0:``,"-1":`file error`,"-2":`stream error`,"-3":`data error`,"-4":`insufficient memory`,"-5":`buffer error`,"-6":`incompatible version`}},{}],52:[function(e,t,n){"use strict";var r=e(`../utils/common`),i=4,a=0,o=1,s=2;function c(e){for(var t=e.length;--t>=0;)e[t]=0}var l=0,u=1,d=2,f=3,p=258,m=29,h=256,g=h+1+m,_=30,v=19,y=2*g+1,b=15,x=16,S=7,C=256,w=16,T=17,E=18,D=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],O=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],k=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],A=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ee=512,j=Array((g+2)*2);c(j);var M=Array(_*2);c(M);var N=Array(ee);c(N);var P=Array(p-f+1);c(P);var F=Array(m);c(F);var te=Array(_);c(te);function I(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}var ne,re,ie;function ae(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function oe(e){return e<256?N[e]:N[256+(e>>>7)]}function L(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function R(e,t,n){e.bi_valid>x-n?(e.bi_buf|=t<>x-e.bi_valid,e.bi_valid+=n-x):(e.bi_buf|=t<>>=1,n<<=1;while(--t>0);return n>>>1}function le(e){e.bi_valid===16?(L(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function ue(e,t){var n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length,l,u,d,f,p,m,h=0;for(f=0;f<=b;f++)e.bl_count[f]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;lc&&(f=c,h++),n[u*2+1]=f,!(u>r)&&(e.bl_count[f]++,p=0,u>=s&&(p=o[u-s]),m=n[u*2],e.opt_len+=m*(f+p),a&&(e.static_len+=m*(i[u*2+1]+p)));if(h!==0){do{for(f=c-1;e.bl_count[f]===0;)f--;e.bl_count[f]--,e.bl_count[f+1]+=2,e.bl_count[c]--,h-=2}while(h>0);for(f=c;f!==0;f--)for(u=e.bl_count[f];u!==0;)d=e.heap[--l],!(d>r)&&(n[d*2+1]!==f&&(e.opt_len+=(f-n[d*2+1])*n[d*2],n[d*2+1]=f),u--)}}function de(e,t,n){var r=Array(b+1),i=0,a,o;for(a=1;a<=b;a++)r[a]=i=i+n[a-1]<<1;for(o=0;o<=t;o++){var s=e[o*2+1];s!==0&&(e[o*2]=ce(r[s]++,s))}}function z(){var e,t,n,r,i,a=Array(b+1);for(n=0,r=0;r>=7;r<_;r++)for(te[r]=i<<7,e=0;e<1<8?L(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function B(e,t,n,i){pe(e),i&&(L(e,n),L(e,~n)),r.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function V(e,t,n,r){var i=t*2,a=n*2;return e[i]>1;o>=1;o--)H(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],H(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,H(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],ue(e,t),de(n,c,e.bl_count)}function W(e,t,n){var r,i=-1,a,o=t[1],s=0,c=7,l=4;for(o===0&&(c=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s=3&&e.bl_tree[A[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function q(e,t,n,r){var i;for(R(e,t-257,5),R(e,n-1,5),R(e,r-4,4),i=0;i>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return a;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return o;for(n=32;n0?(e.strm.data_type===s&&(e.strm.data_type=he(e)),U(e,e.l_desc),U(e,e.d_desc),c=K(e),a=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=a&&(a=o)):a=o=n+5,n+4<=a&&t!==-1?ge(e,t,n,r):e.strategy===i||o===a?(R(e,(u<<1)+(r?1:0),3),me(e,j,M)):(R(e,(d<<1)+(r?1:0),3),q(e,e.l_desc.max_code+1,e.d_desc.max_code+1,c+1),me(e,e.dyn_ltree,e.dyn_dtree)),fe(e),r&&pe(e)}function ye(e,t,n){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=n&255,e.last_lit++,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(P[n]+h+1)*2]++,e.dyn_dtree[oe(t)*2]++),e.last_lit===e.lit_bufsize-1}n._tr_init=Y,n._tr_stored_block=ge,n._tr_flush_block=ve,n._tr_tally=ye,n._tr_align=_e},{"../utils/common":41}],53:[function(e,t,n){"use strict";function r(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=``,this.state=null,this.data_type=2,this.adler=0}t.exports=r},{}],54:[function(e,t,n){(function(e){(function(e,t){"use strict";if(e.setImmediate)return;var n=1,r={},i=!1,a=e.document,o;function s(e){typeof e!=`function`&&(e=Function(``+e));for(var t=Array(arguments.length-1),i=0;i`u`?e===void 0?this:e:self)}).call(this,typeof global<`u`?global:typeof self<`u`?self:typeof window<`u`?window:{})},{}]},{},[10])(10)})}))()),B=class{load(e,t){fetch(e).then(function(e){return e.status===200||e.status===0?Promise.resolve(e.blob()):Promise.reject(Error(e.statusText))}).then(pe.default.loadAsync).then(async function(e){let n=null,r={};for(let i in e.files){e.files[i];let a=i.split(`.`).pop();if(a===`ssfb`){if(n!==null){t(null,null,null,Error(`already exist ssfb file`));return}n=i}else if(a===`png`){let t=i.split(`.`).slice(0,-1).join(`.`);r[t]=await e.file(i).async(`uint8array`)}}let i=await e.file(n).async(`uint8array`);t(n,i,r,null)},function(e){t(null,null,null,e)})}},V=class{static createAnimePackMap(e){let t=e.fbObj.animePacksLength(),n={};for(let r=0;r{t.setupForLoadComplete(n)})}loadSspkg(e){let t=this;new B().load(e,(e,n,r,i)=>{if(i!==null)return;let a=new ue(e,n,r,()=>{t.setupForLoadComplete(a)})})}setupForLoadComplete(e){this.projectData=e,this.animePackMap=V.createAnimePackMap(this.projectData),this.onComplete!==null&&this.onComplete()}loadAnimation(e,t){let n=!1;this.textureContainer??=(n=!0,new fe(this));let r=this.animePackMap[e],i=r.animePack,a=r.animationMap[t];this.currentAnimation=a,this.currentAnimePack=i,this.textureContainer.Setup(e,t);let o=a.labelDataLength();for(let e=0;e= ZOOM_ARRAY.length) { - return; - } - const nextZoomPercent = ZOOM_ARRAY[nextZoomArrayIndex]; - this.zoom(nextZoomPercent); - } - zoomOut() { - const zoomArrayIndex = ZOOM_ARRAY.indexOf(this.zoomPercent); - const prevZoomArrayIndex = zoomArrayIndex - 1; - if (prevZoomArrayIndex < 0) { - return; - } - const prevZoomPercent = ZOOM_ARRAY[prevZoomArrayIndex]; - this.zoom(prevZoomPercent); - } - switchGridDisplay() { - const rootLineGraphics = this.rootLineGraphics; - const gridGraphics = this.gridGraphics; - if (rootLineGraphics == null || gridGraphics == null) { - return; - } - rootLineGraphics.clear(); - gridGraphics.clear(); - this.isDisplayGrid = !this.isDisplayGrid; - if (this.isDisplayGrid) { - const min = -5e3; - const max = min * -1 + 1; - rootLineGraphics.lineStyle(1, 0); - rootLineGraphics.alpha = 0.3; - rootLineGraphics.moveTo(min, 0).lineTo(max, 0); - rootLineGraphics.moveTo(0, min).lineTo(0, max); - gridGraphics.lineStyle(1, 0); - gridGraphics.alpha = 0.1; - let gridSize = 100; - for (let x = min; x < max; x += gridSize) { - gridGraphics.moveTo(x, min).lineTo(x, max); - } - for (let y = min; y < max; y += gridSize) { - gridGraphics.moveTo(min, -y).lineTo(max, -y); - } - } - } - } - - class FrameData { - } - const SIZEOF_INT = 4; - const FILE_IDENTIFIER_LENGTH = 4; - const SIZE_PREFIX_LENGTH = 4; - const int32 = new Int32Array(2); - const float32 = new Float32Array(int32.buffer); - const float64 = new Float64Array(int32.buffer); - const isLittleEndian = new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1; - var Encoding; - (function(Encoding2) { - Encoding2[Encoding2["UTF8_BYTES"] = 1] = "UTF8_BYTES"; - Encoding2[Encoding2["UTF16_STRING"] = 2] = "UTF16_STRING"; - })(Encoding || (Encoding = {})); - class ByteBuffer { - /** - * Create a new ByteBuffer with a given array of bytes (`Uint8Array`) - */ - constructor(bytes_) { - this.bytes_ = bytes_; - this.position_ = 0; - this.text_decoder_ = new TextDecoder(); - } - /** - * Create and allocate a new ByteBuffer with a given size. - */ - static allocate(byte_size) { - return new ByteBuffer(new Uint8Array(byte_size)); - } - clear() { - this.position_ = 0; - } - /** - * Get the underlying `Uint8Array`. - */ - bytes() { - return this.bytes_; - } - /** - * Get the buffer's position. - */ - position() { - return this.position_; - } - /** - * Set the buffer's position. - */ - setPosition(position) { - this.position_ = position; - } - /** - * Get the buffer's capacity. - */ - capacity() { - return this.bytes_.length; - } - readInt8(offset) { - return this.readUint8(offset) << 24 >> 24; - } - readUint8(offset) { - return this.bytes_[offset]; - } - readInt16(offset) { - return this.readUint16(offset) << 16 >> 16; - } - readUint16(offset) { - return this.bytes_[offset] | this.bytes_[offset + 1] << 8; - } - readInt32(offset) { - return this.bytes_[offset] | this.bytes_[offset + 1] << 8 | this.bytes_[offset + 2] << 16 | this.bytes_[offset + 3] << 24; - } - readUint32(offset) { - return this.readInt32(offset) >>> 0; - } - readInt64(offset) { - return BigInt.asIntN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); - } - readUint64(offset) { - return BigInt.asUintN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); - } - readFloat32(offset) { - int32[0] = this.readInt32(offset); - return float32[0]; - } - readFloat64(offset) { - int32[isLittleEndian ? 0 : 1] = this.readInt32(offset); - int32[isLittleEndian ? 1 : 0] = this.readInt32(offset + 4); - return float64[0]; - } - writeInt8(offset, value) { - this.bytes_[offset] = value; - } - writeUint8(offset, value) { - this.bytes_[offset] = value; - } - writeInt16(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - } - writeUint16(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - } - writeInt32(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - this.bytes_[offset + 2] = value >> 16; - this.bytes_[offset + 3] = value >> 24; - } - writeUint32(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - this.bytes_[offset + 2] = value >> 16; - this.bytes_[offset + 3] = value >> 24; - } - writeInt64(offset, value) { - this.writeInt32(offset, Number(BigInt.asIntN(32, value))); - this.writeInt32(offset + 4, Number(BigInt.asIntN(32, value >> BigInt(32)))); - } - writeUint64(offset, value) { - this.writeUint32(offset, Number(BigInt.asUintN(32, value))); - this.writeUint32(offset + 4, Number(BigInt.asUintN(32, value >> BigInt(32)))); - } - writeFloat32(offset, value) { - float32[0] = value; - this.writeInt32(offset, int32[0]); - } - writeFloat64(offset, value) { - float64[0] = value; - this.writeInt32(offset, int32[isLittleEndian ? 0 : 1]); - this.writeInt32(offset + 4, int32[isLittleEndian ? 1 : 0]); - } - /** - * Return the file identifier. Behavior is undefined for FlatBuffers whose - * schema does not include a file_identifier (likely points at padding or the - * start of a the root vtable). - */ - getBufferIdentifier() { - if (this.bytes_.length < this.position_ + SIZEOF_INT + FILE_IDENTIFIER_LENGTH) { - throw new Error("FlatBuffers: ByteBuffer is too short to contain an identifier."); - } - let result = ""; - for (let i = 0; i < FILE_IDENTIFIER_LENGTH; i++) { - result += String.fromCharCode(this.readInt8(this.position_ + SIZEOF_INT + i)); - } - return result; - } - /** - * Look up a field in the vtable, return an offset into the object, or 0 if the - * field is not present. - */ - __offset(bb_pos, vtable_offset) { - const vtable = bb_pos - this.readInt32(bb_pos); - return vtable_offset < this.readInt16(vtable) ? this.readInt16(vtable + vtable_offset) : 0; - } - /** - * Initialize any Table-derived type to point to the union at the given offset. - */ - __union(t, offset) { - t.bb_pos = offset + this.readInt32(offset); - t.bb = this; - return t; - } - /** - * Create a JavaScript string from UTF-8 data stored inside the FlatBuffer. - * This allocates a new string and converts to wide chars upon each access. - * - * To avoid the conversion to string, pass Encoding.UTF8_BYTES as the - * "optionalEncoding" argument. This is useful for avoiding conversion when - * the data will just be packaged back up in another FlatBuffer later on. - * - * @param offset - * @param opt_encoding Defaults to UTF16_STRING - */ - __string(offset, opt_encoding) { - offset += this.readInt32(offset); - const length = this.readInt32(offset); - offset += SIZEOF_INT; - const utf8bytes = this.bytes_.subarray(offset, offset + length); - if (opt_encoding === Encoding.UTF8_BYTES) - return utf8bytes; - else - return this.text_decoder_.decode(utf8bytes); - } - /** - * Handle unions that can contain string as its member, if a Table-derived type then initialize it, - * if a string then return a new one - * - * WARNING: strings are immutable in JS so we can't change the string that the user gave us, this - * makes the behaviour of __union_with_string different compared to __union - */ - __union_with_string(o, offset) { - if (typeof o === "string") { - return this.__string(offset); - } - return this.__union(o, offset); - } - /** - * Retrieve the relative offset stored at "offset" - */ - __indirect(offset) { - return offset + this.readInt32(offset); - } - /** - * Get the start of data of a vector whose offset is stored at "offset" in this object. - */ - __vector(offset) { - return offset + this.readInt32(offset) + SIZEOF_INT; - } - /** - * Get the length of a vector whose offset is stored at "offset" in this object. - */ - __vector_len(offset) { - return this.readInt32(offset + this.readInt32(offset)); - } - __has_identifier(ident) { - if (ident.length != FILE_IDENTIFIER_LENGTH) { - throw new Error("FlatBuffers: file identifier must be length " + FILE_IDENTIFIER_LENGTH); - } - for (let i = 0; i < FILE_IDENTIFIER_LENGTH; i++) { - if (ident.charCodeAt(i) != this.readInt8(this.position() + SIZEOF_INT + i)) { - return false; - } - } - return true; - } - /** - * A helper function for generating list for obj api - */ - createScalarList(listAccessor, listLength) { - const ret = []; - for (let i = 0; i < listLength; ++i) { - const val = listAccessor(i); - if (val !== null) { - ret.push(val); - } - } - return ret; - } - /** - * A helper function for generating list for obj api - * @param listAccessor function that accepts an index and return data at that index - * @param listLength listLength - * @param res result list - */ - createObjList(listAccessor, listLength) { - const ret = []; - for (let i = 0; i < listLength; ++i) { - const val = listAccessor(i); - if (val !== null) { - ret.push(val.unpack()); - } - } - return ret; - } - } - class AnimationInitialData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsAnimationInitialData(bb, obj) { - return (obj || new AnimationInitialData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsAnimationInitialData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new AnimationInitialData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - index() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - lowflag() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - highflag() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - priority() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - cellIndex() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - opacity() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - localopacity() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - masklimen() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - positionX() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - positionY() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - positionZ() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - pivotX() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - pivotY() { - const offset = this.bb.__offset(this.bb_pos, 28); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - rotationX() { - const offset = this.bb.__offset(this.bb_pos, 30); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - rotationY() { - const offset = this.bb.__offset(this.bb_pos, 32); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - rotationZ() { - const offset = this.bb.__offset(this.bb_pos, 34); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - scaleX() { - const offset = this.bb.__offset(this.bb_pos, 36); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - scaleY() { - const offset = this.bb.__offset(this.bb_pos, 38); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - localscaleX() { - const offset = this.bb.__offset(this.bb_pos, 40); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - localscaleY() { - const offset = this.bb.__offset(this.bb_pos, 42); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - sizeX() { - const offset = this.bb.__offset(this.bb_pos, 44); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - sizeY() { - const offset = this.bb.__offset(this.bb_pos, 46); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvMoveX() { - const offset = this.bb.__offset(this.bb_pos, 48); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvMoveY() { - const offset = this.bb.__offset(this.bb_pos, 50); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvRotation() { - const offset = this.bb.__offset(this.bb_pos, 52); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvScaleX() { - const offset = this.bb.__offset(this.bb_pos, 54); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvScaleY() { - const offset = this.bb.__offset(this.bb_pos, 56); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - boundingRadius() { - const offset = this.bb.__offset(this.bb_pos, 58); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - instanceValueCurKeyframe() { - const offset = this.bb.__offset(this.bb_pos, 60); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueStartFrame() { - const offset = this.bb.__offset(this.bb_pos, 62); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueEndFrame() { - const offset = this.bb.__offset(this.bb_pos, 64); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueLoopNum() { - const offset = this.bb.__offset(this.bb_pos, 66); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueSpeed() { - const offset = this.bb.__offset(this.bb_pos, 68); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - instanceValueLoopflag() { - const offset = this.bb.__offset(this.bb_pos, 70); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - effectValueCurKeyframe() { - const offset = this.bb.__offset(this.bb_pos, 72); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - effectValueStartTime() { - const offset = this.bb.__offset(this.bb_pos, 74); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - effectValueSpeed() { - const offset = this.bb.__offset(this.bb_pos, 76); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - effectValueLoopflag() { - const offset = this.bb.__offset(this.bb_pos, 78); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - static startAnimationInitialData(builder) { - builder.startObject(38); - } - static addIndex(builder, index) { - builder.addFieldInt16(0, index, 0); - } - static addLowflag(builder, lowflag) { - builder.addFieldInt32(1, lowflag, 0); - } - static addHighflag(builder, highflag) { - builder.addFieldInt32(2, highflag, 0); - } - static addPriority(builder, priority) { - builder.addFieldInt16(3, priority, 0); - } - static addCellIndex(builder, cellIndex) { - builder.addFieldInt16(4, cellIndex, 0); - } - static addOpacity(builder, opacity) { - builder.addFieldInt16(5, opacity, 0); - } - static addLocalopacity(builder, localopacity) { - builder.addFieldInt16(6, localopacity, 0); - } - static addMasklimen(builder, masklimen) { - builder.addFieldInt16(7, masklimen, 0); - } - static addPositionX(builder, positionX) { - builder.addFieldFloat32(8, positionX, 0); - } - static addPositionY(builder, positionY) { - builder.addFieldFloat32(9, positionY, 0); - } - static addPositionZ(builder, positionZ) { - builder.addFieldFloat32(10, positionZ, 0); - } - static addPivotX(builder, pivotX) { - builder.addFieldFloat32(11, pivotX, 0); - } - static addPivotY(builder, pivotY) { - builder.addFieldFloat32(12, pivotY, 0); - } - static addRotationX(builder, rotationX) { - builder.addFieldFloat32(13, rotationX, 0); - } - static addRotationY(builder, rotationY) { - builder.addFieldFloat32(14, rotationY, 0); - } - static addRotationZ(builder, rotationZ) { - builder.addFieldFloat32(15, rotationZ, 0); - } - static addScaleX(builder, scaleX) { - builder.addFieldFloat32(16, scaleX, 0); - } - static addScaleY(builder, scaleY) { - builder.addFieldFloat32(17, scaleY, 0); - } - static addLocalscaleX(builder, localscaleX) { - builder.addFieldFloat32(18, localscaleX, 0); - } - static addLocalscaleY(builder, localscaleY) { - builder.addFieldFloat32(19, localscaleY, 0); - } - static addSizeX(builder, sizeX) { - builder.addFieldFloat32(20, sizeX, 0); - } - static addSizeY(builder, sizeY) { - builder.addFieldFloat32(21, sizeY, 0); - } - static addUvMoveX(builder, uvMoveX) { - builder.addFieldFloat32(22, uvMoveX, 0); - } - static addUvMoveY(builder, uvMoveY) { - builder.addFieldFloat32(23, uvMoveY, 0); - } - static addUvRotation(builder, uvRotation) { - builder.addFieldFloat32(24, uvRotation, 0); - } - static addUvScaleX(builder, uvScaleX) { - builder.addFieldFloat32(25, uvScaleX, 0); - } - static addUvScaleY(builder, uvScaleY) { - builder.addFieldFloat32(26, uvScaleY, 0); - } - static addBoundingRadius(builder, boundingRadius) { - builder.addFieldFloat32(27, boundingRadius, 0); - } - static addInstanceValueCurKeyframe(builder, instanceValueCurKeyframe) { - builder.addFieldInt32(28, instanceValueCurKeyframe, 0); - } - static addInstanceValueStartFrame(builder, instanceValueStartFrame) { - builder.addFieldInt32(29, instanceValueStartFrame, 0); - } - static addInstanceValueEndFrame(builder, instanceValueEndFrame) { - builder.addFieldInt32(30, instanceValueEndFrame, 0); - } - static addInstanceValueLoopNum(builder, instanceValueLoopNum) { - builder.addFieldInt32(31, instanceValueLoopNum, 0); - } - static addInstanceValueSpeed(builder, instanceValueSpeed) { - builder.addFieldFloat32(32, instanceValueSpeed, 0); - } - static addInstanceValueLoopflag(builder, instanceValueLoopflag) { - builder.addFieldInt32(33, instanceValueLoopflag, 0); - } - static addEffectValueCurKeyframe(builder, effectValueCurKeyframe) { - builder.addFieldInt32(34, effectValueCurKeyframe, 0); - } - static addEffectValueStartTime(builder, effectValueStartTime) { - builder.addFieldInt32(35, effectValueStartTime, 0); - } - static addEffectValueSpeed(builder, effectValueSpeed) { - builder.addFieldFloat32(36, effectValueSpeed, 0); - } - static addEffectValueLoopflag(builder, effectValueLoopflag) { - builder.addFieldInt32(37, effectValueLoopflag, 0); - } - static endAnimationInitialData(builder) { - const offset = builder.endObject(); - return offset; - } - static createAnimationInitialData(builder, index, lowflag, highflag, priority, cellIndex, opacity, localopacity, masklimen, positionX, positionY, positionZ, pivotX, pivotY, rotationX, rotationY, rotationZ, scaleX, scaleY, localscaleX, localscaleY, sizeX, sizeY, uvMoveX, uvMoveY, uvRotation, uvScaleX, uvScaleY, boundingRadius, instanceValueCurKeyframe, instanceValueStartFrame, instanceValueEndFrame, instanceValueLoopNum, instanceValueSpeed, instanceValueLoopflag, effectValueCurKeyframe, effectValueStartTime, effectValueSpeed, effectValueLoopflag) { - AnimationInitialData.startAnimationInitialData(builder); - AnimationInitialData.addIndex(builder, index); - AnimationInitialData.addLowflag(builder, lowflag); - AnimationInitialData.addHighflag(builder, highflag); - AnimationInitialData.addPriority(builder, priority); - AnimationInitialData.addCellIndex(builder, cellIndex); - AnimationInitialData.addOpacity(builder, opacity); - AnimationInitialData.addLocalopacity(builder, localopacity); - AnimationInitialData.addMasklimen(builder, masklimen); - AnimationInitialData.addPositionX(builder, positionX); - AnimationInitialData.addPositionY(builder, positionY); - AnimationInitialData.addPositionZ(builder, positionZ); - AnimationInitialData.addPivotX(builder, pivotX); - AnimationInitialData.addPivotY(builder, pivotY); - AnimationInitialData.addRotationX(builder, rotationX); - AnimationInitialData.addRotationY(builder, rotationY); - AnimationInitialData.addRotationZ(builder, rotationZ); - AnimationInitialData.addScaleX(builder, scaleX); - AnimationInitialData.addScaleY(builder, scaleY); - AnimationInitialData.addLocalscaleX(builder, localscaleX); - AnimationInitialData.addLocalscaleY(builder, localscaleY); - AnimationInitialData.addSizeX(builder, sizeX); - AnimationInitialData.addSizeY(builder, sizeY); - AnimationInitialData.addUvMoveX(builder, uvMoveX); - AnimationInitialData.addUvMoveY(builder, uvMoveY); - AnimationInitialData.addUvRotation(builder, uvRotation); - AnimationInitialData.addUvScaleX(builder, uvScaleX); - AnimationInitialData.addUvScaleY(builder, uvScaleY); - AnimationInitialData.addBoundingRadius(builder, boundingRadius); - AnimationInitialData.addInstanceValueCurKeyframe(builder, instanceValueCurKeyframe); - AnimationInitialData.addInstanceValueStartFrame(builder, instanceValueStartFrame); - AnimationInitialData.addInstanceValueEndFrame(builder, instanceValueEndFrame); - AnimationInitialData.addInstanceValueLoopNum(builder, instanceValueLoopNum); - AnimationInitialData.addInstanceValueSpeed(builder, instanceValueSpeed); - AnimationInitialData.addInstanceValueLoopflag(builder, instanceValueLoopflag); - AnimationInitialData.addEffectValueCurKeyframe(builder, effectValueCurKeyframe); - AnimationInitialData.addEffectValueStartTime(builder, effectValueStartTime); - AnimationInitialData.addEffectValueSpeed(builder, effectValueSpeed); - AnimationInitialData.addEffectValueLoopflag(builder, effectValueLoopflag); - return AnimationInitialData.endAnimationInitialData(builder); - } - } - class partState { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAspartState(bb, obj) { - return (obj || new partState()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAspartState(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new partState()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - index() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - flag1() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - flag2() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - data(index) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readUint32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; - } - dataLength() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - dataArray() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - static startpartState(builder) { - builder.startObject(4); - } - static addIndex(builder, index) { - builder.addFieldInt16(0, index, 0); - } - static addFlag1(builder, flag1) { - builder.addFieldInt32(1, flag1, 0); - } - static addFlag2(builder, flag2) { - builder.addFieldInt32(2, flag2, 0); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(3, dataOffset, 0); - } - static createDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt32(data[i]); - } - return builder.endVector(); - } - static startDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endpartState(builder) { - const offset = builder.endObject(); - return offset; - } - static createpartState(builder, index, flag1, flag2, dataOffset) { - partState.startpartState(builder); - partState.addIndex(builder, index); - partState.addFlag1(builder, flag1); - partState.addFlag2(builder, flag2); - partState.addData(builder, dataOffset); - return partState.endpartState(builder); - } - } - class frameDataIndex { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsframeDataIndex(bb, obj) { - return (obj || new frameDataIndex()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsframeDataIndex(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new frameDataIndex()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - states(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? (obj || new partState()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - statesLength() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startframeDataIndex(builder) { - builder.startObject(1); - } - static addStates(builder, statesOffset) { - builder.addFieldOffset(0, statesOffset, 0); - } - static createStatesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startStatesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endframeDataIndex(builder) { - const offset = builder.endObject(); - return offset; - } - static createframeDataIndex(builder, statesOffset) { - frameDataIndex.startframeDataIndex(builder); - frameDataIndex.addStates(builder, statesOffset); - return frameDataIndex.endframeDataIndex(builder); - } - } - class labelDataItem { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAslabelDataItem(bb, obj) { - return (obj || new labelDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAslabelDataItem(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new labelDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - label(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - frameIndex() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startlabelDataItem(builder) { - builder.startObject(2); - } - static addLabel(builder, labelOffset) { - builder.addFieldOffset(0, labelOffset, 0); - } - static addFrameIndex(builder, frameIndex) { - builder.addFieldInt16(1, frameIndex, 0); - } - static endlabelDataItem(builder) { - const offset = builder.endObject(); - return offset; - } - static createlabelDataItem(builder, labelOffset, frameIndex) { - labelDataItem.startlabelDataItem(builder); - labelDataItem.addLabel(builder, labelOffset); - labelDataItem.addFrameIndex(builder, frameIndex); - return labelDataItem.endlabelDataItem(builder); - } - } - class meshDataIndices { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsmeshDataIndices(bb, obj) { - return (obj || new meshDataIndices()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsmeshDataIndices(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new meshDataIndices()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - indices(index) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; - } - indicesLength() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - indicesArray() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - static startmeshDataIndices(builder) { - builder.startObject(1); - } - static addIndices(builder, indicesOffset) { - builder.addFieldOffset(0, indicesOffset, 0); - } - static createIndicesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addFloat32(data[i]); - } - return builder.endVector(); - } - static startIndicesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endmeshDataIndices(builder) { - const offset = builder.endObject(); - return offset; - } - static createmeshDataIndices(builder, indicesOffset) { - meshDataIndices.startmeshDataIndices(builder); - meshDataIndices.addIndices(builder, indicesOffset); - return meshDataIndices.endmeshDataIndices(builder); - } - } - class meshDataUV { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsmeshDataUV(bb, obj) { - return (obj || new meshDataUV()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsmeshDataUV(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new meshDataUV()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - uv(index) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; - } - uvLength() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - uvArray() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - static startmeshDataUV(builder) { - builder.startObject(1); - } - static addUv(builder, uvOffset) { - builder.addFieldOffset(0, uvOffset, 0); - } - static createUvVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addFloat32(data[i]); - } - return builder.endVector(); - } - static startUvVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endmeshDataUV(builder) { - const offset = builder.endObject(); - return offset; - } - static createmeshDataUV(builder, uvOffset) { - meshDataUV.startmeshDataUV(builder); - meshDataUV.addUv(builder, uvOffset); - return meshDataUV.endmeshDataUV(builder); - } - } - class userDataItem { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsuserDataItem(bb, obj) { - return (obj || new userDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsuserDataItem(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new userDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - flags() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - arrayIndex() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - dataType(index) { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; - } - dataTypeLength() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - dataTypeArray() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - data(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__union(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; - } - dataLength() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startuserDataItem(builder) { - builder.startObject(4); - } - static addFlags(builder, flags) { - builder.addFieldInt16(0, flags, 0); - } - static addArrayIndex(builder, arrayIndex) { - builder.addFieldInt16(1, arrayIndex, 0); - } - static addDataType(builder, dataTypeOffset) { - builder.addFieldOffset(2, dataTypeOffset, 0); - } - static createDataTypeVector(builder, data) { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]); - } - return builder.endVector(); - } - static startDataTypeVector(builder, numElems) { - builder.startVector(1, numElems, 1); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(3, dataOffset, 0); - } - static createDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static enduserDataItem(builder) { - const offset = builder.endObject(); - return offset; - } - static createuserDataItem(builder, flags, arrayIndex, dataTypeOffset, dataOffset) { - userDataItem.startuserDataItem(builder); - userDataItem.addFlags(builder, flags); - userDataItem.addArrayIndex(builder, arrayIndex); - userDataItem.addDataType(builder, dataTypeOffset); - userDataItem.addData(builder, dataOffset); - return userDataItem.enduserDataItem(builder); - } - } - class userDataPerFrame { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsuserDataPerFrame(bb, obj) { - return (obj || new userDataPerFrame()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsuserDataPerFrame(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new userDataPerFrame()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - frameIndex() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - data(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new userDataItem()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - dataLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startuserDataPerFrame(builder) { - builder.startObject(2); - } - static addFrameIndex(builder, frameIndex) { - builder.addFieldInt16(0, frameIndex, 0); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(1, dataOffset, 0); - } - static createDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static enduserDataPerFrame(builder) { - const offset = builder.endObject(); - return offset; - } - static createuserDataPerFrame(builder, frameIndex, dataOffset) { - userDataPerFrame.startuserDataPerFrame(builder); - userDataPerFrame.addFrameIndex(builder, frameIndex); - userDataPerFrame.addData(builder, dataOffset); - return userDataPerFrame.enduserDataPerFrame(builder); - } - } - class AnimationData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsAnimationData(bb, obj) { - return (obj || new AnimationData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsAnimationData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new AnimationData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - defaultData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new AnimationInitialData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - defaultDataLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - frameData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? (obj || new frameDataIndex()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - frameDataLength() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - userData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? (obj || new userDataPerFrame()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - userDataLength() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - labelData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? (obj || new labelDataItem()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - labelDataLength() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - meshsDataUv(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? (obj || new meshDataUV()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - meshsDataUvLength() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - meshsDataIndices(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? (obj || new meshDataIndices()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - meshsDataIndicesLength() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - startFrames() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - endFrames() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - totalFrames() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - fps() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - labelNum() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - canvasSizeW() { - const offset = this.bb.__offset(this.bb_pos, 28); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - canvasSizeH() { - const offset = this.bb.__offset(this.bb_pos, 30); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - canvasPvotX() { - const offset = this.bb.__offset(this.bb_pos, 32); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - canvasPvotY() { - const offset = this.bb.__offset(this.bb_pos, 34); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - static startAnimationData(builder) { - builder.startObject(16); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addDefaultData(builder, defaultDataOffset) { - builder.addFieldOffset(1, defaultDataOffset, 0); - } - static createDefaultDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDefaultDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addFrameData(builder, frameDataOffset) { - builder.addFieldOffset(2, frameDataOffset, 0); - } - static createFrameDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startFrameDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addUserData(builder, userDataOffset) { - builder.addFieldOffset(3, userDataOffset, 0); - } - static createUserDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startUserDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addLabelData(builder, labelDataOffset) { - builder.addFieldOffset(4, labelDataOffset, 0); - } - static createLabelDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startLabelDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addMeshsDataUv(builder, meshsDataUvOffset) { - builder.addFieldOffset(5, meshsDataUvOffset, 0); - } - static createMeshsDataUvVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startMeshsDataUvVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addMeshsDataIndices(builder, meshsDataIndicesOffset) { - builder.addFieldOffset(6, meshsDataIndicesOffset, 0); - } - static createMeshsDataIndicesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startMeshsDataIndicesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addStartFrames(builder, startFrames) { - builder.addFieldInt16(7, startFrames, 0); - } - static addEndFrames(builder, endFrames) { - builder.addFieldInt16(8, endFrames, 0); - } - static addTotalFrames(builder, totalFrames) { - builder.addFieldInt16(9, totalFrames, 0); - } - static addFps(builder, fps) { - builder.addFieldInt16(10, fps, 0); - } - static addLabelNum(builder, labelNum) { - builder.addFieldInt16(11, labelNum, 0); - } - static addCanvasSizeW(builder, canvasSizeW) { - builder.addFieldInt16(12, canvasSizeW, 0); - } - static addCanvasSizeH(builder, canvasSizeH) { - builder.addFieldInt16(13, canvasSizeH, 0); - } - static addCanvasPvotX(builder, canvasPvotX) { - builder.addFieldFloat32(14, canvasPvotX, 0); - } - static addCanvasPvotY(builder, canvasPvotY) { - builder.addFieldFloat32(15, canvasPvotY, 0); - } - static endAnimationData(builder) { - const offset = builder.endObject(); - return offset; - } - static createAnimationData(builder, nameOffset, defaultDataOffset, frameDataOffset, userDataOffset, labelDataOffset, meshsDataUvOffset, meshsDataIndicesOffset, startFrames, endFrames, totalFrames, fps, labelNum, canvasSizeW, canvasSizeH, canvasPvotX, canvasPvotY) { - AnimationData.startAnimationData(builder); - AnimationData.addName(builder, nameOffset); - AnimationData.addDefaultData(builder, defaultDataOffset); - AnimationData.addFrameData(builder, frameDataOffset); - AnimationData.addUserData(builder, userDataOffset); - AnimationData.addLabelData(builder, labelDataOffset); - AnimationData.addMeshsDataUv(builder, meshsDataUvOffset); - AnimationData.addMeshsDataIndices(builder, meshsDataIndicesOffset); - AnimationData.addStartFrames(builder, startFrames); - AnimationData.addEndFrames(builder, endFrames); - AnimationData.addTotalFrames(builder, totalFrames); - AnimationData.addFps(builder, fps); - AnimationData.addLabelNum(builder, labelNum); - AnimationData.addCanvasSizeW(builder, canvasSizeW); - AnimationData.addCanvasSizeH(builder, canvasSizeH); - AnimationData.addCanvasPvotX(builder, canvasPvotX); - AnimationData.addCanvasPvotY(builder, canvasPvotY); - return AnimationData.endAnimationData(builder); - } - } - var SsPartType = /* @__PURE__ */ ((SsPartType2) => { - SsPartType2[SsPartType2["Invalid"] = -1] = "Invalid"; - SsPartType2[SsPartType2["Nulltype"] = 0] = "Nulltype"; - SsPartType2[SsPartType2["Normal"] = 1] = "Normal"; - SsPartType2[SsPartType2["Text"] = 2] = "Text"; - SsPartType2[SsPartType2["Instance"] = 3] = "Instance"; - SsPartType2[SsPartType2["Armature"] = 4] = "Armature"; - SsPartType2[SsPartType2["Effect"] = 5] = "Effect"; - SsPartType2[SsPartType2["Mesh"] = 6] = "Mesh"; - SsPartType2[SsPartType2["Movenode"] = 7] = "Movenode"; - SsPartType2[SsPartType2["Constraint"] = 8] = "Constraint"; - SsPartType2[SsPartType2["Mask"] = 9] = "Mask"; - SsPartType2[SsPartType2["Joint"] = 10] = "Joint"; - SsPartType2[SsPartType2["Bonepoint"] = 11] = "Bonepoint"; - return SsPartType2; - })(SsPartType || {}); - class PartData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsPartData(bb, obj) { - return (obj || new PartData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsPartData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new PartData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - index() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - parentIndex() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - type() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt8(this.bb_pos + offset) : SsPartType.Nulltype; - } - boundsType() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - alphaBlendType() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - refname(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - effectfilename(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - colorLabel(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - maskInfluence() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startPartData(builder) { - builder.startObject(10); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addIndex(builder, index) { - builder.addFieldInt16(1, index, 0); - } - static addParentIndex(builder, parentIndex) { - builder.addFieldInt16(2, parentIndex, 0); - } - static addType(builder, type) { - builder.addFieldInt8(3, type, SsPartType.Nulltype); - } - static addBoundsType(builder, boundsType) { - builder.addFieldInt16(4, boundsType, 0); - } - static addAlphaBlendType(builder, alphaBlendType) { - builder.addFieldInt16(5, alphaBlendType, 0); - } - static addRefname(builder, refnameOffset) { - builder.addFieldOffset(6, refnameOffset, 0); - } - static addEffectfilename(builder, effectfilenameOffset) { - builder.addFieldOffset(7, effectfilenameOffset, 0); - } - static addColorLabel(builder, colorLabelOffset) { - builder.addFieldOffset(8, colorLabelOffset, 0); - } - static addMaskInfluence(builder, maskInfluence) { - builder.addFieldInt16(9, maskInfluence, 0); - } - static endPartData(builder) { - const offset = builder.endObject(); - return offset; - } - static createPartData(builder, nameOffset, index, parentIndex, type, boundsType, alphaBlendType, refnameOffset, effectfilenameOffset, colorLabelOffset, maskInfluence) { - PartData.startPartData(builder); - PartData.addName(builder, nameOffset); - PartData.addIndex(builder, index); - PartData.addParentIndex(builder, parentIndex); - PartData.addType(builder, type); - PartData.addBoundsType(builder, boundsType); - PartData.addAlphaBlendType(builder, alphaBlendType); - PartData.addRefname(builder, refnameOffset); - PartData.addEffectfilename(builder, effectfilenameOffset); - PartData.addColorLabel(builder, colorLabelOffset); - PartData.addMaskInfluence(builder, maskInfluence); - return PartData.endPartData(builder); - } - } - class AnimePackData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsAnimePackData(bb, obj) { - return (obj || new AnimePackData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsAnimePackData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new AnimePackData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - parts(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new PartData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - partsLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - animations(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? (obj || new AnimationData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - animationsLength() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startAnimePackData(builder) { - builder.startObject(3); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addParts(builder, partsOffset) { - builder.addFieldOffset(1, partsOffset, 0); - } - static createPartsVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startPartsVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addAnimations(builder, animationsOffset) { - builder.addFieldOffset(2, animationsOffset, 0); - } - static createAnimationsVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startAnimationsVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endAnimePackData(builder) { - const offset = builder.endObject(); - return offset; - } - static createAnimePackData(builder, nameOffset, partsOffset, animationsOffset) { - AnimePackData.startAnimePackData(builder); - AnimePackData.addName(builder, nameOffset); - AnimePackData.addParts(builder, partsOffset); - AnimePackData.addAnimations(builder, animationsOffset); - return AnimePackData.endAnimePackData(builder); - } - } - class CellMap { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsCellMap(bb, obj) { - return (obj || new CellMap()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsCellMap(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new CellMap()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - imagePath(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - index() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - wrapmode() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - filtermode() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startCellMap(builder) { - builder.startObject(5); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addImagePath(builder, imagePathOffset) { - builder.addFieldOffset(1, imagePathOffset, 0); - } - static addIndex(builder, index) { - builder.addFieldInt16(2, index, 0); - } - static addWrapmode(builder, wrapmode) { - builder.addFieldInt16(3, wrapmode, 0); - } - static addFiltermode(builder, filtermode) { - builder.addFieldInt16(4, filtermode, 0); - } - static endCellMap(builder) { - const offset = builder.endObject(); - return offset; - } - static createCellMap(builder, nameOffset, imagePathOffset, index, wrapmode, filtermode) { - CellMap.startCellMap(builder); - CellMap.addName(builder, nameOffset); - CellMap.addImagePath(builder, imagePathOffset); - CellMap.addIndex(builder, index); - CellMap.addWrapmode(builder, wrapmode); - CellMap.addFiltermode(builder, filtermode); - return CellMap.endCellMap(builder); - } - } - class Cell { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsCell(bb, obj) { - return (obj || new Cell()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsCell(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new Cell()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - cellMap(obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new CellMap()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; - } - indexInCellMap() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - x() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - y() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - width() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - height() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - pivotX() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - pivotY() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - u1() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - v1() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - u2() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - v2() { - const offset = this.bb.__offset(this.bb_pos, 28); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - static startCell(builder) { - builder.startObject(13); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addCellMap(builder, cellMapOffset) { - builder.addFieldOffset(1, cellMapOffset, 0); - } - static addIndexInCellMap(builder, indexInCellMap) { - builder.addFieldInt16(2, indexInCellMap, 0); - } - static addX(builder, x) { - builder.addFieldInt16(3, x, 0); - } - static addY(builder, y) { - builder.addFieldInt16(4, y, 0); - } - static addWidth(builder, width) { - builder.addFieldInt16(5, width, 0); - } - static addHeight(builder, height) { - builder.addFieldInt16(6, height, 0); - } - static addPivotX(builder, pivotX) { - builder.addFieldFloat32(7, pivotX, 0); - } - static addPivotY(builder, pivotY) { - builder.addFieldFloat32(8, pivotY, 0); - } - static addU1(builder, u1) { - builder.addFieldFloat32(9, u1, 0); - } - static addV1(builder, v1) { - builder.addFieldFloat32(10, v1, 0); - } - static addU2(builder, u2) { - builder.addFieldFloat32(11, u2, 0); - } - static addV2(builder, v2) { - builder.addFieldFloat32(12, v2, 0); - } - static endCell(builder) { - const offset = builder.endObject(); - return offset; - } - } - class EffectNode { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsEffectNode(bb, obj) { - return (obj || new EffectNode()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsEffectNode(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new EffectNode()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - arrayIndex() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - parentIndex() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - type() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - cellIndex() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - blendType() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numBehavior() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - behaviorType(index) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; - } - behaviorTypeLength() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - behaviorTypeArray() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - behavior(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__union(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; - } - behaviorLength() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startEffectNode(builder) { - builder.startObject(8); - } - static addArrayIndex(builder, arrayIndex) { - builder.addFieldInt16(0, arrayIndex, 0); - } - static addParentIndex(builder, parentIndex) { - builder.addFieldInt16(1, parentIndex, 0); - } - static addType(builder, type) { - builder.addFieldInt16(2, type, 0); - } - static addCellIndex(builder, cellIndex) { - builder.addFieldInt16(3, cellIndex, 0); - } - static addBlendType(builder, blendType) { - builder.addFieldInt16(4, blendType, 0); - } - static addNumBehavior(builder, numBehavior) { - builder.addFieldInt16(5, numBehavior, 0); - } - static addBehaviorType(builder, behaviorTypeOffset) { - builder.addFieldOffset(6, behaviorTypeOffset, 0); - } - static createBehaviorTypeVector(builder, data) { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]); - } - return builder.endVector(); - } - static startBehaviorTypeVector(builder, numElems) { - builder.startVector(1, numElems, 1); - } - static addBehavior(builder, behaviorOffset) { - builder.addFieldOffset(7, behaviorOffset, 0); - } - static createBehaviorVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startBehaviorVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endEffectNode(builder) { - const offset = builder.endObject(); - return offset; - } - static createEffectNode(builder, arrayIndex, parentIndex, type, cellIndex, blendType, numBehavior, behaviorTypeOffset, behaviorOffset) { - EffectNode.startEffectNode(builder); - EffectNode.addArrayIndex(builder, arrayIndex); - EffectNode.addParentIndex(builder, parentIndex); - EffectNode.addType(builder, type); - EffectNode.addCellIndex(builder, cellIndex); - EffectNode.addBlendType(builder, blendType); - EffectNode.addNumBehavior(builder, numBehavior); - EffectNode.addBehaviorType(builder, behaviorTypeOffset); - EffectNode.addBehavior(builder, behaviorOffset); - return EffectNode.endEffectNode(builder); - } - } - class EffectFile { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsEffectFile(bb, obj) { - return (obj || new EffectFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsEffectFile(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new EffectFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - fps() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - isLockRandSeed() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - lockRandSeed() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - layoutScaleX() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - layoutScaleY() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numNodeList() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - effectNode(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? (obj || new EffectNode()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - effectNodeLength() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startEffectFile(builder) { - builder.startObject(8); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addFps(builder, fps) { - builder.addFieldInt16(1, fps, 0); - } - static addIsLockRandSeed(builder, isLockRandSeed) { - builder.addFieldInt16(2, isLockRandSeed, 0); - } - static addLockRandSeed(builder, lockRandSeed) { - builder.addFieldInt16(3, lockRandSeed, 0); - } - static addLayoutScaleX(builder, layoutScaleX) { - builder.addFieldInt16(4, layoutScaleX, 0); - } - static addLayoutScaleY(builder, layoutScaleY) { - builder.addFieldInt16(5, layoutScaleY, 0); - } - static addNumNodeList(builder, numNodeList) { - builder.addFieldInt16(6, numNodeList, 0); - } - static addEffectNode(builder, effectNodeOffset) { - builder.addFieldOffset(7, effectNodeOffset, 0); - } - static createEffectNodeVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startEffectNodeVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endEffectFile(builder) { - const offset = builder.endObject(); - return offset; - } - static createEffectFile(builder, nameOffset, fps, isLockRandSeed, lockRandSeed, layoutScaleX, layoutScaleY, numNodeList, effectNodeOffset) { - EffectFile.startEffectFile(builder); - EffectFile.addName(builder, nameOffset); - EffectFile.addFps(builder, fps); - EffectFile.addIsLockRandSeed(builder, isLockRandSeed); - EffectFile.addLockRandSeed(builder, lockRandSeed); - EffectFile.addLayoutScaleX(builder, layoutScaleX); - EffectFile.addLayoutScaleY(builder, layoutScaleY); - EffectFile.addNumNodeList(builder, numNodeList); - EffectFile.addEffectNode(builder, effectNodeOffset); - return EffectFile.endEffectFile(builder); - } - } - var PART_FLAG = /* @__PURE__ */ ((PART_FLAG22) => { - PART_FLAG22[PART_FLAG22["INVISIBLE"] = 1] = "INVISIBLE"; - PART_FLAG22[PART_FLAG22["FLIP_H"] = 2] = "FLIP_H"; - PART_FLAG22[PART_FLAG22["FLIP_V"] = 4] = "FLIP_V"; - PART_FLAG22[PART_FLAG22["CELL_INDEX"] = 8] = "CELL_INDEX"; - PART_FLAG22[PART_FLAG22["POSITION_X"] = 16] = "POSITION_X"; - PART_FLAG22[PART_FLAG22["POSITION_Y"] = 32] = "POSITION_Y"; - PART_FLAG22[PART_FLAG22["POSITION_Z"] = 64] = "POSITION_Z"; - PART_FLAG22[PART_FLAG22["PIVOT_X"] = 128] = "PIVOT_X"; - PART_FLAG22[PART_FLAG22["PIVOT_Y"] = 256] = "PIVOT_Y"; - PART_FLAG22[PART_FLAG22["ROTATIONX"] = 512] = "ROTATIONX"; - PART_FLAG22[PART_FLAG22["ROTATIONY"] = 1024] = "ROTATIONY"; - PART_FLAG22[PART_FLAG22["ROTATIONZ"] = 2048] = "ROTATIONZ"; - PART_FLAG22[PART_FLAG22["SCALE_X"] = 4096] = "SCALE_X"; - PART_FLAG22[PART_FLAG22["SCALE_Y"] = 8192] = "SCALE_Y"; - PART_FLAG22[PART_FLAG22["LOCALSCALE_X"] = 16384] = "LOCALSCALE_X"; - PART_FLAG22[PART_FLAG22["LOCALSCALE_Y"] = 32768] = "LOCALSCALE_Y"; - PART_FLAG22[PART_FLAG22["OPACITY"] = 65536] = "OPACITY"; - PART_FLAG22[PART_FLAG22["LOCALOPACITY"] = 131072] = "LOCALOPACITY"; - PART_FLAG22[PART_FLAG22["PARTS_COLOR"] = 262144] = "PARTS_COLOR"; - PART_FLAG22[PART_FLAG22["VERTEX_TRANSFORM"] = 524288] = "VERTEX_TRANSFORM"; - PART_FLAG22[PART_FLAG22["SIZE_X"] = 1048576] = "SIZE_X"; - PART_FLAG22[PART_FLAG22["SIZE_Y"] = 2097152] = "SIZE_Y"; - PART_FLAG22[PART_FLAG22["U_MOVE"] = 4194304] = "U_MOVE"; - PART_FLAG22[PART_FLAG22["V_MOVE"] = 8388608] = "V_MOVE"; - PART_FLAG22[PART_FLAG22["UV_ROTATION"] = 16777216] = "UV_ROTATION"; - PART_FLAG22[PART_FLAG22["U_SCALE"] = 33554432] = "U_SCALE"; - PART_FLAG22[PART_FLAG22["V_SCALE"] = 67108864] = "V_SCALE"; - PART_FLAG22[PART_FLAG22["BOUNDINGRADIUS"] = 134217728] = "BOUNDINGRADIUS"; - PART_FLAG22[PART_FLAG22["MASK"] = 268435456] = "MASK"; - PART_FLAG22[PART_FLAG22["PRIORITY"] = 536870912] = "PRIORITY"; - PART_FLAG22[PART_FLAG22["INSTANCE_KEYFRAME"] = 1073741824] = "INSTANCE_KEYFRAME"; - PART_FLAG22[PART_FLAG22["EFFECT_KEYFRAME"] = 2147483648] = "EFFECT_KEYFRAME"; - return PART_FLAG22; - })(PART_FLAG || {}); - var PART_FLAG2 = /* @__PURE__ */ ((PART_FLAG22) => { - PART_FLAG22[PART_FLAG22["MESHDATA"] = 1] = "MESHDATA"; - return PART_FLAG22; - })(PART_FLAG2 || {}); - class ProjectData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsProjectData(bb, obj) { - return (obj || new ProjectData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsProjectData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new ProjectData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static bufferHasIdentifier(bb) { - return bb.__has_identifier("SSFB"); - } - dataId() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - version() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - flags() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - imageBaseDir(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - cells(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? (obj || new Cell()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - cellsLength() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - animePacks(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? (obj || new AnimePackData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - animePacksLength() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - effectFileList(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? (obj || new EffectFile()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - effectFileListLength() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - numCells() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numAnimePacks() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numEffectFileList() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startProjectData(builder) { - builder.startObject(10); - } - static addDataId(builder, dataId) { - builder.addFieldInt32(0, dataId, 0); - } - static addVersion(builder, version) { - builder.addFieldInt32(1, version, 0); - } - static addFlags(builder, flags) { - builder.addFieldInt32(2, flags, 0); - } - static addImageBaseDir(builder, imageBaseDirOffset) { - builder.addFieldOffset(3, imageBaseDirOffset, 0); - } - static addCells(builder, cellsOffset) { - builder.addFieldOffset(4, cellsOffset, 0); - } - static createCellsVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startCellsVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addAnimePacks(builder, animePacksOffset) { - builder.addFieldOffset(5, animePacksOffset, 0); - } - static createAnimePacksVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startAnimePacksVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addEffectFileList(builder, effectFileListOffset) { - builder.addFieldOffset(6, effectFileListOffset, 0); - } - static createEffectFileListVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startEffectFileListVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addNumCells(builder, numCells) { - builder.addFieldInt16(7, numCells, 0); - } - static addNumAnimePacks(builder, numAnimePacks) { - builder.addFieldInt16(8, numAnimePacks, 0); - } - static addNumEffectFileList(builder, numEffectFileList) { - builder.addFieldInt16(9, numEffectFileList, 0); - } - static endProjectData(builder) { - const offset = builder.endObject(); - return offset; - } - static finishProjectDataBuffer(builder, offset) { - builder.finish(offset, "SSFB"); - } - static finishSizePrefixedProjectDataBuffer(builder, offset) { - builder.finish(offset, "SSFB", true); - } - static createProjectData(builder, dataId, version, flags, imageBaseDirOffset, cellsOffset, animePacksOffset, effectFileListOffset, numCells, numAnimePacks, numEffectFileList) { - ProjectData.startProjectData(builder); - ProjectData.addDataId(builder, dataId); - ProjectData.addVersion(builder, version); - ProjectData.addFlags(builder, flags); - ProjectData.addImageBaseDir(builder, imageBaseDirOffset); - ProjectData.addCells(builder, cellsOffset); - ProjectData.addAnimePacks(builder, animePacksOffset); - ProjectData.addEffectFileList(builder, effectFileListOffset); - ProjectData.addNumCells(builder, numCells); - ProjectData.addNumAnimePacks(builder, numAnimePacks); - ProjectData.addNumEffectFileList(builder, numEffectFileList); - return ProjectData.endProjectData(builder); - } - } - class userDataInteger { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - integer() { - return this.bb.readInt32(this.bb_pos); - } - static sizeOf() { - return 4; - } - static createuserDataInteger(builder, integer) { - builder.prep(4, 4); - builder.writeInt32(integer); - return builder.offset(); - } - } - class userDataPoint { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - x() { - return this.bb.readInt32(this.bb_pos); - } - y() { - return this.bb.readInt32(this.bb_pos + 4); - } - static sizeOf() { - return 8; - } - static createuserDataPoint(builder, x, y) { - builder.prep(4, 8); - builder.writeInt32(y); - builder.writeInt32(x); - return builder.offset(); - } - } - class userDataRect { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - x() { - return this.bb.readInt32(this.bb_pos); - } - y() { - return this.bb.readInt32(this.bb_pos + 4); - } - w() { - return this.bb.readInt32(this.bb_pos + 8); - } - h() { - return this.bb.readInt32(this.bb_pos + 12); - } - static sizeOf() { - return 16; - } - static createuserDataRect(builder, x, y, w, h) { - builder.prep(4, 16); - builder.writeInt32(h); - builder.writeInt32(w); - builder.writeInt32(y); - builder.writeInt32(x); - return builder.offset(); - } - } - class userDataString { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsuserDataString(bb, obj) { - return (obj || new userDataString()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsuserDataString(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new userDataString()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - length() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - data(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - static startuserDataString(builder) { - builder.startObject(2); - } - static addLength(builder, length) { - builder.addFieldInt32(0, length, 0); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(1, dataOffset, 0); - } - static enduserDataString(builder) { - const offset = builder.endObject(); - return offset; - } - static createuserDataString(builder, length, dataOffset) { - userDataString.startuserDataString(builder); - userDataString.addLength(builder, length); - userDataString.addData(builder, dataOffset); - return userDataString.enduserDataString(builder); - } - } - let Utils$1 = class Utils { - static getProjectData(bytes) { - const buf = new ByteBuffer(bytes); - return ProjectData.getRootAsProjectData(buf); - } - }; - class Utils2 { - static getProjectData(bytes) { - return Utils$1.getProjectData(bytes); - } - } - let Player$1 = class Player { - constructor(ssfbData, animePackName = null, animeName = null) { - this.curAnimePackName = null; - this.curAnimeName = null; - this.curAnimation = null; - this.curAnimePackData = null; - this._animePackIdx = -1; - this._parentIndex = []; - this._prio2index = []; - this.userData = []; - this.frameDataCache = null; - this.currentCachedFrameNumber = -1; - this.defaultFrameMap = []; - this._uint32 = new Uint32Array(1); - this._float32 = new Float32Array(this._uint32.buffer); - if (Object.prototype.hasOwnProperty.call(ssfbData, "bb")) { - this._fbObj = ssfbData; - } else { - this._fbObj = Utils2.getProjectData(ssfbData); - } - if (animePackName !== null && animeName !== null) { - this.Setup(animePackName, animeName); - } - } - get fbObj() { - return this._fbObj; - } - get animePackName() { - return this.curAnimePackName; - } - get animeName() { - return this.curAnimeName; - } - get animePackIdx() { - return this._animePackIdx; - } - get animePackData() { - return this.curAnimePackData; - } - get animationData() { - return this.curAnimation; - } - get parentIndex() { - return this._parentIndex; - } - get prio2index() { - return this._prio2index; - } - /** - * Setup - * @param {string} animePackName - The name of animePack(SSAE). - * @param {string} animeName - The name of animation. - */ - Setup(animePackName, animeName) { - this.clearCaches(); - const animePacksLength = this._fbObj.animePacksLength(); - let found = false; - for (let i = 0; i < animePacksLength; i++) { - if (this._fbObj.animePacks(i).name() === animePackName) { - let j; - const animationsLength = this._fbObj.animePacks(i).animationsLength(); - for (j = 0; j < animationsLength; j++) { - if (this._fbObj.animePacks(i).animations(j).name() === animeName) { - this.curAnimePackName = animePackName; - this.curAnimeName = animeName; - this.curAnimePackData = this._fbObj.animePacks(i); - this.curAnimation = this.curAnimePackData.animations(j); - found = true; - break; - } - } - if (!found) { - continue; - } - const defaultDataLength = this.curAnimation.defaultDataLength(); - for (let j2 = 0; j2 < defaultDataLength; j2++) { - const curDefaultData = this.curAnimation.defaultData(j2); - this.defaultFrameMap[curDefaultData.index()] = curDefaultData; - } - this._animePackIdx = i; - const partsLength = this.curAnimePackData.partsLength(); - this._parentIndex = new Array(partsLength); - for (j = 0; j < partsLength; j++) { - const index = this.curAnimePackData.parts(j).index(); - this._parentIndex[index] = this._fbObj.animePacks(i).parts(j).parentIndex(); - } - } - } - if (!found) { - throw Error("not found animePackName: " + animePackName + " animeName: " + animeName); - } - } - clearCaches() { - this._prio2index = []; - this.userData = []; - this.frameDataCache = null; - this.currentCachedFrameNumber = -1; - this.defaultFrameMap = []; - } - /** - * ユーザーデータコールバックの設定 - * @param fn - * @constructor - * - * ユーザーデータのフォーマット - * data = [[d0,d1,...,d10],[da0,da1,...,da10],...]) - * data.length : 当該フレームでユーザーデータの存在するパーツ(レイヤー)数 - * d0 : パーツ(レイヤー)番号 - * d1 : 有効データビット(&1:int, &2:rect(int*4), &4:pos(int*2), &8:string) - * d2 : int(int) - * d3 : rect0(int) - * d4 : rect1(int) - * d5 : rect2(int) - * d6 : rect3(int) - * d7 : pos0(int) - * d8 : pos1(int) - * d9 : string.length(int) - * d10: string(string) - * - */ - /** - * ユーザーデータの存在チェック - * @param {number} frameNumber - フレーム番号 - * @return {boolean} - 存在するかどうか - */ - HaveUserData(frameNumber) { - if (this.userData[frameNumber] === null) { - return false; - } - if (this.userData[frameNumber] !== void 0) { - return true; - } - for (let k = 0; k < this.curAnimation.userDataLength(); k++) { - if (frameNumber === this.curAnimation.userData(k).frameIndex()) { - this.userData[frameNumber] = this.curAnimation.userData(k); - return true; - } - } - this.userData[frameNumber] = null; - return false; - } - /** - * ユーザーデータの取得 - * @param {number} frameNumber - フレーム番号 - * @return {array} - ユーザーデータ - */ - GetUserData(frameNumber) { - if (this.HaveUserData(frameNumber) === false) { - return; - } - const framedata = this.userData[frameNumber]; - const layers = framedata.dataLength(); - let id = 0; - let data = []; - for (let i = 0; i < layers; i++) { - const bit = framedata.data(i).flags(); - const partsID = framedata.data(i).arrayIndex(); - let d_int = null; - let d_rect_x = null; - let d_rect_y = null; - let d_rect_w = null; - let d_rect_h = null; - let d_pos_x = null; - let d_pos_y = null; - let d_string_length = null; - let d_string = null; - if (bit & 1) { - d_int = framedata.data(i).data(id, new userDataInteger()).integer(); - id++; - } - if (bit & 2) { - d_rect_x = framedata.data(i).data(id, new userDataRect()).x(); - d_rect_y = framedata.data(i).data(id, new userDataRect()).y(); - d_rect_w = framedata.data(i).data(id, new userDataRect()).w(); - d_rect_h = framedata.data(i).data(id, new userDataRect()).h(); - id++; - } - if (bit & 4) { - d_pos_x = framedata.data(i).data(id, new userDataPoint()).x(); - d_pos_y = framedata.data(i).data(id, new userDataPoint()).y(); - id++; - } - if (bit & 8) { - d_string_length = framedata.data(i).data(id, new userDataString()).length(); - d_string = framedata.data(i).data(id, new userDataString()).data(); - id++; - } - data.push([partsID, bit, d_int, d_rect_x, d_rect_y, d_rect_w, d_rect_h, d_pos_x, d_pos_y, d_string_length, d_string]); - } - return data; - } - /** - * int型からfloat型に変換する - * @return {floatView[0]} - float型に変換したデータ - */ - I2F(i) { - this._uint32[0] = i; - return this._float32[0]; - } - /** - * 1フレーム分のデータを取得する(未設定項目はデフォルト) - * [注意]現verでは未対応項目があると正常動作しない可能性があります - * @param {number} frameNumber - フレーム番号 - */ - GetFrameData(frameNumber) { - if (this.currentCachedFrameNumber === frameNumber && this.frameDataCache) { - return this.frameDataCache; - } - const layers = this.curAnimation.defaultDataLength(); - let frameData = new Array(layers); - this._prio2index = new Array(layers); - const curFrameData = this.curAnimation.frameData(frameNumber); - for (let i = 0; i < layers; i++) { - const curPartState = curFrameData.states(i); - const index = curPartState.index(); - let f1 = curPartState.flag1(); - let f2 = curPartState.flag2(); - let fd = this.GetDefaultDataByIndex(index); - fd.flag1 = f1; - fd.flag2 = f2; - let id = 0; - if (f1 & PART_FLAG.INVISIBLE) fd.f_hide = true; - if (f1 & PART_FLAG.FLIP_H) fd.f_flipH = true; - if (f1 & PART_FLAG.FLIP_V) fd.f_flipV = true; - if (f1 & PART_FLAG.CELL_INDEX) fd.cellIndex = curPartState.data(id++); - if (f1 & PART_FLAG.POSITION_X) fd.positionX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.POSITION_Y) fd.positionY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.POSITION_Z) id++; - if (f1 & PART_FLAG.PIVOT_X) fd.pivotX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.PIVOT_Y) fd.pivotY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.ROTATIONX) id++; - if (f1 & PART_FLAG.ROTATIONY) id++; - if (f1 & PART_FLAG.ROTATIONZ) fd.rotationZ = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.SCALE_X) fd.scaleX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.SCALE_Y) fd.scaleY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.LOCALSCALE_X) fd.localscaleX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.LOCALSCALE_Y) fd.localscaleY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.OPACITY) fd.opacity = curPartState.data(id++); - if (f1 & PART_FLAG.LOCALOPACITY) fd.localopacity = curPartState.data(id++); - if (f1 & PART_FLAG.SIZE_X) fd.size_X = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.SIZE_Y) fd.size_Y = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.U_MOVE) fd.uv_move_X = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.V_MOVE) fd.uv_move_Y = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.UV_ROTATION) fd.uv_rotation = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.U_SCALE) fd.uv_scale_X = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.V_SCALE) fd.uv_scale_Y = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.BOUNDINGRADIUS) id++; - if (f1 & PART_FLAG.MASK) fd.masklimen = curPartState.data(id++); - if (f1 & PART_FLAG.PRIORITY) fd.priority = curPartState.data(id++); - if (f1 & PART_FLAG.INSTANCE_KEYFRAME) { - fd.instanceValue_curKeyframe = curPartState.data(id++); - fd.instanceValue_startFrame = curPartState.data(id++); - fd.instanceValue_endFrame = curPartState.data(id++); - fd.instanceValue_loopNum = curPartState.data(id++); - fd.instanceValue_speed = this.I2F(curPartState.data(id++)); - fd.instanceValue_loopflag = curPartState.data(id++); - } - if (f1 & PART_FLAG.EFFECT_KEYFRAME) { - fd.effectValue_curKeyframe = curPartState.data(id++); - fd.effectValue_startTime = curPartState.data(id++); - fd.effectValue_speed = this.I2F(curPartState.data(id++)); - fd.effectValue_loopflag = curPartState.data(id++); - } - if (f1 & PART_FLAG.VERTEX_TRANSFORM) { - fd.f_mesh = true; - const f = fd.i_transformVerts = curPartState.data(id++); - if (f & 1) { - fd.u00 = this.I2F(curPartState.data(id++)); - fd.v00 = this.I2F(curPartState.data(id++)); - } - if (f & 2) { - fd.u01 = this.I2F(curPartState.data(id++)); - fd.v01 = this.I2F(curPartState.data(id++)); - } - if (f & 4) { - fd.u10 = this.I2F(curPartState.data(id++)); - fd.v10 = this.I2F(curPartState.data(id++)); - } - if (f & 8) { - fd.u11 = this.I2F(curPartState.data(id++)); - fd.v11 = this.I2F(curPartState.data(id++)); - } - } - if (f1 & PART_FLAG.PARTS_COLOR) { - const f = curPartState.data(id++); - fd.colorBlendType = f & 255; - fd.useColorMatrix = fd.colorBlendType !== 1; - if (f & 4096) { - fd.colorRate = this.I2F(curPartState.data(id++)); - const bf = curPartState.data(id++); - const bf2 = curPartState.data(id++); - fd.colorArgb32 = bf << 16 | bf2; - fd.partsColorARGB = fd.colorArgb32 >>> 0; - if (fd.colorBlendType === 1) { - fd.tint = fd.colorArgb32 & 16777215; - } - } - } - if (f2 & PART_FLAG2.MESHDATA) { - const meshUv = this.curAnimation.meshsDataUv(index); - fd.meshIsBind = meshUv.uv(0); - fd.meshNum = meshUv.uv(1); - let mp = new Float32Array(fd.meshNum * 3); - for (let idx = 0; idx < fd.meshNum; idx++) { - const mx = this.I2F(curPartState.data(id++)); - const my = this.I2F(curPartState.data(id++)); - const mz = this.I2F(curPartState.data(id++)); - mp[idx * 3 + 0] = mx; - mp[idx * 3 + 1] = my; - mp[idx * 3 + 2] = mz; - } - fd.meshDataPoint = mp; - } - frameData[index] = fd; - this._prio2index[i] = index; - if (this.curAnimePackData.parts(index).type() === 0) { - frameData[index].cellIndex = -2; - } - } - this.frameDataCache = frameData; - this.currentCachedFrameNumber = frameNumber; - return frameData; - } - /** - * デフォルトデータを取得する - * @param {number} id - パーツ(レイヤー)ID - * @return {array} - データ - */ - GetDefaultDataByIndex(id) { - const curDefaultData = this.defaultFrameMap[id]; - let dfd = new FrameData(); - dfd.index = curDefaultData.index(); - dfd.lowflag = curDefaultData.lowflag(); - dfd.highflag = curDefaultData.highflag(); - dfd.priority = curDefaultData.priority(); - dfd.cellIndex = curDefaultData.cellIndex(); - dfd.opacity = curDefaultData.opacity(); - dfd.localopacity = curDefaultData.localopacity(); - dfd.masklimen = curDefaultData.masklimen(); - dfd.positionX = curDefaultData.positionX(); - dfd.positionY = curDefaultData.positionY(); - dfd.pivotX = curDefaultData.pivotX(); - dfd.pivotY = curDefaultData.pivotY(); - dfd.rotationX = curDefaultData.rotationX(); - dfd.rotationY = curDefaultData.rotationY(); - dfd.rotationZ = curDefaultData.rotationZ(); - dfd.scaleX = curDefaultData.scaleX(); - dfd.scaleY = curDefaultData.scaleY(); - dfd.localscaleX = curDefaultData.localscaleX(); - dfd.localscaleY = curDefaultData.localscaleY(); - dfd.size_X = curDefaultData.sizeX(); - dfd.size_Y = curDefaultData.sizeY(); - dfd.uv_move_X = curDefaultData.uvMoveX(); - dfd.uv_move_Y = curDefaultData.uvMoveY(); - dfd.uv_rotation = curDefaultData.uvRotation(); - dfd.uv_scale_X = curDefaultData.uvScaleX(); - dfd.uv_scale_Y = curDefaultData.uvScaleY(); - dfd.boundingRadius = curDefaultData.boundingRadius(); - dfd.instanceValue_curKeyframe = curDefaultData.instanceValueCurKeyframe(); - dfd.instanceValue_endFrame = curDefaultData.instanceValueEndFrame(); - dfd.instanceValue_startFrame = curDefaultData.instanceValueStartFrame(); - dfd.instanceValue_loopNum = curDefaultData.instanceValueLoopNum(); - dfd.instanceValue_speed = curDefaultData.instanceValueSpeed(); - dfd.instanceValue_loopflag = curDefaultData.instanceValueLoopflag(); - dfd.effectValue_curKeyframe = curDefaultData.effectValueCurKeyframe(); - dfd.effectValue_startTime = curDefaultData.effectValueStartTime(); - dfd.effectValue_speed = curDefaultData.effectValueSpeed(); - dfd.effectValue_loopflag = curDefaultData.effectValueLoopflag(); - dfd.f_hide = false; - dfd.f_flipH = false; - dfd.f_flipV = false; - dfd.f_mesh = false; - dfd.i_transformVerts = 0; - dfd.u00 = 0; - dfd.v00 = 0; - dfd.u01 = 0; - dfd.v01 = 0; - dfd.u10 = 0; - dfd.v10 = 0; - dfd.u11 = 0; - dfd.v11 = 0; - dfd.useColorMatrix = false; - dfd.colorBlendType = 0; - dfd.colorRate = 0; - dfd.colorArgb32 = 0; - dfd.meshIsBind = 0; - dfd.meshNum = 0; - dfd.meshDataPoint = null; - dfd.flag1 = 0; - dfd.flag2 = 0; - dfd.partsColorARGB = 0; - return dfd; - } - /** - * 親を遡って不透明度を継承する - * @param {number} opacity - 透明度 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {number} - 透明度 - */ - InheritOpacity(opacity, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - opacity = data.opacity / 255; - if (this._parentIndex[partId] >= 0) { - opacity = this.InheritOpacity(opacity, this._parentIndex[partId], frameNumber); - } - return opacity; - } - /** - * 親を遡って座標変換する(ローカルアトリビュート適用) - * @param {array} verts - 頂点情報配列 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformVertsLocal(verts, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - for (let i = 0; i < verts.length / 2; i++) { - let x = verts[i * 2]; - let y = verts[i * 2 + 1]; - if (data.i_transformVerts & 1 && i === 1) { - x += data.u00; - y -= data.v00; - } - if (data.i_transformVerts & 2 && i === 2) { - x += data.u01; - y -= data.v01; - } - if (data.i_transformVerts & 4 && i === 3) { - x += data.u10; - y -= data.v10; - } - if (data.i_transformVerts & 8 && i === 4) { - x += data.u11; - y -= data.v11; - } - x *= data.scaleX * data.localscaleX; - y *= data.scaleY * data.localscaleY; - verts[i * 2] = cos * x - sin * y + data.positionX; - verts[i * 2 + 1] = sin * x + cos * y - data.positionY; - if (data.f_flipH) { - verts[i * 2] = verts[0] * 2 - verts[i * 2]; - } - if (data.f_flipV) { - verts[i * 2 + 1] = verts[1] * 2 - verts[i * 2 + 1]; - } - } - if (this._parentIndex[partId] >= 0) { - verts = this.TransformVerts(verts, this._parentIndex[partId], frameNumber); - } - return verts; - } - /** - * 親を遡って座標変換する(ローカルアトリビュート適用) - * @param {array} verts - 頂点情報配列 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformMeshVertsLocal(verts, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - for (let i = 0; i < verts.length / 2; i++) { - let x = verts[i * 2]; - let y = verts[i * 2 + 1]; - x *= data.scaleX * data.localscaleX; - y *= data.scaleY * data.localscaleY; - verts[i * 2] = cos * x - sin * y + data.positionX; - verts[i * 2 + 1] = sin * x + cos * y - data.positionY; - } - if (this._parentIndex[partId] >= 0) { - verts = this.TransformVerts(verts, this._parentIndex[partId], frameNumber); - } - return verts; - } - /** - * 親を遡って座標変換する(ローカルアトリビュート適用) - * @param {array} pos - 頂点情報配列 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformPositionLocal(pos, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - pos[4] += -data.rotationZ; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - const x = pos[0] * data.scaleX * data.localscaleX; - const y = pos[1] * data.scaleY * data.localscaleY; - pos[2] *= data.scaleX * data.localscaleX; - pos[3] *= data.scaleY * data.localscaleY; - pos[0] = cos * x - sin * y + data.positionX; - pos[1] = sin * x + cos * y - data.positionY; - if (this._parentIndex[partId] >= 0) { - pos = this.TransformPosition(pos, this._parentIndex[partId], frameNumber); - } - return pos; - } - /** - * 5頂点の中間点を求める - * @param {number} cx - 元の中心点 - * @param {number} cy - 元の中心点 - * @param {number} LUx - 左上座標 - * @param {number} LUy - 左上座標 - * @param {number} RUx - 右上座標 - * @param {number} RUy - 右上座標 - * @param {number} LDx - 左下座標 - * @param {number} LDy - 左下座標 - * @param {number} RDx - 右下座標 - * @param {number} RDy - 右下座標 - * @param vec2 - * @return {array} vec2 - 4頂点から算出した中心点の座標 - */ - static CoordinateGetDiagonalIntersection(cx, cy, LUx, LUy, RUx, RUy, LDx, LDy, RDx, RDy, vec2) { - const c1 = (LDy - RUy) * (LDx - LUx) - (LDx - RUx) * (LDy - LUy); - const c2 = (RDx - LUx) * (LDy - LUy) - (RDy - LUy) * (LDx - LUx); - const c3 = (RDx - LUx) * (LDy - RUy) - (RDy - LUy) * (LDx - RUx); - if (c3 <= 0 && c3 >= 0) return vec2; - const ca = c1 / c3; - const cb = c2 / c3; - if (0 <= ca && 1 >= ca && (0 <= cb && 1 >= cb)) { - cx = LUx + ca * (RDx - LUx); - cy = LUy + ca * (RDy - LUy); - } - vec2[0] = cx; - vec2[1] = cy; - return vec2; - } - /** - * 親を遡って座標変換する - * @param {array} verts - 頂点情報配列 - * @param {number} id - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformVerts(verts, id, frameNumber) { - const data = this.GetFrameData(frameNumber)[id]; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - for (let i = 0; i < verts.length / 2; i++) { - let x = verts[i * 2]; - let y = verts[i * 2 + 1]; - x *= data.scaleX; - y *= data.scaleY; - verts[i * 2] = cos * x - sin * y + data.positionX; - verts[i * 2 + 1] = sin * x + cos * y - data.positionY; - if (data.f_flipH) { - verts[i * 2] = verts[0] * 2 - verts[i * 2]; - } - if (data.f_flipV) { - verts[i * 2 + 1] = verts[1] * 2 - verts[i * 2 + 1]; - } - } - if (this._parentIndex[id] >= 0) { - verts = this.TransformVerts(verts, this._parentIndex[id], frameNumber); - } - return verts; - } - /** - * 親を遡って座標変換する - * @param {array} pos - 頂点情報配列 - * @param {number} id - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformPosition(pos, id, frameNumber) { - const data = this.GetFrameData(frameNumber)[id]; - pos[4] += -data.rotationZ; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - const x = pos[0] * data.scaleX; - const y = pos[1] * data.scaleY; - pos[2] *= data.scaleX; - pos[3] *= data.scaleY; - pos[0] = cos * x - sin * y + data.positionX; - pos[1] = sin * x + cos * y - data.positionY; - if (this._parentIndex[id] >= 0) { - pos = this.TransformPosition(pos, this._parentIndex[id], frameNumber); - } - return pos; - } - /** - * 矩形セルメッシュの頂点情報のみ取得 - * @param {ssfblib.Cell} cell - セル - * @param {array} data - アニメーションフレームデータ - * @param verts - * @return {array} - 頂点情報配列 - */ - static GetVerts(cell, data, verts) { - const w = data.size_X / 2; - const h = data.size_Y / 2; - const px = data.size_X * -(data.pivotX + cell.pivotX()); - const py = data.size_Y * (data.pivotY + cell.pivotY()); - verts.set([px, py, px - w, py - h, px + w, py - h, px - w, py + h, px + w, py + h]); - return verts; - } - /** - * 矩形セルメッシュの頂点情報のみ取得 - * @param {ssfblib.Cell} cell - セル - * @param {array} data - アニメーションフレームデータ - * @param verts - * @return {array} - 頂点情報配列 - */ - static GetMeshVerts(cell, data, verts) { - for (let idx = 0; idx < data.meshNum; idx++) { - verts[ - idx * 2 - /*+ 0*/ - ] = data.meshDataPoint[ - idx * 3 - /* + 0 */ - ]; - verts[idx * 2 + 1] = -data.meshDataPoint[idx * 3 + 1]; - } - return verts; - } - static GetDummyVerts() { - return new Float32Array([0, 0, -0.5, -0.5, 0.5, -0.5, -0.5, 0.5, 0.5, 0.5]); - } - }; - class PixiResourceLoaderImpl { - constructor() { - } - load(sspjfile, sspjMap, onComplete) { - pixi_js.Assets.addBundle(sspjfile, sspjMap); - pixi_js.Assets.loadBundle(sspjfile).then(() => { - if (onComplete !== null) { - onComplete(null); - } - }).catch((e) => { - if (onComplete !== null) { - onComplete(e); - } - }); - } - unload(sspjfile, sspjMap, onComplete) { - pixi_js.Assets.unloadBundle(sspjfile).then(() => { - if (onComplete !== null) { - onComplete(null); - } - }).catch((error) => { - if (onComplete !== null) { - onComplete(error); - } - }); - } - texture(key) { - return pixi_js.Assets.get(key); - } - } - class SS6ProjectResourceLoader { - constructor() { - this.loader = new PixiResourceLoaderImpl(); - } - load(sspjfile, sspjMap, onComplete) { - return this.loader.load(sspjfile, sspjMap, onComplete); - } - unload(sspjfile, sspjMap, onComplete = null) { - return this.loader.unload(sspjfile, sspjMap, onComplete); - } - texture(key) { - return this.loader.texture(key); - } - } - class SS6Project { - constructor(arg1, arg2, arg3, arg4) { - this.sspjMap = {}; - this.resourceLoader = new SS6ProjectResourceLoader(); - if (typeof arg1 === "string" && arg3 === void 0) { - let ssfbPath = arg1; - this.ssfbPath = ssfbPath; - const index = ssfbPath.lastIndexOf("/"); - this.rootPath = ssfbPath.substring(0, index) + "/"; - this.ssfbFile = ssfbPath.substring(index + 1); - this.onComplete = arg2 === void 0 ? null : arg2; - this.status = 0; - this.LoadFlatBuffersProject(); - } else if (typeof arg2 === "object" && arg2.constructor === Uint8Array) { - this.ssfbPath = null; - this.rootPath = null; - this.ssfbFile = arg1; - let ssfbByte = arg2; - let imageBinaryMap = arg3; - this.onComplete = arg4 === void 0 ? null : arg4; - this.load(ssfbByte, imageBinaryMap); - } - } - getBundle() { - return this.ssfbFile; - } - getTexture(key) { - return this.resourceLoader.texture(key); - } - dispose(callback = null) { - this.resourceLoader.unload(this.getBundle(), this.sspjMap, (error) => { - if (callback !== null) { - callback(); - } - }); - } - /** - * Load json and parse (then, load textures) - */ - LoadFlatBuffersProject() { - const self = this; - fetch(this.ssfbPath, { method: "get" }).then((response) => { - if (response.ok) { - return Promise.resolve(response.arrayBuffer()); - } else { - return Promise.reject(new Error(response.statusText)); - } - }).then((a) => { - self.fbObj = Utils2.getProjectData(new Uint8Array(a)); - self.LoadCellResources(); - }).catch((error) => { - if (this.onComplete !== null) { - this.onComplete(null, error); - } - }); - } - /** - * Load textures - */ - LoadCellResources() { - let ids = []; - this.sspjMap = {}; - for (let i = 0; i < this.fbObj.cellsLength(); i++) { - const cellMap = this.fbObj.cells(i).cellMap(); - const cellMapIndex = cellMap.index(); - if (!ids.some(function(id) { - return id === cellMapIndex; - })) { - ids.push(cellMapIndex); - const name = cellMap.name(); - this.sspjMap[name] = this.rootPath + cellMap.imagePath(); - } - } - const self = this; - this.resourceLoader.load(this.getBundle(), this.sspjMap, (error) => { - if (error === null) { - self.status = 1; - if (self.onComplete !== null) { - self.onComplete(this, null); - } - } else { - if (this.onComplete !== null) { - this.onComplete(null, error); - } - } - }); - } - load(bytes, imageBinaryMap) { - this.fbObj = Utils2.getProjectData(bytes); - let assetMap = {}; - for (let imageName in imageBinaryMap) { - const binary = imageBinaryMap[imageName]; - let b = ""; - const len = binary.byteLength; - for (let i = 0; i < len; i++) { - b += String.fromCharCode(binary[i]); - } - assetMap[imageName] = "data:image/png;base64," + btoa(b); - } - const self = this; - this.resourceLoader.load(this.getBundle(), assetMap, (error) => { - if (error === null) { - self.status = 1; - if (self.onComplete !== null) { - self.onComplete(this, null); - } - } else { - if (this.onComplete !== null) { - this.onComplete(null, error); - } - } - }); - } - } - class SS6PlayerInstanceKeyParam { - constructor() { - this.refStartframe = 0; - this.refEndframe = 0; - this.refSpeed = 1; - this.refloopNum = 0; - this.infinity = false; - this.reverse = false; - this.pingpong = false; - this.independent = false; - } - } - class SS6Player extends pixi_js.Container { - /** - * SS6Player (extends PIXI.Container) - * @constructor - * @param {SS6Project} ss6project - SS6Project that contains animations. - * @param {string} animePackName - The name of animePack(SSAE). - * @param {string} animeName - The name of animation. - */ - constructor(ss6project, animePackName = null, animeName = null) { - super(); - this.liveFrame = []; - this.colorMatrixFilterCache = []; - this.parentAlpha = 1; - this.prevCellID = []; - this.prevPartObject = []; - this.changeCellID = []; - this.changeVisible = []; - this.changeTint = []; - this.substituteOverWrite = []; - this.substituteKeyParam = []; - this.alphaBlendType = []; - this.defaultColorFilter = new pixi_js.ColorMatrixFilter(); - this._instancePos = new Float32Array(5); - this._CoordinateGetDiagonalIntersectionVec2 = new Float32Array(2); - this.isRenderGroup = true; - this.ss6project = ss6project; - this.playerLib = new Player$1(ss6project.fbObj, animePackName, animeName); - this.parentAlpha = 1; - if (animePackName !== null && animeName !== null) { - this.Setup(animePackName, animeName); - } - this.on("added", (...args) => { - pixi_js.Ticker.shared.add(this.Update, this); - }, this); - this.on("removed", (...args) => { - pixi_js.Ticker.shared.remove(this.Update, this); - }, this); - } - get startFrame() { - return this._startFrame; - } - get endFrame() { - return this._endFrame; - } - get totalFrame() { - return this.playerLib.animationData.totalFrames(); - } - get fps() { - return this.playerLib.animationData.fps(); - } - get frameNo() { - return Math.floor(this._currentFrame); - } - set loop(loop) { - this._loops = loop; - } - get loop() { - return this._loops; - } - get isPlaying() { - return this._isPlaying; - } - get isPausing() { - return this._isPausing; - } - get animePackName() { - return this.playerLib.animePackName; - } - get animeName() { - return this.playerLib.animeName; - } - /** - * Setup - * @param {string} animePackName - The name of animePack(SSAE). - * @param {string} animeName - The name of animation. - */ - Setup(animePackName, animeName) { - this.playerLib.Setup(animePackName, animeName); - this.clearCaches(); - const animePackData = this.playerLib.animePackData; - const partsLength = animePackData.partsLength(); - this.prevCellID = new Array(partsLength); - this.prevPartObject = new Array(partsLength); - this.changeCellID = new Array(partsLength); - this.changeVisible = new Array(partsLength); - this.changeTint = new Array(partsLength); - this.substituteOverWrite = new Array(partsLength); - this.substituteKeyParam = new Array(partsLength); - for (let j = 0; j < partsLength; j++) { - const index = animePackData.parts(j).index(); - this.prevCellID[index] = -1; - this.prevPartObject[index] = null; - this.changeCellID[index] = -1; - this.changeVisible[index] = true; - this.changeTint[index] = null; - this.substituteOverWrite[index] = null; - this.substituteKeyParam[index] = null; - } - this.alphaBlendType = this.GetPartsBlendMode(); - this._isPlaying = false; - this._isPausing = true; - this._startFrame = this.playerLib.animationData.startFrames(); - this._endFrame = this.playerLib.animationData.endFrames(); - this._currentFrame = this.playerLib.animationData.startFrames(); - this.nextFrameTime = 0; - this._loops = -1; - this.skipEnabled = true; - this.updateInterval = 1e3 / this.playerLib.animationData.fps(); - this.playDirection = 1; - this.onUserDataCallback = null; - this.playEndCallback = null; - this.parentAlpha = 1; - } - clearCaches() { - this.liveFrame = []; - this.colorMatrixFilterCache = []; - } - Update(ticker) { - this.UpdateInternal(ticker.deltaMS); - } - /** - * Update is called PIXI.ticker - * @param {number} delta - expected 1 - */ - UpdateInternal(delta, rewindAfterReachingEndFrame = true) { - const elapsedTime = delta; - const toNextFrame = this._isPlaying && !this._isPausing; - if (toNextFrame && this.updateInterval !== 0) { - this.nextFrameTime += elapsedTime; - if (this.nextFrameTime >= this.updateInterval) { - let playEndFlag = false; - const step = this.nextFrameTime / this.updateInterval; - this.nextFrameTime -= this.updateInterval * step; - let s = this.skipEnabled ? step * this.playDirection : this.playDirection; - let next = this._currentFrame + s; - let nextFrameNo = Math.floor(next); - let nextFrameDecimal = next - nextFrameNo; - let currentFrameNo = Math.floor(this._currentFrame); - if (this.playDirection >= 1) { - for (let c = nextFrameNo - currentFrameNo; c; c--) { - let incFrameNo = currentFrameNo + 1; - if (incFrameNo > this._endFrame) { - if (this._loops === -1) { - incFrameNo = this._startFrame; - } else { - this._loops--; - playEndFlag = true; - if (this._loops === 0) { - this._isPlaying = false; - incFrameNo = rewindAfterReachingEndFrame ? this._startFrame : this._endFrame; - break; - } else { - incFrameNo = this._startFrame; - } - } - } - currentFrameNo = incFrameNo; - if (this._isPlaying) { - if (this.playerLib.HaveUserData(currentFrameNo)) { - if (this.onUserDataCallback !== null) { - this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); - } - } - } - } - } - if (this.playDirection <= -1) { - for (let c = currentFrameNo - nextFrameNo; c; c--) { - let decFrameNo = currentFrameNo - 1; - if (decFrameNo < this._startFrame) { - if (this._loops === -1) { - decFrameNo = this._endFrame; - } else { - this._loops--; - playEndFlag = true; - if (this._loops === 0) { - this._isPlaying = false; - decFrameNo = rewindAfterReachingEndFrame ? this._endFrame : this._startFrame; - break; - } else { - decFrameNo = this._endFrame; - } - } - } - currentFrameNo = decFrameNo; - if (this._isPlaying) { - if (this.playerLib.HaveUserData(currentFrameNo)) { - if (this.onUserDataCallback !== null) { - this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); - } - } - } - } - } - this._currentFrame = currentFrameNo + nextFrameDecimal; - if (playEndFlag) { - if (this.playEndCallback !== null) { - this.playEndCallback(this); - } - } - this.SetFrameAnimation(Math.floor(this._currentFrame), step); - } - } else { - this.SetFrameAnimation(Math.floor(this._currentFrame)); - } - } - /** - * アニメーションの速度を設定する (deprecated この関数は削除される可能性があります) - * @param {number} fps - アニメーション速度(frame per sec.) - * @param {boolean} _skipEnabled - 描画更新が間に合わないときにフレームをスキップするかどうか - */ - SetAnimationFramerate(fps, _skipEnabled = true) { - if (fps <= 0) return; - this.updateInterval = 1e3 / fps; - this.skipEnabled = _skipEnabled; - } - /** - * アニメーションの速度を設定する - * @param {number} fpsRate - アニメーション速度(設定値に対する乗率)負数設定で逆再生 - * @param {boolean} _skipEnabled - 描画更新が間に合わないときにフレームをスキップするかどうか - */ - SetAnimationSpeed(fpsRate, _skipEnabled = true) { - if (fpsRate === 0) return; - this.playDirection = fpsRate > 0 ? 1 : -1; - this.updateInterval = 1e3 / (this.playerLib.animationData.fps() * fpsRate * this.playDirection); - this.skipEnabled = _skipEnabled; - } - /** - * アニメーション再生設定 - * @param {number} _startframe - 開始フレーム番号(マイナス設定でデフォルト値を変更しない) - * @param {number} _endframe - 終了フレーム番号(マイナス設定でデフォルト値を変更しない) - * @param {number} _loops - ループ回数(ゼロもしくはマイナス設定で無限ループ) - */ - SetAnimationSection(_startframe = -1, _endframe = -1, _loops = -1) { - if (_startframe >= 0 && _startframe < this.playerLib.animationData.totalFrames()) { - this._startFrame = _startframe; - } - if (_endframe >= 0 && _endframe < this.playerLib.animationData.totalFrames()) { - this._endFrame = _endframe; - } - if (_loops > 0) { - this._loops = _loops; - } else { - this._loops = -1; - } - this._currentFrame = this.playDirection > 0 ? this._startFrame : this._endFrame; - } - /** - * アニメーション再生を開始する - */ - Play(frameNo) { - this._isPlaying = true; - this._isPausing = false; - let currentFrame = this.playDirection > 0 ? this._startFrame : this._endFrame; - if (frameNo && typeof frameNo === "number") { - currentFrame = frameNo; - } - this._currentFrame = currentFrame; - this.resetLiveFrame(); - const currentFrameNo = Math.floor(this._currentFrame); - this.SetFrameAnimation(currentFrameNo); - if (this.playerLib.HaveUserData(currentFrameNo)) { - if (this.onUserDataCallback !== null) { - this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); - } - } - } - /** - * アニメーション再生を一時停止する - */ - Pause() { - this._isPausing = true; - } - /** - * アニメーション再生を再開する - */ - Resume() { - this._isPausing = false; - } - /** - * アニメーションを停止する - * @constructor - */ - Stop() { - this._isPlaying = false; - } - /** - * アニメーション再生を位置(フレーム)を設定する - */ - SetFrame(frame) { - this._currentFrame = frame; - } - NextFrame() { - const currentFrame = Math.floor(this._currentFrame); - const endFrame = this.endFrame; - if (currentFrame === endFrame) { - return; - } - this.SetFrame(currentFrame + 1); - } - PrevFrame() { - const currentFrame = Math.floor(this._currentFrame); - if (currentFrame === 0) { - return; - } - this.SetFrame(currentFrame - 1); - } - /** - * アニメーションの透明度を設定する - */ - SetAlpha(alpha) { - this.parentAlpha = alpha; - } - /** - * エラー処理 - * @param {any} _error - エラー - */ - ThrowError(_error) { - } - /** - * ユーザーデータコールバックの設定 - * @param fn - * @constructor - * - * ユーザーデータのフォーマット - * data = [[d0,d1,...,d10],[da0,da1,...,da10],...]) - * data.length : 当該フレームでユーザーデータの存在するパーツ(レイヤー)数 - * d0 : パーツ(レイヤー)番号 - * d1 : 有効データビット(&1:int, &2:rect(int*4), &4:pos(int*2), &8:string) - * d2 : int(int) - * d3 : rect0(int) - * d4 : rect1(int) - * d5 : rect2(int) - * d6 : rect3(int) - * d7 : pos0(int) - * d8 : pos1(int) - * d9 : string.length(int) - * d10: string(string) - * - */ - SetUserDataCalback(fn) { - this.onUserDataCallback = fn; - } - /** - * 再生終了時に呼び出されるコールバックを設定します. - * @param fn - * @constructor - * - * ループ回数分再生した後に呼び出される点に注意してください。 - * 無限ループで再生している場合はコールバックが発生しません。 - * - */ - SetPlayEndCallback(fn) { - this.playEndCallback = fn; - } - getCellIndex(sscename, cellname) { - let changeCellIndex = -1; - if (sscename !== "" && cellname !== "") { - const fbObj = this.playerLib.fbObj; - const numCells = this.playerLib.fbObj.numCells(); - for (let i = 0; i < numCells; i++) { - const cell = fbObj.cells(i); - const name1 = cell.name(); - const cellMap = cell.cellMap(); - const name2 = cellMap.name(); - if (cellname === name1 && sscename === name2) { - changeCellIndex = i; - break; - } - } - } - return changeCellIndex; - } - /** - * Retrieves the index of a part based on its name from the anime pack data. - * - * @param {string} partsname - The name of the part to search for. - * @return {number} The index of the part if found, or -1 if the part is not found. - */ - GetPartIndexFromName(partsname) { - const animePackData = this.playerLib.animePackData; - const partsLength = animePackData.partsLength(); - let partIndex = -1; - for (let i = 0; i < partsLength; i++) { - const part = animePackData.parts(i); - const index = part.index(); - const partName = part.name(); - if (partName === partsname) { - partIndex = index; - break; - } - } - return partIndex; - } - /** - * パーツに割り当たるセルを変更します. - * - * @param {string} partsname - パーツ名 - * @param {string} sscename - セルマップ名 - * @param {string} cellname - 表示させたいセル名 - * - * @return {[number, number]} [パーツ名の index, セル名 index] のタプルを返します。見つからない場合は -1 を返します。 - */ - SetPartCell(partsname, sscename, cellname) { - let changeCellIndex = -1; - let partIndex = -1; - if (this.playerLib.animationData) { - changeCellIndex = this.getCellIndex(sscename, cellname); - partIndex = this.GetPartIndexFromName(partsname); - this.SetPartCellByIndex(partIndex, changeCellIndex); - } - return [partIndex, changeCellIndex]; - } - /** - * パーツに割り当たるセルをインデックスで指定して変更します。 - * - * @param {number} partIndex - The index of the part to be updated. Must not be -1 to perform the update. - * @param {number} changeCellIndex - The new cell index to set for the specified partIndex. - * @return {void} This method does not return a value. - */ - SetPartCellByIndex(partIndex, changeCellIndex) { - if (partIndex !== -1) { - this.changeCellID[partIndex] = changeCellIndex; - return true; - } - return false; - } - /** - * Sets the visibility of a specific part by its name. - * - * @param {string} partsname - The name of the part whose visibility is to be set. - * @param {boolean} visible - A boolean indicating whether the part should be visible (true) or hidden (false). - * @return {boolean} Returns true if the operation was successful, false otherwise. - */ - SetPartVisible(partsname, visible) { - if (this.playerLib.animationData) { - const partIndex = this.GetPartIndexFromName(partsname); - return this.SetPartVisibleByIndex(partIndex, visible); - } - return false; - } - /** - * Sets the visibility of a part identified by its index. - * - * @param {number} partIndex - The index of the part to update. Must not be -1. - * @param {boolean} visible - A boolean indicating whether the part should be visible (true) or hidden (false). - * @return {boolean} Returns true if the visibility was successfully updated, otherwise returns false. - */ - SetPartVisibleByIndex(partIndex, visible) { - if (partIndex !== -1) { - this.changeVisible[partIndex] = visible; - return true; - } - return false; - } - /** - * Sets the tint color for a specific part of the player's animation. - * - * @param {string} partName - The name of the part to apply the tint to. - * @param {number} tint - The tint value to apply, represented as a number. - * @return {boolean} Returns true if the tint was successfully applied; otherwise, returns false. - */ - SetPartTint(partName, tint) { - if (this.playerLib.animationData) { - const partIndex = this.GetPartIndexFromName(partName); - return this.SetPartTintByIndex(partIndex, tint); - } - return false; - } - /** - * Updates the tint color of a specific part identified by its index. - * - * @param {number} partIndex - The index of the part for which the tint needs to be set. A value of -1 indicates no part is targeted. - * @param {number} tint - The tint value to be applied to the specified part. - * @return {boolean} Returns true if the tint is successfully applied, otherwise returns false. - */ - SetPartTintByIndex(partIndex, tint) { - if (partIndex !== -1) { - this.changeTint[partIndex] = tint; - return true; - } - return false; - } - /** - * パーツの描画モードを取得する - * @return {array} - 全パーツの描画モード - */ - GetPartsBlendMode() { - const animePacks = this.playerLib.animePackData; - const l = animePacks.partsLength(); - let ret = []; - for (let i = 0; i < l; i++) { - const alphaBlendType = animePacks.parts(i).alphaBlendType(); - let blendMode; - switch (alphaBlendType) { - case 0: - blendMode = "normal"; - break; - case 1: - blendMode = "multiply"; - break; - case 2: - blendMode = "add"; - break; - case 3: - blendMode = "subtract"; - break; - case 4: - blendMode = "multiply"; - break; - case 5: - blendMode = "screen"; - break; - case 6: - blendMode = "exclusion"; - break; - case 7: - blendMode = "normal"; - break; - default: - blendMode = "subtract"; - break; - } - ret.push(blendMode); - } - return ret; - } - /** - * パーツカラーのブレンド用カラーマトリクス - * @param {number} blendType - ブレンド方法(0:mix, 1:multiply, 2:add, 3:sub) - * @param {number} rate - ミックス時の混色レート - * @param {number} argb32 - パーツカラー(単色) - * @return {PIXI.filters.ColorMatrixFilter} - カラーマトリクス - */ - GetColorMatrixFilter(blendType, rate, argb32) { - const key = blendType.toString() + "_" + rate.toString() + "_" + argb32.toString(); - if (this.colorMatrixFilterCache[key]) return this.colorMatrixFilterCache[key]; - const colorMatrix = new pixi_js.ColorMatrixFilter(); - const ca = ((argb32 & 4278190080) >>> 24) / 255; - const cr = ((argb32 & 16711680) >>> 16) / 255; - const cg = ((argb32 & 65280) >>> 8) / 255; - const cb = (argb32 & 255) / 255; - if (blendType === 0) { - const rate_i = 1 - rate; - colorMatrix.matrix = [ - rate_i, - 0, - 0, - 0, - cr * rate, - 0, - rate_i, - 0, - 0, - cg * rate, - 0, - 0, - rate_i, - 0, - cb * rate, - 0, - 0, - 0, - 1, - 0 - ]; - } else if (blendType === 1) { - colorMatrix.matrix = [ - cr, - 0, - 0, - 0, - 0, - 0, - cg, - 0, - 0, - 0, - 0, - 0, - cb, - 0, - 0, - 0, - 0, - 0, - ca, - 0 - ]; - } else if (blendType === 2) { - colorMatrix.matrix = [ - 1, - 0, - 0, - 0, - cr, - 0, - 1, - 0, - 0, - cg, - 0, - 0, - 1, - 0, - cb, - 0, - 0, - 0, - ca, - 0 - ]; - } else if (blendType === 3) { - colorMatrix.matrix = [ - 1, - 0, - 0, - 0, - -cr, - 0, - 1, - 0, - 0, - -cg, - 0, - 0, - 1, - 0, - -cb, - 0, - 0, - 0, - ca, - 0 - ]; - } - this.colorMatrixFilterCache[key] = colorMatrix; - return colorMatrix; - } - /** - * 1フレーム分のアニメーション描画 - * @param {number} frameNumber - フレーム番号 - * @param {number} ds - delta step - */ - SetFrameAnimation(frameNumber, ds = 0) { - const fd = this.playerLib.GetFrameData(frameNumber); - this.removeChildren(); - const l = fd.length; - for (let ii = 0; ii < l; ii = ii + 1 | 0) { - const i = this.playerLib.prio2index[ii]; - if (!this.changeVisible[i]) { - continue; - } - const data = fd[i]; - const origCellID = data.cellIndex; - const cellID = this.changeCellID[i] !== -1 ? this.changeCellID[i] : origCellID; - let partObject = this.prevPartObject[i]; - const part = this.playerLib.animePackData.parts(i); - const partType = part.type(); - let overWrite = this.substituteOverWrite[i] !== null ? this.substituteOverWrite[i] : false; - let overWritekeyParam = this.substituteKeyParam[i]; - switch (partType) { - case SsPartType.Instance: - if (partObject == null) { - partObject = this.MakeCellPlayer(part.refname()); - partObject.label = part.name(); - } - break; - case SsPartType.Normal: - case SsPartType.Mask: - if (cellID >= 0 && this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = this.MakeCellMesh(cellID); - partObject.label = part.name(); - } - break; - case SsPartType.Mesh: - if (cellID >= 0 && this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = this.MakeMeshCellMesh(i, cellID, origCellID); - partObject.label = part.name(); - } - break; - case SsPartType.Nulltype: - case SsPartType.Joint: - if (this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = new pixi_js.Container(); - partObject.label = part.name(); - } - break; - default: - if (cellID >= 0 && this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = this.MakeCellMesh(cellID); - partObject.label = part.name(); - } - break; - } - if (partObject == null) continue; - this.prevCellID[i] = cellID; - this.prevPartObject[i] = partObject; - switch (partType) { - case SsPartType.Instance: { - const instance = partObject; - this._instancePos[0] = 0; - this._instancePos[1] = 0; - this._instancePos[2] = 1; - this._instancePos[3] = 1; - this._instancePos[4] = 0; - this._instancePos = this.playerLib.TransformPositionLocal(this._instancePos, data.index, frameNumber); - instance.rotation = this._instancePos[4] * Math.PI / 180; - instance.position.set(this._instancePos[0], this._instancePos[1]); - instance.scale.set(this._instancePos[2], this._instancePos[3]); - let opacity = data.opacity / 255; - if (data.localopacity < 255) { - opacity = data.localopacity / 255; - } - instance.SetAlpha(opacity * this.parentAlpha); - instance.visible = !data.f_hide; - let refKeyframe = data.instanceValue_curKeyframe; - let refStartframe = data.instanceValue_startFrame; - let refEndframe = data.instanceValue_endFrame; - let refSpeed = data.instanceValue_speed; - let refloopNum = data.instanceValue_loopNum; - let infinity = false; - let reverse = false; - let pingpong = false; - let independent = false; - const INSTANCE_LOOP_FLAG_INFINITY = 1; - const INSTANCE_LOOP_FLAG_REVERSE = 2; - const INSTANCE_LOOP_FLAG_PINGPONG = 4; - const INSTANCE_LOOP_FLAG_INDEPENDENT = 8; - const lflags = data.instanceValue_loopflag; - if (lflags & INSTANCE_LOOP_FLAG_INFINITY) { - infinity = true; - } - if (lflags & INSTANCE_LOOP_FLAG_REVERSE) { - reverse = true; - } - if (lflags & INSTANCE_LOOP_FLAG_PINGPONG) { - pingpong = true; - } - if (lflags & INSTANCE_LOOP_FLAG_INDEPENDENT) { - independent = true; - } - if (overWrite) { - refStartframe = overWritekeyParam.refStartframe; - refEndframe = overWritekeyParam.refEndframe; - refSpeed = overWritekeyParam.refSpeed; - refloopNum = overWritekeyParam.refloopNum; - infinity = overWritekeyParam.infinity; - reverse = overWritekeyParam.reverse; - pingpong = overWritekeyParam.pingpong; - independent = overWritekeyParam.independent; - } - if (instance._startFrame !== refStartframe || instance._endFrame !== refEndframe) { - instance.SetAnimationSection(refStartframe, refEndframe); - } - let time = frameNumber; - if (independent === true) { - this.liveFrame[ii] += ds; - time = Math.floor(this.liveFrame[ii]); - } - const selfTopKeyframe = refKeyframe; - let reftime = Math.floor((time - selfTopKeyframe) * refSpeed); - if (reftime < 0) continue; - if (selfTopKeyframe > time) continue; - const inst_scale = refEndframe - refStartframe + 1; - if (inst_scale <= 0) continue; - let nowloop = Math.floor(reftime / inst_scale); - let checkloopnum = refloopNum; - if (pingpong) checkloopnum = checkloopnum * 2; - if (!infinity) { - if (nowloop >= checkloopnum) { - reftime = inst_scale - 1; - nowloop = checkloopnum - 1; - } - } - const temp_frame = Math.floor(reftime % inst_scale); - let _time = 0; - if (pingpong && nowloop % 2 === 1) { - if (reverse) { - reverse = false; - } else { - reverse = true; - } - } - if (this.playDirection <= -1) { - reverse = !reverse; - } - if (reverse) { - _time = refEndframe - temp_frame; - } else { - _time = temp_frame + refStartframe; - } - instance.SetFrame(Math.floor(_time)); - this.addChild(instance); - break; - } - // Instance以外の通常のMeshと空のContainerで処理分岐 - case SsPartType.Normal: - case SsPartType.Mesh: - case SsPartType.Joint: - case SsPartType.Mask: { - const mesh = partObject; - const meshVertexBuffer = mesh.geometry.attributes.aPosition.buffer; - let meshVertex = meshVertexBuffer.data; - const cell = this.playerLib.fbObj.cells(cellID); - let verts; - if (partType === SsPartType.Mesh) { - if (data.meshIsBind === 0) { - verts = this.playerLib.TransformMeshVertsLocal(Player$1.GetMeshVerts(cell, data, meshVertex), data.index, frameNumber); - } else { - verts = Player$1.GetMeshVerts(cell, data, meshVertex); - } - } else { - verts = partType === SsPartType.Joint ? new Float32Array(10) : meshVertex; - verts = this.playerLib.TransformVertsLocal(Player$1.GetVerts(cell, data, verts), data.index, frameNumber); - } - if (data.flag1 & PART_FLAG.VERTEX_TRANSFORM) { - const vertexCoordinateLUx = verts[3 * 2 + 0]; - const vertexCoordinateLUy = verts[3 * 2 + 1]; - const vertexCoordinateLDx = verts[1 * 2 + 0]; - const vertexCoordinateLDy = verts[1 * 2 + 1]; - const vertexCoordinateRUx = verts[4 * 2 + 0]; - const vertexCoordinateRUy = verts[4 * 2 + 1]; - const vertexCoordinateRDx = verts[2 * 2 + 0]; - const vertexCoordinateRDy = verts[2 * 2 + 1]; - const CoordinateLURUx = (vertexCoordinateLUx + vertexCoordinateRUx) * 0.5; - const CoordinateLURUy = (vertexCoordinateLUy + vertexCoordinateRUy) * 0.5; - const CoordinateLULDx = (vertexCoordinateLUx + vertexCoordinateLDx) * 0.5; - const CoordinateLULDy = (vertexCoordinateLUy + vertexCoordinateLDy) * 0.5; - const CoordinateLDRDx = (vertexCoordinateLDx + vertexCoordinateRDx) * 0.5; - const CoordinateLDRDy = (vertexCoordinateLDy + vertexCoordinateRDy) * 0.5; - const CoordinateRURDx = (vertexCoordinateRUx + vertexCoordinateRDx) * 0.5; - const CoordinateRURDy = (vertexCoordinateRUy + vertexCoordinateRDy) * 0.5; - const vec2 = Player$1.CoordinateGetDiagonalIntersection(verts[0], verts[1], CoordinateLURUx, CoordinateLURUy, CoordinateRURDx, CoordinateRURDy, CoordinateLULDx, CoordinateLULDy, CoordinateLDRDx, CoordinateLDRDy, this._CoordinateGetDiagonalIntersectionVec2); - verts[0] = vec2[0]; - verts[1] = vec2[1]; - } - const px = verts[0]; - const py = verts[1]; - for (let j = 0; j < verts.length / 2; j++) { - verts[j * 2] -= px; - verts[j * 2 + 1] -= py; - } - meshVertex = verts; - meshVertexBuffer.update(); - if (data.flag1 & PART_FLAG.U_MOVE || data.flag1 & PART_FLAG.V_MOVE || data.flag1 & PART_FLAG.U_SCALE || data.flag1 & PART_FLAG.V_SCALE || data.flag1 & PART_FLAG.UV_ROTATION) { - const u1 = cell.u1() + data.uv_move_X; - const u2 = cell.u2() + data.uv_move_X; - const v1 = cell.v1() + data.uv_move_Y; - const v2 = cell.v2() + data.uv_move_Y; - const cx = (u2 + u1) / 2; - const cy = (v2 + v1) / 2; - const uvw = (u2 - u1) / 2 * data.uv_scale_X; - const uvh = (v2 - v1) / 2 * data.uv_scale_Y; - const meshUvsBuffer = mesh.geometry.attributes.aUV.buffer; - let meshUvs = mesh.geometry.uvs; - meshUvs[0] = cx; - meshUvs[1] = cy; - meshUvs[2] = cx - uvw; - meshUvs[3] = cy - uvh; - meshUvs[4] = cx + uvw; - meshUvs[5] = cy - uvh; - meshUvs[6] = cx - uvw; - meshUvs[7] = cy + uvh; - meshUvs[8] = cx + uvw; - meshUvs[9] = cy + uvh; - if (data.flag1 & PART_FLAG.UV_ROTATION) { - const rot = data.uv_rotation * Math.PI / 180; - for (let idx = 0; idx < 5; idx++) { - const dx = meshUvs[idx * 2 + 0] - cx; - const dy = meshUvs[idx * 2 + 1] - cy; - const cos = Math.cos(rot); - const sin = Math.sin(rot); - const tmpX = cos * dx - sin * dy; - const tmpY = sin * dx + cos * dy; - meshUvs[idx * 2 + 0] = cx + tmpX; - meshUvs[idx * 2 + 1] = cy + tmpY; - } - } - meshUvsBuffer.update(); - } - mesh.position.set(px, py); - let opacity = data.opacity / 255; - if (data.localopacity < 255) { - opacity = data.localopacity / 255; - } - mesh.alpha = opacity * this.parentAlpha; - mesh.visible = !data.f_hide; - if (data.useColorMatrix) { - const colorMatrix = this.GetColorMatrixFilter(data.colorBlendType, data.colorRate, data.colorArgb32); - mesh.filters = [colorMatrix]; - } - if (this.changeTint[i] !== null) { - mesh.tint = this.changeTint[i]; - } else if (data.tint) { - mesh.tint = data.tint; - const ca = ((data.partsColorARGB & 4278190080) >>> 24) / 255; - mesh.alpha = mesh.alpha * ca; - } - const blendMode = this.alphaBlendType[i]; - if (blendMode === "multiply" || blendMode === "screen") { - mesh.alpha = 1; - } - if (partType !== SsPartType.Mask) this.addChild(mesh); - break; - } - case SsPartType.Nulltype: { - const container = partObject; - const opacity = this.playerLib.InheritOpacity(1, data.index, frameNumber); - container.alpha = opacity * data.localopacity / 255; - const verts = this.playerLib.TransformVerts(Player$1.GetDummyVerts(), data.index, frameNumber); - const px = verts[0]; - const py = verts[1]; - container.position.set(px, py); - const ax = Math.atan2(verts[5] - verts[3], verts[4] - verts[2]); - const ay = Math.atan2(verts[7] - verts[3], verts[6] - verts[2]); - container.rotation = ax; - container.skew.x = ay - ax - Math.PI / 2; - break; - } - } - } - } - /** - * - * 名前を指定してパーツの再生するインスタンスアニメを変更します。 - * 指定したパーツがインスタンスパーツでない場合、falseを返します. - * インスタンスパーツ名はディフォルトでは「ssae名:モーション名」とつけられています。 - * 再生するアニメの名前は アニメパック名 と アニメ名 で指定してください。 - * 現在再生しているアニメを指定することは入れ子となり無限ループとなるためできません。 - * - * 変更するアニメーションは同じ ssfb に含まれる必要があります。 - * インスタンスパーツが再生するアニメを変更します - * - * インスタンスキーは - * - * @param partName SS上のパーツ名 - * @param animePackName 参照するアニメパック名 - * @param animeName 参照するアニメ名 - * @param overWrite インスタンスキーの上書きフラグ - * @param keyParam インスタンスキー - * - * @constructor - */ - ChangeInstanceAnime(partName, animePackName, animeName, overWrite, keyParam = null) { - let rc = false; - if (this.animePackName !== null && this.animeName !== null) { - let packData = this.playerLib.animePackData; - let partsLength = packData.partsLength(); - for (let index = 0; index < partsLength; index++) { - let partData = packData.parts(index); - if (partData.name() === partName) { - let mesh = this.prevPartObject[index]; - if (mesh === null || mesh instanceof SS6Player) { - this.substituteOverWrite[index] = overWrite; - let keyParamAsSubstitute; - if (keyParam !== null) { - keyParamAsSubstitute = keyParam; - mesh = this.MakeCellPlayer(animePackName + "/" + animeName, keyParam.refStartframe); - } else { - mesh = this.MakeCellPlayer(animePackName + "/" + animeName); - keyParamAsSubstitute = new SS6PlayerInstanceKeyParam(); - keyParamAsSubstitute.refStartframe = mesh.startFrame; - keyParamAsSubstitute.refEndframe = mesh.endFrame; - } - mesh.label = partData.name(); - this.prevPartObject[index] = mesh; - this.substituteKeyParam[index] = keyParamAsSubstitute; - rc = true; - break; - } - } - } - } - return rc; - } - /** - * 矩形セルをメッシュ(5verts4Tri)で作成 - * @param {number} id - セルID - * @return {PIXI.Mesh} - メッシュ - */ - MakeCellMesh(id) { - const cell = this.playerLib.fbObj.cells(id); - const u1 = cell.u1(); - const u2 = cell.u2(); - const v1 = cell.v1(); - const v2 = cell.v2(); - const w = cell.width() / 2; - const h = cell.height() / 2; - const verts = new Float32Array([0, 0, -w, -h, w, -h, -w, h, w, h]); - const uvs = new Float32Array([(u1 + u2) / 2, (v1 + v2) / 2, u1, v1, u2, v1, u1, v2, u2, v2]); - const indices = new Uint32Array([0, 1, 2, 0, 2, 4, 0, 4, 3, 0, 1, 3]); - const geometry = new pixi_js.MeshGeometry({ positions: verts, uvs, indices, topology: "triangle-list" }); - return new pixi_js.Mesh({ geometry, texture: this.ss6project.getTexture(cell.cellMap().name()) }); - } - /** - * メッシュセルからメッシュを作成 - * @param {number} partID - パーツID - * @param {number} cellID - セルID - * @param {number} origCellID - オリジナルのセルID - * @return {PIXI.Mesh} - メッシュ - */ - MakeMeshCellMesh(partID, cellID, origCellID) { - const meshsDataUV = this.playerLib.animationData.meshsDataUv(partID); - const uvLength = meshsDataUV.uvLength(); - if (uvLength > 0) { - const cell = this.playerLib.fbObj.cells(cellID); - const origCell = this.playerLib.fbObj.cells(origCellID); - const diff_u = cellID === origCellID ? 0 : (cell.u1() + cell.u2()) / 2 - (origCell.u1() + origCell.u2()) / 2; - const diff_v = cellID === origCellID ? 0 : (cell.v1() + cell.v2()) / 2 - (origCell.v1() + origCell.v2()) / 2; - const uvs = new Float32Array(uvLength - 2); - const meshNum = meshsDataUV.uv(1); - for (let idx = 2; idx < uvLength; idx++) { - uvs[idx - 2] = meshsDataUV.uv(idx) + (idx % 2 === 0 ? diff_u : diff_v); - } - const meshsDataIndices = this.playerLib.animationData.meshsDataIndices(partID); - const indicesLength = meshsDataIndices.indicesLength(); - const indices = new Uint32Array(indicesLength - 1); - for (let idx = 1; idx < indicesLength; idx++) { - indices[idx - 1] = meshsDataIndices.indices(idx); - } - const verts = new Float32Array(meshNum * 2); - const geometry = new pixi_js.MeshGeometry({ positions: verts, uvs, indices, topology: "triangle-list" }); - return new pixi_js.Mesh({ geometry, texture: this.ss6project.getTexture(this.playerLib.fbObj.cells(cellID).cellMap().name()) }); - } - return null; - } - /** - * セルをインスタンスで作成 - * @param {String} refname 参照アニメ名 - * @param {number or undefined} refStart - * @return {SS6Player} - インスタンス - */ - MakeCellPlayer(refname, refStart = void 0) { - const split = refname.split("/"); - const ssp = new SS6Player(this.ss6project); - ssp.Setup(split[0], split[1]); - ssp.Play(refStart); - return ssp; - } - resetLiveFrame() { - const layers = this.playerLib.animationData.defaultDataLength(); - for (let i = 0; i < layers; i++) { - this.liveFrame[i] = 0; - } - } - } - - class AnimationContainer extends SS6Player { - constructor(ssWebPlayer) { - super(ssWebPlayer.projectData); - this.currentAnimationFrameDataMap = null; - this.ssWebPlayer = ssWebPlayer; - this.skipEnabled = false; - } - get onUpdateCallback() { - return this.ssWebPlayer.onUpdateCallback; - } - get onPlayStateChangeCallback() { - return this.ssWebPlayer.onPlayStateChangeCallback; - } - Setup(animePackName, animeName) { - super.Setup(animePackName, animeName); - let self = this; - this.playEndCallback = (player) => { - if (self.ssWebPlayer && self.ssWebPlayer.playEndCallback) { - self.ssWebPlayer.playEndCallback(self); - } - }; - this.onUserDataCallback = (data) => { - if (self.ssWebPlayer && self.ssWebPlayer.onUpdateCallback) { - self.ssWebPlayer.onUpdateCallback(self); - } - }; - this.setupCurrentAnimationFrameDataMap(); - } - getCurrentAnimationFrameDataMap() { - return this.currentAnimationFrameDataMap; - } - setupCurrentAnimationFrameDataMap() { - const currentAnimation = this.playerLib.animationData; - let frameDataMap = {}; - const userDataLength = currentAnimation.userDataLength(); - for (let i = 0; i < userDataLength; i++) { - const userData = currentAnimation.userData(i); - const frameIndex = userData.frameIndex(); - let frameData = frameDataMap[frameIndex]; - if (frameData == null) { - frameData = {}; - } - const data = this.playerLib.GetUserData(frameIndex); - let frameUserDataMap = {}; - const dataLength = data.length; - for (let dataIndex = 0; dataIndex < dataLength; dataIndex++) { - const dataArray = data[dataIndex]; - const partsArrayIndex = dataArray[0]; - const parts = this.playerLib.animePackData.parts(partsArrayIndex); - const partsName = parts.name(); - dataArray[2]; - dataArray[3]; - dataArray[4]; - dataArray[5]; - dataArray[6]; - dataArray[7]; - dataArray[8]; - dataArray[9]; - const stringValue = dataArray[10]; - frameUserDataMap[partsName] = { - string: stringValue - }; - } - frameData["userData"] = frameUserDataMap; - frameDataMap[frameIndex] = frameData; - } - this.currentAnimationFrameDataMap = frameDataMap; - } - Play() { - this.loop = this.ssWebPlayer.infinityFlag ? -1 : 1; - super.Play(); - if (this.onPlayStateChangeCallback !== null) { - this.onPlayStateChangeCallback(this.isPlaying, this.isPausing); - } - } - Pause() { - super.Pause(); - if (this.onPlayStateChangeCallback !== null) { - this.onPlayStateChangeCallback(this.isPlaying, this.isPausing); - } - } - Stop() { - super.Stop(); - if (this.onPlayStateChangeCallback !== null) { - this.onPlayStateChangeCallback(this.isPlaying, this.isPausing); - } - } - Update(ticker) { - this.UpdateInternal(ticker.deltaMS, false); - if (this.isPlaying && !this.isPausing) { - if (this.onUpdateCallback !== null) { - this.onUpdateCallback(this); - } - } - } - SetFrame(frame) { - super.SetFrame(frame); - this.SetFrameAnimation(frame); - if (this.onUpdateCallback !== null) { - this.onUpdateCallback(this); - } - } - } - - var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - - function getDefaultExportFromCjs (x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; - } - - function commonjsRequire(path) { - throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.'); - } - - var jszip = {exports: {}}; - - /*! - - JSZip v3.10.1 - A JavaScript class for generating and reading zip files - - - (c) 2009-2016 Stuart Knightley - Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. - - JSZip uses the library pako released under the MIT license : - https://github.com/nodeca/pako/blob/main/LICENSE - */ - - var hasRequiredJszip; - - function requireJszip () { - if (hasRequiredJszip) return jszip.exports; - hasRequiredJszip = 1; - (function (module, exports) { - (function(f){{module.exports=f();}})(function(){return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof commonjsRequire=="function"&&commonjsRequire;if(!u&&a)return a(o,true);if(i)return i(o,true);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r);}return n[o].exports}var i=typeof commonjsRequire=="function"&&commonjsRequire;for(var o=0;o> 2; - enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); - enc3 = remainingBytes > 1 ? (((chr2 & 15) << 2) | (chr3 >> 6)) : 64; - enc4 = remainingBytes > 2 ? (chr3 & 63) : 64; - - output.push(_keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4)); - - } - - return output.join(""); - }; - - // public method for decoding - exports.decode = function(input) { - var chr1, chr2, chr3; - var enc1, enc2, enc3, enc4; - var i = 0, resultIndex = 0; - - var dataUrlPrefix = "data:"; - - if (input.substr(0, dataUrlPrefix.length) === dataUrlPrefix) { - // This is a common error: people give a data url - // (data:image/png;base64,iVBOR...) with a {base64: true} and - // wonders why things don't work. - // We can detect that the string input looks like a data url but we - // *can't* be sure it is one: removing everything up to the comma would - // be too dangerous. - throw new Error("Invalid base64 input, it looks like a data url."); - } - - input = input.replace(/[^A-Za-z0-9+/=]/g, ""); - - var totalLength = input.length * 3 / 4; - if(input.charAt(input.length - 1) === _keyStr.charAt(64)) { - totalLength--; - } - if(input.charAt(input.length - 2) === _keyStr.charAt(64)) { - totalLength--; - } - if (totalLength % 1 !== 0) { - // totalLength is not an integer, the length does not match a valid - // base64 content. That can happen if: - // - the input is not a base64 content - // - the input is *almost* a base64 content, with a extra chars at the - // beginning or at the end - // - the input uses a base64 variant (base64url for example) - throw new Error("Invalid base64 input, bad content length."); - } - var output; - if (support.uint8array) { - output = new Uint8Array(totalLength|0); - } else { - output = new Array(totalLength|0); - } - - while (i < input.length) { - - enc1 = _keyStr.indexOf(input.charAt(i++)); - enc2 = _keyStr.indexOf(input.charAt(i++)); - enc3 = _keyStr.indexOf(input.charAt(i++)); - enc4 = _keyStr.indexOf(input.charAt(i++)); - - chr1 = (enc1 << 2) | (enc2 >> 4); - chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); - chr3 = ((enc3 & 3) << 6) | enc4; - - output[resultIndex++] = chr1; - - if (enc3 !== 64) { - output[resultIndex++] = chr2; - } - if (enc4 !== 64) { - output[resultIndex++] = chr3; - } - - } - - return output; - }; - - },{"./support":30,"./utils":32}],2:[function(require,module,exports){ - - var external = require("./external"); - var DataWorker = require("./stream/DataWorker"); - var Crc32Probe = require("./stream/Crc32Probe"); - var DataLengthProbe = require("./stream/DataLengthProbe"); - - /** - * Represent a compressed object, with everything needed to decompress it. - * @constructor - * @param {number} compressedSize the size of the data compressed. - * @param {number} uncompressedSize the size of the data after decompression. - * @param {number} crc32 the crc32 of the decompressed file. - * @param {object} compression the type of compression, see lib/compressions.js. - * @param {String|ArrayBuffer|Uint8Array|Buffer} data the compressed data. - */ - function CompressedObject(compressedSize, uncompressedSize, crc32, compression, data) { - this.compressedSize = compressedSize; - this.uncompressedSize = uncompressedSize; - this.crc32 = crc32; - this.compression = compression; - this.compressedContent = data; - } - - CompressedObject.prototype = { - /** - * Create a worker to get the uncompressed content. - * @return {GenericWorker} the worker. - */ - getContentWorker: function () { - var worker = new DataWorker(external.Promise.resolve(this.compressedContent)) - .pipe(this.compression.uncompressWorker()) - .pipe(new DataLengthProbe("data_length")); - - var that = this; - worker.on("end", function () { - if (this.streamInfo["data_length"] !== that.uncompressedSize) { - throw new Error("Bug : uncompressed data size mismatch"); - } - }); - return worker; - }, - /** - * Create a worker to get the compressed content. - * @return {GenericWorker} the worker. - */ - getCompressedWorker: function () { - return new DataWorker(external.Promise.resolve(this.compressedContent)) - .withStreamInfo("compressedSize", this.compressedSize) - .withStreamInfo("uncompressedSize", this.uncompressedSize) - .withStreamInfo("crc32", this.crc32) - .withStreamInfo("compression", this.compression) - ; - } - }; - - /** - * Chain the given worker with other workers to compress the content with the - * given compression. - * @param {GenericWorker} uncompressedWorker the worker to pipe. - * @param {Object} compression the compression object. - * @param {Object} compressionOptions the options to use when compressing. - * @return {GenericWorker} the new worker compressing the content. - */ - CompressedObject.createWorkerFrom = function (uncompressedWorker, compression, compressionOptions) { - return uncompressedWorker - .pipe(new Crc32Probe()) - .pipe(new DataLengthProbe("uncompressedSize")) - .pipe(compression.compressWorker(compressionOptions)) - .pipe(new DataLengthProbe("compressedSize")) - .withStreamInfo("compression", compression); - }; - - module.exports = CompressedObject; - - },{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(require,module,exports){ - - var GenericWorker = require("./stream/GenericWorker"); - - exports.STORE = { - magic: "\x00\x00", - compressWorker : function () { - return new GenericWorker("STORE compression"); - }, - uncompressWorker : function () { - return new GenericWorker("STORE decompression"); - } - }; - exports.DEFLATE = require("./flate"); - - },{"./flate":7,"./stream/GenericWorker":28}],4:[function(require,module,exports){ - - var utils = require("./utils"); - - /** - * The following functions come from pako, from pako/lib/zlib/crc32.js - * released under the MIT license, see pako https://github.com/nodeca/pako/ - */ - - // Use ordinary array, since untyped makes no boost here - function makeTable() { - var c, table = []; - - for(var n =0; n < 256; n++){ - c = n; - for(var k =0; k < 8; k++){ - c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); - } - table[n] = c; - } - - return table; - } - - // Create table on load. Just 255 signed longs. Not a problem. - var crcTable = makeTable(); - - - function crc32(crc, buf, len, pos) { - var t = crcTable, end = pos + len; - - crc = crc ^ (-1); - - for (var i = pos; i < end; i++ ) { - crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF]; - } - - return (crc ^ (-1)); // >>> 0; - } - - // That's all for the pako functions. - - /** - * Compute the crc32 of a string. - * This is almost the same as the function crc32, but for strings. Using the - * same function for the two use cases leads to horrible performances. - * @param {Number} crc the starting value of the crc. - * @param {String} str the string to use. - * @param {Number} len the length of the string. - * @param {Number} pos the starting position for the crc32 computation. - * @return {Number} the computed crc32. - */ - function crc32str(crc, str, len, pos) { - var t = crcTable, end = pos + len; - - crc = crc ^ (-1); - - for (var i = pos; i < end; i++ ) { - crc = (crc >>> 8) ^ t[(crc ^ str.charCodeAt(i)) & 0xFF]; - } - - return (crc ^ (-1)); // >>> 0; - } - - module.exports = function crc32wrapper(input, crc) { - if (typeof input === "undefined" || !input.length) { - return 0; - } - - var isArray = utils.getTypeOf(input) !== "string"; - - if(isArray) { - return crc32(crc|0, input, input.length, 0); - } else { - return crc32str(crc|0, input, input.length, 0); - } - }; - - },{"./utils":32}],5:[function(require,module,exports){ - exports.base64 = false; - exports.binary = false; - exports.dir = false; - exports.createFolders = true; - exports.date = null; - exports.compression = null; - exports.compressionOptions = null; - exports.comment = null; - exports.unixPermissions = null; - exports.dosPermissions = null; - - },{}],6:[function(require,module,exports){ - - // load the global object first: - // - it should be better integrated in the system (unhandledRejection in node) - // - the environment may have a custom Promise implementation (see zone.js) - var ES6Promise = null; - if (typeof Promise !== "undefined") { - ES6Promise = Promise; - } else { - ES6Promise = require("lie"); - } - - /** - * Let the user use/change some implementations. - */ - module.exports = { - Promise: ES6Promise - }; - - },{"lie":37}],7:[function(require,module,exports){ - var USE_TYPEDARRAY = (typeof Uint8Array !== "undefined") && (typeof Uint16Array !== "undefined") && (typeof Uint32Array !== "undefined"); - - var pako = require("pako"); - var utils = require("./utils"); - var GenericWorker = require("./stream/GenericWorker"); - - var ARRAY_TYPE = USE_TYPEDARRAY ? "uint8array" : "array"; - - exports.magic = "\x08\x00"; - - /** - * Create a worker that uses pako to inflate/deflate. - * @constructor - * @param {String} action the name of the pako function to call : either "Deflate" or "Inflate". - * @param {Object} options the options to use when (de)compressing. - */ - function FlateWorker(action, options) { - GenericWorker.call(this, "FlateWorker/" + action); - - this._pako = null; - this._pakoAction = action; - this._pakoOptions = options; - // the `meta` object from the last chunk received - // this allow this worker to pass around metadata - this.meta = {}; - } - - utils.inherits(FlateWorker, GenericWorker); - - /** - * @see GenericWorker.processChunk - */ - FlateWorker.prototype.processChunk = function (chunk) { - this.meta = chunk.meta; - if (this._pako === null) { - this._createPako(); - } - this._pako.push(utils.transformTo(ARRAY_TYPE, chunk.data), false); - }; - - /** - * @see GenericWorker.flush - */ - FlateWorker.prototype.flush = function () { - GenericWorker.prototype.flush.call(this); - if (this._pako === null) { - this._createPako(); - } - this._pako.push([], true); - }; - /** - * @see GenericWorker.cleanUp - */ - FlateWorker.prototype.cleanUp = function () { - GenericWorker.prototype.cleanUp.call(this); - this._pako = null; - }; - - /** - * Create the _pako object. - * TODO: lazy-loading this object isn't the best solution but it's the - * quickest. The best solution is to lazy-load the worker list. See also the - * issue #446. - */ - FlateWorker.prototype._createPako = function () { - this._pako = new pako[this._pakoAction]({ - raw: true, - level: this._pakoOptions.level || -1 // default compression - }); - var self = this; - this._pako.onData = function(data) { - self.push({ - data : data, - meta : self.meta - }); - }; - }; - - exports.compressWorker = function (compressionOptions) { - return new FlateWorker("Deflate", compressionOptions); - }; - exports.uncompressWorker = function () { - return new FlateWorker("Inflate", {}); - }; - - },{"./stream/GenericWorker":28,"./utils":32,"pako":38}],8:[function(require,module,exports){ - - var utils = require("../utils"); - var GenericWorker = require("../stream/GenericWorker"); - var utf8 = require("../utf8"); - var crc32 = require("../crc32"); - var signature = require("../signature"); - - /** - * Transform an integer into a string in hexadecimal. - * @private - * @param {number} dec the number to convert. - * @param {number} bytes the number of bytes to generate. - * @returns {string} the result. - */ - var decToHex = function(dec, bytes) { - var hex = "", i; - for (i = 0; i < bytes; i++) { - hex += String.fromCharCode(dec & 0xff); - dec = dec >>> 8; - } - return hex; - }; - - /** - * Generate the UNIX part of the external file attributes. - * @param {Object} unixPermissions the unix permissions or null. - * @param {Boolean} isDir true if the entry is a directory, false otherwise. - * @return {Number} a 32 bit integer. - * - * adapted from http://unix.stackexchange.com/questions/14705/the-zip-formats-external-file-attribute : - * - * TTTTsstrwxrwxrwx0000000000ADVSHR - * ^^^^____________________________ file type, see zipinfo.c (UNX_*) - * ^^^_________________________ setuid, setgid, sticky - * ^^^^^^^^^________________ permissions - * ^^^^^^^^^^______ not used ? - * ^^^^^^ DOS attribute bits : Archive, Directory, Volume label, System file, Hidden, Read only - */ - var generateUnixExternalFileAttr = function (unixPermissions, isDir) { - - var result = unixPermissions; - if (!unixPermissions) { - // I can't use octal values in strict mode, hence the hexa. - // 040775 => 0x41fd - // 0100664 => 0x81b4 - result = isDir ? 0x41fd : 0x81b4; - } - return (result & 0xFFFF) << 16; - }; - - /** - * Generate the DOS part of the external file attributes. - * @param {Object} dosPermissions the dos permissions or null. - * @param {Boolean} isDir true if the entry is a directory, false otherwise. - * @return {Number} a 32 bit integer. - * - * Bit 0 Read-Only - * Bit 1 Hidden - * Bit 2 System - * Bit 3 Volume Label - * Bit 4 Directory - * Bit 5 Archive - */ - var generateDosExternalFileAttr = function (dosPermissions) { - // the dir flag is already set for compatibility - return (dosPermissions || 0) & 0x3F; - }; - - /** - * Generate the various parts used in the construction of the final zip file. - * @param {Object} streamInfo the hash with information about the compressed file. - * @param {Boolean} streamedContent is the content streamed ? - * @param {Boolean} streamingEnded is the stream finished ? - * @param {number} offset the current offset from the start of the zip file. - * @param {String} platform let's pretend we are this platform (change platform dependents fields) - * @param {Function} encodeFileName the function to encode the file name / comment. - * @return {Object} the zip parts. - */ - var generateZipParts = function(streamInfo, streamedContent, streamingEnded, offset, platform, encodeFileName) { - var file = streamInfo["file"], - compression = streamInfo["compression"], - useCustomEncoding = encodeFileName !== utf8.utf8encode, - encodedFileName = utils.transformTo("string", encodeFileName(file.name)), - utfEncodedFileName = utils.transformTo("string", utf8.utf8encode(file.name)), - comment = file.comment, - encodedComment = utils.transformTo("string", encodeFileName(comment)), - utfEncodedComment = utils.transformTo("string", utf8.utf8encode(comment)), - useUTF8ForFileName = utfEncodedFileName.length !== file.name.length, - useUTF8ForComment = utfEncodedComment.length !== comment.length, - dosTime, - dosDate, - extraFields = "", - unicodePathExtraField = "", - unicodeCommentExtraField = "", - dir = file.dir, - date = file.date; - - - var dataInfo = { - crc32 : 0, - compressedSize : 0, - uncompressedSize : 0 - }; - - // if the content is streamed, the sizes/crc32 are only available AFTER - // the end of the stream. - if (!streamedContent || streamingEnded) { - dataInfo.crc32 = streamInfo["crc32"]; - dataInfo.compressedSize = streamInfo["compressedSize"]; - dataInfo.uncompressedSize = streamInfo["uncompressedSize"]; - } - - var bitflag = 0; - if (streamedContent) { - // Bit 3: the sizes/crc32 are set to zero in the local header. - // The correct values are put in the data descriptor immediately - // following the compressed data. - bitflag |= 0x0008; - } - if (!useCustomEncoding && (useUTF8ForFileName || useUTF8ForComment)) { - // Bit 11: Language encoding flag (EFS). - bitflag |= 0x0800; - } - - - var extFileAttr = 0; - var versionMadeBy = 0; - if (dir) { - // dos or unix, we set the dos dir flag - extFileAttr |= 0x00010; - } - if(platform === "UNIX") { - versionMadeBy = 0x031E; // UNIX, version 3.0 - extFileAttr |= generateUnixExternalFileAttr(file.unixPermissions, dir); - } else { // DOS or other, fallback to DOS - versionMadeBy = 0x0014; // DOS, version 2.0 - extFileAttr |= generateDosExternalFileAttr(file.dosPermissions); - } - - // date - // @see http://www.delorie.com/djgpp/doc/rbinter/it/52/13.html - // @see http://www.delorie.com/djgpp/doc/rbinter/it/65/16.html - // @see http://www.delorie.com/djgpp/doc/rbinter/it/66/16.html - - dosTime = date.getUTCHours(); - dosTime = dosTime << 6; - dosTime = dosTime | date.getUTCMinutes(); - dosTime = dosTime << 5; - dosTime = dosTime | date.getUTCSeconds() / 2; - - dosDate = date.getUTCFullYear() - 1980; - dosDate = dosDate << 4; - dosDate = dosDate | (date.getUTCMonth() + 1); - dosDate = dosDate << 5; - dosDate = dosDate | date.getUTCDate(); - - if (useUTF8ForFileName) { - // set the unicode path extra field. unzip needs at least one extra - // field to correctly handle unicode path, so using the path is as good - // as any other information. This could improve the situation with - // other archive managers too. - // This field is usually used without the utf8 flag, with a non - // unicode path in the header (winrar, winzip). This helps (a bit) - // with the messy Windows' default compressed folders feature but - // breaks on p7zip which doesn't seek the unicode path extra field. - // So for now, UTF-8 everywhere ! - unicodePathExtraField = - // Version - decToHex(1, 1) + - // NameCRC32 - decToHex(crc32(encodedFileName), 4) + - // UnicodeName - utfEncodedFileName; - - extraFields += - // Info-ZIP Unicode Path Extra Field - "\x75\x70" + - // size - decToHex(unicodePathExtraField.length, 2) + - // content - unicodePathExtraField; - } - - if(useUTF8ForComment) { - - unicodeCommentExtraField = - // Version - decToHex(1, 1) + - // CommentCRC32 - decToHex(crc32(encodedComment), 4) + - // UnicodeName - utfEncodedComment; - - extraFields += - // Info-ZIP Unicode Path Extra Field - "\x75\x63" + - // size - decToHex(unicodeCommentExtraField.length, 2) + - // content - unicodeCommentExtraField; - } - - var header = ""; - - // version needed to extract - header += "\x0A\x00"; - // general purpose bit flag - header += decToHex(bitflag, 2); - // compression method - header += compression.magic; - // last mod file time - header += decToHex(dosTime, 2); - // last mod file date - header += decToHex(dosDate, 2); - // crc-32 - header += decToHex(dataInfo.crc32, 4); - // compressed size - header += decToHex(dataInfo.compressedSize, 4); - // uncompressed size - header += decToHex(dataInfo.uncompressedSize, 4); - // file name length - header += decToHex(encodedFileName.length, 2); - // extra field length - header += decToHex(extraFields.length, 2); - - - var fileRecord = signature.LOCAL_FILE_HEADER + header + encodedFileName + extraFields; - - var dirRecord = signature.CENTRAL_FILE_HEADER + - // version made by (00: DOS) - decToHex(versionMadeBy, 2) + - // file header (common to file and central directory) - header + - // file comment length - decToHex(encodedComment.length, 2) + - // disk number start - "\x00\x00" + - // internal file attributes TODO - "\x00\x00" + - // external file attributes - decToHex(extFileAttr, 4) + - // relative offset of local header - decToHex(offset, 4) + - // file name - encodedFileName + - // extra field - extraFields + - // file comment - encodedComment; - - return { - fileRecord: fileRecord, - dirRecord: dirRecord - }; - }; - - /** - * Generate the EOCD record. - * @param {Number} entriesCount the number of entries in the zip file. - * @param {Number} centralDirLength the length (in bytes) of the central dir. - * @param {Number} localDirLength the length (in bytes) of the local dir. - * @param {String} comment the zip file comment as a binary string. - * @param {Function} encodeFileName the function to encode the comment. - * @return {String} the EOCD record. - */ - var generateCentralDirectoryEnd = function (entriesCount, centralDirLength, localDirLength, comment, encodeFileName) { - var dirEnd = ""; - var encodedComment = utils.transformTo("string", encodeFileName(comment)); - - // end of central dir signature - dirEnd = signature.CENTRAL_DIRECTORY_END + - // number of this disk - "\x00\x00" + - // number of the disk with the start of the central directory - "\x00\x00" + - // total number of entries in the central directory on this disk - decToHex(entriesCount, 2) + - // total number of entries in the central directory - decToHex(entriesCount, 2) + - // size of the central directory 4 bytes - decToHex(centralDirLength, 4) + - // offset of start of central directory with respect to the starting disk number - decToHex(localDirLength, 4) + - // .ZIP file comment length - decToHex(encodedComment.length, 2) + - // .ZIP file comment - encodedComment; - - return dirEnd; - }; - - /** - * Generate data descriptors for a file entry. - * @param {Object} streamInfo the hash generated by a worker, containing information - * on the file entry. - * @return {String} the data descriptors. - */ - var generateDataDescriptors = function (streamInfo) { - var descriptor = ""; - descriptor = signature.DATA_DESCRIPTOR + - // crc-32 4 bytes - decToHex(streamInfo["crc32"], 4) + - // compressed size 4 bytes - decToHex(streamInfo["compressedSize"], 4) + - // uncompressed size 4 bytes - decToHex(streamInfo["uncompressedSize"], 4); - - return descriptor; - }; - - - /** - * A worker to concatenate other workers to create a zip file. - * @param {Boolean} streamFiles `true` to stream the content of the files, - * `false` to accumulate it. - * @param {String} comment the comment to use. - * @param {String} platform the platform to use, "UNIX" or "DOS". - * @param {Function} encodeFileName the function to encode file names and comments. - */ - function ZipFileWorker(streamFiles, comment, platform, encodeFileName) { - GenericWorker.call(this, "ZipFileWorker"); - // The number of bytes written so far. This doesn't count accumulated chunks. - this.bytesWritten = 0; - // The comment of the zip file - this.zipComment = comment; - // The platform "generating" the zip file. - this.zipPlatform = platform; - // the function to encode file names and comments. - this.encodeFileName = encodeFileName; - // Should we stream the content of the files ? - this.streamFiles = streamFiles; - // If `streamFiles` is false, we will need to accumulate the content of the - // files to calculate sizes / crc32 (and write them *before* the content). - // This boolean indicates if we are accumulating chunks (it will change a lot - // during the lifetime of this worker). - this.accumulate = false; - // The buffer receiving chunks when accumulating content. - this.contentBuffer = []; - // The list of generated directory records. - this.dirRecords = []; - // The offset (in bytes) from the beginning of the zip file for the current source. - this.currentSourceOffset = 0; - // The total number of entries in this zip file. - this.entriesCount = 0; - // the name of the file currently being added, null when handling the end of the zip file. - // Used for the emitted metadata. - this.currentFile = null; - - - - this._sources = []; - } - utils.inherits(ZipFileWorker, GenericWorker); - - /** - * @see GenericWorker.push - */ - ZipFileWorker.prototype.push = function (chunk) { - - var currentFilePercent = chunk.meta.percent || 0; - var entriesCount = this.entriesCount; - var remainingFiles = this._sources.length; - - if(this.accumulate) { - this.contentBuffer.push(chunk); - } else { - this.bytesWritten += chunk.data.length; - - GenericWorker.prototype.push.call(this, { - data : chunk.data, - meta : { - currentFile : this.currentFile, - percent : entriesCount ? (currentFilePercent + 100 * (entriesCount - remainingFiles - 1)) / entriesCount : 100 - } - }); - } - }; - - /** - * The worker started a new source (an other worker). - * @param {Object} streamInfo the streamInfo object from the new source. - */ - ZipFileWorker.prototype.openedSource = function (streamInfo) { - this.currentSourceOffset = this.bytesWritten; - this.currentFile = streamInfo["file"].name; - - var streamedContent = this.streamFiles && !streamInfo["file"].dir; - - // don't stream folders (because they don't have any content) - if(streamedContent) { - var record = generateZipParts(streamInfo, streamedContent, false, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); - this.push({ - data : record.fileRecord, - meta : {percent:0} - }); - } else { - // we need to wait for the whole file before pushing anything - this.accumulate = true; - } - }; - - /** - * The worker finished a source (an other worker). - * @param {Object} streamInfo the streamInfo object from the finished source. - */ - ZipFileWorker.prototype.closedSource = function (streamInfo) { - this.accumulate = false; - var streamedContent = this.streamFiles && !streamInfo["file"].dir; - var record = generateZipParts(streamInfo, streamedContent, true, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); - - this.dirRecords.push(record.dirRecord); - if(streamedContent) { - // after the streamed file, we put data descriptors - this.push({ - data : generateDataDescriptors(streamInfo), - meta : {percent:100} - }); - } else { - // the content wasn't streamed, we need to push everything now - // first the file record, then the content - this.push({ - data : record.fileRecord, - meta : {percent:0} - }); - while(this.contentBuffer.length) { - this.push(this.contentBuffer.shift()); - } - } - this.currentFile = null; - }; - - /** - * @see GenericWorker.flush - */ - ZipFileWorker.prototype.flush = function () { - - var localDirLength = this.bytesWritten; - for(var i = 0; i < this.dirRecords.length; i++) { - this.push({ - data : this.dirRecords[i], - meta : {percent:100} - }); - } - var centralDirLength = this.bytesWritten - localDirLength; - - var dirEnd = generateCentralDirectoryEnd(this.dirRecords.length, centralDirLength, localDirLength, this.zipComment, this.encodeFileName); - - this.push({ - data : dirEnd, - meta : {percent:100} - }); - }; - - /** - * Prepare the next source to be read. - */ - ZipFileWorker.prototype.prepareNextSource = function () { - this.previous = this._sources.shift(); - this.openedSource(this.previous.streamInfo); - if (this.isPaused) { - this.previous.pause(); - } else { - this.previous.resume(); - } - }; - - /** - * @see GenericWorker.registerPrevious - */ - ZipFileWorker.prototype.registerPrevious = function (previous) { - this._sources.push(previous); - var self = this; - - previous.on("data", function (chunk) { - self.processChunk(chunk); - }); - previous.on("end", function () { - self.closedSource(self.previous.streamInfo); - if(self._sources.length) { - self.prepareNextSource(); - } else { - self.end(); - } - }); - previous.on("error", function (e) { - self.error(e); - }); - return this; - }; - - /** - * @see GenericWorker.resume - */ - ZipFileWorker.prototype.resume = function () { - if(!GenericWorker.prototype.resume.call(this)) { - return false; - } - - if (!this.previous && this._sources.length) { - this.prepareNextSource(); - return true; - } - if (!this.previous && !this._sources.length && !this.generatedError) { - this.end(); - return true; - } - }; - - /** - * @see GenericWorker.error - */ - ZipFileWorker.prototype.error = function (e) { - var sources = this._sources; - if(!GenericWorker.prototype.error.call(this, e)) { - return false; - } - for(var i = 0; i < sources.length; i++) { - try { - sources[i].error(e); - } catch(e) { - // the `error` exploded, nothing to do - } - } - return true; - }; - - /** - * @see GenericWorker.lock - */ - ZipFileWorker.prototype.lock = function () { - GenericWorker.prototype.lock.call(this); - var sources = this._sources; - for(var i = 0; i < sources.length; i++) { - sources[i].lock(); - } - }; - - module.exports = ZipFileWorker; - - },{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(require,module,exports){ - - var compressions = require("../compressions"); - var ZipFileWorker = require("./ZipFileWorker"); - - /** - * Find the compression to use. - * @param {String} fileCompression the compression defined at the file level, if any. - * @param {String} zipCompression the compression defined at the load() level. - * @return {Object} the compression object to use. - */ - var getCompression = function (fileCompression, zipCompression) { - - var compressionName = fileCompression || zipCompression; - var compression = compressions[compressionName]; - if (!compression) { - throw new Error(compressionName + " is not a valid compression method !"); - } - return compression; - }; - - /** - * Create a worker to generate a zip file. - * @param {JSZip} zip the JSZip instance at the right root level. - * @param {Object} options to generate the zip file. - * @param {String} comment the comment to use. - */ - exports.generateWorker = function (zip, options, comment) { - - var zipFileWorker = new ZipFileWorker(options.streamFiles, comment, options.platform, options.encodeFileName); - var entriesCount = 0; - try { - - zip.forEach(function (relativePath, file) { - entriesCount++; - var compression = getCompression(file.options.compression, options.compression); - var compressionOptions = file.options.compressionOptions || options.compressionOptions || {}; - var dir = file.dir, date = file.date; - - file._compressWorker(compression, compressionOptions) - .withStreamInfo("file", { - name : relativePath, - dir : dir, - date : date, - comment : file.comment || "", - unixPermissions : file.unixPermissions, - dosPermissions : file.dosPermissions - }) - .pipe(zipFileWorker); - }); - zipFileWorker.entriesCount = entriesCount; - } catch (e) { - zipFileWorker.error(e); - } - - return zipFileWorker; - }; - - },{"../compressions":3,"./ZipFileWorker":8}],10:[function(require,module,exports){ - - /** - * Representation a of zip file in js - * @constructor - */ - function JSZip() { - // if this constructor is used without `new`, it adds `new` before itself: - if(!(this instanceof JSZip)) { - return new JSZip(); - } - - if(arguments.length) { - throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide."); - } - - // object containing the files : - // { - // "folder/" : {...}, - // "folder/data.txt" : {...} - // } - // NOTE: we use a null prototype because we do not - // want filenames like "toString" coming from a zip file - // to overwrite methods and attributes in a normal Object. - this.files = Object.create(null); - - this.comment = null; - - // Where we are in the hierarchy - this.root = ""; - this.clone = function() { - var newObj = new JSZip(); - for (var i in this) { - if (typeof this[i] !== "function") { - newObj[i] = this[i]; - } - } - return newObj; - }; - } - JSZip.prototype = require("./object"); - JSZip.prototype.loadAsync = require("./load"); - JSZip.support = require("./support"); - JSZip.defaults = require("./defaults"); - - // TODO find a better way to handle this version, - // a require('package.json').version doesn't work with webpack, see #327 - JSZip.version = "3.10.1"; - - JSZip.loadAsync = function (content, options) { - return new JSZip().loadAsync(content, options); - }; - - JSZip.external = require("./external"); - module.exports = JSZip; - - },{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(require,module,exports){ - var utils = require("./utils"); - var external = require("./external"); - var utf8 = require("./utf8"); - var ZipEntries = require("./zipEntries"); - var Crc32Probe = require("./stream/Crc32Probe"); - var nodejsUtils = require("./nodejsUtils"); - - /** - * Check the CRC32 of an entry. - * @param {ZipEntry} zipEntry the zip entry to check. - * @return {Promise} the result. - */ - function checkEntryCRC32(zipEntry) { - return new external.Promise(function (resolve, reject) { - var worker = zipEntry.decompressed.getContentWorker().pipe(new Crc32Probe()); - worker.on("error", function (e) { - reject(e); - }) - .on("end", function () { - if (worker.streamInfo.crc32 !== zipEntry.decompressed.crc32) { - reject(new Error("Corrupted zip : CRC32 mismatch")); - } else { - resolve(); - } - }) - .resume(); - }); - } - - module.exports = function (data, options) { - var zip = this; - options = utils.extend(options || {}, { - base64: false, - checkCRC32: false, - optimizedBinaryString: false, - createFolders: false, - decodeFileName: utf8.utf8decode - }); - - if (nodejsUtils.isNode && nodejsUtils.isStream(data)) { - return external.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")); - } - - return utils.prepareContent("the loaded zip file", data, true, options.optimizedBinaryString, options.base64) - .then(function (data) { - var zipEntries = new ZipEntries(options); - zipEntries.load(data); - return zipEntries; - }).then(function checkCRC32(zipEntries) { - var promises = [external.Promise.resolve(zipEntries)]; - var files = zipEntries.files; - if (options.checkCRC32) { - for (var i = 0; i < files.length; i++) { - promises.push(checkEntryCRC32(files[i])); - } - } - return external.Promise.all(promises); - }).then(function addFiles(results) { - var zipEntries = results.shift(); - var files = zipEntries.files; - for (var i = 0; i < files.length; i++) { - var input = files[i]; - - var unsafeName = input.fileNameStr; - var safeName = utils.resolve(input.fileNameStr); - - zip.file(safeName, input.decompressed, { - binary: true, - optimizedBinaryString: true, - date: input.date, - dir: input.dir, - comment: input.fileCommentStr.length ? input.fileCommentStr : null, - unixPermissions: input.unixPermissions, - dosPermissions: input.dosPermissions, - createFolders: options.createFolders - }); - if (!input.dir) { - zip.file(safeName).unsafeOriginalName = unsafeName; - } - } - if (zipEntries.zipComment.length) { - zip.comment = zipEntries.zipComment; - } - - return zip; - }); - }; - - },{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(require,module,exports){ - - var utils = require("../utils"); - var GenericWorker = require("../stream/GenericWorker"); - - /** - * A worker that use a nodejs stream as source. - * @constructor - * @param {String} filename the name of the file entry for this stream. - * @param {Readable} stream the nodejs stream. - */ - function NodejsStreamInputAdapter(filename, stream) { - GenericWorker.call(this, "Nodejs stream input adapter for " + filename); - this._upstreamEnded = false; - this._bindStream(stream); - } - - utils.inherits(NodejsStreamInputAdapter, GenericWorker); - - /** - * Prepare the stream and bind the callbacks on it. - * Do this ASAP on node 0.10 ! A lazy binding doesn't always work. - * @param {Stream} stream the nodejs stream to use. - */ - NodejsStreamInputAdapter.prototype._bindStream = function (stream) { - var self = this; - this._stream = stream; - stream.pause(); - stream - .on("data", function (chunk) { - self.push({ - data: chunk, - meta : { - percent : 0 - } - }); - }) - .on("error", function (e) { - if(self.isPaused) { - this.generatedError = e; - } else { - self.error(e); - } - }) - .on("end", function () { - if(self.isPaused) { - self._upstreamEnded = true; - } else { - self.end(); - } - }); - }; - NodejsStreamInputAdapter.prototype.pause = function () { - if(!GenericWorker.prototype.pause.call(this)) { - return false; - } - this._stream.pause(); - return true; - }; - NodejsStreamInputAdapter.prototype.resume = function () { - if(!GenericWorker.prototype.resume.call(this)) { - return false; - } - - if(this._upstreamEnded) { - this.end(); - } else { - this._stream.resume(); - } - - return true; - }; - - module.exports = NodejsStreamInputAdapter; - - },{"../stream/GenericWorker":28,"../utils":32}],13:[function(require,module,exports){ - - var Readable = require("readable-stream").Readable; - - var utils = require("../utils"); - utils.inherits(NodejsStreamOutputAdapter, Readable); - - /** - * A nodejs stream using a worker as source. - * @see the SourceWrapper in http://nodejs.org/api/stream.html - * @constructor - * @param {StreamHelper} helper the helper wrapping the worker - * @param {Object} options the nodejs stream options - * @param {Function} updateCb the update callback. - */ - function NodejsStreamOutputAdapter(helper, options, updateCb) { - Readable.call(this, options); - this._helper = helper; - - var self = this; - helper.on("data", function (data, meta) { - if (!self.push(data)) { - self._helper.pause(); - } - if(updateCb) { - updateCb(meta); - } - }) - .on("error", function(e) { - self.emit("error", e); - }) - .on("end", function () { - self.push(null); - }); - } - - - NodejsStreamOutputAdapter.prototype._read = function() { - this._helper.resume(); - }; - - module.exports = NodejsStreamOutputAdapter; - - },{"../utils":32,"readable-stream":16}],14:[function(require,module,exports){ - - module.exports = { - /** - * True if this is running in Nodejs, will be undefined in a browser. - * In a browser, browserify won't include this file and the whole module - * will be resolved an empty object. - */ - isNode : typeof Buffer !== "undefined", - /** - * Create a new nodejs Buffer from an existing content. - * @param {Object} data the data to pass to the constructor. - * @param {String} encoding the encoding to use. - * @return {Buffer} a new Buffer. - */ - newBufferFrom: function(data, encoding) { - if (Buffer.from && Buffer.from !== Uint8Array.from) { - return Buffer.from(data, encoding); - } else { - if (typeof data === "number") { - // Safeguard for old Node.js versions. On newer versions, - // Buffer.from(number) / Buffer(number, encoding) already throw. - throw new Error("The \"data\" argument must not be a number"); - } - return new Buffer(data, encoding); - } - }, - /** - * Create a new nodejs Buffer with the specified size. - * @param {Integer} size the size of the buffer. - * @return {Buffer} a new Buffer. - */ - allocBuffer: function (size) { - if (Buffer.alloc) { - return Buffer.alloc(size); - } else { - var buf = new Buffer(size); - buf.fill(0); - return buf; - } - }, - /** - * Find out if an object is a Buffer. - * @param {Object} b the object to test. - * @return {Boolean} true if the object is a Buffer, false otherwise. - */ - isBuffer : function(b){ - return Buffer.isBuffer(b); - }, - - isStream : function (obj) { - return obj && - typeof obj.on === "function" && - typeof obj.pause === "function" && - typeof obj.resume === "function"; - } - }; - - },{}],15:[function(require,module,exports){ - var utf8 = require("./utf8"); - var utils = require("./utils"); - var GenericWorker = require("./stream/GenericWorker"); - var StreamHelper = require("./stream/StreamHelper"); - var defaults = require("./defaults"); - var CompressedObject = require("./compressedObject"); - var ZipObject = require("./zipObject"); - var generate = require("./generate"); - var nodejsUtils = require("./nodejsUtils"); - var NodejsStreamInputAdapter = require("./nodejs/NodejsStreamInputAdapter"); - - - /** - * Add a file in the current folder. - * @private - * @param {string} name the name of the file - * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data of the file - * @param {Object} originalOptions the options of the file - * @return {Object} the new file. - */ - var fileAdd = function(name, data, originalOptions) { - // be sure sub folders exist - var dataType = utils.getTypeOf(data), - parent; - - - /* - * Correct options. - */ - - var o = utils.extend(originalOptions || {}, defaults); - o.date = o.date || new Date(); - if (o.compression !== null) { - o.compression = o.compression.toUpperCase(); - } - - if (typeof o.unixPermissions === "string") { - o.unixPermissions = parseInt(o.unixPermissions, 8); - } - - // UNX_IFDIR 0040000 see zipinfo.c - if (o.unixPermissions && (o.unixPermissions & 0x4000)) { - o.dir = true; - } - // Bit 4 Directory - if (o.dosPermissions && (o.dosPermissions & 0x0010)) { - o.dir = true; - } - - if (o.dir) { - name = forceTrailingSlash(name); - } - if (o.createFolders && (parent = parentFolder(name))) { - folderAdd.call(this, parent, true); - } - - var isUnicodeString = dataType === "string" && o.binary === false && o.base64 === false; - if (!originalOptions || typeof originalOptions.binary === "undefined") { - o.binary = !isUnicodeString; - } - - - var isCompressedEmpty = (data instanceof CompressedObject) && data.uncompressedSize === 0; - - if (isCompressedEmpty || o.dir || !data || data.length === 0) { - o.base64 = false; - o.binary = true; - data = ""; - o.compression = "STORE"; - dataType = "string"; - } - - /* - * Convert content to fit. - */ - - var zipObjectContent = null; - if (data instanceof CompressedObject || data instanceof GenericWorker) { - zipObjectContent = data; - } else if (nodejsUtils.isNode && nodejsUtils.isStream(data)) { - zipObjectContent = new NodejsStreamInputAdapter(name, data); - } else { - zipObjectContent = utils.prepareContent(name, data, o.binary, o.optimizedBinaryString, o.base64); - } - - var object = new ZipObject(name, zipObjectContent, o); - this.files[name] = object; - /* - TODO: we can't throw an exception because we have async promises - (we can have a promise of a Date() for example) but returning a - promise is useless because file(name, data) returns the JSZip - object for chaining. Should we break that to allow the user - to catch the error ? - - return external.Promise.resolve(zipObjectContent) - .then(function () { - return object; - }); - */ - }; - - /** - * Find the parent folder of the path. - * @private - * @param {string} path the path to use - * @return {string} the parent folder, or "" - */ - var parentFolder = function (path) { - if (path.slice(-1) === "/") { - path = path.substring(0, path.length - 1); - } - var lastSlash = path.lastIndexOf("/"); - return (lastSlash > 0) ? path.substring(0, lastSlash) : ""; - }; - - /** - * Returns the path with a slash at the end. - * @private - * @param {String} path the path to check. - * @return {String} the path with a trailing slash. - */ - var forceTrailingSlash = function(path) { - // Check the name ends with a / - if (path.slice(-1) !== "/") { - path += "/"; // IE doesn't like substr(-1) - } - return path; - }; - - /** - * Add a (sub) folder in the current folder. - * @private - * @param {string} name the folder's name - * @param {boolean=} [createFolders] If true, automatically create sub - * folders. Defaults to false. - * @return {Object} the new folder. - */ - var folderAdd = function(name, createFolders) { - createFolders = (typeof createFolders !== "undefined") ? createFolders : defaults.createFolders; - - name = forceTrailingSlash(name); - - // Does this folder already exist? - if (!this.files[name]) { - fileAdd.call(this, name, null, { - dir: true, - createFolders: createFolders - }); - } - return this.files[name]; - }; - - /** - * Cross-window, cross-Node-context regular expression detection - * @param {Object} object Anything - * @return {Boolean} true if the object is a regular expression, - * false otherwise - */ - function isRegExp(object) { - return Object.prototype.toString.call(object) === "[object RegExp]"; - } - - // return the actual prototype of JSZip - var out = { - /** - * @see loadAsync - */ - load: function() { - throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); - }, - - - /** - * Call a callback function for each entry at this folder level. - * @param {Function} cb the callback function: - * function (relativePath, file) {...} - * It takes 2 arguments : the relative path and the file. - */ - forEach: function(cb) { - var filename, relativePath, file; - // ignore warning about unwanted properties because this.files is a null prototype object - /* eslint-disable-next-line guard-for-in */ - for (filename in this.files) { - file = this.files[filename]; - relativePath = filename.slice(this.root.length, filename.length); - if (relativePath && filename.slice(0, this.root.length) === this.root) { // the file is in the current root - cb(relativePath, file); // TODO reverse the parameters ? need to be clean AND consistent with the filter search fn... - } - } - }, - - /** - * Filter nested files/folders with the specified function. - * @param {Function} search the predicate to use : - * function (relativePath, file) {...} - * It takes 2 arguments : the relative path and the file. - * @return {Array} An array of matching elements. - */ - filter: function(search) { - var result = []; - this.forEach(function (relativePath, entry) { - if (search(relativePath, entry)) { // the file matches the function - result.push(entry); - } - - }); - return result; - }, - - /** - * Add a file to the zip file, or search a file. - * @param {string|RegExp} name The name of the file to add (if data is defined), - * the name of the file to find (if no data) or a regex to match files. - * @param {String|ArrayBuffer|Uint8Array|Buffer} data The file data, either raw or base64 encoded - * @param {Object} o File options - * @return {JSZip|Object|Array} this JSZip object (when adding a file), - * a file (when searching by string) or an array of files (when searching by regex). - */ - file: function(name, data, o) { - if (arguments.length === 1) { - if (isRegExp(name)) { - var regexp = name; - return this.filter(function(relativePath, file) { - return !file.dir && regexp.test(relativePath); - }); - } - else { // text - var obj = this.files[this.root + name]; - if (obj && !obj.dir) { - return obj; - } else { - return null; - } - } - } - else { // more than one argument : we have data ! - name = this.root + name; - fileAdd.call(this, name, data, o); - } - return this; - }, - - /** - * Add a directory to the zip file, or search. - * @param {String|RegExp} arg The name of the directory to add, or a regex to search folders. - * @return {JSZip} an object with the new directory as the root, or an array containing matching folders. - */ - folder: function(arg) { - if (!arg) { - return this; - } - - if (isRegExp(arg)) { - return this.filter(function(relativePath, file) { - return file.dir && arg.test(relativePath); - }); - } - - // else, name is a new folder - var name = this.root + arg; - var newFolder = folderAdd.call(this, name); - - // Allow chaining by returning a new object with this folder as the root - var ret = this.clone(); - ret.root = newFolder.name; - return ret; - }, - - /** - * Delete a file, or a directory and all sub-files, from the zip - * @param {string} name the name of the file to delete - * @return {JSZip} this JSZip object - */ - remove: function(name) { - name = this.root + name; - var file = this.files[name]; - if (!file) { - // Look for any folders - if (name.slice(-1) !== "/") { - name += "/"; - } - file = this.files[name]; - } - - if (file && !file.dir) { - // file - delete this.files[name]; - } else { - // maybe a folder, delete recursively - var kids = this.filter(function(relativePath, file) { - return file.name.slice(0, name.length) === name; - }); - for (var i = 0; i < kids.length; i++) { - delete this.files[kids[i].name]; - } - } - - return this; - }, - - /** - * @deprecated This method has been removed in JSZip 3.0, please check the upgrade guide. - */ - generate: function() { - throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); - }, - - /** - * Generate the complete zip file as an internal stream. - * @param {Object} options the options to generate the zip file : - * - compression, "STORE" by default. - * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob. - * @return {StreamHelper} the streamed zip file. - */ - generateInternalStream: function(options) { - var worker, opts = {}; - try { - opts = utils.extend(options || {}, { - streamFiles: false, - compression: "STORE", - compressionOptions : null, - type: "", - platform: "DOS", - comment: null, - mimeType: "application/zip", - encodeFileName: utf8.utf8encode - }); - - opts.type = opts.type.toLowerCase(); - opts.compression = opts.compression.toUpperCase(); - - // "binarystring" is preferred but the internals use "string". - if(opts.type === "binarystring") { - opts.type = "string"; - } - - if (!opts.type) { - throw new Error("No output type specified."); - } - - utils.checkSupport(opts.type); - - // accept nodejs `process.platform` - if( - opts.platform === "darwin" || - opts.platform === "freebsd" || - opts.platform === "linux" || - opts.platform === "sunos" - ) { - opts.platform = "UNIX"; - } - if (opts.platform === "win32") { - opts.platform = "DOS"; - } - - var comment = opts.comment || this.comment || ""; - worker = generate.generateWorker(this, opts, comment); - } catch (e) { - worker = new GenericWorker("error"); - worker.error(e); - } - return new StreamHelper(worker, opts.type || "string", opts.mimeType); - }, - /** - * Generate the complete zip file asynchronously. - * @see generateInternalStream - */ - generateAsync: function(options, onUpdate) { - return this.generateInternalStream(options).accumulate(onUpdate); - }, - /** - * Generate the complete zip file asynchronously. - * @see generateInternalStream - */ - generateNodeStream: function(options, onUpdate) { - options = options || {}; - if (!options.type) { - options.type = "nodebuffer"; - } - return this.generateInternalStream(options).toNodejsStream(onUpdate); - } - }; - module.exports = out; - - },{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(require,module,exports){ - /* - * This file is used by module bundlers (browserify/webpack/etc) when - * including a stream implementation. We use "readable-stream" to get a - * consistent behavior between nodejs versions but bundlers often have a shim - * for "stream". Using this shim greatly improve the compatibility and greatly - * reduce the final size of the bundle (only one stream implementation, not - * two). - */ - module.exports = require("stream"); - - },{"stream":undefined}],17:[function(require,module,exports){ - var DataReader = require("./DataReader"); - var utils = require("../utils"); - - function ArrayReader(data) { - DataReader.call(this, data); - for(var i = 0; i < this.data.length; i++) { - data[i] = data[i] & 0xFF; - } - } - utils.inherits(ArrayReader, DataReader); - /** - * @see DataReader.byteAt - */ - ArrayReader.prototype.byteAt = function(i) { - return this.data[this.zero + i]; - }; - /** - * @see DataReader.lastIndexOfSignature - */ - ArrayReader.prototype.lastIndexOfSignature = function(sig) { - var sig0 = sig.charCodeAt(0), - sig1 = sig.charCodeAt(1), - sig2 = sig.charCodeAt(2), - sig3 = sig.charCodeAt(3); - for (var i = this.length - 4; i >= 0; --i) { - if (this.data[i] === sig0 && this.data[i + 1] === sig1 && this.data[i + 2] === sig2 && this.data[i + 3] === sig3) { - return i - this.zero; - } - } - - return -1; - }; - /** - * @see DataReader.readAndCheckSignature - */ - ArrayReader.prototype.readAndCheckSignature = function (sig) { - var sig0 = sig.charCodeAt(0), - sig1 = sig.charCodeAt(1), - sig2 = sig.charCodeAt(2), - sig3 = sig.charCodeAt(3), - data = this.readData(4); - return sig0 === data[0] && sig1 === data[1] && sig2 === data[2] && sig3 === data[3]; - }; - /** - * @see DataReader.readData - */ - ArrayReader.prototype.readData = function(size) { - this.checkOffset(size); - if(size === 0) { - return []; - } - var result = this.data.slice(this.zero + this.index, this.zero + this.index + size); - this.index += size; - return result; - }; - module.exports = ArrayReader; - - },{"../utils":32,"./DataReader":18}],18:[function(require,module,exports){ - var utils = require("../utils"); - - function DataReader(data) { - this.data = data; // type : see implementation - this.length = data.length; - this.index = 0; - this.zero = 0; - } - DataReader.prototype = { - /** - * Check that the offset will not go too far. - * @param {string} offset the additional offset to check. - * @throws {Error} an Error if the offset is out of bounds. - */ - checkOffset: function(offset) { - this.checkIndex(this.index + offset); - }, - /** - * Check that the specified index will not be too far. - * @param {string} newIndex the index to check. - * @throws {Error} an Error if the index is out of bounds. - */ - checkIndex: function(newIndex) { - if (this.length < this.zero + newIndex || newIndex < 0) { - throw new Error("End of data reached (data length = " + this.length + ", asked index = " + (newIndex) + "). Corrupted zip ?"); - } - }, - /** - * Change the index. - * @param {number} newIndex The new index. - * @throws {Error} if the new index is out of the data. - */ - setIndex: function(newIndex) { - this.checkIndex(newIndex); - this.index = newIndex; - }, - /** - * Skip the next n bytes. - * @param {number} n the number of bytes to skip. - * @throws {Error} if the new index is out of the data. - */ - skip: function(n) { - this.setIndex(this.index + n); - }, - /** - * Get the byte at the specified index. - * @param {number} i the index to use. - * @return {number} a byte. - */ - byteAt: function() { - // see implementations - }, - /** - * Get the next number with a given byte size. - * @param {number} size the number of bytes to read. - * @return {number} the corresponding number. - */ - readInt: function(size) { - var result = 0, - i; - this.checkOffset(size); - for (i = this.index + size - 1; i >= this.index; i--) { - result = (result << 8) + this.byteAt(i); - } - this.index += size; - return result; - }, - /** - * Get the next string with a given byte size. - * @param {number} size the number of bytes to read. - * @return {string} the corresponding string. - */ - readString: function(size) { - return utils.transformTo("string", this.readData(size)); - }, - /** - * Get raw data without conversion, bytes. - * @param {number} size the number of bytes to read. - * @return {Object} the raw data, implementation specific. - */ - readData: function() { - // see implementations - }, - /** - * Find the last occurrence of a zip signature (4 bytes). - * @param {string} sig the signature to find. - * @return {number} the index of the last occurrence, -1 if not found. - */ - lastIndexOfSignature: function() { - // see implementations - }, - /** - * Read the signature (4 bytes) at the current position and compare it with sig. - * @param {string} sig the expected signature - * @return {boolean} true if the signature matches, false otherwise. - */ - readAndCheckSignature: function() { - // see implementations - }, - /** - * Get the next date. - * @return {Date} the date. - */ - readDate: function() { - var dostime = this.readInt(4); - return new Date(Date.UTC( - ((dostime >> 25) & 0x7f) + 1980, // year - ((dostime >> 21) & 0x0f) - 1, // month - (dostime >> 16) & 0x1f, // day - (dostime >> 11) & 0x1f, // hour - (dostime >> 5) & 0x3f, // minute - (dostime & 0x1f) << 1)); // second - } - }; - module.exports = DataReader; - - },{"../utils":32}],19:[function(require,module,exports){ - var Uint8ArrayReader = require("./Uint8ArrayReader"); - var utils = require("../utils"); - - function NodeBufferReader(data) { - Uint8ArrayReader.call(this, data); - } - utils.inherits(NodeBufferReader, Uint8ArrayReader); - - /** - * @see DataReader.readData - */ - NodeBufferReader.prototype.readData = function(size) { - this.checkOffset(size); - var result = this.data.slice(this.zero + this.index, this.zero + this.index + size); - this.index += size; - return result; - }; - module.exports = NodeBufferReader; - - },{"../utils":32,"./Uint8ArrayReader":21}],20:[function(require,module,exports){ - var DataReader = require("./DataReader"); - var utils = require("../utils"); - - function StringReader(data) { - DataReader.call(this, data); - } - utils.inherits(StringReader, DataReader); - /** - * @see DataReader.byteAt - */ - StringReader.prototype.byteAt = function(i) { - return this.data.charCodeAt(this.zero + i); - }; - /** - * @see DataReader.lastIndexOfSignature - */ - StringReader.prototype.lastIndexOfSignature = function(sig) { - return this.data.lastIndexOf(sig) - this.zero; - }; - /** - * @see DataReader.readAndCheckSignature - */ - StringReader.prototype.readAndCheckSignature = function (sig) { - var data = this.readData(4); - return sig === data; - }; - /** - * @see DataReader.readData - */ - StringReader.prototype.readData = function(size) { - this.checkOffset(size); - // this will work because the constructor applied the "& 0xff" mask. - var result = this.data.slice(this.zero + this.index, this.zero + this.index + size); - this.index += size; - return result; - }; - module.exports = StringReader; - - },{"../utils":32,"./DataReader":18}],21:[function(require,module,exports){ - var ArrayReader = require("./ArrayReader"); - var utils = require("../utils"); - - function Uint8ArrayReader(data) { - ArrayReader.call(this, data); - } - utils.inherits(Uint8ArrayReader, ArrayReader); - /** - * @see DataReader.readData - */ - Uint8ArrayReader.prototype.readData = function(size) { - this.checkOffset(size); - if(size === 0) { - // in IE10, when using subarray(idx, idx), we get the array [0x00] instead of []. - return new Uint8Array(0); - } - var result = this.data.subarray(this.zero + this.index, this.zero + this.index + size); - this.index += size; - return result; - }; - module.exports = Uint8ArrayReader; - - },{"../utils":32,"./ArrayReader":17}],22:[function(require,module,exports){ - - var utils = require("../utils"); - var support = require("../support"); - var ArrayReader = require("./ArrayReader"); - var StringReader = require("./StringReader"); - var NodeBufferReader = require("./NodeBufferReader"); - var Uint8ArrayReader = require("./Uint8ArrayReader"); - - /** - * Create a reader adapted to the data. - * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data to read. - * @return {DataReader} the data reader. - */ - module.exports = function (data) { - var type = utils.getTypeOf(data); - utils.checkSupport(type); - if (type === "string" && !support.uint8array) { - return new StringReader(data); - } - if (type === "nodebuffer") { - return new NodeBufferReader(data); - } - if (support.uint8array) { - return new Uint8ArrayReader(utils.transformTo("uint8array", data)); - } - return new ArrayReader(utils.transformTo("array", data)); - }; - - },{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(require,module,exports){ - exports.LOCAL_FILE_HEADER = "PK\x03\x04"; - exports.CENTRAL_FILE_HEADER = "PK\x01\x02"; - exports.CENTRAL_DIRECTORY_END = "PK\x05\x06"; - exports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\x06\x07"; - exports.ZIP64_CENTRAL_DIRECTORY_END = "PK\x06\x06"; - exports.DATA_DESCRIPTOR = "PK\x07\x08"; - - },{}],24:[function(require,module,exports){ - - var GenericWorker = require("./GenericWorker"); - var utils = require("../utils"); - - /** - * A worker which convert chunks to a specified type. - * @constructor - * @param {String} destType the destination type. - */ - function ConvertWorker(destType) { - GenericWorker.call(this, "ConvertWorker to " + destType); - this.destType = destType; - } - utils.inherits(ConvertWorker, GenericWorker); - - /** - * @see GenericWorker.processChunk - */ - ConvertWorker.prototype.processChunk = function (chunk) { - this.push({ - data : utils.transformTo(this.destType, chunk.data), - meta : chunk.meta - }); - }; - module.exports = ConvertWorker; - - },{"../utils":32,"./GenericWorker":28}],25:[function(require,module,exports){ - - var GenericWorker = require("./GenericWorker"); - var crc32 = require("../crc32"); - var utils = require("../utils"); - - /** - * A worker which calculate the crc32 of the data flowing through. - * @constructor - */ - function Crc32Probe() { - GenericWorker.call(this, "Crc32Probe"); - this.withStreamInfo("crc32", 0); - } - utils.inherits(Crc32Probe, GenericWorker); - - /** - * @see GenericWorker.processChunk - */ - Crc32Probe.prototype.processChunk = function (chunk) { - this.streamInfo.crc32 = crc32(chunk.data, this.streamInfo.crc32 || 0); - this.push(chunk); - }; - module.exports = Crc32Probe; - - },{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(require,module,exports){ - - var utils = require("../utils"); - var GenericWorker = require("./GenericWorker"); - - /** - * A worker which calculate the total length of the data flowing through. - * @constructor - * @param {String} propName the name used to expose the length - */ - function DataLengthProbe(propName) { - GenericWorker.call(this, "DataLengthProbe for " + propName); - this.propName = propName; - this.withStreamInfo(propName, 0); - } - utils.inherits(DataLengthProbe, GenericWorker); - - /** - * @see GenericWorker.processChunk - */ - DataLengthProbe.prototype.processChunk = function (chunk) { - if(chunk) { - var length = this.streamInfo[this.propName] || 0; - this.streamInfo[this.propName] = length + chunk.data.length; - } - GenericWorker.prototype.processChunk.call(this, chunk); - }; - module.exports = DataLengthProbe; - - - },{"../utils":32,"./GenericWorker":28}],27:[function(require,module,exports){ - - var utils = require("../utils"); - var GenericWorker = require("./GenericWorker"); - - // the size of the generated chunks - // TODO expose this as a public variable - var DEFAULT_BLOCK_SIZE = 16 * 1024; - - /** - * A worker that reads a content and emits chunks. - * @constructor - * @param {Promise} dataP the promise of the data to split - */ - function DataWorker(dataP) { - GenericWorker.call(this, "DataWorker"); - var self = this; - this.dataIsReady = false; - this.index = 0; - this.max = 0; - this.data = null; - this.type = ""; - - this._tickScheduled = false; - - dataP.then(function (data) { - self.dataIsReady = true; - self.data = data; - self.max = data && data.length || 0; - self.type = utils.getTypeOf(data); - if(!self.isPaused) { - self._tickAndRepeat(); - } - }, function (e) { - self.error(e); - }); - } - - utils.inherits(DataWorker, GenericWorker); - - /** - * @see GenericWorker.cleanUp - */ - DataWorker.prototype.cleanUp = function () { - GenericWorker.prototype.cleanUp.call(this); - this.data = null; - }; - - /** - * @see GenericWorker.resume - */ - DataWorker.prototype.resume = function () { - if(!GenericWorker.prototype.resume.call(this)) { - return false; - } - - if (!this._tickScheduled && this.dataIsReady) { - this._tickScheduled = true; - utils.delay(this._tickAndRepeat, [], this); - } - return true; - }; - - /** - * Trigger a tick a schedule an other call to this function. - */ - DataWorker.prototype._tickAndRepeat = function() { - this._tickScheduled = false; - if(this.isPaused || this.isFinished) { - return; - } - this._tick(); - if(!this.isFinished) { - utils.delay(this._tickAndRepeat, [], this); - this._tickScheduled = true; - } - }; - - /** - * Read and push a chunk. - */ - DataWorker.prototype._tick = function() { - - if(this.isPaused || this.isFinished) { - return false; - } - - var size = DEFAULT_BLOCK_SIZE; - var data = null, nextIndex = Math.min(this.max, this.index + size); - if (this.index >= this.max) { - // EOF - return this.end(); - } else { - switch(this.type) { - case "string": - data = this.data.substring(this.index, nextIndex); - break; - case "uint8array": - data = this.data.subarray(this.index, nextIndex); - break; - case "array": - case "nodebuffer": - data = this.data.slice(this.index, nextIndex); - break; - } - this.index = nextIndex; - return this.push({ - data : data, - meta : { - percent : this.max ? this.index / this.max * 100 : 0 - } - }); - } - }; - - module.exports = DataWorker; - - },{"../utils":32,"./GenericWorker":28}],28:[function(require,module,exports){ - - /** - * A worker that does nothing but passing chunks to the next one. This is like - * a nodejs stream but with some differences. On the good side : - * - it works on IE 6-9 without any issue / polyfill - * - it weights less than the full dependencies bundled with browserify - * - it forwards errors (no need to declare an error handler EVERYWHERE) - * - * A chunk is an object with 2 attributes : `meta` and `data`. The former is an - * object containing anything (`percent` for example), see each worker for more - * details. The latter is the real data (String, Uint8Array, etc). - * - * @constructor - * @param {String} name the name of the stream (mainly used for debugging purposes) - */ - function GenericWorker(name) { - // the name of the worker - this.name = name || "default"; - // an object containing metadata about the workers chain - this.streamInfo = {}; - // an error which happened when the worker was paused - this.generatedError = null; - // an object containing metadata to be merged by this worker into the general metadata - this.extraStreamInfo = {}; - // true if the stream is paused (and should not do anything), false otherwise - this.isPaused = true; - // true if the stream is finished (and should not do anything), false otherwise - this.isFinished = false; - // true if the stream is locked to prevent further structure updates (pipe), false otherwise - this.isLocked = false; - // the event listeners - this._listeners = { - "data":[], - "end":[], - "error":[] - }; - // the previous worker, if any - this.previous = null; - } - - GenericWorker.prototype = { - /** - * Push a chunk to the next workers. - * @param {Object} chunk the chunk to push - */ - push : function (chunk) { - this.emit("data", chunk); - }, - /** - * End the stream. - * @return {Boolean} true if this call ended the worker, false otherwise. - */ - end : function () { - if (this.isFinished) { - return false; - } - - this.flush(); - try { - this.emit("end"); - this.cleanUp(); - this.isFinished = true; - } catch (e) { - this.emit("error", e); - } - return true; - }, - /** - * End the stream with an error. - * @param {Error} e the error which caused the premature end. - * @return {Boolean} true if this call ended the worker with an error, false otherwise. - */ - error : function (e) { - if (this.isFinished) { - return false; - } - - if(this.isPaused) { - this.generatedError = e; - } else { - this.isFinished = true; - - this.emit("error", e); - - // in the workers chain exploded in the middle of the chain, - // the error event will go downward but we also need to notify - // workers upward that there has been an error. - if(this.previous) { - this.previous.error(e); - } - - this.cleanUp(); - } - return true; - }, - /** - * Add a callback on an event. - * @param {String} name the name of the event (data, end, error) - * @param {Function} listener the function to call when the event is triggered - * @return {GenericWorker} the current object for chainability - */ - on : function (name, listener) { - this._listeners[name].push(listener); - return this; - }, - /** - * Clean any references when a worker is ending. - */ - cleanUp : function () { - this.streamInfo = this.generatedError = this.extraStreamInfo = null; - this._listeners = []; - }, - /** - * Trigger an event. This will call registered callback with the provided arg. - * @param {String} name the name of the event (data, end, error) - * @param {Object} arg the argument to call the callback with. - */ - emit : function (name, arg) { - if (this._listeners[name]) { - for(var i = 0; i < this._listeners[name].length; i++) { - this._listeners[name][i].call(this, arg); - } - } - }, - /** - * Chain a worker with an other. - * @param {Worker} next the worker receiving events from the current one. - * @return {worker} the next worker for chainability - */ - pipe : function (next) { - return next.registerPrevious(this); - }, - /** - * Same as `pipe` in the other direction. - * Using an API with `pipe(next)` is very easy. - * Implementing the API with the point of view of the next one registering - * a source is easier, see the ZipFileWorker. - * @param {Worker} previous the previous worker, sending events to this one - * @return {Worker} the current worker for chainability - */ - registerPrevious : function (previous) { - if (this.isLocked) { - throw new Error("The stream '" + this + "' has already been used."); - } - - // sharing the streamInfo... - this.streamInfo = previous.streamInfo; - // ... and adding our own bits - this.mergeStreamInfo(); - this.previous = previous; - var self = this; - previous.on("data", function (chunk) { - self.processChunk(chunk); - }); - previous.on("end", function () { - self.end(); - }); - previous.on("error", function (e) { - self.error(e); - }); - return this; - }, - /** - * Pause the stream so it doesn't send events anymore. - * @return {Boolean} true if this call paused the worker, false otherwise. - */ - pause : function () { - if(this.isPaused || this.isFinished) { - return false; - } - this.isPaused = true; - - if(this.previous) { - this.previous.pause(); - } - return true; - }, - /** - * Resume a paused stream. - * @return {Boolean} true if this call resumed the worker, false otherwise. - */ - resume : function () { - if(!this.isPaused || this.isFinished) { - return false; - } - this.isPaused = false; - - // if true, the worker tried to resume but failed - var withError = false; - if(this.generatedError) { - this.error(this.generatedError); - withError = true; - } - if(this.previous) { - this.previous.resume(); - } - - return !withError; - }, - /** - * Flush any remaining bytes as the stream is ending. - */ - flush : function () {}, - /** - * Process a chunk. This is usually the method overridden. - * @param {Object} chunk the chunk to process. - */ - processChunk : function(chunk) { - this.push(chunk); - }, - /** - * Add a key/value to be added in the workers chain streamInfo once activated. - * @param {String} key the key to use - * @param {Object} value the associated value - * @return {Worker} the current worker for chainability - */ - withStreamInfo : function (key, value) { - this.extraStreamInfo[key] = value; - this.mergeStreamInfo(); - return this; - }, - /** - * Merge this worker's streamInfo into the chain's streamInfo. - */ - mergeStreamInfo : function () { - for(var key in this.extraStreamInfo) { - if (!Object.prototype.hasOwnProperty.call(this.extraStreamInfo, key)) { - continue; - } - this.streamInfo[key] = this.extraStreamInfo[key]; - } - }, - - /** - * Lock the stream to prevent further updates on the workers chain. - * After calling this method, all calls to pipe will fail. - */ - lock: function () { - if (this.isLocked) { - throw new Error("The stream '" + this + "' has already been used."); - } - this.isLocked = true; - if (this.previous) { - this.previous.lock(); - } - }, - - /** - * - * Pretty print the workers chain. - */ - toString : function () { - var me = "Worker " + this.name; - if (this.previous) { - return this.previous + " -> " + me; - } else { - return me; - } - } - }; - - module.exports = GenericWorker; - - },{}],29:[function(require,module,exports){ - - var utils = require("../utils"); - var ConvertWorker = require("./ConvertWorker"); - var GenericWorker = require("./GenericWorker"); - var base64 = require("../base64"); - var support = require("../support"); - var external = require("../external"); - - var NodejsStreamOutputAdapter = null; - if (support.nodestream) { - try { - NodejsStreamOutputAdapter = require("../nodejs/NodejsStreamOutputAdapter"); - } catch(e) { - // ignore - } - } - - /** - * Apply the final transformation of the data. If the user wants a Blob for - * example, it's easier to work with an U8intArray and finally do the - * ArrayBuffer/Blob conversion. - * @param {String} type the name of the final type - * @param {String|Uint8Array|Buffer} content the content to transform - * @param {String} mimeType the mime type of the content, if applicable. - * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the content in the right format. - */ - function transformZipOutput(type, content, mimeType) { - switch(type) { - case "blob" : - return utils.newBlob(utils.transformTo("arraybuffer", content), mimeType); - case "base64" : - return base64.encode(content); - default : - return utils.transformTo(type, content); - } - } - - /** - * Concatenate an array of data of the given type. - * @param {String} type the type of the data in the given array. - * @param {Array} dataArray the array containing the data chunks to concatenate - * @return {String|Uint8Array|Buffer} the concatenated data - * @throws Error if the asked type is unsupported - */ - function concat (type, dataArray) { - var i, index = 0, res = null, totalLength = 0; - for(i = 0; i < dataArray.length; i++) { - totalLength += dataArray[i].length; - } - switch(type) { - case "string": - return dataArray.join(""); - case "array": - return Array.prototype.concat.apply([], dataArray); - case "uint8array": - res = new Uint8Array(totalLength); - for(i = 0; i < dataArray.length; i++) { - res.set(dataArray[i], index); - index += dataArray[i].length; - } - return res; - case "nodebuffer": - return Buffer.concat(dataArray); - default: - throw new Error("concat : unsupported type '" + type + "'"); - } - } - - /** - * Listen a StreamHelper, accumulate its content and concatenate it into a - * complete block. - * @param {StreamHelper} helper the helper to use. - * @param {Function} updateCallback a callback called on each update. Called - * with one arg : - * - the metadata linked to the update received. - * @return Promise the promise for the accumulation. - */ - function accumulate(helper, updateCallback) { - return new external.Promise(function (resolve, reject){ - var dataArray = []; - var chunkType = helper._internalType, - resultType = helper._outputType, - mimeType = helper._mimeType; - helper - .on("data", function (data, meta) { - dataArray.push(data); - if(updateCallback) { - updateCallback(meta); - } - }) - .on("error", function(err) { - dataArray = []; - reject(err); - }) - .on("end", function (){ - try { - var result = transformZipOutput(resultType, concat(chunkType, dataArray), mimeType); - resolve(result); - } catch (e) { - reject(e); - } - dataArray = []; - }) - .resume(); - }); - } - - /** - * An helper to easily use workers outside of JSZip. - * @constructor - * @param {Worker} worker the worker to wrap - * @param {String} outputType the type of data expected by the use - * @param {String} mimeType the mime type of the content, if applicable. - */ - function StreamHelper(worker, outputType, mimeType) { - var internalType = outputType; - switch(outputType) { - case "blob": - case "arraybuffer": - internalType = "uint8array"; - break; - case "base64": - internalType = "string"; - break; - } - - try { - // the type used internally - this._internalType = internalType; - // the type used to output results - this._outputType = outputType; - // the mime type - this._mimeType = mimeType; - utils.checkSupport(internalType); - this._worker = worker.pipe(new ConvertWorker(internalType)); - // the last workers can be rewired without issues but we need to - // prevent any updates on previous workers. - worker.lock(); - } catch(e) { - this._worker = new GenericWorker("error"); - this._worker.error(e); - } - } - - StreamHelper.prototype = { - /** - * Listen a StreamHelper, accumulate its content and concatenate it into a - * complete block. - * @param {Function} updateCb the update callback. - * @return Promise the promise for the accumulation. - */ - accumulate : function (updateCb) { - return accumulate(this, updateCb); - }, - /** - * Add a listener on an event triggered on a stream. - * @param {String} evt the name of the event - * @param {Function} fn the listener - * @return {StreamHelper} the current helper. - */ - on : function (evt, fn) { - var self = this; - - if(evt === "data") { - this._worker.on(evt, function (chunk) { - fn.call(self, chunk.data, chunk.meta); - }); - } else { - this._worker.on(evt, function () { - utils.delay(fn, arguments, self); - }); - } - return this; - }, - /** - * Resume the flow of chunks. - * @return {StreamHelper} the current helper. - */ - resume : function () { - utils.delay(this._worker.resume, [], this._worker); - return this; - }, - /** - * Pause the flow of chunks. - * @return {StreamHelper} the current helper. - */ - pause : function () { - this._worker.pause(); - return this; - }, - /** - * Return a nodejs stream for this helper. - * @param {Function} updateCb the update callback. - * @return {NodejsStreamOutputAdapter} the nodejs stream. - */ - toNodejsStream : function (updateCb) { - utils.checkSupport("nodestream"); - if (this._outputType !== "nodebuffer") { - // an object stream containing blob/arraybuffer/uint8array/string - // is strange and I don't know if it would be useful. - // I you find this comment and have a good usecase, please open a - // bug report ! - throw new Error(this._outputType + " is not supported by this method"); - } - - return new NodejsStreamOutputAdapter(this, { - objectMode : this._outputType !== "nodebuffer" - }, updateCb); - } - }; - - - module.exports = StreamHelper; - - },{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(require,module,exports){ - - exports.base64 = true; - exports.array = true; - exports.string = true; - exports.arraybuffer = typeof ArrayBuffer !== "undefined" && typeof Uint8Array !== "undefined"; - exports.nodebuffer = typeof Buffer !== "undefined"; - // contains true if JSZip can read/generate Uint8Array, false otherwise. - exports.uint8array = typeof Uint8Array !== "undefined"; - - if (typeof ArrayBuffer === "undefined") { - exports.blob = false; - } - else { - var buffer = new ArrayBuffer(0); - try { - exports.blob = new Blob([buffer], { - type: "application/zip" - }).size === 0; - } - catch (e) { - try { - var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder; - var builder = new Builder(); - builder.append(buffer); - exports.blob = builder.getBlob("application/zip").size === 0; - } - catch (e) { - exports.blob = false; - } - } - } - - try { - exports.nodestream = !!require("readable-stream").Readable; - } catch(e) { - exports.nodestream = false; - } - - },{"readable-stream":16}],31:[function(require,module,exports){ - - var utils = require("./utils"); - var support = require("./support"); - var nodejsUtils = require("./nodejsUtils"); - var GenericWorker = require("./stream/GenericWorker"); - - /** - * The following functions come from pako, from pako/lib/utils/strings - * released under the MIT license, see pako https://github.com/nodeca/pako/ - */ - - // Table with utf8 lengths (calculated by first byte of sequence) - // Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS, - // because max possible codepoint is 0x10ffff - var _utf8len = new Array(256); - for (var i=0; i<256; i++) { - _utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1); - } - _utf8len[254]=_utf8len[254]=1; // Invalid sequence start - - // convert string to array (typed, when possible) - var string2buf = function (str) { - var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; - - // count binary size - for (m_pos = 0; m_pos < str_len; m_pos++) { - c = str.charCodeAt(m_pos); - if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) { - c2 = str.charCodeAt(m_pos+1); - if ((c2 & 0xfc00) === 0xdc00) { - c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); - m_pos++; - } - } - buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4; - } - - // allocate buffer - if (support.uint8array) { - buf = new Uint8Array(buf_len); - } else { - buf = new Array(buf_len); - } - - // convert - for (i=0, m_pos = 0; i < buf_len; m_pos++) { - c = str.charCodeAt(m_pos); - if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) { - c2 = str.charCodeAt(m_pos+1); - if ((c2 & 0xfc00) === 0xdc00) { - c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); - m_pos++; - } - } - if (c < 0x80) { - /* one byte */ - buf[i++] = c; - } else if (c < 0x800) { - /* two bytes */ - buf[i++] = 0xC0 | (c >>> 6); - buf[i++] = 0x80 | (c & 0x3f); - } else if (c < 0x10000) { - /* three bytes */ - buf[i++] = 0xE0 | (c >>> 12); - buf[i++] = 0x80 | (c >>> 6 & 0x3f); - buf[i++] = 0x80 | (c & 0x3f); - } else { - /* four bytes */ - buf[i++] = 0xf0 | (c >>> 18); - buf[i++] = 0x80 | (c >>> 12 & 0x3f); - buf[i++] = 0x80 | (c >>> 6 & 0x3f); - buf[i++] = 0x80 | (c & 0x3f); - } - } - - return buf; - }; - - // Calculate max possible position in utf8 buffer, - // that will not break sequence. If that's not possible - // - (very small limits) return max size as is. - // - // buf[] - utf8 bytes array - // max - length limit (mandatory); - var utf8border = function(buf, max) { - var pos; - - max = max || buf.length; - if (max > buf.length) { max = buf.length; } - - // go back from last position, until start of sequence found - pos = max-1; - while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; } - - // Fuckup - very small and broken sequence, - // return max, because we should return something anyway. - if (pos < 0) { return max; } - - // If we came to start of buffer - that means vuffer is too small, - // return max too. - if (pos === 0) { return max; } - - return (pos + _utf8len[buf[pos]] > max) ? pos : max; - }; - - // convert array to string - var buf2string = function (buf) { - var i, out, c, c_len; - var len = buf.length; - - // Reserve max possible length (2 words per char) - // NB: by unknown reasons, Array is significantly faster for - // String.fromCharCode.apply than Uint16Array. - var utf16buf = new Array(len*2); - - for (out=0, i=0; i 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; } - - // apply mask on first byte - c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07; - // join the rest - while (c_len > 1 && i < len) { - c = (c << 6) | (buf[i++] & 0x3f); - c_len--; - } - - // terminated by end of string? - if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; } - - if (c < 0x10000) { - utf16buf[out++] = c; - } else { - c -= 0x10000; - utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff); - utf16buf[out++] = 0xdc00 | (c & 0x3ff); - } - } - - // shrinkBuf(utf16buf, out) - if (utf16buf.length !== out) { - if(utf16buf.subarray) { - utf16buf = utf16buf.subarray(0, out); - } else { - utf16buf.length = out; - } - } - - // return String.fromCharCode.apply(null, utf16buf); - return utils.applyFromCharCode(utf16buf); - }; - - - // That's all for the pako functions. - - - /** - * Transform a javascript string into an array (typed if possible) of bytes, - * UTF-8 encoded. - * @param {String} str the string to encode - * @return {Array|Uint8Array|Buffer} the UTF-8 encoded string. - */ - exports.utf8encode = function utf8encode(str) { - if (support.nodebuffer) { - return nodejsUtils.newBufferFrom(str, "utf-8"); - } - - return string2buf(str); - }; - - - /** - * Transform a bytes array (or a representation) representing an UTF-8 encoded - * string into a javascript string. - * @param {Array|Uint8Array|Buffer} buf the data de decode - * @return {String} the decoded string. - */ - exports.utf8decode = function utf8decode(buf) { - if (support.nodebuffer) { - return utils.transformTo("nodebuffer", buf).toString("utf-8"); - } - - buf = utils.transformTo(support.uint8array ? "uint8array" : "array", buf); - - return buf2string(buf); - }; - - /** - * A worker to decode utf8 encoded binary chunks into string chunks. - * @constructor - */ - function Utf8DecodeWorker() { - GenericWorker.call(this, "utf-8 decode"); - // the last bytes if a chunk didn't end with a complete codepoint. - this.leftOver = null; - } - utils.inherits(Utf8DecodeWorker, GenericWorker); - - /** - * @see GenericWorker.processChunk - */ - Utf8DecodeWorker.prototype.processChunk = function (chunk) { - - var data = utils.transformTo(support.uint8array ? "uint8array" : "array", chunk.data); - - // 1st step, re-use what's left of the previous chunk - if (this.leftOver && this.leftOver.length) { - if(support.uint8array) { - var previousData = data; - data = new Uint8Array(previousData.length + this.leftOver.length); - data.set(this.leftOver, 0); - data.set(previousData, this.leftOver.length); - } else { - data = this.leftOver.concat(data); - } - this.leftOver = null; - } - - var nextBoundary = utf8border(data); - var usableData = data; - if (nextBoundary !== data.length) { - if (support.uint8array) { - usableData = data.subarray(0, nextBoundary); - this.leftOver = data.subarray(nextBoundary, data.length); - } else { - usableData = data.slice(0, nextBoundary); - this.leftOver = data.slice(nextBoundary, data.length); - } - } - - this.push({ - data : exports.utf8decode(usableData), - meta : chunk.meta - }); - }; - - /** - * @see GenericWorker.flush - */ - Utf8DecodeWorker.prototype.flush = function () { - if(this.leftOver && this.leftOver.length) { - this.push({ - data : exports.utf8decode(this.leftOver), - meta : {} - }); - this.leftOver = null; - } - }; - exports.Utf8DecodeWorker = Utf8DecodeWorker; - - /** - * A worker to endcode string chunks into utf8 encoded binary chunks. - * @constructor - */ - function Utf8EncodeWorker() { - GenericWorker.call(this, "utf-8 encode"); - } - utils.inherits(Utf8EncodeWorker, GenericWorker); - - /** - * @see GenericWorker.processChunk - */ - Utf8EncodeWorker.prototype.processChunk = function (chunk) { - this.push({ - data : exports.utf8encode(chunk.data), - meta : chunk.meta - }); - }; - exports.Utf8EncodeWorker = Utf8EncodeWorker; - - },{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(require,module,exports){ - - var support = require("./support"); - var base64 = require("./base64"); - var nodejsUtils = require("./nodejsUtils"); - var external = require("./external"); - require("setimmediate"); - - - /** - * Convert a string that pass as a "binary string": it should represent a byte - * array but may have > 255 char codes. Be sure to take only the first byte - * and returns the byte array. - * @param {String} str the string to transform. - * @return {Array|Uint8Array} the string in a binary format. - */ - function string2binary(str) { - var result = null; - if (support.uint8array) { - result = new Uint8Array(str.length); - } else { - result = new Array(str.length); - } - return stringToArrayLike(str, result); - } - - /** - * Create a new blob with the given content and the given type. - * @param {String|ArrayBuffer} part the content to put in the blob. DO NOT use - * an Uint8Array because the stock browser of android 4 won't accept it (it - * will be silently converted to a string, "[object Uint8Array]"). - * - * Use only ONE part to build the blob to avoid a memory leak in IE11 / Edge: - * when a large amount of Array is used to create the Blob, the amount of - * memory consumed is nearly 100 times the original data amount. - * - * @param {String} type the mime type of the blob. - * @return {Blob} the created blob. - */ - exports.newBlob = function(part, type) { - exports.checkSupport("blob"); - - try { - // Blob constructor - return new Blob([part], { - type: type - }); - } - catch (e) { - - try { - // deprecated, browser only, old way - var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder; - var builder = new Builder(); - builder.append(part); - return builder.getBlob(type); - } - catch (e) { - - // well, fuck ?! - throw new Error("Bug : can't construct the Blob."); - } - } - - - }; - /** - * The identity function. - * @param {Object} input the input. - * @return {Object} the same input. - */ - function identity(input) { - return input; - } - - /** - * Fill in an array with a string. - * @param {String} str the string to use. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to fill in (will be mutated). - * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated array. - */ - function stringToArrayLike(str, array) { - for (var i = 0; i < str.length; ++i) { - array[i] = str.charCodeAt(i) & 0xFF; - } - return array; - } - - /** - * An helper for the function arrayLikeToString. - * This contains static information and functions that - * can be optimized by the browser JIT compiler. - */ - var arrayToStringHelper = { - /** - * Transform an array of int into a string, chunk by chunk. - * See the performances notes on arrayLikeToString. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform. - * @param {String} type the type of the array. - * @param {Integer} chunk the chunk size. - * @return {String} the resulting string. - * @throws Error if the chunk is too big for the stack. - */ - stringifyByChunk: function(array, type, chunk) { - var result = [], k = 0, len = array.length; - // shortcut - if (len <= chunk) { - return String.fromCharCode.apply(null, array); - } - while (k < len) { - if (type === "array" || type === "nodebuffer") { - result.push(String.fromCharCode.apply(null, array.slice(k, Math.min(k + chunk, len)))); - } - else { - result.push(String.fromCharCode.apply(null, array.subarray(k, Math.min(k + chunk, len)))); - } - k += chunk; - } - return result.join(""); - }, - /** - * Call String.fromCharCode on every item in the array. - * This is the naive implementation, which generate A LOT of intermediate string. - * This should be used when everything else fail. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform. - * @return {String} the result. - */ - stringifyByChar: function(array){ - var resultStr = ""; - for(var i = 0; i < array.length; i++) { - resultStr += String.fromCharCode(array[i]); - } - return resultStr; - }, - applyCanBeUsed : { - /** - * true if the browser accepts to use String.fromCharCode on Uint8Array - */ - uint8array : (function () { - try { - return support.uint8array && String.fromCharCode.apply(null, new Uint8Array(1)).length === 1; - } catch (e) { - return false; - } - })(), - /** - * true if the browser accepts to use String.fromCharCode on nodejs Buffer. - */ - nodebuffer : (function () { - try { - return support.nodebuffer && String.fromCharCode.apply(null, nodejsUtils.allocBuffer(1)).length === 1; - } catch (e) { - return false; - } - })() - } - }; - - /** - * Transform an array-like object to a string. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform. - * @return {String} the result. - */ - function arrayLikeToString(array) { - // Performances notes : - // -------------------- - // String.fromCharCode.apply(null, array) is the fastest, see - // see http://jsperf.com/converting-a-uint8array-to-a-string/2 - // but the stack is limited (and we can get huge arrays !). - // - // result += String.fromCharCode(array[i]); generate too many strings ! - // - // This code is inspired by http://jsperf.com/arraybuffer-to-string-apply-performance/2 - // TODO : we now have workers that split the work. Do we still need that ? - var chunk = 65536, - type = exports.getTypeOf(array), - canUseApply = true; - if (type === "uint8array") { - canUseApply = arrayToStringHelper.applyCanBeUsed.uint8array; - } else if (type === "nodebuffer") { - canUseApply = arrayToStringHelper.applyCanBeUsed.nodebuffer; - } - - if (canUseApply) { - while (chunk > 1) { - try { - return arrayToStringHelper.stringifyByChunk(array, type, chunk); - } catch (e) { - chunk = Math.floor(chunk / 2); - } - } - } - - // no apply or chunk error : slow and painful algorithm - // default browser on android 4.* - return arrayToStringHelper.stringifyByChar(array); - } - - exports.applyFromCharCode = arrayLikeToString; - - - /** - * Copy the data from an array-like to an other array-like. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayFrom the origin array. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayTo the destination array which will be mutated. - * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated destination array. - */ - function arrayLikeToArrayLike(arrayFrom, arrayTo) { - for (var i = 0; i < arrayFrom.length; i++) { - arrayTo[i] = arrayFrom[i]; - } - return arrayTo; - } - - // a matrix containing functions to transform everything into everything. - var transform = {}; - - // string to ? - transform["string"] = { - "string": identity, - "array": function(input) { - return stringToArrayLike(input, new Array(input.length)); - }, - "arraybuffer": function(input) { - return transform["string"]["uint8array"](input).buffer; - }, - "uint8array": function(input) { - return stringToArrayLike(input, new Uint8Array(input.length)); - }, - "nodebuffer": function(input) { - return stringToArrayLike(input, nodejsUtils.allocBuffer(input.length)); - } - }; - - // array to ? - transform["array"] = { - "string": arrayLikeToString, - "array": identity, - "arraybuffer": function(input) { - return (new Uint8Array(input)).buffer; - }, - "uint8array": function(input) { - return new Uint8Array(input); - }, - "nodebuffer": function(input) { - return nodejsUtils.newBufferFrom(input); - } - }; - - // arraybuffer to ? - transform["arraybuffer"] = { - "string": function(input) { - return arrayLikeToString(new Uint8Array(input)); - }, - "array": function(input) { - return arrayLikeToArrayLike(new Uint8Array(input), new Array(input.byteLength)); - }, - "arraybuffer": identity, - "uint8array": function(input) { - return new Uint8Array(input); - }, - "nodebuffer": function(input) { - return nodejsUtils.newBufferFrom(new Uint8Array(input)); - } - }; - - // uint8array to ? - transform["uint8array"] = { - "string": arrayLikeToString, - "array": function(input) { - return arrayLikeToArrayLike(input, new Array(input.length)); - }, - "arraybuffer": function(input) { - return input.buffer; - }, - "uint8array": identity, - "nodebuffer": function(input) { - return nodejsUtils.newBufferFrom(input); - } - }; - - // nodebuffer to ? - transform["nodebuffer"] = { - "string": arrayLikeToString, - "array": function(input) { - return arrayLikeToArrayLike(input, new Array(input.length)); - }, - "arraybuffer": function(input) { - return transform["nodebuffer"]["uint8array"](input).buffer; - }, - "uint8array": function(input) { - return arrayLikeToArrayLike(input, new Uint8Array(input.length)); - }, - "nodebuffer": identity - }; - - /** - * Transform an input into any type. - * The supported output type are : string, array, uint8array, arraybuffer, nodebuffer. - * If no output type is specified, the unmodified input will be returned. - * @param {String} outputType the output type. - * @param {String|Array|ArrayBuffer|Uint8Array|Buffer} input the input to convert. - * @throws {Error} an Error if the browser doesn't support the requested output type. - */ - exports.transformTo = function(outputType, input) { - if (!input) { - // undefined, null, etc - // an empty string won't harm. - input = ""; - } - if (!outputType) { - return input; - } - exports.checkSupport(outputType); - var inputType = exports.getTypeOf(input); - var result = transform[inputType][outputType](input); - return result; - }; - - /** - * Resolve all relative path components, "." and "..", in a path. If these relative components - * traverse above the root then the resulting path will only contain the final path component. - * - * All empty components, e.g. "//", are removed. - * @param {string} path A path with / or \ separators - * @returns {string} The path with all relative path components resolved. - */ - exports.resolve = function(path) { - var parts = path.split("/"); - var result = []; - for (var index = 0; index < parts.length; index++) { - var part = parts[index]; - // Allow the first and last component to be empty for trailing slashes. - if (part === "." || (part === "" && index !== 0 && index !== parts.length - 1)) { - continue; - } else if (part === "..") { - result.pop(); - } else { - result.push(part); - } - } - return result.join("/"); - }; - - /** - * Return the type of the input. - * The type will be in a format valid for JSZip.utils.transformTo : string, array, uint8array, arraybuffer. - * @param {Object} input the input to identify. - * @return {String} the (lowercase) type of the input. - */ - exports.getTypeOf = function(input) { - if (typeof input === "string") { - return "string"; - } - if (Object.prototype.toString.call(input) === "[object Array]") { - return "array"; - } - if (support.nodebuffer && nodejsUtils.isBuffer(input)) { - return "nodebuffer"; - } - if (support.uint8array && input instanceof Uint8Array) { - return "uint8array"; - } - if (support.arraybuffer && input instanceof ArrayBuffer) { - return "arraybuffer"; - } - }; - - /** - * Throw an exception if the type is not supported. - * @param {String} type the type to check. - * @throws {Error} an Error if the browser doesn't support the requested type. - */ - exports.checkSupport = function(type) { - var supported = support[type.toLowerCase()]; - if (!supported) { - throw new Error(type + " is not supported by this platform"); - } - }; - - exports.MAX_VALUE_16BITS = 65535; - exports.MAX_VALUE_32BITS = -1; // well, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" is parsed as -1 - - /** - * Prettify a string read as binary. - * @param {string} str the string to prettify. - * @return {string} a pretty string. - */ - exports.pretty = function(str) { - var res = "", - code, i; - for (i = 0; i < (str || "").length; i++) { - code = str.charCodeAt(i); - res += "\\x" + (code < 16 ? "0" : "") + code.toString(16).toUpperCase(); - } - return res; - }; - - /** - * Defer the call of a function. - * @param {Function} callback the function to call asynchronously. - * @param {Array} args the arguments to give to the callback. - */ - exports.delay = function(callback, args, self) { - setImmediate(function () { - callback.apply(self || null, args || []); - }); - }; - - /** - * Extends a prototype with an other, without calling a constructor with - * side effects. Inspired by nodejs' `utils.inherits` - * @param {Function} ctor the constructor to augment - * @param {Function} superCtor the parent constructor to use - */ - exports.inherits = function (ctor, superCtor) { - var Obj = function() {}; - Obj.prototype = superCtor.prototype; - ctor.prototype = new Obj(); - }; - - /** - * Merge the objects passed as parameters into a new one. - * @private - * @param {...Object} var_args All objects to merge. - * @return {Object} a new object with the data of the others. - */ - exports.extend = function() { - var result = {}, i, attr; - for (i = 0; i < arguments.length; i++) { // arguments is not enumerable in some browsers - for (attr in arguments[i]) { - if (Object.prototype.hasOwnProperty.call(arguments[i], attr) && typeof result[attr] === "undefined") { - result[attr] = arguments[i][attr]; - } - } - } - return result; - }; - - /** - * Transform arbitrary content into a Promise. - * @param {String} name a name for the content being processed. - * @param {Object} inputData the content to process. - * @param {Boolean} isBinary true if the content is not an unicode string - * @param {Boolean} isOptimizedBinaryString true if the string content only has one byte per character. - * @param {Boolean} isBase64 true if the string content is encoded with base64. - * @return {Promise} a promise in a format usable by JSZip. - */ - exports.prepareContent = function(name, inputData, isBinary, isOptimizedBinaryString, isBase64) { - - // if inputData is already a promise, this flatten it. - var promise = external.Promise.resolve(inputData).then(function(data) { - - - var isBlob = support.blob && (data instanceof Blob || ["[object File]", "[object Blob]"].indexOf(Object.prototype.toString.call(data)) !== -1); - - if (isBlob && typeof FileReader !== "undefined") { - return new external.Promise(function (resolve, reject) { - var reader = new FileReader(); - - reader.onload = function(e) { - resolve(e.target.result); - }; - reader.onerror = function(e) { - reject(e.target.error); - }; - reader.readAsArrayBuffer(data); - }); - } else { - return data; - } - }); - - return promise.then(function(data) { - var dataType = exports.getTypeOf(data); - - if (!dataType) { - return external.Promise.reject( - new Error("Can't read the data of '" + name + "'. Is it " + - "in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?") - ); - } - // special case : it's way easier to work with Uint8Array than with ArrayBuffer - if (dataType === "arraybuffer") { - data = exports.transformTo("uint8array", data); - } else if (dataType === "string") { - if (isBase64) { - data = base64.decode(data); - } - else if (isBinary) { - // optimizedBinaryString === true means that the file has already been filtered with a 0xFF mask - if (isOptimizedBinaryString !== true) { - // this is a string, not in a base64 format. - // Be sure that this is a correct "binary string" - data = string2binary(data); - } - } - } - return data; - }); - }; - - },{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,"setimmediate":54}],33:[function(require,module,exports){ - var readerFor = require("./reader/readerFor"); - var utils = require("./utils"); - var sig = require("./signature"); - var ZipEntry = require("./zipEntry"); - var support = require("./support"); - // class ZipEntries {{{ - /** - * All the entries in the zip file. - * @constructor - * @param {Object} loadOptions Options for loading the stream. - */ - function ZipEntries(loadOptions) { - this.files = []; - this.loadOptions = loadOptions; - } - ZipEntries.prototype = { - /** - * Check that the reader is on the specified signature. - * @param {string} expectedSignature the expected signature. - * @throws {Error} if it is an other signature. - */ - checkSignature: function(expectedSignature) { - if (!this.reader.readAndCheckSignature(expectedSignature)) { - this.reader.index -= 4; - var signature = this.reader.readString(4); - throw new Error("Corrupted zip or bug: unexpected signature " + "(" + utils.pretty(signature) + ", expected " + utils.pretty(expectedSignature) + ")"); - } - }, - /** - * Check if the given signature is at the given index. - * @param {number} askedIndex the index to check. - * @param {string} expectedSignature the signature to expect. - * @return {boolean} true if the signature is here, false otherwise. - */ - isSignature: function(askedIndex, expectedSignature) { - var currentIndex = this.reader.index; - this.reader.setIndex(askedIndex); - var signature = this.reader.readString(4); - var result = signature === expectedSignature; - this.reader.setIndex(currentIndex); - return result; - }, - /** - * Read the end of the central directory. - */ - readBlockEndOfCentral: function() { - this.diskNumber = this.reader.readInt(2); - this.diskWithCentralDirStart = this.reader.readInt(2); - this.centralDirRecordsOnThisDisk = this.reader.readInt(2); - this.centralDirRecords = this.reader.readInt(2); - this.centralDirSize = this.reader.readInt(4); - this.centralDirOffset = this.reader.readInt(4); - - this.zipCommentLength = this.reader.readInt(2); - // warning : the encoding depends of the system locale - // On a linux machine with LANG=en_US.utf8, this field is utf8 encoded. - // On a windows machine, this field is encoded with the localized windows code page. - var zipComment = this.reader.readData(this.zipCommentLength); - var decodeParamType = support.uint8array ? "uint8array" : "array"; - // To get consistent behavior with the generation part, we will assume that - // this is utf8 encoded unless specified otherwise. - var decodeContent = utils.transformTo(decodeParamType, zipComment); - this.zipComment = this.loadOptions.decodeFileName(decodeContent); - }, - /** - * Read the end of the Zip 64 central directory. - * Not merged with the method readEndOfCentral : - * The end of central can coexist with its Zip64 brother, - * I don't want to read the wrong number of bytes ! - */ - readBlockZip64EndOfCentral: function() { - this.zip64EndOfCentralSize = this.reader.readInt(8); - this.reader.skip(4); - // this.versionMadeBy = this.reader.readString(2); - // this.versionNeeded = this.reader.readInt(2); - this.diskNumber = this.reader.readInt(4); - this.diskWithCentralDirStart = this.reader.readInt(4); - this.centralDirRecordsOnThisDisk = this.reader.readInt(8); - this.centralDirRecords = this.reader.readInt(8); - this.centralDirSize = this.reader.readInt(8); - this.centralDirOffset = this.reader.readInt(8); - - this.zip64ExtensibleData = {}; - var extraDataSize = this.zip64EndOfCentralSize - 44, - index = 0, - extraFieldId, - extraFieldLength, - extraFieldValue; - while (index < extraDataSize) { - extraFieldId = this.reader.readInt(2); - extraFieldLength = this.reader.readInt(4); - extraFieldValue = this.reader.readData(extraFieldLength); - this.zip64ExtensibleData[extraFieldId] = { - id: extraFieldId, - length: extraFieldLength, - value: extraFieldValue - }; - } - }, - /** - * Read the end of the Zip 64 central directory locator. - */ - readBlockZip64EndOfCentralLocator: function() { - this.diskWithZip64CentralDirStart = this.reader.readInt(4); - this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8); - this.disksCount = this.reader.readInt(4); - if (this.disksCount > 1) { - throw new Error("Multi-volumes zip are not supported"); - } - }, - /** - * Read the local files, based on the offset read in the central part. - */ - readLocalFiles: function() { - var i, file; - for (i = 0; i < this.files.length; i++) { - file = this.files[i]; - this.reader.setIndex(file.localHeaderOffset); - this.checkSignature(sig.LOCAL_FILE_HEADER); - file.readLocalPart(this.reader); - file.handleUTF8(); - file.processAttributes(); - } - }, - /** - * Read the central directory. - */ - readCentralDir: function() { - var file; - - this.reader.setIndex(this.centralDirOffset); - while (this.reader.readAndCheckSignature(sig.CENTRAL_FILE_HEADER)) { - file = new ZipEntry({ - zip64: this.zip64 - }, this.loadOptions); - file.readCentralPart(this.reader); - this.files.push(file); - } - - if (this.centralDirRecords !== this.files.length) { - if (this.centralDirRecords !== 0 && this.files.length === 0) { - // We expected some records but couldn't find ANY. - // This is really suspicious, as if something went wrong. - throw new Error("Corrupted zip or bug: expected " + this.centralDirRecords + " records in central dir, got " + this.files.length); - } - } - }, - /** - * Read the end of central directory. - */ - readEndOfCentral: function() { - var offset = this.reader.lastIndexOfSignature(sig.CENTRAL_DIRECTORY_END); - if (offset < 0) { - // Check if the content is a truncated zip or complete garbage. - // A "LOCAL_FILE_HEADER" is not required at the beginning (auto - // extractible zip for example) but it can give a good hint. - // If an ajax request was used without responseType, we will also - // get unreadable data. - var isGarbage = !this.isSignature(0, sig.LOCAL_FILE_HEADER); - - if (isGarbage) { - throw new Error("Can't find end of central directory : is this a zip file ? " + - "If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"); - } else { - throw new Error("Corrupted zip: can't find end of central directory"); - } - - } - this.reader.setIndex(offset); - var endOfCentralDirOffset = offset; - this.checkSignature(sig.CENTRAL_DIRECTORY_END); - this.readBlockEndOfCentral(); - - - /* extract from the zip spec : - 4) If one of the fields in the end of central directory - record is too small to hold required data, the field - should be set to -1 (0xFFFF or 0xFFFFFFFF) and the - ZIP64 format record should be created. - 5) The end of central directory record and the - Zip64 end of central directory locator record must - reside on the same disk when splitting or spanning - an archive. - */ - if (this.diskNumber === utils.MAX_VALUE_16BITS || this.diskWithCentralDirStart === utils.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === utils.MAX_VALUE_16BITS || this.centralDirRecords === utils.MAX_VALUE_16BITS || this.centralDirSize === utils.MAX_VALUE_32BITS || this.centralDirOffset === utils.MAX_VALUE_32BITS) { - this.zip64 = true; - - /* - Warning : the zip64 extension is supported, but ONLY if the 64bits integer read from - the zip file can fit into a 32bits integer. This cannot be solved : JavaScript represents - all numbers as 64-bit double precision IEEE 754 floating point numbers. - So, we have 53bits for integers and bitwise operations treat everything as 32bits. - see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Bitwise_Operators - and http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf section 8.5 - */ - - // should look for a zip64 EOCD locator - offset = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR); - if (offset < 0) { - throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator"); - } - this.reader.setIndex(offset); - this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR); - this.readBlockZip64EndOfCentralLocator(); - - // now the zip64 EOCD record - if (!this.isSignature(this.relativeOffsetEndOfZip64CentralDir, sig.ZIP64_CENTRAL_DIRECTORY_END)) { - // console.warn("ZIP64 end of central directory not where expected."); - this.relativeOffsetEndOfZip64CentralDir = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_END); - if (this.relativeOffsetEndOfZip64CentralDir < 0) { - throw new Error("Corrupted zip: can't find the ZIP64 end of central directory"); - } - } - this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir); - this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_END); - this.readBlockZip64EndOfCentral(); - } - - var expectedEndOfCentralDirOffset = this.centralDirOffset + this.centralDirSize; - if (this.zip64) { - expectedEndOfCentralDirOffset += 20; // end of central dir 64 locator - expectedEndOfCentralDirOffset += 12 /* should not include the leading 12 bytes */ + this.zip64EndOfCentralSize; - } - - var extraBytes = endOfCentralDirOffset - expectedEndOfCentralDirOffset; - - if (extraBytes > 0) { - // console.warn(extraBytes, "extra bytes at beginning or within zipfile"); - if (this.isSignature(endOfCentralDirOffset, sig.CENTRAL_FILE_HEADER)) ; else { - // the offset is wrong, update the "zero" of the reader - // this happens if data has been prepended (crx files for example) - this.reader.zero = extraBytes; - } - } else if (extraBytes < 0) { - throw new Error("Corrupted zip: missing " + Math.abs(extraBytes) + " bytes."); - } - }, - prepareReader: function(data) { - this.reader = readerFor(data); - }, - /** - * Read a zip file and create ZipEntries. - * @param {String|ArrayBuffer|Uint8Array|Buffer} data the binary string representing a zip file. - */ - load: function(data) { - this.prepareReader(data); - this.readEndOfCentral(); - this.readCentralDir(); - this.readLocalFiles(); - } - }; - // }}} end of ZipEntries - module.exports = ZipEntries; - - },{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(require,module,exports){ - var readerFor = require("./reader/readerFor"); - var utils = require("./utils"); - var CompressedObject = require("./compressedObject"); - var crc32fn = require("./crc32"); - var utf8 = require("./utf8"); - var compressions = require("./compressions"); - var support = require("./support"); - - var MADE_BY_DOS = 0x00; - var MADE_BY_UNIX = 0x03; - - /** - * Find a compression registered in JSZip. - * @param {string} compressionMethod the method magic to find. - * @return {Object|null} the JSZip compression object, null if none found. - */ - var findCompression = function(compressionMethod) { - for (var method in compressions) { - if (!Object.prototype.hasOwnProperty.call(compressions, method)) { - continue; - } - if (compressions[method].magic === compressionMethod) { - return compressions[method]; - } - } - return null; - }; - - // class ZipEntry {{{ - /** - * An entry in the zip file. - * @constructor - * @param {Object} options Options of the current file. - * @param {Object} loadOptions Options for loading the stream. - */ - function ZipEntry(options, loadOptions) { - this.options = options; - this.loadOptions = loadOptions; - } - ZipEntry.prototype = { - /** - * say if the file is encrypted. - * @return {boolean} true if the file is encrypted, false otherwise. - */ - isEncrypted: function() { - // bit 1 is set - return (this.bitFlag & 0x0001) === 0x0001; - }, - /** - * say if the file has utf-8 filename/comment. - * @return {boolean} true if the filename/comment is in utf-8, false otherwise. - */ - useUTF8: function() { - // bit 11 is set - return (this.bitFlag & 0x0800) === 0x0800; - }, - /** - * Read the local part of a zip file and add the info in this object. - * @param {DataReader} reader the reader to use. - */ - readLocalPart: function(reader) { - var compression, localExtraFieldsLength; - - // we already know everything from the central dir ! - // If the central dir data are false, we are doomed. - // On the bright side, the local part is scary : zip64, data descriptors, both, etc. - // The less data we get here, the more reliable this should be. - // Let's skip the whole header and dash to the data ! - reader.skip(22); - // in some zip created on windows, the filename stored in the central dir contains \ instead of /. - // Strangely, the filename here is OK. - // I would love to treat these zip files as corrupted (see http://www.info-zip.org/FAQ.html#backslashes - // or APPNOTE#4.4.17.1, "All slashes MUST be forward slashes '/'") but there are a lot of bad zip generators... - // Search "unzip mismatching "local" filename continuing with "central" filename version" on - // the internet. - // - // I think I see the logic here : the central directory is used to display - // content and the local directory is used to extract the files. Mixing / and \ - // may be used to display \ to windows users and use / when extracting the files. - // Unfortunately, this lead also to some issues : http://seclists.org/fulldisclosure/2009/Sep/394 - this.fileNameLength = reader.readInt(2); - localExtraFieldsLength = reader.readInt(2); // can't be sure this will be the same as the central dir - // the fileName is stored as binary data, the handleUTF8 method will take care of the encoding. - this.fileName = reader.readData(this.fileNameLength); - reader.skip(localExtraFieldsLength); - - if (this.compressedSize === -1 || this.uncompressedSize === -1) { - throw new Error("Bug or corrupted zip : didn't get enough information from the central directory " + "(compressedSize === -1 || uncompressedSize === -1)"); - } - - compression = findCompression(this.compressionMethod); - if (compression === null) { // no compression found - throw new Error("Corrupted zip : compression " + utils.pretty(this.compressionMethod) + " unknown (inner file : " + utils.transformTo("string", this.fileName) + ")"); - } - this.decompressed = new CompressedObject(this.compressedSize, this.uncompressedSize, this.crc32, compression, reader.readData(this.compressedSize)); - }, - - /** - * Read the central part of a zip file and add the info in this object. - * @param {DataReader} reader the reader to use. - */ - readCentralPart: function(reader) { - this.versionMadeBy = reader.readInt(2); - reader.skip(2); - // this.versionNeeded = reader.readInt(2); - this.bitFlag = reader.readInt(2); - this.compressionMethod = reader.readString(2); - this.date = reader.readDate(); - this.crc32 = reader.readInt(4); - this.compressedSize = reader.readInt(4); - this.uncompressedSize = reader.readInt(4); - var fileNameLength = reader.readInt(2); - this.extraFieldsLength = reader.readInt(2); - this.fileCommentLength = reader.readInt(2); - this.diskNumberStart = reader.readInt(2); - this.internalFileAttributes = reader.readInt(2); - this.externalFileAttributes = reader.readInt(4); - this.localHeaderOffset = reader.readInt(4); - - if (this.isEncrypted()) { - throw new Error("Encrypted zip are not supported"); - } - - // will be read in the local part, see the comments there - reader.skip(fileNameLength); - this.readExtraFields(reader); - this.parseZIP64ExtraField(reader); - this.fileComment = reader.readData(this.fileCommentLength); - }, - - /** - * Parse the external file attributes and get the unix/dos permissions. - */ - processAttributes: function () { - this.unixPermissions = null; - this.dosPermissions = null; - var madeBy = this.versionMadeBy >> 8; - - // Check if we have the DOS directory flag set. - // We look for it in the DOS and UNIX permissions - // but some unknown platform could set it as a compatibility flag. - this.dir = this.externalFileAttributes & 0x0010 ? true : false; - - if(madeBy === MADE_BY_DOS) { - // first 6 bits (0 to 5) - this.dosPermissions = this.externalFileAttributes & 0x3F; - } - - if(madeBy === MADE_BY_UNIX) { - this.unixPermissions = (this.externalFileAttributes >> 16) & 0xFFFF; - // the octal permissions are in (this.unixPermissions & 0x01FF).toString(8); - } - - // fail safe : if the name ends with a / it probably means a folder - if (!this.dir && this.fileNameStr.slice(-1) === "/") { - this.dir = true; - } - }, - - /** - * Parse the ZIP64 extra field and merge the info in the current ZipEntry. - * @param {DataReader} reader the reader to use. - */ - parseZIP64ExtraField: function() { - if (!this.extraFields[0x0001]) { - return; - } - - // should be something, preparing the extra reader - var extraReader = readerFor(this.extraFields[0x0001].value); - - // I really hope that these 64bits integer can fit in 32 bits integer, because js - // won't let us have more. - if (this.uncompressedSize === utils.MAX_VALUE_32BITS) { - this.uncompressedSize = extraReader.readInt(8); - } - if (this.compressedSize === utils.MAX_VALUE_32BITS) { - this.compressedSize = extraReader.readInt(8); - } - if (this.localHeaderOffset === utils.MAX_VALUE_32BITS) { - this.localHeaderOffset = extraReader.readInt(8); - } - if (this.diskNumberStart === utils.MAX_VALUE_32BITS) { - this.diskNumberStart = extraReader.readInt(4); - } - }, - /** - * Read the central part of a zip file and add the info in this object. - * @param {DataReader} reader the reader to use. - */ - readExtraFields: function(reader) { - var end = reader.index + this.extraFieldsLength, - extraFieldId, - extraFieldLength, - extraFieldValue; - - if (!this.extraFields) { - this.extraFields = {}; - } - - while (reader.index + 4 < end) { - extraFieldId = reader.readInt(2); - extraFieldLength = reader.readInt(2); - extraFieldValue = reader.readData(extraFieldLength); - - this.extraFields[extraFieldId] = { - id: extraFieldId, - length: extraFieldLength, - value: extraFieldValue - }; - } - - reader.setIndex(end); - }, - /** - * Apply an UTF8 transformation if needed. - */ - handleUTF8: function() { - var decodeParamType = support.uint8array ? "uint8array" : "array"; - if (this.useUTF8()) { - this.fileNameStr = utf8.utf8decode(this.fileName); - this.fileCommentStr = utf8.utf8decode(this.fileComment); - } else { - var upath = this.findExtraFieldUnicodePath(); - if (upath !== null) { - this.fileNameStr = upath; - } else { - // ASCII text or unsupported code page - var fileNameByteArray = utils.transformTo(decodeParamType, this.fileName); - this.fileNameStr = this.loadOptions.decodeFileName(fileNameByteArray); - } - - var ucomment = this.findExtraFieldUnicodeComment(); - if (ucomment !== null) { - this.fileCommentStr = ucomment; - } else { - // ASCII text or unsupported code page - var commentByteArray = utils.transformTo(decodeParamType, this.fileComment); - this.fileCommentStr = this.loadOptions.decodeFileName(commentByteArray); - } - } - }, - - /** - * Find the unicode path declared in the extra field, if any. - * @return {String} the unicode path, null otherwise. - */ - findExtraFieldUnicodePath: function() { - var upathField = this.extraFields[0x7075]; - if (upathField) { - var extraReader = readerFor(upathField.value); - - // wrong version - if (extraReader.readInt(1) !== 1) { - return null; - } - - // the crc of the filename changed, this field is out of date. - if (crc32fn(this.fileName) !== extraReader.readInt(4)) { - return null; - } - - return utf8.utf8decode(extraReader.readData(upathField.length - 5)); - } - return null; - }, - - /** - * Find the unicode comment declared in the extra field, if any. - * @return {String} the unicode comment, null otherwise. - */ - findExtraFieldUnicodeComment: function() { - var ucommentField = this.extraFields[0x6375]; - if (ucommentField) { - var extraReader = readerFor(ucommentField.value); - - // wrong version - if (extraReader.readInt(1) !== 1) { - return null; - } - - // the crc of the comment changed, this field is out of date. - if (crc32fn(this.fileComment) !== extraReader.readInt(4)) { - return null; - } - - return utf8.utf8decode(extraReader.readData(ucommentField.length - 5)); - } - return null; - } - }; - module.exports = ZipEntry; - - },{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(require,module,exports){ - - var StreamHelper = require("./stream/StreamHelper"); - var DataWorker = require("./stream/DataWorker"); - var utf8 = require("./utf8"); - var CompressedObject = require("./compressedObject"); - var GenericWorker = require("./stream/GenericWorker"); - - /** - * A simple object representing a file in the zip file. - * @constructor - * @param {string} name the name of the file - * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data - * @param {Object} options the options of the file - */ - var ZipObject = function(name, data, options) { - this.name = name; - this.dir = options.dir; - this.date = options.date; - this.comment = options.comment; - this.unixPermissions = options.unixPermissions; - this.dosPermissions = options.dosPermissions; - - this._data = data; - this._dataBinary = options.binary; - // keep only the compression - this.options = { - compression : options.compression, - compressionOptions : options.compressionOptions - }; - }; - - ZipObject.prototype = { - /** - * Create an internal stream for the content of this object. - * @param {String} type the type of each chunk. - * @return StreamHelper the stream. - */ - internalStream: function (type) { - var result = null, outputType = "string"; - try { - if (!type) { - throw new Error("No output type specified."); - } - outputType = type.toLowerCase(); - var askUnicodeString = outputType === "string" || outputType === "text"; - if (outputType === "binarystring" || outputType === "text") { - outputType = "string"; - } - result = this._decompressWorker(); - - var isUnicodeString = !this._dataBinary; - - if (isUnicodeString && !askUnicodeString) { - result = result.pipe(new utf8.Utf8EncodeWorker()); - } - if (!isUnicodeString && askUnicodeString) { - result = result.pipe(new utf8.Utf8DecodeWorker()); - } - } catch (e) { - result = new GenericWorker("error"); - result.error(e); - } - - return new StreamHelper(result, outputType, ""); - }, - - /** - * Prepare the content in the asked type. - * @param {String} type the type of the result. - * @param {Function} onUpdate a function to call on each internal update. - * @return Promise the promise of the result. - */ - async: function (type, onUpdate) { - return this.internalStream(type).accumulate(onUpdate); - }, - - /** - * Prepare the content as a nodejs stream. - * @param {String} type the type of each chunk. - * @param {Function} onUpdate a function to call on each internal update. - * @return Stream the stream. - */ - nodeStream: function (type, onUpdate) { - return this.internalStream(type || "nodebuffer").toNodejsStream(onUpdate); - }, - - /** - * Return a worker for the compressed content. - * @private - * @param {Object} compression the compression object to use. - * @param {Object} compressionOptions the options to use when compressing. - * @return Worker the worker. - */ - _compressWorker: function (compression, compressionOptions) { - if ( - this._data instanceof CompressedObject && - this._data.compression.magic === compression.magic - ) { - return this._data.getCompressedWorker(); - } else { - var result = this._decompressWorker(); - if(!this._dataBinary) { - result = result.pipe(new utf8.Utf8EncodeWorker()); - } - return CompressedObject.createWorkerFrom(result, compression, compressionOptions); - } - }, - /** - * Return a worker for the decompressed content. - * @private - * @return Worker the worker. - */ - _decompressWorker : function () { - if (this._data instanceof CompressedObject) { - return this._data.getContentWorker(); - } else if (this._data instanceof GenericWorker) { - return this._data; - } else { - return new DataWorker(this._data); - } - } - }; - - var removedMethods = ["asText", "asBinary", "asNodeBuffer", "asUint8Array", "asArrayBuffer"]; - var removedFn = function () { - throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); - }; - - for(var i = 0; i < removedMethods.length; i++) { - ZipObject.prototype[removedMethods[i]] = removedFn; - } - module.exports = ZipObject; - - },{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(require,module,exports){ - (function (global){ - var Mutation = global.MutationObserver || global.WebKitMutationObserver; - - var scheduleDrain; - - { - if (Mutation) { - var called = 0; - var observer = new Mutation(nextTick); - var element = global.document.createTextNode(''); - observer.observe(element, { - characterData: true - }); - scheduleDrain = function () { - element.data = (called = ++called % 2); - }; - } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') { - var channel = new global.MessageChannel(); - channel.port1.onmessage = nextTick; - scheduleDrain = function () { - channel.port2.postMessage(0); - }; - } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) { - scheduleDrain = function () { - - // Create a
ss6player-lib
    Preparing search index...

    Class FrameData

    FrameData

    -
    Index

    Constructors

    Index

    Constructors

    Properties

    Constructors

    Properties

    boundingRadius: number
    cellIndex: number
    colorArgb32: number
    colorBlendType: number
    colorRate: number
    effectValue_curKeyframe: number
    effectValue_loopflag: number
    effectValue_speed: number
    effectValue_startTime: number
    f_flipH: boolean
    f_flipV: boolean
    f_hide: boolean
    f_mesh: boolean
    flag1: number
    flag2: number
    highflag: number
    i_transformVerts: number
    index: number
    instanceValue_curKeyframe: number
    instanceValue_endFrame: number
    instanceValue_loopflag: number
    instanceValue_loopNum: number
    instanceValue_speed: number
    instanceValue_startFrame: number
    localopacity: number
    localscaleX: number
    localscaleY: number
    lowflag: number
    masklimen: number
    meshDataPoint: Float32Array
    meshIsBind: number
    meshNum: number
    opacity: number
    partsColorARGB: number
    pivotX: number
    pivotY: number
    positionX: number
    positionY: number
    priority: number
    rotationX: number
    rotationY: number
    rotationZ: number
    scaleX: number
    scaleY: number
    size_X: number
    size_Y: number
    tint: number
    u00: number
    u01: number
    u10: number
    u11: number
    useColorMatrix: boolean
    uv_move_X: number
    uv_move_Y: number
    uv_rotation: number
    uv_scale_X: number
    uv_scale_Y: number
    v00: number
    v01: number
    v10: number
    v11: number
    +

    Constructors

    Properties

    boundingRadius: number
    cellIndex: number
    colorArgb32: number
    colorBlendType: number
    colorRate: number
    effectValue_curKeyframe: number
    effectValue_loopflag: number
    effectValue_speed: number
    effectValue_startTime: number
    f_flipH: boolean
    f_flipV: boolean
    f_hide: boolean
    f_mesh: boolean
    flag1: number
    flag2: number
    highflag: number
    i_transformVerts: number
    index: number
    instanceValue_curKeyframe: number
    instanceValue_endFrame: number
    instanceValue_loopflag: number
    instanceValue_loopNum: number
    instanceValue_speed: number
    instanceValue_startFrame: number
    localopacity: number
    localscaleX: number
    localscaleY: number
    lowflag: number
    masklimen: number
    meshDataPoint: Float32Array
    meshIsBind: number
    meshNum: number
    opacity: number
    partsColorARGB: number
    pivotX: number
    pivotY: number
    positionX: number
    positionY: number
    priority: number
    rotationX: number
    rotationY: number
    rotationZ: number
    scaleX: number
    scaleY: number
    size_X: number
    size_Y: number
    tint: number
    u00: number
    u01: number
    u10: number
    u11: number
    useColorMatrix: boolean
    uv_move_X: number
    uv_move_Y: number
    uv_rotation: number
    uv_scale_X: number
    uv_scale_Y: number
    v00: number
    v01: number
    v10: number
    v11: number
    diff --git a/docs/ss6player_lib_api/classes/Player.html b/docs/ss6player_lib_api/classes/Player.html index e8a2ee2c..0399d544 100644 --- a/docs/ss6player_lib_api/classes/Player.html +++ b/docs/ss6player_lib_api/classes/Player.html @@ -1,4 +1,4 @@ -Player | ss6player-lib
    ss6player-lib
      Preparing search index...

      Class Player

      Index

      Constructors

      constructor +Player | ss6player-lib
      ss6player-lib
        Preparing search index...

        Class Player

        Index

        Constructors

        Properties

        Accessors

        Constructors

        Properties

        curAnimation: AnimationData = null
        curAnimePackData: AnimePackData = null

        Accessors

        Methods

        • 1フレーム分のデータを取得する(未設定項目はデフォルト) +

        Constructors

        Properties

        curAnimation: AnimationData = null
        curAnimePackData: AnimePackData = null

        Accessors

        Methods

        • 1フレーム分のデータを取得する(未設定項目はデフォルト) [注意]現verでは未対応項目があると正常動作しない可能性があります

          Parameters

          • frameNumber: number

            フレーム番号

            -

          Returns FrameData[]

        • ユーザーデータの取得

          +

        Returns FrameData[]

        • ユーザーデータの取得

          Parameters

          • frameNumber: number

            フレーム番号

            -

          Returns any[]

            +

        Returns any[]

        • ユーザーデータ
        -
        • ユーザーデータの存在チェック

          Parameters

          • frameNumber: number

            フレーム番号

            -

          Returns boolean

            +

        Returns boolean

        • 存在するかどうか
        -
        • 親を遡って不透明度を継承する

          Parameters

          • opacity: number

            透明度

            -
          • partId: number

            パーツ(レイヤー)ID

            -
          • frameNumber: number

            フレーム番号

            -

          Returns number

            +
        • partId: number

          パーツ(レイヤー)ID

          +
        • frameNumber: number

          フレーム番号

          +

        Returns number

        • 透明度
        -
        • Setup

          Parameters

          • animePackName: string

            The name of animePack(SSAE).

            -
          • animeName: string

            The name of animation.

            -

          Returns void

        • 親を遡って座標変換する(ローカルアトリビュート適用)

          +
        • animeName: string

          The name of animation.

          +

        Returns void

        • 親を遡って座標変換する(ローカルアトリビュート適用)

          Parameters

          • verts: Float32Array

            頂点情報配列

            -
          • partId: number

            パーツ(レイヤー)ID

            -
          • frameNumber: number

            フレーム番号

            -

          Returns Float32Array

            +
        • partId: number

          パーツ(レイヤー)ID

          +
        • frameNumber: number

          フレーム番号

          +

        Returns Float32Array

        • 変換された頂点座標配列
        -
        • 親を遡って座標変換する

          Parameters

          • pos: Float32Array

            頂点情報配列

            -
          • id: number

            パーツ(レイヤー)ID

            -
          • frameNumber: number

            フレーム番号

            -

          Returns Float32Array

            +
        • id: number

          パーツ(レイヤー)ID

          +
        • frameNumber: number

          フレーム番号

          +

        Returns Float32Array

        • 変換された頂点座標配列
        -
        • 親を遡って座標変換する(ローカルアトリビュート適用)

          +
        • 親を遡って座標変換する(ローカルアトリビュート適用)

          Parameters

          • pos: Float32Array

            頂点情報配列

            -
          • partId: number

            パーツ(レイヤー)ID

            -
          • frameNumber: number

            フレーム番号

            -

          Returns Float32Array

            +
        • partId: number

          パーツ(レイヤー)ID

          +
        • frameNumber: number

          フレーム番号

          +

        Returns Float32Array

        • 変換された頂点座標配列
        -
        • 親を遡って座標変換する

          Parameters

          • verts: Float32Array

            頂点情報配列

            -
          • id: number

            パーツ(レイヤー)ID

            -
          • frameNumber: number

            フレーム番号

            -

          Returns Float32Array

            +
        • id: number

          パーツ(レイヤー)ID

          +
        • frameNumber: number

          フレーム番号

          +

        Returns Float32Array

        • 変換された頂点座標配列
        -
        • 親を遡って座標変換する(ローカルアトリビュート適用)

          +
        • 親を遡って座標変換する(ローカルアトリビュート適用)

          Parameters

          • verts: Float32Array

            頂点情報配列

            -
          • partId: number

            パーツ(レイヤー)ID

            -
          • frameNumber: number

            フレーム番号

            -

          Returns Float32Array

            +
        • partId: number

          パーツ(レイヤー)ID

          +
        • frameNumber: number

          フレーム番号

          +

        Returns Float32Array

        • 変換された頂点座標配列
        -
        • 5頂点の中間点を求める

          +
        • 5頂点の中間点を求める

          Parameters

          • cx: number

            元の中心点

            -
          • cy: number

            元の中心点

            -
          • LUx: number

            左上座標

            -
          • LUy: number

            左上座標

            -
          • RUx: number

            右上座標

            -
          • RUy: number

            右上座標

            -
          • LDx: number

            左下座標

            -
          • LDy: number

            左下座標

            -
          • RDx: number

            右下座標

            -
          • RDy: number

            右下座標

            -
          • vec2: Float32Array

          Returns Float32Array

          vec2 - 4頂点から算出した中心点の座標

          -
        • 矩形セルメッシュの頂点情報のみ取得

          +
        • cy: number

          元の中心点

          +
        • LUx: number

          左上座標

          +
        • LUy: number

          左上座標

          +
        • RUx: number

          右上座標

          +
        • RUy: number

          右上座標

          +
        • LDx: number

          左下座標

          +
        • LDy: number

          左下座標

          +
        • RDx: number

          右下座標

          +
        • RDy: number

          右下座標

          +
        • vec2: Float32Array

        Returns Float32Array

        vec2 - 4頂点から算出した中心点の座標

        +
        • 矩形セルメッシュの頂点情報のみ取得

          Parameters

          • cell: Cell

            セル

            -
          • data: FrameData

            アニメーションフレームデータ

            -
          • verts: Float32Array

          Returns Float32Array

            +
        • data: FrameData

          アニメーションフレームデータ

          +
        • verts: Float32Array

        Returns Float32Array

        • 頂点情報配列
        -
        • 矩形セルメッシュの頂点情報のみ取得

          Parameters

          • cell: Cell

            セル

            -
          • data: FrameData

            アニメーションフレームデータ

            -
          • verts: Float32Array

          Returns Float32Array

            +
        • data: FrameData

          アニメーションフレームデータ

          +
        • verts: Float32Array

        Returns Float32Array

        • 頂点情報配列
        -
        +
        diff --git a/docs/ss6player_lib_api/classes/Utils.html b/docs/ss6player_lib_api/classes/Utils.html index a413c62c..f566743c 100644 --- a/docs/ss6player_lib_api/classes/Utils.html +++ b/docs/ss6player_lib_api/classes/Utils.html @@ -1,3 +1,3 @@ -Utils | ss6player-lib
        ss6player-lib
          Preparing search index...

          Class Utils

          Index

          Constructors

          constructor +Utils | ss6player-lib
          ss6player-lib
            Preparing search index...

            Class Utils

            Index

            Constructors

            Methods

            Constructors

            Methods

            +

            Constructors

            Methods

            diff --git a/docs/ss6player_lib_api/index.html b/docs/ss6player_lib_api/index.html index 362b9021..57b87dcf 100644 --- a/docs/ss6player_lib_api/index.html +++ b/docs/ss6player_lib_api/index.html @@ -1,16 +1,23 @@ -ss6player-lib
            ss6player-lib
              Preparing search index...

              ss6player-lib

              ss6player-lib

              OPTPiX SpriteStudio 7.0OPTPiX SpriteStudio 6 で制作したアニメーションデータの一つである ssfb フォーマットをパースし、 player 向けのデータへ変換するライブラリです。

              -

              ss6player-lib のライセンスは LISENCE となります。

              +ss6player-lib
              ss6player-lib
                Preparing search index...

                ss6player-lib

                ss6player-lib

                +

                OPTPiX SpriteStudio 7.0OPTPiX SpriteStudio 6 で制作したアニメーションデータの一つである ssfb フォーマットをパースし、 player 向けのデータへ変換するライブラリです。

                + +

                ss6player-lib のライセンスは LISENCE となります。

                ss6player-lib は依存ライブラリの FlatBuffersssfblib をバンドルしています。 ForWeb のコンポーネントが依存しているサードパーティライブラリのライセンスは ThirdPartyLicenses.md を参 照してください。

                -

                ss6player-lib の API リファレンスはこちらです。

                -

                ソースの取得方法やビルドに必要な npm のインストール手順は wiki を参照してください。

                -

                SS6PlayerForWeb/ ディレクトリ上で下記コマンドを実行すると、 packages/ 以下の全ライブラリをビルドします。

                + + +

                ss6player-lib の API リファレンスはこちらです。

                + +

                ソースの取得方法やビルドに必要な npm のインストール手順は wiki を参照してください。

                + +

                SS6PlayerForWeb/ ディレクトリ上で下記コマンドを実行すると、 packages/ 以下の全ライブラリをビルドします。

                cd SS6PlayerForWeb
                npm i
                npm run build

                ビルドが成功すると ss6player-lib.umd.jsss6player-lib.es6.jsSS6PlayerForWeb/packages/ss6player-lib/dist ディレクトリ以下に生成されます。

                -

                全ビルド実行後は SS6PlayerForWeb/packages/ss6player-lib ディレクトリ上で ss6player-lib の単独ビルドが可能になります。

                + +

                全ビルド実行後は SS6PlayerForWeb/packages/ss6player-lib ディレクトリ上で ss6player-lib の単独ビルドが可能になります。

                cd SS6PlayerForWeb/packages/ss6player-lib
                npm run build
                diff --git a/docs/ss6player_pixi6_api/assets/icons.js b/docs/ss6player_pixi6_api/assets/icons.js index 58882d76..3ae8f55e 100644 --- a/docs/ss6player_pixi6_api/assets/icons.js +++ b/docs/ss6player_pixi6_api/assets/icons.js @@ -3,7 +3,7 @@ function addIcons() { if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons); const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg")); - svg.innerHTML = `MMNEPVFCICPMFPCPTTAAATR`; + svg.innerHTML = `MMNEPVFCICPMFPCPTTAAATR`; svg.style.display = "none"; if (location.protocol === "file:") updateUseElements(); } diff --git a/docs/ss6player_pixi6_api/assets/icons.svg b/docs/ss6player_pixi6_api/assets/icons.svg index 50ad5799..10db10be 100644 --- a/docs/ss6player_pixi6_api/assets/icons.svg +++ b/docs/ss6player_pixi6_api/assets/icons.svg @@ -1 +1 @@ -MMNEPVFCICPMFPCPTTAAATR \ No newline at end of file +MMNEPVFCICPMFPCPTTAAATR \ No newline at end of file diff --git a/docs/ss6player_pixi6_api/assets/main.js b/docs/ss6player_pixi6_api/assets/main.js index 19bbb7a7..64b80ab2 100644 --- a/docs/ss6player_pixi6_api/assets/main.js +++ b/docs/ss6player_pixi6_api/assets/main.js @@ -1,7 +1,7 @@ "use strict"; window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings.","hierarchy_expand":"Expand","hierarchy_collapse":"Collapse","folder":"Folder","search_index_not_available":"The search index is not available","search_no_results_found_for_0":"No results found for {0}","kind_1":"Project","kind_2":"Module","kind_4":"Namespace","kind_8":"Enumeration","kind_16":"Enumeration Member","kind_32":"Variable","kind_64":"Function","kind_128":"Class","kind_256":"Interface","kind_512":"Constructor","kind_1024":"Property","kind_2048":"Method","kind_4096":"Call Signature","kind_8192":"Index Signature","kind_16384":"Constructor Signature","kind_32768":"Parameter","kind_65536":"Type Literal","kind_131072":"Type Parameter","kind_262144":"Accessor","kind_524288":"Get Signature","kind_1048576":"Set Signature","kind_2097152":"Type Alias","kind_4194304":"Reference","kind_8388608":"Document"}; -"use strict";(()=>{var Ke=Object.create;var he=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Xe=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var et=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var tt=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ze(e))!Ye.call(t,i)&&i!==n&&he(t,i,{get:()=>e[i],enumerable:!(r=Ge(e,i))||r.enumerable});return t};var nt=(t,e,n)=>(n=t!=null?Ke(Xe(t)):{},tt(e||!t||!t.__esModule?he(n,"default",{value:t,enumerable:!0}):n,t));var ye=et((me,ge)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,l],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(oc?d+=2:a==c&&(n+=r[l+1]*i[d+1],l+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}if(s.str.length==0&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),f=s.str.charAt(1),p;f in s.node.edges?p=s.node.edges[f]:(p=new t.TokenSet,s.node.edges[f]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),c=0;c1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof me=="object"?ge.exports=n():e.lunr=n()}(this,function(){return t})})()});var M,G={getItem(){return null},setItem(){}},K;try{K=localStorage,M=K}catch{K=G,M=G}var S={getItem:t=>M.getItem(t),setItem:(t,e)=>M.setItem(t,e),disableWritingLocalStorage(){M=G},disable(){localStorage.clear(),M=G},enable(){M=K}};window.TypeDoc||={disableWritingLocalStorage(){S.disableWritingLocalStorage()},disableLocalStorage:()=>{S.disable()},enableLocalStorage:()=>{S.enable()}};window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",search_index_not_available:"The search index is not available",search_no_results_found_for_0:"No results found for {0}",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var pe=[];function X(t,e){pe.push({selector:e,constructor:t})}var Z=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){pe.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!rt(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function rt(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var fe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var Ie=nt(ye(),1);async function R(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}var Y="closing",ae="tsd-overlay";function it(){let t=Math.abs(window.innerWidth-document.documentElement.clientWidth);document.body.style.overflow="hidden",document.body.style.paddingRight=`${t}px`}function st(){document.body.style.removeProperty("overflow"),document.body.style.removeProperty("padding-right")}function xe(t,e){t.addEventListener("animationend",()=>{t.classList.contains(Y)&&(t.classList.remove(Y),document.getElementById(ae)?.remove(),t.close(),st())}),t.addEventListener("cancel",n=>{n.preventDefault(),ve(t)}),e?.closeOnClick&&document.addEventListener("click",n=>{t.open&&!t.contains(n.target)&&ve(t)},!0)}function Ee(t){if(t.open)return;let e=document.createElement("div");e.id=ae,document.body.appendChild(e),t.showModal(),it()}function ve(t){if(!t.open)return;document.getElementById(ae)?.classList.add(Y),t.classList.add(Y)}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var be=document.head.appendChild(document.createElement("style"));be.dataset.for="filters";var le={};function we(t){for(let e of t.split(/\s+/))if(le.hasOwnProperty(e)&&!le[e])return!0;return!1}var ee=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),be.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +"use strict";(()=>{var Ke=Object.create;var he=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Xe=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var et=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var tt=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ze(e))!Ye.call(t,i)&&i!==n&&he(t,i,{get:()=>e[i],enumerable:!(r=Ge(e,i))||r.enumerable});return t};var nt=(t,e,n)=>(n=t!=null?Ke(Xe(t)):{},tt(e||!t||!t.__esModule?he(n,"default",{value:t,enumerable:!0}):n,t));var ye=et((me,ge)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=(function(e){return function(n){e.console&&console.warn&&console.warn(n)}})(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,l],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(oc?d+=2:a==c&&(n+=r[l+1]*i[d+1],l+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}if(s.str.length==0&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),f=s.str.charAt(1),p;f in s.node.edges?p=s.node.edges[f]:(p=new t.TokenSet,s.node.edges[f]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),c=0;c1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},(function(e,n){typeof define=="function"&&define.amd?define(n):typeof me=="object"?ge.exports=n():e.lunr=n()})(this,function(){return t})})()});var M,G={getItem(){return null},setItem(){}},K;try{K=localStorage,M=K}catch{K=G,M=G}var S={getItem:t=>M.getItem(t),setItem:(t,e)=>M.setItem(t,e),disableWritingLocalStorage(){M=G},disable(){localStorage.clear(),M=G},enable(){M=K}};window.TypeDoc||={disableWritingLocalStorage(){S.disableWritingLocalStorage()},disableLocalStorage:()=>{S.disable()},enableLocalStorage:()=>{S.enable()}};window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",search_index_not_available:"The search index is not available",search_no_results_found_for_0:"No results found for {0}",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var pe=[];function X(t,e){pe.push({selector:e,constructor:t})}var Z=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){pe.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!rt(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function rt(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var fe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var Ie=nt(ye(),1);async function R(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}var Y="closing",ae="tsd-overlay";function it(){let t=Math.abs(window.innerWidth-document.documentElement.clientWidth);document.body.style.overflow="hidden",document.body.style.paddingRight=`${t}px`}function st(){document.body.style.removeProperty("overflow"),document.body.style.removeProperty("padding-right")}function xe(t,e){t.addEventListener("animationend",()=>{t.classList.contains(Y)&&(t.classList.remove(Y),document.getElementById(ae)?.remove(),t.close(),st())}),t.addEventListener("cancel",n=>{n.preventDefault(),ve(t)}),e?.closeOnClick&&document.addEventListener("click",n=>{t.open&&!t.contains(n.target)&&ve(t)},!0)}function Ee(t){if(t.open)return;let e=document.createElement("div");e.id=ae,document.body.appendChild(e),t.showModal(),it()}function ve(t){if(!t.open)return;document.getElementById(ae)?.classList.add(Y),t.classList.add(Y)}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var be=document.head.appendChild(document.createElement("style"));be.dataset.for="filters";var le={};function we(t){for(let e of t.split(/\s+/))if(le.hasOwnProperty(e)&&!le[e])return!0;return!1}var ee=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),be.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } `,this.app.updateIndexVisibility()}fromLocalStorage(){let e=S.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){S.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),le[`tsd-is-${this.el.name}`]=this.value,this.app.filterChanged(),this.app.updateIndexVisibility()}};var Le=0;async function Se(t,e){if(!window.searchData)return;let n=await R(window.searchData);t.data=n,t.index=Ie.Index.load(n.index),e.innerHTML=""}function _e(){let t=document.getElementById("tsd-search-trigger"),e=document.getElementById("tsd-search"),n=document.getElementById("tsd-search-input"),r=document.getElementById("tsd-search-results"),i=document.getElementById("tsd-search-script"),s=document.getElementById("tsd-search-status");if(!(t&&e&&n&&r&&i&&s))throw new Error("Search controls missing");let o={base:document.documentElement.dataset.base};o.base.endsWith("/")||(o.base+="/"),i.addEventListener("error",()=>{let a=window.translations.search_index_not_available;Pe(s,a)}),i.addEventListener("load",()=>{Se(o,s)}),Se(o,s),ot({trigger:t,searchEl:e,results:r,field:n,status:s},o)}function ot(t,e){let{field:n,results:r,searchEl:i,status:s,trigger:o}=t;xe(i,{closeOnClick:!0});function a(){Ee(i),n.setSelectionRange(0,n.value.length)}o.addEventListener("click",a),n.addEventListener("input",fe(()=>{at(r,n,s,e)},200)),n.addEventListener("keydown",l=>{if(r.childElementCount===0||l.ctrlKey||l.metaKey||l.altKey)return;let d=n.getAttribute("aria-activedescendant"),f=d?document.getElementById(d):null;if(f){let p=!1,v=!1;switch(l.key){case"Home":case"End":case"ArrowLeft":case"ArrowRight":v=!0;break;case"ArrowDown":case"ArrowUp":p=l.shiftKey;break}(p||v)&&ke(n)}if(!l.shiftKey)switch(l.key){case"Enter":f?.querySelector("a")?.click();break;case"ArrowUp":Te(r,n,f,-1),l.preventDefault();break;case"ArrowDown":Te(r,n,f,1),l.preventDefault();break}});function c(){ke(n)}n.addEventListener("change",c),n.addEventListener("blur",c),n.addEventListener("click",c),document.body.addEventListener("keydown",l=>{if(l.altKey||l.metaKey||l.shiftKey)return;let d=l.ctrlKey&&l.key==="k",f=!l.ctrlKey&&!ut()&&l.key==="/";(d||f)&&(l.preventDefault(),a())})}function at(t,e,n,r){if(!r.index||!r.data)return;t.innerHTML="",n.innerHTML="",Le+=1;let i=e.value.trim(),s;if(i){let a=i.split(" ").map(c=>c.length?`*${c}*`:"").join(" ");s=r.index.search(a).filter(({ref:c})=>{let l=r.data.rows[Number(c)].classes;return!l||!we(l)})}else s=[];if(s.length===0&&i){let a=window.translations.search_no_results_found_for_0.replace("{0}",` "${te(i)}" `);Pe(n,a);return}for(let a=0;ac.score-a.score);let o=Math.min(10,s.length);for(let a=0;a`,f=Ce(c.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(f+=` (score: ${s[a].score.toFixed(2)})`),c.parent&&(f=` ${Ce(c.parent,i)}.${f}`);let p=document.createElement("li");p.id=`tsd-search:${Le}-${a}`,p.role="option",p.ariaSelected="false",p.classList.value=c.classes??"";let v=document.createElement("a");v.tabIndex=-1,v.href=r.base+c.url,v.innerHTML=d+`${f}`,p.append(v),t.appendChild(p)}}function Te(t,e,n,r){let i;if(r===1?i=n?.nextElementSibling||t.firstElementChild:i=n?.previousElementSibling||t.lastElementChild,i!==n){if(!i||i.role!=="option"){console.error("Option missing");return}i.ariaSelected="true",i.scrollIntoView({behavior:"smooth",block:"nearest"}),e.setAttribute("aria-activedescendant",i.id),n?.setAttribute("aria-selected","false")}}function ke(t){let e=t.getAttribute("aria-activedescendant");(e?document.getElementById(e):null)?.setAttribute("aria-selected","false"),t.setAttribute("aria-activedescendant","")}function Ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(te(t.substring(s,o)),`${te(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(te(t.substring(s))),i.join("")}var lt={"&":"&","<":"<",">":">","'":"'",'"':"""};function te(t){return t.replace(/[&<>"'"]/g,e=>lt[e])}function Pe(t,e){t.innerHTML=e?`
                ${e}
                `:""}var ct=["button","checkbox","file","hidden","image","radio","range","reset","submit"];function ut(){let t=document.activeElement;return t?t.isContentEditable||t.tagName==="TEXTAREA"||t.tagName==="SEARCH"?!0:t.tagName==="INPUT"&&!ct.includes(t.type):!1}var D="mousedown",Me="mousemove",$="mouseup",ne={x:0,y:0},Qe=!1,ce=!1,dt=!1,F=!1,Oe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(Oe?"is-mobile":"not-mobile");Oe&&"ontouchstart"in document.documentElement&&(dt=!0,D="touchstart",Me="touchmove",$="touchend");document.addEventListener(D,t=>{ce=!0,F=!1;let e=D=="touchstart"?t.targetTouches[0]:t;ne.y=e.pageY||0,ne.x=e.pageX||0});document.addEventListener(Me,t=>{if(ce&&!F){let e=D=="touchstart"?t.targetTouches[0]:t,n=ne.x-(e.pageX||0),r=ne.y-(e.pageY||0);F=Math.sqrt(n*n+r*r)>10}});document.addEventListener($,()=>{ce=!1});document.addEventListener("click",t=>{Qe&&(t.preventDefault(),t.stopImmediatePropagation(),Qe=!1)});var re=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener($,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(D,n=>this.onDocumentPointerDown(n)),document.addEventListener($,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){F||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!F&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var ue=new Map,de=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener("toggle",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;S.setItem(this.key,e.toString())}},ie=class extends I{constructor(e){super(e);let n=this.el.querySelector("summary"),r=n.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`,s;if(ue.has(i))s=ue.get(i);else{let o=S.getItem(i),a=o?o==="true":this.el.open;s=new de(i,a),ue.set(i,s)}s.add(this.el)}};function He(t){let e=S.getItem("tsd-theme")||"os";t.value=e,Ae(e),t.addEventListener("change",()=>{S.setItem("tsd-theme",t.value),Ae(t.value)})}function Ae(t){document.documentElement.dataset.theme=t}var se;function Ne(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Re),Re())}async function Re(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let e=await R(window.navigationData);se=document.documentElement.dataset.base,se.endsWith("/")||(se+="/"),t.innerHTML="";for(let n of e)Be(n,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Be(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',De(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let c=a.appendChild(document.createElement("ul"));c.className="tsd-nested-navigation";for(let l of t.children)Be(l,c,i)}else De(t,r,t.class)}function De(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));if(r.href=se+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&(r.classList.add("current"),r.ariaCurrent="page"),t.kind){let i=window.translations[`kind_${t.kind}`].replaceAll('"',""");r.innerHTML=``}r.appendChild(Fe(t.text,document.createElement("span")))}else{let r=e.appendChild(document.createElement("span")),i=window.translations.folder.replaceAll('"',""");r.innerHTML=``,r.appendChild(Fe(t.text,document.createElement("span")))}}function Fe(t,e){let n=t.split(/(?<=[^A-Z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|(?<=[_-])(?=[^_-])/);for(let r=0;r{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!="LI";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!=="true"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(".tsd-full-hierarchy [data-refl]")){let i=r.querySelector("ul");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll("[id]").forEach(s=>{s.removeAttribute("id")}),i.querySelectorAll("[data-dropdown]").forEach(s=>{s.dataset.dropdown="false"});for(let s of document.querySelectorAll(`[data-refl="${r}"]`)){let o=gt(),a=s.querySelector("ul");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function pt(){let t=document.getElementById("tsd-hierarchy-script");t&&(t.addEventListener("load",Ve),Ve())}async function Ve(){let t=document.querySelector(".tsd-panel.tsd-hierarchy:has(h4 a)");if(!t||!window.hierarchyData)return;let e=+t.dataset.refl,n=await R(window.hierarchyData),r=t.querySelector("ul"),i=document.createElement("ul");if(i.classList.add("tsd-hierarchy"),ft(i,n,e),r.querySelectorAll("li").length==i.querySelectorAll("li").length)return;let s=document.createElement("span");s.classList.add("tsd-hierarchy-toggle"),s.textContent=window.translations.hierarchy_expand,t.querySelector("h4 a")?.insertAdjacentElement("afterend",s),s.insertAdjacentText("beforebegin",", "),s.addEventListener("click",()=>{s.textContent===window.translations.hierarchy_expand?(r.insertAdjacentElement("afterend",i),r.remove(),s.textContent=window.translations.hierarchy_collapse):(i.insertAdjacentElement("afterend",r),i.remove(),s.textContent=window.translations.hierarchy_expand)})}function ft(t,e,n){let r=e.roots.filter(i=>mt(e,i,n));for(let i of r)t.appendChild(je(e,i,n))}function je(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement("li");if(s.classList.add("tsd-hierarchy-item"),e===n){let o=s.appendChild(document.createElement("span"));o.textContent=i.name,o.classList.add("tsd-hierarchy-target")}else{for(let a of i.uniqueNameParents||[]){let c=t.reflections[a],l=s.appendChild(document.createElement("a"));l.textContent=c.name,l.href=oe+c.url,l.className=c.class+" tsd-signature-type",s.append(document.createTextNode("."))}let o=s.appendChild(document.createElement("a"));o.textContent=t.reflections[e].name,o.href=oe+i.url,o.className=i.class+" tsd-signature-type"}if(i.children){let o=s.appendChild(document.createElement("ul"));o.classList.add("tsd-hierarchy");for(let a of i.children){let c=je(t,a,n,r);c&&o.appendChild(c)}}return r.delete(e),s}function mt(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function gt(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width","20"),t.setAttribute("height","20"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.innerHTML='',t}X(re,"a[data-toggle]");X(ie,".tsd-accordion");X(ee,".tsd-filter-item input[type=checkbox]");var qe=document.getElementById("tsd-theme");qe&&He(qe);var yt=new Z;Object.defineProperty(window,"app",{value:yt});_e();Ne();$e();"virtualKeyboard"in navigator&&(navigator.virtualKeyboard.overlaysContent=!0);})(); /*! Bundled license information: diff --git a/docs/ss6player_pixi6_api/assets/style.css b/docs/ss6player_pixi6_api/assets/style.css index 5ba5a2a9..44328e99 100644 --- a/docs/ss6player_pixi6_api/assets/style.css +++ b/docs/ss6player_pixi6_api/assets/style.css @@ -1595,9 +1595,9 @@ .container-main { grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax( - 0, - 20rem - ); + 0, + 20rem + ); grid-template-areas: "sidebar content toc"; } diff --git a/docs/ss6player_pixi6_api/classes/SS6Player.html b/docs/ss6player_pixi6_api/classes/SS6Player.html index ffae735f..f0ac119b 100644 --- a/docs/ss6player_pixi6_api/classes/SS6Player.html +++ b/docs/ss6player_pixi6_api/classes/SS6Player.html @@ -1,4 +1,4 @@ -SS6Player | ss6player-pixi6
                ss6player-pixi6
                  Preparing search index...

                  Class SS6Player

                  Hierarchy

                  • Container
                    • SS6Player
                  Index

                  Constructors

                  constructor +SS6Player | ss6player-pixi6
                  ss6player-pixi6
                    Preparing search index...

                    Class SS6Player

                    Hierarchy

                    • Container
                      • SS6Player
                    Index

                    Constructors

                    Properties

                    _bounds _boundsID _boundsRect @@ -122,40 +122,40 @@ mixin

                    Constructors

                    • SS6Player (extends PIXI.Container)

                      Parameters

                      • ss6project: SS6Project

                        SS6Project that contains animations.

                        -
                      • animePackName: string = null

                        The name of animePack(SSAE).

                        -
                      • animeName: string = null

                        The name of animation.

                        -

                      Returns SS6Player

                    Properties

                    _bounds: Bounds

                    The bounds object, this is used to calculate and store the bounds of the displayObject.

                    -
                    _boundsID: number

                    Flags the cached bounds as dirty.

                    -
                    _boundsRect: Rectangle

                    Cache of this display-object's bounds-rectangle.

                    -
                    _destroyed: boolean

                    If the object has been destroyed via destroy(). If true, it should not be used.

                    -
                    _enabledFilters: Filter[]

                    Currently enabled filters.

                    -
                    _height: number
                    _lastSortedIndex: number

                    Which index in the children array the display component was before the previous zIndex sort. +

                  • animePackName: string = null

                    The name of animePack(SSAE).

                    +
                  • animeName: string = null

                    The name of animation.

                    +
                  • Returns SS6Player

                    Properties

                    _bounds: Bounds

                    The bounds object, this is used to calculate and store the bounds of the displayObject.

                    +
                    _boundsID: number

                    Flags the cached bounds as dirty.

                    +
                    _boundsRect: Rectangle

                    Cache of this display-object's bounds-rectangle.

                    +
                    _destroyed: boolean

                    If the object has been destroyed via destroy(). If true, it should not be used.

                    +
                    _enabledFilters: Filter[]

                    Currently enabled filters.

                    +
                    _height: number
                    _lastSortedIndex: number

                    Which index in the children array the display component was before the previous zIndex sort. Used by containers to help sort objects with the same zIndex, by using previous array index as the decider.

                    -
                    _localBounds: Bounds

                    Local bounds object, swapped with _bounds when using getLocalBounds().

                    -
                    _localBoundsRect: Rectangle

                    Cache of this display-object's local-bounds rectangle.

                    -
                    _mask: Container<DisplayObject> | MaskData

                    The original, cached mask of the object.

                    -
                    _width: number
                    _zIndex: number

                    The zIndex of the displayObject. +

                    _localBounds: Bounds

                    Local bounds object, swapped with _bounds when using getLocalBounds().

                    +
                    _localBoundsRect: Rectangle

                    Cache of this display-object's local-bounds rectangle.

                    +
                    _mask: Container<DisplayObject> | MaskData

                    The original, cached mask of the object.

                    +
                    _width: number
                    _zIndex: number

                    The zIndex of the displayObject. A higher value will mean it will be rendered on top of other displayObjects within the same container.

                    -
                    alpha: number

                    The opacity of the object.

                    -
                    children: DisplayObject[]

                    The array of children of this container.

                    -
                    containerUpdateTransform: () => void
                    cullable: boolean

                    Should this object be rendered if the bounds of this object are out of frame?

                    +
                    alpha: number

                    The opacity of the object.

                    +
                    children: DisplayObject[]

                    The array of children of this container.

                    +
                    containerUpdateTransform: () => void
                    cullable: boolean

                    Should this object be rendered if the bounds of this object are out of frame?

                    Culling has no effect on whether updateTransform is called.

                    -
                    cullArea: Rectangle

                    If set, this shape is used for culling instead of the bounds of this object. +

                    cullArea: Rectangle

                    If set, this shape is used for culling instead of the bounds of this object. It can improve the culling performance of objects with many children. The culling area is defined in local space.

                    -
                    displayObjectUpdateTransform: () => void
                    filterArea: Rectangle

                    The area the filter is applied to. This is used as more of an optimization +

                    displayObjectUpdateTransform: () => void
                    filterArea: Rectangle

                    The area the filter is applied to. This is used as more of an optimization rather than figuring out the dimensions of the displayObject each frame you can set this rectangle.

                    Also works as an interaction mask.

                    -
                    filters: Filter[]

                    Sets the filters for the displayObject. +

                    filters: Filter[]

                    Sets the filters for the displayObject. IMPORTANT: This is a WebGL only feature and will be ignored by the canvas renderer. To remove filters simply set this property to 'null'.

                    -
                    isMask: boolean

                    Does any other displayObject use this object as a mask?

                    -
                    isSprite: boolean

                    Used to fast check if a sprite is.. a sprite!

                    -
                    name: string
                    onUserDataCallback: (data: any) => void
                    parent: Container

                    The display object container that contains this display object.

                    -
                    playEndCallback: (player: SS6Player) => void
                    playerLib: Player
                    renderable: boolean

                    Can this object be rendered, if false the object will not be drawn but the updateTransform +

                    isMask: boolean

                    Does any other displayObject use this object as a mask?

                    +
                    isSprite: boolean

                    Used to fast check if a sprite is.. a sprite!

                    +
                    name: string
                    onUserDataCallback: (data: any) => void
                    parent: Container

                    The display object container that contains this display object.

                    +
                    playEndCallback: (player: SS6Player) => void
                    playerLib: Player
                    renderable: boolean

                    Can this object be rendered, if false the object will not be drawn but the updateTransform methods will still be called.

                    Only affects recursive calls from parent. You can ask for bounds manually.

                    -
                    skipEnabled: boolean
                    sortableChildren: boolean

                    If set to true, the container will sort its children by zIndex value +

                    skipEnabled: boolean
                    sortableChildren: boolean

                    If set to true, the container will sort its children by zIndex value when updateTransform() is called, or manually if sortChildren() is called.

                    This actually changes the order of elements in the array, so should be treated as a basic solution that is not performant compared to other solutions, @@ -166,18 +166,18 @@

                    PIXI.settings.SORTABLE_CHILDREN

                    sortDirty: boolean

                    Should children be sorted by zIndex at the next updateTransform call.

                    Will get automatically set to true if a new child is added, or if a child's zIndex changes.

                    -
                    transform: Transform

                    World transform and local transform of this object. +

                    transform: Transform

                    World transform and local transform of this object. This will become read-only later, please do not assign anything there unless you know what are you doing.

                    -
                    visible: boolean

                    The visibility of the object. If false the object will not be drawn, and +

                    visible: boolean

                    The visibility of the object. If false the object will not be drawn, and the updateTransform function will not be called.

                    Only affects recursive calls from parent. You can ask for bounds or call updateTransform manually.

                    -
                    worldAlpha: number

                    The multiplied alpha of the displayObject.

                    -
                    prefixed: string | boolean

                    Accessors

                    • get _tempDisplayObjectParent(): TemporaryDisplayObject
                      Protected

                      Returns TemporaryDisplayObject

                    • get angle(): number

                      The angle of the object in degrees. +

                    worldAlpha: number

                    The multiplied alpha of the displayObject.

                    +
                    prefixed: string | boolean

                    Accessors

                    • get _tempDisplayObjectParent(): TemporaryDisplayObject
                      Protected

                      Returns TemporaryDisplayObject

                    • get angle(): number

                      The angle of the object in degrees. 'rotation' and 'angle' have the same effect on a display object; rotation is in radians, angle is in degrees.

                      -

                      Returns number

                    • set angle(value: number): void

                      Parameters

                      • value: number

                      Returns void

                    • get destroyed(): boolean

                      Readonly flag for destroyed display objects.

                      -

                      Returns boolean

                    • get height(): number

                      The height of the Container, setting this will actually modify the scale to achieve the value set.

                      -

                      Returns number

                    • set height(value: number): void

                      Parameters

                      • value: number

                      Returns void

                    • get localTransform(): Matrix

                      Current transform of the object based on local factors: position, scale, other stuff.

                      -

                      Returns Matrix

                    • get mask(): Container<DisplayObject> | MaskData

                      Sets a mask for the displayObject. A mask is an object that limits the visibility of an +

                      Returns number

                    • set angle(value: number): void

                      Parameters

                      • value: number

                      Returns void

                    • get destroyed(): boolean

                      Readonly flag for destroyed display objects.

                      +

                      Returns boolean

                    • get height(): number

                      The height of the Container, setting this will actually modify the scale to achieve the value set.

                      +

                      Returns number

                    • set height(value: number): void

                      Parameters

                      • value: number

                      Returns void

                    • get localTransform(): Matrix

                      Current transform of the object based on local factors: position, scale, other stuff.

                      +

                      Returns Matrix

                    • get mask(): Container<DisplayObject> | MaskData

                      Sets a mask for the displayObject. A mask is an object that limits the visibility of an object to the shape of the mask applied to it. In PixiJS a regular mask must be a PIXI.Graphics or a PIXI.Sprite object. This allows for much faster masking in canvas as it utilities shape clipping. Furthermore, a mask of an object must be in the subtree of its parent. @@ -196,44 +196,44 @@

                      Returns ObservablePoint

                      4.0.0

                    • set position(value: IPointData): void

                      Parameters

                      • value: IPointData

                      Returns void

                    • get rotation(): number

                      The rotation of the object in radians. 'rotation' and 'angle' have the same effect on a display object; rotation is in radians, angle is in degrees.

                      -

                      Returns number

                    • set rotation(value: number): void

                      Parameters

                      • value: number

                      Returns void

                    • get scale(): ObservablePoint

                      The scale factors of this object along the local coordinate axes.

                      +

                      Returns number

                    • set rotation(value: number): void

                      Parameters

                      • value: number

                      Returns void

                    • get scale(): ObservablePoint

                      The scale factors of this object along the local coordinate axes.

                      The default scale is (1, 1).

                      Returns ObservablePoint

                      4.0.0

                    • set scale(value: IPointData): void

                      Parameters

                      • value: IPointData

                      Returns void

                    • get skew(): ObservablePoint

                      The skew factor for the object in radians.

                      Returns ObservablePoint

                      4.0.0

                      -
                    • set skew(value: IPointData): void

                      Parameters

                      • value: IPointData

                      Returns void

                    • get width(): number

                      The width of the Container, setting this will actually modify the scale to achieve the value set.

                      -

                      Returns number

                    • set width(value: number): void

                      Parameters

                      • value: number

                      Returns void

                    • get worldTransform(): Matrix

                      Current transform of the object based on world (parent) factors.

                      -

                      Returns Matrix

                    • get worldVisible(): boolean

                      Indicates if the object is globally visible.

                      -

                      Returns boolean

                    • get x(): number

                      The position of the displayObject on the x axis relative to the local coordinates of the parent. +

                  • set skew(value: IPointData): void

                    Parameters

                    • value: IPointData

                    Returns void

                    • get width(): number

                      The width of the Container, setting this will actually modify the scale to achieve the value set.

                      +

                      Returns number

                    • set width(value: number): void

                      Parameters

                      • value: number

                      Returns void

                    • get worldTransform(): Matrix

                      Current transform of the object based on world (parent) factors.

                      +

                      Returns Matrix

                    • get worldVisible(): boolean

                      Indicates if the object is globally visible.

                      +

                      Returns boolean

                    • get x(): number

                      The position of the displayObject on the x axis relative to the local coordinates of the parent. An alias to position.x

                      -

                      Returns number

                    • set x(value: number): void

                      Parameters

                      • value: number

                      Returns void

                    • get y(): number

                      The position of the displayObject on the y axis relative to the local coordinates of the parent. +

                      Returns number

                    • set x(value: number): void

                      Parameters

                      • value: number

                      Returns void

                    • get y(): number

                      The position of the displayObject on the y axis relative to the local coordinates of the parent. An alias to position.y

                      -

                      Returns number

                    • set y(value: number): void

                      Parameters

                      • value: number

                      Returns void

                    • get zIndex(): number

                      The zIndex of the displayObject.

                      +

                      Returns number

                    • set y(value: number): void

                      Parameters

                      • value: number

                      Returns void

                    • get zIndex(): number

                      The zIndex of the displayObject.

                      If a container has the sortableChildren property set to true, children will be automatically sorted by zIndex value; a higher value will mean it will be moved towards the end of the array, and thus rendered on top of other display objects within the same container.

                      Returns number

                      PIXI.Container#sortableChildren

                    • set zIndex(value: number): void

                      Parameters

                      • value: number

                      Returns void

                    Methods

                    • Protected

                      Recalculates the content bounds of this object. This should be overriden to calculate the bounds of this specific object (not including children).

                      -

                      Returns void

                    • Recursively updates transform of all objects from the root to this one internal function for toLocal()

                      -

                      Returns void

                    • To be overridden by the subclasses.

                      +

                      Returns void

                    • Recursively updates transform of all objects from the root to this one internal function for toLocal()

                      +

                      Returns void

                    • To be overridden by the subclasses.

                      Parameters

                      • _renderer: Renderer

                        The renderer

                        -

                      Returns void

                    • Protected

                      Renders this object and its children with culling.

                      +

                    Returns void

                    • Protected

                      Renders this object and its children with culling.

                      Parameters

                      • renderer: Renderer

                        The renderer

                        -

                      Returns void

                    • Adds one or more children to the container.

                      +

                    Returns void

                    • Adds one or more children to the container.

                      Multiple items can be added like so: myContainer.addChild(thingOne, thingTwo, thingThree)

                      Type Parameters

                      • U extends DisplayObject[]

                      Parameters

                      • ...children: U

                        The DisplayObject(s) to add to the container

                        -

                      Returns U[0]

                        +

                    Returns U[0]

                    • The first child that was added.
                    -
                    • Adds a child to the container at a specified index. If the index is out of bounds an error will be thrown

                      +
                    • Adds a child to the container at a specified index. If the index is out of bounds an error will be thrown

                      Type Parameters

                      • U extends DisplayObject

                      Parameters

                      • child: U

                        The child to add

                        -
                      • index: number

                        The index to place the child in

                        -

                      Returns U

                      The child that was added.

                      -
                    • Parameters

                      • event: string | symbol
                      • fn: ListenerFn
                      • Optionalcontext: any

                      Returns this

                    • Recalculates the bounds of the container.

                      +
                    • index: number

                      The index to place the child in

                      +

                    Returns U

                    The child that was added.

                    +
                    • Parameters

                      • event: string | symbol
                      • fn: ListenerFn
                      • Optionalcontext: any

                      Returns this

                    • Recalculates the bounds of the container.

                      This implementation will automatically fit the children's bounds into the calculation. Each child's bounds is limited to its mask's bounds or filterArea, if any is applied.

                      -

                      Returns void

                    • 名前を指定してパーツの再生するインスタンスアニメを変更します。 +

                      Returns void

                    • 名前を指定してパーツの再生するインスタンスアニメを変更します。 指定したパーツがインスタンスパーツでない場合、falseを返します. インスタンスパーツ名はディフォルトでは「ssae名:モーション名」とつけられています。 再生するアニメの名前は アニメパック名 と アニメ名 で指定してください。 @@ -242,33 +242,33 @@ インスタンスパーツが再生するアニメを変更します

                      インスタンスキーは

                      Parameters

                      • partName: string

                        SS上のパーツ名

                        -
                      • animePackName: string

                        参照するアニメパック名

                        -
                      • animeName: string

                        参照するアニメ名

                        -
                      • overWrite: boolean

                        インスタンスキーの上書きフラグ

                        -
                      • keyParam: SS6PlayerInstanceKeyParam = null

                        インスタンスキー

                        -

                      Returns boolean

                    • Removes all internal references and listeners as well as removes children from the display list. +

                    • animePackName: string

                      参照するアニメパック名

                      +
                    • animeName: string

                      参照するアニメ名

                      +
                    • overWrite: boolean

                      インスタンスキーの上書きフラグ

                      +
                    • keyParam: SS6PlayerInstanceKeyParam = null

                      インスタンスキー

                      +

                    Returns boolean

                    • Removes all internal references and listeners as well as removes children from the display list. Do not use a Container after calling destroy.

                      Parameters

                      • Optionaloptions: boolean | IDestroyOptions

                        Options parameter. A boolean will act as if all options have been set to that value

                        -
                        • boolean
                        • IDestroyOptions
                          • children

                            if set to true, all the children will have their destroy +

                            • boolean
                            • IDestroyOptions
                              • children

                                if set to true, all the children will have their destroy method called as well. 'options' will be passed on to those calls.

                              • texture

                                Only used for child Sprites if options.children is set to true Should it destroy the texture of the child sprite

                              • baseTexture

                                Only used for child Sprites if options.children is set to true Should it destroy the base texture of the child sprite

                                -

                      Returns void

                    • Pair method for enableTempParent

                      +

                    Returns void

                    • Pair method for enableTempParent

                      Parameters

                      • cacheParent: Container

                        Actual parent of element

                        -

                      Returns void

                    • Calls each of the listeners registered for a given event.

                      -

                      Parameters

                      • event: string | symbol
                      • ...args: any[]

                      Returns boolean

                    • Used in Renderer, cacheAsBitmap and other places where you call an updateTransform on root

                      +

                    Returns void

                    • Calls each of the listeners registered for a given event.

                      +

                      Parameters

                      • event: string | symbol
                      • ...args: any[]

                      Returns boolean

                    • Used in Renderer, cacheAsBitmap and other places where you call an updateTransform on root

                      const cacheParent = elem.enableTempParent();
                      elem.updateTransform();
                      elem.disableTempParent(cacheParent);

                      Returns Container

                      • current parent
                      -
                    • Return an array listing the events for which the emitter has registered +

                    • Return an array listing the events for which the emitter has registered listeners.

                      -

                      Returns (string | symbol)[]

                    • Calculates and returns the (world) bounds of the display object as a [Rectangle]PIXI.Rectangle.

                      +

                      Returns (string | symbol)[]

                    • Calculates and returns the (world) bounds of the display object as a [Rectangle]PIXI.Rectangle.

                      This method is expensive on containers with a large subtree (like the stage). This is because the bounds of a container depend on its children's bounds, which recursively causes all bounds in the subtree to be recalculated. The upside, however, is that calling getBounds once on a container will indeed update @@ -292,51 +292,51 @@

                      Parameters

                      • OptionalskipUpdate: boolean

                        Setting to true will stop the transforms of the scene graph from being updated. This means the calculation returned MAY be out of date BUT will give you a nice performance boost.

                        -
                      • Optionalrect: Rectangle

                        Optional rectangle to store the result of the bounds calculation.

                        -

                      Returns Rectangle

                        +
                    • Optionalrect: Rectangle

                      Optional rectangle to store the result of the bounds calculation.

                      +

                    Returns Rectangle

                    • The minimum axis-aligned rectangle in world space that fits around this object.
                    -
                    • Returns the child at the specified index

                      +
                    • Returns the child at the specified index

                      Parameters

                      • index: number

                        The index to get the child at

                        -

                      Returns DisplayObject

                        +

                    Returns DisplayObject

                    • The child at the given index, if any.
                    -
                    • Type Parameters

                      • T extends DisplayObject = DisplayObject

                      Parameters

                      • name: string
                      • Optionaldeep: boolean

                      Returns T

                    • Returns the index position of a child DisplayObject instance

                      +
                    • Type Parameters

                      • T extends DisplayObject = DisplayObject

                      Parameters

                      • name: string
                      • Optionaldeep: boolean

                      Returns T

                    • Returns the index position of a child DisplayObject instance

                      Parameters

                      • child: DisplayObject

                        The DisplayObject instance to identify

                        -

                      Returns number

                        +

                    Returns number

                    • The index position of the child display object to identify
                    -
                    • Retrieves the local bounds of the displayObject as a rectangle object.

                      +
                    • Retrieves the local bounds of the displayObject as a rectangle object.

                      Calling getLocalBounds may invalidate the _bounds of the whole subtree below. If using it inside a render() call, it is advised to call getBounds() immediately after to recalculate the world bounds of the subtree.

                      Parameters

                      • Optionalrect: Rectangle

                        Optional rectangle to store the result of the bounds calculation.

                        -
                      • OptionalskipChildrenUpdate: boolean

                        Setting to true will stop re-calculation of children transforms, +

                      • OptionalskipChildrenUpdate: boolean

                        Setting to true will stop re-calculation of children transforms, it was default behaviour of pixi 4.0-5.2 and caused many problems to users.

                        -

                      Returns Rectangle

                        +

                    Returns Rectangle

                    • The rectangular bounding area.
                    -
                    • Return the number of listeners listening to a given event.

                      -

                      Parameters

                      • event: string | symbol

                      Returns number

                    • Return the listeners registered for a given event.

                      -

                      Parameters

                      • event: string | symbol

                      Returns ListenerFn[]

                    • Parameters

                      • event: string | symbol
                      • Optionalfn: ListenerFn
                      • Optionalcontext: any
                      • Optionalonce: boolean

                      Returns this

                    • Add a listener for a given event.

                      -

                      Parameters

                      • event: string | symbol
                      • fn: ListenerFn
                      • Optionalcontext: any

                      Returns this

                    • Add a one-time listener for a given event.

                      -

                      Parameters

                      • event: string | symbol
                      • fn: ListenerFn
                      • Optionalcontext: any

                      Returns this

                    • Overridable method that can be used by Container subclasses whenever the children array is modified.

                      -

                      Parameters

                      • Optional_length: number

                      Returns void

                    • Remove all listeners, or those of the specified event.

                      -

                      Parameters

                      • Optionalevent: string | symbol

                      Returns this

                    • Removes one or more children from the container.

                      +
                    • Return the number of listeners listening to a given event.

                      +

                      Parameters

                      • event: string | symbol

                      Returns number

                    • Return the listeners registered for a given event.

                      +

                      Parameters

                      • event: string | symbol

                      Returns ListenerFn[]

                    • Parameters

                      • event: string | symbol
                      • Optionalfn: ListenerFn
                      • Optionalcontext: any
                      • Optionalonce: boolean

                      Returns this

                    • Add a listener for a given event.

                      +

                      Parameters

                      • event: string | symbol
                      • fn: ListenerFn
                      • Optionalcontext: any

                      Returns this

                    • Add a one-time listener for a given event.

                      +

                      Parameters

                      • event: string | symbol
                      • fn: ListenerFn
                      • Optionalcontext: any

                      Returns this

                    • Overridable method that can be used by Container subclasses whenever the children array is modified.

                      +

                      Parameters

                      • Optional_length: number

                      Returns void

                    • Remove all listeners, or those of the specified event.

                      +

                      Parameters

                      • Optionalevent: string | symbol

                      Returns this

                    • Removes one or more children from the container.

                      Type Parameters

                      • U extends DisplayObject[]

                      Parameters

                      • ...children: U

                        The DisplayObject(s) to remove

                        -

                      Returns U[0]

                      The first child that was removed.

                      -
                    • Removes a child from the specified index position.

                      +

                    Returns U[0]

                    The first child that was removed.

                    +
                    • Removes a child from the specified index position.

                      Parameters

                      • index: number

                        The index to get the child from

                        -

                      Returns DisplayObject

                      The child that was removed.

                      -
                    • Removes all children from this container that are within the begin and end indexes.

                      +

                    Returns DisplayObject

                    The child that was removed.

                    +
                    • Removes all children from this container that are within the begin and end indexes.

                      Parameters

                      • OptionalbeginIndex: number

                        The beginning position.

                        -
                      • OptionalendIndex: number

                        The ending position. Default value is size of the container.

                        -

                      Returns DisplayObject[]

                        +
                    • OptionalendIndex: number

                      The ending position. Default value is size of the container.

                      +

                    Returns DisplayObject[]

                    • List of removed children
                    -
                    • Remove the listeners of a given event.

                      -

                      Parameters

                      • event: string | symbol
                      • Optionalfn: ListenerFn
                      • Optionalcontext: any
                      • Optionalonce: boolean

                      Returns this

                    • Renders the object using the WebGL renderer.

                      +
                    • Remove the listeners of a given event.

                      +

                      Parameters

                      • event: string | symbol
                      • Optionalfn: ListenerFn
                      • Optionalcontext: any
                      • Optionalonce: boolean

                      Returns this

                    • Renders the object using the WebGL renderer.

                      The [_render]PIXI.Container#_render method is be overriden for rendering the contents of the container itself. This render method will invoke it, and also invoke the render methods of all children afterward.

                      @@ -354,77 +354,77 @@ filtering is applied on a container. This does, however, break batching and can affect performance when masking and filtering is applied extensively throughout the scene graph.

                      Parameters

                      • renderer: Renderer

                        The renderer

                        -

                      Returns void

                    • Render the object using the WebGL renderer and advanced features.

                      +

                    Returns void

                    • Render the object using the WebGL renderer and advanced features.

                      Parameters

                      • renderer: Renderer

                        The renderer

                        -

                      Returns void

                    • アニメーションの速度を設定する (deprecated この関数は削除される可能性があります)

                      +

                    Returns void

                    • アニメーションの速度を設定する (deprecated この関数は削除される可能性があります)

                      Parameters

                      • fps: number

                        アニメーション速度(frame per sec.)

                        -
                      • _skipEnabled: boolean = true

                        描画更新が間に合わないときにフレームをスキップするかどうか

                        -

                      Returns void

                    • アニメーション再生設定

                      +
                    • _skipEnabled: boolean = true

                      描画更新が間に合わないときにフレームをスキップするかどうか

                      +

                    Returns void

                    • アニメーション再生設定

                      Parameters

                      • _startframe: number = -1

                        開始フレーム番号(マイナス設定でデフォルト値を変更しない)

                        -
                      • _endframe: number = -1

                        終了フレーム番号(マイナス設定でデフォルト値を変更しない)

                        -
                      • _loops: number = -1

                        ループ回数(ゼロもしくはマイナス設定で無限ループ)

                        -

                      Returns void

                    • アニメーションの速度を設定する

                      +
                    • _endframe: number = -1

                      終了フレーム番号(マイナス設定でデフォルト値を変更しない)

                      +
                    • _loops: number = -1

                      ループ回数(ゼロもしくはマイナス設定で無限ループ)

                      +

                    Returns void

                    • アニメーションの速度を設定する

                      Parameters

                      • fpsRate: number

                        アニメーション速度(設定値に対する乗率)負数設定で逆再生

                        -
                      • _skipEnabled: boolean = true

                        描画更新が間に合わないときにフレームをスキップするかどうか

                        -

                      Returns void

                    • Changes the position of an existing child in the display object container

                      +
                    • _skipEnabled: boolean = true

                      描画更新が間に合わないときにフレームをスキップするかどうか

                      +

                    Returns void

                    • Changes the position of an existing child in the display object container

                      Parameters

                      • child: DisplayObject

                        The child DisplayObject instance for which you want to change the index number

                        -
                      • index: number

                        The resulting index number for the child display object

                        -

                      Returns void

                    • 1フレーム分のアニメーション描画

                      +
                    • index: number

                      The resulting index number for the child display object

                      +

                    Returns void

                    • 1フレーム分のアニメーション描画

                      Parameters

                      • frameNumber: number

                        フレーム番号

                        -
                      • ds: number = 0.0

                        delta step

                        -

                      Returns void

                    • Set the parent Container of this DisplayObject.

                      +
                    • ds: number = 0.0

                      delta step

                      +

                    Returns void

                    • Set the parent Container of this DisplayObject.

                      Parameters

                      • container: Container

                        The Container to add this DisplayObject to.

                        -

                      Returns Container

                        +

                    Returns Container

                    • The Container that this DisplayObject was added to.
                    -
                    • Convenience function to set the position, scale, skew and pivot at once.

                      +
                    • Convenience function to set the position, scale, skew and pivot at once.

                      Parameters

                      • Optionalx: number

                        The X position

                        -
                      • Optionaly: number

                        The Y position

                        -
                      • OptionalscaleX: number

                        The X scale value

                        -
                      • OptionalscaleY: number

                        The Y scale value

                        -
                      • Optionalrotation: number

                        The rotation

                        -
                      • OptionalskewX: number

                        The X skew value

                        -
                      • OptionalskewY: number

                        The Y skew value

                        -
                      • OptionalpivotX: number

                        The X pivot value

                        -
                      • OptionalpivotY: number

                        The Y pivot value

                        -

                      Returns this

                        +
                    • Optionaly: number

                      The Y position

                      +
                    • OptionalscaleX: number

                      The X scale value

                      +
                    • OptionalscaleY: number

                      The Y scale value

                      +
                    • Optionalrotation: number

                      The rotation

                      +
                    • OptionalskewX: number

                      The X skew value

                      +
                    • OptionalskewY: number

                      The Y skew value

                      +
                    • OptionalpivotX: number

                      The X pivot value

                      +
                    • OptionalpivotY: number

                      The Y pivot value

                      +

                    Returns this

                    • The DisplayObject instance
                    -
                    • Setup

                      +
                    • Setup

                      Parameters

                      • animePackName: string

                        The name of animePack(SSAE).

                        -
                      • animeName: string

                        The name of animation.

                        -

                      Returns void

                    • Sorts children by zIndex. Previous order is maintained for 2 children with the same zIndex.

                      -

                      Returns void

                    • Swaps the position of 2 Display Objects within this container.

                      +
                    • animeName: string

                      The name of animation.

                      +

                    Returns void

                    • Sorts children by zIndex. Previous order is maintained for 2 children with the same zIndex.

                      +

                      Returns void

                    • Swaps the position of 2 Display Objects within this container.

                      Parameters

                      • child: DisplayObject

                        First display object to swap

                        -
                      • child2: DisplayObject

                        Second display object to swap

                        -

                      Returns void

                    • エラー処理

                      +
                    • child2: DisplayObject

                      Second display object to swap

                      +

                    Returns void

                    • Calculates the global position of the display object.

                      +

                    Returns void

                    • Calculates the global position of the display object.

                      Type Parameters

                      • P extends IPointData = Point

                      Parameters

                      • position: IPointData

                        The world origin to calculate from.

                        -
                      • Optionalpoint: P

                        A Point object in which to store the value, optional +

                      • Optionalpoint: P

                        A Point object in which to store the value, optional (otherwise will create a new Point).

                        -
                      • OptionalskipUpdate: boolean

                        Should we skip the update transform.

                        -

                      Returns P

                        +
                    • OptionalskipUpdate: boolean

                      Should we skip the update transform.

                      +

                    Returns P

                    • A point object representing the position of this object.
                    -
                    • Calculates the local position of the display object relative to another point.

                      +
                    • Calculates the local position of the display object relative to another point.

                      Type Parameters

                      • P extends IPointData = Point

                      Parameters

                      • position: IPointData

                        The world origin to calculate from.

                        -
                      • Optionalfrom: DisplayObject

                        The DisplayObject to calculate the global position from.

                        -
                      • Optionalpoint: P

                        A Point object in which to store the value, optional +

                      • Optionalfrom: DisplayObject

                        The DisplayObject to calculate the global position from.

                        +
                      • Optionalpoint: P

                        A Point object in which to store the value, optional (otherwise will create a new Point).

                        -
                      • OptionalskipUpdate: boolean

                        Should we skip the update transform

                        -

                      Returns P

                        +
                    • OptionalskipUpdate: boolean

                      Should we skip the update transform

                      +

                    Returns P

                    • A point object representing the position of this object
                    -
                    • Update is called PIXI.ticker

                      +
                    • Update is called PIXI.ticker

                      Parameters

                      • delta: number

                        expected 1

                        -
                      • rewindAfterReachingEndFrame: boolean = true

                      Returns void

                    • Updates the transform on all children of this container for rendering.

                      -

                      Returns void

                    • Mixes all enumerable properties and methods from a source object to DisplayObject.

                      +
                    • rewindAfterReachingEndFrame: boolean = true

                    Returns void

                    • Updates the transform on all children of this container for rendering.

                      +

                      Returns void

                    • Mixes all enumerable properties and methods from a source object to DisplayObject.

                      Parameters

                      • source: Dict<any>

                        The source of properties and methods to mix in.

                        -

                      Returns void

                    +

                    Returns void

                    diff --git a/docs/ss6player_pixi6_api/classes/SS6PlayerInstanceKeyParam.html b/docs/ss6player_pixi6_api/classes/SS6PlayerInstanceKeyParam.html index 1fc4e7b1..a8c8f145 100644 --- a/docs/ss6player_pixi6_api/classes/SS6PlayerInstanceKeyParam.html +++ b/docs/ss6player_pixi6_api/classes/SS6PlayerInstanceKeyParam.html @@ -1,5 +1,5 @@ SS6PlayerInstanceKeyParam | ss6player-pixi6
                    ss6player-pixi6
                      Preparing search index...

                      Class SS6PlayerInstanceKeyParam

                      インスタンス差し替え用のキーパラメーター

                      -
                      Index

                      Constructors

                      Index

                      Constructors

                      Properties

                      Constructors

                      Properties

                      independent: boolean = false
                      infinity: boolean = false
                      pingpong: boolean = false
                      refEndframe: number = 0
                      refloopNum: number = 0
                      refSpeed: number = 1.0
                      refStartframe: number = 0
                      reverse: boolean = false
                      +

                      Constructors

                      Properties

                      independent: boolean = false
                      infinity: boolean = false
                      pingpong: boolean = false
                      refEndframe: number = 0
                      refloopNum: number = 0
                      refSpeed: number = 1.0
                      refStartframe: number = 0
                      reverse: boolean = false
                      diff --git a/docs/ss6player_pixi6_api/classes/SS6Project.html b/docs/ss6player_pixi6_api/classes/SS6Project.html index e997c288..4cf463f9 100644 --- a/docs/ss6player_pixi6_api/classes/SS6Project.html +++ b/docs/ss6player_pixi6_api/classes/SS6Project.html @@ -1,4 +1,4 @@ -SS6Project | ss6player-pixi6
                      ss6player-pixi6
                        Preparing search index...

                        Class SS6Project

                        Index

                        Constructors

                        constructor +SS6Project | ss6player-pixi6
                        ss6player-pixi6
                          Preparing search index...

                          Class SS6Project

                          Index

                          Constructors

                          Properties

                          fbObj onComplete rootPath @@ -10,10 +10,10 @@ getTexture

                          Constructors

                          • SS6Project (used for several SS6Player(s))

                            Parameters

                            • ssfbPath: string

                              ssfb file path

                              -
                            • OptionalonComplete: onCompleteCallback

                              result callback

                              -

                            Returns SS6Project

                          • SS6Project (used for several SS6Player(s))

                            +
                          • OptionalonComplete: onCompleteCallback

                            result callback

                            +

                          Returns SS6Project

                        • SS6Project (used for several SS6Player(s))

                          Parameters

                          • ssfbName: string

                            ssfb file name

                            -
                          • bytes: Uint8Array

                            ssfb file data

                            -
                          • imageBinaryMap: { [key: string]: Uint8Array<ArrayBufferLike> }

                            Image file data

                            -
                          • OptionalonComplete: onCompleteCallback

                            result callback

                            -

                          Returns SS6Project

                        • Properties

                          fbObj: ProjectData
                          onComplete: onCompleteCallback
                          rootPath: string
                          ssfbFile: string
                          ssfbPath: string
                          status: RESOURCE_PROGRESS

                          Methods

                          +
                        • bytes: Uint8Array

                          ssfb file data

                          +
                        • imageBinaryMap: { [key: string]: Uint8Array<ArrayBufferLike> }

                          Image file data

                          +
                        • OptionalonComplete: onCompleteCallback

                          result callback

                          +
                        • Returns SS6Project

                          Properties

                          fbObj: ProjectData
                          onComplete: onCompleteCallback
                          rootPath: string
                          ssfbFile: string
                          ssfbPath: string
                          status: RESOURCE_PROGRESS

                          Methods

                          diff --git a/docs/ss6player_pixi6_api/index.html b/docs/ss6player_pixi6_api/index.html index 15ae9447..7e4d398f 100644 --- a/docs/ss6player_pixi6_api/index.html +++ b/docs/ss6player_pixi6_api/index.html @@ -1,32 +1,46 @@ -ss6player-pixi6
                          ss6player-pixi6
                            Preparing search index...

                            ss6player-pixi6

                            SS6Player for pixi.js v6

                            OPTPiX SpriteStudio 7.0OPTPiX SpriteStudio 6 で制作したアニメーションを pixi.js v6 で再生するライブラリです。

                            +ss6player-pixi6
                            ss6player-pixi6
                              Preparing search index...

                              ss6player-pixi6

                              SS6Player for pixi.js v6

                              +

                              OPTPiX SpriteStudio 7.0OPTPiX SpriteStudio 6 で制作したアニメーションを pixi.js v6 で再生するライブラリです。

                              (ss6player-rpgmakermz のサポート用に pixi v6 向け ss6player の実装を残しています。pixi.js 最新版で ss6player を利用する際は ss6player-pixi を利用してください。)

                              -

                              リリース最新版のライブラリソースは こちら(minified) になります。

                              -

                              リリース最新版のデモは こちら になります。

                              -

                              ss6player-pixi6 のライセンスは LISENCE となります。

                              + +

                              リリース最新版のライブラリソースは こちら(minified) になります。

                              + +

                              リリース最新版のデモは こちら になります。

                              + +

                              ss6player-pixi6 のライセンスは LISENCE となります。

                              ss6player-pixi6 は依存ライブラリの FlatBuffersssfblibss6player-lib をバンドルしています。 ForWeb のコンポーネントが依存しているサードパーティライブラリのライセンスは ThirdPartyLicenses.md を参照してください。

                              -

                              SpriteStudio 6 のプロジェクトファイル sspj からアニメーションデータファイル ssfb ファイルをコンバートします。 コンバートには Ss6Converter を利用します。

                              + +

                              SpriteStudio 6 のプロジェクトファイル sspj からアニメーションデータファイル ssfb ファイルをコンバートします。 コンバートには Ss6Converter を利用します。

                              Ss6Converter は SpriteStudio6-SDK に同封するツールです。利用方法に関してはこちらを参照してください

                              -

                              ss6player-pixi6 の API リファレンスはこちらです。

                              -

                              Player ディレクトリの index.htmlsample.js を参考にしてください。

                              + + +

                              ss6player-pixi6 の API リファレンスはこちらです。

                              + +

                              Player ディレクトリの index.htmlsample.js を参考にしてください。

                              デモ ページを閲覧するか、あるいはローカル環境で動作確認ができます。

                              -

                              For Developer

                              ライブラリを開発する方、あるいは開発版のライブラリの動作を確認したい方向けです。

                              -

                              ソースの取得方法やビルドに必要な npm のインストール手順は wiki を参照してください。

                              -

                              SS6PlayerForWeb/ ディレクトリ上で下記コマンドを実行すると、 packages/ 以下の全ライブラリをビルドします。

                              +

                              For Developer

                              +

                              ライブラリを開発する方、あるいは開発版のライブラリの動作を確認したい方向けです。

                              + +

                              ソースの取得方法やビルドに必要な npm のインストール手順は wiki を参照してください。

                              + +

                              SS6PlayerForWeb/ ディレクトリ上で下記コマンドを実行すると、 packages/ 以下の全ライブラリをビルドします。

                              cd SS6PlayerForWeb
                              npm i
                              npm run build

                              ビルドが成功すると ss6player-pixi6.umd.jsss6player-pixi6.es6.jsSS6PlayerForWeb/packages/ss6player-pixi6/dist ディレクトリ以下に生成されます。

                              -

                              全ビルド実行後は SS6PlayerForWeb/packages/ss6player-pixi6 ディレクトリ上で ss6player-pixi6 の単独ビルドが可能になります。

                              + +

                              全ビルド実行後は SS6PlayerForWeb/packages/ss6player-pixi6 ディレクトリ上で ss6player-pixi6 の単独ビルドが可能になります。

                              cd SS6PlayerForWeb/packages/ss6player-pixi6
                              npm run build
                              -

                              全ビルド後、SS6PlayerForWeb/packages/ss6player-pixi6/ ディレクトリ上で下記コマンドを実行してください。

                              + +

                              全ビルド後、SS6PlayerForWeb/packages/ss6player-pixi6/ ディレクトリ上で下記コマンドを実行してください。

                              ローカル環境で http サーバが起動し、ブラウザ上で Player ディレクトリのサンプルを表示します。

                              cd SS6PlayerForWeb/packages/ss6player-pixi6
                              npm run view
                              -

                              SS6PlayerForWeb/packages/ss6player-pixi6 ディレクトリ上で npm run start を実行すると、 src/ ディレクトリのソースファイルが変更されると自動的に単独ビルドが走るようになります。

                              + +

                              SS6PlayerForWeb/packages/ss6player-pixi6 ディレクトリ上で npm run start を実行すると、 src/ ディレクトリのソースファイルが変更されると自動的に単独ビルドが走るようになります。

                              ローカル環境での動作確認 と併用するとスムーズに動作確認が行なえます。

                              cd SS6PlayerForWeb/packages/ss6player-pixi6
                              npm run start
                              diff --git a/docs/ss6player_pixi_api/assets/icons.js b/docs/ss6player_pixi_api/assets/icons.js index 58882d76..3ae8f55e 100644 --- a/docs/ss6player_pixi_api/assets/icons.js +++ b/docs/ss6player_pixi_api/assets/icons.js @@ -3,7 +3,7 @@ function addIcons() { if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons); const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg")); - svg.innerHTML = `MMNEPVFCICPMFPCPTTAAATR`; + svg.innerHTML = `MMNEPVFCICPMFPCPTTAAATR`; svg.style.display = "none"; if (location.protocol === "file:") updateUseElements(); } diff --git a/docs/ss6player_pixi_api/assets/icons.svg b/docs/ss6player_pixi_api/assets/icons.svg index 50ad5799..10db10be 100644 --- a/docs/ss6player_pixi_api/assets/icons.svg +++ b/docs/ss6player_pixi_api/assets/icons.svg @@ -1 +1 @@ -MMNEPVFCICPMFPCPTTAAATR \ No newline at end of file +MMNEPVFCICPMFPCPTTAAATR \ No newline at end of file diff --git a/docs/ss6player_pixi_api/assets/main.js b/docs/ss6player_pixi_api/assets/main.js index 19bbb7a7..64b80ab2 100644 --- a/docs/ss6player_pixi_api/assets/main.js +++ b/docs/ss6player_pixi_api/assets/main.js @@ -1,7 +1,7 @@ "use strict"; window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings.","hierarchy_expand":"Expand","hierarchy_collapse":"Collapse","folder":"Folder","search_index_not_available":"The search index is not available","search_no_results_found_for_0":"No results found for {0}","kind_1":"Project","kind_2":"Module","kind_4":"Namespace","kind_8":"Enumeration","kind_16":"Enumeration Member","kind_32":"Variable","kind_64":"Function","kind_128":"Class","kind_256":"Interface","kind_512":"Constructor","kind_1024":"Property","kind_2048":"Method","kind_4096":"Call Signature","kind_8192":"Index Signature","kind_16384":"Constructor Signature","kind_32768":"Parameter","kind_65536":"Type Literal","kind_131072":"Type Parameter","kind_262144":"Accessor","kind_524288":"Get Signature","kind_1048576":"Set Signature","kind_2097152":"Type Alias","kind_4194304":"Reference","kind_8388608":"Document"}; -"use strict";(()=>{var Ke=Object.create;var he=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Xe=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var et=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var tt=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ze(e))!Ye.call(t,i)&&i!==n&&he(t,i,{get:()=>e[i],enumerable:!(r=Ge(e,i))||r.enumerable});return t};var nt=(t,e,n)=>(n=t!=null?Ke(Xe(t)):{},tt(e||!t||!t.__esModule?he(n,"default",{value:t,enumerable:!0}):n,t));var ye=et((me,ge)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,l],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(oc?d+=2:a==c&&(n+=r[l+1]*i[d+1],l+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}if(s.str.length==0&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),f=s.str.charAt(1),p;f in s.node.edges?p=s.node.edges[f]:(p=new t.TokenSet,s.node.edges[f]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),c=0;c1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof me=="object"?ge.exports=n():e.lunr=n()}(this,function(){return t})})()});var M,G={getItem(){return null},setItem(){}},K;try{K=localStorage,M=K}catch{K=G,M=G}var S={getItem:t=>M.getItem(t),setItem:(t,e)=>M.setItem(t,e),disableWritingLocalStorage(){M=G},disable(){localStorage.clear(),M=G},enable(){M=K}};window.TypeDoc||={disableWritingLocalStorage(){S.disableWritingLocalStorage()},disableLocalStorage:()=>{S.disable()},enableLocalStorage:()=>{S.enable()}};window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",search_index_not_available:"The search index is not available",search_no_results_found_for_0:"No results found for {0}",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var pe=[];function X(t,e){pe.push({selector:e,constructor:t})}var Z=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){pe.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!rt(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function rt(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var fe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var Ie=nt(ye(),1);async function R(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}var Y="closing",ae="tsd-overlay";function it(){let t=Math.abs(window.innerWidth-document.documentElement.clientWidth);document.body.style.overflow="hidden",document.body.style.paddingRight=`${t}px`}function st(){document.body.style.removeProperty("overflow"),document.body.style.removeProperty("padding-right")}function xe(t,e){t.addEventListener("animationend",()=>{t.classList.contains(Y)&&(t.classList.remove(Y),document.getElementById(ae)?.remove(),t.close(),st())}),t.addEventListener("cancel",n=>{n.preventDefault(),ve(t)}),e?.closeOnClick&&document.addEventListener("click",n=>{t.open&&!t.contains(n.target)&&ve(t)},!0)}function Ee(t){if(t.open)return;let e=document.createElement("div");e.id=ae,document.body.appendChild(e),t.showModal(),it()}function ve(t){if(!t.open)return;document.getElementById(ae)?.classList.add(Y),t.classList.add(Y)}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var be=document.head.appendChild(document.createElement("style"));be.dataset.for="filters";var le={};function we(t){for(let e of t.split(/\s+/))if(le.hasOwnProperty(e)&&!le[e])return!0;return!1}var ee=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),be.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +"use strict";(()=>{var Ke=Object.create;var he=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Xe=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var et=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var tt=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ze(e))!Ye.call(t,i)&&i!==n&&he(t,i,{get:()=>e[i],enumerable:!(r=Ge(e,i))||r.enumerable});return t};var nt=(t,e,n)=>(n=t!=null?Ke(Xe(t)):{},tt(e||!t||!t.__esModule?he(n,"default",{value:t,enumerable:!0}):n,t));var ye=et((me,ge)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=(function(e){return function(n){e.console&&console.warn&&console.warn(n)}})(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,l],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(oc?d+=2:a==c&&(n+=r[l+1]*i[d+1],l+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}if(s.str.length==0&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),f=s.str.charAt(1),p;f in s.node.edges?p=s.node.edges[f]:(p=new t.TokenSet,s.node.edges[f]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),c=0;c1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},(function(e,n){typeof define=="function"&&define.amd?define(n):typeof me=="object"?ge.exports=n():e.lunr=n()})(this,function(){return t})})()});var M,G={getItem(){return null},setItem(){}},K;try{K=localStorage,M=K}catch{K=G,M=G}var S={getItem:t=>M.getItem(t),setItem:(t,e)=>M.setItem(t,e),disableWritingLocalStorage(){M=G},disable(){localStorage.clear(),M=G},enable(){M=K}};window.TypeDoc||={disableWritingLocalStorage(){S.disableWritingLocalStorage()},disableLocalStorage:()=>{S.disable()},enableLocalStorage:()=>{S.enable()}};window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",search_index_not_available:"The search index is not available",search_no_results_found_for_0:"No results found for {0}",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var pe=[];function X(t,e){pe.push({selector:e,constructor:t})}var Z=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){pe.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!rt(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function rt(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var fe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var Ie=nt(ye(),1);async function R(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}var Y="closing",ae="tsd-overlay";function it(){let t=Math.abs(window.innerWidth-document.documentElement.clientWidth);document.body.style.overflow="hidden",document.body.style.paddingRight=`${t}px`}function st(){document.body.style.removeProperty("overflow"),document.body.style.removeProperty("padding-right")}function xe(t,e){t.addEventListener("animationend",()=>{t.classList.contains(Y)&&(t.classList.remove(Y),document.getElementById(ae)?.remove(),t.close(),st())}),t.addEventListener("cancel",n=>{n.preventDefault(),ve(t)}),e?.closeOnClick&&document.addEventListener("click",n=>{t.open&&!t.contains(n.target)&&ve(t)},!0)}function Ee(t){if(t.open)return;let e=document.createElement("div");e.id=ae,document.body.appendChild(e),t.showModal(),it()}function ve(t){if(!t.open)return;document.getElementById(ae)?.classList.add(Y),t.classList.add(Y)}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var be=document.head.appendChild(document.createElement("style"));be.dataset.for="filters";var le={};function we(t){for(let e of t.split(/\s+/))if(le.hasOwnProperty(e)&&!le[e])return!0;return!1}var ee=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),be.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } `,this.app.updateIndexVisibility()}fromLocalStorage(){let e=S.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){S.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),le[`tsd-is-${this.el.name}`]=this.value,this.app.filterChanged(),this.app.updateIndexVisibility()}};var Le=0;async function Se(t,e){if(!window.searchData)return;let n=await R(window.searchData);t.data=n,t.index=Ie.Index.load(n.index),e.innerHTML=""}function _e(){let t=document.getElementById("tsd-search-trigger"),e=document.getElementById("tsd-search"),n=document.getElementById("tsd-search-input"),r=document.getElementById("tsd-search-results"),i=document.getElementById("tsd-search-script"),s=document.getElementById("tsd-search-status");if(!(t&&e&&n&&r&&i&&s))throw new Error("Search controls missing");let o={base:document.documentElement.dataset.base};o.base.endsWith("/")||(o.base+="/"),i.addEventListener("error",()=>{let a=window.translations.search_index_not_available;Pe(s,a)}),i.addEventListener("load",()=>{Se(o,s)}),Se(o,s),ot({trigger:t,searchEl:e,results:r,field:n,status:s},o)}function ot(t,e){let{field:n,results:r,searchEl:i,status:s,trigger:o}=t;xe(i,{closeOnClick:!0});function a(){Ee(i),n.setSelectionRange(0,n.value.length)}o.addEventListener("click",a),n.addEventListener("input",fe(()=>{at(r,n,s,e)},200)),n.addEventListener("keydown",l=>{if(r.childElementCount===0||l.ctrlKey||l.metaKey||l.altKey)return;let d=n.getAttribute("aria-activedescendant"),f=d?document.getElementById(d):null;if(f){let p=!1,v=!1;switch(l.key){case"Home":case"End":case"ArrowLeft":case"ArrowRight":v=!0;break;case"ArrowDown":case"ArrowUp":p=l.shiftKey;break}(p||v)&&ke(n)}if(!l.shiftKey)switch(l.key){case"Enter":f?.querySelector("a")?.click();break;case"ArrowUp":Te(r,n,f,-1),l.preventDefault();break;case"ArrowDown":Te(r,n,f,1),l.preventDefault();break}});function c(){ke(n)}n.addEventListener("change",c),n.addEventListener("blur",c),n.addEventListener("click",c),document.body.addEventListener("keydown",l=>{if(l.altKey||l.metaKey||l.shiftKey)return;let d=l.ctrlKey&&l.key==="k",f=!l.ctrlKey&&!ut()&&l.key==="/";(d||f)&&(l.preventDefault(),a())})}function at(t,e,n,r){if(!r.index||!r.data)return;t.innerHTML="",n.innerHTML="",Le+=1;let i=e.value.trim(),s;if(i){let a=i.split(" ").map(c=>c.length?`*${c}*`:"").join(" ");s=r.index.search(a).filter(({ref:c})=>{let l=r.data.rows[Number(c)].classes;return!l||!we(l)})}else s=[];if(s.length===0&&i){let a=window.translations.search_no_results_found_for_0.replace("{0}",` "${te(i)}" `);Pe(n,a);return}for(let a=0;ac.score-a.score);let o=Math.min(10,s.length);for(let a=0;a`,f=Ce(c.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(f+=` (score: ${s[a].score.toFixed(2)})`),c.parent&&(f=` ${Ce(c.parent,i)}.${f}`);let p=document.createElement("li");p.id=`tsd-search:${Le}-${a}`,p.role="option",p.ariaSelected="false",p.classList.value=c.classes??"";let v=document.createElement("a");v.tabIndex=-1,v.href=r.base+c.url,v.innerHTML=d+`${f}`,p.append(v),t.appendChild(p)}}function Te(t,e,n,r){let i;if(r===1?i=n?.nextElementSibling||t.firstElementChild:i=n?.previousElementSibling||t.lastElementChild,i!==n){if(!i||i.role!=="option"){console.error("Option missing");return}i.ariaSelected="true",i.scrollIntoView({behavior:"smooth",block:"nearest"}),e.setAttribute("aria-activedescendant",i.id),n?.setAttribute("aria-selected","false")}}function ke(t){let e=t.getAttribute("aria-activedescendant");(e?document.getElementById(e):null)?.setAttribute("aria-selected","false"),t.setAttribute("aria-activedescendant","")}function Ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(te(t.substring(s,o)),`${te(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(te(t.substring(s))),i.join("")}var lt={"&":"&","<":"<",">":">","'":"'",'"':"""};function te(t){return t.replace(/[&<>"'"]/g,e=>lt[e])}function Pe(t,e){t.innerHTML=e?`
                              ${e}
                              `:""}var ct=["button","checkbox","file","hidden","image","radio","range","reset","submit"];function ut(){let t=document.activeElement;return t?t.isContentEditable||t.tagName==="TEXTAREA"||t.tagName==="SEARCH"?!0:t.tagName==="INPUT"&&!ct.includes(t.type):!1}var D="mousedown",Me="mousemove",$="mouseup",ne={x:0,y:0},Qe=!1,ce=!1,dt=!1,F=!1,Oe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(Oe?"is-mobile":"not-mobile");Oe&&"ontouchstart"in document.documentElement&&(dt=!0,D="touchstart",Me="touchmove",$="touchend");document.addEventListener(D,t=>{ce=!0,F=!1;let e=D=="touchstart"?t.targetTouches[0]:t;ne.y=e.pageY||0,ne.x=e.pageX||0});document.addEventListener(Me,t=>{if(ce&&!F){let e=D=="touchstart"?t.targetTouches[0]:t,n=ne.x-(e.pageX||0),r=ne.y-(e.pageY||0);F=Math.sqrt(n*n+r*r)>10}});document.addEventListener($,()=>{ce=!1});document.addEventListener("click",t=>{Qe&&(t.preventDefault(),t.stopImmediatePropagation(),Qe=!1)});var re=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener($,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(D,n=>this.onDocumentPointerDown(n)),document.addEventListener($,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){F||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!F&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var ue=new Map,de=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener("toggle",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;S.setItem(this.key,e.toString())}},ie=class extends I{constructor(e){super(e);let n=this.el.querySelector("summary"),r=n.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`,s;if(ue.has(i))s=ue.get(i);else{let o=S.getItem(i),a=o?o==="true":this.el.open;s=new de(i,a),ue.set(i,s)}s.add(this.el)}};function He(t){let e=S.getItem("tsd-theme")||"os";t.value=e,Ae(e),t.addEventListener("change",()=>{S.setItem("tsd-theme",t.value),Ae(t.value)})}function Ae(t){document.documentElement.dataset.theme=t}var se;function Ne(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Re),Re())}async function Re(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let e=await R(window.navigationData);se=document.documentElement.dataset.base,se.endsWith("/")||(se+="/"),t.innerHTML="";for(let n of e)Be(n,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Be(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',De(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let c=a.appendChild(document.createElement("ul"));c.className="tsd-nested-navigation";for(let l of t.children)Be(l,c,i)}else De(t,r,t.class)}function De(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));if(r.href=se+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&(r.classList.add("current"),r.ariaCurrent="page"),t.kind){let i=window.translations[`kind_${t.kind}`].replaceAll('"',""");r.innerHTML=``}r.appendChild(Fe(t.text,document.createElement("span")))}else{let r=e.appendChild(document.createElement("span")),i=window.translations.folder.replaceAll('"',""");r.innerHTML=``,r.appendChild(Fe(t.text,document.createElement("span")))}}function Fe(t,e){let n=t.split(/(?<=[^A-Z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|(?<=[_-])(?=[^_-])/);for(let r=0;r{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!="LI";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!=="true"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(".tsd-full-hierarchy [data-refl]")){let i=r.querySelector("ul");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll("[id]").forEach(s=>{s.removeAttribute("id")}),i.querySelectorAll("[data-dropdown]").forEach(s=>{s.dataset.dropdown="false"});for(let s of document.querySelectorAll(`[data-refl="${r}"]`)){let o=gt(),a=s.querySelector("ul");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function pt(){let t=document.getElementById("tsd-hierarchy-script");t&&(t.addEventListener("load",Ve),Ve())}async function Ve(){let t=document.querySelector(".tsd-panel.tsd-hierarchy:has(h4 a)");if(!t||!window.hierarchyData)return;let e=+t.dataset.refl,n=await R(window.hierarchyData),r=t.querySelector("ul"),i=document.createElement("ul");if(i.classList.add("tsd-hierarchy"),ft(i,n,e),r.querySelectorAll("li").length==i.querySelectorAll("li").length)return;let s=document.createElement("span");s.classList.add("tsd-hierarchy-toggle"),s.textContent=window.translations.hierarchy_expand,t.querySelector("h4 a")?.insertAdjacentElement("afterend",s),s.insertAdjacentText("beforebegin",", "),s.addEventListener("click",()=>{s.textContent===window.translations.hierarchy_expand?(r.insertAdjacentElement("afterend",i),r.remove(),s.textContent=window.translations.hierarchy_collapse):(i.insertAdjacentElement("afterend",r),i.remove(),s.textContent=window.translations.hierarchy_expand)})}function ft(t,e,n){let r=e.roots.filter(i=>mt(e,i,n));for(let i of r)t.appendChild(je(e,i,n))}function je(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement("li");if(s.classList.add("tsd-hierarchy-item"),e===n){let o=s.appendChild(document.createElement("span"));o.textContent=i.name,o.classList.add("tsd-hierarchy-target")}else{for(let a of i.uniqueNameParents||[]){let c=t.reflections[a],l=s.appendChild(document.createElement("a"));l.textContent=c.name,l.href=oe+c.url,l.className=c.class+" tsd-signature-type",s.append(document.createTextNode("."))}let o=s.appendChild(document.createElement("a"));o.textContent=t.reflections[e].name,o.href=oe+i.url,o.className=i.class+" tsd-signature-type"}if(i.children){let o=s.appendChild(document.createElement("ul"));o.classList.add("tsd-hierarchy");for(let a of i.children){let c=je(t,a,n,r);c&&o.appendChild(c)}}return r.delete(e),s}function mt(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function gt(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width","20"),t.setAttribute("height","20"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.innerHTML='',t}X(re,"a[data-toggle]");X(ie,".tsd-accordion");X(ee,".tsd-filter-item input[type=checkbox]");var qe=document.getElementById("tsd-theme");qe&&He(qe);var yt=new Z;Object.defineProperty(window,"app",{value:yt});_e();Ne();$e();"virtualKeyboard"in navigator&&(navigator.virtualKeyboard.overlaysContent=!0);})(); /*! Bundled license information: diff --git a/docs/ss6player_pixi_api/assets/style.css b/docs/ss6player_pixi_api/assets/style.css index 5ba5a2a9..44328e99 100644 --- a/docs/ss6player_pixi_api/assets/style.css +++ b/docs/ss6player_pixi_api/assets/style.css @@ -1595,9 +1595,9 @@ .container-main { grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax( - 0, - 20rem - ); + 0, + 20rem + ); grid-template-areas: "sidebar content toc"; } diff --git a/docs/ss6player_pixi_api/classes/SS6Player.html b/docs/ss6player_pixi_api/classes/SS6Player.html index a0595c39..99bc76cf 100644 --- a/docs/ss6player_pixi_api/classes/SS6Player.html +++ b/docs/ss6player_pixi_api/classes/SS6Player.html @@ -1,4 +1,4 @@ -SS6Player | ss6player-pixi
                              ss6player-pixi
                                Preparing search index...

                                Class SS6Player

                                Hierarchy

                                • Container
                                  • SS6Player
                                Index

                                Constructors

                                constructor +SS6Player | ss6player-pixi
                                ss6player-pixi
                                  Preparing search index...

                                  Class SS6Player

                                  Hierarchy

                                  • Container
                                    • SS6Player
                                  Index

                                  Constructors

                                  Properties

                                  _cx _cy _pivot @@ -210,21 +210,21 @@ mixin

                                  Constructors

                                  • SS6Player (extends PIXI.Container)

                                    Parameters

                                    • ss6project: SS6Project

                                      SS6Project that contains animations.

                                      -
                                    • animePackName: string = null

                                      The name of animePack(SSAE).

                                      -
                                    • animeName: string = null

                                      The name of animation.

                                      -

                                    Returns SS6Player

                                  Properties

                                  _cx: number

                                  The X-coordinate value of the normalized local X axis, +

                                • animePackName: string = null

                                  The name of animePack(SSAE).

                                  +
                                • animeName: string = null

                                  The name of animation.

                                  +
                                • Returns SS6Player

                                  Properties

                                  _cx: number

                                  The X-coordinate value of the normalized local X axis, the first column of the local transformation matrix without a scale.

                                  -
                                  _cy: number

                                  The X-coordinate value of the normalized local Y axis, +

                                  _cy: number

                                  The X-coordinate value of the normalized local Y axis, the second column of the local transformation matrix without a scale.

                                  -
                                  _pivot: ObservablePoint

                                  The pivot point of the container that it rotates around.

                                  -
                                  _position: ObservablePoint

                                  The coordinate of the object relative to the local coordinates of the parent.

                                  -
                                  _scale: ObservablePoint

                                  The scale factor of the object.

                                  -
                                  _skew: ObservablePoint

                                  The skew amount, on the x and y axis.

                                  -
                                  _sx: number

                                  The Y-coordinate value of the normalized local X axis, +

                                  _pivot: ObservablePoint

                                  The pivot point of the container that it rotates around.

                                  +
                                  _position: ObservablePoint

                                  The coordinate of the object relative to the local coordinates of the parent.

                                  +
                                  _scale: ObservablePoint

                                  The scale factor of the object.

                                  +
                                  _skew: ObservablePoint

                                  The skew amount, on the x and y axis.

                                  +
                                  _sx: number

                                  The Y-coordinate value of the normalized local X axis, the first column of the local transformation matrix without a scale.

                                  -
                                  _sy: number

                                  The Y-coordinate value of the normalized local Y axis, +

                                  _sy: number

                                  The Y-coordinate value of the normalized local Y axis, the second column of the local transformation matrix without a scale.

                                  -
                                  _zIndex: number
                                  accessible?: boolean

                                  Flag for if the object is accessible. If true AccessibilityManager will overlay a +

                                  _zIndex: number
                                  accessible?: boolean

                                  Flag for if the object is accessible. If true AccessibilityManager will overlay a shadow div with attributes set

                                  false
                                   
                                  @@ -278,7 +278,7 @@
                                  const container = new Container();
                                  container.accessible = true;
                                  container.accessibleType = 'button'; // or 'link', 'checkbox', etc.
                                  -
                                  allowChildren: boolean
                                  boundsArea: Rectangle

                                  An optional bounds area for this container. Setting this rectangle will stop the renderer +

                                  allowChildren: boolean
                                  boundsArea: Rectangle

                                  An optional bounds area for this container. Setting this rectangle will stop the renderer from recursively measuring the bounds of each children and instead use this single boundArea.

                                  Important

                                  This is great for optimisation! If for example you have a 1000 spinning particles and you know they all sit within a specific bounds, @@ -288,15 +288,15 @@

                                  const container = new Container();
                                  container.boundsArea = new Rectangle(0, 0, 500, 500);
                                  -
                                  cacheAsBitmap: boolean

                                  Legacy property for backwards compatibility with PixiJS v7 and below. +

                                  cacheAsBitmap: boolean

                                  Legacy property for backwards compatibility with PixiJS v7 and below. Use cacheAsTexture instead.

                                  since 8.0.0

                                  cacheAsTexture: (val: boolean | CacheAsTextureOptions) => void

                                  Caches this container as a texture. This allows the container to be rendered as a single texture, which can improve performance for complex static containers.

                                  -

                                  Type declaration

                                    • (val: boolean | CacheAsTextureOptions): void
                                    • Parameters

                                      • val: boolean | CacheAsTextureOptions

                                        If true, enables caching with default options. +

                                        Type Declaration

                                          • (val: boolean | CacheAsTextureOptions): void
                                          • Parameters

                                            • val: boolean | CacheAsTextureOptions

                                              If true, enables caching with default options. If false, disables caching. Can also pass options object to configure caching behavior.

                                              -

                                            Returns void

                                        // Basic caching
                                        container.cacheAsTexture(true);

                                        // With custom options
                                        container.cacheAsTexture({
                                        resolution: 2,
                                        antialias: true,
                                        });

                                        // Disable caching
                                        container.cacheAsTexture(false);

                                        // Cache a complex UI
                                        const ui = new Container();
                                        // Add multiple children...
                                        ui.cacheAsTexture(true);
                                        ui.updateCacheTexture(); // Update if contents change +

                                      Returns void

                                  // Basic caching
                                  container.cacheAsTexture(true);

                                  // With custom options
                                  container.cacheAsTexture({
                                  resolution: 2,
                                  antialias: true,
                                  });

                                  // Disable caching
                                  container.cacheAsTexture(false);

                                  // Cache a complex UI
                                  const ui = new Container();
                                  // Add multiple children...
                                  ui.cacheAsTexture(true);
                                  ui.updateCacheTexture(); // Update if contents change
                                    @@ -312,7 +312,7 @@
                                  • Container#addChild For adding children
                                  • Container#removeChild For removing children
                                  -
                                  cullable?: boolean

                                  Controls whether this object should be culled when out of view. +

                                  cullable?: boolean

                                  Controls whether this object should be culled when out of view. When true, the object will not be rendered if its bounds are outside the visible area.

                                  const sprite = new Sprite(texture);

                                  // Enable culling
                                  sprite.cullable = true;

                                  // Force object to always render
                                  sprite.cullable = false;
                                  @@ -367,7 +367,7 @@
                                • EventSystem.cursorStyles For setting global cursor styles
                                • https://developer.mozilla.org/en-US/docs/Web/CSS/cursor MDN Cursor Documentation
                                • -
                                  depthOfChildModified: () => void
                                  destroyed: boolean

                                  Whether this object has been destroyed. If true, the object should no longer be used. +

                                  depthOfChildModified: () => void
                                  destroyed: boolean

                                  Whether this object has been destroyed. If true, the object should no longer be used. After an object is destroyed, all of its functionality is disabled and references are removed.

                                  // Cleanup with destroy
                                  sprite.destroy();
                                  console.log(sprite.destroyed); // true
                                  @@ -376,7 +376,7 @@

                                  Container#destroy For destroying objects

                                  -
                                  effects?: Effect[]

                                  todo Needs docs

                                  +
                                  effects?: Effect[]

                                  todo Needs docs

                                  eventMode?: EventMode

                                  Enable interaction events for the Container. Touch, pointer and mouse events are supported.

                                  const sprite = new Sprite(texture);

                                  // Enable standard interaction (like buttons)
                                  sprite.eventMode = 'static';
                                  sprite.on('pointerdown', () => console.log('clicked!'));

                                  // Enable for moving objects
                                  sprite.eventMode = 'dynamic';
                                  sprite.on('pointermove', () => updatePosition());

                                  // Disable all interaction
                                  sprite.eventMode = 'none';

                                  // Only allow child interactions
                                  sprite.eventMode = 'passive';
                                  @@ -411,11 +411,11 @@
                                • Container#filters For applying filters
                                • Rectangle For area definition
                                • -
                                  globalDisplayStatus: number
                                  groupAlpha: number
                                  groupBlendMode: BLEND_MODES
                                  groupColor: number
                                  groupColorAlpha: number
                                  groupTransform: Matrix

                                  The group transform is a transform relative to the render group it belongs too. +

                                  globalDisplayStatus: number
                                  groupAlpha: number
                                  groupBlendMode: BLEND_MODES
                                  groupColor: number
                                  groupColorAlpha: number
                                  groupTransform: Matrix

                                  The group transform is a transform relative to the render group it belongs too. If this container is render group then this will be an identity matrix. other wise it will be the same as the relativeGroupTransform. Use this value when actually rendering things to the screen

                                  -
                                  hitArea?: IHitArea

                                  Defines a custom hit area for pointer interaction testing. When set, this shape will be used +

                                  hitArea?: IHitArea

                                  Defines a custom hit area for pointer interaction testing. When set, this shape will be used for hit testing instead of the container's standard bounds.

                                  import { Rectangle, Circle, Sprite } from 'pixi.js';

                                  // Rectangular hit area
                                  const button = new Sprite(texture);
                                  button.eventMode = 'static';
                                  button.hitArea = new Rectangle(0, 0, 100, 50);

                                  // Circular hit area
                                  const icon = new Sprite(texture);
                                  icon.eventMode = 'static';
                                  icon.hitArea = new Circle(32, 32, 32);

                                  // Custom hit area with polygon
                                  const custom = new Sprite(texture);
                                  custom.eventMode = 'static';
                                  custom.hitArea = new Polygon([0,0, 100,0, 100,100, 0,100]);

                                  // Custom hit testing logic
                                  sprite.hitArea = {
                                  contains(x: number, y: number) {
                                  // Custom collision detection
                                  return x >= 0 && x <= width && y >= 0 && y <= height;
                                  }
                                  };
                                  @@ -450,8 +450,8 @@
                                • Container#updateCacheTexture For updating cache
                                • isInteractive: () => boolean

                                  Determines if the container is interactive or not

                                  -

                                  Type declaration

                                    • (): boolean
                                    • Returns boolean

                                      Whether the container is interactive or not

                                      -

                                  7.2.0

                                  +

                                  Type Declaration

                                    • (): boolean
                                    • Returns boolean

                                      Whether the container is interactive or not

                                      +

                                  7.2.0

                                  import { Sprite } from 'pixi.js';

                                  const sprite = new Sprite(texture);
                                  sprite.eventMode = 'static';
                                  sprite.isInteractive(); // true

                                  sprite.eventMode = 'dynamic';
                                  sprite.isInteractive(); // true

                                  sprite.eventMode = 'none';
                                  sprite.isInteractive(); // false

                                  sprite.eventMode = 'passive';
                                  sprite.isInteractive(); // false

                                  sprite.eventMode = 'auto';
                                  sprite.isInteractive(); // false
                                  @@ -459,11 +459,11 @@
                                  null
                                   
                                  -
                                  layerParentId: string
                                  localAlpha: number
                                  localBlendMode: BLEND_MODES
                                  localColor: number
                                  localDisplayStatus: number

                                  This property holds three bits: culled, visible, renderable +

                                  layerParentId: string
                                  localAlpha: number
                                  localBlendMode: BLEND_MODES
                                  localColor: number
                                  localDisplayStatus: number

                                  This property holds three bits: culled, visible, renderable the third bit represents culling (0 = culled, 1 = not culled) 0b100 the second bit represents visibility (0 = not visible, 1 = visible) 0b010 the first bit represents renderable (0 = not renderable, 1 = renderable) 0b001

                                  -
                                  localTransform: Matrix

                                  Current transform of the object based on local factors: position, scale, other stuff. +

                                  localTransform: Matrix

                                  Current transform of the object based on local factors: position, scale, other stuff. This matrix represents the local transformation without any parent influence.

                                  // Basic transform access
                                  const localMatrix = sprite.localTransform;
                                  console.log(localMatrix.toString());
                                  @@ -472,7 +472,7 @@
                                • Container#worldTransform For global transform
                                • Container#groupTransform For render group transform
                                • -
                                  mask: Mask

                                  Sets a mask for the displayObject. A mask is an object that limits the visibility of an +

                                  mask: Mask

                                  Sets a mask for the displayObject. A mask is an object that limits the visibility of an object to the shape of the mask applied to it.

                                  Important

                                  In PixiJS a regular mask must be a Graphics or a Sprite object. This allows for much faster masking in canvas as it utilities shape clipping. @@ -698,8 +698,8 @@

                                  Note

                                  In v7 many users used updateTransform for this, however the way v8 renders objects is different and "updateTransform" is no longer called every frame

                                  -

                                  Type declaration

                                    • (renderer: Renderer): void
                                    • Parameters

                                      • renderer: Renderer

                                        The renderer instance

                                        -

                                      Returns void

                                  // Basic rotation animation
                                  const container = new Container();
                                  container.onRender = () => {
                                  container.rotation += 0.01;
                                  };

                                  // Cleanup when done
                                  container.onRender = null; // Removes callback +

                                  Type Declaration

                                    • (renderer: Renderer): void
                                    • Parameters

                                      • renderer: Renderer

                                        The renderer instance

                                        +

                                      Returns void

                                  // Basic rotation animation
                                  const container = new Container();
                                  container.onRender = () => {
                                  container.rotation += 0.01;
                                  };

                                  // Cleanup when done
                                  container.onRender = null; // Removes callback

                                  Renderer For renderer capabilities

                                  @@ -785,7 +785,7 @@
                                  null
                                   
                                  -
                                  onUserDataCallback: (data: any) => void
                                  onwheel?: FederatedEventHandler<FederatedWheelEvent>

                                  Property-based event handler for the wheel event. +

                                  onUserDataCallback: (data: any) => void
                                  onwheel?: FederatedEventHandler<FederatedWheelEvent>

                                  Property-based event handler for the wheel event. Fired when the mouse wheel is scrolled while over the display object.

                                  const sprite = new Sprite(texture);
                                  sprite.eventMode = 'static';

                                  // Using emitter handler
                                  sprite.on('wheel', (event) => {
                                  sprite.scale.x += event.deltaY * 0.01; // Zoom in/out
                                  sprite.scale.y += event.deltaY * 0.01; // Zoom in/out
                                  });
                                  // Using property-based handler
                                  sprite.onwheel = (event) => {
                                  sprite.scale.x += event.deltaY * 0.01; // Zoom in/out
                                  sprite.scale.y += event.deltaY * 0.01; // Zoom in/out
                                  };
                                  @@ -802,12 +802,12 @@
                                • Container#addChild For adding to a parent
                                • Container#removeChild For removing from parent
                                • -
                                  parentRenderLayer: IRenderLayer

                                  The RenderLayer this container belongs to, if any. +

                                  parentRenderLayer: RenderLayer

                                  The RenderLayer this container belongs to, if any. If it belongs to a RenderLayer, it will be rendered from the RenderLayer's position in the scene.

                                  -
                                  playEndCallback: (player: SS6Player) => void
                                  playerLib: Player
                                  relativeGroupTransform: Matrix

                                  The relative group transform is a transform relative to the render group it belongs too. It will include all parent +

                                  playEndCallback: (player: SS6Player) => void
                                  playerLib: Player
                                  relativeGroupTransform: Matrix

                                  The relative group transform is a transform relative to the render group it belongs too. It will include all parent transforms and up to the render group (think of it as kind of like a stage - but the stage can be nested). If this container is is self a render group matrix will be relative to its parent render group

                                  -
                                  renderPipeId: string
                                  skipEnabled: boolean
                                  sortableChildren: boolean

                                  If set to true, the container will sort its children by zIndex value +

                                  renderPipeId: string
                                  skipEnabled: boolean
                                  sortableChildren: boolean

                                  If set to true, the container will sort its children by zIndex value when the next render is called, or manually if sortChildren() is called.

                                  This actually changes the order of elements in the array of children, so it will affect the rendering order.

                                  @@ -842,12 +842,12 @@
                                  uid: number

                                  unique id for this container

                                  -
                                  updateCacheTexture: () => void

                                  Updates the cached texture of this container. This will flag the container's cached texture +

                                  updateCacheTexture: () => void

                                  Updates the cached texture of this container. This will flag the container's cached texture to be redrawn on the next render.

                                  // Basic update after changes
                                  container.updateCacheTexture();
                                  -
                                  updateTick: number
                                  zIndex: number

                                  The zIndex of the container.

                                  +
                                  updateTick: number
                                  zIndex: number

                                  The zIndex of the container.

                                  Controls the rendering order of children within their parent container.

                                  A higher value will mean it will be moved towards the front of the rendering order.

                                  // Add in any order
                                  container.addChild(character, background, foreground);

                                  // Adjust rendering order
                                  background.zIndex = 0;
                                  character.zIndex = 1;
                                  foreground.zIndex = 2; @@ -872,14 +872,14 @@
                                • Container#visible For toggling visibility
                                • Container#renderable For render control
                                • -
                                • set alpha(value: number): void

                                  Parameters

                                  • value: number

                                  Returns void

                                  • get angle(): number

                                    The angle of the object in degrees.

                                    +
                                  • set alpha(value: number): void

                                    Parameters

                                    • value: number

                                    Returns void

                                  • get angle(): number

                                    The angle of the object in degrees.

                                    Note

                                    'rotation' and 'angle' have the same effect on a display object; rotation is in radians, angle is in degrees.

                                    Returns number

                                    // Basic angle rotation
                                    sprite.angle = 45; // 45 degrees

                                    // Rotate around center
                                    sprite.pivot.set(sprite.width / 2, sprite.height / 2);
                                    sprite.angle = 180; // Half rotation

                                    // Rotate around center with origin
                                    sprite.origin.set(sprite.width / 2, sprite.height / 2);
                                    sprite.angle = 180; // Half rotation

                                    // Reset rotation
                                    sprite.angle = 0;
                                    -
                                  • set angle(value: number): void

                                    Parameters

                                    • value: number

                                    Returns void

                                  • get blendMode(): BLEND_MODES

                                    The blend mode to be applied to the sprite. Controls how pixels are blended when rendering.

                                    +
                                  • set angle(value: number): void

                                    Parameters

                                    • value: number

                                    Returns void

                                  • get blendMode(): BLEND_MODES

                                    The blend mode to be applied to the sprite. Controls how pixels are blended when rendering.

                                    Setting to 'normal' will reset to default blending.

                                    Note

                                    More blend modes are available after importing the pixi.js/advanced-blend-modes sub-export.

                                    @@ -893,7 +893,7 @@
                                  • Container#alpha For transparency
                                  • Container#tint For color adjustments
                                  -
                                • set blendMode(value: BLEND_MODES): void

                                  Parameters

                                  • value: BLEND_MODES

                                  Returns void

                                  • get filters(): readonly Filter[]

                                    Sets the filters for the displayObject. +

                                  • set blendMode(value: BLEND_MODES): void

                                    Parameters

                                    • value: BLEND_MODES

                                    Returns void

                                  • get filters(): readonly Filter[]

                                    Sets the filters for the displayObject. Filters are visual effects that can be applied to any display object and its children.

                                    Important

                                    This is a WebGL/WebGPU only feature and will be ignored by the canvas renderer.

                                    @@ -909,7 +909,7 @@

                                    Filter For filter base class

                                    -
                                  • get height(): number

                                    The height of the Container,

                                    +
                                  • get height(): number

                                    The height of the Container,

                                    Note

                                    Changing the height will adjust the scale.y property of the container while maintaining its aspect ratio. [!NOTE] If you want to set both width and height at the same time, use Container#setSize as it is more optimized by not recalculating the local bounds twice.

                                    @@ -917,27 +917,27 @@

                                    Returns number

                                    // Basic height setting
                                    container.height = 200;
                                    // Optimized height setting
                                    container.setSize(100, 200);
                                    -
                                  • set height(value: number): void

                                    Parameters

                                    • value: number

                                    Returns void

                                  • get isRenderable(): boolean

                                    Whether or not the object should be rendered.

                                    -

                                    Returns boolean

                                  • get isRenderGroup(): boolean

                                    Returns true if this container is a render group. +

                                  • set height(value: number): void

                                    Parameters

                                    • value: number

                                    Returns void

                                  • get isRenderable(): boolean

                                    Whether or not the object should be rendered.

                                    +

                                    Returns boolean

                                  • get isRenderGroup(): boolean

                                    Returns true if this container is a render group. This means that it will be rendered as a separate pass, with its own set of instructions

                                    -

                                    Returns boolean

                                  • set isRenderGroup(value: boolean): void

                                    Parameters

                                    • value: boolean

                                    Returns void

                                  • get origin(): ObservablePoint
                                    Experimental

                                    The origin point around which the container rotates and scales without affecting its position. +

                                    Returns boolean

                                  • set isRenderGroup(value: boolean): void

                                    Parameters

                                    • value: boolean

                                    Returns void

                                  • get origin(): ObservablePoint
                                    Experimental

                                    The origin point around which the container rotates and scales without affecting its position. Unlike pivot, changing the origin will not move the container's position.

                                    Returns ObservablePoint

                                    // Rotate around center point
                                    container.origin.set(container.width / 2, container.height / 2);
                                    container.rotation = Math.PI; // Rotates around center

                                    // Reset origin
                                    container.origin.set(0, 0);
                                    -
                                  • set origin(value: number | PointData): void

                                    Parameters

                                    • value: number | PointData

                                    Returns void

                                  • get pivot(): ObservablePoint

                                    The center of rotation, scaling, and skewing for this display object in its local space. +

                                  • set origin(value: number | PointData): void

                                    Parameters

                                    • value: number | PointData

                                    Returns void

                                  • get pivot(): ObservablePoint

                                    The center of rotation, scaling, and skewing for this display object in its local space. The position is the projection of pivot in the parent's local space.

                                    By default, the pivot is the origin (0, 0).

                                    Returns ObservablePoint

                                    // Rotate around center
                                    container.pivot.set(container.width / 2, container.height / 2);
                                    container.rotation = Math.PI; // Rotates around center

                                    4.0.0

                                    -
                                  • set pivot(value: number | PointData): void

                                    Parameters

                                    • value: number | PointData

                                    Returns void

                                  • get position(): ObservablePoint

                                    The coordinate of the object relative to the local coordinates of the parent.

                                    +
                                  • set pivot(value: number | PointData): void

                                    Parameters

                                    • value: number | PointData

                                    Returns void

                                  • get position(): ObservablePoint

                                    The coordinate of the object relative to the local coordinates of the parent.

                                    Returns ObservablePoint

                                    // Basic position setting
                                    container.position.set(100, 200);
                                    container.position.set(100); // Sets both x and y to 100
                                    // Using point data
                                    container.position = { x: 50, y: 75 };

                                    4.0.0

                                    -
                                  • set position(value: PointData): void

                                    Parameters

                                    • value: PointData

                                    Returns void

                                  • get renderable(): boolean

                                    Controls whether this object can be rendered. If false the object will not be drawn, +

                                  • set position(value: PointData): void

                                    Parameters

                                    • value: PointData

                                    Returns void

                                  • get renderable(): boolean

                                    Controls whether this object can be rendered. If false the object will not be drawn, but the transform will still be updated. This is different from visible, which skips transform updates.

                                    Returns boolean

                                    // Basic render control
                                    sprite.renderable = false; // Skip rendering
                                    sprite.renderable = true; // Enable rendering @@ -950,20 +950,20 @@
                                  • Container#visible For skipping transform updates
                                  • Container#alpha For transparency
                                  -
                                • set renderable(value: boolean): void

                                  Parameters

                                  • value: boolean

                                  Returns void

                                  • get rotation(): number

                                    The rotation of the object in radians.

                                    +
                                  • set renderable(value: boolean): void

                                    Parameters

                                    • value: boolean

                                    Returns void

                                  • get rotation(): number

                                    The rotation of the object in radians.

                                    Note

                                    'rotation' and 'angle' have the same effect on a display object; rotation is in radians, angle is in degrees.

                                    Returns number

                                    // Basic rotation
                                    container.rotation = Math.PI / 4; // 45 degrees

                                    // Convert from degrees
                                    const degrees = 45;
                                    container.rotation = degrees * Math.PI / 180;

                                    // Rotate around center
                                    container.pivot.set(container.width / 2, container.height / 2);
                                    container.rotation = Math.PI; // 180 degrees

                                    // Rotate around center with origin
                                    container.origin.set(container.width / 2, container.height / 2);
                                    container.rotation = Math.PI; // 180 degrees
                                    -
                                  • set rotation(value: number): void

                                    Parameters

                                    • value: number

                                    Returns void

                                  • get scale(): ObservablePoint

                                    The scale factors of this object along the local coordinate axes.

                                    +
                                  • set rotation(value: number): void

                                    Parameters

                                    • value: number

                                    Returns void

                                  • get scale(): ObservablePoint

                                    The scale factors of this object along the local coordinate axes.

                                    The default scale is (1, 1).

                                    Returns ObservablePoint

                                    // Basic scaling
                                    container.scale.set(2, 2); // Scales to double size
                                    container.scale.set(2); // Scales uniformly to double size
                                    container.scale = 2; // Scales uniformly to double size
                                    // Scale to a specific width and height
                                    container.setSize(200, 100); // Sets width to 200 and height to 100

                                    4.0.0

                                    -
                                  • set scale(value: string | number | PointData): void

                                    Parameters

                                    • value: string | number | PointData

                                    Returns void

                                  • get skew(): ObservablePoint

                                    The skew factor for the object in radians. Skewing is a transformation that distorts +

                                  • set scale(value: string | number | PointData): void

                                    Parameters

                                    • value: string | number | PointData

                                    Returns void

                                  • get skew(): ObservablePoint

                                    The skew factor for the object in radians. Skewing is a transformation that distorts the object by rotating it differently at each point, creating a non-uniform shape.

                                    Returns ObservablePoint

                                    // Basic skewing
                                    container.skew.set(0.5, 0); // Skew horizontally
                                    container.skew.set(0, 0.5); // Skew vertically

                                    // Skew with point data
                                    container.skew = { x: 0.3, y: 0.3 }; // Diagonal skew

                                    // Reset skew
                                    container.skew.set(0, 0);

                                    // Animate skew
                                    app.ticker.add(() => {
                                    // Create wave effect
                                    container.skew.x = Math.sin(Date.now() / 1000) * 0.3;
                                    });

                                    // Combine with rotation
                                    container.rotation = Math.PI / 4; // 45 degrees
                                    container.skew.set(0.2, 0.2); // Skew the rotated object
                                    @@ -972,7 +972,7 @@
                                    {x: 0, y: 0}
                                     
                                    -
                                  • set skew(value: PointData): void

                                    Parameters

                                    • value: PointData

                                    Returns void

                                  • get tint(): number

                                    The tint applied to the sprite.

                                    +
                                  • set skew(value: PointData): void

                                    Parameters

                                    • value: PointData

                                    Returns void

                                  • get tint(): number

                                    The tint applied to the sprite.

                                    This can be any valid ColorSource.

                                    Returns number

                                    // Basic color tinting
                                    container.tint = 0xff0000; // Red tint
                                    container.tint = 'red'; // Same as above
                                    container.tint = '#00ff00'; // Green
                                    container.tint = 'rgb(0,0,255)'; // Blue

                                    // Remove tint
                                    container.tint = 0xffffff; // White = no tint
                                    container.tint = null; // Also removes tint
                                    @@ -984,7 +984,7 @@
                                  • Container#alpha For transparency
                                  • Container#visible For visibility control
                                  -
                                • set tint(value: ColorSource): void

                                  Parameters

                                  • value: ColorSource

                                  Returns void

                                  • get visible(): boolean

                                    The visibility of the object. If false the object will not be drawn, +

                                  • set tint(value: ColorSource): void

                                    Parameters

                                    • value: ColorSource

                                    Returns void

                                  • get visible(): boolean

                                    The visibility of the object. If false the object will not be drawn, and the transform will not be updated.

                                    Returns boolean

                                    // Basic visibility toggle
                                    sprite.visible = false; // Hide sprite
                                    sprite.visible = true; // Show sprite
                                    @@ -996,7 +996,7 @@
                                  • Container#renderable For render-only control
                                  • Container#alpha For transparency
                                  -
                                • set visible(value: boolean): void

                                  Parameters

                                  • value: boolean

                                  Returns void

                                  • get width(): number

                                    The width of the Container, setting this will actually modify the scale to achieve the value set.

                                    +
                                  • set visible(value: boolean): void

                                    Parameters

                                    • value: boolean

                                    Returns void

                                  • get width(): number

                                    The width of the Container, setting this will actually modify the scale to achieve the value set.

                                    Note

                                    Changing the width will adjust the scale.x property of the container while maintaining its aspect ratio. [!NOTE] If you want to set both width and height at the same time, use Container#setSize as it is more optimized by not recalculating the local bounds twice.

                                    @@ -1004,31 +1004,31 @@

                                    Returns number

                                    // Basic width setting
                                    container.width = 100;
                                    // Optimized width setting
                                    container.setSize(100, 100);
                                    -
                                  • set width(value: number): void

                                    Parameters

                                    • value: number

                                    Returns void

                                  • get worldTransform(): Matrix

                                    Current transform of the object based on world (parent) factors.

                                    +
                                  • set width(value: number): void

                                    Parameters

                                    • value: number

                                    Returns void

                                  • get worldTransform(): Matrix

                                    Current transform of the object based on world (parent) factors.

                                    This matrix represents the absolute transformation in the scene graph.

                                    Returns Matrix

                                    // Get world position
                                    const worldPos = container.worldTransform;
                                    console.log(`World position: (${worldPos.tx}, ${worldPos.ty})`);

                                    Container#localTransform For local space transform

                                    -
                                  • get x(): number

                                    The position of the container on the x axis relative to the local coordinates of the parent.

                                    +
                                  • get x(): number

                                    The position of the container on the x axis relative to the local coordinates of the parent.

                                    An alias to position.x

                                    Returns number

                                    // Basic position
                                    container.x = 100;
                                    -
                                  • set x(value: number): void

                                    Parameters

                                    • value: number

                                    Returns void

                                  • get y(): number

                                    The position of the container on the y axis relative to the local coordinates of the parent.

                                    +
                                  • set x(value: number): void

                                    Parameters

                                    • value: number

                                    Returns void

                                  • get y(): number

                                    The position of the container on the y axis relative to the local coordinates of the parent.

                                    An alias to position.y

                                    Returns number

                                    // Basic position
                                    container.y = 200;
                                    -
                                  • set y(value: number): void

                                    Parameters

                                    • value: number

                                    Returns void

                                  Methods

                                  • Internal

                                    Recursively calculates the global bounds for the container and its children. +

                                  • set y(value: number): void

                                    Parameters

                                    • value: number

                                    Returns void

                                  Methods

                                  • Internal

                                    Recursively calculates the global bounds for the container and its children. This method is used internally by getFastGlobalBounds to traverse the scene graph.

                                    Parameters

                                    • factorRenderLayers: boolean

                                      A flag indicating whether to consider render layers in the calculation.

                                      -
                                    • bounds: Bounds

                                      The bounds object to update with the calculated values.

                                      -
                                    • currentLayer: IRenderLayer

                                      The current render layer being processed.

                                      -

                                    Returns void

                                  • Adds one or more children to the container. +

                                  • bounds: Bounds

                                    The bounds object to update with the calculated values.

                                    +
                                  • currentLayer: RenderLayer

                                    The current render layer being processed.

                                    +

                                  Returns void

                                  • Adds one or more children to the container. The children will be rendered as part of this container's display list.

                                    -

                                    Type Parameters

                                    • U extends (ContainerChild | IRenderLayer)[]

                                    Parameters

                                    • ...children: U

                                      The Container(s) to add to the container

                                      -

                                    Returns U[0]

                                    The first child that was added

                                    +

                                    Type Parameters

                                    • U extends ContainerChild[]

                                    Parameters

                                    • ...children: U

                                      The Container(s) to add to the container

                                      +

                                    Returns U[0]

                                    The first child that was added

                                    // Add a single child
                                    container.addChild(sprite);

                                    // Add multiple children
                                    container.addChild(background, player, foreground);

                                    // Add with type checking
                                    const sprite = container.addChild<Sprite>(new Sprite(texture));
                                    sprite.tint = 'red';
                                    @@ -1036,12 +1036,15 @@
                                  • Container#removeChild For removing children
                                  • Container#addChildAt For adding at specific index
                                  -
                                  • Adds a child to the container at a specified index. If the index is out of bounds an error will be thrown. +

                                  • Adds a child to the container at a specified index. If the index is out of bounds an error will be thrown. If the child is already in this container, it will be moved to the specified index.

                                    -

                                    Type Parameters

                                    • U extends ContainerChild | IRenderLayer

                                    Parameters

                                    • child: U

                                      The child to add

                                      -
                                    • index: number

                                      The index where the child will be placed

                                      -

                                    Returns U

                                    The child that was added

                                    -
                                    // Add at specific index
                                    container.addChildAt(sprite, 0); // Add to front

                                    // Move existing child
                                    const index = container.children.length - 1;
                                    container.addChildAt(existingChild, index); // Move to back

                                    // With error handling
                                    try {
                                    container.addChildAt(sprite, 1000);
                                    } catch (e) {
                                    console.warn('Index out of bounds');
                                    } +

                                    When moving a child within the same container, childAdded and added events are +not emitted because the parent-child relationship hasn't changed. Events only fire when +a child is added from a different parent (or from no parent).

                                    +

                                    Type Parameters

                                    • U extends ContainerChild

                                    Parameters

                                    • child: U

                                      The child to add

                                      +
                                    • index: number

                                      The index where the child will be placed

                                      +

                                    Returns U

                                    The child that was added

                                    +
                                    // Add at specific index
                                    container.addChildAt(sprite, 0); // Add to front

                                    // Move existing child (no events emitted)
                                    const index = container.children.length - 1;
                                    container.addChildAt(existingChild, index); // Move to back

                                    // With error handling
                                    try {
                                    container.addChildAt(sprite, 1000);
                                    } catch (e) {
                                    console.warn('Index out of bounds');
                                    }

                                    If index is out of bounds

                                    @@ -1049,12 +1052,12 @@
                                  • Container#addChild For adding to the end
                                  • Container#setChildIndex For moving existing children
                                  -
                                  • Unlike on or addListener which are methods from EventEmitter, addEventListener +

                                  • Unlike on or addListener which are methods from EventEmitter, addEventListener seeks to be compatible with the DOM's addEventListener with support for options.

                                    Type Parameters

                                    • K extends (keyof FederatedEventMap) | (keyof GlobalFederatedEventMap)

                                    Parameters

                                    • type: K

                                      The type of event to listen to.

                                      -
                                    • listener: (e: AllFederatedEventMap[K]) => any

                                      The listener callback or object.

                                      -
                                    • Optionaloptions: AddListenerOptions

                                      Listener options, used for capture phase.

                                      -

                                    Returns void

                                    // Tell the user whether they did a single, double, triple, or nth click.
                                    button.addEventListener('click', {
                                    handleEvent(e): {
                                    let prefix;

                                    switch (e.detail) {
                                    case 1: prefix = 'single'; break;
                                    case 2: prefix = 'double'; break;
                                    case 3: prefix = 'triple'; break;
                                    default: prefix = e.detail + 'th'; break;
                                    }

                                    console.log('That was a ' + prefix + 'click');
                                    }
                                    });

                                    // But skip the first click!
                                    button.parent.addEventListener('click', function blockClickOnce(e) {
                                    e.stopImmediatePropagation();
                                    button.parent.removeEventListener('click', blockClickOnce, true);
                                    }, {
                                    capture: true,
                                    }); +
                                  • listener: (e: AllFederatedEventMap[K]) => any

                                    The listener callback or object.

                                    +
                                  • Optionaloptions: AddListenerOptions

                                    Listener options, used for capture phase.

                                    +

                                  Returns void

                                  // Tell the user whether they did a single, double, triple, or nth click.
                                  button.addEventListener('click', {
                                  handleEvent(e): {
                                  let prefix;

                                  switch (e.detail) {
                                  case 1: prefix = 'single'; break;
                                  case 2: prefix = 'double'; break;
                                  case 3: prefix = 'triple'; break;
                                  default: prefix = e.detail + 'th'; break;
                                  }

                                  console.log('That was a ' + prefix + 'click');
                                  }
                                  });

                                  // But skip the first click!
                                  button.parent.addEventListener('click', function blockClickOnce(e) {
                                  e.stopImmediatePropagation();
                                  button.parent.removeEventListener('click', blockClickOnce, true);
                                  }, {
                                  capture: true,
                                  });
                                • Parameters

                                  • type: string
                                  • listener: EventListenerOrEventListenerObject
                                  • Optionaloptions: AddListenerOptions

                                  Returns void

                                  • Type Parameters

                                    • T extends (keyof ContainerEvents<ContainerChild>) | (keyof AnyEvent)

                                    Parameters

                                    • event: T
                                    • fn: (
                                          ...args: ArgumentMap<ContainerEvents<ContainerChild> & AnyEvent>[Extract<
                                              T,
                                              (keyof ContainerEvents<ContainerChild>)
                                              | (keyof AnyEvent),
                                          >],
                                      ) => void
                                    • Optionalcontext: any

                                    Returns this

                                  • 名前を指定してパーツの再生するインスタンスアニメを変更します。 @@ -1066,53 +1069,53 @@ インスタンスパーツが再生するアニメを変更します

                                    インスタンスキーは

                                    Parameters

                                    • partName: string

                                      SS上のパーツ名

                                      -
                                    • animePackName: string

                                      参照するアニメパック名

                                      -
                                    • animeName: string

                                      参照するアニメ名

                                      -
                                    • overWrite: boolean

                                      インスタンスキーの上書きフラグ

                                      -
                                    • keyParam: SS6PlayerInstanceKeyParam = null

                                      インスタンスキー

                                      -

                                    Returns boolean

                                  • Internal

                                    Collects all renderables from the container and its children, adding them to the instruction set. +

                                  • animePackName: string

                                    参照するアニメパック名

                                    +
                                  • animeName: string

                                    参照するアニメ名

                                    +
                                  • overWrite: boolean

                                    インスタンスキーの上書きフラグ

                                    +
                                  • keyParam: SS6PlayerInstanceKeyParam = null

                                    インスタンスキー

                                    +

                                  Returns boolean

                                  • Internal

                                    Collects all renderables from the container and its children, adding them to the instruction set. This method decides whether to use a simple or advanced collection method based on the container's properties.

                                    Parameters

                                    • instructionSet: InstructionSet

                                      The set of instructions to which the renderables will be added.

                                      -
                                    • renderer: Renderer

                                      The renderer responsible for rendering the scene.

                                      -
                                    • currentLayer: IRenderLayer

                                      The current render layer being processed.

                                      -

                                    Returns void

                                  • Internal

                                    Collects renderables using a simple method, suitable for containers marked as simple. +

                                  • renderer: Renderer

                                    The renderer responsible for rendering the scene.

                                    +
                                  • currentLayer: RenderLayer

                                    The current render layer being processed.

                                    +

                                  Returns void

                                  • Internal

                                    Collects renderables using a simple method, suitable for containers marked as simple. This method iterates over the container's children and adds their renderables to the instruction set.

                                    Parameters

                                    • instructionSet: InstructionSet

                                      The set of instructions to which the renderables will be added.

                                      -
                                    • renderer: Renderer

                                      The renderer responsible for rendering the scene.

                                      -
                                    • currentLayer: IRenderLayer

                                      The current render layer being processed.

                                      -

                                    Returns void

                                  • Internal

                                    Collects renderables using an advanced method, suitable for containers with complex processing needs. +

                                  • renderer: Renderer

                                    The renderer responsible for rendering the scene.

                                    +
                                  • currentLayer: RenderLayer

                                    The current render layer being processed.

                                    +

                                  Returns void

                                  • Internal

                                    Collects renderables using an advanced method, suitable for containers with complex processing needs. This method handles additional effects and transformations that may be applied to the renderables.

                                    Parameters

                                    • instructionSet: InstructionSet

                                      The set of instructions to which the renderables will be added.

                                      -
                                    • renderer: Renderer

                                      The renderer responsible for rendering the scene.

                                      -
                                    • currentLayer: IRenderLayer

                                      The current render layer being processed.

                                      -

                                    Returns void

                                  • Removes all internal references and listeners as well as removes children from the display list. +

                                  • renderer: Renderer

                                    The renderer responsible for rendering the scene.

                                    +
                                  • currentLayer: RenderLayer

                                    The current render layer being processed.

                                    +

                                  Returns void

                                  • Removes all internal references and listeners as well as removes children from the display list. Do not use a Container after calling destroy.

                                    Parameters

                                    • Optionaloptions: DestroyOptions

                                      Options parameter. A boolean will act as if all options have been set to that value

                                      -

                                    Returns void

                                    container.destroy();
                                    container.destroy(true);
                                    container.destroy({ children: true });
                                    container.destroy({ children: true, texture: true, textureSource: true }); +

                                  Returns void

                                  container.destroy();
                                  container.destroy(true);
                                  container.destroy({ children: true });
                                  container.destroy({ children: true, texture: true, textureSource: true });
                                  -
                                  • This will disable the render group for this container.

                                    -

                                    Returns void

                                  • Dispatch the event on this Container using the event's EventBoundary.

                                    +
                                  • This will disable the render group for this container.

                                    +

                                    Returns void

                                  • Dispatch the event on this Container using the event's EventBoundary.

                                    The target of the event is set to this and the defaultPrevented flag is cleared before dispatch.

                                    Parameters

                                    • e: FederatedEvent

                                      The event to dispatch.

                                      -

                                    Returns boolean

                                    Whether the FederatedEvent.preventDefault preventDefault() method was not invoked.

                                    +

                                  Returns boolean

                                  Whether the FederatedEvent.preventDefault preventDefault() method was not invoked.

                                  // Reuse a click event!
                                  button.dispatchEvent(clickEvent);
                                  • Calls each of the listeners registered for a given event.

                                    -

                                    Type Parameters

                                    • T extends (keyof ContainerEvents<ContainerChild>) | (keyof AnyEvent)

                                    Parameters

                                    • event: T
                                    • ...args: ArgumentMap<ContainerEvents<ContainerChild> & AnyEvent>[Extract<
                                          T,
                                          (keyof ContainerEvents<ContainerChild>)
                                          | (keyof AnyEvent),
                                      >]

                                    Returns boolean

                                  • Calling this enables a render group for this container. +

                                    Type Parameters

                                    • T extends (keyof ContainerEvents<ContainerChild>) | (keyof AnyEvent)

                                    Parameters

                                    • event: T
                                    • ...args: ArgumentMap<ContainerEvents<ContainerChild> & AnyEvent>[Extract<
                                          T,
                                          (keyof ContainerEvents<ContainerChild>)
                                          | (keyof AnyEvent),
                                      >]

                                    Returns boolean

                                  • Calling this enables a render group for this container. This means it will be rendered as a separate set of instructions. The transform of the container will also be handled on the GPU rather than the CPU.

                                    -

                                    Returns void

                                  • Return an array listing the events for which the emitter has registered +

                                    Returns void

                                  • Return an array listing the events for which the emitter has registered listeners.

                                    -

                                    Returns ((keyof ContainerEvents<ContainerChild>) | (keyof AnyEvent))[]

                                  • Calculates and returns the (world) bounds of the display object as a Rectangle. +

                                    Returns ((keyof ContainerEvents<ContainerChild>) | (keyof AnyEvent))[]

                                  • Calculates and returns the (world) bounds of the display object as a Rectangle. Takes into account transforms and child bounds.

                                    Parameters

                                    • OptionalskipUpdate: boolean

                                      Setting to true will stop the transforms of the scene graph from being updated. This means the calculation returned MAY be out of date BUT will give you a nice performance boost.

                                      -
                                    • Optionalbounds: Bounds

                                      Optional bounds to store the result of the bounds calculation

                                      -

                                    Returns Bounds

                                    The minimum axis-aligned rectangle in world space that fits around this object

                                    +
                                  • Optionalbounds: Bounds

                                    Optional bounds to store the result of the bounds calculation

                                    +

                                  Returns Bounds

                                  The minimum axis-aligned rectangle in world space that fits around this object

                                  // Basic bounds calculation
                                  const bounds = sprite.getBounds();
                                  console.log(`World bounds: ${bounds.x}, ${bounds.y}, ${bounds.width}, ${bounds.height}`);

                                  // Reuse bounds object for performance
                                  const recycleBounds = new Bounds();
                                  sprite.getBounds(false, recycleBounds);

                                  // Skip update for performance
                                  const fastBounds = sprite.getBounds(true);
                                  @@ -1126,9 +1129,9 @@
                                • Container#getLocalBounds For untransformed bounds
                                • Bounds For bounds properties
                                • -
                                  • Returns the child at the specified index.

                                    -

                                    Type Parameters

                                    • U extends ContainerChild | IRenderLayer

                                    Parameters

                                    • index: number

                                      The index to get the child from

                                      -

                                    Returns U

                                    The child at the given index

                                    +
                                  • Returns the child at the specified index.

                                    +

                                    Type Parameters

                                    • U extends ContainerChild

                                    Parameters

                                    • index: number

                                      The index to get the child from

                                      +

                                    Returns U

                                    The child at the given index

                                    // Get first child
                                    const first = container.getChildAt(0);

                                    // Type-safe access
                                    const sprite = container.getChildAt<Sprite>(1);

                                    // With error handling
                                    try {
                                    const child = container.getChildAt(10);
                                    } catch (e) {
                                    console.warn('Index out of bounds');
                                    }
                                    @@ -1137,11 +1140,11 @@
                                  • Container#children For direct array access
                                  • Container#getChildByLabel For name-based lookup
                                  -
                                  • Returns the first child in the container with the specified label. +

                                  • Returns the first child in the container with the specified label. Recursive searches are done in a pre-order traversal.

                                    Parameters

                                    • label: string | RegExp

                                      Instance label to search for

                                      -
                                    • Optionaldeep: boolean

                                      Whether to search recursively through children

                                      -

                                    Returns Container<ContainerChild>

                                    The first child with the specified label, or null if none found

                                    +
                                  • Optionaldeep: boolean

                                    Whether to search recursively through children

                                    +

                                  Returns Container<ContainerChild>

                                  The first child with the specified label, or null if none found

                                  // Basic label search
                                  const child = container.getChildByLabel('player');

                                  // Search with regular expression
                                  const enemy = container.getChildByLabel(/enemy-\d+/);

                                  // Deep search through children
                                  const deepChild = container.getChildByLabel('powerup', true);
                                  @@ -1150,13 +1153,13 @@
                                • Container#label For setting labels
                                  • Parameters

                                    • label: string | RegExp

                                      Instance name.

                                      -
                                    • Optionaldeep: boolean

                                      Whether to search recursively

                                      -

                                    Returns Container<ContainerChild>

                                    The child with the specified name.

                                    +
                                  • Optionaldeep: boolean

                                    Whether to search recursively

                                    +

                                  Returns Container<ContainerChild>

                                  The child with the specified name.

                                  since 8.0.0

                                  Container#getChildByLabel

                                  -
                                  • Returns the index position of a child Container instance.

                                    -

                                    Parameters

                                    • child: ContainerChild | IRenderLayer

                                      The Container instance to identify

                                      -

                                    Returns number

                                    The index position of the child container

                                    +
                                  • Returns the index position of a child Container instance.

                                    +

                                    Parameters

                                    • child: ContainerChild

                                      The Container instance to identify

                                      +

                                    Returns number

                                    The index position of the child container

                                    // Basic index lookup
                                    const index = container.getChildIndex(sprite);
                                    console.log(`Sprite is at index ${index}`);

                                    // With error handling
                                    try {
                                    const index = container.getChildIndex(sprite);
                                    } catch (e) {
                                    console.warn('Child not found in container');
                                    }
                                    @@ -1165,12 +1168,12 @@
                                  • Container#setChildIndex For changing index
                                  • Container#children For direct array access
                                  -
                                  • Returns all children in the container with the specified label. +

                                  • Returns all children in the container with the specified label. Recursive searches are done in a pre-order traversal.

                                    Parameters

                                    • label: string | RegExp

                                      Instance label to search for

                                      -
                                    • Optionaldeep: boolean

                                      Whether to search recursively through children

                                      -
                                    • Optionalout: Container<ContainerChild>[]

                                      Optional array to store matching children in

                                      -

                                    Returns Container<ContainerChild>[]

                                    An array of children with the specified label

                                    +
                                  • Optionaldeep: boolean

                                    Whether to search recursively through children

                                    +
                                  • Optionalout: Container<ContainerChild>[]

                                    Optional array to store matching children in

                                    +

                                  Returns Container<ContainerChild>[]

                                  An array of children with the specified label

                                  // Basic label search
                                  const enemies = container.getChildrenByLabel('enemy');
                                  // Search with regular expression
                                  const powerups = container.getChildrenByLabel(/powerup-\d+/);
                                  // Deep search with collection
                                  const buttons = [];
                                  container.getChildrenByLabel('button', true, buttons);
                                  @@ -1184,22 +1187,22 @@ which may result in slightly larger bounds but never smaller than the actual bounds.

                                  for accurate (but less performant) results use container.getGlobalBounds

                                  Parameters

                                  • OptionalfactorRenderLayers: boolean

                                    A flag indicating whether to consider render layers in the calculation.

                                    -
                                  • Optionalbounds: Bounds

                                    The output bounds object to store the result. If not provided, a new one is created.

                                    -

                                  Returns Bounds

                                  The computed bounds.

                                  +
                                • Optionalbounds: Bounds

                                  The output bounds object to store the result. If not provided, a new one is created.

                                  +
                                • Returns Bounds

                                  The computed bounds.

                                  • Returns the global (compound) alpha of the container within the scene.

                                    Parameters

                                    • OptionalskipUpdate: boolean

                                      Performance optimization flag:

                                      • If false (default): Recalculates the entire alpha chain through parents for accuracy
                                      • If true: Uses cached worldAlpha from the last render pass for better performance
                                      -

                                    Returns number

                                    The resulting alpha value (between 0 and 1)

                                    +

                                  Returns number

                                  The resulting alpha value (between 0 and 1)

                                  // Accurate but slower - recalculates entire alpha chain
                                  const preciseAlpha = container.getGlobalAlpha();

                                  // Faster but may be outdated - uses cached alpha
                                  const cachedAlpha = container.getGlobalAlpha(true);
                                  • Returns the global position of the container, taking into account the container hierarchy.

                                    Parameters

                                    • Optionalpoint: Point

                                      The optional point to write the global value to

                                      -
                                    • OptionalskipUpdate: boolean

                                      Should we skip the update transform

                                      -

                                    Returns Point

                                    The updated point

                                    +
                                  • OptionalskipUpdate: boolean

                                    Should we skip the update transform

                                    +

                                  Returns Point

                                  The updated point

                                  // Basic position check
                                  const globalPos = sprite.getGlobalPosition();
                                  console.log(`Global: (${globalPos.x}, ${globalPos.y})`);

                                  // Reuse point object
                                  const point = new Point();
                                  sprite.getGlobalPosition(point);

                                  // Skip transform update for performance
                                  const fastPos = container.getGlobalPosition(undefined, true);
                                  @@ -1213,18 +1216,18 @@
                                • If false (default): Recalculates the entire tint chain through parents for accuracy
                                • If true: Uses cached worldColor from the last render pass for better performance
                                • -

                                  Returns number

                                  The resulting tint color as a 24-bit RGB number (0xRRGGBB)

                                  +

                                  Returns number

                                  The resulting tint color as a 24-bit RGB number (0xRRGGBB)

                                  // Accurate but slower - recalculates entire tint chain
                                  const preciseTint = container.getGlobalTint();

                                  // Faster but may be outdated - uses cached tint
                                  const cachedTint = container.getGlobalTint(true);
                                  • Returns the global transform matrix of the container within the scene.

                                    Parameters

                                    • Optionalmatrix: Matrix

                                      Optional matrix to store the result. If not provided, a new Matrix will be created.

                                      -
                                    • OptionalskipUpdate: boolean

                                      Performance optimization flag:

                                      +
                                    • OptionalskipUpdate: boolean

                                      Performance optimization flag:

                                      • If false (default): Recalculates the entire transform chain for accuracy
                                      • If true: Uses cached worldTransform from the last render pass for better performance
                                      -

                                    Returns Matrix

                                    The resulting transformation matrix (either the input matrix or a new one)

                                    +

                                  Returns Matrix

                                  The resulting transformation matrix (either the input matrix or a new one)

                                  // Accurate but slower - recalculates entire transform chain
                                  const preciseTransform = container.getGlobalTransform();

                                  // Faster but may be outdated - uses cached transform
                                  const cachedTransform = container.getGlobalTransform(undefined, true);

                                  // Reuse existing matrix
                                  const existingMatrix = new Matrix();
                                  container.getGlobalTransform(existingMatrix);
                                  @@ -1240,25 +1243,25 @@
                                  • Retrieves the index of a part based on its name from the anime pack data.

                                    Parameters

                                    • partsname: string

                                      The name of the part to search for.

                                      -

                                    Returns number

                                    The index of the part if found, or -1 if the part is not found.

                                    -
                                  • Retrieves the size of the container as a [Size]Size object.

                                    +

                                  Returns number

                                  The index of the part if found, or -1 if the part is not found.

                                  +
                                  • Retrieves the size of the container as a [Size]Size object.

                                    This is faster than get the width and height separately.

                                    Parameters

                                    • Optionalout: Size

                                      Optional object to store the size in.

                                      -

                                    Returns Size

                                    The size of the container.

                                    +

                                  Returns Size

                                  The size of the container.

                                  // Basic size retrieval
                                  const size = container.getSize();
                                  console.log(`Size: ${size.width}x${size.height}`);

                                  // Reuse existing size object
                                  const reuseSize = { width: 0, height: 0 };
                                  container.getSize(reuseSize);
                                  -
                                  • Return the number of listeners listening to a given event.

                                    -

                                    Parameters

                                    • event: (keyof ContainerEvents<ContainerChild>) | (keyof AnyEvent)

                                    Returns number

                                  • Return the listeners registered for a given event.

                                    -

                                    Type Parameters

                                    • T extends (keyof ContainerEvents<ContainerChild>) | (keyof AnyEvent)

                                    Parameters

                                    • event: T

                                    Returns (
                                        (
                                            ...args: ArgumentMap<ContainerEvents<ContainerChild> & AnyEvent>[Extract<
                                                T,
                                                (keyof ContainerEvents<ContainerChild>)
                                                | (keyof AnyEvent),
                                            >],
                                        ) => void
                                    )[]

                                  • Type Parameters

                                    • T extends (keyof ContainerEvents<ContainerChild>) | (keyof AnyEvent)

                                    Parameters

                                    • event: T
                                    • Optionalfn: (
                                          ...args: ArgumentMap<ContainerEvents<ContainerChild> & AnyEvent>[Extract<
                                              T,
                                              (keyof ContainerEvents<ContainerChild>)
                                              | (keyof AnyEvent),
                                          >],
                                      ) => void
                                    • Optionalcontext: any
                                    • Optionalonce: boolean

                                    Returns this

                                  • Add a listener for a given event.

                                    -

                                    Type Parameters

                                    • T extends (keyof ContainerEvents<ContainerChild>) | (keyof AnyEvent)

                                    Parameters

                                    • event: T
                                    • fn: (
                                          ...args: ArgumentMap<ContainerEvents<ContainerChild> & AnyEvent>[Extract<
                                              T,
                                              (keyof ContainerEvents<ContainerChild>)
                                              | (keyof AnyEvent),
                                          >],
                                      ) => void
                                    • Optionalcontext: any

                                    Returns this

                                  • Add a one-time listener for a given event.

                                    -

                                    Type Parameters

                                    • T extends (keyof ContainerEvents<ContainerChild>) | (keyof AnyEvent)

                                    Parameters

                                    • event: T
                                    • fn: (
                                          ...args: ArgumentMap<ContainerEvents<ContainerChild> & AnyEvent>[Extract<
                                              T,
                                              (keyof ContainerEvents<ContainerChild>)
                                              | (keyof AnyEvent),
                                          >],
                                      ) => void
                                    • Optionalcontext: any

                                    Returns this

                                  • Remove all listeners, or those of the specified event.

                                    -

                                    Parameters

                                    • Optionalevent: (keyof ContainerEvents<ContainerChild>) | (keyof AnyEvent)

                                    Returns this

                                  • Removes one or more children from the container. +

                                  • Return the number of listeners listening to a given event.

                                    +

                                    Parameters

                                    • event: (keyof ContainerEvents<ContainerChild>) | (keyof AnyEvent)

                                    Returns number

                                  • Return the listeners registered for a given event.

                                    +

                                    Type Parameters

                                    • T extends (keyof ContainerEvents<ContainerChild>) | (keyof AnyEvent)

                                    Parameters

                                    • event: T

                                    Returns (
                                        (
                                            ...args: ArgumentMap<ContainerEvents<ContainerChild> & AnyEvent>[Extract<
                                                T,
                                                (keyof ContainerEvents<ContainerChild>)
                                                | (keyof AnyEvent),
                                            >],
                                        ) => void
                                    )[]

                                  • Type Parameters

                                    • T extends (keyof ContainerEvents<ContainerChild>) | (keyof AnyEvent)

                                    Parameters

                                    • event: T
                                    • Optionalfn: (
                                          ...args: ArgumentMap<ContainerEvents<ContainerChild> & AnyEvent>[Extract<
                                              T,
                                              (keyof ContainerEvents<ContainerChild>)
                                              | (keyof AnyEvent),
                                          >],
                                      ) => void
                                    • Optionalcontext: any
                                    • Optionalonce: boolean

                                    Returns this

                                  • Add a listener for a given event.

                                    +

                                    Type Parameters

                                    • T extends (keyof ContainerEvents<ContainerChild>) | (keyof AnyEvent)

                                    Parameters

                                    • event: T
                                    • fn: (
                                          ...args: ArgumentMap<ContainerEvents<ContainerChild> & AnyEvent>[Extract<
                                              T,
                                              (keyof ContainerEvents<ContainerChild>)
                                              | (keyof AnyEvent),
                                          >],
                                      ) => void
                                    • Optionalcontext: any

                                    Returns this

                                  • Add a one-time listener for a given event.

                                    +

                                    Type Parameters

                                    • T extends (keyof ContainerEvents<ContainerChild>) | (keyof AnyEvent)

                                    Parameters

                                    • event: T
                                    • fn: (
                                          ...args: ArgumentMap<ContainerEvents<ContainerChild> & AnyEvent>[Extract<
                                              T,
                                              (keyof ContainerEvents<ContainerChild>)
                                              | (keyof AnyEvent),
                                          >],
                                      ) => void
                                    • Optionalcontext: any

                                    Returns this

                                  • Remove all listeners, or those of the specified event.

                                    +

                                    Parameters

                                    • Optionalevent: (keyof ContainerEvents<ContainerChild>) | (keyof AnyEvent)

                                    Returns this

                                  • Removes one or more children from the container. When removing multiple children, events will be triggered for each child in sequence.

                                    -

                                    Type Parameters

                                    • U extends (ContainerChild | IRenderLayer)[]

                                    Parameters

                                    • ...children: U

                                      The Container(s) to remove

                                      -

                                    Returns U[0]

                                    The first child that was removed

                                    +

                                    Type Parameters

                                    • U extends ContainerChild[]

                                    Parameters

                                    • ...children: U

                                      The Container(s) to remove

                                      +

                                    Returns U[0]

                                    The first child that was removed

                                    // Remove a single child
                                    const removed = container.removeChild(sprite);

                                    // Remove multiple children
                                    const bg = container.removeChild(background, player, userInterface);

                                    // Remove with type checking
                                    const sprite = container.removeChild<Sprite>(childSprite);
                                    sprite.texture = newTexture;
                                    @@ -1266,9 +1269,9 @@
                                  • Container#addChild For adding children
                                  • Container#removeChildren For removing multiple children
                                  -
                                  • Removes a child from the specified index position.

                                    -

                                    Type Parameters

                                    • U extends ContainerChild | IRenderLayer

                                    Parameters

                                    • index: number

                                      The index to remove the child from

                                      -

                                    Returns U

                                    The child that was removed

                                    +
                                  • Removes a child from the specified index position.

                                    +

                                    Type Parameters

                                    • U extends ContainerChild

                                    Parameters

                                    • index: number

                                      The index to remove the child from

                                      +

                                    Returns U

                                    The child that was removed

                                    // Remove first child
                                    const removed = container.removeChildAt(0);

                                    // type safe access
                                    const sprite = container.removeChildAt<Sprite>(1);

                                    // With error handling
                                    try {
                                    const child = container.removeChildAt(10);
                                    } catch (e) {
                                    console.warn('Index out of bounds');
                                    }
                                    @@ -1277,10 +1280,10 @@
                                  • Container#removeChild For removing specific children
                                  • Container#removeChildren For removing multiple children
                                  -
                                  • Removes all children from this container that are within the begin and end indexes.

                                    +
                                  • Removes all children from this container that are within the begin and end indexes.

                                    Parameters

                                    • OptionalbeginIndex: number

                                      The beginning position

                                      -
                                    • OptionalendIndex: number

                                      The ending position. Default is container size

                                      -

                                    Returns ContainerChild[]

                                    List of removed children

                                    +
                                  • OptionalendIndex: number

                                    The ending position. Default is container size

                                    +

                                  Returns ContainerChild[]

                                  List of removed children

                                  // Remove all children
                                  container.removeChildren();

                                  // Remove first 3 children
                                  const removed = container.removeChildren(0, 3);
                                  console.log('Removed:', removed.length); // 3

                                  // Remove children from index 2 onwards
                                  container.removeChildren(2);

                                  // Remove specific range
                                  const middle = container.removeChildren(1, 4);
                                  @@ -1289,13 +1292,13 @@
                                • Container#addChild For adding children
                                • Container#removeChild For removing specific children
                                • -
                                  • Unlike off or removeListener which are methods from EventEmitter, removeEventListener +

                                  • Unlike off or removeListener which are methods from EventEmitter, removeEventListener seeks to be compatible with the DOM's removeEventListener with support for options.

                                    Type Parameters

                                    • K extends (keyof FederatedEventMap) | (keyof GlobalFederatedEventMap)

                                    Parameters

                                    • type: K

                                      The type of event the listener is bound to.

                                      -
                                    • listener: (e: AllFederatedEventMap[K]) => any

                                      The listener callback or object.

                                      -
                                    • Optionaloptions: RemoveListenerOptions

                                      The original listener options. +

                                    • listener: (e: AllFederatedEventMap[K]) => any

                                      The listener callback or object.

                                      +
                                    • Optionaloptions: RemoveListenerOptions

                                      The original listener options. This is required to deregister a capture phase listener.

                                      -

                                    Returns void

                                  • Parameters

                                    • type: string
                                    • listener: EventListenerOrEventListenerObject
                                    • Optionaloptions: RemoveListenerOptions

                                    Returns void

                                  • Remove the Container from its parent Container. If the Container has no parent, do nothing.

                                    +

                                  Returns void

                                • Parameters

                                  • type: string
                                  • listener: EventListenerOrEventListenerObject
                                  • Optionaloptions: RemoveListenerOptions

                                  Returns void

                                  • Remove the Container from its parent Container. If the Container has no parent, do nothing.

                                    Returns void

                                    // Basic removal
                                    sprite.removeFromParent();

                                    // With validation
                                    if (sprite.parent) {
                                    sprite.removeFromParent();
                                    }
                                    @@ -1303,11 +1306,11 @@
                                  • Container#addChild For adding to a new parent
                                  • Container#removeChild For parent removing children
                                  -
                                  • Remove the listeners of a given event.

                                    -

                                    Type Parameters

                                    • T extends (keyof ContainerEvents<ContainerChild>) | (keyof AnyEvent)

                                    Parameters

                                    • event: T
                                    • Optionalfn: (
                                          ...args: ArgumentMap<ContainerEvents<ContainerChild> & AnyEvent>[Extract<
                                              T,
                                              (keyof ContainerEvents<ContainerChild>)
                                              | (keyof AnyEvent),
                                          >],
                                      ) => void
                                    • Optionalcontext: any
                                    • Optionalonce: boolean

                                    Returns this

                                  • Reparent a child or multiple children to this container while preserving their world transform. +

                                  • Remove the listeners of a given event.

                                    +

                                    Type Parameters

                                    • T extends (keyof ContainerEvents<ContainerChild>) | (keyof AnyEvent)

                                    Parameters

                                    • event: T
                                    • Optionalfn: (
                                          ...args: ArgumentMap<ContainerEvents<ContainerChild> & AnyEvent>[Extract<
                                              T,
                                              (keyof ContainerEvents<ContainerChild>)
                                              | (keyof AnyEvent),
                                          >],
                                      ) => void
                                    • Optionalcontext: any
                                    • Optionalonce: boolean

                                    Returns this

                                  • Reparent a child or multiple children to this container while preserving their world transform. This ensures that the visual position and rotation of the children remain the same even when changing parents.

                                    Type Parameters

                                    • U extends ContainerChild[]

                                    Parameters

                                    • ...child: U

                                      The child or children to reparent

                                      -

                                    Returns U[0]

                                    The first child that was reparented

                                    +

                                  Returns U[0]

                                  The first child that was reparented

                                  // Basic reparenting
                                  const sprite = new Sprite(texture);
                                  oldContainer.addChild(sprite);
                                  // Move to new parent, keeping visual position
                                  newContainer.reparentChild(sprite);

                                  // Reparent multiple children
                                  const batch = [sprite1, sprite2, sprite3];
                                  newContainer.reparentChild(...batch);
                                  @@ -1315,11 +1318,11 @@
                                • Container#reparentChildAt For index-specific reparenting
                                • Container#addChild For simple parenting
                                • -
                                  • Reparent the child to this container at the specified index while preserving its world transform. +

                                  • Reparent the child to this container at the specified index while preserving its world transform. This ensures that the visual position and rotation of the child remain the same even when changing parents.

                                    Type Parameters

                                    • U extends ContainerChild

                                    Parameters

                                    • child: U

                                      The child to reparent

                                      -
                                    • index: number

                                      The index to reparent the child to

                                      -

                                    Returns U

                                    The reparented child

                                    +
                                  • index: number

                                    The index to reparent the child to

                                    +

                                  Returns U

                                  The reparented child

                                  // Basic index-specific reparenting
                                  const sprite = new Sprite(texture);
                                  oldContainer.addChild(sprite);
                                  // Move to new parent at index 0 (front)
                                  newContainer.reparentChildAt(sprite, 0);
                                  @@ -1328,25 +1331,25 @@
                                • Container#reparentChild For appending reparented children
                                • Container#addChildAt For simple indexed parenting
                                • -
                                  • Replace a child in the container with a new child. Copying the local transform from the old child to the new one.

                                    +
                                  • Replace a child in the container with a new child. Copying the local transform from the old child to the new one.

                                    Type Parameters

                                    • U extends ContainerChild
                                    • T extends ContainerChild

                                    Parameters

                                    • oldChild: U

                                      The child to replace.

                                      -
                                    • newChild: T

                                      The new child to add.

                                      -

                                    Returns void

                                  • アニメーションの速度を設定する (deprecated この関数は削除される可能性があります)

                                    +
                                  • newChild: T

                                    The new child to add.

                                    +

                                  Returns void

                                  • アニメーションの速度を設定する (deprecated この関数は削除される可能性があります)

                                    Parameters

                                    • fps: number

                                      アニメーション速度(frame per sec.)

                                      -
                                    • _skipEnabled: boolean = true

                                      描画更新が間に合わないときにフレームをスキップするかどうか

                                      -

                                    Returns void

                                  • アニメーション再生設定

                                    +
                                  • _skipEnabled: boolean = true

                                    描画更新が間に合わないときにフレームをスキップするかどうか

                                    +

                                  Returns void

                                  • アニメーション再生設定

                                    Parameters

                                    • _startframe: number = -1

                                      開始フレーム番号(マイナス設定でデフォルト値を変更しない)

                                      -
                                    • _endframe: number = -1

                                      終了フレーム番号(マイナス設定でデフォルト値を変更しない)

                                      -
                                    • _loops: number = -1

                                      ループ回数(ゼロもしくはマイナス設定で無限ループ)

                                      -

                                    Returns void

                                  • アニメーションの速度を設定する

                                    +
                                  • _endframe: number = -1

                                    終了フレーム番号(マイナス設定でデフォルト値を変更しない)

                                    +
                                  • _loops: number = -1

                                    ループ回数(ゼロもしくはマイナス設定で無限ループ)

                                    +

                                  Returns void

                                  • アニメーションの速度を設定する

                                    Parameters

                                    • fpsRate: number

                                      アニメーション速度(設定値に対する乗率)負数設定で逆再生

                                      -
                                    • _skipEnabled: boolean = true

                                      描画更新が間に合わないときにフレームをスキップするかどうか

                                      -

                                    Returns void

                                  • Changes the position of an existing child in the container.

                                    -

                                    Parameters

                                    • child: ContainerChild | IRenderLayer

                                      The child Container instance to reposition

                                      -
                                    • index: number

                                      The resulting index number for the child

                                      -

                                    Returns void

                                    // Basic index change
                                    container.setChildIndex(sprite, 0); // Move to front
                                    container.setChildIndex(sprite, container.children.length - 1); // Move to back

                                    // With error handling
                                    try {
                                    container.setChildIndex(sprite, 5);
                                    } catch (e) {
                                    console.warn('Invalid index or child not found');
                                    } +
                                  • _skipEnabled: boolean = true

                                    描画更新が間に合わないときにフレームをスキップするかどうか

                                    +

                                  Returns void

                                  • Changes the position of an existing child in the container.

                                    +

                                    Parameters

                                    • child: ContainerChild

                                      The child Container instance to reposition

                                      +
                                    • index: number

                                      The resulting index number for the child

                                      +

                                    Returns void

                                    // Basic index change
                                    container.setChildIndex(sprite, 0); // Move to front
                                    container.setChildIndex(sprite, container.children.length - 1); // Move to back

                                    // With error handling
                                    try {
                                    container.setChildIndex(sprite, 5);
                                    } catch (e) {
                                    console.warn('Invalid index or child not found');
                                    }

                                    If index is out of bounds

                                    @@ -1355,24 +1358,24 @@
                                  • Container#getChildIndex For getting current index
                                  • Container#swapChildren For swapping positions
                                  -
                                  • 1フレーム分のアニメーション描画

                                    +
                                  • 1フレーム分のアニメーション描画

                                    Parameters

                                    • frameNumber: number

                                      フレーム番号

                                      -
                                    • ds: number = 0.0

                                      delta step

                                      -

                                    Returns void

                                  • Updates the local transform properties by decomposing the given matrix. +

                                  • ds: number = 0.0

                                    delta step

                                    +

                                  Returns void

                                  • Updates the local transform properties by decomposing the given matrix. Extracts position, scale, rotation, and skew from a transformation matrix.

                                    Parameters

                                    • matrix: Matrix

                                      The matrix to use for updating the transform

                                      -

                                    Returns void

                                    // Basic matrix transform
                                    const matrix = new Matrix()
                                    .translate(100, 100)
                                    .rotate(Math.PI / 4)
                                    .scale(2, 2);

                                    container.setFromMatrix(matrix);

                                    // Copy transform from another container
                                    const source = new Container();
                                    source.position.set(100, 100);
                                    source.rotation = Math.PI / 2;

                                    target.setFromMatrix(source.localTransform);

                                    // Reset transform
                                    container.setFromMatrix(Matrix.IDENTITY); +

                                  Returns void

                                  // Basic matrix transform
                                  const matrix = new Matrix()
                                  .translate(100, 100)
                                  .rotate(Math.PI / 4)
                                  .scale(2, 2);

                                  container.setFromMatrix(matrix);

                                  // Copy transform from another container
                                  const source = new Container();
                                  source.position.set(100, 100);
                                  source.rotation = Math.PI / 2;

                                  target.setFromMatrix(source.localTransform);

                                  // Reset transform
                                  container.setFromMatrix(Matrix.IDENTITY);
                                  • Container#updateTransform For property-based updates
                                  • Matrix#decompose For matrix decomposition details
                                  -
                                  • Used to set mask and control mask options on a display object. +

                                  • Used to set mask and control mask options on a display object. Allows for more detailed control over masking behavior compared to the mask property.

                                    Parameters

                                    • options: Partial<MaskOptionsAndMask>

                                      Configuration options for the mask

                                      -

                                    Returns void

                                    import { Graphics, Sprite } from 'pixi.js';

                                    // Create a circular mask
                                    const graphics = new Graphics()
                                    .beginFill(0xFF3300)
                                    .drawCircle(100, 100, 50)
                                    .endFill();

                                    // Apply mask with options
                                    sprite.setMask({
                                    mask: graphics,
                                    inverse: true, // Create a hole effect
                                    });

                                    // Clear existing mask
                                    sprite.setMask({ mask: null }); +

                                  Returns void

                                  import { Graphics, Sprite } from 'pixi.js';

                                  // Create a circular mask
                                  const graphics = new Graphics()
                                  .beginFill(0xFF3300)
                                  .drawCircle(100, 100, 50)
                                  .endFill();

                                  // Apply mask with options
                                  sprite.setMask({
                                  mask: graphics,
                                  inverse: true, // Create a hole effect
                                  });

                                  // Clear existing mask
                                  sprite.setMask({ mask: null });
                                    @@ -1381,46 +1384,46 @@
                                  • パーツに割り当たるセルを変更します.

                                    Parameters

                                    • partsname: string

                                      パーツ名

                                      -
                                    • sscename: string

                                      セルマップ名

                                      -
                                    • cellname: string

                                      表示させたいセル名

                                      -

                                    Returns [number, number]

                                    [パーツ名の index, セル名 index] のタプルを返します。見つからない場合は -1 を返します。

                                    -
                                  • パーツに割り当たるセルをインデックスで指定して変更します。

                                    +
                                  • sscename: string

                                    セルマップ名

                                    +
                                  • cellname: string

                                    表示させたいセル名

                                    +

                                  Returns [number, number]

                                  [パーツ名の index, セル名 index] のタプルを返します。見つからない場合は -1 を返します。

                                  +
                                  • パーツに割り当たるセルをインデックスで指定して変更します。

                                    Parameters

                                    • partIndex: number

                                      The index of the part to be updated. Must not be -1 to perform the update.

                                      -
                                    • changeCellIndex: number

                                      The new cell index to set for the specified partIndex.

                                      -

                                    Returns boolean

                                    This method does not return a value.

                                    -
                                  • Sets the tint color for a specific part of the player's animation.

                                    +
                                  • changeCellIndex: number

                                    The new cell index to set for the specified partIndex.

                                    +

                                  Returns boolean

                                  This method does not return a value.

                                  +
                                  • Sets the tint color for a specific part of the player's animation.

                                    Parameters

                                    • partName: string

                                      The name of the part to apply the tint to.

                                      -
                                    • tint: number

                                      The tint value to apply, represented as a number.

                                      -

                                    Returns boolean

                                    Returns true if the tint was successfully applied; otherwise, returns false.

                                    -
                                  • Updates the tint color of a specific part identified by its index.

                                    +
                                  • tint: number

                                    The tint value to apply, represented as a number.

                                    +

                                  Returns boolean

                                  Returns true if the tint was successfully applied; otherwise, returns false.

                                  +
                                  • Updates the tint color of a specific part identified by its index.

                                    Parameters

                                    • partIndex: number

                                      The index of the part for which the tint needs to be set. A value of -1 indicates no part is targeted.

                                      -
                                    • tint: number

                                      The tint value to be applied to the specified part.

                                      -

                                    Returns boolean

                                    Returns true if the tint is successfully applied, otherwise returns false.

                                    -
                                  • Sets the visibility of a specific part by its name.

                                    +
                                  • tint: number

                                    The tint value to be applied to the specified part.

                                    +

                                  Returns boolean

                                  Returns true if the tint is successfully applied, otherwise returns false.

                                  +
                                  • Sets the visibility of a specific part by its name.

                                    Parameters

                                    • partsname: string

                                      The name of the part whose visibility is to be set.

                                      -
                                    • visible: boolean

                                      A boolean indicating whether the part should be visible (true) or hidden (false).

                                      -

                                    Returns boolean

                                    Returns true if the operation was successful, false otherwise.

                                    -
                                  • Sets the visibility of a part identified by its index.

                                    +
                                  • visible: boolean

                                    A boolean indicating whether the part should be visible (true) or hidden (false).

                                    +

                                  Returns boolean

                                  Returns true if the operation was successful, false otherwise.

                                  +
                                  • Sets the visibility of a part identified by its index.

                                    Parameters

                                    • partIndex: number

                                      The index of the part to update. Must not be -1.

                                      -
                                    • visible: boolean

                                      A boolean indicating whether the part should be visible (true) or hidden (false).

                                      -

                                    Returns boolean

                                    Returns true if the visibility was successfully updated, otherwise returns false.

                                    -
                                  • Sets the size of the container to the specified width and height. +

                                  • visible: boolean

                                    A boolean indicating whether the part should be visible (true) or hidden (false).

                                    +

                                  Returns boolean

                                  Returns true if the visibility was successfully updated, otherwise returns false.

                                  +
                                  • Sets the size of the container to the specified width and height. This is more efficient than setting width and height separately as it only recalculates bounds once.

                                    Parameters

                                    • value: number | Optional<Size, "height">

                                      This can be either a number or a [Size]Size object.

                                      -
                                    • Optionalheight: number

                                      The height to set. Defaults to the value of width if not provided.

                                      -

                                    Returns void

                                    // Basic size setting
                                    container.setSize(100, 200);

                                    // Set uniform size
                                    container.setSize(100); // Sets both width and height to 100 +
                                  • Optionalheight: number

                                    The height to set. Defaults to the value of width if not provided.

                                    +

                                  Returns void

                                  // Basic size setting
                                  container.setSize(100, 200);

                                  // Set uniform size
                                  container.setSize(100); // Sets both width and height to 100
                                  -
                                  • Setup

                                    +
                                  • Setup

                                    Parameters

                                    • animePackName: string

                                      The name of animePack(SSAE).

                                      -
                                    • animeName: string

                                      The name of animation.

                                      -

                                    Returns void

                                  • Swaps the position of 2 Containers within this container.

                                    -

                                    Type Parameters

                                    • U extends ContainerChild | IRenderLayer

                                    Parameters

                                    • child: U

                                      First container to swap

                                      -
                                    • child2: U

                                      Second container to swap

                                      -

                                    Returns void

                                    // Basic swap
                                    container.swapChildren(sprite1, sprite2);

                                    // With error handling
                                    try {
                                    container.swapChildren(sprite1, sprite2);
                                    } catch (e) {
                                    console.warn('One or both children not found in container');
                                    } +
                                  • animeName: string

                                    The name of animation.

                                    +

                                  Returns void

                                  • Swaps the position of 2 Containers within this container.

                                    +

                                    Type Parameters

                                    • U extends ContainerChild

                                    Parameters

                                    • child: U

                                      First container to swap

                                      +
                                    • child2: U

                                      Second container to swap

                                      +

                                    Returns void

                                    // Basic swap
                                    container.swapChildren(sprite1, sprite2);

                                    // With error handling
                                    try {
                                    container.swapChildren(sprite1, sprite2);
                                    } catch (e) {
                                    console.warn('One or both children not found in container');
                                    }
                                      @@ -1434,14 +1437,14 @@
                                    • Container#setChildIndex For direct index placement
                                    • Container#getChildIndex For getting current positions
                                    -
                                  • エラー処理

                                    +
                                  • Calculates the global position of a point relative to this container. +

                                  Returns void

                                  • Calculates the global position of a point relative to this container. Takes into account the container hierarchy and transforms.

                                    Type Parameters

                                    • P extends PointData = Point

                                    Parameters

                                    • position: PointData

                                      The local point to convert

                                      -
                                    • Optionalpoint: P

                                      Optional point to store the result

                                      -
                                    • OptionalskipUpdate: boolean

                                      Whether to skip transform updates

                                      -

                                    Returns P

                                    The global position

                                    +
                                  • Optionalpoint: P

                                    Optional point to store the result

                                    +
                                  • OptionalskipUpdate: boolean

                                    Whether to skip transform updates

                                    +

                                  Returns P

                                  The global position

                                  // Basic point conversion
                                  const localPoint = { x: 10, y: 20 };
                                  const globalPoint = container.toGlobal(localPoint);

                                  // With point reuse
                                  const reusePoint = new Point();
                                  container.toGlobal(localPoint, reusePoint);

                                  // Performance optimization
                                  const fastPoint = container.toGlobal(
                                  { x: 50, y: 50 },
                                  undefined,
                                  true // Skip transform update
                                  );
                                  @@ -1452,10 +1455,10 @@
                                  • Calculates the local position of the container relative to another point. Converts coordinates from any coordinate space to this container's local coordinate space.

                                    Type Parameters

                                    • P extends PointData = Point

                                    Parameters

                                    • position: PointData

                                      The world origin to calculate from

                                      -
                                    • Optionalfrom: Container

                                      The Container to calculate the global position from

                                      -
                                    • Optionalpoint: P

                                      A Point object in which to store the value

                                      -
                                    • OptionalskipUpdate: boolean

                                      Should we skip the update transform

                                      -

                                    Returns P

                                    A point object representing the position in local space

                                    +
                                  • Optionalfrom: Container

                                    The Container to calculate the global position from

                                    +
                                  • Optionalpoint: P

                                    A Point object in which to store the value

                                    +
                                  • OptionalskipUpdate: boolean

                                    Should we skip the update transform

                                    +

                                  Returns P

                                  A point object representing the position in local space

                                  // Basic coordinate conversion
                                  const worldPoint = { x: 100, y: 100 };
                                  const localPos = container.toLocal(worldPoint);

                                  // Convert from another container
                                  const fromSprite = new Sprite(texture);
                                  fromSprite.position.set(50, 50);
                                  const pointInSprite = { x: 10, y: 10 };
                                  const localPoint = container.toLocal(pointInSprite, fromSprite);

                                  // With point reuse for performance
                                  const reusePoint = new Point();
                                  container.toLocal(worldPoint, undefined, reusePoint);

                                  // Skip transform update for static objects
                                  const fastLocal = container.toLocal(
                                  worldPoint,
                                  undefined,
                                  undefined,
                                  true
                                  );
                                  @@ -1463,13 +1466,13 @@
                                • Container#toGlobal For reverse conversion
                                • Container#getGlobalPosition For container position
                                • -
                                  • Update is called PIXI.ticker

                                    +
                                  • Update is called PIXI.ticker

                                    Parameters

                                    • delta: number

                                      expected 1

                                      -
                                    • rewindAfterReachingEndFrame: boolean = true

                                    Returns void

                                  • Updates the local transform.

                                    -

                                    Returns void

                                  • Updates the transform properties of the container. +

                                  • rewindAfterReachingEndFrame: boolean = true

                                  Returns void

                                  • Updates the local transform.

                                    +

                                    Returns void

                                  • Updates the transform properties of the container. Allows partial updates of transform properties for optimized manipulation.

                                    Parameters

                                    • opts: Partial<UpdateTransformOptions>

                                      Transform options to update

                                      -
                                      • x

                                        The x position

                                        +
                                        • x

                                          The x position

                                        • y

                                          The y position

                                        • scaleX

                                          The x-axis scale factor

                                        • scaleY

                                          The y-axis scale factor

                                          @@ -1486,7 +1489,7 @@
                                        • Container#setFromMatrix For matrix-based transforms
                                        • Container#position For direct position access
                                        -
                                  • Mixes all enumerable properties and methods from a source object to Container.

                                    +
                                  • Mixes all enumerable properties and methods from a source object to Container.

                                    Parameters

                                    • source: Dict<any>

                                      The source of properties and methods to mix in.

                                      -

                                    Returns void

                                    since 8.8.0

                                    -
                                  +

                                  Returns void

                                  since 8.8.0

                                  +
                                  diff --git a/docs/ss6player_pixi_api/classes/SS6PlayerInstanceKeyParam.html b/docs/ss6player_pixi_api/classes/SS6PlayerInstanceKeyParam.html index 1f169f1e..74009fb4 100644 --- a/docs/ss6player_pixi_api/classes/SS6PlayerInstanceKeyParam.html +++ b/docs/ss6player_pixi_api/classes/SS6PlayerInstanceKeyParam.html @@ -1,5 +1,5 @@ SS6PlayerInstanceKeyParam | ss6player-pixi
                                  ss6player-pixi
                                    Preparing search index...

                                    Class SS6PlayerInstanceKeyParam

                                    インスタンス差し替え用のキーパラメーター

                                    -
                                    Index

                                    Constructors

                                    Index

                                    Constructors

                                    Properties

                                    Constructors

                                    Properties

                                    independent: boolean = false
                                    infinity: boolean = false
                                    pingpong: boolean = false
                                    refEndframe: number = 0
                                    refloopNum: number = 0
                                    refSpeed: number = 1.0
                                    refStartframe: number = 0
                                    reverse: boolean = false
                                    +

                                    Constructors

                                    Properties

                                    independent: boolean = false
                                    infinity: boolean = false
                                    pingpong: boolean = false
                                    refEndframe: number = 0
                                    refloopNum: number = 0
                                    refSpeed: number = 1.0
                                    refStartframe: number = 0
                                    reverse: boolean = false
                                    diff --git a/docs/ss6player_pixi_api/classes/SS6Project.html b/docs/ss6player_pixi_api/classes/SS6Project.html index 9afec92d..4a09dbf8 100644 --- a/docs/ss6player_pixi_api/classes/SS6Project.html +++ b/docs/ss6player_pixi_api/classes/SS6Project.html @@ -1,4 +1,4 @@ -SS6Project | ss6player-pixi
                                    ss6player-pixi
                                      Preparing search index...

                                      Class SS6Project

                                      Index

                                      Constructors

                                      constructor +SS6Project | ss6player-pixi
                                      ss6player-pixi
                                        Preparing search index...

                                        Class SS6Project

                                        Index

                                        Constructors

                                        Properties

                                        fbObj onComplete rootPath @@ -10,10 +10,10 @@ getTexture

                                        Constructors

                                        • SS6Project (used for several SS6Player(s))

                                          Parameters

                                          • ssfbPath: string

                                            ssfb file path

                                            -
                                          • OptionalonComplete: onCompleteCallback

                                            result callback

                                            -

                                          Returns SS6Project

                                        • SS6Project (used for several SS6Player(s))

                                          +
                                        • OptionalonComplete: onCompleteCallback

                                          result callback

                                          +

                                        Returns SS6Project

                                      • SS6Project (used for several SS6Player(s))

                                        Parameters

                                        • ssfbName: string

                                          ssfb file name

                                          -
                                        • bytes: Uint8Array

                                          ssfb file data

                                          -
                                        • imageBinaryMap: { [key: string]: Uint8Array<ArrayBufferLike> }

                                          Image file data

                                          -
                                        • OptionalonComplete: onCompleteCallback

                                          result callback

                                          -

                                        Returns SS6Project

                                      • Properties

                                        fbObj: ProjectData
                                        onComplete: onCompleteCallback
                                        rootPath: string
                                        ssfbFile: string
                                        ssfbPath: string
                                        status: RESOURCE_PROGRESS

                                        Methods

                                        +
                                      • bytes: Uint8Array

                                        ssfb file data

                                        +
                                      • imageBinaryMap: { [key: string]: Uint8Array<ArrayBufferLike> }

                                        Image file data

                                        +
                                      • OptionalonComplete: onCompleteCallback

                                        result callback

                                        +
                                      • Returns SS6Project

                                        Properties

                                        fbObj: ProjectData
                                        onComplete: onCompleteCallback
                                        rootPath: string
                                        ssfbFile: string
                                        ssfbPath: string
                                        status: RESOURCE_PROGRESS

                                        Methods

                                        diff --git a/docs/ss6player_pixi_api/index.html b/docs/ss6player_pixi_api/index.html index 8a4bd6ed..136c192d 100644 --- a/docs/ss6player_pixi_api/index.html +++ b/docs/ss6player_pixi_api/index.html @@ -1,32 +1,46 @@ -ss6player-pixi
                                        ss6player-pixi
                                          Preparing search index...

                                          ss6player-pixi

                                          SS6Player for pixi.js

                                          OPTPiX SpriteStudio 7.0OPTPiX SpriteStudio 6 で制作したアニメーションを pixi.js v8 で再生するライブラリです。

                                          -

                                          リリース最新版のライブラリソースは こちら(minified) になります。

                                          -

                                          リリース最新版のデモは こちら になります。

                                          +ss6player-pixi
                                          ss6player-pixi
                                            Preparing search index...

                                            ss6player-pixi

                                            SS6Player for pixi.js

                                            +

                                            OPTPiX SpriteStudio 7.0OPTPiX SpriteStudio 6 で制作したアニメーションを pixi.js v8 で再生するライブラリです。

                                            + +

                                            リリース最新版のライブラリソースは こちら(minified) になります。

                                            + +

                                            リリース最新版のデモは こちら になります。

                                            UI デモは こちら になります。

                                            -

                                            ss6player-pixi のライセンスは LISENCE となります。

                                            + +

                                            ss6player-pixi のライセンスは LISENCE となります。

                                            ss6player-pixi は依存ライブラリの FlatBuffersssfblibss6player-lib をバンドルしています。 ForWeb のコンポーネントが依存しているサードパーティライブラリのライセンスは ThirdPartyLicenses.md を参照してください。

                                            -

                                            SpriteStudio 6 のプロジェクトファイル sspj からアニメーションデータファイル ssfb ファイルをコンバートします。 コンバートには Ss6Converter を利用します。

                                            + +

                                            SpriteStudio 6 のプロジェクトファイル sspj からアニメーションデータファイル ssfb ファイルをコンバートします。 コンバートには Ss6Converter を利用します。

                                            Ss6Converter は SpriteStudio6-SDK に同封するツールです。利用方法に関してはこちらを参照してください

                                            -

                                            ss6player-pixi の API リファレンスはこちらです。

                                            -

                                            Player ディレクトリの index.htmlsample.js を参考にしてください。

                                            + + +

                                            ss6player-pixi の API リファレンスはこちらです。

                                            + +

                                            Player ディレクトリの index.htmlsample.js を参考にしてください。

                                            デモ ページを閲覧するか、あるいはローカル環境で動作確認ができます。

                                            -

                                            For Developer

                                            ライブラリを開発する方、あるいは開発版のライブラリの動作を確認したい方向けです。

                                            -

                                            ソースの取得方法やビルドに必要な npm のインストール手順は wiki を参照してください。

                                            -

                                            SS6PlayerForWeb/ ディレクトリ上で下記コマンドを実行すると、 packages/ 以下の全ライブラリをビルドします。

                                            +

                                            For Developer

                                            +

                                            ライブラリを開発する方、あるいは開発版のライブラリの動作を確認したい方向けです。

                                            + +

                                            ソースの取得方法やビルドに必要な npm のインストール手順は wiki を参照してください。

                                            + +

                                            SS6PlayerForWeb/ ディレクトリ上で下記コマンドを実行すると、 packages/ 以下の全ライブラリをビルドします。

                                            cd SS6PlayerForWeb
                                            npm i
                                            npm run build

                                            ビルドが成功すると ss6player-pixi.umd.jsss6player-pixi.es6.jsSS6PlayerForWeb/packages/ss6player-pixi/dist ディレクトリ以下に生成されます。

                                            -

                                            全ビルド実行後は SS6PlayerForWeb/packages/ss6player-pixi ディレクトリ上で ss6player-pixi の単独ビルドが可能になります。

                                            + +

                                            全ビルド実行後は SS6PlayerForWeb/packages/ss6player-pixi ディレクトリ上で ss6player-pixi の単独ビルドが可能になります。

                                            cd SS6PlayerForWeb/packages/ss6player-pixi
                                            npm run build
                                            -

                                            全ビルド後、SS6PlayerForWeb/packages/ss6player-pixi/ ディレクトリ上で下記コマンドを実行してください。

                                            + +

                                            全ビルド後、SS6PlayerForWeb/packages/ss6player-pixi/ ディレクトリ上で下記コマンドを実行してください。

                                            ローカル環境で http サーバが起動し、ブラウザ上で Player ディレクトリのサンプルを表示します。

                                            cd SS6PlayerForWeb/packages/ss6player-pixi
                                            npm run view
                                            -

                                            SS6PlayerForWeb/packages/ss6player-pixi ディレクトリ上で npm run start を実行すると、 src/ ディレクトリのソースファイルが変更されると自動的に単独ビルドが走るようになります。

                                            + +

                                            SS6PlayerForWeb/packages/ss6player-pixi ディレクトリ上で npm run start を実行すると、 src/ ディレクトリのソースファイルが変更されると自動的に単独ビルドが走るようになります。

                                            ローカル環境での動作確認 と併用するとスムーズに動作確認が行なえます。

                                            cd SS6PlayerForWeb/packages/ss6player-pixi
                                            npm run start
                                            diff --git a/docs/ss6player_viewer_api/assets/icons.js b/docs/ss6player_viewer_api/assets/icons.js index 58882d76..3ae8f55e 100644 --- a/docs/ss6player_viewer_api/assets/icons.js +++ b/docs/ss6player_viewer_api/assets/icons.js @@ -3,7 +3,7 @@ function addIcons() { if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons); const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg")); - svg.innerHTML = `MMNEPVFCICPMFPCPTTAAATR`; + svg.innerHTML = `MMNEPVFCICPMFPCPTTAAATR`; svg.style.display = "none"; if (location.protocol === "file:") updateUseElements(); } diff --git a/docs/ss6player_viewer_api/assets/icons.svg b/docs/ss6player_viewer_api/assets/icons.svg index 50ad5799..10db10be 100644 --- a/docs/ss6player_viewer_api/assets/icons.svg +++ b/docs/ss6player_viewer_api/assets/icons.svg @@ -1 +1 @@ -MMNEPVFCICPMFPCPTTAAATR \ No newline at end of file +MMNEPVFCICPMFPCPTTAAATR \ No newline at end of file diff --git a/docs/ss6player_viewer_api/assets/main.js b/docs/ss6player_viewer_api/assets/main.js index 19bbb7a7..64b80ab2 100644 --- a/docs/ss6player_viewer_api/assets/main.js +++ b/docs/ss6player_viewer_api/assets/main.js @@ -1,7 +1,7 @@ "use strict"; window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings.","hierarchy_expand":"Expand","hierarchy_collapse":"Collapse","folder":"Folder","search_index_not_available":"The search index is not available","search_no_results_found_for_0":"No results found for {0}","kind_1":"Project","kind_2":"Module","kind_4":"Namespace","kind_8":"Enumeration","kind_16":"Enumeration Member","kind_32":"Variable","kind_64":"Function","kind_128":"Class","kind_256":"Interface","kind_512":"Constructor","kind_1024":"Property","kind_2048":"Method","kind_4096":"Call Signature","kind_8192":"Index Signature","kind_16384":"Constructor Signature","kind_32768":"Parameter","kind_65536":"Type Literal","kind_131072":"Type Parameter","kind_262144":"Accessor","kind_524288":"Get Signature","kind_1048576":"Set Signature","kind_2097152":"Type Alias","kind_4194304":"Reference","kind_8388608":"Document"}; -"use strict";(()=>{var Ke=Object.create;var he=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Xe=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var et=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var tt=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ze(e))!Ye.call(t,i)&&i!==n&&he(t,i,{get:()=>e[i],enumerable:!(r=Ge(e,i))||r.enumerable});return t};var nt=(t,e,n)=>(n=t!=null?Ke(Xe(t)):{},tt(e||!t||!t.__esModule?he(n,"default",{value:t,enumerable:!0}):n,t));var ye=et((me,ge)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,l],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(oc?d+=2:a==c&&(n+=r[l+1]*i[d+1],l+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}if(s.str.length==0&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),f=s.str.charAt(1),p;f in s.node.edges?p=s.node.edges[f]:(p=new t.TokenSet,s.node.edges[f]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),c=0;c1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof me=="object"?ge.exports=n():e.lunr=n()}(this,function(){return t})})()});var M,G={getItem(){return null},setItem(){}},K;try{K=localStorage,M=K}catch{K=G,M=G}var S={getItem:t=>M.getItem(t),setItem:(t,e)=>M.setItem(t,e),disableWritingLocalStorage(){M=G},disable(){localStorage.clear(),M=G},enable(){M=K}};window.TypeDoc||={disableWritingLocalStorage(){S.disableWritingLocalStorage()},disableLocalStorage:()=>{S.disable()},enableLocalStorage:()=>{S.enable()}};window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",search_index_not_available:"The search index is not available",search_no_results_found_for_0:"No results found for {0}",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var pe=[];function X(t,e){pe.push({selector:e,constructor:t})}var Z=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){pe.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!rt(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function rt(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var fe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var Ie=nt(ye(),1);async function R(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}var Y="closing",ae="tsd-overlay";function it(){let t=Math.abs(window.innerWidth-document.documentElement.clientWidth);document.body.style.overflow="hidden",document.body.style.paddingRight=`${t}px`}function st(){document.body.style.removeProperty("overflow"),document.body.style.removeProperty("padding-right")}function xe(t,e){t.addEventListener("animationend",()=>{t.classList.contains(Y)&&(t.classList.remove(Y),document.getElementById(ae)?.remove(),t.close(),st())}),t.addEventListener("cancel",n=>{n.preventDefault(),ve(t)}),e?.closeOnClick&&document.addEventListener("click",n=>{t.open&&!t.contains(n.target)&&ve(t)},!0)}function Ee(t){if(t.open)return;let e=document.createElement("div");e.id=ae,document.body.appendChild(e),t.showModal(),it()}function ve(t){if(!t.open)return;document.getElementById(ae)?.classList.add(Y),t.classList.add(Y)}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var be=document.head.appendChild(document.createElement("style"));be.dataset.for="filters";var le={};function we(t){for(let e of t.split(/\s+/))if(le.hasOwnProperty(e)&&!le[e])return!0;return!1}var ee=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),be.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +"use strict";(()=>{var Ke=Object.create;var he=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Xe=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var et=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var tt=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ze(e))!Ye.call(t,i)&&i!==n&&he(t,i,{get:()=>e[i],enumerable:!(r=Ge(e,i))||r.enumerable});return t};var nt=(t,e,n)=>(n=t!=null?Ke(Xe(t)):{},tt(e||!t||!t.__esModule?he(n,"default",{value:t,enumerable:!0}):n,t));var ye=et((me,ge)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=(function(e){return function(n){e.console&&console.warn&&console.warn(n)}})(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,l],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(oc?d+=2:a==c&&(n+=r[l+1]*i[d+1],l+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}if(s.str.length==0&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),f=s.str.charAt(1),p;f in s.node.edges?p=s.node.edges[f]:(p=new t.TokenSet,s.node.edges[f]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),c=0;c1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},(function(e,n){typeof define=="function"&&define.amd?define(n):typeof me=="object"?ge.exports=n():e.lunr=n()})(this,function(){return t})})()});var M,G={getItem(){return null},setItem(){}},K;try{K=localStorage,M=K}catch{K=G,M=G}var S={getItem:t=>M.getItem(t),setItem:(t,e)=>M.setItem(t,e),disableWritingLocalStorage(){M=G},disable(){localStorage.clear(),M=G},enable(){M=K}};window.TypeDoc||={disableWritingLocalStorage(){S.disableWritingLocalStorage()},disableLocalStorage:()=>{S.disable()},enableLocalStorage:()=>{S.enable()}};window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",search_index_not_available:"The search index is not available",search_no_results_found_for_0:"No results found for {0}",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var pe=[];function X(t,e){pe.push({selector:e,constructor:t})}var Z=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){pe.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!rt(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function rt(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var fe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var Ie=nt(ye(),1);async function R(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}var Y="closing",ae="tsd-overlay";function it(){let t=Math.abs(window.innerWidth-document.documentElement.clientWidth);document.body.style.overflow="hidden",document.body.style.paddingRight=`${t}px`}function st(){document.body.style.removeProperty("overflow"),document.body.style.removeProperty("padding-right")}function xe(t,e){t.addEventListener("animationend",()=>{t.classList.contains(Y)&&(t.classList.remove(Y),document.getElementById(ae)?.remove(),t.close(),st())}),t.addEventListener("cancel",n=>{n.preventDefault(),ve(t)}),e?.closeOnClick&&document.addEventListener("click",n=>{t.open&&!t.contains(n.target)&&ve(t)},!0)}function Ee(t){if(t.open)return;let e=document.createElement("div");e.id=ae,document.body.appendChild(e),t.showModal(),it()}function ve(t){if(!t.open)return;document.getElementById(ae)?.classList.add(Y),t.classList.add(Y)}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var be=document.head.appendChild(document.createElement("style"));be.dataset.for="filters";var le={};function we(t){for(let e of t.split(/\s+/))if(le.hasOwnProperty(e)&&!le[e])return!0;return!1}var ee=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),be.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } `,this.app.updateIndexVisibility()}fromLocalStorage(){let e=S.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){S.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),le[`tsd-is-${this.el.name}`]=this.value,this.app.filterChanged(),this.app.updateIndexVisibility()}};var Le=0;async function Se(t,e){if(!window.searchData)return;let n=await R(window.searchData);t.data=n,t.index=Ie.Index.load(n.index),e.innerHTML=""}function _e(){let t=document.getElementById("tsd-search-trigger"),e=document.getElementById("tsd-search"),n=document.getElementById("tsd-search-input"),r=document.getElementById("tsd-search-results"),i=document.getElementById("tsd-search-script"),s=document.getElementById("tsd-search-status");if(!(t&&e&&n&&r&&i&&s))throw new Error("Search controls missing");let o={base:document.documentElement.dataset.base};o.base.endsWith("/")||(o.base+="/"),i.addEventListener("error",()=>{let a=window.translations.search_index_not_available;Pe(s,a)}),i.addEventListener("load",()=>{Se(o,s)}),Se(o,s),ot({trigger:t,searchEl:e,results:r,field:n,status:s},o)}function ot(t,e){let{field:n,results:r,searchEl:i,status:s,trigger:o}=t;xe(i,{closeOnClick:!0});function a(){Ee(i),n.setSelectionRange(0,n.value.length)}o.addEventListener("click",a),n.addEventListener("input",fe(()=>{at(r,n,s,e)},200)),n.addEventListener("keydown",l=>{if(r.childElementCount===0||l.ctrlKey||l.metaKey||l.altKey)return;let d=n.getAttribute("aria-activedescendant"),f=d?document.getElementById(d):null;if(f){let p=!1,v=!1;switch(l.key){case"Home":case"End":case"ArrowLeft":case"ArrowRight":v=!0;break;case"ArrowDown":case"ArrowUp":p=l.shiftKey;break}(p||v)&&ke(n)}if(!l.shiftKey)switch(l.key){case"Enter":f?.querySelector("a")?.click();break;case"ArrowUp":Te(r,n,f,-1),l.preventDefault();break;case"ArrowDown":Te(r,n,f,1),l.preventDefault();break}});function c(){ke(n)}n.addEventListener("change",c),n.addEventListener("blur",c),n.addEventListener("click",c),document.body.addEventListener("keydown",l=>{if(l.altKey||l.metaKey||l.shiftKey)return;let d=l.ctrlKey&&l.key==="k",f=!l.ctrlKey&&!ut()&&l.key==="/";(d||f)&&(l.preventDefault(),a())})}function at(t,e,n,r){if(!r.index||!r.data)return;t.innerHTML="",n.innerHTML="",Le+=1;let i=e.value.trim(),s;if(i){let a=i.split(" ").map(c=>c.length?`*${c}*`:"").join(" ");s=r.index.search(a).filter(({ref:c})=>{let l=r.data.rows[Number(c)].classes;return!l||!we(l)})}else s=[];if(s.length===0&&i){let a=window.translations.search_no_results_found_for_0.replace("{0}",` "${te(i)}" `);Pe(n,a);return}for(let a=0;ac.score-a.score);let o=Math.min(10,s.length);for(let a=0;a`,f=Ce(c.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(f+=` (score: ${s[a].score.toFixed(2)})`),c.parent&&(f=` ${Ce(c.parent,i)}.${f}`);let p=document.createElement("li");p.id=`tsd-search:${Le}-${a}`,p.role="option",p.ariaSelected="false",p.classList.value=c.classes??"";let v=document.createElement("a");v.tabIndex=-1,v.href=r.base+c.url,v.innerHTML=d+`${f}`,p.append(v),t.appendChild(p)}}function Te(t,e,n,r){let i;if(r===1?i=n?.nextElementSibling||t.firstElementChild:i=n?.previousElementSibling||t.lastElementChild,i!==n){if(!i||i.role!=="option"){console.error("Option missing");return}i.ariaSelected="true",i.scrollIntoView({behavior:"smooth",block:"nearest"}),e.setAttribute("aria-activedescendant",i.id),n?.setAttribute("aria-selected","false")}}function ke(t){let e=t.getAttribute("aria-activedescendant");(e?document.getElementById(e):null)?.setAttribute("aria-selected","false"),t.setAttribute("aria-activedescendant","")}function Ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(te(t.substring(s,o)),`${te(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(te(t.substring(s))),i.join("")}var lt={"&":"&","<":"<",">":">","'":"'",'"':"""};function te(t){return t.replace(/[&<>"'"]/g,e=>lt[e])}function Pe(t,e){t.innerHTML=e?`
                                            ${e}
                                            `:""}var ct=["button","checkbox","file","hidden","image","radio","range","reset","submit"];function ut(){let t=document.activeElement;return t?t.isContentEditable||t.tagName==="TEXTAREA"||t.tagName==="SEARCH"?!0:t.tagName==="INPUT"&&!ct.includes(t.type):!1}var D="mousedown",Me="mousemove",$="mouseup",ne={x:0,y:0},Qe=!1,ce=!1,dt=!1,F=!1,Oe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(Oe?"is-mobile":"not-mobile");Oe&&"ontouchstart"in document.documentElement&&(dt=!0,D="touchstart",Me="touchmove",$="touchend");document.addEventListener(D,t=>{ce=!0,F=!1;let e=D=="touchstart"?t.targetTouches[0]:t;ne.y=e.pageY||0,ne.x=e.pageX||0});document.addEventListener(Me,t=>{if(ce&&!F){let e=D=="touchstart"?t.targetTouches[0]:t,n=ne.x-(e.pageX||0),r=ne.y-(e.pageY||0);F=Math.sqrt(n*n+r*r)>10}});document.addEventListener($,()=>{ce=!1});document.addEventListener("click",t=>{Qe&&(t.preventDefault(),t.stopImmediatePropagation(),Qe=!1)});var re=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener($,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(D,n=>this.onDocumentPointerDown(n)),document.addEventListener($,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){F||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!F&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var ue=new Map,de=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener("toggle",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;S.setItem(this.key,e.toString())}},ie=class extends I{constructor(e){super(e);let n=this.el.querySelector("summary"),r=n.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`,s;if(ue.has(i))s=ue.get(i);else{let o=S.getItem(i),a=o?o==="true":this.el.open;s=new de(i,a),ue.set(i,s)}s.add(this.el)}};function He(t){let e=S.getItem("tsd-theme")||"os";t.value=e,Ae(e),t.addEventListener("change",()=>{S.setItem("tsd-theme",t.value),Ae(t.value)})}function Ae(t){document.documentElement.dataset.theme=t}var se;function Ne(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Re),Re())}async function Re(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let e=await R(window.navigationData);se=document.documentElement.dataset.base,se.endsWith("/")||(se+="/"),t.innerHTML="";for(let n of e)Be(n,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Be(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',De(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let c=a.appendChild(document.createElement("ul"));c.className="tsd-nested-navigation";for(let l of t.children)Be(l,c,i)}else De(t,r,t.class)}function De(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));if(r.href=se+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&(r.classList.add("current"),r.ariaCurrent="page"),t.kind){let i=window.translations[`kind_${t.kind}`].replaceAll('"',""");r.innerHTML=``}r.appendChild(Fe(t.text,document.createElement("span")))}else{let r=e.appendChild(document.createElement("span")),i=window.translations.folder.replaceAll('"',""");r.innerHTML=``,r.appendChild(Fe(t.text,document.createElement("span")))}}function Fe(t,e){let n=t.split(/(?<=[^A-Z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|(?<=[_-])(?=[^_-])/);for(let r=0;r{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!="LI";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!=="true"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(".tsd-full-hierarchy [data-refl]")){let i=r.querySelector("ul");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll("[id]").forEach(s=>{s.removeAttribute("id")}),i.querySelectorAll("[data-dropdown]").forEach(s=>{s.dataset.dropdown="false"});for(let s of document.querySelectorAll(`[data-refl="${r}"]`)){let o=gt(),a=s.querySelector("ul");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function pt(){let t=document.getElementById("tsd-hierarchy-script");t&&(t.addEventListener("load",Ve),Ve())}async function Ve(){let t=document.querySelector(".tsd-panel.tsd-hierarchy:has(h4 a)");if(!t||!window.hierarchyData)return;let e=+t.dataset.refl,n=await R(window.hierarchyData),r=t.querySelector("ul"),i=document.createElement("ul");if(i.classList.add("tsd-hierarchy"),ft(i,n,e),r.querySelectorAll("li").length==i.querySelectorAll("li").length)return;let s=document.createElement("span");s.classList.add("tsd-hierarchy-toggle"),s.textContent=window.translations.hierarchy_expand,t.querySelector("h4 a")?.insertAdjacentElement("afterend",s),s.insertAdjacentText("beforebegin",", "),s.addEventListener("click",()=>{s.textContent===window.translations.hierarchy_expand?(r.insertAdjacentElement("afterend",i),r.remove(),s.textContent=window.translations.hierarchy_collapse):(i.insertAdjacentElement("afterend",r),i.remove(),s.textContent=window.translations.hierarchy_expand)})}function ft(t,e,n){let r=e.roots.filter(i=>mt(e,i,n));for(let i of r)t.appendChild(je(e,i,n))}function je(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement("li");if(s.classList.add("tsd-hierarchy-item"),e===n){let o=s.appendChild(document.createElement("span"));o.textContent=i.name,o.classList.add("tsd-hierarchy-target")}else{for(let a of i.uniqueNameParents||[]){let c=t.reflections[a],l=s.appendChild(document.createElement("a"));l.textContent=c.name,l.href=oe+c.url,l.className=c.class+" tsd-signature-type",s.append(document.createTextNode("."))}let o=s.appendChild(document.createElement("a"));o.textContent=t.reflections[e].name,o.href=oe+i.url,o.className=i.class+" tsd-signature-type"}if(i.children){let o=s.appendChild(document.createElement("ul"));o.classList.add("tsd-hierarchy");for(let a of i.children){let c=je(t,a,n,r);c&&o.appendChild(c)}}return r.delete(e),s}function mt(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function gt(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width","20"),t.setAttribute("height","20"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.innerHTML='',t}X(re,"a[data-toggle]");X(ie,".tsd-accordion");X(ee,".tsd-filter-item input[type=checkbox]");var qe=document.getElementById("tsd-theme");qe&&He(qe);var yt=new Z;Object.defineProperty(window,"app",{value:yt});_e();Ne();$e();"virtualKeyboard"in navigator&&(navigator.virtualKeyboard.overlaysContent=!0);})(); /*! Bundled license information: diff --git a/docs/ss6player_viewer_api/assets/style.css b/docs/ss6player_viewer_api/assets/style.css index 5ba5a2a9..44328e99 100644 --- a/docs/ss6player_viewer_api/assets/style.css +++ b/docs/ss6player_viewer_api/assets/style.css @@ -1595,9 +1595,9 @@ .container-main { grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax( - 0, - 20rem - ); + 0, + 20rem + ); grid-template-areas: "sidebar content toc"; } diff --git a/docs/ss6player_viewer_api/classes/Player.html b/docs/ss6player_viewer_api/classes/Player.html index a2d80a5f..420c1e2e 100644 --- a/docs/ss6player_viewer_api/classes/Player.html +++ b/docs/ss6player_viewer_api/classes/Player.html @@ -1,4 +1,4 @@ -Player | ss6player-viewer
                                            ss6player-viewer
                                              Preparing search index...

                                              Class Player

                                              Index

                                              Constructors

                                              constructor +Player | ss6player-viewer
                                              ss6player-viewer
                                                Preparing search index...

                                                Class Player

                                                Index

                                                Constructors

                                                Properties

                                                Constructors

                                                Properties

                                                canvasHeight: number = null
                                                canvasWidth: number = null
                                                infinityFlag: boolean = true
                                                mainContainer: MainContainer = null
                                                onComplete: () => void
                                                onPlayStateChangeCallback: (isPlaying: boolean, isPausing: boolean) => void = null
                                                onUpdateCallback: (player: AnimationContainer) => void = null
                                                onUserDataCallback: (data: any) => void = null
                                                pixiApplication: Application = null
                                                playEndCallback: (player: AnimationContainer) => void = null
                                                projectData: SS6Project
                                                textureContainer: AnimationContainer = null

                                                Accessors

                                                Methods

                                                • Returns { [key: string]: any }

                                                • Returns any

                                                • Returns any

                                                • Returns any

                                                • Returns AnimationContainer

                                                • Parameters

                                                  • canvasWrapperElement: any
                                                  • Optionaloptions: Partial<ApplicationOptions>

                                                  Returns Promise<void>

                                                • アニメーションを再生する

                                                  +

                                                Constructors

                                                Properties

                                                canvasHeight: number = null
                                                canvasWidth: number = null
                                                infinityFlag: boolean = true
                                                mainContainer: MainContainer = null
                                                onComplete: () => void
                                                onPlayStateChangeCallback: (isPlaying: boolean, isPausing: boolean) => void = null
                                                onUpdateCallback: (player: AnimationContainer) => void = null
                                                onUserDataCallback: (data: any) => void = null
                                                pixiApplication: Application = null
                                                playEndCallback: (player: AnimationContainer) => void = null
                                                projectData: SS6Project
                                                textureContainer: AnimationContainer = null

                                                Accessors

                                                Methods

                                                • Returns { [key: string]: any }

                                                • Returns any

                                                • Returns any

                                                • Returns any

                                                • Returns AnimationContainer

                                                • Parameters

                                                  • canvasWrapperElement: any
                                                  • Optionaloptions: Partial<ApplicationOptions>

                                                  Returns Promise<void>

                                                • アニメーションを再生する

                                                  Parameters

                                                  • animePackName: string

                                                    アニメパック名

                                                    -
                                                  • animeName: string

                                                    アニメーション名

                                                    -

                                                  Returns void

                                                • Download ssfb file and dependencies image files, and load.

                                                  -

                                                  Parameters

                                                  • url: string

                                                  Returns void

                                                • Download sspkg file, decompress sspkg and load.

                                                  -

                                                  Parameters

                                                  • url: string

                                                  Returns void

                                                • Parameters

                                                  • movementX: number
                                                  • movementY: number

                                                  Returns void

                                                • Parameters

                                                  • _startframe: number = -1
                                                  • _endframe: number = -1
                                                  • _loops: number = -1

                                                  Returns void

                                                • Parameters

                                                  • value: number

                                                  Returns void

                                                • Parameters

                                                  • frameNumber: any

                                                  Returns void

                                                • デフォルトのポジションを設定する

                                                  -

                                                  Returns void

                                                • デフォルトのスケール率を設定

                                                  -

                                                  Returns void

                                                • Parameters

                                                  • isInfinity: boolean

                                                  Returns void

                                                • Parameters

                                                  • zoomPercent: number

                                                  Returns void

                                                +
                                              • animeName: string

                                                アニメーション名

                                                +
                                              • Returns void

                                                • Download ssfb file and dependencies image files, and load.

                                                  +

                                                  Parameters

                                                  • url: string

                                                  Returns void

                                                • Download sspkg file, decompress sspkg and load.

                                                  +

                                                  Parameters

                                                  • url: string

                                                  Returns void

                                                • Parameters

                                                  • movementX: number
                                                  • movementY: number

                                                  Returns void

                                                • Parameters

                                                  • _startframe: number = -1
                                                  • _endframe: number = -1
                                                  • _loops: number = -1

                                                  Returns void

                                                • Parameters

                                                  • value: number

                                                  Returns void

                                                • Parameters

                                                  • frameNumber: any

                                                  Returns void

                                                • デフォルトのポジションを設定する

                                                  +

                                                  Returns void

                                                • デフォルトのスケール率を設定

                                                  +

                                                  Returns void

                                                • Parameters

                                                  • isInfinity: boolean

                                                  Returns void

                                                • Parameters

                                                  • zoomPercent: number

                                                  Returns void

                                                diff --git a/docs/ss6player_viewer_api/index.html b/docs/ss6player_viewer_api/index.html index a820ec37..5f8e3141 100644 --- a/docs/ss6player_viewer_api/index.html +++ b/docs/ss6player_viewer_api/index.html @@ -1,31 +1,45 @@ -ss6player-viewer
                                                ss6player-viewer
                                                  Preparing search index...

                                                  ss6player-viewer

                                                  SS6Player for Viewer

                                                  OPTPiX SpriteStudio 7.0OPTPiX SpriteStudio 6 で制作したアニメーションを Web 上で再生するプラグインです。

                                                  -

                                                  リリース最新版のライブラリソースは こちら(minified) になります。

                                                  -

                                                  リリース最新版のデモは こちら になります。

                                                  -

                                                  ss6player-viewer のライセンスは LISENCE となります。

                                                  +ss6player-viewer
                                                  ss6player-viewer
                                                    Preparing search index...

                                                    ss6player-viewer

                                                    SS6Player for Viewer

                                                    +

                                                    OPTPiX SpriteStudio 7.0OPTPiX SpriteStudio 6 で制作したアニメーションを Web 上で再生するプラグインです。

                                                    + +

                                                    リリース最新版のライブラリソースは こちら(minified) になります。

                                                    + +

                                                    リリース最新版のデモは こちら になります。

                                                    + +

                                                    ss6player-viewer のライセンスは LISENCE となります。

                                                    ss6player-viewer は依存ライブラリの FlatBuffersssfblibss6player-libss6player-pixiJSZip をバンドルしています。 ForWeb のコンポーネントが依存しているサードパーティライブラリのライセンスは ThirdPartyLicenses.md を参照してください。

                                                    -

                                                    SpriteStudio 6 のプロジェクトファイル sspj からアニメーションデータファイル ssfb ファイルをコンバートします。 コンバートには Ss6Converter を利用します。

                                                    + +

                                                    SpriteStudio 6 のプロジェクトファイル sspj からアニメーションデータファイル ssfb ファイルをコンバートします。 コンバートには Ss6Converter を利用します。

                                                    Ss6Converter は SpriteStudio6-SDK に同封するツールです。利用方法に関してはこちらを参照してください

                                                    -

                                                    ss6player-viewer の API リファレンスはこちらです。

                                                    -

                                                    Player ディレクトリの player.html を参考にしてください。

                                                    + + +

                                                    ss6player-viewer の API リファレンスはこちらです。

                                                    + +

                                                    Player ディレクトリの player.html を参考にしてください。

                                                    デモ ページを閲覧するか、あるいはローカル環境で動作確認ができます。

                                                    -

                                                    For Plugin Developer

                                                    ライブラリを開発する方、あるいは開発版のライブラリの動作を確認したい方向けです。

                                                    -

                                                    ソースの取得方法やビルドに必要な npm のインストール手順は wiki を参照してください。

                                                    -

                                                    SS6PlayerForWeb/ ディレクトリ上で下記コマンドを実行すると、 packages/ 以下の全ライブラリをビルドします。

                                                    +

                                                    For Plugin Developer

                                                    +

                                                    ライブラリを開発する方、あるいは開発版のライブラリの動作を確認したい方向けです。

                                                    + +

                                                    ソースの取得方法やビルドに必要な npm のインストール手順は wiki を参照してください。

                                                    + +

                                                    SS6PlayerForWeb/ ディレクトリ上で下記コマンドを実行すると、 packages/ 以下の全ライブラリをビルドします。

                                                    cd SS6PlayerForWeb
                                                    npm i
                                                    npm run build

                                                    ビルドが成功すると ss6player-viewer.umd.jsss6player-viewer.min.jsss6player-viewer.es6.jsSS6PlayerForWeb/packages/ss6player-viewer/dist ディレクトリ以下に生成されます。

                                                    -

                                                    全ビルド実行後は SS6PlayerForWeb/packages/ss6player-viewer ディレクトリ上で ss6player-viewer の単独ビルドが可能になります。

                                                    + +

                                                    全ビルド実行後は SS6PlayerForWeb/packages/ss6player-viewer ディレクトリ上で ss6player-viewer の単独ビルドが可能になります。

                                                    cd SS6PlayerForWeb/packages/ss6player-viewer
                                                    npm run build
                                                    -

                                                    全ビルド後、SS6PlayerForWeb/packages/ss6player-viewer/ ディレクトリ上で下記コマンドを実行してください。

                                                    + +

                                                    全ビルド後、SS6PlayerForWeb/packages/ss6player-viewer/ ディレクトリ上で下記コマンドを実行してください。

                                                    ローカル環境で http サーバが起動し、ブラウザ上で Player ディレクトリのサンプルを表示します。

                                                    cd SS6PlayerForWeb/packages/ss6player-viewer
                                                    npm run view
                                                    -

                                                    SS6PlayerForWeb/packages/ss6player-viewer ディレクトリ上で npm run start を実行すると、 src/ ディレクトリのソースファイルが変更されると自動的に単独ビルドが走るようになります。

                                                    + +

                                                    SS6PlayerForWeb/packages/ss6player-viewer ディレクトリ上で npm run start を実行すると、 src/ ディレクトリのソースファイルが変更されると自動的に単独ビルドが走るようになります。

                                                    ローカル環境での動作確認 と併用するとスムーズに動作確認が行なえます。

                                                    cd SS6PlayerForWeb/packages/ss6player-viewer
                                                    npm run start
                                                    diff --git a/docs/ssfblib_api/assets/icons.js b/docs/ssfblib_api/assets/icons.js index 58882d76..3ae8f55e 100644 --- a/docs/ssfblib_api/assets/icons.js +++ b/docs/ssfblib_api/assets/icons.js @@ -3,7 +3,7 @@ function addIcons() { if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons); const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg")); - svg.innerHTML = `MMNEPVFCICPMFPCPTTAAATR`; + svg.innerHTML = `MMNEPVFCICPMFPCPTTAAATR`; svg.style.display = "none"; if (location.protocol === "file:") updateUseElements(); } diff --git a/docs/ssfblib_api/assets/icons.svg b/docs/ssfblib_api/assets/icons.svg index 50ad5799..10db10be 100644 --- a/docs/ssfblib_api/assets/icons.svg +++ b/docs/ssfblib_api/assets/icons.svg @@ -1 +1 @@ -MMNEPVFCICPMFPCPTTAAATR \ No newline at end of file +MMNEPVFCICPMFPCPTTAAATR \ No newline at end of file diff --git a/docs/ssfblib_api/assets/main.js b/docs/ssfblib_api/assets/main.js index 19bbb7a7..64b80ab2 100644 --- a/docs/ssfblib_api/assets/main.js +++ b/docs/ssfblib_api/assets/main.js @@ -1,7 +1,7 @@ "use strict"; window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings.","hierarchy_expand":"Expand","hierarchy_collapse":"Collapse","folder":"Folder","search_index_not_available":"The search index is not available","search_no_results_found_for_0":"No results found for {0}","kind_1":"Project","kind_2":"Module","kind_4":"Namespace","kind_8":"Enumeration","kind_16":"Enumeration Member","kind_32":"Variable","kind_64":"Function","kind_128":"Class","kind_256":"Interface","kind_512":"Constructor","kind_1024":"Property","kind_2048":"Method","kind_4096":"Call Signature","kind_8192":"Index Signature","kind_16384":"Constructor Signature","kind_32768":"Parameter","kind_65536":"Type Literal","kind_131072":"Type Parameter","kind_262144":"Accessor","kind_524288":"Get Signature","kind_1048576":"Set Signature","kind_2097152":"Type Alias","kind_4194304":"Reference","kind_8388608":"Document"}; -"use strict";(()=>{var Ke=Object.create;var he=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Xe=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var et=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var tt=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ze(e))!Ye.call(t,i)&&i!==n&&he(t,i,{get:()=>e[i],enumerable:!(r=Ge(e,i))||r.enumerable});return t};var nt=(t,e,n)=>(n=t!=null?Ke(Xe(t)):{},tt(e||!t||!t.__esModule?he(n,"default",{value:t,enumerable:!0}):n,t));var ye=et((me,ge)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,l],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(oc?d+=2:a==c&&(n+=r[l+1]*i[d+1],l+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}if(s.str.length==0&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),f=s.str.charAt(1),p;f in s.node.edges?p=s.node.edges[f]:(p=new t.TokenSet,s.node.edges[f]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),c=0;c1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof me=="object"?ge.exports=n():e.lunr=n()}(this,function(){return t})})()});var M,G={getItem(){return null},setItem(){}},K;try{K=localStorage,M=K}catch{K=G,M=G}var S={getItem:t=>M.getItem(t),setItem:(t,e)=>M.setItem(t,e),disableWritingLocalStorage(){M=G},disable(){localStorage.clear(),M=G},enable(){M=K}};window.TypeDoc||={disableWritingLocalStorage(){S.disableWritingLocalStorage()},disableLocalStorage:()=>{S.disable()},enableLocalStorage:()=>{S.enable()}};window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",search_index_not_available:"The search index is not available",search_no_results_found_for_0:"No results found for {0}",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var pe=[];function X(t,e){pe.push({selector:e,constructor:t})}var Z=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){pe.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!rt(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function rt(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var fe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var Ie=nt(ye(),1);async function R(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}var Y="closing",ae="tsd-overlay";function it(){let t=Math.abs(window.innerWidth-document.documentElement.clientWidth);document.body.style.overflow="hidden",document.body.style.paddingRight=`${t}px`}function st(){document.body.style.removeProperty("overflow"),document.body.style.removeProperty("padding-right")}function xe(t,e){t.addEventListener("animationend",()=>{t.classList.contains(Y)&&(t.classList.remove(Y),document.getElementById(ae)?.remove(),t.close(),st())}),t.addEventListener("cancel",n=>{n.preventDefault(),ve(t)}),e?.closeOnClick&&document.addEventListener("click",n=>{t.open&&!t.contains(n.target)&&ve(t)},!0)}function Ee(t){if(t.open)return;let e=document.createElement("div");e.id=ae,document.body.appendChild(e),t.showModal(),it()}function ve(t){if(!t.open)return;document.getElementById(ae)?.classList.add(Y),t.classList.add(Y)}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var be=document.head.appendChild(document.createElement("style"));be.dataset.for="filters";var le={};function we(t){for(let e of t.split(/\s+/))if(le.hasOwnProperty(e)&&!le[e])return!0;return!1}var ee=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),be.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +"use strict";(()=>{var Ke=Object.create;var he=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Xe=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var et=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var tt=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ze(e))!Ye.call(t,i)&&i!==n&&he(t,i,{get:()=>e[i],enumerable:!(r=Ge(e,i))||r.enumerable});return t};var nt=(t,e,n)=>(n=t!=null?Ke(Xe(t)):{},tt(e||!t||!t.__esModule?he(n,"default",{value:t,enumerable:!0}):n,t));var ye=et((me,ge)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=(function(e){return function(n){e.console&&console.warn&&console.warn(n)}})(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,l],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(oc?d+=2:a==c&&(n+=r[l+1]*i[d+1],l+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}if(s.str.length==0&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),f=s.str.charAt(1),p;f in s.node.edges?p=s.node.edges[f]:(p=new t.TokenSet,s.node.edges[f]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),c=0;c1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},(function(e,n){typeof define=="function"&&define.amd?define(n):typeof me=="object"?ge.exports=n():e.lunr=n()})(this,function(){return t})})()});var M,G={getItem(){return null},setItem(){}},K;try{K=localStorage,M=K}catch{K=G,M=G}var S={getItem:t=>M.getItem(t),setItem:(t,e)=>M.setItem(t,e),disableWritingLocalStorage(){M=G},disable(){localStorage.clear(),M=G},enable(){M=K}};window.TypeDoc||={disableWritingLocalStorage(){S.disableWritingLocalStorage()},disableLocalStorage:()=>{S.disable()},enableLocalStorage:()=>{S.enable()}};window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",search_index_not_available:"The search index is not available",search_no_results_found_for_0:"No results found for {0}",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var pe=[];function X(t,e){pe.push({selector:e,constructor:t})}var Z=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){pe.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!rt(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function rt(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var fe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var Ie=nt(ye(),1);async function R(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}var Y="closing",ae="tsd-overlay";function it(){let t=Math.abs(window.innerWidth-document.documentElement.clientWidth);document.body.style.overflow="hidden",document.body.style.paddingRight=`${t}px`}function st(){document.body.style.removeProperty("overflow"),document.body.style.removeProperty("padding-right")}function xe(t,e){t.addEventListener("animationend",()=>{t.classList.contains(Y)&&(t.classList.remove(Y),document.getElementById(ae)?.remove(),t.close(),st())}),t.addEventListener("cancel",n=>{n.preventDefault(),ve(t)}),e?.closeOnClick&&document.addEventListener("click",n=>{t.open&&!t.contains(n.target)&&ve(t)},!0)}function Ee(t){if(t.open)return;let e=document.createElement("div");e.id=ae,document.body.appendChild(e),t.showModal(),it()}function ve(t){if(!t.open)return;document.getElementById(ae)?.classList.add(Y),t.classList.add(Y)}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var be=document.head.appendChild(document.createElement("style"));be.dataset.for="filters";var le={};function we(t){for(let e of t.split(/\s+/))if(le.hasOwnProperty(e)&&!le[e])return!0;return!1}var ee=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),be.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } `,this.app.updateIndexVisibility()}fromLocalStorage(){let e=S.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){S.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),le[`tsd-is-${this.el.name}`]=this.value,this.app.filterChanged(),this.app.updateIndexVisibility()}};var Le=0;async function Se(t,e){if(!window.searchData)return;let n=await R(window.searchData);t.data=n,t.index=Ie.Index.load(n.index),e.innerHTML=""}function _e(){let t=document.getElementById("tsd-search-trigger"),e=document.getElementById("tsd-search"),n=document.getElementById("tsd-search-input"),r=document.getElementById("tsd-search-results"),i=document.getElementById("tsd-search-script"),s=document.getElementById("tsd-search-status");if(!(t&&e&&n&&r&&i&&s))throw new Error("Search controls missing");let o={base:document.documentElement.dataset.base};o.base.endsWith("/")||(o.base+="/"),i.addEventListener("error",()=>{let a=window.translations.search_index_not_available;Pe(s,a)}),i.addEventListener("load",()=>{Se(o,s)}),Se(o,s),ot({trigger:t,searchEl:e,results:r,field:n,status:s},o)}function ot(t,e){let{field:n,results:r,searchEl:i,status:s,trigger:o}=t;xe(i,{closeOnClick:!0});function a(){Ee(i),n.setSelectionRange(0,n.value.length)}o.addEventListener("click",a),n.addEventListener("input",fe(()=>{at(r,n,s,e)},200)),n.addEventListener("keydown",l=>{if(r.childElementCount===0||l.ctrlKey||l.metaKey||l.altKey)return;let d=n.getAttribute("aria-activedescendant"),f=d?document.getElementById(d):null;if(f){let p=!1,v=!1;switch(l.key){case"Home":case"End":case"ArrowLeft":case"ArrowRight":v=!0;break;case"ArrowDown":case"ArrowUp":p=l.shiftKey;break}(p||v)&&ke(n)}if(!l.shiftKey)switch(l.key){case"Enter":f?.querySelector("a")?.click();break;case"ArrowUp":Te(r,n,f,-1),l.preventDefault();break;case"ArrowDown":Te(r,n,f,1),l.preventDefault();break}});function c(){ke(n)}n.addEventListener("change",c),n.addEventListener("blur",c),n.addEventListener("click",c),document.body.addEventListener("keydown",l=>{if(l.altKey||l.metaKey||l.shiftKey)return;let d=l.ctrlKey&&l.key==="k",f=!l.ctrlKey&&!ut()&&l.key==="/";(d||f)&&(l.preventDefault(),a())})}function at(t,e,n,r){if(!r.index||!r.data)return;t.innerHTML="",n.innerHTML="",Le+=1;let i=e.value.trim(),s;if(i){let a=i.split(" ").map(c=>c.length?`*${c}*`:"").join(" ");s=r.index.search(a).filter(({ref:c})=>{let l=r.data.rows[Number(c)].classes;return!l||!we(l)})}else s=[];if(s.length===0&&i){let a=window.translations.search_no_results_found_for_0.replace("{0}",` "${te(i)}" `);Pe(n,a);return}for(let a=0;ac.score-a.score);let o=Math.min(10,s.length);for(let a=0;a`,f=Ce(c.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(f+=` (score: ${s[a].score.toFixed(2)})`),c.parent&&(f=` ${Ce(c.parent,i)}.${f}`);let p=document.createElement("li");p.id=`tsd-search:${Le}-${a}`,p.role="option",p.ariaSelected="false",p.classList.value=c.classes??"";let v=document.createElement("a");v.tabIndex=-1,v.href=r.base+c.url,v.innerHTML=d+`${f}`,p.append(v),t.appendChild(p)}}function Te(t,e,n,r){let i;if(r===1?i=n?.nextElementSibling||t.firstElementChild:i=n?.previousElementSibling||t.lastElementChild,i!==n){if(!i||i.role!=="option"){console.error("Option missing");return}i.ariaSelected="true",i.scrollIntoView({behavior:"smooth",block:"nearest"}),e.setAttribute("aria-activedescendant",i.id),n?.setAttribute("aria-selected","false")}}function ke(t){let e=t.getAttribute("aria-activedescendant");(e?document.getElementById(e):null)?.setAttribute("aria-selected","false"),t.setAttribute("aria-activedescendant","")}function Ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(te(t.substring(s,o)),`${te(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(te(t.substring(s))),i.join("")}var lt={"&":"&","<":"<",">":">","'":"'",'"':"""};function te(t){return t.replace(/[&<>"'"]/g,e=>lt[e])}function Pe(t,e){t.innerHTML=e?`
                                                    ${e}
                                                    `:""}var ct=["button","checkbox","file","hidden","image","radio","range","reset","submit"];function ut(){let t=document.activeElement;return t?t.isContentEditable||t.tagName==="TEXTAREA"||t.tagName==="SEARCH"?!0:t.tagName==="INPUT"&&!ct.includes(t.type):!1}var D="mousedown",Me="mousemove",$="mouseup",ne={x:0,y:0},Qe=!1,ce=!1,dt=!1,F=!1,Oe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(Oe?"is-mobile":"not-mobile");Oe&&"ontouchstart"in document.documentElement&&(dt=!0,D="touchstart",Me="touchmove",$="touchend");document.addEventListener(D,t=>{ce=!0,F=!1;let e=D=="touchstart"?t.targetTouches[0]:t;ne.y=e.pageY||0,ne.x=e.pageX||0});document.addEventListener(Me,t=>{if(ce&&!F){let e=D=="touchstart"?t.targetTouches[0]:t,n=ne.x-(e.pageX||0),r=ne.y-(e.pageY||0);F=Math.sqrt(n*n+r*r)>10}});document.addEventListener($,()=>{ce=!1});document.addEventListener("click",t=>{Qe&&(t.preventDefault(),t.stopImmediatePropagation(),Qe=!1)});var re=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener($,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(D,n=>this.onDocumentPointerDown(n)),document.addEventListener($,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){F||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!F&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var ue=new Map,de=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener("toggle",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;S.setItem(this.key,e.toString())}},ie=class extends I{constructor(e){super(e);let n=this.el.querySelector("summary"),r=n.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`,s;if(ue.has(i))s=ue.get(i);else{let o=S.getItem(i),a=o?o==="true":this.el.open;s=new de(i,a),ue.set(i,s)}s.add(this.el)}};function He(t){let e=S.getItem("tsd-theme")||"os";t.value=e,Ae(e),t.addEventListener("change",()=>{S.setItem("tsd-theme",t.value),Ae(t.value)})}function Ae(t){document.documentElement.dataset.theme=t}var se;function Ne(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Re),Re())}async function Re(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let e=await R(window.navigationData);se=document.documentElement.dataset.base,se.endsWith("/")||(se+="/"),t.innerHTML="";for(let n of e)Be(n,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Be(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',De(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let c=a.appendChild(document.createElement("ul"));c.className="tsd-nested-navigation";for(let l of t.children)Be(l,c,i)}else De(t,r,t.class)}function De(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));if(r.href=se+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&(r.classList.add("current"),r.ariaCurrent="page"),t.kind){let i=window.translations[`kind_${t.kind}`].replaceAll('"',""");r.innerHTML=``}r.appendChild(Fe(t.text,document.createElement("span")))}else{let r=e.appendChild(document.createElement("span")),i=window.translations.folder.replaceAll('"',""");r.innerHTML=``,r.appendChild(Fe(t.text,document.createElement("span")))}}function Fe(t,e){let n=t.split(/(?<=[^A-Z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|(?<=[_-])(?=[^_-])/);for(let r=0;r{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!="LI";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!=="true"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(".tsd-full-hierarchy [data-refl]")){let i=r.querySelector("ul");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll("[id]").forEach(s=>{s.removeAttribute("id")}),i.querySelectorAll("[data-dropdown]").forEach(s=>{s.dataset.dropdown="false"});for(let s of document.querySelectorAll(`[data-refl="${r}"]`)){let o=gt(),a=s.querySelector("ul");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function pt(){let t=document.getElementById("tsd-hierarchy-script");t&&(t.addEventListener("load",Ve),Ve())}async function Ve(){let t=document.querySelector(".tsd-panel.tsd-hierarchy:has(h4 a)");if(!t||!window.hierarchyData)return;let e=+t.dataset.refl,n=await R(window.hierarchyData),r=t.querySelector("ul"),i=document.createElement("ul");if(i.classList.add("tsd-hierarchy"),ft(i,n,e),r.querySelectorAll("li").length==i.querySelectorAll("li").length)return;let s=document.createElement("span");s.classList.add("tsd-hierarchy-toggle"),s.textContent=window.translations.hierarchy_expand,t.querySelector("h4 a")?.insertAdjacentElement("afterend",s),s.insertAdjacentText("beforebegin",", "),s.addEventListener("click",()=>{s.textContent===window.translations.hierarchy_expand?(r.insertAdjacentElement("afterend",i),r.remove(),s.textContent=window.translations.hierarchy_collapse):(i.insertAdjacentElement("afterend",r),i.remove(),s.textContent=window.translations.hierarchy_expand)})}function ft(t,e,n){let r=e.roots.filter(i=>mt(e,i,n));for(let i of r)t.appendChild(je(e,i,n))}function je(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement("li");if(s.classList.add("tsd-hierarchy-item"),e===n){let o=s.appendChild(document.createElement("span"));o.textContent=i.name,o.classList.add("tsd-hierarchy-target")}else{for(let a of i.uniqueNameParents||[]){let c=t.reflections[a],l=s.appendChild(document.createElement("a"));l.textContent=c.name,l.href=oe+c.url,l.className=c.class+" tsd-signature-type",s.append(document.createTextNode("."))}let o=s.appendChild(document.createElement("a"));o.textContent=t.reflections[e].name,o.href=oe+i.url,o.className=i.class+" tsd-signature-type"}if(i.children){let o=s.appendChild(document.createElement("ul"));o.classList.add("tsd-hierarchy");for(let a of i.children){let c=je(t,a,n,r);c&&o.appendChild(c)}}return r.delete(e),s}function mt(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function gt(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width","20"),t.setAttribute("height","20"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.innerHTML='',t}X(re,"a[data-toggle]");X(ie,".tsd-accordion");X(ee,".tsd-filter-item input[type=checkbox]");var qe=document.getElementById("tsd-theme");qe&&He(qe);var yt=new Z;Object.defineProperty(window,"app",{value:yt});_e();Ne();$e();"virtualKeyboard"in navigator&&(navigator.virtualKeyboard.overlaysContent=!0);})(); /*! Bundled license information: diff --git a/docs/ssfblib_api/assets/style.css b/docs/ssfblib_api/assets/style.css index 5ba5a2a9..44328e99 100644 --- a/docs/ssfblib_api/assets/style.css +++ b/docs/ssfblib_api/assets/style.css @@ -1595,9 +1595,9 @@ .container-main { grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax( - 0, - 20rem - ); + 0, + 20rem + ); grid-template-areas: "sidebar content toc"; } diff --git a/docs/ssfblib_api/classes/AnimationData.html b/docs/ssfblib_api/classes/AnimationData.html index 63fe1ddf..315b128c 100644 --- a/docs/ssfblib_api/classes/AnimationData.html +++ b/docs/ssfblib_api/classes/AnimationData.html @@ -1,4 +1,4 @@ -AnimationData | ssfblib
                                                    ssfblib
                                                      Preparing search index...

                                                      Class AnimationData

                                                      Index

                                                      Constructors

                                                      constructor +AnimationData | ssfblib
                                                      ssfblib
                                                        Preparing search index...

                                                        Class AnimationData

                                                        Index

                                                        Constructors

                                                        Properties

                                                        bb: ByteBuffer = null
                                                        bb_pos: number = 0

                                                        Methods

                                                        • Parameters

                                                          • builder: Builder
                                                          • canvasPvotX: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • canvasPvotY: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • canvasSizeH: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • canvasSizeW: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • defaultDataOffset: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • endFrames: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • frameDataOffset: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • labelDataOffset: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • labelNum: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • meshsDataIndicesOffset: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • meshsDataUvOffset: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • nameOffset: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • startFrames: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • totalFrames: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • userDataOffset: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • nameOffset: number
                                                          • defaultDataOffset: number
                                                          • frameDataOffset: number
                                                          • userDataOffset: number
                                                          • labelDataOffset: number
                                                          • meshsDataUvOffset: number
                                                          • meshsDataIndicesOffset: number
                                                          • startFrames: number
                                                          • endFrames: number
                                                          • totalFrames: number
                                                          • fps: number
                                                          • labelNum: number
                                                          • canvasSizeW: number
                                                          • canvasSizeH: number
                                                          • canvasPvotX: number
                                                          • canvasPvotY: number

                                                          Returns number

                                                        • Parameters

                                                          • builder: Builder
                                                          • data: number[]

                                                          Returns number

                                                        • Parameters

                                                          • builder: Builder
                                                          • data: number[]

                                                          Returns number

                                                        • Parameters

                                                          • builder: Builder
                                                          • data: number[]

                                                          Returns number

                                                        • Parameters

                                                          • builder: Builder
                                                          • data: number[]

                                                          Returns number

                                                        • Parameters

                                                          • builder: Builder
                                                          • data: number[]

                                                          Returns number

                                                        • Parameters

                                                          • builder: Builder
                                                          • data: number[]

                                                          Returns number

                                                        • Parameters

                                                          • builder: Builder
                                                          • numElems: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • numElems: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • numElems: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • numElems: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • numElems: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • numElems: number

                                                          Returns void

                                                        +

                                                        Constructors

                                                        Properties

                                                        bb: ByteBuffer = null
                                                        bb_pos: number = 0

                                                        Methods

                                                        • Parameters

                                                          • builder: Builder
                                                          • canvasPvotX: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • canvasPvotY: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • canvasSizeH: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • canvasSizeW: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • defaultDataOffset: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • endFrames: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • frameDataOffset: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • labelDataOffset: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • labelNum: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • meshsDataIndicesOffset: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • meshsDataUvOffset: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • nameOffset: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • startFrames: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • totalFrames: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • userDataOffset: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • nameOffset: number
                                                          • defaultDataOffset: number
                                                          • frameDataOffset: number
                                                          • userDataOffset: number
                                                          • labelDataOffset: number
                                                          • meshsDataUvOffset: number
                                                          • meshsDataIndicesOffset: number
                                                          • startFrames: number
                                                          • endFrames: number
                                                          • totalFrames: number
                                                          • fps: number
                                                          • labelNum: number
                                                          • canvasSizeW: number
                                                          • canvasSizeH: number
                                                          • canvasPvotX: number
                                                          • canvasPvotY: number

                                                          Returns number

                                                        • Parameters

                                                          • builder: Builder
                                                          • data: number[]

                                                          Returns number

                                                        • Parameters

                                                          • builder: Builder
                                                          • data: number[]

                                                          Returns number

                                                        • Parameters

                                                          • builder: Builder
                                                          • data: number[]

                                                          Returns number

                                                        • Parameters

                                                          • builder: Builder
                                                          • data: number[]

                                                          Returns number

                                                        • Parameters

                                                          • builder: Builder
                                                          • data: number[]

                                                          Returns number

                                                        • Parameters

                                                          • builder: Builder
                                                          • data: number[]

                                                          Returns number

                                                        • Parameters

                                                          • builder: Builder
                                                          • numElems: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • numElems: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • numElems: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • numElems: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • numElems: number

                                                          Returns void

                                                        • Parameters

                                                          • builder: Builder
                                                          • numElems: number

                                                          Returns void

                                                        diff --git a/docs/ssfblib_api/classes/AnimationInitialData.html b/docs/ssfblib_api/classes/AnimationInitialData.html index e213897a..b9a3fa35 100644 --- a/docs/ssfblib_api/classes/AnimationInitialData.html +++ b/docs/ssfblib_api/classes/AnimationInitialData.html @@ -1,4 +1,4 @@ -AnimationInitialData | ssfblib
                                                        ssfblib
                                                          Preparing search index...

                                                          Class AnimationInitialData

                                                          Index

                                                          Constructors

                                                          constructor +AnimationInitialData | ssfblib
                                                          ssfblib
                                                            Preparing search index...

                                                            Class AnimationInitialData

                                                            Index

                                                            Constructors

                                                            Properties

                                                            bb: ByteBuffer = null
                                                            bb_pos: number = 0

                                                            Methods

                                                            • Parameters

                                                              • builder: Builder
                                                              • effectValueCurKeyframe: number

                                                              Returns void

                                                            • Parameters

                                                              • builder: Builder
                                                              • effectValueLoopflag: number

                                                              Returns void

                                                            • Parameters

                                                              • builder: Builder
                                                              • effectValueStartTime: number

                                                              Returns void

                                                            • Parameters

                                                              • builder: Builder
                                                              • instanceValueCurKeyframe: number

                                                              Returns void

                                                            • Parameters

                                                              • builder: Builder
                                                              • instanceValueEndFrame: number

                                                              Returns void

                                                            • Parameters

                                                              • builder: Builder
                                                              • instanceValueLoopflag: number

                                                              Returns void

                                                            • Parameters

                                                              • builder: Builder
                                                              • instanceValueLoopNum: number

                                                              Returns void

                                                            • Parameters

                                                              • builder: Builder
                                                              • instanceValueSpeed: number

                                                              Returns void

                                                            • Parameters

                                                              • builder: Builder
                                                              • instanceValueStartFrame: number

                                                              Returns void

                                                            • Parameters

                                                              • builder: Builder
                                                              • index: number
                                                              • lowflag: number
                                                              • highflag: number
                                                              • priority: number
                                                              • cellIndex: number
                                                              • opacity: number
                                                              • localopacity: number
                                                              • masklimen: number
                                                              • positionX: number
                                                              • positionY: number
                                                              • positionZ: number
                                                              • pivotX: number
                                                              • pivotY: number
                                                              • rotationX: number
                                                              • rotationY: number
                                                              • rotationZ: number
                                                              • scaleX: number
                                                              • scaleY: number
                                                              • localscaleX: number
                                                              • localscaleY: number
                                                              • sizeX: number
                                                              • sizeY: number
                                                              • uvMoveX: number
                                                              • uvMoveY: number
                                                              • uvRotation: number
                                                              • uvScaleX: number
                                                              • uvScaleY: number
                                                              • boundingRadius: number
                                                              • instanceValueCurKeyframe: number
                                                              • instanceValueStartFrame: number
                                                              • instanceValueEndFrame: number
                                                              • instanceValueLoopNum: number
                                                              • instanceValueSpeed: number
                                                              • instanceValueLoopflag: number
                                                              • effectValueCurKeyframe: number
                                                              • effectValueStartTime: number
                                                              • effectValueSpeed: number
                                                              • effectValueLoopflag: number

                                                              Returns number

                                                            +

                                                            Constructors

                                                            Properties

                                                            bb: ByteBuffer = null
                                                            bb_pos: number = 0

                                                            Methods

                                                            • Parameters

                                                              • builder: Builder
                                                              • effectValueCurKeyframe: number

                                                              Returns void

                                                            • Parameters

                                                              • builder: Builder
                                                              • effectValueLoopflag: number

                                                              Returns void

                                                            • Parameters

                                                              • builder: Builder
                                                              • effectValueStartTime: number

                                                              Returns void

                                                            • Parameters

                                                              • builder: Builder
                                                              • instanceValueCurKeyframe: number

                                                              Returns void

                                                            • Parameters

                                                              • builder: Builder
                                                              • instanceValueEndFrame: number

                                                              Returns void

                                                            • Parameters

                                                              • builder: Builder
                                                              • instanceValueLoopflag: number

                                                              Returns void

                                                            • Parameters

                                                              • builder: Builder
                                                              • instanceValueLoopNum: number

                                                              Returns void

                                                            • Parameters

                                                              • builder: Builder
                                                              • instanceValueSpeed: number

                                                              Returns void

                                                            • Parameters

                                                              • builder: Builder
                                                              • instanceValueStartFrame: number

                                                              Returns void

                                                            • Parameters

                                                              • builder: Builder
                                                              • index: number
                                                              • lowflag: number
                                                              • highflag: number
                                                              • priority: number
                                                              • cellIndex: number
                                                              • opacity: number
                                                              • localopacity: number
                                                              • masklimen: number
                                                              • positionX: number
                                                              • positionY: number
                                                              • positionZ: number
                                                              • pivotX: number
                                                              • pivotY: number
                                                              • rotationX: number
                                                              • rotationY: number
                                                              • rotationZ: number
                                                              • scaleX: number
                                                              • scaleY: number
                                                              • localscaleX: number
                                                              • localscaleY: number
                                                              • sizeX: number
                                                              • sizeY: number
                                                              • uvMoveX: number
                                                              • uvMoveY: number
                                                              • uvRotation: number
                                                              • uvScaleX: number
                                                              • uvScaleY: number
                                                              • boundingRadius: number
                                                              • instanceValueCurKeyframe: number
                                                              • instanceValueStartFrame: number
                                                              • instanceValueEndFrame: number
                                                              • instanceValueLoopNum: number
                                                              • instanceValueSpeed: number
                                                              • instanceValueLoopflag: number
                                                              • effectValueCurKeyframe: number
                                                              • effectValueStartTime: number
                                                              • effectValueSpeed: number
                                                              • effectValueLoopflag: number

                                                              Returns number

                                                            diff --git a/docs/ssfblib_api/classes/AnimePackData.html b/docs/ssfblib_api/classes/AnimePackData.html index 6e595cd7..cffe6e6b 100644 --- a/docs/ssfblib_api/classes/AnimePackData.html +++ b/docs/ssfblib_api/classes/AnimePackData.html @@ -1,4 +1,4 @@ -AnimePackData | ssfblib
                                                            ssfblib
                                                              Preparing search index...

                                                              Class AnimePackData

                                                              Index

                                                              Constructors

                                                              constructor +AnimePackData | ssfblib
                                                              ssfblib
                                                                Preparing search index...

                                                                Class AnimePackData

                                                                Index

                                                                Constructors

                                                                Properties

                                                                Methods

                                                                Constructors

                                                                Properties

                                                                bb: ByteBuffer = null
                                                                bb_pos: number = 0

                                                                Methods

                                                                • Parameters

                                                                  • builder: Builder
                                                                  • animationsOffset: number

                                                                  Returns void

                                                                • Parameters

                                                                  • builder: Builder
                                                                  • nameOffset: number

                                                                  Returns void

                                                                • Parameters

                                                                  • builder: Builder
                                                                  • partsOffset: number

                                                                  Returns void

                                                                • Parameters

                                                                  • builder: Builder
                                                                  • data: number[]

                                                                  Returns number

                                                                • Parameters

                                                                  • builder: Builder
                                                                  • nameOffset: number
                                                                  • partsOffset: number
                                                                  • animationsOffset: number

                                                                  Returns number

                                                                • Parameters

                                                                  • builder: Builder
                                                                  • data: number[]

                                                                  Returns number

                                                                • Parameters

                                                                  • builder: Builder
                                                                  • numElems: number

                                                                  Returns void

                                                                • Parameters

                                                                  • builder: Builder
                                                                  • numElems: number

                                                                  Returns void

                                                                +

                                                                Constructors

                                                                Properties

                                                                bb: ByteBuffer = null
                                                                bb_pos: number = 0

                                                                Methods

                                                                • Parameters

                                                                  • builder: Builder
                                                                  • animationsOffset: number

                                                                  Returns void

                                                                • Parameters

                                                                  • builder: Builder
                                                                  • nameOffset: number

                                                                  Returns void

                                                                • Parameters

                                                                  • builder: Builder
                                                                  • partsOffset: number

                                                                  Returns void

                                                                • Parameters

                                                                  • builder: Builder
                                                                  • data: number[]

                                                                  Returns number

                                                                • Parameters

                                                                  • builder: Builder
                                                                  • nameOffset: number
                                                                  • partsOffset: number
                                                                  • animationsOffset: number

                                                                  Returns number

                                                                • Parameters

                                                                  • builder: Builder
                                                                  • data: number[]

                                                                  Returns number

                                                                • Parameters

                                                                  • builder: Builder
                                                                  • numElems: number

                                                                  Returns void

                                                                • Parameters

                                                                  • builder: Builder
                                                                  • numElems: number

                                                                  Returns void

                                                                diff --git a/docs/ssfblib_api/classes/Cell.html b/docs/ssfblib_api/classes/Cell.html index a31772d0..c88d8a8a 100644 --- a/docs/ssfblib_api/classes/Cell.html +++ b/docs/ssfblib_api/classes/Cell.html @@ -1,4 +1,4 @@ -Cell | ssfblib
                                                                ssfblib
                                                                  Preparing search index...

                                                                  Class Cell

                                                                  Index

                                                                  Constructors

                                                                  constructor +Cell | ssfblib
                                                                  ssfblib
                                                                    Preparing search index...

                                                                    Class Cell

                                                                    Index

                                                                    Constructors

                                                                    Properties

                                                                    Methods

                                                                    Constructors

                                                                    Properties

                                                                    bb: ByteBuffer = null
                                                                    bb_pos: number = 0

                                                                    Methods

                                                                    • Returns string

                                                                    • Parameters

                                                                      • optionalEncoding: Encoding

                                                                      Returns string | Uint8Array<ArrayBufferLike>

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • cellMapOffset: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • height: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • indexInCellMap: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • nameOffset: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • pivotX: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • pivotY: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • u1: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • u2: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • v1: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • v2: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • width: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • x: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • y: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder

                                                                      Returns number

                                                                    • Parameters

                                                                      • builder: Builder

                                                                      Returns void

                                                                    +

                                                                    Constructors

                                                                    Properties

                                                                    bb: ByteBuffer = null
                                                                    bb_pos: number = 0

                                                                    Methods

                                                                    • Returns string

                                                                    • Parameters

                                                                      • optionalEncoding: Encoding

                                                                      Returns string | Uint8Array<ArrayBufferLike>

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • cellMapOffset: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • height: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • indexInCellMap: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • nameOffset: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • pivotX: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • pivotY: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • u1: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • u2: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • v1: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • v2: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • width: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • x: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder
                                                                      • y: number

                                                                      Returns void

                                                                    • Parameters

                                                                      • builder: Builder

                                                                      Returns number

                                                                    • Parameters

                                                                      • builder: Builder

                                                                      Returns void

                                                                    diff --git a/docs/ssfblib_api/classes/CellMap.html b/docs/ssfblib_api/classes/CellMap.html index 2b32f366..46bb99ad 100644 --- a/docs/ssfblib_api/classes/CellMap.html +++ b/docs/ssfblib_api/classes/CellMap.html @@ -1,4 +1,4 @@ -CellMap | ssfblib
                                                                    ssfblib
                                                                      Preparing search index...

                                                                      Class CellMap

                                                                      Index

                                                                      Constructors

                                                                      constructor +CellMap | ssfblib
                                                                      ssfblib
                                                                        Preparing search index...

                                                                        Class CellMap

                                                                        Index

                                                                        Constructors

                                                                        Properties

                                                                        Methods

                                                                        Constructors

                                                                        Properties

                                                                        bb: ByteBuffer = null
                                                                        bb_pos: number = 0

                                                                        Methods

                                                                        • Returns string

                                                                        • Parameters

                                                                          • optionalEncoding: Encoding

                                                                          Returns string | Uint8Array<ArrayBufferLike>

                                                                        • Returns string

                                                                        • Parameters

                                                                          • optionalEncoding: Encoding

                                                                          Returns string | Uint8Array<ArrayBufferLike>

                                                                        • Parameters

                                                                          • builder: Builder
                                                                          • filtermode: number

                                                                          Returns void

                                                                        • Parameters

                                                                          • builder: Builder
                                                                          • imagePathOffset: number

                                                                          Returns void

                                                                        • Parameters

                                                                          • builder: Builder
                                                                          • index: number

                                                                          Returns void

                                                                        • Parameters

                                                                          • builder: Builder
                                                                          • nameOffset: number

                                                                          Returns void

                                                                        • Parameters

                                                                          • builder: Builder
                                                                          • wrapmode: number

                                                                          Returns void

                                                                        • Parameters

                                                                          • builder: Builder
                                                                          • nameOffset: number
                                                                          • imagePathOffset: number
                                                                          • index: number
                                                                          • wrapmode: number
                                                                          • filtermode: number

                                                                          Returns number

                                                                        +

                                                                        Constructors

                                                                        Properties

                                                                        bb: ByteBuffer = null
                                                                        bb_pos: number = 0

                                                                        Methods

                                                                        • Returns string

                                                                        • Parameters

                                                                          • optionalEncoding: Encoding

                                                                          Returns string | Uint8Array<ArrayBufferLike>

                                                                        • Returns string

                                                                        • Parameters

                                                                          • optionalEncoding: Encoding

                                                                          Returns string | Uint8Array<ArrayBufferLike>

                                                                        • Parameters

                                                                          • builder: Builder
                                                                          • filtermode: number

                                                                          Returns void

                                                                        • Parameters

                                                                          • builder: Builder
                                                                          • imagePathOffset: number

                                                                          Returns void

                                                                        • Parameters

                                                                          • builder: Builder
                                                                          • index: number

                                                                          Returns void

                                                                        • Parameters

                                                                          • builder: Builder
                                                                          • nameOffset: number

                                                                          Returns void

                                                                        • Parameters

                                                                          • builder: Builder
                                                                          • wrapmode: number

                                                                          Returns void

                                                                        • Parameters

                                                                          • builder: Builder
                                                                          • nameOffset: number
                                                                          • imagePathOffset: number
                                                                          • index: number
                                                                          • wrapmode: number
                                                                          • filtermode: number

                                                                          Returns number

                                                                        diff --git a/docs/ssfblib_api/classes/EffectFile.html b/docs/ssfblib_api/classes/EffectFile.html index bb8b8c77..75a523d9 100644 --- a/docs/ssfblib_api/classes/EffectFile.html +++ b/docs/ssfblib_api/classes/EffectFile.html @@ -1,4 +1,4 @@ -EffectFile | ssfblib
                                                                        ssfblib
                                                                          Preparing search index...

                                                                          Class EffectFile

                                                                          Index

                                                                          Constructors

                                                                          constructor +EffectFile | ssfblib
                                                                          ssfblib
                                                                            Preparing search index...

                                                                            Class EffectFile

                                                                            Index

                                                                            Constructors

                                                                            Properties

                                                                            bb: ByteBuffer = null
                                                                            bb_pos: number = 0

                                                                            Methods

                                                                            • Returns string

                                                                            • Parameters

                                                                              • optionalEncoding: Encoding

                                                                              Returns string | Uint8Array<ArrayBufferLike>

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • effectNodeOffset: number

                                                                              Returns void

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • fps: number

                                                                              Returns void

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • isLockRandSeed: number

                                                                              Returns void

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • layoutScaleX: number

                                                                              Returns void

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • layoutScaleY: number

                                                                              Returns void

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • lockRandSeed: number

                                                                              Returns void

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • nameOffset: number

                                                                              Returns void

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • numNodeList: number

                                                                              Returns void

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • nameOffset: number
                                                                              • fps: number
                                                                              • isLockRandSeed: number
                                                                              • lockRandSeed: number
                                                                              • layoutScaleX: number
                                                                              • layoutScaleY: number
                                                                              • numNodeList: number
                                                                              • effectNodeOffset: number

                                                                              Returns number

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • data: number[]

                                                                              Returns number

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • numElems: number

                                                                              Returns void

                                                                            +

                                                                            Constructors

                                                                            Properties

                                                                            bb: ByteBuffer = null
                                                                            bb_pos: number = 0

                                                                            Methods

                                                                            • Returns string

                                                                            • Parameters

                                                                              • optionalEncoding: Encoding

                                                                              Returns string | Uint8Array<ArrayBufferLike>

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • effectNodeOffset: number

                                                                              Returns void

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • fps: number

                                                                              Returns void

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • isLockRandSeed: number

                                                                              Returns void

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • layoutScaleX: number

                                                                              Returns void

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • layoutScaleY: number

                                                                              Returns void

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • lockRandSeed: number

                                                                              Returns void

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • nameOffset: number

                                                                              Returns void

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • numNodeList: number

                                                                              Returns void

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • nameOffset: number
                                                                              • fps: number
                                                                              • isLockRandSeed: number
                                                                              • lockRandSeed: number
                                                                              • layoutScaleX: number
                                                                              • layoutScaleY: number
                                                                              • numNodeList: number
                                                                              • effectNodeOffset: number

                                                                              Returns number

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • data: number[]

                                                                              Returns number

                                                                            • Parameters

                                                                              • builder: Builder
                                                                              • numElems: number

                                                                              Returns void

                                                                            diff --git a/docs/ssfblib_api/classes/EffectNode.html b/docs/ssfblib_api/classes/EffectNode.html index b5725ba9..50c0f833 100644 --- a/docs/ssfblib_api/classes/EffectNode.html +++ b/docs/ssfblib_api/classes/EffectNode.html @@ -1,4 +1,4 @@ -EffectNode | ssfblib
                                                                            ssfblib
                                                                              Preparing search index...

                                                                              Class EffectNode

                                                                              Index

                                                                              Constructors

                                                                              constructor +EffectNode | ssfblib
                                                                              ssfblib
                                                                                Preparing search index...

                                                                                Class EffectNode

                                                                                Index

                                                                                Constructors

                                                                                Properties

                                                                                Methods

                                                                                Constructors

                                                                                Properties

                                                                                bb: ByteBuffer = null
                                                                                bb_pos: number = 0

                                                                                Methods

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • arrayIndex: number

                                                                                  Returns void

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • behaviorOffset: number

                                                                                  Returns void

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • behaviorTypeOffset: number

                                                                                  Returns void

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • blendType: number

                                                                                  Returns void

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • cellIndex: number

                                                                                  Returns void

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • numBehavior: number

                                                                                  Returns void

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • parentIndex: number

                                                                                  Returns void

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • type: number

                                                                                  Returns void

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • data: number[]

                                                                                  Returns number

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • arrayIndex: number
                                                                                  • parentIndex: number
                                                                                  • type: number
                                                                                  • cellIndex: number
                                                                                  • blendType: number
                                                                                  • numBehavior: number
                                                                                  • behaviorTypeOffset: number
                                                                                  • behaviorOffset: number

                                                                                  Returns number

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • numElems: number

                                                                                  Returns void

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • numElems: number

                                                                                  Returns void

                                                                                +

                                                                                Constructors

                                                                                Properties

                                                                                bb: ByteBuffer = null
                                                                                bb_pos: number = 0

                                                                                Methods

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • arrayIndex: number

                                                                                  Returns void

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • behaviorOffset: number

                                                                                  Returns void

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • behaviorTypeOffset: number

                                                                                  Returns void

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • blendType: number

                                                                                  Returns void

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • cellIndex: number

                                                                                  Returns void

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • numBehavior: number

                                                                                  Returns void

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • parentIndex: number

                                                                                  Returns void

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • type: number

                                                                                  Returns void

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • data: number[]

                                                                                  Returns number

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • arrayIndex: number
                                                                                  • parentIndex: number
                                                                                  • type: number
                                                                                  • cellIndex: number
                                                                                  • blendType: number
                                                                                  • numBehavior: number
                                                                                  • behaviorTypeOffset: number
                                                                                  • behaviorOffset: number

                                                                                  Returns number

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • numElems: number

                                                                                  Returns void

                                                                                • Parameters

                                                                                  • builder: Builder
                                                                                  • numElems: number

                                                                                  Returns void

                                                                                diff --git a/docs/ssfblib_api/classes/EffectParticleElementAlphaFade.html b/docs/ssfblib_api/classes/EffectParticleElementAlphaFade.html index 948dda9d..8d09e968 100644 --- a/docs/ssfblib_api/classes/EffectParticleElementAlphaFade.html +++ b/docs/ssfblib_api/classes/EffectParticleElementAlphaFade.html @@ -1,4 +1,4 @@ -EffectParticleElementAlphaFade | ssfblib
                                                                                ssfblib
                                                                                  Preparing search index...

                                                                                  Class EffectParticleElementAlphaFade

                                                                                  Index

                                                                                  Constructors

                                                                                  constructor +EffectParticleElementAlphaFade | ssfblib
                                                                                  ssfblib
                                                                                    Preparing search index...

                                                                                    Class EffectParticleElementAlphaFade

                                                                                    Index

                                                                                    Constructors

                                                                                    Properties

                                                                                    bb: ByteBuffer = null
                                                                                    bb_pos: number = 0

                                                                                    Methods

                                                                                    • Parameters

                                                                                      • builder: Builder
                                                                                      • disprangeMinValue: number
                                                                                      • disprangeMaxValue: number

                                                                                      Returns number

                                                                                    +

                                                                                    Constructors

                                                                                    Properties

                                                                                    bb: ByteBuffer = null
                                                                                    bb_pos: number = 0

                                                                                    Methods

                                                                                    • Parameters

                                                                                      • builder: Builder
                                                                                      • disprangeMinValue: number
                                                                                      • disprangeMaxValue: number

                                                                                      Returns number

                                                                                    diff --git a/docs/ssfblib_api/classes/EffectParticleElementBasic.html b/docs/ssfblib_api/classes/EffectParticleElementBasic.html index b901c9c8..4308e36e 100644 --- a/docs/ssfblib_api/classes/EffectParticleElementBasic.html +++ b/docs/ssfblib_api/classes/EffectParticleElementBasic.html @@ -1,4 +1,4 @@ -EffectParticleElementBasic | ssfblib
                                                                                    ssfblib
                                                                                      Preparing search index...

                                                                                      Class EffectParticleElementBasic

                                                                                      Index

                                                                                      Constructors

                                                                                      constructor +EffectParticleElementBasic | ssfblib
                                                                                      ssfblib
                                                                                        Preparing search index...

                                                                                        Class EffectParticleElementBasic

                                                                                        Index

                                                                                        Constructors

                                                                                        Properties

                                                                                        bb: ByteBuffer = null
                                                                                        bb_pos: number = 0

                                                                                        Methods

                                                                                        • Parameters

                                                                                          • builder: Builder
                                                                                          • SsEffectFunctionType: number
                                                                                          • priority: number
                                                                                          • maximumParticle: number
                                                                                          • attimeCreate: number
                                                                                          • interval: number
                                                                                          • lifetime: number
                                                                                          • speedMinValue: number
                                                                                          • speedMaxValue: number
                                                                                          • lifespanMinValue: number
                                                                                          • lifespanMaxValue: number
                                                                                          • angle: number
                                                                                          • angleVariance: number

                                                                                          Returns number

                                                                                        +

                                                                                        Constructors

                                                                                        Properties

                                                                                        bb: ByteBuffer = null
                                                                                        bb_pos: number = 0

                                                                                        Methods

                                                                                        • Parameters

                                                                                          • builder: Builder
                                                                                          • SsEffectFunctionType: number
                                                                                          • priority: number
                                                                                          • maximumParticle: number
                                                                                          • attimeCreate: number
                                                                                          • interval: number
                                                                                          • lifetime: number
                                                                                          • speedMinValue: number
                                                                                          • speedMaxValue: number
                                                                                          • lifespanMinValue: number
                                                                                          • lifespanMaxValue: number
                                                                                          • angle: number
                                                                                          • angleVariance: number

                                                                                          Returns number

                                                                                        diff --git a/docs/ssfblib_api/classes/EffectParticleElementDelay.html b/docs/ssfblib_api/classes/EffectParticleElementDelay.html index a1951db8..ec3875ba 100644 --- a/docs/ssfblib_api/classes/EffectParticleElementDelay.html +++ b/docs/ssfblib_api/classes/EffectParticleElementDelay.html @@ -1,8 +1,8 @@ -EffectParticleElementDelay | ssfblib
                                                                                        ssfblib
                                                                                          Preparing search index...

                                                                                          Class EffectParticleElementDelay

                                                                                          Index

                                                                                          Constructors

                                                                                          constructor +EffectParticleElementDelay | ssfblib
                                                                                          ssfblib
                                                                                            Preparing search index...

                                                                                            Class EffectParticleElementDelay

                                                                                            Index

                                                                                            Constructors

                                                                                            Properties

                                                                                            bb: ByteBuffer = null
                                                                                            bb_pos: number = 0

                                                                                            Methods

                                                                                            +

                                                                                            Constructors

                                                                                            Properties

                                                                                            bb: ByteBuffer = null
                                                                                            bb_pos: number = 0

                                                                                            Methods

                                                                                            diff --git a/docs/ssfblib_api/classes/EffectParticleElementGravity.html b/docs/ssfblib_api/classes/EffectParticleElementGravity.html index 72d6f807..4f7d97e1 100644 --- a/docs/ssfblib_api/classes/EffectParticleElementGravity.html +++ b/docs/ssfblib_api/classes/EffectParticleElementGravity.html @@ -1,4 +1,4 @@ -EffectParticleElementGravity | ssfblib
                                                                                            ssfblib
                                                                                              Preparing search index...

                                                                                              Class EffectParticleElementGravity

                                                                                              Index

                                                                                              Constructors

                                                                                              constructor +EffectParticleElementGravity | ssfblib
                                                                                              ssfblib
                                                                                                Preparing search index...

                                                                                                Class EffectParticleElementGravity

                                                                                                Index

                                                                                                Constructors

                                                                                                Properties

                                                                                                Methods

                                                                                                Constructors

                                                                                                Properties

                                                                                                bb: ByteBuffer = null
                                                                                                bb_pos: number = 0

                                                                                                Methods

                                                                                                • Parameters

                                                                                                  • builder: Builder
                                                                                                  • Gravity_x: number
                                                                                                  • Gravity_y: number

                                                                                                  Returns number

                                                                                                +

                                                                                                Constructors

                                                                                                Properties

                                                                                                bb: ByteBuffer = null
                                                                                                bb_pos: number = 0

                                                                                                Methods

                                                                                                • Parameters

                                                                                                  • builder: Builder
                                                                                                  • Gravity_x: number
                                                                                                  • Gravity_y: number

                                                                                                  Returns number

                                                                                                diff --git a/docs/ssfblib_api/classes/EffectParticleElementInitColor.html b/docs/ssfblib_api/classes/EffectParticleElementInitColor.html index ba0c19cb..3d38d2ae 100644 --- a/docs/ssfblib_api/classes/EffectParticleElementInitColor.html +++ b/docs/ssfblib_api/classes/EffectParticleElementInitColor.html @@ -1,4 +1,4 @@ -EffectParticleElementInitColor | ssfblib
                                                                                                ssfblib
                                                                                                  Preparing search index...

                                                                                                  Class EffectParticleElementInitColor

                                                                                                  Index

                                                                                                  Constructors

                                                                                                  constructor +EffectParticleElementInitColor | ssfblib
                                                                                                  ssfblib
                                                                                                    Preparing search index...

                                                                                                    Class EffectParticleElementInitColor

                                                                                                    Index

                                                                                                    Constructors

                                                                                                    Properties

                                                                                                    bb: ByteBuffer = null
                                                                                                    bb_pos: number = 0

                                                                                                    Methods

                                                                                                    • Parameters

                                                                                                      • builder: Builder
                                                                                                      • ColorMinValue: number
                                                                                                      • ColorMaxValue: number

                                                                                                      Returns number

                                                                                                    +

                                                                                                    Constructors

                                                                                                    Properties

                                                                                                    bb: ByteBuffer = null
                                                                                                    bb_pos: number = 0

                                                                                                    Methods

                                                                                                    • Parameters

                                                                                                      • builder: Builder
                                                                                                      • ColorMinValue: number
                                                                                                      • ColorMaxValue: number

                                                                                                      Returns number

                                                                                                    diff --git a/docs/ssfblib_api/classes/EffectParticleElementPosition.html b/docs/ssfblib_api/classes/EffectParticleElementPosition.html index d8be2f49..de308cae 100644 --- a/docs/ssfblib_api/classes/EffectParticleElementPosition.html +++ b/docs/ssfblib_api/classes/EffectParticleElementPosition.html @@ -1,4 +1,4 @@ -EffectParticleElementPosition | ssfblib
                                                                                                    ssfblib
                                                                                                      Preparing search index...

                                                                                                      Class EffectParticleElementPosition

                                                                                                      Index

                                                                                                      Constructors

                                                                                                      constructor +EffectParticleElementPosition | ssfblib
                                                                                                      ssfblib
                                                                                                        Preparing search index...

                                                                                                        Class EffectParticleElementPosition

                                                                                                        Index

                                                                                                        Constructors

                                                                                                        Properties

                                                                                                        bb: ByteBuffer = null
                                                                                                        bb_pos: number = 0

                                                                                                        Methods

                                                                                                        • Parameters

                                                                                                          • builder: Builder
                                                                                                          • OffsetXMinValue: number
                                                                                                          • OffsetXMaxValue: number
                                                                                                          • OffsetYMinValue: number
                                                                                                          • OffsetYMaxValue: number

                                                                                                          Returns number

                                                                                                        +

                                                                                                        Constructors

                                                                                                        Properties

                                                                                                        bb: ByteBuffer = null
                                                                                                        bb_pos: number = 0

                                                                                                        Methods

                                                                                                        • Parameters

                                                                                                          • builder: Builder
                                                                                                          • OffsetXMinValue: number
                                                                                                          • OffsetXMaxValue: number
                                                                                                          • OffsetYMinValue: number
                                                                                                          • OffsetYMaxValue: number

                                                                                                          Returns number

                                                                                                        diff --git a/docs/ssfblib_api/classes/EffectParticleElementRndSeedChange.html b/docs/ssfblib_api/classes/EffectParticleElementRndSeedChange.html index 5f000e3e..b3268306 100644 --- a/docs/ssfblib_api/classes/EffectParticleElementRndSeedChange.html +++ b/docs/ssfblib_api/classes/EffectParticleElementRndSeedChange.html @@ -1,8 +1,8 @@ -EffectParticleElementRndSeedChange | ssfblib
                                                                                                        ssfblib
                                                                                                          Preparing search index...

                                                                                                          Class EffectParticleElementRndSeedChange

                                                                                                          Index

                                                                                                          Constructors

                                                                                                          constructor +EffectParticleElementRndSeedChange | ssfblib
                                                                                                          ssfblib
                                                                                                            Preparing search index...

                                                                                                            Class EffectParticleElementRndSeedChange

                                                                                                            Index

                                                                                                            Constructors

                                                                                                            Properties

                                                                                                            bb: ByteBuffer = null
                                                                                                            bb_pos: number = 0

                                                                                                            Methods

                                                                                                            +

                                                                                                            Constructors

                                                                                                            Properties

                                                                                                            bb: ByteBuffer = null
                                                                                                            bb_pos: number = 0

                                                                                                            Methods

                                                                                                            diff --git a/docs/ssfblib_api/classes/EffectParticleElementRotation.html b/docs/ssfblib_api/classes/EffectParticleElementRotation.html index 01229a27..5bd0d0ff 100644 --- a/docs/ssfblib_api/classes/EffectParticleElementRotation.html +++ b/docs/ssfblib_api/classes/EffectParticleElementRotation.html @@ -1,4 +1,4 @@ -EffectParticleElementRotation | ssfblib
                                                                                                            ssfblib
                                                                                                              Preparing search index...

                                                                                                              Class EffectParticleElementRotation

                                                                                                              Index

                                                                                                              Constructors

                                                                                                              constructor +EffectParticleElementRotation | ssfblib
                                                                                                              ssfblib
                                                                                                                Preparing search index...

                                                                                                                Class EffectParticleElementRotation

                                                                                                                Index

                                                                                                                Constructors

                                                                                                                Properties

                                                                                                                bb: ByteBuffer = null
                                                                                                                bb_pos: number = 0

                                                                                                                Methods

                                                                                                                • Parameters

                                                                                                                  • builder: Builder
                                                                                                                  • RotationMinValue: number
                                                                                                                  • RotationMaxValue: number
                                                                                                                  • RotationAddMinValue: number
                                                                                                                  • RotationAddMaxValue: number

                                                                                                                  Returns number

                                                                                                                +

                                                                                                                Constructors

                                                                                                                Properties

                                                                                                                bb: ByteBuffer = null
                                                                                                                bb_pos: number = 0

                                                                                                                Methods

                                                                                                                • Parameters

                                                                                                                  • builder: Builder
                                                                                                                  • RotationMinValue: number
                                                                                                                  • RotationMaxValue: number
                                                                                                                  • RotationAddMinValue: number
                                                                                                                  • RotationAddMaxValue: number

                                                                                                                  Returns number

                                                                                                                diff --git a/docs/ssfblib_api/classes/EffectParticleElementRotationTrans.html b/docs/ssfblib_api/classes/EffectParticleElementRotationTrans.html index cf61142e..98b3da97 100644 --- a/docs/ssfblib_api/classes/EffectParticleElementRotationTrans.html +++ b/docs/ssfblib_api/classes/EffectParticleElementRotationTrans.html @@ -1,4 +1,4 @@ -EffectParticleElementRotationTrans | ssfblib
                                                                                                                ssfblib
                                                                                                                  Preparing search index...

                                                                                                                  Class EffectParticleElementRotationTrans

                                                                                                                  Index

                                                                                                                  Constructors

                                                                                                                  constructor +EffectParticleElementRotationTrans | ssfblib
                                                                                                                  ssfblib
                                                                                                                    Preparing search index...

                                                                                                                    Class EffectParticleElementRotationTrans

                                                                                                                    Index

                                                                                                                    Constructors

                                                                                                                    Properties

                                                                                                                    bb: ByteBuffer = null
                                                                                                                    bb_pos: number = 0

                                                                                                                    Methods

                                                                                                                    • Parameters

                                                                                                                      • builder: Builder
                                                                                                                      • RotationFactor: number
                                                                                                                      • EndLifeTimePer: number

                                                                                                                      Returns number

                                                                                                                    +

                                                                                                                    Constructors

                                                                                                                    Properties

                                                                                                                    bb: ByteBuffer = null
                                                                                                                    bb_pos: number = 0

                                                                                                                    Methods

                                                                                                                    • Parameters

                                                                                                                      • builder: Builder
                                                                                                                      • RotationFactor: number
                                                                                                                      • EndLifeTimePer: number

                                                                                                                      Returns number

                                                                                                                    diff --git a/docs/ssfblib_api/classes/EffectParticleElementSize.html b/docs/ssfblib_api/classes/EffectParticleElementSize.html index 126d515f..a18269f3 100644 --- a/docs/ssfblib_api/classes/EffectParticleElementSize.html +++ b/docs/ssfblib_api/classes/EffectParticleElementSize.html @@ -1,4 +1,4 @@ -EffectParticleElementSize | ssfblib
                                                                                                                    ssfblib
                                                                                                                      Preparing search index...

                                                                                                                      Class EffectParticleElementSize

                                                                                                                      Index

                                                                                                                      Constructors

                                                                                                                      constructor +EffectParticleElementSize | ssfblib
                                                                                                                      ssfblib
                                                                                                                        Preparing search index...

                                                                                                                        Class EffectParticleElementSize

                                                                                                                        Index

                                                                                                                        Constructors

                                                                                                                        Properties

                                                                                                                        Methods

                                                                                                                        Constructors

                                                                                                                        Properties

                                                                                                                        bb: ByteBuffer = null
                                                                                                                        bb_pos: number = 0

                                                                                                                        Methods

                                                                                                                        • Parameters

                                                                                                                          • builder: Builder
                                                                                                                          • SizeXMinValue: number
                                                                                                                          • SizeXMaxValue: number
                                                                                                                          • SizeYMinValue: number
                                                                                                                          • SizeYMaxValue: number
                                                                                                                          • ScaleFactorMinValue: number
                                                                                                                          • ScaleFactorMaxValue: number

                                                                                                                          Returns number

                                                                                                                        +

                                                                                                                        Constructors

                                                                                                                        Properties

                                                                                                                        bb: ByteBuffer = null
                                                                                                                        bb_pos: number = 0

                                                                                                                        Methods

                                                                                                                        • Parameters

                                                                                                                          • builder: Builder
                                                                                                                          • SizeXMinValue: number
                                                                                                                          • SizeXMaxValue: number
                                                                                                                          • SizeYMinValue: number
                                                                                                                          • SizeYMaxValue: number
                                                                                                                          • ScaleFactorMinValue: number
                                                                                                                          • ScaleFactorMaxValue: number

                                                                                                                          Returns number

                                                                                                                        diff --git a/docs/ssfblib_api/classes/EffectParticleElementTangentialAcceleration.html b/docs/ssfblib_api/classes/EffectParticleElementTangentialAcceleration.html index 9a437268..c1353a53 100644 --- a/docs/ssfblib_api/classes/EffectParticleElementTangentialAcceleration.html +++ b/docs/ssfblib_api/classes/EffectParticleElementTangentialAcceleration.html @@ -1,4 +1,4 @@ -EffectParticleElementTangentialAcceleration | ssfblib
                                                                                                                        ssfblib
                                                                                                                          Preparing search index...

                                                                                                                          Class EffectParticleElementTangentialAcceleration

                                                                                                                          Index

                                                                                                                          Constructors

                                                                                                                          constructor +EffectParticleElementTangentialAcceleration | ssfblib
                                                                                                                          ssfblib
                                                                                                                            Preparing search index...

                                                                                                                            Class EffectParticleElementTangentialAcceleration

                                                                                                                            Index

                                                                                                                            Constructors

                                                                                                                            Properties

                                                                                                                            bb: ByteBuffer = null
                                                                                                                            bb_pos: number = 0

                                                                                                                            Methods

                                                                                                                            • Parameters

                                                                                                                              • builder: Builder
                                                                                                                              • AccelerationMinValue: number
                                                                                                                              • AccelerationMaxValue: number

                                                                                                                              Returns number

                                                                                                                            +

                                                                                                                            Constructors

                                                                                                                            Properties

                                                                                                                            bb: ByteBuffer = null
                                                                                                                            bb_pos: number = 0

                                                                                                                            Methods

                                                                                                                            • Parameters

                                                                                                                              • builder: Builder
                                                                                                                              • AccelerationMinValue: number
                                                                                                                              • AccelerationMaxValue: number

                                                                                                                              Returns number

                                                                                                                            diff --git a/docs/ssfblib_api/classes/EffectParticleElementTransColor.html b/docs/ssfblib_api/classes/EffectParticleElementTransColor.html index d6f87e96..acddf5f8 100644 --- a/docs/ssfblib_api/classes/EffectParticleElementTransColor.html +++ b/docs/ssfblib_api/classes/EffectParticleElementTransColor.html @@ -1,4 +1,4 @@ -EffectParticleElementTransColor | ssfblib
                                                                                                                            ssfblib
                                                                                                                              Preparing search index...

                                                                                                                              Class EffectParticleElementTransColor

                                                                                                                              Index

                                                                                                                              Constructors

                                                                                                                              constructor +EffectParticleElementTransColor | ssfblib
                                                                                                                              ssfblib
                                                                                                                                Preparing search index...

                                                                                                                                Class EffectParticleElementTransColor

                                                                                                                                Index

                                                                                                                                Constructors

                                                                                                                                Properties

                                                                                                                                bb: ByteBuffer = null
                                                                                                                                bb_pos: number = 0

                                                                                                                                Methods

                                                                                                                                • Parameters

                                                                                                                                  • builder: Builder
                                                                                                                                  • ColorMinValue: number
                                                                                                                                  • ColorMaxValue: number

                                                                                                                                  Returns number

                                                                                                                                +

                                                                                                                                Constructors

                                                                                                                                Properties

                                                                                                                                bb: ByteBuffer = null
                                                                                                                                bb_pos: number = 0

                                                                                                                                Methods

                                                                                                                                • Parameters

                                                                                                                                  • builder: Builder
                                                                                                                                  • ColorMinValue: number
                                                                                                                                  • ColorMaxValue: number

                                                                                                                                  Returns number

                                                                                                                                diff --git a/docs/ssfblib_api/classes/EffectParticleElementTransSize.html b/docs/ssfblib_api/classes/EffectParticleElementTransSize.html index f7226471..e2775f48 100644 --- a/docs/ssfblib_api/classes/EffectParticleElementTransSize.html +++ b/docs/ssfblib_api/classes/EffectParticleElementTransSize.html @@ -1,4 +1,4 @@ -EffectParticleElementTransSize | ssfblib
                                                                                                                                ssfblib
                                                                                                                                  Preparing search index...

                                                                                                                                  Class EffectParticleElementTransSize

                                                                                                                                  Index

                                                                                                                                  Constructors

                                                                                                                                  constructor +EffectParticleElementTransSize | ssfblib
                                                                                                                                  ssfblib
                                                                                                                                    Preparing search index...

                                                                                                                                    Class EffectParticleElementTransSize

                                                                                                                                    Index

                                                                                                                                    Constructors

                                                                                                                                    Properties

                                                                                                                                    Methods

                                                                                                                                    Constructors

                                                                                                                                    Properties

                                                                                                                                    bb: ByteBuffer = null
                                                                                                                                    bb_pos: number = 0

                                                                                                                                    Methods

                                                                                                                                    • Parameters

                                                                                                                                      • builder: Builder
                                                                                                                                      • SizeXMinValue: number
                                                                                                                                      • SizeXMaxValue: number
                                                                                                                                      • SizeYMinValue: number
                                                                                                                                      • SizeYMaxValue: number
                                                                                                                                      • ScaleFactorMinValue: number
                                                                                                                                      • ScaleFactorMaxValue: number

                                                                                                                                      Returns number

                                                                                                                                    +

                                                                                                                                    Constructors

                                                                                                                                    Properties

                                                                                                                                    bb: ByteBuffer = null
                                                                                                                                    bb_pos: number = 0

                                                                                                                                    Methods

                                                                                                                                    • Parameters

                                                                                                                                      • builder: Builder
                                                                                                                                      • SizeXMinValue: number
                                                                                                                                      • SizeXMaxValue: number
                                                                                                                                      • SizeYMinValue: number
                                                                                                                                      • SizeYMaxValue: number
                                                                                                                                      • ScaleFactorMinValue: number
                                                                                                                                      • ScaleFactorMaxValue: number

                                                                                                                                      Returns number

                                                                                                                                    diff --git a/docs/ssfblib_api/classes/EffectParticleElementTransSpeed.html b/docs/ssfblib_api/classes/EffectParticleElementTransSpeed.html index d843522a..b9c8312e 100644 --- a/docs/ssfblib_api/classes/EffectParticleElementTransSpeed.html +++ b/docs/ssfblib_api/classes/EffectParticleElementTransSpeed.html @@ -1,4 +1,4 @@ -EffectParticleElementTransSpeed | ssfblib
                                                                                                                                    ssfblib
                                                                                                                                      Preparing search index...

                                                                                                                                      Class EffectParticleElementTransSpeed

                                                                                                                                      Index

                                                                                                                                      Constructors

                                                                                                                                      constructor +EffectParticleElementTransSpeed | ssfblib
                                                                                                                                      ssfblib
                                                                                                                                        Preparing search index...

                                                                                                                                        Class EffectParticleElementTransSpeed

                                                                                                                                        Index

                                                                                                                                        Constructors

                                                                                                                                        Properties

                                                                                                                                        bb: ByteBuffer = null
                                                                                                                                        bb_pos: number = 0

                                                                                                                                        Methods

                                                                                                                                        • Parameters

                                                                                                                                          • builder: Builder
                                                                                                                                          • SpeedMinValue: number
                                                                                                                                          • SpeedMaxValue: number

                                                                                                                                          Returns number

                                                                                                                                        +

                                                                                                                                        Constructors

                                                                                                                                        Properties

                                                                                                                                        bb: ByteBuffer = null
                                                                                                                                        bb_pos: number = 0

                                                                                                                                        Methods

                                                                                                                                        • Parameters

                                                                                                                                          • builder: Builder
                                                                                                                                          • SpeedMinValue: number
                                                                                                                                          • SpeedMaxValue: number

                                                                                                                                          Returns number

                                                                                                                                        diff --git a/docs/ssfblib_api/classes/EffectParticleInfiniteEmitEnabled.html b/docs/ssfblib_api/classes/EffectParticleInfiniteEmitEnabled.html index bdb488be..0f76f36a 100644 --- a/docs/ssfblib_api/classes/EffectParticleInfiniteEmitEnabled.html +++ b/docs/ssfblib_api/classes/EffectParticleInfiniteEmitEnabled.html @@ -1,8 +1,8 @@ -EffectParticleInfiniteEmitEnabled | ssfblib
                                                                                                                                        ssfblib
                                                                                                                                          Preparing search index...

                                                                                                                                          Class EffectParticleInfiniteEmitEnabled

                                                                                                                                          Index

                                                                                                                                          Constructors

                                                                                                                                          constructor +EffectParticleInfiniteEmitEnabled | ssfblib
                                                                                                                                          ssfblib
                                                                                                                                            Preparing search index...

                                                                                                                                            Class EffectParticleInfiniteEmitEnabled

                                                                                                                                            Index

                                                                                                                                            Constructors

                                                                                                                                            Properties

                                                                                                                                            bb: ByteBuffer = null
                                                                                                                                            bb_pos: number = 0

                                                                                                                                            Methods

                                                                                                                                            +

                                                                                                                                            Constructors

                                                                                                                                            Properties

                                                                                                                                            bb: ByteBuffer = null
                                                                                                                                            bb_pos: number = 0

                                                                                                                                            Methods

                                                                                                                                            diff --git a/docs/ssfblib_api/classes/EffectParticlePointGravity.html b/docs/ssfblib_api/classes/EffectParticlePointGravity.html index c7cdae78..f13d189a 100644 --- a/docs/ssfblib_api/classes/EffectParticlePointGravity.html +++ b/docs/ssfblib_api/classes/EffectParticlePointGravity.html @@ -1,4 +1,4 @@ -EffectParticlePointGravity | ssfblib
                                                                                                                                            ssfblib
                                                                                                                                              Preparing search index...

                                                                                                                                              Class EffectParticlePointGravity

                                                                                                                                              Index

                                                                                                                                              Constructors

                                                                                                                                              constructor +EffectParticlePointGravity | ssfblib
                                                                                                                                              ssfblib
                                                                                                                                                Preparing search index...

                                                                                                                                                Class EffectParticlePointGravity

                                                                                                                                                Index

                                                                                                                                                Constructors

                                                                                                                                                Properties

                                                                                                                                                Methods

                                                                                                                                                Constructors

                                                                                                                                                Properties

                                                                                                                                                bb: ByteBuffer = null
                                                                                                                                                bb_pos: number = 0

                                                                                                                                                Methods

                                                                                                                                                • Parameters

                                                                                                                                                  • builder: Builder
                                                                                                                                                  • Position_x: number
                                                                                                                                                  • Position_y: number
                                                                                                                                                  • Power: number

                                                                                                                                                  Returns number

                                                                                                                                                +

                                                                                                                                                Constructors

                                                                                                                                                Properties

                                                                                                                                                bb: ByteBuffer = null
                                                                                                                                                bb_pos: number = 0

                                                                                                                                                Methods

                                                                                                                                                • Parameters

                                                                                                                                                  • builder: Builder
                                                                                                                                                  • Position_x: number
                                                                                                                                                  • Position_y: number
                                                                                                                                                  • Power: number

                                                                                                                                                  Returns number

                                                                                                                                                diff --git a/docs/ssfblib_api/classes/EffectParticleTurnToDirectionEnabled.html b/docs/ssfblib_api/classes/EffectParticleTurnToDirectionEnabled.html index f811e308..463713b3 100644 --- a/docs/ssfblib_api/classes/EffectParticleTurnToDirectionEnabled.html +++ b/docs/ssfblib_api/classes/EffectParticleTurnToDirectionEnabled.html @@ -1,8 +1,8 @@ -EffectParticleTurnToDirectionEnabled | ssfblib
                                                                                                                                                ssfblib
                                                                                                                                                  Preparing search index...

                                                                                                                                                  Class EffectParticleTurnToDirectionEnabled

                                                                                                                                                  Index

                                                                                                                                                  Constructors

                                                                                                                                                  constructor +EffectParticleTurnToDirectionEnabled | ssfblib
                                                                                                                                                  ssfblib
                                                                                                                                                    Preparing search index...

                                                                                                                                                    Class EffectParticleTurnToDirectionEnabled

                                                                                                                                                    Index

                                                                                                                                                    Constructors

                                                                                                                                                    Properties

                                                                                                                                                    bb: ByteBuffer = null
                                                                                                                                                    bb_pos: number = 0

                                                                                                                                                    Methods

                                                                                                                                                    +

                                                                                                                                                    Constructors

                                                                                                                                                    Properties

                                                                                                                                                    bb: ByteBuffer = null
                                                                                                                                                    bb_pos: number = 0

                                                                                                                                                    Methods

                                                                                                                                                    diff --git a/docs/ssfblib_api/classes/PartData.html b/docs/ssfblib_api/classes/PartData.html index ead79c5d..428f7c1e 100644 --- a/docs/ssfblib_api/classes/PartData.html +++ b/docs/ssfblib_api/classes/PartData.html @@ -1,4 +1,4 @@ -PartData | ssfblib
                                                                                                                                                    ssfblib
                                                                                                                                                      Preparing search index...

                                                                                                                                                      Class PartData

                                                                                                                                                      Index

                                                                                                                                                      Constructors

                                                                                                                                                      constructor +PartData | ssfblib
                                                                                                                                                      ssfblib
                                                                                                                                                        Preparing search index...

                                                                                                                                                        Class PartData

                                                                                                                                                        Index

                                                                                                                                                        Constructors

                                                                                                                                                        Properties

                                                                                                                                                        bb: ByteBuffer = null
                                                                                                                                                        bb_pos: number = 0

                                                                                                                                                        Methods

                                                                                                                                                        • Returns string

                                                                                                                                                        • Parameters

                                                                                                                                                          • optionalEncoding: Encoding

                                                                                                                                                          Returns string | Uint8Array<ArrayBufferLike>

                                                                                                                                                        • Returns string

                                                                                                                                                        • Parameters

                                                                                                                                                          • optionalEncoding: Encoding

                                                                                                                                                          Returns string | Uint8Array<ArrayBufferLike>

                                                                                                                                                        • Returns string

                                                                                                                                                        • Parameters

                                                                                                                                                          • optionalEncoding: Encoding

                                                                                                                                                          Returns string | Uint8Array<ArrayBufferLike>

                                                                                                                                                        • Returns string

                                                                                                                                                        • Parameters

                                                                                                                                                          • optionalEncoding: Encoding

                                                                                                                                                          Returns string | Uint8Array<ArrayBufferLike>

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • alphaBlendType: number

                                                                                                                                                          Returns void

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • boundsType: number

                                                                                                                                                          Returns void

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • colorLabelOffset: number

                                                                                                                                                          Returns void

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • effectfilenameOffset: number

                                                                                                                                                          Returns void

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • index: number

                                                                                                                                                          Returns void

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • maskInfluence: number

                                                                                                                                                          Returns void

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • nameOffset: number

                                                                                                                                                          Returns void

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • parentIndex: number

                                                                                                                                                          Returns void

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • refnameOffset: number

                                                                                                                                                          Returns void

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • nameOffset: number
                                                                                                                                                          • index: number
                                                                                                                                                          • parentIndex: number
                                                                                                                                                          • type: SsPartType
                                                                                                                                                          • boundsType: number
                                                                                                                                                          • alphaBlendType: number
                                                                                                                                                          • refnameOffset: number
                                                                                                                                                          • effectfilenameOffset: number
                                                                                                                                                          • colorLabelOffset: number
                                                                                                                                                          • maskInfluence: number

                                                                                                                                                          Returns number

                                                                                                                                                        +

                                                                                                                                                        Constructors

                                                                                                                                                        Properties

                                                                                                                                                        bb: ByteBuffer = null
                                                                                                                                                        bb_pos: number = 0

                                                                                                                                                        Methods

                                                                                                                                                        • Returns string

                                                                                                                                                        • Parameters

                                                                                                                                                          • optionalEncoding: Encoding

                                                                                                                                                          Returns string | Uint8Array<ArrayBufferLike>

                                                                                                                                                        • Returns string

                                                                                                                                                        • Parameters

                                                                                                                                                          • optionalEncoding: Encoding

                                                                                                                                                          Returns string | Uint8Array<ArrayBufferLike>

                                                                                                                                                        • Returns string

                                                                                                                                                        • Parameters

                                                                                                                                                          • optionalEncoding: Encoding

                                                                                                                                                          Returns string | Uint8Array<ArrayBufferLike>

                                                                                                                                                        • Returns string

                                                                                                                                                        • Parameters

                                                                                                                                                          • optionalEncoding: Encoding

                                                                                                                                                          Returns string | Uint8Array<ArrayBufferLike>

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • alphaBlendType: number

                                                                                                                                                          Returns void

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • boundsType: number

                                                                                                                                                          Returns void

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • colorLabelOffset: number

                                                                                                                                                          Returns void

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • effectfilenameOffset: number

                                                                                                                                                          Returns void

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • index: number

                                                                                                                                                          Returns void

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • maskInfluence: number

                                                                                                                                                          Returns void

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • nameOffset: number

                                                                                                                                                          Returns void

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • parentIndex: number

                                                                                                                                                          Returns void

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • refnameOffset: number

                                                                                                                                                          Returns void

                                                                                                                                                        • Parameters

                                                                                                                                                          • builder: Builder
                                                                                                                                                          • nameOffset: number
                                                                                                                                                          • index: number
                                                                                                                                                          • parentIndex: number
                                                                                                                                                          • type: SsPartType
                                                                                                                                                          • boundsType: number
                                                                                                                                                          • alphaBlendType: number
                                                                                                                                                          • refnameOffset: number
                                                                                                                                                          • effectfilenameOffset: number
                                                                                                                                                          • colorLabelOffset: number
                                                                                                                                                          • maskInfluence: number

                                                                                                                                                          Returns number

                                                                                                                                                        diff --git a/docs/ssfblib_api/classes/ProjectData.html b/docs/ssfblib_api/classes/ProjectData.html index 7e66f409..2f11cb42 100644 --- a/docs/ssfblib_api/classes/ProjectData.html +++ b/docs/ssfblib_api/classes/ProjectData.html @@ -1,4 +1,4 @@ -ProjectData | ssfblib
                                                                                                                                                        ssfblib
                                                                                                                                                          Preparing search index...

                                                                                                                                                          Class ProjectData

                                                                                                                                                          Index

                                                                                                                                                          Constructors

                                                                                                                                                          constructor +ProjectData | ssfblib
                                                                                                                                                          ssfblib
                                                                                                                                                            Preparing search index...

                                                                                                                                                            Class ProjectData

                                                                                                                                                            Index

                                                                                                                                                            Constructors

                                                                                                                                                            Properties

                                                                                                                                                            Methods

                                                                                                                                                            Constructors

                                                                                                                                                            Properties

                                                                                                                                                            bb: ByteBuffer = null
                                                                                                                                                            bb_pos: number = 0

                                                                                                                                                            Methods

                                                                                                                                                            • Returns string

                                                                                                                                                            • Parameters

                                                                                                                                                              • optionalEncoding: Encoding

                                                                                                                                                              Returns string | Uint8Array<ArrayBufferLike>

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • animePacksOffset: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • cellsOffset: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • dataId: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • effectFileListOffset: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • flags: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • imageBaseDirOffset: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • numAnimePacks: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • numCells: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • numEffectFileList: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • version: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • data: number[]

                                                                                                                                                              Returns number

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • data: number[]

                                                                                                                                                              Returns number

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • data: number[]

                                                                                                                                                              Returns number

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • dataId: number
                                                                                                                                                              • version: number
                                                                                                                                                              • flags: number
                                                                                                                                                              • imageBaseDirOffset: number
                                                                                                                                                              • cellsOffset: number
                                                                                                                                                              • animePacksOffset: number
                                                                                                                                                              • effectFileListOffset: number
                                                                                                                                                              • numCells: number
                                                                                                                                                              • numAnimePacks: number
                                                                                                                                                              • numEffectFileList: number

                                                                                                                                                              Returns number

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • offset: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • offset: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • numElems: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • numElems: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • numElems: number

                                                                                                                                                              Returns void

                                                                                                                                                            +

                                                                                                                                                            Constructors

                                                                                                                                                            Properties

                                                                                                                                                            bb: ByteBuffer = null
                                                                                                                                                            bb_pos: number = 0

                                                                                                                                                            Methods

                                                                                                                                                            • Returns string

                                                                                                                                                            • Parameters

                                                                                                                                                              • optionalEncoding: Encoding

                                                                                                                                                              Returns string | Uint8Array<ArrayBufferLike>

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • animePacksOffset: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • cellsOffset: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • dataId: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • effectFileListOffset: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • flags: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • imageBaseDirOffset: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • numAnimePacks: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • numCells: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • numEffectFileList: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • version: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • data: number[]

                                                                                                                                                              Returns number

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • data: number[]

                                                                                                                                                              Returns number

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • data: number[]

                                                                                                                                                              Returns number

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • dataId: number
                                                                                                                                                              • version: number
                                                                                                                                                              • flags: number
                                                                                                                                                              • imageBaseDirOffset: number
                                                                                                                                                              • cellsOffset: number
                                                                                                                                                              • animePacksOffset: number
                                                                                                                                                              • effectFileListOffset: number
                                                                                                                                                              • numCells: number
                                                                                                                                                              • numAnimePacks: number
                                                                                                                                                              • numEffectFileList: number

                                                                                                                                                              Returns number

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • offset: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • offset: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • numElems: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • numElems: number

                                                                                                                                                              Returns void

                                                                                                                                                            • Parameters

                                                                                                                                                              • builder: Builder
                                                                                                                                                              • numElems: number

                                                                                                                                                              Returns void

                                                                                                                                                            diff --git a/docs/ssfblib_api/classes/Utils.html b/docs/ssfblib_api/classes/Utils.html index e6111871..f22972c6 100644 --- a/docs/ssfblib_api/classes/Utils.html +++ b/docs/ssfblib_api/classes/Utils.html @@ -1,3 +1,3 @@ -Utils | ssfblib
                                                                                                                                                            ssfblib
                                                                                                                                                              Preparing search index...

                                                                                                                                                              Class Utils

                                                                                                                                                              Index

                                                                                                                                                              Constructors

                                                                                                                                                              constructor +Utils | ssfblib
                                                                                                                                                              ssfblib
                                                                                                                                                                Preparing search index...

                                                                                                                                                                Class Utils

                                                                                                                                                                Index

                                                                                                                                                                Constructors

                                                                                                                                                                Methods

                                                                                                                                                                Constructors

                                                                                                                                                                Methods

                                                                                                                                                                +

                                                                                                                                                                Constructors

                                                                                                                                                                Methods

                                                                                                                                                                diff --git a/docs/ssfblib_api/classes/frameDataIndex.html b/docs/ssfblib_api/classes/frameDataIndex.html index ad320eff..ac06e233 100644 --- a/docs/ssfblib_api/classes/frameDataIndex.html +++ b/docs/ssfblib_api/classes/frameDataIndex.html @@ -1,4 +1,4 @@ -frameDataIndex | ssfblib
                                                                                                                                                                ssfblib
                                                                                                                                                                  Preparing search index...

                                                                                                                                                                  Class frameDataIndex

                                                                                                                                                                  Index

                                                                                                                                                                  Constructors

                                                                                                                                                                  constructor +frameDataIndex | ssfblib
                                                                                                                                                                  ssfblib
                                                                                                                                                                    Preparing search index...

                                                                                                                                                                    Class frameDataIndex

                                                                                                                                                                    Index

                                                                                                                                                                    Constructors

                                                                                                                                                                    Properties

                                                                                                                                                                    bb: ByteBuffer = null
                                                                                                                                                                    bb_pos: number = 0

                                                                                                                                                                    Methods

                                                                                                                                                                    • Parameters

                                                                                                                                                                      • builder: Builder
                                                                                                                                                                      • statesOffset: number

                                                                                                                                                                      Returns void

                                                                                                                                                                    • Parameters

                                                                                                                                                                      • builder: Builder
                                                                                                                                                                      • statesOffset: number

                                                                                                                                                                      Returns number

                                                                                                                                                                    • Parameters

                                                                                                                                                                      • builder: Builder
                                                                                                                                                                      • data: number[]

                                                                                                                                                                      Returns number

                                                                                                                                                                    • Parameters

                                                                                                                                                                      • builder: Builder
                                                                                                                                                                      • numElems: number

                                                                                                                                                                      Returns void

                                                                                                                                                                    +

                                                                                                                                                                    Constructors

                                                                                                                                                                    Properties

                                                                                                                                                                    bb: ByteBuffer = null
                                                                                                                                                                    bb_pos: number = 0

                                                                                                                                                                    Methods

                                                                                                                                                                    • Parameters

                                                                                                                                                                      • builder: Builder
                                                                                                                                                                      • statesOffset: number

                                                                                                                                                                      Returns void

                                                                                                                                                                    • Parameters

                                                                                                                                                                      • builder: Builder
                                                                                                                                                                      • statesOffset: number

                                                                                                                                                                      Returns number

                                                                                                                                                                    • Parameters

                                                                                                                                                                      • builder: Builder
                                                                                                                                                                      • data: number[]

                                                                                                                                                                      Returns number

                                                                                                                                                                    • Parameters

                                                                                                                                                                      • builder: Builder
                                                                                                                                                                      • numElems: number

                                                                                                                                                                      Returns void

                                                                                                                                                                    diff --git a/docs/ssfblib_api/classes/labelDataItem.html b/docs/ssfblib_api/classes/labelDataItem.html index f30d7fe7..8a1edbc4 100644 --- a/docs/ssfblib_api/classes/labelDataItem.html +++ b/docs/ssfblib_api/classes/labelDataItem.html @@ -1,4 +1,4 @@ -labelDataItem | ssfblib
                                                                                                                                                                    ssfblib
                                                                                                                                                                      Preparing search index...

                                                                                                                                                                      Class labelDataItem

                                                                                                                                                                      Index

                                                                                                                                                                      Constructors

                                                                                                                                                                      constructor +labelDataItem | ssfblib
                                                                                                                                                                      ssfblib
                                                                                                                                                                        Preparing search index...

                                                                                                                                                                        Class labelDataItem

                                                                                                                                                                        Index

                                                                                                                                                                        Constructors

                                                                                                                                                                        Properties

                                                                                                                                                                        bb: ByteBuffer = null
                                                                                                                                                                        bb_pos: number = 0

                                                                                                                                                                        Methods

                                                                                                                                                                        • Parameters

                                                                                                                                                                          • builder: Builder
                                                                                                                                                                          • frameIndex: number

                                                                                                                                                                          Returns void

                                                                                                                                                                        • Parameters

                                                                                                                                                                          • builder: Builder
                                                                                                                                                                          • labelOffset: number

                                                                                                                                                                          Returns void

                                                                                                                                                                        • Parameters

                                                                                                                                                                          • builder: Builder
                                                                                                                                                                          • labelOffset: number
                                                                                                                                                                          • frameIndex: number

                                                                                                                                                                          Returns number

                                                                                                                                                                        +

                                                                                                                                                                        Constructors

                                                                                                                                                                        Properties

                                                                                                                                                                        bb: ByteBuffer = null
                                                                                                                                                                        bb_pos: number = 0

                                                                                                                                                                        Methods

                                                                                                                                                                        • Parameters

                                                                                                                                                                          • builder: Builder
                                                                                                                                                                          • frameIndex: number

                                                                                                                                                                          Returns void

                                                                                                                                                                        • Parameters

                                                                                                                                                                          • builder: Builder
                                                                                                                                                                          • labelOffset: number

                                                                                                                                                                          Returns void

                                                                                                                                                                        • Parameters

                                                                                                                                                                          • builder: Builder
                                                                                                                                                                          • labelOffset: number
                                                                                                                                                                          • frameIndex: number

                                                                                                                                                                          Returns number

                                                                                                                                                                        diff --git a/docs/ssfblib_api/classes/meshDataIndices.html b/docs/ssfblib_api/classes/meshDataIndices.html index e19ec98a..d38ad9b4 100644 --- a/docs/ssfblib_api/classes/meshDataIndices.html +++ b/docs/ssfblib_api/classes/meshDataIndices.html @@ -1,4 +1,4 @@ -meshDataIndices | ssfblib
                                                                                                                                                                        ssfblib
                                                                                                                                                                          Preparing search index...

                                                                                                                                                                          Class meshDataIndices

                                                                                                                                                                          Index

                                                                                                                                                                          Constructors

                                                                                                                                                                          constructor +meshDataIndices | ssfblib
                                                                                                                                                                          ssfblib
                                                                                                                                                                            Preparing search index...

                                                                                                                                                                            Class meshDataIndices

                                                                                                                                                                            Index

                                                                                                                                                                            Constructors

                                                                                                                                                                            Properties

                                                                                                                                                                            bb: ByteBuffer = null
                                                                                                                                                                            bb_pos: number = 0

                                                                                                                                                                            Methods

                                                                                                                                                                            • Parameters

                                                                                                                                                                              • builder: Builder
                                                                                                                                                                              • indicesOffset: number

                                                                                                                                                                              Returns void

                                                                                                                                                                            • Parameters

                                                                                                                                                                              • builder: Builder
                                                                                                                                                                              • data: number[] | Float32Array<ArrayBufferLike>

                                                                                                                                                                              Returns number

                                                                                                                                                                            • Parameters

                                                                                                                                                                              • builder: Builder
                                                                                                                                                                              • data: Uint8Array<ArrayBufferLike> | number[]

                                                                                                                                                                              Returns number

                                                                                                                                                                              This Uint8Array overload will be removed in the future.

                                                                                                                                                                              -
                                                                                                                                                                            • Parameters

                                                                                                                                                                              • builder: Builder
                                                                                                                                                                              • indicesOffset: number

                                                                                                                                                                              Returns number

                                                                                                                                                                            • Parameters

                                                                                                                                                                              • builder: Builder
                                                                                                                                                                              • numElems: number

                                                                                                                                                                              Returns void

                                                                                                                                                                            +

                                                                                                                                                                            Constructors

                                                                                                                                                                            Properties

                                                                                                                                                                            bb: ByteBuffer = null
                                                                                                                                                                            bb_pos: number = 0

                                                                                                                                                                            Methods

                                                                                                                                                                            • Parameters

                                                                                                                                                                              • builder: Builder
                                                                                                                                                                              • indicesOffset: number

                                                                                                                                                                              Returns void

                                                                                                                                                                            • Parameters

                                                                                                                                                                              • builder: Builder
                                                                                                                                                                              • data: number[] | Float32Array<ArrayBufferLike>

                                                                                                                                                                              Returns number

                                                                                                                                                                            • Parameters

                                                                                                                                                                              • builder: Builder
                                                                                                                                                                              • data: Uint8Array<ArrayBufferLike> | number[]

                                                                                                                                                                              Returns number

                                                                                                                                                                              This Uint8Array overload will be removed in the future.

                                                                                                                                                                              +
                                                                                                                                                                            • Parameters

                                                                                                                                                                              • builder: Builder
                                                                                                                                                                              • indicesOffset: number

                                                                                                                                                                              Returns number

                                                                                                                                                                            • Parameters

                                                                                                                                                                              • builder: Builder
                                                                                                                                                                              • numElems: number

                                                                                                                                                                              Returns void

                                                                                                                                                                            diff --git a/docs/ssfblib_api/classes/meshDataUV.html b/docs/ssfblib_api/classes/meshDataUV.html index 3b36cb42..5b4f45cb 100644 --- a/docs/ssfblib_api/classes/meshDataUV.html +++ b/docs/ssfblib_api/classes/meshDataUV.html @@ -1,4 +1,4 @@ -meshDataUV | ssfblib
                                                                                                                                                                            ssfblib
                                                                                                                                                                              Preparing search index...

                                                                                                                                                                              Class meshDataUV

                                                                                                                                                                              Index

                                                                                                                                                                              Constructors

                                                                                                                                                                              constructor +meshDataUV | ssfblib
                                                                                                                                                                              ssfblib
                                                                                                                                                                                Preparing search index...

                                                                                                                                                                                Class meshDataUV

                                                                                                                                                                                Index

                                                                                                                                                                                Constructors

                                                                                                                                                                                Properties

                                                                                                                                                                                bb: ByteBuffer = null
                                                                                                                                                                                bb_pos: number = 0

                                                                                                                                                                                Methods

                                                                                                                                                                                • Parameters

                                                                                                                                                                                  • builder: Builder
                                                                                                                                                                                  • uvOffset: number

                                                                                                                                                                                  Returns void

                                                                                                                                                                                • Parameters

                                                                                                                                                                                  • builder: Builder
                                                                                                                                                                                  • uvOffset: number

                                                                                                                                                                                  Returns number

                                                                                                                                                                                • Parameters

                                                                                                                                                                                  • builder: Builder
                                                                                                                                                                                  • data: number[] | Float32Array<ArrayBufferLike>

                                                                                                                                                                                  Returns number

                                                                                                                                                                                • Parameters

                                                                                                                                                                                  • builder: Builder
                                                                                                                                                                                  • data: Uint8Array<ArrayBufferLike> | number[]

                                                                                                                                                                                  Returns number

                                                                                                                                                                                  This Uint8Array overload will be removed in the future.

                                                                                                                                                                                  -
                                                                                                                                                                                • Parameters

                                                                                                                                                                                  • builder: Builder
                                                                                                                                                                                  • numElems: number

                                                                                                                                                                                  Returns void

                                                                                                                                                                                +

                                                                                                                                                                                Constructors

                                                                                                                                                                                Properties

                                                                                                                                                                                bb: ByteBuffer = null
                                                                                                                                                                                bb_pos: number = 0

                                                                                                                                                                                Methods

                                                                                                                                                                                • Parameters

                                                                                                                                                                                  • builder: Builder
                                                                                                                                                                                  • uvOffset: number

                                                                                                                                                                                  Returns void

                                                                                                                                                                                • Parameters

                                                                                                                                                                                  • builder: Builder
                                                                                                                                                                                  • uvOffset: number

                                                                                                                                                                                  Returns number

                                                                                                                                                                                • Parameters

                                                                                                                                                                                  • builder: Builder
                                                                                                                                                                                  • data: number[] | Float32Array<ArrayBufferLike>

                                                                                                                                                                                  Returns number

                                                                                                                                                                                • Parameters

                                                                                                                                                                                  • builder: Builder
                                                                                                                                                                                  • data: Uint8Array<ArrayBufferLike> | number[]

                                                                                                                                                                                  Returns number

                                                                                                                                                                                  This Uint8Array overload will be removed in the future.

                                                                                                                                                                                  +
                                                                                                                                                                                • Parameters

                                                                                                                                                                                  • builder: Builder
                                                                                                                                                                                  • numElems: number

                                                                                                                                                                                  Returns void

                                                                                                                                                                                diff --git a/docs/ssfblib_api/classes/partState.html b/docs/ssfblib_api/classes/partState.html index 47176fd8..069b79b6 100644 --- a/docs/ssfblib_api/classes/partState.html +++ b/docs/ssfblib_api/classes/partState.html @@ -1,4 +1,4 @@ -partState | ssfblib
                                                                                                                                                                                ssfblib
                                                                                                                                                                                  Preparing search index...

                                                                                                                                                                                  Class partState

                                                                                                                                                                                  Index

                                                                                                                                                                                  Constructors

                                                                                                                                                                                  constructor +partState | ssfblib
                                                                                                                                                                                  ssfblib
                                                                                                                                                                                    Preparing search index...

                                                                                                                                                                                    Class partState

                                                                                                                                                                                    Index

                                                                                                                                                                                    Constructors

                                                                                                                                                                                    Properties

                                                                                                                                                                                    bb: ByteBuffer = null
                                                                                                                                                                                    bb_pos: number = 0

                                                                                                                                                                                    Methods

                                                                                                                                                                                    • Parameters

                                                                                                                                                                                      • builder: Builder
                                                                                                                                                                                      • dataOffset: number

                                                                                                                                                                                      Returns void

                                                                                                                                                                                    • Parameters

                                                                                                                                                                                      • builder: Builder
                                                                                                                                                                                      • flag1: number

                                                                                                                                                                                      Returns void

                                                                                                                                                                                    • Parameters

                                                                                                                                                                                      • builder: Builder
                                                                                                                                                                                      • flag2: number

                                                                                                                                                                                      Returns void

                                                                                                                                                                                    • Parameters

                                                                                                                                                                                      • builder: Builder
                                                                                                                                                                                      • index: number

                                                                                                                                                                                      Returns void

                                                                                                                                                                                    • Parameters

                                                                                                                                                                                      • builder: Builder
                                                                                                                                                                                      • data: Uint32Array<ArrayBufferLike> | number[]

                                                                                                                                                                                      Returns number

                                                                                                                                                                                    • Parameters

                                                                                                                                                                                      • builder: Builder
                                                                                                                                                                                      • data: Uint8Array<ArrayBufferLike> | number[]

                                                                                                                                                                                      Returns number

                                                                                                                                                                                      This Uint8Array overload will be removed in the future.

                                                                                                                                                                                      -
                                                                                                                                                                                    • Parameters

                                                                                                                                                                                      • builder: Builder
                                                                                                                                                                                      • index: number
                                                                                                                                                                                      • flag1: number
                                                                                                                                                                                      • flag2: number
                                                                                                                                                                                      • dataOffset: number

                                                                                                                                                                                      Returns number

                                                                                                                                                                                    • Parameters

                                                                                                                                                                                      • builder: Builder
                                                                                                                                                                                      • numElems: number

                                                                                                                                                                                      Returns void

                                                                                                                                                                                    +

                                                                                                                                                                                    Constructors

                                                                                                                                                                                    Properties

                                                                                                                                                                                    bb: ByteBuffer = null
                                                                                                                                                                                    bb_pos: number = 0

                                                                                                                                                                                    Methods

                                                                                                                                                                                    • Parameters

                                                                                                                                                                                      • builder: Builder
                                                                                                                                                                                      • dataOffset: number

                                                                                                                                                                                      Returns void

                                                                                                                                                                                    • Parameters

                                                                                                                                                                                      • builder: Builder
                                                                                                                                                                                      • flag1: number

                                                                                                                                                                                      Returns void

                                                                                                                                                                                    • Parameters

                                                                                                                                                                                      • builder: Builder
                                                                                                                                                                                      • flag2: number

                                                                                                                                                                                      Returns void

                                                                                                                                                                                    • Parameters

                                                                                                                                                                                      • builder: Builder
                                                                                                                                                                                      • index: number

                                                                                                                                                                                      Returns void

                                                                                                                                                                                    • Parameters

                                                                                                                                                                                      • builder: Builder
                                                                                                                                                                                      • data: Uint32Array<ArrayBufferLike> | number[]

                                                                                                                                                                                      Returns number

                                                                                                                                                                                    • Parameters

                                                                                                                                                                                      • builder: Builder
                                                                                                                                                                                      • data: Uint8Array<ArrayBufferLike> | number[]

                                                                                                                                                                                      Returns number

                                                                                                                                                                                      This Uint8Array overload will be removed in the future.

                                                                                                                                                                                      +
                                                                                                                                                                                    • Parameters

                                                                                                                                                                                      • builder: Builder
                                                                                                                                                                                      • index: number
                                                                                                                                                                                      • flag1: number
                                                                                                                                                                                      • flag2: number
                                                                                                                                                                                      • dataOffset: number

                                                                                                                                                                                      Returns number

                                                                                                                                                                                    • Parameters

                                                                                                                                                                                      • builder: Builder
                                                                                                                                                                                      • numElems: number

                                                                                                                                                                                      Returns void

                                                                                                                                                                                    diff --git a/docs/ssfblib_api/classes/userDataInteger.html b/docs/ssfblib_api/classes/userDataInteger.html index 9e0553b4..bffa0a6e 100644 --- a/docs/ssfblib_api/classes/userDataInteger.html +++ b/docs/ssfblib_api/classes/userDataInteger.html @@ -1,8 +1,8 @@ -userDataInteger | ssfblib
                                                                                                                                                                                    ssfblib
                                                                                                                                                                                      Preparing search index...

                                                                                                                                                                                      Class userDataInteger

                                                                                                                                                                                      Index

                                                                                                                                                                                      Constructors

                                                                                                                                                                                      constructor +userDataInteger | ssfblib
                                                                                                                                                                                      ssfblib
                                                                                                                                                                                        Preparing search index...

                                                                                                                                                                                        Class userDataInteger

                                                                                                                                                                                        Index

                                                                                                                                                                                        Constructors

                                                                                                                                                                                        Properties

                                                                                                                                                                                        bb: ByteBuffer = null
                                                                                                                                                                                        bb_pos: number = 0

                                                                                                                                                                                        Methods

                                                                                                                                                                                        • Parameters

                                                                                                                                                                                          • builder: Builder
                                                                                                                                                                                          • integer: number

                                                                                                                                                                                          Returns number

                                                                                                                                                                                        +

                                                                                                                                                                                        Constructors

                                                                                                                                                                                        Properties

                                                                                                                                                                                        bb: ByteBuffer = null
                                                                                                                                                                                        bb_pos: number = 0

                                                                                                                                                                                        Methods

                                                                                                                                                                                        • Parameters

                                                                                                                                                                                          • builder: Builder
                                                                                                                                                                                          • integer: number

                                                                                                                                                                                          Returns number

                                                                                                                                                                                        diff --git a/docs/ssfblib_api/classes/userDataItem.html b/docs/ssfblib_api/classes/userDataItem.html index 3b03fad0..8ccdd76e 100644 --- a/docs/ssfblib_api/classes/userDataItem.html +++ b/docs/ssfblib_api/classes/userDataItem.html @@ -1,4 +1,4 @@ -userDataItem | ssfblib
                                                                                                                                                                                        ssfblib
                                                                                                                                                                                          Preparing search index...

                                                                                                                                                                                          Class userDataItem

                                                                                                                                                                                          Index

                                                                                                                                                                                          Constructors

                                                                                                                                                                                          constructor +userDataItem | ssfblib
                                                                                                                                                                                          ssfblib
                                                                                                                                                                                            Preparing search index...

                                                                                                                                                                                            Class userDataItem

                                                                                                                                                                                            Index

                                                                                                                                                                                            Constructors

                                                                                                                                                                                            Properties

                                                                                                                                                                                            Methods

                                                                                                                                                                                            Constructors

                                                                                                                                                                                            Properties

                                                                                                                                                                                            bb: ByteBuffer = null
                                                                                                                                                                                            bb_pos: number = 0

                                                                                                                                                                                            Methods

                                                                                                                                                                                            • Parameters

                                                                                                                                                                                              • builder: Builder
                                                                                                                                                                                              • arrayIndex: number

                                                                                                                                                                                              Returns void

                                                                                                                                                                                            • Parameters

                                                                                                                                                                                              • builder: Builder
                                                                                                                                                                                              • dataOffset: number

                                                                                                                                                                                              Returns void

                                                                                                                                                                                            • Parameters

                                                                                                                                                                                              • builder: Builder
                                                                                                                                                                                              • dataTypeOffset: number

                                                                                                                                                                                              Returns void

                                                                                                                                                                                            • Parameters

                                                                                                                                                                                              • builder: Builder
                                                                                                                                                                                              • data: number[]

                                                                                                                                                                                              Returns number

                                                                                                                                                                                            • Parameters

                                                                                                                                                                                              • builder: Builder
                                                                                                                                                                                              • flags: number
                                                                                                                                                                                              • arrayIndex: number
                                                                                                                                                                                              • dataTypeOffset: number
                                                                                                                                                                                              • dataOffset: number

                                                                                                                                                                                              Returns number

                                                                                                                                                                                            • Parameters

                                                                                                                                                                                              • builder: Builder
                                                                                                                                                                                              • numElems: number

                                                                                                                                                                                              Returns void

                                                                                                                                                                                            • Parameters

                                                                                                                                                                                              • builder: Builder
                                                                                                                                                                                              • numElems: number

                                                                                                                                                                                              Returns void

                                                                                                                                                                                            +

                                                                                                                                                                                            Constructors

                                                                                                                                                                                            Properties

                                                                                                                                                                                            bb: ByteBuffer = null
                                                                                                                                                                                            bb_pos: number = 0

                                                                                                                                                                                            Methods

                                                                                                                                                                                            • Parameters

                                                                                                                                                                                              • builder: Builder
                                                                                                                                                                                              • arrayIndex: number

                                                                                                                                                                                              Returns void

                                                                                                                                                                                            • Parameters

                                                                                                                                                                                              • builder: Builder
                                                                                                                                                                                              • dataOffset: number

                                                                                                                                                                                              Returns void

                                                                                                                                                                                            • Parameters

                                                                                                                                                                                              • builder: Builder
                                                                                                                                                                                              • dataTypeOffset: number

                                                                                                                                                                                              Returns void

                                                                                                                                                                                            • Parameters

                                                                                                                                                                                              • builder: Builder
                                                                                                                                                                                              • data: number[]

                                                                                                                                                                                              Returns number

                                                                                                                                                                                            • Parameters

                                                                                                                                                                                              • builder: Builder
                                                                                                                                                                                              • flags: number
                                                                                                                                                                                              • arrayIndex: number
                                                                                                                                                                                              • dataTypeOffset: number
                                                                                                                                                                                              • dataOffset: number

                                                                                                                                                                                              Returns number

                                                                                                                                                                                            • Parameters

                                                                                                                                                                                              • builder: Builder
                                                                                                                                                                                              • numElems: number

                                                                                                                                                                                              Returns void

                                                                                                                                                                                            • Parameters

                                                                                                                                                                                              • builder: Builder
                                                                                                                                                                                              • numElems: number

                                                                                                                                                                                              Returns void

                                                                                                                                                                                            diff --git a/docs/ssfblib_api/classes/userDataPerFrame.html b/docs/ssfblib_api/classes/userDataPerFrame.html index 2e6dd918..1b20f2d0 100644 --- a/docs/ssfblib_api/classes/userDataPerFrame.html +++ b/docs/ssfblib_api/classes/userDataPerFrame.html @@ -1,4 +1,4 @@ -userDataPerFrame | ssfblib
                                                                                                                                                                                            ssfblib
                                                                                                                                                                                              Preparing search index...

                                                                                                                                                                                              Class userDataPerFrame

                                                                                                                                                                                              Index

                                                                                                                                                                                              Constructors

                                                                                                                                                                                              constructor +userDataPerFrame | ssfblib
                                                                                                                                                                                              ssfblib
                                                                                                                                                                                                Preparing search index...

                                                                                                                                                                                                Class userDataPerFrame

                                                                                                                                                                                                Index

                                                                                                                                                                                                Constructors

                                                                                                                                                                                                Properties

                                                                                                                                                                                                bb: ByteBuffer = null
                                                                                                                                                                                                bb_pos: number = 0

                                                                                                                                                                                                Methods

                                                                                                                                                                                                • Parameters

                                                                                                                                                                                                  • builder: Builder
                                                                                                                                                                                                  • frameIndex: number
                                                                                                                                                                                                  • dataOffset: number

                                                                                                                                                                                                  Returns number

                                                                                                                                                                                                +

                                                                                                                                                                                                Constructors

                                                                                                                                                                                                Properties

                                                                                                                                                                                                bb: ByteBuffer = null
                                                                                                                                                                                                bb_pos: number = 0

                                                                                                                                                                                                Methods

                                                                                                                                                                                                • Parameters

                                                                                                                                                                                                  • builder: Builder
                                                                                                                                                                                                  • frameIndex: number
                                                                                                                                                                                                  • dataOffset: number

                                                                                                                                                                                                  Returns number

                                                                                                                                                                                                diff --git a/docs/ssfblib_api/classes/userDataPoint.html b/docs/ssfblib_api/classes/userDataPoint.html index 353b7ec5..ff68c7df 100644 --- a/docs/ssfblib_api/classes/userDataPoint.html +++ b/docs/ssfblib_api/classes/userDataPoint.html @@ -1,4 +1,4 @@ -userDataPoint | ssfblib
                                                                                                                                                                                                ssfblib
                                                                                                                                                                                                  Preparing search index...

                                                                                                                                                                                                  Class userDataPoint

                                                                                                                                                                                                  Index

                                                                                                                                                                                                  Constructors

                                                                                                                                                                                                  constructor +userDataPoint | ssfblib
                                                                                                                                                                                                  ssfblib
                                                                                                                                                                                                    Preparing search index...

                                                                                                                                                                                                    Class userDataPoint

                                                                                                                                                                                                    Index

                                                                                                                                                                                                    Constructors

                                                                                                                                                                                                    Properties

                                                                                                                                                                                                    Methods

                                                                                                                                                                                                    Constructors

                                                                                                                                                                                                    Properties

                                                                                                                                                                                                    bb: ByteBuffer = null
                                                                                                                                                                                                    bb_pos: number = 0

                                                                                                                                                                                                    Methods

                                                                                                                                                                                                    • Parameters

                                                                                                                                                                                                      • builder: Builder
                                                                                                                                                                                                      • x: number
                                                                                                                                                                                                      • y: number

                                                                                                                                                                                                      Returns number

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Constructors

                                                                                                                                                                                                    Properties

                                                                                                                                                                                                    bb: ByteBuffer = null
                                                                                                                                                                                                    bb_pos: number = 0

                                                                                                                                                                                                    Methods

                                                                                                                                                                                                    • Parameters

                                                                                                                                                                                                      • builder: Builder
                                                                                                                                                                                                      • x: number
                                                                                                                                                                                                      • y: number

                                                                                                                                                                                                      Returns number

                                                                                                                                                                                                    diff --git a/docs/ssfblib_api/classes/userDataRect.html b/docs/ssfblib_api/classes/userDataRect.html index 37555108..fe3e42a6 100644 --- a/docs/ssfblib_api/classes/userDataRect.html +++ b/docs/ssfblib_api/classes/userDataRect.html @@ -1,4 +1,4 @@ -userDataRect | ssfblib
                                                                                                                                                                                                    ssfblib
                                                                                                                                                                                                      Preparing search index...

                                                                                                                                                                                                      Class userDataRect

                                                                                                                                                                                                      Index

                                                                                                                                                                                                      Constructors

                                                                                                                                                                                                      constructor +userDataRect | ssfblib
                                                                                                                                                                                                      ssfblib
                                                                                                                                                                                                        Preparing search index...

                                                                                                                                                                                                        Class userDataRect

                                                                                                                                                                                                        Index

                                                                                                                                                                                                        Constructors

                                                                                                                                                                                                        Properties

                                                                                                                                                                                                        Methods

                                                                                                                                                                                                        __init @@ -8,4 +8,4 @@ y createuserDataRect sizeOf -

                                                                                                                                                                                                        Constructors

                                                                                                                                                                                                        Properties

                                                                                                                                                                                                        bb: ByteBuffer = null
                                                                                                                                                                                                        bb_pos: number = 0

                                                                                                                                                                                                        Methods

                                                                                                                                                                                                        • Parameters

                                                                                                                                                                                                          • builder: Builder
                                                                                                                                                                                                          • x: number
                                                                                                                                                                                                          • y: number
                                                                                                                                                                                                          • w: number
                                                                                                                                                                                                          • h: number

                                                                                                                                                                                                          Returns number

                                                                                                                                                                                                        +

                                                                                                                                                                                                        Constructors

                                                                                                                                                                                                        Properties

                                                                                                                                                                                                        bb: ByteBuffer = null
                                                                                                                                                                                                        bb_pos: number = 0

                                                                                                                                                                                                        Methods

                                                                                                                                                                                                        • Parameters

                                                                                                                                                                                                          • builder: Builder
                                                                                                                                                                                                          • x: number
                                                                                                                                                                                                          • y: number
                                                                                                                                                                                                          • w: number
                                                                                                                                                                                                          • h: number

                                                                                                                                                                                                          Returns number

                                                                                                                                                                                                        diff --git a/docs/ssfblib_api/classes/userDataString.html b/docs/ssfblib_api/classes/userDataString.html index 08808e6c..7e1daf10 100644 --- a/docs/ssfblib_api/classes/userDataString.html +++ b/docs/ssfblib_api/classes/userDataString.html @@ -1,4 +1,4 @@ -userDataString | ssfblib
                                                                                                                                                                                                        ssfblib
                                                                                                                                                                                                          Preparing search index...

                                                                                                                                                                                                          Class userDataString

                                                                                                                                                                                                          Index

                                                                                                                                                                                                          Constructors

                                                                                                                                                                                                          constructor +userDataString | ssfblib
                                                                                                                                                                                                          ssfblib
                                                                                                                                                                                                            Preparing search index...

                                                                                                                                                                                                            Class userDataString

                                                                                                                                                                                                            Index

                                                                                                                                                                                                            Constructors

                                                                                                                                                                                                            Properties

                                                                                                                                                                                                            bb: ByteBuffer = null
                                                                                                                                                                                                            bb_pos: number = 0

                                                                                                                                                                                                            Methods

                                                                                                                                                                                                            • Parameters

                                                                                                                                                                                                              • builder: Builder
                                                                                                                                                                                                              • length: number
                                                                                                                                                                                                              • dataOffset: number

                                                                                                                                                                                                              Returns number

                                                                                                                                                                                                            +

                                                                                                                                                                                                            Constructors

                                                                                                                                                                                                            Properties

                                                                                                                                                                                                            bb: ByteBuffer = null
                                                                                                                                                                                                            bb_pos: number = 0

                                                                                                                                                                                                            Methods

                                                                                                                                                                                                            • Parameters

                                                                                                                                                                                                              • builder: Builder
                                                                                                                                                                                                              • length: number
                                                                                                                                                                                                              • dataOffset: number

                                                                                                                                                                                                              Returns number

                                                                                                                                                                                                            diff --git a/docs/ssfblib_api/enums/EffectNodeBehavior.html b/docs/ssfblib_api/enums/EffectNodeBehavior.html index 9fb81eea..4a188062 100644 --- a/docs/ssfblib_api/enums/EffectNodeBehavior.html +++ b/docs/ssfblib_api/enums/EffectNodeBehavior.html @@ -1,4 +1,4 @@ -EffectNodeBehavior | ssfblib
                                                                                                                                                                                                            ssfblib
                                                                                                                                                                                                              Preparing search index...

                                                                                                                                                                                                              Enumeration EffectNodeBehavior

                                                                                                                                                                                                              Index

                                                                                                                                                                                                              Enumeration Members

                                                                                                                                                                                                              EffectParticleElementAlphaFade +EffectNodeBehavior | ssfblib
                                                                                                                                                                                                              ssfblib
                                                                                                                                                                                                                Preparing search index...

                                                                                                                                                                                                                Enumeration EffectNodeBehavior

                                                                                                                                                                                                                Index

                                                                                                                                                                                                                Enumeration Members

                                                                                                                                                                                                                EffectParticleElementAlphaFade: 12
                                                                                                                                                                                                                EffectParticleElementBasic: 1
                                                                                                                                                                                                                EffectParticleElementDelay: 3
                                                                                                                                                                                                                EffectParticleElementGravity: 4
                                                                                                                                                                                                                EffectParticleElementInitColor: 10
                                                                                                                                                                                                                EffectParticleElementPosition: 5
                                                                                                                                                                                                                EffectParticleElementRndSeedChange: 2
                                                                                                                                                                                                                EffectParticleElementRotation: 6
                                                                                                                                                                                                                EffectParticleElementRotationTrans: 7
                                                                                                                                                                                                                EffectParticleElementSize: 13
                                                                                                                                                                                                                EffectParticleElementTangentialAcceleration: 9
                                                                                                                                                                                                                EffectParticleElementTransColor: 11
                                                                                                                                                                                                                EffectParticleElementTransSize: 14
                                                                                                                                                                                                                EffectParticleElementTransSpeed: 8
                                                                                                                                                                                                                EffectParticleInfiniteEmitEnabled: 17
                                                                                                                                                                                                                EffectParticlePointGravity: 15
                                                                                                                                                                                                                EffectParticleTurnToDirectionEnabled: 16
                                                                                                                                                                                                                NONE: 0
                                                                                                                                                                                                                +

                                                                                                                                                                                                                Enumeration Members

                                                                                                                                                                                                                EffectParticleElementAlphaFade: 12
                                                                                                                                                                                                                EffectParticleElementBasic: 1
                                                                                                                                                                                                                EffectParticleElementDelay: 3
                                                                                                                                                                                                                EffectParticleElementGravity: 4
                                                                                                                                                                                                                EffectParticleElementInitColor: 10
                                                                                                                                                                                                                EffectParticleElementPosition: 5
                                                                                                                                                                                                                EffectParticleElementRndSeedChange: 2
                                                                                                                                                                                                                EffectParticleElementRotation: 6
                                                                                                                                                                                                                EffectParticleElementRotationTrans: 7
                                                                                                                                                                                                                EffectParticleElementSize: 13
                                                                                                                                                                                                                EffectParticleElementTangentialAcceleration: 9
                                                                                                                                                                                                                EffectParticleElementTransColor: 11
                                                                                                                                                                                                                EffectParticleElementTransSize: 14
                                                                                                                                                                                                                EffectParticleElementTransSpeed: 8
                                                                                                                                                                                                                EffectParticleInfiniteEmitEnabled: 17
                                                                                                                                                                                                                EffectParticlePointGravity: 15
                                                                                                                                                                                                                EffectParticleTurnToDirectionEnabled: 16
                                                                                                                                                                                                                NONE: 0
                                                                                                                                                                                                                diff --git a/docs/ssfblib_api/enums/PART_FLAG.html b/docs/ssfblib_api/enums/PART_FLAG.html index cafb9f51..d8c75a49 100644 --- a/docs/ssfblib_api/enums/PART_FLAG.html +++ b/docs/ssfblib_api/enums/PART_FLAG.html @@ -1,4 +1,4 @@ -PART_FLAG | ssfblib
                                                                                                                                                                                                                ssfblib
                                                                                                                                                                                                                  Preparing search index...

                                                                                                                                                                                                                  Enumeration PART_FLAG

                                                                                                                                                                                                                  Index

                                                                                                                                                                                                                  Enumeration Members

                                                                                                                                                                                                                  BOUNDINGRADIUS +PART_FLAG | ssfblib
                                                                                                                                                                                                                  ssfblib
                                                                                                                                                                                                                    Preparing search index...

                                                                                                                                                                                                                    Enumeration PART_FLAG

                                                                                                                                                                                                                    Index

                                                                                                                                                                                                                    Enumeration Members

                                                                                                                                                                                                                    BOUNDINGRADIUS: 134217728
                                                                                                                                                                                                                    CELL_INDEX: 8
                                                                                                                                                                                                                    EFFECT_KEYFRAME: 2147483648
                                                                                                                                                                                                                    FLIP_H: 2
                                                                                                                                                                                                                    FLIP_V: 4
                                                                                                                                                                                                                    INSTANCE_KEYFRAME: 1073741824
                                                                                                                                                                                                                    INVISIBLE: 1
                                                                                                                                                                                                                    LOCALOPACITY: 131072
                                                                                                                                                                                                                    LOCALSCALE_X: 16384
                                                                                                                                                                                                                    LOCALSCALE_Y: 32768
                                                                                                                                                                                                                    MASK: 268435456
                                                                                                                                                                                                                    OPACITY: 65536
                                                                                                                                                                                                                    PARTS_COLOR: 262144
                                                                                                                                                                                                                    PIVOT_X: 128
                                                                                                                                                                                                                    PIVOT_Y: 256
                                                                                                                                                                                                                    POSITION_X: 16
                                                                                                                                                                                                                    POSITION_Y: 32
                                                                                                                                                                                                                    POSITION_Z: 64
                                                                                                                                                                                                                    PRIORITY: 536870912
                                                                                                                                                                                                                    ROTATIONX: 512
                                                                                                                                                                                                                    ROTATIONY: 1024
                                                                                                                                                                                                                    ROTATIONZ: 2048
                                                                                                                                                                                                                    SCALE_X: 4096
                                                                                                                                                                                                                    SCALE_Y: 8192
                                                                                                                                                                                                                    SIZE_X: 1048576
                                                                                                                                                                                                                    SIZE_Y: 2097152
                                                                                                                                                                                                                    U_MOVE: 4194304
                                                                                                                                                                                                                    U_SCALE: 33554432
                                                                                                                                                                                                                    UV_ROTATION: 16777216
                                                                                                                                                                                                                    V_MOVE: 8388608
                                                                                                                                                                                                                    V_SCALE: 67108864
                                                                                                                                                                                                                    VERTEX_TRANSFORM: 524288
                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    Enumeration Members

                                                                                                                                                                                                                    BOUNDINGRADIUS: 134217728
                                                                                                                                                                                                                    CELL_INDEX: 8
                                                                                                                                                                                                                    EFFECT_KEYFRAME: 2147483648
                                                                                                                                                                                                                    FLIP_H: 2
                                                                                                                                                                                                                    FLIP_V: 4
                                                                                                                                                                                                                    INSTANCE_KEYFRAME: 1073741824
                                                                                                                                                                                                                    INVISIBLE: 1
                                                                                                                                                                                                                    LOCALOPACITY: 131072
                                                                                                                                                                                                                    LOCALSCALE_X: 16384
                                                                                                                                                                                                                    LOCALSCALE_Y: 32768
                                                                                                                                                                                                                    MASK: 268435456
                                                                                                                                                                                                                    OPACITY: 65536
                                                                                                                                                                                                                    PARTS_COLOR: 262144
                                                                                                                                                                                                                    PIVOT_X: 128
                                                                                                                                                                                                                    PIVOT_Y: 256
                                                                                                                                                                                                                    POSITION_X: 16
                                                                                                                                                                                                                    POSITION_Y: 32
                                                                                                                                                                                                                    POSITION_Z: 64
                                                                                                                                                                                                                    PRIORITY: 536870912
                                                                                                                                                                                                                    ROTATIONX: 512
                                                                                                                                                                                                                    ROTATIONY: 1024
                                                                                                                                                                                                                    ROTATIONZ: 2048
                                                                                                                                                                                                                    SCALE_X: 4096
                                                                                                                                                                                                                    SCALE_Y: 8192
                                                                                                                                                                                                                    SIZE_X: 1048576
                                                                                                                                                                                                                    SIZE_Y: 2097152
                                                                                                                                                                                                                    U_MOVE: 4194304
                                                                                                                                                                                                                    U_SCALE: 33554432
                                                                                                                                                                                                                    UV_ROTATION: 16777216
                                                                                                                                                                                                                    V_MOVE: 8388608
                                                                                                                                                                                                                    V_SCALE: 67108864
                                                                                                                                                                                                                    VERTEX_TRANSFORM: 524288
                                                                                                                                                                                                                    diff --git a/docs/ssfblib_api/enums/PART_FLAG2.html b/docs/ssfblib_api/enums/PART_FLAG2.html index 9a15c020..6293395a 100644 --- a/docs/ssfblib_api/enums/PART_FLAG2.html +++ b/docs/ssfblib_api/enums/PART_FLAG2.html @@ -1,2 +1,2 @@ -PART_FLAG2 | ssfblib
                                                                                                                                                                                                                    ssfblib
                                                                                                                                                                                                                      Preparing search index...

                                                                                                                                                                                                                      Enumeration PART_FLAG2

                                                                                                                                                                                                                      Index

                                                                                                                                                                                                                      Enumeration Members

                                                                                                                                                                                                                      Enumeration Members

                                                                                                                                                                                                                      MESHDATA: 1
                                                                                                                                                                                                                      +PART_FLAG2 | ssfblib
                                                                                                                                                                                                                      ssfblib
                                                                                                                                                                                                                        Preparing search index...

                                                                                                                                                                                                                        Enumeration PART_FLAG2

                                                                                                                                                                                                                        Index

                                                                                                                                                                                                                        Enumeration Members

                                                                                                                                                                                                                        Enumeration Members

                                                                                                                                                                                                                        MESHDATA: 1
                                                                                                                                                                                                                        diff --git a/docs/ssfblib_api/enums/SsPartType.html b/docs/ssfblib_api/enums/SsPartType.html index 070b15a3..fabe0dd2 100644 --- a/docs/ssfblib_api/enums/SsPartType.html +++ b/docs/ssfblib_api/enums/SsPartType.html @@ -1,4 +1,4 @@ -SsPartType | ssfblib
                                                                                                                                                                                                                        ssfblib
                                                                                                                                                                                                                          Preparing search index...

                                                                                                                                                                                                                          Enumeration SsPartType

                                                                                                                                                                                                                          Index

                                                                                                                                                                                                                          Enumeration Members

                                                                                                                                                                                                                          Armature +SsPartType | ssfblib
                                                                                                                                                                                                                          ssfblib
                                                                                                                                                                                                                            Preparing search index...

                                                                                                                                                                                                                            Enumeration SsPartType

                                                                                                                                                                                                                            Index

                                                                                                                                                                                                                            Enumeration Members

                                                                                                                                                                                                                            Enumeration Members

                                                                                                                                                                                                                            Armature: 4
                                                                                                                                                                                                                            Bonepoint: 11
                                                                                                                                                                                                                            Constraint: 8
                                                                                                                                                                                                                            Effect: 5
                                                                                                                                                                                                                            Instance: 3
                                                                                                                                                                                                                            Invalid: -1
                                                                                                                                                                                                                            Joint: 10
                                                                                                                                                                                                                            Mask: 9
                                                                                                                                                                                                                            Mesh: 6
                                                                                                                                                                                                                            Movenode: 7
                                                                                                                                                                                                                            Normal: 1
                                                                                                                                                                                                                            Nulltype: 0
                                                                                                                                                                                                                            Text: 2
                                                                                                                                                                                                                            +

                                                                                                                                                                                                                            Enumeration Members

                                                                                                                                                                                                                            Armature: 4
                                                                                                                                                                                                                            Bonepoint: 11
                                                                                                                                                                                                                            Constraint: 8
                                                                                                                                                                                                                            Effect: 5
                                                                                                                                                                                                                            Instance: 3
                                                                                                                                                                                                                            Invalid: -1
                                                                                                                                                                                                                            Joint: 10
                                                                                                                                                                                                                            Mask: 9
                                                                                                                                                                                                                            Mesh: 6
                                                                                                                                                                                                                            Movenode: 7
                                                                                                                                                                                                                            Normal: 1
                                                                                                                                                                                                                            Nulltype: 0
                                                                                                                                                                                                                            Text: 2
                                                                                                                                                                                                                            diff --git a/docs/ssfblib_api/enums/VERTEX_FLAG.html b/docs/ssfblib_api/enums/VERTEX_FLAG.html index a79d982c..86218ec1 100644 --- a/docs/ssfblib_api/enums/VERTEX_FLAG.html +++ b/docs/ssfblib_api/enums/VERTEX_FLAG.html @@ -1,6 +1,6 @@ -VERTEX_FLAG | ssfblib
                                                                                                                                                                                                                            ssfblib
                                                                                                                                                                                                                              Preparing search index...

                                                                                                                                                                                                                              Enumeration VERTEX_FLAG

                                                                                                                                                                                                                              Index

                                                                                                                                                                                                                              Enumeration Members

                                                                                                                                                                                                                              LB +VERTEX_FLAG | ssfblib
                                                                                                                                                                                                                              ssfblib
                                                                                                                                                                                                                                Preparing search index...

                                                                                                                                                                                                                                Enumeration VERTEX_FLAG

                                                                                                                                                                                                                                Index

                                                                                                                                                                                                                                Enumeration Members

                                                                                                                                                                                                                                Enumeration Members

                                                                                                                                                                                                                                LB: 4
                                                                                                                                                                                                                                LT: 1
                                                                                                                                                                                                                                ONE: 16
                                                                                                                                                                                                                                RB: 8
                                                                                                                                                                                                                                RT: 2
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Enumeration Members

                                                                                                                                                                                                                                LB: 4
                                                                                                                                                                                                                                LT: 1
                                                                                                                                                                                                                                ONE: 16
                                                                                                                                                                                                                                RB: 8
                                                                                                                                                                                                                                RT: 2
                                                                                                                                                                                                                                diff --git a/docs/ssfblib_api/enums/userDataValue.html b/docs/ssfblib_api/enums/userDataValue.html index 79c124fa..13944a3a 100644 --- a/docs/ssfblib_api/enums/userDataValue.html +++ b/docs/ssfblib_api/enums/userDataValue.html @@ -1,6 +1,6 @@ -userDataValue | ssfblib
                                                                                                                                                                                                                                ssfblib
                                                                                                                                                                                                                                  Preparing search index...

                                                                                                                                                                                                                                  Enumeration userDataValue

                                                                                                                                                                                                                                  Index

                                                                                                                                                                                                                                  Enumeration Members

                                                                                                                                                                                                                                  NONE +userDataValue | ssfblib
                                                                                                                                                                                                                                  ssfblib
                                                                                                                                                                                                                                    Preparing search index...

                                                                                                                                                                                                                                    Enumeration userDataValue

                                                                                                                                                                                                                                    Index

                                                                                                                                                                                                                                    Enumeration Members

                                                                                                                                                                                                                                    NONE: 0
                                                                                                                                                                                                                                    userDataInteger: 1
                                                                                                                                                                                                                                    userDataPoint: 3
                                                                                                                                                                                                                                    userDataRect: 2
                                                                                                                                                                                                                                    userDataString: 4
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Enumeration Members

                                                                                                                                                                                                                                    NONE: 0
                                                                                                                                                                                                                                    userDataInteger: 1
                                                                                                                                                                                                                                    userDataPoint: 3
                                                                                                                                                                                                                                    userDataRect: 2
                                                                                                                                                                                                                                    userDataString: 4
                                                                                                                                                                                                                                    diff --git a/docs/ssfblib_api/index.html b/docs/ssfblib_api/index.html index 25319bcc..4a1bf7a8 100644 --- a/docs/ssfblib_api/index.html +++ b/docs/ssfblib_api/index.html @@ -1,17 +1,26 @@ -ssfblib
                                                                                                                                                                                                                                    ssfblib
                                                                                                                                                                                                                                      Preparing search index...

                                                                                                                                                                                                                                      ssfblib

                                                                                                                                                                                                                                      ssfblib

                                                                                                                                                                                                                                      OPTPiX SpriteStudio 7.0OPTPiX SpriteStudio 6 で制作したアニメーションデータの一つである ssfb フォーマットをパースするライブラリです。

                                                                                                                                                                                                                                      -

                                                                                                                                                                                                                                      ssfblib は FlatBuffers が schema から生成した TypeScript コードをライブラリ化したものです。

                                                                                                                                                                                                                                      +ssfblib
                                                                                                                                                                                                                                      ssfblib
                                                                                                                                                                                                                                        Preparing search index...

                                                                                                                                                                                                                                        ssfblib

                                                                                                                                                                                                                                        ssfblib

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        OPTPiX SpriteStudio 7.0OPTPiX SpriteStudio 6 で制作したアニメーションデータの一つである ssfb フォーマットをパースするライブラリです。

                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                        ssfblib は FlatBuffers が schema から生成した TypeScript コードをライブラリ化したものです。

                                                                                                                                                                                                                                        ssfblib の schema ファイルは SpriteStudio6-SDK に同封しています。 こちらを参照してください

                                                                                                                                                                                                                                        -

                                                                                                                                                                                                                                        ssfblib のライセンスは LISENCE となります。

                                                                                                                                                                                                                                        -

                                                                                                                                                                                                                                        ssfblib の API リファレンスはこちらです。

                                                                                                                                                                                                                                        -

                                                                                                                                                                                                                                        FlatBuffers の TypeScript 利用ガイドJavaScript 利用ガイド を参照してください。

                                                                                                                                                                                                                                        -

                                                                                                                                                                                                                                        ソースの取得方法やビルドに必要な npm のインストール手順は wiki を参照してください。

                                                                                                                                                                                                                                        -

                                                                                                                                                                                                                                        SS6PlayerForWeb/ ディレクトリ上で下記コマンドを実行すると、 packages/ 以下の全ライブラリをビルドします。

                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                        ssfblib のライセンスは LISENCE となります。

                                                                                                                                                                                                                                        + + +

                                                                                                                                                                                                                                        ssfblib の API リファレンスはこちらです。

                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                        FlatBuffers の TypeScript 利用ガイドJavaScript 利用ガイド を参照してください。

                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                        ソースの取得方法やビルドに必要な npm のインストール手順は wiki を参照してください。

                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                        SS6PlayerForWeb/ ディレクトリ上で下記コマンドを実行すると、 packages/ 以下の全ライブラリをビルドします。

                                                                                                                                                                                                                                        cd SS6PlayerForWeb
                                                                                                                                                                                                                                        npm i
                                                                                                                                                                                                                                        npm run build

                                                                                                                                                                                                                                        ビルドが成功すると ssfblib.umd.jsssfblib.es6.jsSS6PlayerForWeb/packages/ssfblib/dist ディレクトリ以下に生成されます。

                                                                                                                                                                                                                                        -

                                                                                                                                                                                                                                        全ビルド実行後は SS6PlayerForWeb/packages/ssfblib ディレクトリ上で ssfblib の単独ビルドが可能になります。

                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                        全ビルド実行後は SS6PlayerForWeb/packages/ssfblib ディレクトリ上で ssfblib の単独ビルドが可能になります。

                                                                                                                                                                                                                                        cd SS6PlayerForWeb/packages/ssfblib
                                                                                                                                                                                                                                        npm run build
                                                                                                                                                                                                                                        diff --git a/docs/ui-examples/index.html b/docs/ui-examples/index.html index a2a1ce5d..d32c4b6d 100644 --- a/docs/ui-examples/index.html +++ b/docs/ui-examples/index.html @@ -6,7 +6,7 @@ - + diff --git a/docs/ui-examples/ss6player-pixi.min.js b/docs/ui-examples/ss6player-pixi.min.js index e6ecd5eb..e8fc413a 100644 --- a/docs/ui-examples/ss6player-pixi.min.js +++ b/docs/ui-examples/ss6player-pixi.min.js @@ -1,10 +1,27 @@ -/** - * ----------------------------------------------------------- - * SS6Player For pixi.js v2.4.0 - * - * Copyright(C) CRI Middleware Co., Ltd. - * https://www.webtech.co.jp/ - * ----------------------------------------------------------- - */ - -var ss6PlayerPixi=function(dt,P){"use strict";class Ot{}const ht=4,ct=4,C=4,Q=new Int32Array(2),Ft=new Float32Array(Q.buffer),gt=new Float64Array(Q.buffer),lt=new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1;var ut;(function(c){c[c.UTF8_BYTES=1]="UTF8_BYTES",c[c.UTF16_STRING=2]="UTF16_STRING"})(ut||(ut={}));class It{constructor(t){this.bytes_=t,this.position_=0,this.text_decoder_=new TextDecoder}static allocate(t){return new It(new Uint8Array(t))}clear(){this.position_=0}bytes(){return this.bytes_}position(){return this.position_}setPosition(t){this.position_=t}capacity(){return this.bytes_.length}readInt8(t){return this.readUint8(t)<<24>>24}readUint8(t){return this.bytes_[t]}readInt16(t){return this.readUint16(t)<<16>>16}readUint16(t){return this.bytes_[t]|this.bytes_[t+1]<<8}readInt32(t){return this.bytes_[t]|this.bytes_[t+1]<<8|this.bytes_[t+2]<<16|this.bytes_[t+3]<<24}readUint32(t){return this.readInt32(t)>>>0}readInt64(t){return BigInt.asIntN(64,BigInt(this.readUint32(t))+(BigInt(this.readUint32(t+4))<>8}writeUint16(t,s){this.bytes_[t]=s,this.bytes_[t+1]=s>>8}writeInt32(t,s){this.bytes_[t]=s,this.bytes_[t+1]=s>>8,this.bytes_[t+2]=s>>16,this.bytes_[t+3]=s>>24}writeUint32(t,s){this.bytes_[t]=s,this.bytes_[t+1]=s>>8,this.bytes_[t+2]=s>>16,this.bytes_[t+3]=s>>24}writeInt64(t,s){this.writeInt32(t,Number(BigInt.asIntN(32,s))),this.writeInt32(t+4,Number(BigInt.asIntN(32,s>>BigInt(32))))}writeUint64(t,s){this.writeUint32(t,Number(BigInt.asUintN(32,s))),this.writeUint32(t+4,Number(BigInt.asUintN(32,s>>BigInt(32))))}writeFloat32(t,s){Ft[0]=s,this.writeInt32(t,Q[0])}writeFloat64(t,s){gt[0]=s,this.writeInt32(t,Q[lt?0:1]),this.writeInt32(t+4,Q[lt?1:0])}getBufferIdentifier(){if(this.bytes_.length=0;e--)t.addInt32(s[e]);return t.endVector()}static startDataVector(t,s){t.startVector(4,s,4)}static endpartState(t){return t.endObject()}static createpartState(t,s,e,i,o){return R.startpartState(t),R.addIndex(t,s),R.addFlag1(t,e),R.addFlag2(t,i),R.addData(t,o),R.endpartState(t)}}class it{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsframeDataIndex(t,s){return(s||new it).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsframeDataIndex(t,s){return t.setPosition(t.position()+C),(s||new it).__init(t.readInt32(t.position())+t.position(),t)}states(t,s){const e=this.bb.__offset(this.bb_pos,4);return e?(s||new R).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}statesLength(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}static startframeDataIndex(t){t.startObject(1)}static addStates(t,s){t.addFieldOffset(0,s,0)}static createStatesVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startStatesVector(t,s){t.startVector(4,s,4)}static endframeDataIndex(t){return t.endObject()}static createframeDataIndex(t,s){return it.startframeDataIndex(t),it.addStates(t,s),it.endframeDataIndex(t)}}class G{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAslabelDataItem(t,s){return(s||new G).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAslabelDataItem(t,s){return t.setPosition(t.position()+C),(s||new G).__init(t.readInt32(t.position())+t.position(),t)}label(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}frameIndex(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}static startlabelDataItem(t){t.startObject(2)}static addLabel(t,s){t.addFieldOffset(0,s,0)}static addFrameIndex(t,s){t.addFieldInt16(1,s,0)}static endlabelDataItem(t){return t.endObject()}static createlabelDataItem(t,s,e){return G.startlabelDataItem(t),G.addLabel(t,s),G.addFrameIndex(t,e),G.endlabelDataItem(t)}}class at{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsmeshDataIndices(t,s){return(s||new at).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsmeshDataIndices(t,s){return t.setPosition(t.position()+C),(s||new at).__init(t.readInt32(t.position())+t.position(),t)}indices(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.readFloat32(this.bb.__vector(this.bb_pos+s)+t*4):0}indicesLength(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}indicesArray(){const t=this.bb.__offset(this.bb_pos,4);return t?new Float32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}static startmeshDataIndices(t){t.startObject(1)}static addIndices(t,s){t.addFieldOffset(0,s,0)}static createIndicesVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addFloat32(s[e]);return t.endVector()}static startIndicesVector(t,s){t.startVector(4,s,4)}static endmeshDataIndices(t){return t.endObject()}static createmeshDataIndices(t,s){return at.startmeshDataIndices(t),at.addIndices(t,s),at.endmeshDataIndices(t)}}class nt{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsmeshDataUV(t,s){return(s||new nt).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsmeshDataUV(t,s){return t.setPosition(t.position()+C),(s||new nt).__init(t.readInt32(t.position())+t.position(),t)}uv(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.readFloat32(this.bb.__vector(this.bb_pos+s)+t*4):0}uvLength(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}uvArray(){const t=this.bb.__offset(this.bb_pos,4);return t?new Float32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}static startmeshDataUV(t){t.startObject(1)}static addUv(t,s){t.addFieldOffset(0,s,0)}static createUvVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addFloat32(s[e]);return t.endVector()}static startUvVector(t,s){t.startVector(4,s,4)}static endmeshDataUV(t){return t.endObject()}static createmeshDataUV(t,s){return nt.startmeshDataUV(t),nt.addUv(t,s),nt.endmeshDataUV(t)}}class A{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsuserDataItem(t,s){return(s||new A).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataItem(t,s){return t.setPosition(t.position()+C),(s||new A).__init(t.readInt32(t.position())+t.position(),t)}flags(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):0}arrayIndex(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}dataType(t){const s=this.bb.__offset(this.bb_pos,8);return s?this.bb.readUint8(this.bb.__vector(this.bb_pos+s)+t):0}dataTypeLength(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}dataTypeArray(){const t=this.bb.__offset(this.bb_pos,8);return t?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}data(t,s){const e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__union(s,this.bb.__vector(this.bb_pos+e)+t*4):null}dataLength(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}static startuserDataItem(t){t.startObject(4)}static addFlags(t,s){t.addFieldInt16(0,s,0)}static addArrayIndex(t,s){t.addFieldInt16(1,s,0)}static addDataType(t,s){t.addFieldOffset(2,s,0)}static createDataTypeVector(t,s){t.startVector(1,s.length,1);for(let e=s.length-1;e>=0;e--)t.addInt8(s[e]);return t.endVector()}static startDataTypeVector(t,s){t.startVector(1,s,1)}static addData(t,s){t.addFieldOffset(3,s,0)}static createDataVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startDataVector(t,s){t.startVector(4,s,4)}static enduserDataItem(t){return t.endObject()}static createuserDataItem(t,s,e,i,o){return A.startuserDataItem(t),A.addFlags(t,s),A.addArrayIndex(t,e),A.addDataType(t,i),A.addData(t,o),A.enduserDataItem(t)}}class tt{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsuserDataPerFrame(t,s){return(s||new tt).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataPerFrame(t,s){return t.setPosition(t.position()+C),(s||new tt).__init(t.readInt32(t.position())+t.position(),t)}frameIndex(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):0}data(t,s){const e=this.bb.__offset(this.bb_pos,6);return e?(s||new A).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}dataLength(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}static startuserDataPerFrame(t){t.startObject(2)}static addFrameIndex(t,s){t.addFieldInt16(0,s,0)}static addData(t,s){t.addFieldOffset(1,s,0)}static createDataVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startDataVector(t,s){t.startVector(4,s,4)}static enduserDataPerFrame(t){return t.endObject()}static createuserDataPerFrame(t,s,e){return tt.startuserDataPerFrame(t),tt.addFrameIndex(t,s),tt.addData(t,e),tt.enduserDataPerFrame(t)}}class y{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsAnimationData(t,s){return(s||new y).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAnimationData(t,s){return t.setPosition(t.position()+C),(s||new y).__init(t.readInt32(t.position())+t.position(),t)}name(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}defaultData(t,s){const e=this.bb.__offset(this.bb_pos,6);return e?(s||new b).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}defaultDataLength(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}frameData(t,s){const e=this.bb.__offset(this.bb_pos,8);return e?(s||new it).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}frameDataLength(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}userData(t,s){const e=this.bb.__offset(this.bb_pos,10);return e?(s||new tt).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}userDataLength(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}labelData(t,s){const e=this.bb.__offset(this.bb_pos,12);return e?(s||new G).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}labelDataLength(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}meshsDataUv(t,s){const e=this.bb.__offset(this.bb_pos,14);return e?(s||new nt).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}meshsDataUvLength(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__vector_len(this.bb_pos+t):0}meshsDataIndices(t,s){const e=this.bb.__offset(this.bb_pos,16);return e?(s||new at).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}meshsDataIndicesLength(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}startFrames(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.readInt16(this.bb_pos+t):0}endFrames(){const t=this.bb.__offset(this.bb_pos,20);return t?this.bb.readInt16(this.bb_pos+t):0}totalFrames(){const t=this.bb.__offset(this.bb_pos,22);return t?this.bb.readInt16(this.bb_pos+t):0}fps(){const t=this.bb.__offset(this.bb_pos,24);return t?this.bb.readInt16(this.bb_pos+t):0}labelNum(){const t=this.bb.__offset(this.bb_pos,26);return t?this.bb.readInt16(this.bb_pos+t):0}canvasSizeW(){const t=this.bb.__offset(this.bb_pos,28);return t?this.bb.readInt16(this.bb_pos+t):0}canvasSizeH(){const t=this.bb.__offset(this.bb_pos,30);return t?this.bb.readInt16(this.bb_pos+t):0}canvasPvotX(){const t=this.bb.__offset(this.bb_pos,32);return t?this.bb.readFloat32(this.bb_pos+t):0}canvasPvotY(){const t=this.bb.__offset(this.bb_pos,34);return t?this.bb.readFloat32(this.bb_pos+t):0}static startAnimationData(t){t.startObject(16)}static addName(t,s){t.addFieldOffset(0,s,0)}static addDefaultData(t,s){t.addFieldOffset(1,s,0)}static createDefaultDataVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startDefaultDataVector(t,s){t.startVector(4,s,4)}static addFrameData(t,s){t.addFieldOffset(2,s,0)}static createFrameDataVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startFrameDataVector(t,s){t.startVector(4,s,4)}static addUserData(t,s){t.addFieldOffset(3,s,0)}static createUserDataVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startUserDataVector(t,s){t.startVector(4,s,4)}static addLabelData(t,s){t.addFieldOffset(4,s,0)}static createLabelDataVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startLabelDataVector(t,s){t.startVector(4,s,4)}static addMeshsDataUv(t,s){t.addFieldOffset(5,s,0)}static createMeshsDataUvVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startMeshsDataUvVector(t,s){t.startVector(4,s,4)}static addMeshsDataIndices(t,s){t.addFieldOffset(6,s,0)}static createMeshsDataIndicesVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startMeshsDataIndicesVector(t,s){t.startVector(4,s,4)}static addStartFrames(t,s){t.addFieldInt16(7,s,0)}static addEndFrames(t,s){t.addFieldInt16(8,s,0)}static addTotalFrames(t,s){t.addFieldInt16(9,s,0)}static addFps(t,s){t.addFieldInt16(10,s,0)}static addLabelNum(t,s){t.addFieldInt16(11,s,0)}static addCanvasSizeW(t,s){t.addFieldInt16(12,s,0)}static addCanvasSizeH(t,s){t.addFieldInt16(13,s,0)}static addCanvasPvotX(t,s){t.addFieldFloat32(14,s,0)}static addCanvasPvotY(t,s){t.addFieldFloat32(15,s,0)}static endAnimationData(t){return t.endObject()}static createAnimationData(t,s,e,i,o,a,r,h,l,n,d,_,m,F,f,V,u){return y.startAnimationData(t),y.addName(t,s),y.addDefaultData(t,e),y.addFrameData(t,i),y.addUserData(t,o),y.addLabelData(t,a),y.addMeshsDataUv(t,r),y.addMeshsDataIndices(t,h),y.addStartFrames(t,l),y.addEndFrames(t,n),y.addTotalFrames(t,d),y.addFps(t,_),y.addLabelNum(t,m),y.addCanvasSizeW(t,F),y.addCanvasSizeH(t,f),y.addCanvasPvotX(t,V),y.addCanvasPvotY(t,u),y.endAnimationData(t)}}var O=(c=>(c[c.Invalid=-1]="Invalid",c[c.Nulltype=0]="Nulltype",c[c.Normal=1]="Normal",c[c.Text=2]="Text",c[c.Instance=3]="Instance",c[c.Armature=4]="Armature",c[c.Effect=5]="Effect",c[c.Mesh=6]="Mesh",c[c.Movenode=7]="Movenode",c[c.Constraint=8]="Constraint",c[c.Mask=9]="Mask",c[c.Joint=10]="Joint",c[c.Bonepoint=11]="Bonepoint",c))(O||{});class S{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsPartData(t,s){return(s||new S).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsPartData(t,s){return t.setPosition(t.position()+C),(s||new S).__init(t.readInt32(t.position())+t.position(),t)}name(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}index(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}parentIndex(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}type(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt8(this.bb_pos+t):O.Nulltype}boundsType(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}alphaBlendType(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readInt16(this.bb_pos+t):0}refname(t){const s=this.bb.__offset(this.bb_pos,16);return s?this.bb.__string(this.bb_pos+s,t):null}effectfilename(t){const s=this.bb.__offset(this.bb_pos,18);return s?this.bb.__string(this.bb_pos+s,t):null}colorLabel(t){const s=this.bb.__offset(this.bb_pos,20);return s?this.bb.__string(this.bb_pos+s,t):null}maskInfluence(){const t=this.bb.__offset(this.bb_pos,22);return t?this.bb.readInt16(this.bb_pos+t):0}static startPartData(t){t.startObject(10)}static addName(t,s){t.addFieldOffset(0,s,0)}static addIndex(t,s){t.addFieldInt16(1,s,0)}static addParentIndex(t,s){t.addFieldInt16(2,s,0)}static addType(t,s){t.addFieldInt8(3,s,O.Nulltype)}static addBoundsType(t,s){t.addFieldInt16(4,s,0)}static addAlphaBlendType(t,s){t.addFieldInt16(5,s,0)}static addRefname(t,s){t.addFieldOffset(6,s,0)}static addEffectfilename(t,s){t.addFieldOffset(7,s,0)}static addColorLabel(t,s){t.addFieldOffset(8,s,0)}static addMaskInfluence(t,s){t.addFieldInt16(9,s,0)}static endPartData(t){return t.endObject()}static createPartData(t,s,e,i,o,a,r,h,l,n,d){return S.startPartData(t),S.addName(t,s),S.addIndex(t,e),S.addParentIndex(t,i),S.addType(t,o),S.addBoundsType(t,a),S.addAlphaBlendType(t,r),S.addRefname(t,h),S.addEffectfilename(t,l),S.addColorLabel(t,n),S.addMaskInfluence(t,d),S.endPartData(t)}}class Z{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsAnimePackData(t,s){return(s||new Z).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAnimePackData(t,s){return t.setPosition(t.position()+C),(s||new Z).__init(t.readInt32(t.position())+t.position(),t)}name(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}parts(t,s){const e=this.bb.__offset(this.bb_pos,6);return e?(s||new S).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}partsLength(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}animations(t,s){const e=this.bb.__offset(this.bb_pos,8);return e?(s||new y).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}animationsLength(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}static startAnimePackData(t){t.startObject(3)}static addName(t,s){t.addFieldOffset(0,s,0)}static addParts(t,s){t.addFieldOffset(1,s,0)}static createPartsVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startPartsVector(t,s){t.startVector(4,s,4)}static addAnimations(t,s){t.addFieldOffset(2,s,0)}static createAnimationsVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startAnimationsVector(t,s){t.startVector(4,s,4)}static endAnimePackData(t){return t.endObject()}static createAnimePackData(t,s,e,i){return Z.startAnimePackData(t),Z.addName(t,s),Z.addParts(t,e),Z.addAnimations(t,i),Z.endAnimePackData(t)}}class X{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsCellMap(t,s){return(s||new X).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsCellMap(t,s){return t.setPosition(t.position()+C),(s||new X).__init(t.readInt32(t.position())+t.position(),t)}name(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}imagePath(t){const s=this.bb.__offset(this.bb_pos,6);return s?this.bb.__string(this.bb_pos+s,t):null}index(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}wrapmode(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt16(this.bb_pos+t):0}filtermode(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}static startCellMap(t){t.startObject(5)}static addName(t,s){t.addFieldOffset(0,s,0)}static addImagePath(t,s){t.addFieldOffset(1,s,0)}static addIndex(t,s){t.addFieldInt16(2,s,0)}static addWrapmode(t,s){t.addFieldInt16(3,s,0)}static addFiltermode(t,s){t.addFieldInt16(4,s,0)}static endCellMap(t){return t.endObject()}static createCellMap(t,s,e,i,o,a){return X.startCellMap(t),X.addName(t,s),X.addImagePath(t,e),X.addIndex(t,i),X.addWrapmode(t,o),X.addFiltermode(t,a),X.endCellMap(t)}}class ft{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsCell(t,s){return(s||new ft).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsCell(t,s){return t.setPosition(t.position()+C),(s||new ft).__init(t.readInt32(t.position())+t.position(),t)}name(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}cellMap(t){const s=this.bb.__offset(this.bb_pos,6);return s?(t||new X).__init(this.bb.__indirect(this.bb_pos+s),this.bb):null}indexInCellMap(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}x(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt16(this.bb_pos+t):0}y(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}width(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readInt16(this.bb_pos+t):0}height(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.readInt16(this.bb_pos+t):0}pivotX(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.readFloat32(this.bb_pos+t):0}pivotY(){const t=this.bb.__offset(this.bb_pos,20);return t?this.bb.readFloat32(this.bb_pos+t):0}u1(){const t=this.bb.__offset(this.bb_pos,22);return t?this.bb.readFloat32(this.bb_pos+t):0}v1(){const t=this.bb.__offset(this.bb_pos,24);return t?this.bb.readFloat32(this.bb_pos+t):0}u2(){const t=this.bb.__offset(this.bb_pos,26);return t?this.bb.readFloat32(this.bb_pos+t):0}v2(){const t=this.bb.__offset(this.bb_pos,28);return t?this.bb.readFloat32(this.bb_pos+t):0}static startCell(t){t.startObject(13)}static addName(t,s){t.addFieldOffset(0,s,0)}static addCellMap(t,s){t.addFieldOffset(1,s,0)}static addIndexInCellMap(t,s){t.addFieldInt16(2,s,0)}static addX(t,s){t.addFieldInt16(3,s,0)}static addY(t,s){t.addFieldInt16(4,s,0)}static addWidth(t,s){t.addFieldInt16(5,s,0)}static addHeight(t,s){t.addFieldInt16(6,s,0)}static addPivotX(t,s){t.addFieldFloat32(7,s,0)}static addPivotY(t,s){t.addFieldFloat32(8,s,0)}static addU1(t,s){t.addFieldFloat32(9,s,0)}static addV1(t,s){t.addFieldFloat32(10,s,0)}static addU2(t,s){t.addFieldFloat32(11,s,0)}static addV2(t,s){t.addFieldFloat32(12,s,0)}static endCell(t){return t.endObject()}}class L{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsEffectNode(t,s){return(s||new L).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsEffectNode(t,s){return t.setPosition(t.position()+C),(s||new L).__init(t.readInt32(t.position())+t.position(),t)}arrayIndex(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):0}parentIndex(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}type(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}cellIndex(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt16(this.bb_pos+t):0}blendType(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}numBehavior(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readInt16(this.bb_pos+t):0}behaviorType(t){const s=this.bb.__offset(this.bb_pos,16);return s?this.bb.readUint8(this.bb.__vector(this.bb_pos+s)+t):0}behaviorTypeLength(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}behaviorTypeArray(){const t=this.bb.__offset(this.bb_pos,16);return t?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}behavior(t,s){const e=this.bb.__offset(this.bb_pos,18);return e?this.bb.__union(s,this.bb.__vector(this.bb_pos+e)+t*4):null}behaviorLength(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.__vector_len(this.bb_pos+t):0}static startEffectNode(t){t.startObject(8)}static addArrayIndex(t,s){t.addFieldInt16(0,s,0)}static addParentIndex(t,s){t.addFieldInt16(1,s,0)}static addType(t,s){t.addFieldInt16(2,s,0)}static addCellIndex(t,s){t.addFieldInt16(3,s,0)}static addBlendType(t,s){t.addFieldInt16(4,s,0)}static addNumBehavior(t,s){t.addFieldInt16(5,s,0)}static addBehaviorType(t,s){t.addFieldOffset(6,s,0)}static createBehaviorTypeVector(t,s){t.startVector(1,s.length,1);for(let e=s.length-1;e>=0;e--)t.addInt8(s[e]);return t.endVector()}static startBehaviorTypeVector(t,s){t.startVector(1,s,1)}static addBehavior(t,s){t.addFieldOffset(7,s,0)}static createBehaviorVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startBehaviorVector(t,s){t.startVector(4,s,4)}static endEffectNode(t){return t.endObject()}static createEffectNode(t,s,e,i,o,a,r,h,l){return L.startEffectNode(t),L.addArrayIndex(t,s),L.addParentIndex(t,e),L.addType(t,i),L.addCellIndex(t,o),L.addBlendType(t,a),L.addNumBehavior(t,r),L.addBehaviorType(t,h),L.addBehavior(t,l),L.endEffectNode(t)}}class w{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsEffectFile(t,s){return(s||new w).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsEffectFile(t,s){return t.setPosition(t.position()+C),(s||new w).__init(t.readInt32(t.position())+t.position(),t)}name(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__string(this.bb_pos+s,t):null}fps(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):0}isLockRandSeed(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt16(this.bb_pos+t):0}lockRandSeed(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt16(this.bb_pos+t):0}layoutScaleX(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt16(this.bb_pos+t):0}layoutScaleY(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readInt16(this.bb_pos+t):0}numNodeList(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.readInt16(this.bb_pos+t):0}effectNode(t,s){const e=this.bb.__offset(this.bb_pos,18);return e?(s||new L).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}effectNodeLength(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.__vector_len(this.bb_pos+t):0}static startEffectFile(t){t.startObject(8)}static addName(t,s){t.addFieldOffset(0,s,0)}static addFps(t,s){t.addFieldInt16(1,s,0)}static addIsLockRandSeed(t,s){t.addFieldInt16(2,s,0)}static addLockRandSeed(t,s){t.addFieldInt16(3,s,0)}static addLayoutScaleX(t,s){t.addFieldInt16(4,s,0)}static addLayoutScaleY(t,s){t.addFieldInt16(5,s,0)}static addNumNodeList(t,s){t.addFieldInt16(6,s,0)}static addEffectNode(t,s){t.addFieldOffset(7,s,0)}static createEffectNodeVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startEffectNodeVector(t,s){t.startVector(4,s,4)}static endEffectFile(t){return t.endObject()}static createEffectFile(t,s,e,i,o,a,r,h,l){return w.startEffectFile(t),w.addName(t,s),w.addFps(t,e),w.addIsLockRandSeed(t,i),w.addLockRandSeed(t,o),w.addLayoutScaleX(t,a),w.addLayoutScaleY(t,r),w.addNumNodeList(t,h),w.addEffectNode(t,l),w.endEffectFile(t)}}var p=(c=>(c[c.INVISIBLE=1]="INVISIBLE",c[c.FLIP_H=2]="FLIP_H",c[c.FLIP_V=4]="FLIP_V",c[c.CELL_INDEX=8]="CELL_INDEX",c[c.POSITION_X=16]="POSITION_X",c[c.POSITION_Y=32]="POSITION_Y",c[c.POSITION_Z=64]="POSITION_Z",c[c.PIVOT_X=128]="PIVOT_X",c[c.PIVOT_Y=256]="PIVOT_Y",c[c.ROTATIONX=512]="ROTATIONX",c[c.ROTATIONY=1024]="ROTATIONY",c[c.ROTATIONZ=2048]="ROTATIONZ",c[c.SCALE_X=4096]="SCALE_X",c[c.SCALE_Y=8192]="SCALE_Y",c[c.LOCALSCALE_X=16384]="LOCALSCALE_X",c[c.LOCALSCALE_Y=32768]="LOCALSCALE_Y",c[c.OPACITY=65536]="OPACITY",c[c.LOCALOPACITY=131072]="LOCALOPACITY",c[c.PARTS_COLOR=262144]="PARTS_COLOR",c[c.VERTEX_TRANSFORM=524288]="VERTEX_TRANSFORM",c[c.SIZE_X=1048576]="SIZE_X",c[c.SIZE_Y=2097152]="SIZE_Y",c[c.U_MOVE=4194304]="U_MOVE",c[c.V_MOVE=8388608]="V_MOVE",c[c.UV_ROTATION=16777216]="UV_ROTATION",c[c.U_SCALE=33554432]="U_SCALE",c[c.V_SCALE=67108864]="V_SCALE",c[c.BOUNDINGRADIUS=134217728]="BOUNDINGRADIUS",c[c.MASK=268435456]="MASK",c[c.PRIORITY=536870912]="PRIORITY",c[c.INSTANCE_KEYFRAME=1073741824]="INSTANCE_KEYFRAME",c[c.EFFECT_KEYFRAME=2147483648]="EFFECT_KEYFRAME",c))(p||{}),yt=(c=>(c[c.MESHDATA=1]="MESHDATA",c))(yt||{});class D{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsProjectData(t,s){return(s||new D).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsProjectData(t,s){return t.setPosition(t.position()+C),(s||new D).__init(t.readInt32(t.position())+t.position(),t)}static bufferHasIdentifier(t){return t.__has_identifier("SSFB")}dataId(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint32(this.bb_pos+t):0}version(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readUint32(this.bb_pos+t):0}flags(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readUint32(this.bb_pos+t):0}imageBaseDir(t){const s=this.bb.__offset(this.bb_pos,10);return s?this.bb.__string(this.bb_pos+s,t):null}cells(t,s){const e=this.bb.__offset(this.bb_pos,12);return e?(s||new ft).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}cellsLength(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}animePacks(t,s){const e=this.bb.__offset(this.bb_pos,14);return e?(s||new Z).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}animePacksLength(){const t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__vector_len(this.bb_pos+t):0}effectFileList(t,s){const e=this.bb.__offset(this.bb_pos,16);return e?(s||new w).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}effectFileListLength(){const t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}numCells(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.readInt16(this.bb_pos+t):0}numAnimePacks(){const t=this.bb.__offset(this.bb_pos,20);return t?this.bb.readInt16(this.bb_pos+t):0}numEffectFileList(){const t=this.bb.__offset(this.bb_pos,22);return t?this.bb.readInt16(this.bb_pos+t):0}static startProjectData(t){t.startObject(10)}static addDataId(t,s){t.addFieldInt32(0,s,0)}static addVersion(t,s){t.addFieldInt32(1,s,0)}static addFlags(t,s){t.addFieldInt32(2,s,0)}static addImageBaseDir(t,s){t.addFieldOffset(3,s,0)}static addCells(t,s){t.addFieldOffset(4,s,0)}static createCellsVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startCellsVector(t,s){t.startVector(4,s,4)}static addAnimePacks(t,s){t.addFieldOffset(5,s,0)}static createAnimePacksVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startAnimePacksVector(t,s){t.startVector(4,s,4)}static addEffectFileList(t,s){t.addFieldOffset(6,s,0)}static createEffectFileListVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startEffectFileListVector(t,s){t.startVector(4,s,4)}static addNumCells(t,s){t.addFieldInt16(7,s,0)}static addNumAnimePacks(t,s){t.addFieldInt16(8,s,0)}static addNumEffectFileList(t,s){t.addFieldInt16(9,s,0)}static endProjectData(t){return t.endObject()}static finishProjectDataBuffer(t,s){t.finish(s,"SSFB")}static finishSizePrefixedProjectDataBuffer(t,s){t.finish(s,"SSFB",!0)}static createProjectData(t,s,e,i,o,a,r,h,l,n,d){return D.startProjectData(t),D.addDataId(t,s),D.addVersion(t,e),D.addFlags(t,i),D.addImageBaseDir(t,o),D.addCells(t,a),D.addAnimePacks(t,r),D.addEffectFileList(t,h),D.addNumCells(t,l),D.addNumAnimePacks(t,n),D.addNumEffectFileList(t,d),D.endProjectData(t)}}class Ct{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}integer(){return this.bb.readInt32(this.bb_pos)}static sizeOf(){return 4}static createuserDataInteger(t,s){return t.prep(4,4),t.writeInt32(s),t.offset()}}class Vt{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}x(){return this.bb.readInt32(this.bb_pos)}y(){return this.bb.readInt32(this.bb_pos+4)}static sizeOf(){return 8}static createuserDataPoint(t,s,e){return t.prep(4,8),t.writeInt32(e),t.writeInt32(s),t.offset()}}class bt{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}x(){return this.bb.readInt32(this.bb_pos)}y(){return this.bb.readInt32(this.bb_pos+4)}w(){return this.bb.readInt32(this.bb_pos+8)}h(){return this.bb.readInt32(this.bb_pos+12)}static sizeOf(){return 16}static createuserDataRect(t,s,e,i,o){return t.prep(4,16),t.writeInt32(o),t.writeInt32(i),t.writeInt32(e),t.writeInt32(s),t.offset()}}class H{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsuserDataString(t,s){return(s||new H).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataString(t,s){return t.setPosition(t.position()+C),(s||new H).__init(t.readInt32(t.position())+t.position(),t)}length(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt32(this.bb_pos+t):0}data(t){const s=this.bb.__offset(this.bb_pos,6);return s?this.bb.__string(this.bb_pos+s,t):null}static startuserDataString(t){t.startObject(2)}static addLength(t,s){t.addFieldInt32(0,s,0)}static addData(t,s){t.addFieldOffset(1,s,0)}static enduserDataString(t){return t.endObject()}static createuserDataString(t,s,e){return H.startuserDataString(t),H.addLength(t,s),H.addData(t,e),H.enduserDataString(t)}}let xt=class{static getProjectData(t){const s=new It(t);return D.getRootAsProjectData(s)}};class mt{static getProjectData(t){return xt.getProjectData(t)}}class ot{constructor(t,s=null,e=null){this.curAnimePackName=null,this.curAnimeName=null,this.curAnimation=null,this.curAnimePackData=null,this._animePackIdx=-1,this._parentIndex=[],this._prio2index=[],this.userData=[],this.frameDataCache=null,this.currentCachedFrameNumber=-1,this.defaultFrameMap=[],this._uint32=new Uint32Array(1),this._float32=new Float32Array(this._uint32.buffer),Object.prototype.hasOwnProperty.call(t,"bb")?this._fbObj=t:this._fbObj=mt.getProjectData(t),s!==null&&e!==null&&this.Setup(s,e)}get fbObj(){return this._fbObj}get animePackName(){return this.curAnimePackName}get animeName(){return this.curAnimeName}get animePackIdx(){return this._animePackIdx}get animePackData(){return this.curAnimePackData}get animationData(){return this.curAnimation}get parentIndex(){return this._parentIndex}get prio2index(){return this._prio2index}Setup(t,s){this.clearCaches();const e=this._fbObj.animePacksLength();let i=!1;for(let o=0;o>>0,n.colorBlendType===1&&(n.tint=n.colorArgb32&16777215)}}if(l&yt.MESHDATA){const _=this.curAnimation.meshsDataUv(r);n.meshIsBind=_.uv(0),n.meshNum=_.uv(1);let m=new Float32Array(n.meshNum*3);for(let F=0;F=0&&(t=this.InheritOpacity(t,this._parentIndex[s],e)),t}TransformVertsLocal(t,s,e){const i=this.GetFrameData(e)[s],o=-i.rotationZ*Math.PI/180,a=Math.cos(o),r=Math.sin(o);for(let h=0;h=0&&(t=this.TransformVerts(t,this._parentIndex[s],e)),t}TransformMeshVertsLocal(t,s,e){const i=this.GetFrameData(e)[s],o=-i.rotationZ*Math.PI/180,a=Math.cos(o),r=Math.sin(o);for(let h=0;h=0&&(t=this.TransformVerts(t,this._parentIndex[s],e)),t}TransformPositionLocal(t,s,e){const i=this.GetFrameData(e)[s];t[4]+=-i.rotationZ;const o=-i.rotationZ*Math.PI/180,a=Math.cos(o),r=Math.sin(o),h=t[0]*i.scaleX*i.localscaleX,l=t[1]*i.scaleY*i.localscaleY;return t[2]*=i.scaleX*i.localscaleX,t[3]*=i.scaleY*i.localscaleY,t[0]=a*h-r*l+i.positionX,t[1]=r*h+a*l-i.positionY,this._parentIndex[s]>=0&&(t=this.TransformPosition(t,this._parentIndex[s],e)),t}static CoordinateGetDiagonalIntersection(t,s,e,i,o,a,r,h,l,n,d){const _=(h-a)*(r-e)-(r-o)*(h-i),m=(l-e)*(h-i)-(n-i)*(r-e),F=(l-e)*(h-a)-(n-i)*(r-o);if(F<=0&&F>=0)return d;const f=_/F,V=m/F;return 0<=f&&1>=f&&0<=V&&1>=V&&(t=e+f*(l-e),s=i+f*(n-i)),d[0]=t,d[1]=s,d}TransformVerts(t,s,e){const i=this.GetFrameData(e)[s],o=-i.rotationZ*Math.PI/180,a=Math.cos(o),r=Math.sin(o);for(let h=0;h=0&&(t=this.TransformVerts(t,this._parentIndex[s],e)),t}TransformPosition(t,s,e){const i=this.GetFrameData(e)[s];t[4]+=-i.rotationZ;const o=-i.rotationZ*Math.PI/180,a=Math.cos(o),r=Math.sin(o),h=t[0]*i.scaleX,l=t[1]*i.scaleY;return t[2]*=i.scaleX,t[3]*=i.scaleY,t[0]=a*h-r*l+i.positionX,t[1]=r*h+a*l-i.positionY,this._parentIndex[s]>=0&&(t=this.TransformPosition(t,this._parentIndex[s],e)),t}static GetVerts(t,s,e){const i=s.size_X/2,o=s.size_Y/2,a=s.size_X*-(s.pivotX+t.pivotX()),r=s.size_Y*(s.pivotY+t.pivotY());return e.set([a,r,a-i,r-o,a+i,r-o,a-i,r+o,a+i,r+o]),e}static GetMeshVerts(t,s,e){for(let i=0;i{e!==null&&e(null)}).catch(i=>{e!==null&&e(i)})}unload(t,s,e){P.Assets.unloadBundle(t).then(()=>{e!==null&&e(null)}).catch(i=>{e!==null&&e(i)})}texture(t){return P.Assets.get(t)}}class Dt{constructor(){this.loader=new St}load(t,s,e){return this.loader.load(t,s,e)}unload(t,s,e=null){return this.loader.unload(t,s,e)}texture(t){return this.loader.texture(t)}}class Pt{constructor(t,s,e,i){if(this.sspjMap={},this.resourceLoader=new Dt,typeof t=="string"&&e===void 0){let o=t;this.ssfbPath=o;const a=o.lastIndexOf("/");this.rootPath=o.substring(0,a)+"/",this.ssfbFile=o.substring(a+1),this.onComplete=s===void 0?null:s,this.status=0,this.LoadFlatBuffersProject()}else if(typeof s=="object"&&s.constructor===Uint8Array){this.ssfbPath=null,this.rootPath=null,this.ssfbFile=t;let o=s,a=e;this.onComplete=i===void 0?null:i,this.load(o,a)}}getBundle(){return this.ssfbFile}getTexture(t){return this.resourceLoader.texture(t)}dispose(t=null){this.resourceLoader.unload(this.getBundle(),this.sspjMap,s=>{t!==null&&t()})}LoadFlatBuffersProject(){const t=this;fetch(this.ssfbPath,{method:"get"}).then(s=>s.ok?Promise.resolve(s.arrayBuffer()):Promise.reject(new Error(s.statusText))).then(s=>{t.fbObj=mt.getProjectData(new Uint8Array(s)),t.LoadCellResources()}).catch(s=>{this.onComplete!==null&&this.onComplete(null,s)})}LoadCellResources(){let t=[];this.sspjMap={};for(let e=0;e{e===null?(s.status=1,s.onComplete!==null&&s.onComplete(this,null)):this.onComplete!==null&&this.onComplete(null,e)})}load(t,s){this.fbObj=mt.getProjectData(t);let e={};for(let o in s){const a=s[o];let r="";const h=a.byteLength;for(let l=0;l{o===null?(i.status=1,i.onComplete!==null&&i.onComplete(this,null)):this.onComplete!==null&&this.onComplete(null,o)})}}class vt{constructor(){this.refStartframe=0,this.refEndframe=0,this.refSpeed=1,this.refloopNum=0,this.infinity=!1,this.reverse=!1,this.pingpong=!1,this.independent=!1}}class _t extends P.Container{constructor(t,s=null,e=null){super(),this.liveFrame=[],this.colorMatrixFilterCache=[],this.parentAlpha=1,this.prevCellID=[],this.prevPartObject=[],this.changeCellID=[],this.changeVisible=[],this.changeTint=[],this.substituteOverWrite=[],this.substituteKeyParam=[],this.alphaBlendType=[],this.defaultColorFilter=new P.ColorMatrixFilter,this._instancePos=new Float32Array(5),this._CoordinateGetDiagonalIntersectionVec2=new Float32Array(2),this.isRenderGroup=!0,this.ss6project=t,this.playerLib=new ot(t.fbObj,s,e),this.parentAlpha=1,s!==null&&e!==null&&this.Setup(s,e),this.on("added",(...i)=>{P.Ticker.shared.add(this.Update,this)},this),this.on("removed",(...i)=>{P.Ticker.shared.remove(this.Update,this)},this)}get startFrame(){return this._startFrame}get endFrame(){return this._endFrame}get totalFrame(){return this.playerLib.animationData.totalFrames()}get fps(){return this.playerLib.animationData.fps()}get frameNo(){return Math.floor(this._currentFrame)}set loop(t){this._loops=t}get loop(){return this._loops}get isPlaying(){return this._isPlaying}get isPausing(){return this._isPausing}get animePackName(){return this.playerLib.animePackName}get animeName(){return this.playerLib.animeName}Setup(t,s){this.playerLib.Setup(t,s),this.clearCaches();const e=this.playerLib.animePackData,i=e.partsLength();this.prevCellID=new Array(i),this.prevPartObject=new Array(i),this.changeCellID=new Array(i),this.changeVisible=new Array(i),this.changeTint=new Array(i),this.substituteOverWrite=new Array(i),this.substituteKeyParam=new Array(i);for(let o=0;o=this.updateInterval){let o=!1;const a=this.nextFrameTime/this.updateInterval;this.nextFrameTime-=this.updateInterval*a;let r=this.skipEnabled?a*this.playDirection:this.playDirection,h=this._currentFrame+r,l=Math.floor(h),n=h-l,d=Math.floor(this._currentFrame);if(this.playDirection>=1)for(let _=l-d;_;_--){let m=d+1;if(m>this._endFrame)if(this._loops===-1)m=this._startFrame;else if(this._loops--,o=!0,this._loops===0){this._isPlaying=!1,m=s?this._startFrame:this._endFrame;break}else m=this._startFrame;d=m,this._isPlaying&&this.playerLib.HaveUserData(d)&&this.onUserDataCallback!==null&&this.onUserDataCallback(this.playerLib.GetUserData(d))}if(this.playDirection<=-1)for(let _=d-l;_;_--){let m=d-1;if(m0?1:-1,this.updateInterval=1e3/(this.playerLib.animationData.fps()*t*this.playDirection),this.skipEnabled=s)}SetAnimationSection(t=-1,s=-1,e=-1){t>=0&&t=0&&s0?this._loops=e:this._loops=-1,this._currentFrame=this.playDirection>0?this._startFrame:this._endFrame}Play(t){this._isPlaying=!0,this._isPausing=!1;let s=this.playDirection>0?this._startFrame:this._endFrame;t&&typeof t=="number"&&(s=t),this._currentFrame=s,this.resetLiveFrame();const e=Math.floor(this._currentFrame);this.SetFrameAnimation(e),this.playerLib.HaveUserData(e)&&this.onUserDataCallback!==null&&this.onUserDataCallback(this.playerLib.GetUserData(e))}Pause(){this._isPausing=!0}Resume(){this._isPausing=!1}Stop(){this._isPlaying=!1}SetFrame(t){this._currentFrame=t}NextFrame(){const t=Math.floor(this._currentFrame),s=this.endFrame;t!==s&&this.SetFrame(t+1)}PrevFrame(){const t=Math.floor(this._currentFrame);t!==0&&this.SetFrame(t-1)}SetAlpha(t){this.parentAlpha=t}ThrowError(t){}SetUserDataCalback(t){this.onUserDataCallback=t}SetPlayEndCallback(t){this.playEndCallback=t}getCellIndex(t,s){let e=-1;if(t!==""&&s!==""){const i=this.playerLib.fbObj,o=this.playerLib.fbObj.numCells();for(let a=0;a>>24)/255,r=((e&16711680)>>>16)/255,h=((e&65280)>>>8)/255,l=(e&255)/255;if(t===0){const n=1-s;o.matrix=[n,0,0,0,r*s,0,n,0,0,h*s,0,0,n,0,l*s,0,0,0,1,0]}else t===1?o.matrix=[r,0,0,0,0,0,h,0,0,0,0,0,l,0,0,0,0,0,a,0]:t===2?o.matrix=[1,0,0,0,r,0,1,0,0,h,0,0,1,0,l,0,0,0,a,0]:t===3&&(o.matrix=[1,0,0,0,-r,0,1,0,0,-h,0,0,1,0,-l,0,0,0,a,0]);return this.colorMatrixFilterCache[i]=o,o}SetFrameAnimation(t,s=0){const e=this.playerLib.GetFrameData(t);this.removeChildren();const i=e.length;for(let o=0;o=0&&this.prevCellID[a]!==l&&(n?.destroy(),n=this.MakeCellMesh(l),n.label=d.name());break;case O.Mesh:l>=0&&this.prevCellID[a]!==l&&(n?.destroy(),n=this.MakeMeshCellMesh(a,l,h),n.label=d.name());break;case O.Nulltype:case O.Joint:this.prevCellID[a]!==l&&(n?.destroy(),n=new P.Container,n.label=d.name());break;default:l>=0&&this.prevCellID[a]!==l&&(n?.destroy(),n=this.MakeCellMesh(l),n.label=d.name());break}if(n!=null)switch(this.prevCellID[a]=l,this.prevPartObject[a]=n,_){case O.Instance:{const f=n;this._instancePos[0]=0,this._instancePos[1]=0,this._instancePos[2]=1,this._instancePos[3]=1,this._instancePos[4]=0,this._instancePos=this.playerLib.TransformPositionLocal(this._instancePos,r.index,t),f.rotation=this._instancePos[4]*Math.PI/180,f.position.set(this._instancePos[0],this._instancePos[1]),f.scale.set(this._instancePos[2],this._instancePos[3]);let V=r.opacity/255;r.localopacity<255&&(V=r.localopacity/255),f.SetAlpha(V*this.parentAlpha),f.visible=!r.f_hide;let u=r.instanceValue_curKeyframe,x=r.instanceValue_startFrame,I=r.instanceValue_endFrame,z=r.instanceValue_speed,W=r.instanceValue_loopNum,st=!1,k=!1,v=!1,B=!1;const J=1,$=2,M=4,E=8,N=r.instanceValue_loopflag;N&J&&(st=!0),N&$&&(k=!0),N&M&&(v=!0),N&E&&(B=!0),m&&(x=F.refStartframe,I=F.refEndframe,z=F.refSpeed,W=F.refloopNum,st=F.infinity,k=F.reverse,v=F.pingpong,B=F.independent),(f._startFrame!==x||f._endFrame!==I)&&f.SetAnimationSection(x,I);let Y=t;B===!0&&(this.liveFrame[o]+=s,Y=Math.floor(this.liveFrame[o]));const et=u;let g=Math.floor((Y-et)*z);if(g<0||et>Y)continue;const T=I-x+1;if(T<=0)continue;let U=Math.floor(g/T),j=W;v&&(j=j*2),st||U>=j&&(g=T-1,U=j-1);const q=Math.floor(g%T);let K=0;v&&U%2===1&&(k?k=!1:k=!0),this.playDirection<=-1&&(k=!k),k?K=I-q:K=q+x,f.SetFrame(Math.floor(K)),this.addChild(f);break}case O.Normal:case O.Mesh:case O.Joint:case O.Mask:{const f=n,V=f.geometry.attributes.aPosition.buffer;let u=V.data;const x=this.playerLib.fbObj.cells(l);let I;if(_===O.Mesh?r.meshIsBind===0?I=this.playerLib.TransformMeshVertsLocal(ot.GetMeshVerts(x,r,u),r.index,t):I=ot.GetMeshVerts(x,r,u):(I=_===O.Joint?new Float32Array(10):u,I=this.playerLib.TransformVertsLocal(ot.GetVerts(x,r,I),r.index,t)),r.flag1&p.VERTEX_TRANSFORM){const v=I[6],B=I[7],J=I[2],$=I[3],M=I[8],E=I[9],N=I[4],Y=I[5],et=(v+M)*.5,g=(B+E)*.5,T=(v+J)*.5,U=(B+$)*.5,j=(J+N)*.5,q=($+Y)*.5,K=(M+N)*.5,rt=(E+Y)*.5,pt=ot.CoordinateGetDiagonalIntersection(I[0],I[1],et,g,K,rt,T,U,j,q,this._CoordinateGetDiagonalIntersectionVec2);I[0]=pt[0],I[1]=pt[1]}const z=I[0],W=I[1];for(let v=0;v>>24)/255;f.alpha=f.alpha*v}const k=this.alphaBlendType[a];(k==="multiply"||k==="screen")&&(f.alpha=1),_!==O.Mask&&this.addChild(f);break}case O.Nulltype:{const f=n,V=this.playerLib.InheritOpacity(1,r.index,t);f.alpha=V*r.localopacity/255;const u=this.playerLib.TransformVerts(ot.GetDummyVerts(),r.index,t),x=u[0],I=u[1];f.position.set(x,I);const z=Math.atan2(u[5]-u[3],u[4]-u[2]),W=Math.atan2(u[7]-u[3],u[6]-u[2]);f.rotation=z,f.skew.x=W-z-Math.PI/2;break}}}}ChangeInstanceAnime(t,s,e,i,o=null){let a=!1;if(this.animePackName!==null&&this.animeName!==null){let r=this.playerLib.animePackData,h=r.partsLength();for(let l=0;l0){const a=this.playerLib.fbObj.cells(s),r=this.playerLib.fbObj.cells(e),h=s===e?0:(a.u1()+a.u2())/2-(r.u1()+r.u2())/2,l=s===e?0:(a.v1()+a.v2())/2-(r.v1()+r.v2())/2,n=new Float32Array(o-2),d=i.uv(1);for(let u=2;u>24}readUint8(e){return this.bytes_[e]}readInt16(e){return this.readUint16(e)<<16>>16}readUint16(e){return this.bytes_[e]|this.bytes_[e+1]<<8}readInt32(e){return this.bytes_[e]|this.bytes_[e+1]<<8|this.bytes_[e+2]<<16|this.bytes_[e+3]<<24}readUint32(e){return this.readInt32(e)>>>0}readInt64(e){return BigInt.asIntN(64,BigInt(this.readUint32(e))+(BigInt(this.readUint32(e+4))<>8}writeUint16(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8}writeInt32(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8,this.bytes_[e+2]=t>>16,this.bytes_[e+3]=t>>24}writeUint32(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8,this.bytes_[e+2]=t>>16,this.bytes_[e+3]=t>>24}writeInt64(e,t){this.writeInt32(e,Number(BigInt.asIntN(32,t))),this.writeInt32(e+4,Number(BigInt.asIntN(32,t>>BigInt(32))))}writeUint64(e,t){this.writeUint32(e,Number(BigInt.asUintN(32,t))),this.writeUint32(e+4,Number(BigInt.asUintN(32,t>>BigInt(32))))}writeFloat32(e,t){i[0]=t,this.writeInt32(e,r[0])}writeFloat64(e,t){a[0]=t,this.writeInt32(e,r[o?0:1]),this.writeInt32(e+4,r[o?1:0])}getBufferIdentifier(){if(this.bytes_.length=0;n--)e.addInt32(t[n]);return e.endVector()}static startDataVector(e,t){e.startVector(4,t,4)}static endpartState(e){return e.endObject()}static createpartState(t,n,r,i,a){return e.startpartState(t),e.addIndex(t,n),e.addFlag1(t,r),e.addFlag2(t,i),e.addData(t,a),e.endpartState(t)}},d=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsframeDataIndex(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsframeDataIndex(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}states(e,t){let n=this.bb.__offset(this.bb_pos,4);return n?(t||new u).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}statesLength(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__vector_len(this.bb_pos+e):0}static startframeDataIndex(e){e.startObject(1)}static addStates(e,t){e.addFieldOffset(0,t,0)}static createStatesVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startStatesVector(e,t){e.startVector(4,t,4)}static endframeDataIndex(e){return e.endObject()}static createframeDataIndex(t,n){return e.startframeDataIndex(t),e.addStates(t,n),e.endframeDataIndex(t)}},f=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAslabelDataItem(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAslabelDataItem(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}label(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}frameIndex(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}static startlabelDataItem(e){e.startObject(2)}static addLabel(e,t){e.addFieldOffset(0,t,0)}static addFrameIndex(e,t){e.addFieldInt16(1,t,0)}static endlabelDataItem(e){return e.endObject()}static createlabelDataItem(t,n,r){return e.startlabelDataItem(t),e.addLabel(t,n),e.addFrameIndex(t,r),e.endlabelDataItem(t)}},p=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsmeshDataIndices(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsmeshDataIndices(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}indices(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readFloat32(this.bb.__vector(this.bb_pos+t)+e*4):0}indicesLength(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__vector_len(this.bb_pos+e):0}indicesArray(){let e=this.bb.__offset(this.bb_pos,4);return e?new Float32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}static startmeshDataIndices(e){e.startObject(1)}static addIndices(e,t){e.addFieldOffset(0,t,0)}static createIndicesVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addFloat32(t[n]);return e.endVector()}static startIndicesVector(e,t){e.startVector(4,t,4)}static endmeshDataIndices(e){return e.endObject()}static createmeshDataIndices(t,n){return e.startmeshDataIndices(t),e.addIndices(t,n),e.endmeshDataIndices(t)}},m=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsmeshDataUV(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsmeshDataUV(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}uv(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readFloat32(this.bb.__vector(this.bb_pos+t)+e*4):0}uvLength(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__vector_len(this.bb_pos+e):0}uvArray(){let e=this.bb.__offset(this.bb_pos,4);return e?new Float32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}static startmeshDataUV(e){e.startObject(1)}static addUv(e,t){e.addFieldOffset(0,t,0)}static createUvVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addFloat32(t[n]);return e.endVector()}static startUvVector(e,t){e.startVector(4,t,4)}static endmeshDataUV(e){return e.endObject()}static createmeshDataUV(t,n){return e.startmeshDataUV(t),e.addUv(t,n),e.endmeshDataUV(t)}},h=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsuserDataItem(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataItem(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}flags(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):0}arrayIndex(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}dataType(e){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readUint8(this.bb.__vector(this.bb_pos+t)+e):0}dataTypeLength(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__vector_len(this.bb_pos+e):0}dataTypeArray(){let e=this.bb.__offset(this.bb_pos,8);return e?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}data(e,t){let n=this.bb.__offset(this.bb_pos,10);return n?this.bb.__union(t,this.bb.__vector(this.bb_pos+n)+e*4):null}dataLength(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__vector_len(this.bb_pos+e):0}static startuserDataItem(e){e.startObject(4)}static addFlags(e,t){e.addFieldInt16(0,t,0)}static addArrayIndex(e,t){e.addFieldInt16(1,t,0)}static addDataType(e,t){e.addFieldOffset(2,t,0)}static createDataTypeVector(e,t){e.startVector(1,t.length,1);for(let n=t.length-1;n>=0;n--)e.addInt8(t[n]);return e.endVector()}static startDataTypeVector(e,t){e.startVector(1,t,1)}static addData(e,t){e.addFieldOffset(3,t,0)}static createDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startDataVector(e,t){e.startVector(4,t,4)}static enduserDataItem(e){return e.endObject()}static createuserDataItem(t,n,r,i,a){return e.startuserDataItem(t),e.addFlags(t,n),e.addArrayIndex(t,r),e.addDataType(t,i),e.addData(t,a),e.enduserDataItem(t)}},g=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsuserDataPerFrame(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataPerFrame(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}frameIndex(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):0}data(e,t){let n=this.bb.__offset(this.bb_pos,6);return n?(t||new h).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}dataLength(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__vector_len(this.bb_pos+e):0}static startuserDataPerFrame(e){e.startObject(2)}static addFrameIndex(e,t){e.addFieldInt16(0,t,0)}static addData(e,t){e.addFieldOffset(1,t,0)}static createDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startDataVector(e,t){e.startVector(4,t,4)}static enduserDataPerFrame(e){return e.endObject()}static createuserDataPerFrame(t,n,r){return e.startuserDataPerFrame(t),e.addFrameIndex(t,n),e.addData(t,r),e.enduserDataPerFrame(t)}},_=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsAnimationData(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAnimationData(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}defaultData(e,t){let n=this.bb.__offset(this.bb_pos,6);return n?(t||new l).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}defaultDataLength(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__vector_len(this.bb_pos+e):0}frameData(e,t){let n=this.bb.__offset(this.bb_pos,8);return n?(t||new d).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}frameDataLength(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__vector_len(this.bb_pos+e):0}userData(e,t){let n=this.bb.__offset(this.bb_pos,10);return n?(t||new g).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}userDataLength(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__vector_len(this.bb_pos+e):0}labelData(e,t){let n=this.bb.__offset(this.bb_pos,12);return n?(t||new f).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}labelDataLength(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.__vector_len(this.bb_pos+e):0}meshsDataUv(e,t){let n=this.bb.__offset(this.bb_pos,14);return n?(t||new m).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}meshsDataUvLength(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.__vector_len(this.bb_pos+e):0}meshsDataIndices(e,t){let n=this.bb.__offset(this.bb_pos,16);return n?(t||new p).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}meshsDataIndicesLength(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.__vector_len(this.bb_pos+e):0}startFrames(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.readInt16(this.bb_pos+e):0}endFrames(){let e=this.bb.__offset(this.bb_pos,20);return e?this.bb.readInt16(this.bb_pos+e):0}totalFrames(){let e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readInt16(this.bb_pos+e):0}fps(){let e=this.bb.__offset(this.bb_pos,24);return e?this.bb.readInt16(this.bb_pos+e):0}labelNum(){let e=this.bb.__offset(this.bb_pos,26);return e?this.bb.readInt16(this.bb_pos+e):0}canvasSizeW(){let e=this.bb.__offset(this.bb_pos,28);return e?this.bb.readInt16(this.bb_pos+e):0}canvasSizeH(){let e=this.bb.__offset(this.bb_pos,30);return e?this.bb.readInt16(this.bb_pos+e):0}canvasPvotX(){let e=this.bb.__offset(this.bb_pos,32);return e?this.bb.readFloat32(this.bb_pos+e):0}canvasPvotY(){let e=this.bb.__offset(this.bb_pos,34);return e?this.bb.readFloat32(this.bb_pos+e):0}static startAnimationData(e){e.startObject(16)}static addName(e,t){e.addFieldOffset(0,t,0)}static addDefaultData(e,t){e.addFieldOffset(1,t,0)}static createDefaultDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startDefaultDataVector(e,t){e.startVector(4,t,4)}static addFrameData(e,t){e.addFieldOffset(2,t,0)}static createFrameDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startFrameDataVector(e,t){e.startVector(4,t,4)}static addUserData(e,t){e.addFieldOffset(3,t,0)}static createUserDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startUserDataVector(e,t){e.startVector(4,t,4)}static addLabelData(e,t){e.addFieldOffset(4,t,0)}static createLabelDataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startLabelDataVector(e,t){e.startVector(4,t,4)}static addMeshsDataUv(e,t){e.addFieldOffset(5,t,0)}static createMeshsDataUvVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startMeshsDataUvVector(e,t){e.startVector(4,t,4)}static addMeshsDataIndices(e,t){e.addFieldOffset(6,t,0)}static createMeshsDataIndicesVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startMeshsDataIndicesVector(e,t){e.startVector(4,t,4)}static addStartFrames(e,t){e.addFieldInt16(7,t,0)}static addEndFrames(e,t){e.addFieldInt16(8,t,0)}static addTotalFrames(e,t){e.addFieldInt16(9,t,0)}static addFps(e,t){e.addFieldInt16(10,t,0)}static addLabelNum(e,t){e.addFieldInt16(11,t,0)}static addCanvasSizeW(e,t){e.addFieldInt16(12,t,0)}static addCanvasSizeH(e,t){e.addFieldInt16(13,t,0)}static addCanvasPvotX(e,t){e.addFieldFloat32(14,t,0)}static addCanvasPvotY(e,t){e.addFieldFloat32(15,t,0)}static endAnimationData(e){return e.endObject()}static createAnimationData(t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_){return e.startAnimationData(t),e.addName(t,n),e.addDefaultData(t,r),e.addFrameData(t,i),e.addUserData(t,a),e.addLabelData(t,o),e.addMeshsDataUv(t,s),e.addMeshsDataIndices(t,c),e.addStartFrames(t,l),e.addEndFrames(t,u),e.addTotalFrames(t,d),e.addFps(t,f),e.addLabelNum(t,p),e.addCanvasSizeW(t,m),e.addCanvasSizeH(t,h),e.addCanvasPvotX(t,g),e.addCanvasPvotY(t,_),e.endAnimationData(t)}};let v=function(e){return e[e.Invalid=-1]=`Invalid`,e[e.Nulltype=0]=`Nulltype`,e[e.Normal=1]=`Normal`,e[e.Text=2]=`Text`,e[e.Instance=3]=`Instance`,e[e.Armature=4]=`Armature`,e[e.Effect=5]=`Effect`,e[e.Mesh=6]=`Mesh`,e[e.Movenode=7]=`Movenode`,e[e.Constraint=8]=`Constraint`,e[e.Mask=9]=`Mask`,e[e.Joint=10]=`Joint`,e[e.Bonepoint=11]=`Bonepoint`,e}({});var y=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsPartData(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsPartData(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}index(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}parentIndex(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}type(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt8(this.bb_pos+e):v.Nulltype}boundsType(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}alphaBlendType(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.readInt16(this.bb_pos+e):0}refname(e){let t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__string(this.bb_pos+t,e):null}effectfilename(e){let t=this.bb.__offset(this.bb_pos,18);return t?this.bb.__string(this.bb_pos+t,e):null}colorLabel(e){let t=this.bb.__offset(this.bb_pos,20);return t?this.bb.__string(this.bb_pos+t,e):null}maskInfluence(){let e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readInt16(this.bb_pos+e):0}static startPartData(e){e.startObject(10)}static addName(e,t){e.addFieldOffset(0,t,0)}static addIndex(e,t){e.addFieldInt16(1,t,0)}static addParentIndex(e,t){e.addFieldInt16(2,t,0)}static addType(e,t){e.addFieldInt8(3,t,v.Nulltype)}static addBoundsType(e,t){e.addFieldInt16(4,t,0)}static addAlphaBlendType(e,t){e.addFieldInt16(5,t,0)}static addRefname(e,t){e.addFieldOffset(6,t,0)}static addEffectfilename(e,t){e.addFieldOffset(7,t,0)}static addColorLabel(e,t){e.addFieldOffset(8,t,0)}static addMaskInfluence(e,t){e.addFieldInt16(9,t,0)}static endPartData(e){return e.endObject()}static createPartData(t,n,r,i,a,o,s,c,l,u,d){return e.startPartData(t),e.addName(t,n),e.addIndex(t,r),e.addParentIndex(t,i),e.addType(t,a),e.addBoundsType(t,o),e.addAlphaBlendType(t,s),e.addRefname(t,c),e.addEffectfilename(t,l),e.addColorLabel(t,u),e.addMaskInfluence(t,d),e.endPartData(t)}},b=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsAnimePackData(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAnimePackData(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}parts(e,t){let n=this.bb.__offset(this.bb_pos,6);return n?(t||new y).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}partsLength(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__vector_len(this.bb_pos+e):0}animations(e,t){let n=this.bb.__offset(this.bb_pos,8);return n?(t||new _).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}animationsLength(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__vector_len(this.bb_pos+e):0}static startAnimePackData(e){e.startObject(3)}static addName(e,t){e.addFieldOffset(0,t,0)}static addParts(e,t){e.addFieldOffset(1,t,0)}static createPartsVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startPartsVector(e,t){e.startVector(4,t,4)}static addAnimations(e,t){e.addFieldOffset(2,t,0)}static createAnimationsVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startAnimationsVector(e,t){e.startVector(4,t,4)}static endAnimePackData(e){return e.endObject()}static createAnimePackData(t,n,r,i){return e.startAnimePackData(t),e.addName(t,n),e.addParts(t,r),e.addAnimations(t,i),e.endAnimePackData(t)}},x=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsCellMap(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsCellMap(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}imagePath(e){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__string(this.bb_pos+t,e):null}index(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}wrapmode(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt16(this.bb_pos+e):0}filtermode(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}static startCellMap(e){e.startObject(5)}static addName(e,t){e.addFieldOffset(0,t,0)}static addImagePath(e,t){e.addFieldOffset(1,t,0)}static addIndex(e,t){e.addFieldInt16(2,t,0)}static addWrapmode(e,t){e.addFieldInt16(3,t,0)}static addFiltermode(e,t){e.addFieldInt16(4,t,0)}static endCellMap(e){return e.endObject()}static createCellMap(t,n,r,i,a,o){return e.startCellMap(t),e.addName(t,n),e.addImagePath(t,r),e.addIndex(t,i),e.addWrapmode(t,a),e.addFiltermode(t,o),e.endCellMap(t)}},S=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsCell(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsCell(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}cellMap(e){let t=this.bb.__offset(this.bb_pos,6);return t?(e||new x).__init(this.bb.__indirect(this.bb_pos+t),this.bb):null}indexInCellMap(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}x(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt16(this.bb_pos+e):0}y(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}width(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.readInt16(this.bb_pos+e):0}height(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.readInt16(this.bb_pos+e):0}pivotX(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.readFloat32(this.bb_pos+e):0}pivotY(){let e=this.bb.__offset(this.bb_pos,20);return e?this.bb.readFloat32(this.bb_pos+e):0}u1(){let e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readFloat32(this.bb_pos+e):0}v1(){let e=this.bb.__offset(this.bb_pos,24);return e?this.bb.readFloat32(this.bb_pos+e):0}u2(){let e=this.bb.__offset(this.bb_pos,26);return e?this.bb.readFloat32(this.bb_pos+e):0}v2(){let e=this.bb.__offset(this.bb_pos,28);return e?this.bb.readFloat32(this.bb_pos+e):0}static startCell(e){e.startObject(13)}static addName(e,t){e.addFieldOffset(0,t,0)}static addCellMap(e,t){e.addFieldOffset(1,t,0)}static addIndexInCellMap(e,t){e.addFieldInt16(2,t,0)}static addX(e,t){e.addFieldInt16(3,t,0)}static addY(e,t){e.addFieldInt16(4,t,0)}static addWidth(e,t){e.addFieldInt16(5,t,0)}static addHeight(e,t){e.addFieldInt16(6,t,0)}static addPivotX(e,t){e.addFieldFloat32(7,t,0)}static addPivotY(e,t){e.addFieldFloat32(8,t,0)}static addU1(e,t){e.addFieldFloat32(9,t,0)}static addV1(e,t){e.addFieldFloat32(10,t,0)}static addU2(e,t){e.addFieldFloat32(11,t,0)}static addV2(e,t){e.addFieldFloat32(12,t,0)}static endCell(e){return e.endObject()}},C=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsEffectNode(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsEffectNode(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}arrayIndex(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):0}parentIndex(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}type(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}cellIndex(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt16(this.bb_pos+e):0}blendType(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}numBehavior(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.readInt16(this.bb_pos+e):0}behaviorType(e){let t=this.bb.__offset(this.bb_pos,16);return t?this.bb.readUint8(this.bb.__vector(this.bb_pos+t)+e):0}behaviorTypeLength(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.__vector_len(this.bb_pos+e):0}behaviorTypeArray(){let e=this.bb.__offset(this.bb_pos,16);return e?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}behavior(e,t){let n=this.bb.__offset(this.bb_pos,18);return n?this.bb.__union(t,this.bb.__vector(this.bb_pos+n)+e*4):null}behaviorLength(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.__vector_len(this.bb_pos+e):0}static startEffectNode(e){e.startObject(8)}static addArrayIndex(e,t){e.addFieldInt16(0,t,0)}static addParentIndex(e,t){e.addFieldInt16(1,t,0)}static addType(e,t){e.addFieldInt16(2,t,0)}static addCellIndex(e,t){e.addFieldInt16(3,t,0)}static addBlendType(e,t){e.addFieldInt16(4,t,0)}static addNumBehavior(e,t){e.addFieldInt16(5,t,0)}static addBehaviorType(e,t){e.addFieldOffset(6,t,0)}static createBehaviorTypeVector(e,t){e.startVector(1,t.length,1);for(let n=t.length-1;n>=0;n--)e.addInt8(t[n]);return e.endVector()}static startBehaviorTypeVector(e,t){e.startVector(1,t,1)}static addBehavior(e,t){e.addFieldOffset(7,t,0)}static createBehaviorVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startBehaviorVector(e,t){e.startVector(4,t,4)}static endEffectNode(e){return e.endObject()}static createEffectNode(t,n,r,i,a,o,s,c,l){return e.startEffectNode(t),e.addArrayIndex(t,n),e.addParentIndex(t,r),e.addType(t,i),e.addCellIndex(t,a),e.addBlendType(t,o),e.addNumBehavior(t,s),e.addBehaviorType(t,c),e.addBehavior(t,l),e.endEffectNode(t)}},w=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsEffectFile(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsEffectFile(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}fps(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt16(this.bb_pos+e):0}isLockRandSeed(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt16(this.bb_pos+e):0}lockRandSeed(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt16(this.bb_pos+e):0}layoutScaleX(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readInt16(this.bb_pos+e):0}layoutScaleY(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.readInt16(this.bb_pos+e):0}numNodeList(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.readInt16(this.bb_pos+e):0}effectNode(e,t){let n=this.bb.__offset(this.bb_pos,18);return n?(t||new C).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}effectNodeLength(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.__vector_len(this.bb_pos+e):0}static startEffectFile(e){e.startObject(8)}static addName(e,t){e.addFieldOffset(0,t,0)}static addFps(e,t){e.addFieldInt16(1,t,0)}static addIsLockRandSeed(e,t){e.addFieldInt16(2,t,0)}static addLockRandSeed(e,t){e.addFieldInt16(3,t,0)}static addLayoutScaleX(e,t){e.addFieldInt16(4,t,0)}static addLayoutScaleY(e,t){e.addFieldInt16(5,t,0)}static addNumNodeList(e,t){e.addFieldInt16(6,t,0)}static addEffectNode(e,t){e.addFieldOffset(7,t,0)}static createEffectNodeVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startEffectNodeVector(e,t){e.startVector(4,t,4)}static endEffectFile(e){return e.endObject()}static createEffectFile(t,n,r,i,a,o,s,c,l){return e.startEffectFile(t),e.addName(t,n),e.addFps(t,r),e.addIsLockRandSeed(t,i),e.addLockRandSeed(t,a),e.addLayoutScaleX(t,o),e.addLayoutScaleY(t,s),e.addNumNodeList(t,c),e.addEffectNode(t,l),e.endEffectFile(t)}};let T=function(e){return e[e.INVISIBLE=1]=`INVISIBLE`,e[e.FLIP_H=2]=`FLIP_H`,e[e.FLIP_V=4]=`FLIP_V`,e[e.CELL_INDEX=8]=`CELL_INDEX`,e[e.POSITION_X=16]=`POSITION_X`,e[e.POSITION_Y=32]=`POSITION_Y`,e[e.POSITION_Z=64]=`POSITION_Z`,e[e.PIVOT_X=128]=`PIVOT_X`,e[e.PIVOT_Y=256]=`PIVOT_Y`,e[e.ROTATIONX=512]=`ROTATIONX`,e[e.ROTATIONY=1024]=`ROTATIONY`,e[e.ROTATIONZ=2048]=`ROTATIONZ`,e[e.SCALE_X=4096]=`SCALE_X`,e[e.SCALE_Y=8192]=`SCALE_Y`,e[e.LOCALSCALE_X=16384]=`LOCALSCALE_X`,e[e.LOCALSCALE_Y=32768]=`LOCALSCALE_Y`,e[e.OPACITY=65536]=`OPACITY`,e[e.LOCALOPACITY=131072]=`LOCALOPACITY`,e[e.PARTS_COLOR=262144]=`PARTS_COLOR`,e[e.VERTEX_TRANSFORM=524288]=`VERTEX_TRANSFORM`,e[e.SIZE_X=1048576]=`SIZE_X`,e[e.SIZE_Y=2097152]=`SIZE_Y`,e[e.U_MOVE=4194304]=`U_MOVE`,e[e.V_MOVE=8388608]=`V_MOVE`,e[e.UV_ROTATION=16777216]=`UV_ROTATION`,e[e.U_SCALE=33554432]=`U_SCALE`,e[e.V_SCALE=67108864]=`V_SCALE`,e[e.BOUNDINGRADIUS=134217728]=`BOUNDINGRADIUS`,e[e.MASK=268435456]=`MASK`,e[e.PRIORITY=536870912]=`PRIORITY`,e[e.INSTANCE_KEYFRAME=1073741824]=`INSTANCE_KEYFRAME`,e[e.EFFECT_KEYFRAME=2147483648]=`EFFECT_KEYFRAME`,e}({}),E=function(e){return e[e.MESHDATA=1]=`MESHDATA`,e}({});var D=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsProjectData(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsProjectData(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static bufferHasIdentifier(e){return e.__has_identifier(`SSFB`)}dataId(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readUint32(this.bb_pos+e):0}version(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readUint32(this.bb_pos+e):0}flags(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readUint32(this.bb_pos+e):0}imageBaseDir(e){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__string(this.bb_pos+t,e):null}cells(e,t){let n=this.bb.__offset(this.bb_pos,12);return n?(t||new S).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}cellsLength(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.__vector_len(this.bb_pos+e):0}animePacks(e,t){let n=this.bb.__offset(this.bb_pos,14);return n?(t||new b).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}animePacksLength(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.__vector_len(this.bb_pos+e):0}effectFileList(e,t){let n=this.bb.__offset(this.bb_pos,16);return n?(t||new w).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}effectFileListLength(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.__vector_len(this.bb_pos+e):0}numCells(){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.readInt16(this.bb_pos+e):0}numAnimePacks(){let e=this.bb.__offset(this.bb_pos,20);return e?this.bb.readInt16(this.bb_pos+e):0}numEffectFileList(){let e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readInt16(this.bb_pos+e):0}static startProjectData(e){e.startObject(10)}static addDataId(e,t){e.addFieldInt32(0,t,0)}static addVersion(e,t){e.addFieldInt32(1,t,0)}static addFlags(e,t){e.addFieldInt32(2,t,0)}static addImageBaseDir(e,t){e.addFieldOffset(3,t,0)}static addCells(e,t){e.addFieldOffset(4,t,0)}static createCellsVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startCellsVector(e,t){e.startVector(4,t,4)}static addAnimePacks(e,t){e.addFieldOffset(5,t,0)}static createAnimePacksVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startAnimePacksVector(e,t){e.startVector(4,t,4)}static addEffectFileList(e,t){e.addFieldOffset(6,t,0)}static createEffectFileListVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startEffectFileListVector(e,t){e.startVector(4,t,4)}static addNumCells(e,t){e.addFieldInt16(7,t,0)}static addNumAnimePacks(e,t){e.addFieldInt16(8,t,0)}static addNumEffectFileList(e,t){e.addFieldInt16(9,t,0)}static endProjectData(e){return e.endObject()}static finishProjectDataBuffer(e,t){e.finish(t,`SSFB`)}static finishSizePrefixedProjectDataBuffer(e,t){e.finish(t,`SSFB`,!0)}static createProjectData(t,n,r,i,a,o,s,c,l,u,d){return e.startProjectData(t),e.addDataId(t,n),e.addVersion(t,r),e.addFlags(t,i),e.addImageBaseDir(t,a),e.addCells(t,o),e.addAnimePacks(t,s),e.addEffectFileList(t,c),e.addNumCells(t,l),e.addNumAnimePacks(t,u),e.addNumEffectFileList(t,d),e.endProjectData(t)}},O=class{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}integer(){return this.bb.readInt32(this.bb_pos)}static sizeOf(){return 4}static createuserDataInteger(e,t){return e.prep(4,4),e.writeInt32(t),e.offset()}},k=class{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}x(){return this.bb.readInt32(this.bb_pos)}y(){return this.bb.readInt32(this.bb_pos+4)}static sizeOf(){return 8}static createuserDataPoint(e,t,n){return e.prep(4,8),e.writeInt32(n),e.writeInt32(t),e.offset()}},A=class{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}x(){return this.bb.readInt32(this.bb_pos)}y(){return this.bb.readInt32(this.bb_pos+4)}w(){return this.bb.readInt32(this.bb_pos+8)}h(){return this.bb.readInt32(this.bb_pos+12)}static sizeOf(){return 16}static createuserDataRect(e,t,n,r,i){return e.prep(4,16),e.writeInt32(i),e.writeInt32(r),e.writeInt32(n),e.writeInt32(t),e.offset()}},j=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsuserDataString(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsuserDataString(t,n){return t.setPosition(t.position()+4),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}length(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt32(this.bb_pos+e):0}data(e){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__string(this.bb_pos+t,e):null}static startuserDataString(e){e.startObject(2)}static addLength(e,t){e.addFieldInt32(0,t,0)}static addData(e,t){e.addFieldOffset(1,t,0)}static enduserDataString(e){return e.endObject()}static createuserDataString(t,n,r){return e.startuserDataString(t),e.addLength(t,n),e.addData(t,r),e.enduserDataString(t)}},M=class{static getProjectData(e){let t=new c(e);return D.getRootAsProjectData(t)}},N=class{static getProjectData(e){return M.getProjectData(e)}},P=class{get fbObj(){return this._fbObj}get animePackName(){return this.curAnimePackName}get animeName(){return this.curAnimeName}get animePackIdx(){return this._animePackIdx}get animePackData(){return this.curAnimePackData}get animationData(){return this.curAnimation}get parentIndex(){return this._parentIndex}get prio2index(){return this._prio2index}constructor(e,t=null,n=null){this.curAnimePackName=null,this.curAnimeName=null,this.curAnimation=null,this.curAnimePackData=null,this._animePackIdx=-1,this._parentIndex=[],this._prio2index=[],this.userData=[],this.frameDataCache=null,this.currentCachedFrameNumber=-1,this.defaultFrameMap=[],this._uint32=new Uint32Array(1),this._float32=new Float32Array(this._uint32.buffer),Object.prototype.hasOwnProperty.call(e,`bb`)?this._fbObj=e:this._fbObj=N.getProjectData(e),t!==null&&n!==null&&this.Setup(t,n)}Setup(e,t){this.clearCaches();let n=this._fbObj.animePacksLength(),r=!1;for(let i=0;i>>0,s.colorBlendType===1&&(s.tint=s.colorArgb32&16777215)}}if(o&E.MESHDATA){let e=this.curAnimation.meshsDataUv(i);s.meshIsBind=e.uv(0),s.meshNum=e.uv(1);let n=new Float32Array(s.meshNum*3);for(let e=0;e=0&&(e=this.InheritOpacity(e,this._parentIndex[t],n)),e}TransformVertsLocal(e,t,n){let r=this.GetFrameData(n)[t],i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i);for(let t=0;t=0&&(e=this.TransformVerts(e,this._parentIndex[t],n)),e}TransformMeshVertsLocal(e,t,n){let r=this.GetFrameData(n)[t],i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i);for(let t=0;t=0&&(e=this.TransformVerts(e,this._parentIndex[t],n)),e}TransformPositionLocal(e,t,n){let r=this.GetFrameData(n)[t];e[4]+=-r.rotationZ;let i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i),s=e[0]*r.scaleX*r.localscaleX,c=e[1]*r.scaleY*r.localscaleY;return e[2]*=r.scaleX*r.localscaleX,e[3]*=r.scaleY*r.localscaleY,e[0]=a*s-o*c+r.positionX,e[1]=o*s+a*c-r.positionY,this._parentIndex[t]>=0&&(e=this.TransformPosition(e,this._parentIndex[t],n)),e}static CoordinateGetDiagonalIntersection(e,t,n,r,i,a,o,s,c,l,u){let d=(s-a)*(o-n)-(o-i)*(s-r),f=(c-n)*(s-r)-(l-r)*(o-n),p=(c-n)*(s-a)-(l-r)*(o-i);if(p<=0&&p>=0)return u;let m=d/p,h=f/p;return 0<=m&&1>=m&&0<=h&&1>=h&&(e=n+m*(c-n),t=r+m*(l-r)),u[0]=e,u[1]=t,u}TransformVerts(e,t,n){let r=this.GetFrameData(n)[t],i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i);for(let t=0;t=0&&(e=this.TransformVerts(e,this._parentIndex[t],n)),e}TransformPosition(e,t,n){let r=this.GetFrameData(n)[t];e[4]+=-r.rotationZ;let i=-r.rotationZ*Math.PI/180,a=Math.cos(i),o=Math.sin(i),s=e[0]*r.scaleX,c=e[1]*r.scaleY;return e[2]*=r.scaleX,e[3]*=r.scaleY,e[0]=a*s-o*c+r.positionX,e[1]=o*s+a*c-r.positionY,this._parentIndex[t]>=0&&(e=this.TransformPosition(e,this._parentIndex[t],n)),e}static GetVerts(e,t,n){let r=t.size_X/2,i=t.size_Y/2,a=t.size_X*-(t.pivotX+e.pivotX()),o=t.size_Y*(t.pivotY+e.pivotY());return n.set([a,o,a-r,o-i,a+r,o-i,a-r,o+i,a+r,o+i]),n}static GetMeshVerts(e,t,n){for(let e=0;e{r!==null&&r(null)}).catch(e=>{r!==null&&r(e)})}unload(e,n,r){t.Assets.unloadBundle(e).then(()=>{r!==null&&r(null)}).catch(e=>{r!==null&&r(e)})}texture(e){return t.Assets.get(e)}},I=class{constructor(){this.loader=new F}load(e,t,n){return this.loader.load(e,t,n)}unload(e,t,n=null){return this.loader.unload(e,t,n)}texture(e){return this.loader.texture(e)}};let L=function(e){return e[e.NOT_READY=0]=`NOT_READY`,e[e.READY=1]=`READY`,e}({});var R=class{getBundle(){return this.ssfbFile}getTexture(e){return this.resourceLoader.texture(e)}constructor(e,t,n,r){if(this.sspjMap={},this.resourceLoader=new I,typeof e==`string`&&n===void 0){let n=e;this.ssfbPath=n;let r=n.lastIndexOf(`/`);this.rootPath=n.substring(0,r)+`/`,this.ssfbFile=n.substring(r+1),this.onComplete=t===void 0?null:t,this.status=L.NOT_READY,this.LoadFlatBuffersProject()}else if(typeof t==`object`&&t.constructor===Uint8Array){this.ssfbPath=null,this.rootPath=null,this.ssfbFile=e;let i=t,a=n;this.onComplete=r===void 0?null:r,this.load(i,a)}}dispose(e=null){this.resourceLoader.unload(this.getBundle(),this.sspjMap,t=>{e!==null&&e()})}LoadFlatBuffersProject(){let e=this;fetch(this.ssfbPath,{method:`get`}).then(e=>e.ok?Promise.resolve(e.arrayBuffer()):Promise.reject(Error(e.statusText))).then(t=>{e.fbObj=N.getProjectData(new Uint8Array(t)),e.LoadCellResources()}).catch(e=>{this.onComplete!==null&&this.onComplete(null,e)})}LoadCellResources(){let e=[];this.sspjMap={};for(let t=0;t{e===null?(t.status=L.READY,t.onComplete!==null&&t.onComplete(this,null)):this.onComplete!==null&&this.onComplete(null,e)})}load(e,t){this.fbObj=N.getProjectData(e);let n={};for(let e in t){let r=t[e],i=``,a=r.byteLength;for(let e=0;e{e===null?(r.status=L.READY,r.onComplete!==null&&r.onComplete(this,null)):this.onComplete!==null&&this.onComplete(null,e)})}},z=class{constructor(){this.refStartframe=0,this.refEndframe=0,this.refSpeed=1,this.refloopNum=0,this.infinity=!1,this.reverse=!1,this.pingpong=!1,this.independent=!1}};return e.SS6Player=class e extends t.Container{get startFrame(){return this._startFrame}get endFrame(){return this._endFrame}get totalFrame(){return this.playerLib.animationData.totalFrames()}get fps(){return this.playerLib.animationData.fps()}get frameNo(){return Math.floor(this._currentFrame)}set loop(e){this._loops=e}get loop(){return this._loops}get isPlaying(){return this._isPlaying}get isPausing(){return this._isPausing}get animePackName(){return this.playerLib.animePackName}get animeName(){return this.playerLib.animeName}constructor(e,n=null,r=null){super(),this.liveFrame=[],this.colorMatrixFilterCache=[],this.parentAlpha=1,this.prevCellID=[],this.prevPartObject=[],this.changeCellID=[],this.changeVisible=[],this.changeTint=[],this.substituteOverWrite=[],this.substituteKeyParam=[],this.alphaBlendType=[],this.defaultColorFilter=new t.ColorMatrixFilter,this._instancePos=new Float32Array(5),this._CoordinateGetDiagonalIntersectionVec2=new Float32Array(2),this.isRenderGroup=!0,this.ss6project=e,this.playerLib=new P(e.fbObj,n,r),this.parentAlpha=1,n!==null&&r!==null&&this.Setup(n,r),this.on(`added`,(...e)=>{t.Ticker.shared.add(this.Update,this)},this),this.on(`removed`,(...e)=>{t.Ticker.shared.remove(this.Update,this)},this)}Setup(e,t){this.playerLib.Setup(e,t),this.clearCaches();let n=this.playerLib.animePackData,r=n.partsLength();this.prevCellID=Array(r),this.prevPartObject=Array(r),this.changeCellID=Array(r),this.changeVisible=Array(r),this.changeTint=Array(r),this.substituteOverWrite=Array(r),this.substituteKeyParam=Array(r);for(let e=0;e=this.updateInterval){let e=!1,n=this.nextFrameTime/this.updateInterval;this.nextFrameTime-=this.updateInterval*n;let r=this.skipEnabled?n*this.playDirection:this.playDirection,i=this._currentFrame+r,a=Math.floor(i),o=i-a,s=Math.floor(this._currentFrame);if(this.playDirection>=1)for(let n=a-s;n;n--){let n=s+1;if(n>this._endFrame)if(this._loops===-1)n=this._startFrame;else if(this._loops--,e=!0,this._loops===0){this._isPlaying=!1,n=t?this._startFrame:this._endFrame;break}else n=this._startFrame;s=n,this._isPlaying&&this.playerLib.HaveUserData(s)&&this.onUserDataCallback!==null&&this.onUserDataCallback(this.playerLib.GetUserData(s))}if(this.playDirection<=-1)for(let n=s-a;n;n--){let n=s-1;if(n0?1:-1,this.updateInterval=1e3/(this.playerLib.animationData.fps()*e*this.playDirection),this.skipEnabled=t)}SetAnimationSection(e=-1,t=-1,n=-1){e>=0&&e=0&&t0?this._loops=n:this._loops=-1,this._currentFrame=this.playDirection>0?this._startFrame:this._endFrame}Play(e){this._isPlaying=!0,this._isPausing=!1;let t=this.playDirection>0?this._startFrame:this._endFrame;e&&typeof e==`number`&&(t=e),this._currentFrame=t,this.resetLiveFrame();let n=Math.floor(this._currentFrame);this.SetFrameAnimation(n),this.playerLib.HaveUserData(n)&&this.onUserDataCallback!==null&&this.onUserDataCallback(this.playerLib.GetUserData(n))}Pause(){this._isPausing=!0}Resume(){this._isPausing=!1}Stop(){this._isPlaying=!1}SetFrame(e){this._currentFrame=e}NextFrame(){let e=Math.floor(this._currentFrame);e!==this.endFrame&&this.SetFrame(e+1)}PrevFrame(){let e=Math.floor(this._currentFrame);e!==0&&this.SetFrame(e-1)}SetAlpha(e){this.parentAlpha=e}ThrowError(e){}SetUserDataCalback(e){this.onUserDataCallback=e}SetPlayEndCallback(e){this.playEndCallback=e}getCellIndex(e,t){let n=-1;if(e!==``&&t!==``){let r=this.playerLib.fbObj,i=this.playerLib.fbObj.numCells();for(let a=0;a>>24)/255,s=((r&16711680)>>>16)/255,c=((r&65280)>>>8)/255,l=(r&255)/255;if(e===0){let e=1-n;a.matrix=[e,0,0,0,s*n,0,e,0,0,c*n,0,0,e,0,l*n,0,0,0,1,0]}else e===1?a.matrix=[s,0,0,0,0,0,c,0,0,0,0,0,l,0,0,0,0,0,o,0]:e===2?a.matrix=[1,0,0,0,s,0,1,0,0,c,0,0,1,0,l,0,0,0,o,0]:e===3&&(a.matrix=[1,0,0,0,-s,0,1,0,0,-c,0,0,1,0,-l,0,0,0,o,0]);return this.colorMatrixFilterCache[i]=a,a}SetFrameAnimation(e,n=0){let r=this.playerLib.GetFrameData(e);this.removeChildren();let i=r.length;for(let a=0;a=0&&this.prevCellID[i]!==c&&(l?.destroy(),l=this.MakeCellMesh(c),l.label=u.name());break;case v.Mesh:c>=0&&this.prevCellID[i]!==c&&(l?.destroy(),l=this.MakeMeshCellMesh(i,c,s),l.label=u.name());break;case v.Nulltype:case v.Joint:this.prevCellID[i]!==c&&(l?.destroy(),l=new t.Container,l.label=u.name());break;default:c>=0&&this.prevCellID[i]!==c&&(l?.destroy(),l=this.MakeCellMesh(c),l.label=u.name());break}if(l!=null)switch(this.prevCellID[i]=c,this.prevPartObject[i]=l,d){case v.Instance:{let t=l;this._instancePos[0]=0,this._instancePos[1]=0,this._instancePos[2]=1,this._instancePos[3]=1,this._instancePos[4]=0,this._instancePos=this.playerLib.TransformPositionLocal(this._instancePos,o.index,e),t.rotation=this._instancePos[4]*Math.PI/180,t.position.set(this._instancePos[0],this._instancePos[1]),t.scale.set(this._instancePos[2],this._instancePos[3]);let r=o.opacity/255;o.localopacity<255&&(r=o.localopacity/255),t.SetAlpha(r*this.parentAlpha),t.visible=!o.f_hide;let i=o.instanceValue_curKeyframe,s=o.instanceValue_startFrame,c=o.instanceValue_endFrame,u=o.instanceValue_speed,d=o.instanceValue_loopNum,m=!1,h=!1,g=!1,_=!1,v=o.instanceValue_loopflag;v&1&&(m=!0),v&2&&(h=!0),v&4&&(g=!0),v&8&&(_=!0),f&&(s=p.refStartframe,c=p.refEndframe,u=p.refSpeed,d=p.refloopNum,m=p.infinity,h=p.reverse,g=p.pingpong,_=p.independent),(t._startFrame!==s||t._endFrame!==c)&&t.SetAnimationSection(s,c);let y=e;_===!0&&(this.liveFrame[a]+=n,y=Math.floor(this.liveFrame[a]));let b=i,x=Math.floor((y-b)*u);if(x<0||b>y)continue;let S=c-s+1;if(S<=0)continue;let C=Math.floor(x/S),w=d;g&&(w*=2),m||C>=w&&(x=S-1,C=w-1);let T=Math.floor(x%S),E=0;g&&C%2==1&&(h=!h),this.playDirection<=-1&&(h=!h),E=h?c-T:T+s,t.SetFrame(Math.floor(E)),this.addChild(t);break}case v.Normal:case v.Mesh:case v.Joint:case v.Mask:{let t=l,n=t.geometry.attributes.aPosition.buffer,r=n.data,a=this.playerLib.fbObj.cells(c),s;if(d===v.Mesh?s=o.meshIsBind===0?this.playerLib.TransformMeshVertsLocal(P.GetMeshVerts(a,o,r),o.index,e):P.GetMeshVerts(a,o,r):(s=d===v.Joint?new Float32Array(10):r,s=this.playerLib.TransformVertsLocal(P.GetVerts(a,o,s),o.index,e)),o.flag1&T.VERTEX_TRANSFORM){let e=s[6],t=s[7],n=s[2],r=s[3],i=s[8],a=s[9],o=s[4],c=s[5],l=(e+i)*.5,u=(t+a)*.5,d=(e+n)*.5,f=(t+r)*.5,p=(n+o)*.5,m=(r+c)*.5,h=(i+o)*.5,g=(a+c)*.5,_=P.CoordinateGetDiagonalIntersection(s[0],s[1],l,u,h,g,d,f,p,m,this._CoordinateGetDiagonalIntersectionVec2);s[0]=_[0],s[1]=_[1]}let u=s[0],f=s[1];for(let e=0;e>>24)/255;t.alpha*=e}let m=this.alphaBlendType[i];(m===`multiply`||m===`screen`)&&(t.alpha=1),d!==v.Mask&&this.addChild(t);break}case v.Nulltype:{let t=l;t.alpha=this.playerLib.InheritOpacity(1,o.index,e)*o.localopacity/255;let n=this.playerLib.TransformVerts(P.GetDummyVerts(),o.index,e),r=n[0],i=n[1];t.position.set(r,i);let a=Math.atan2(n[5]-n[3],n[4]-n[2]),s=Math.atan2(n[7]-n[3],n[6]-n[2]);t.rotation=a,t.skew.x=s-a-Math.PI/2;break}}}}ChangeInstanceAnime(t,n,r,i,a=null){let o=!1;if(this.animePackName!==null&&this.animeName!==null){let s=this.playerLib.animePackData,c=s.partsLength();for(let l=0;l0){let o=this.playerLib.fbObj.cells(n),s=this.playerLib.fbObj.cells(r),c=n===r?0:(o.u1()+o.u2())/2-(s.u1()+s.u2())/2,l=n===r?0:(o.v1()+o.v2())/2-(s.v1()+s.v2())/2,u=new Float32Array(a-2),d=i.uv(1);for(let e=2;e> 24; + } + readUint8(offset) { + return this.bytes_[offset]; + } + readInt16(offset) { + return this.readUint16(offset) << 16 >> 16; + } + readUint16(offset) { + return this.bytes_[offset] | this.bytes_[offset + 1] << 8; + } + readInt32(offset) { + return this.bytes_[offset] | this.bytes_[offset + 1] << 8 | this.bytes_[offset + 2] << 16 | this.bytes_[offset + 3] << 24; + } + readUint32(offset) { + return this.readInt32(offset) >>> 0; + } + readInt64(offset) { + return BigInt.asIntN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); + } + readUint64(offset) { + return BigInt.asUintN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); + } + readFloat32(offset) { + int32[0] = this.readInt32(offset); + return float32[0]; + } + readFloat64(offset) { + int32[isLittleEndian ? 0 : 1] = this.readInt32(offset); + int32[isLittleEndian ? 1 : 0] = this.readInt32(offset + 4); + return float64[0]; + } + writeInt8(offset, value) { + this.bytes_[offset] = value; + } + writeUint8(offset, value) { + this.bytes_[offset] = value; + } + writeInt16(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + } + writeUint16(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + } + writeInt32(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + this.bytes_[offset + 2] = value >> 16; + this.bytes_[offset + 3] = value >> 24; + } + writeUint32(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + this.bytes_[offset + 2] = value >> 16; + this.bytes_[offset + 3] = value >> 24; + } + writeInt64(offset, value) { + this.writeInt32(offset, Number(BigInt.asIntN(32, value))); + this.writeInt32(offset + 4, Number(BigInt.asIntN(32, value >> BigInt(32)))); + } + writeUint64(offset, value) { + this.writeUint32(offset, Number(BigInt.asUintN(32, value))); + this.writeUint32(offset + 4, Number(BigInt.asUintN(32, value >> BigInt(32)))); + } + writeFloat32(offset, value) { + float32[0] = value; + this.writeInt32(offset, int32[0]); + } + writeFloat64(offset, value) { + float64[0] = value; + this.writeInt32(offset, int32[isLittleEndian ? 0 : 1]); + this.writeInt32(offset + 4, int32[isLittleEndian ? 1 : 0]); + } + /** + * Return the file identifier. Behavior is undefined for FlatBuffers whose + * schema does not include a file_identifier (likely points at padding or the + * start of a the root vtable). + */ + getBufferIdentifier() { + if (this.bytes_.length < this.position_ + 4 + 4) throw new Error("FlatBuffers: ByteBuffer is too short to contain an identifier."); + let result = ""; + for (let i = 0; i < 4; i++) result += String.fromCharCode(this.readInt8(this.position_ + 4 + i)); + return result; + } + /** + * Look up a field in the vtable, return an offset into the object, or 0 if the + * field is not present. + */ + __offset(bb_pos, vtable_offset) { + const vtable = bb_pos - this.readInt32(bb_pos); + return vtable_offset < this.readInt16(vtable) ? this.readInt16(vtable + vtable_offset) : 0; + } + /** + * Initialize any Table-derived type to point to the union at the given offset. + */ + __union(t, offset) { + t.bb_pos = offset + this.readInt32(offset); + t.bb = this; + return t; + } + /** + * Create a JavaScript string from UTF-8 data stored inside the FlatBuffer. + * This allocates a new string and converts to wide chars upon each access. + * + * To avoid the conversion to string, pass Encoding.UTF8_BYTES as the + * "optionalEncoding" argument. This is useful for avoiding conversion when + * the data will just be packaged back up in another FlatBuffer later on. + * + * @param offset + * @param opt_encoding Defaults to UTF16_STRING + */ + __string(offset, opt_encoding) { + offset += this.readInt32(offset); + const length = this.readInt32(offset); + offset += 4; + const utf8bytes = this.bytes_.subarray(offset, offset + length); + if (opt_encoding === Encoding.UTF8_BYTES) return utf8bytes; + else return this.text_decoder_.decode(utf8bytes); + } + /** + * Handle unions that can contain string as its member, if a Table-derived type then initialize it, + * if a string then return a new one + * + * WARNING: strings are immutable in JS so we can't change the string that the user gave us, this + * makes the behaviour of __union_with_string different compared to __union + */ + __union_with_string(o, offset) { + if (typeof o === "string") return this.__string(offset); + return this.__union(o, offset); + } + /** + * Retrieve the relative offset stored at "offset" + */ + __indirect(offset) { + return offset + this.readInt32(offset); + } + /** + * Get the start of data of a vector whose offset is stored at "offset" in this object. + */ + __vector(offset) { + return offset + this.readInt32(offset) + 4; + } + /** + * Get the length of a vector whose offset is stored at "offset" in this object. + */ + __vector_len(offset) { + return this.readInt32(offset + this.readInt32(offset)); + } + __has_identifier(ident) { + if (ident.length != 4) throw new Error("FlatBuffers: file identifier must be length 4"); + for (let i = 0; i < 4; i++) if (ident.charCodeAt(i) != this.readInt8(this.position() + 4 + i)) return false; + return true; + } + /** + * A helper function for generating list for obj api + */ + createScalarList(listAccessor, listLength) { + const ret = []; + for (let i = 0; i < listLength; ++i) { + const val = listAccessor(i); + if (val !== null) ret.push(val); + } + return ret; + } + /** + * A helper function for generating list for obj api + * @param listAccessor function that accepts an index and return data at that index + * @param listLength listLength + * @param res result list + */ + createObjList(listAccessor, listLength) { + const ret = []; + for (let i = 0; i < listLength; ++i) { + const val = listAccessor(i); + if (val !== null) ret.push(val.unpack()); + } + return ret; + } + }; + var AnimationInitialData = class AnimationInitialData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsAnimationInitialData(bb, obj) { + return (obj || new AnimationInitialData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsAnimationInitialData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new AnimationInitialData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + index() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + lowflag() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + highflag() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + priority() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + cellIndex() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + opacity() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + localopacity() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + masklimen() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + positionX() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + positionY() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + positionZ() { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + pivotX() { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + pivotY() { + const offset = this.bb.__offset(this.bb_pos, 28); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + rotationX() { + const offset = this.bb.__offset(this.bb_pos, 30); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + rotationY() { + const offset = this.bb.__offset(this.bb_pos, 32); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + rotationZ() { + const offset = this.bb.__offset(this.bb_pos, 34); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + scaleX() { + const offset = this.bb.__offset(this.bb_pos, 36); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + scaleY() { + const offset = this.bb.__offset(this.bb_pos, 38); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + localscaleX() { + const offset = this.bb.__offset(this.bb_pos, 40); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + localscaleY() { + const offset = this.bb.__offset(this.bb_pos, 42); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + sizeX() { + const offset = this.bb.__offset(this.bb_pos, 44); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + sizeY() { + const offset = this.bb.__offset(this.bb_pos, 46); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvMoveX() { + const offset = this.bb.__offset(this.bb_pos, 48); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvMoveY() { + const offset = this.bb.__offset(this.bb_pos, 50); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvRotation() { + const offset = this.bb.__offset(this.bb_pos, 52); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvScaleX() { + const offset = this.bb.__offset(this.bb_pos, 54); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvScaleY() { + const offset = this.bb.__offset(this.bb_pos, 56); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + boundingRadius() { + const offset = this.bb.__offset(this.bb_pos, 58); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + instanceValueCurKeyframe() { + const offset = this.bb.__offset(this.bb_pos, 60); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + instanceValueStartFrame() { + const offset = this.bb.__offset(this.bb_pos, 62); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + instanceValueEndFrame() { + const offset = this.bb.__offset(this.bb_pos, 64); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + instanceValueLoopNum() { + const offset = this.bb.__offset(this.bb_pos, 66); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + instanceValueSpeed() { + const offset = this.bb.__offset(this.bb_pos, 68); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + instanceValueLoopflag() { + const offset = this.bb.__offset(this.bb_pos, 70); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + effectValueCurKeyframe() { + const offset = this.bb.__offset(this.bb_pos, 72); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + effectValueStartTime() { + const offset = this.bb.__offset(this.bb_pos, 74); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + effectValueSpeed() { + const offset = this.bb.__offset(this.bb_pos, 76); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + effectValueLoopflag() { + const offset = this.bb.__offset(this.bb_pos, 78); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + static startAnimationInitialData(builder) { + builder.startObject(38); + } + static addIndex(builder, index) { + builder.addFieldInt16(0, index, 0); + } + static addLowflag(builder, lowflag) { + builder.addFieldInt32(1, lowflag, 0); + } + static addHighflag(builder, highflag) { + builder.addFieldInt32(2, highflag, 0); + } + static addPriority(builder, priority) { + builder.addFieldInt16(3, priority, 0); + } + static addCellIndex(builder, cellIndex) { + builder.addFieldInt16(4, cellIndex, 0); + } + static addOpacity(builder, opacity) { + builder.addFieldInt16(5, opacity, 0); + } + static addLocalopacity(builder, localopacity) { + builder.addFieldInt16(6, localopacity, 0); + } + static addMasklimen(builder, masklimen) { + builder.addFieldInt16(7, masklimen, 0); + } + static addPositionX(builder, positionX) { + builder.addFieldFloat32(8, positionX, 0); + } + static addPositionY(builder, positionY) { + builder.addFieldFloat32(9, positionY, 0); + } + static addPositionZ(builder, positionZ) { + builder.addFieldFloat32(10, positionZ, 0); + } + static addPivotX(builder, pivotX) { + builder.addFieldFloat32(11, pivotX, 0); + } + static addPivotY(builder, pivotY) { + builder.addFieldFloat32(12, pivotY, 0); + } + static addRotationX(builder, rotationX) { + builder.addFieldFloat32(13, rotationX, 0); + } + static addRotationY(builder, rotationY) { + builder.addFieldFloat32(14, rotationY, 0); + } + static addRotationZ(builder, rotationZ) { + builder.addFieldFloat32(15, rotationZ, 0); + } + static addScaleX(builder, scaleX) { + builder.addFieldFloat32(16, scaleX, 0); + } + static addScaleY(builder, scaleY) { + builder.addFieldFloat32(17, scaleY, 0); + } + static addLocalscaleX(builder, localscaleX) { + builder.addFieldFloat32(18, localscaleX, 0); + } + static addLocalscaleY(builder, localscaleY) { + builder.addFieldFloat32(19, localscaleY, 0); + } + static addSizeX(builder, sizeX) { + builder.addFieldFloat32(20, sizeX, 0); + } + static addSizeY(builder, sizeY) { + builder.addFieldFloat32(21, sizeY, 0); + } + static addUvMoveX(builder, uvMoveX) { + builder.addFieldFloat32(22, uvMoveX, 0); + } + static addUvMoveY(builder, uvMoveY) { + builder.addFieldFloat32(23, uvMoveY, 0); + } + static addUvRotation(builder, uvRotation) { + builder.addFieldFloat32(24, uvRotation, 0); + } + static addUvScaleX(builder, uvScaleX) { + builder.addFieldFloat32(25, uvScaleX, 0); + } + static addUvScaleY(builder, uvScaleY) { + builder.addFieldFloat32(26, uvScaleY, 0); + } + static addBoundingRadius(builder, boundingRadius) { + builder.addFieldFloat32(27, boundingRadius, 0); + } + static addInstanceValueCurKeyframe(builder, instanceValueCurKeyframe) { + builder.addFieldInt32(28, instanceValueCurKeyframe, 0); + } + static addInstanceValueStartFrame(builder, instanceValueStartFrame) { + builder.addFieldInt32(29, instanceValueStartFrame, 0); + } + static addInstanceValueEndFrame(builder, instanceValueEndFrame) { + builder.addFieldInt32(30, instanceValueEndFrame, 0); + } + static addInstanceValueLoopNum(builder, instanceValueLoopNum) { + builder.addFieldInt32(31, instanceValueLoopNum, 0); + } + static addInstanceValueSpeed(builder, instanceValueSpeed) { + builder.addFieldFloat32(32, instanceValueSpeed, 0); + } + static addInstanceValueLoopflag(builder, instanceValueLoopflag) { + builder.addFieldInt32(33, instanceValueLoopflag, 0); + } + static addEffectValueCurKeyframe(builder, effectValueCurKeyframe) { + builder.addFieldInt32(34, effectValueCurKeyframe, 0); + } + static addEffectValueStartTime(builder, effectValueStartTime) { + builder.addFieldInt32(35, effectValueStartTime, 0); + } + static addEffectValueSpeed(builder, effectValueSpeed) { + builder.addFieldFloat32(36, effectValueSpeed, 0); + } + static addEffectValueLoopflag(builder, effectValueLoopflag) { + builder.addFieldInt32(37, effectValueLoopflag, 0); + } + static endAnimationInitialData(builder) { + return builder.endObject(); + } + static createAnimationInitialData(builder, index, lowflag, highflag, priority, cellIndex, opacity, localopacity, masklimen, positionX, positionY, positionZ, pivotX, pivotY, rotationX, rotationY, rotationZ, scaleX, scaleY, localscaleX, localscaleY, sizeX, sizeY, uvMoveX, uvMoveY, uvRotation, uvScaleX, uvScaleY, boundingRadius, instanceValueCurKeyframe, instanceValueStartFrame, instanceValueEndFrame, instanceValueLoopNum, instanceValueSpeed, instanceValueLoopflag, effectValueCurKeyframe, effectValueStartTime, effectValueSpeed, effectValueLoopflag) { + AnimationInitialData.startAnimationInitialData(builder); + AnimationInitialData.addIndex(builder, index); + AnimationInitialData.addLowflag(builder, lowflag); + AnimationInitialData.addHighflag(builder, highflag); + AnimationInitialData.addPriority(builder, priority); + AnimationInitialData.addCellIndex(builder, cellIndex); + AnimationInitialData.addOpacity(builder, opacity); + AnimationInitialData.addLocalopacity(builder, localopacity); + AnimationInitialData.addMasklimen(builder, masklimen); + AnimationInitialData.addPositionX(builder, positionX); + AnimationInitialData.addPositionY(builder, positionY); + AnimationInitialData.addPositionZ(builder, positionZ); + AnimationInitialData.addPivotX(builder, pivotX); + AnimationInitialData.addPivotY(builder, pivotY); + AnimationInitialData.addRotationX(builder, rotationX); + AnimationInitialData.addRotationY(builder, rotationY); + AnimationInitialData.addRotationZ(builder, rotationZ); + AnimationInitialData.addScaleX(builder, scaleX); + AnimationInitialData.addScaleY(builder, scaleY); + AnimationInitialData.addLocalscaleX(builder, localscaleX); + AnimationInitialData.addLocalscaleY(builder, localscaleY); + AnimationInitialData.addSizeX(builder, sizeX); + AnimationInitialData.addSizeY(builder, sizeY); + AnimationInitialData.addUvMoveX(builder, uvMoveX); + AnimationInitialData.addUvMoveY(builder, uvMoveY); + AnimationInitialData.addUvRotation(builder, uvRotation); + AnimationInitialData.addUvScaleX(builder, uvScaleX); + AnimationInitialData.addUvScaleY(builder, uvScaleY); + AnimationInitialData.addBoundingRadius(builder, boundingRadius); + AnimationInitialData.addInstanceValueCurKeyframe(builder, instanceValueCurKeyframe); + AnimationInitialData.addInstanceValueStartFrame(builder, instanceValueStartFrame); + AnimationInitialData.addInstanceValueEndFrame(builder, instanceValueEndFrame); + AnimationInitialData.addInstanceValueLoopNum(builder, instanceValueLoopNum); + AnimationInitialData.addInstanceValueSpeed(builder, instanceValueSpeed); + AnimationInitialData.addInstanceValueLoopflag(builder, instanceValueLoopflag); + AnimationInitialData.addEffectValueCurKeyframe(builder, effectValueCurKeyframe); + AnimationInitialData.addEffectValueStartTime(builder, effectValueStartTime); + AnimationInitialData.addEffectValueSpeed(builder, effectValueSpeed); + AnimationInitialData.addEffectValueLoopflag(builder, effectValueLoopflag); + return AnimationInitialData.endAnimationInitialData(builder); + } + }; + var partState = class partState { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAspartState(bb, obj) { + return (obj || new partState()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAspartState(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new partState()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + index() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + flag1() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + flag2() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + data(index) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readUint32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + dataLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + dataArray() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + static startpartState(builder) { + builder.startObject(4); + } + static addIndex(builder, index) { + builder.addFieldInt16(0, index, 0); + } + static addFlag1(builder, flag1) { + builder.addFieldInt32(1, flag1, 0); + } + static addFlag2(builder, flag2) { + builder.addFieldInt32(2, flag2, 0); + } + static addData(builder, dataOffset) { + builder.addFieldOffset(3, dataOffset, 0); + } + static createDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addInt32(data[i]); + return builder.endVector(); + } + static startDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endpartState(builder) { + return builder.endObject(); + } + static createpartState(builder, index, flag1, flag2, dataOffset) { + partState.startpartState(builder); + partState.addIndex(builder, index); + partState.addFlag1(builder, flag1); + partState.addFlag2(builder, flag2); + partState.addData(builder, dataOffset); + return partState.endpartState(builder); + } + }; + var frameDataIndex = class frameDataIndex { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsframeDataIndex(bb, obj) { + return (obj || new frameDataIndex()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsframeDataIndex(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new frameDataIndex()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + states(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? (obj || new partState()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + statesLength() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startframeDataIndex(builder) { + builder.startObject(1); + } + static addStates(builder, statesOffset) { + builder.addFieldOffset(0, statesOffset, 0); + } + static createStatesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startStatesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endframeDataIndex(builder) { + return builder.endObject(); + } + static createframeDataIndex(builder, statesOffset) { + frameDataIndex.startframeDataIndex(builder); + frameDataIndex.addStates(builder, statesOffset); + return frameDataIndex.endframeDataIndex(builder); + } + }; + var labelDataItem = class labelDataItem { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAslabelDataItem(bb, obj) { + return (obj || new labelDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAslabelDataItem(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new labelDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + label(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + frameIndex() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + static startlabelDataItem(builder) { + builder.startObject(2); + } + static addLabel(builder, labelOffset) { + builder.addFieldOffset(0, labelOffset, 0); + } + static addFrameIndex(builder, frameIndex) { + builder.addFieldInt16(1, frameIndex, 0); + } + static endlabelDataItem(builder) { + return builder.endObject(); + } + static createlabelDataItem(builder, labelOffset, frameIndex) { + labelDataItem.startlabelDataItem(builder); + labelDataItem.addLabel(builder, labelOffset); + labelDataItem.addFrameIndex(builder, frameIndex); + return labelDataItem.endlabelDataItem(builder); + } + }; + var meshDataIndices = class meshDataIndices { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsmeshDataIndices(bb, obj) { + return (obj || new meshDataIndices()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsmeshDataIndices(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new meshDataIndices()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + indices(index) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + indicesLength() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + indicesArray() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + static startmeshDataIndices(builder) { + builder.startObject(1); + } + static addIndices(builder, indicesOffset) { + builder.addFieldOffset(0, indicesOffset, 0); + } + static createIndicesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addFloat32(data[i]); + return builder.endVector(); + } + static startIndicesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endmeshDataIndices(builder) { + return builder.endObject(); + } + static createmeshDataIndices(builder, indicesOffset) { + meshDataIndices.startmeshDataIndices(builder); + meshDataIndices.addIndices(builder, indicesOffset); + return meshDataIndices.endmeshDataIndices(builder); + } + }; + var meshDataUV = class meshDataUV { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsmeshDataUV(bb, obj) { + return (obj || new meshDataUV()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsmeshDataUV(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new meshDataUV()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + uv(index) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + uvLength() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + uvArray() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + static startmeshDataUV(builder) { + builder.startObject(1); + } + static addUv(builder, uvOffset) { + builder.addFieldOffset(0, uvOffset, 0); + } + static createUvVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addFloat32(data[i]); + return builder.endVector(); + } + static startUvVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endmeshDataUV(builder) { + return builder.endObject(); + } + static createmeshDataUV(builder, uvOffset) { + meshDataUV.startmeshDataUV(builder); + meshDataUV.addUv(builder, uvOffset); + return meshDataUV.endmeshDataUV(builder); + } + }; + var userDataItem = class userDataItem { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsuserDataItem(bb, obj) { + return (obj || new userDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsuserDataItem(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new userDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + flags() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + arrayIndex() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + dataType(index) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; + } + dataTypeLength() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + dataTypeArray() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + data(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__union(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; + } + dataLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startuserDataItem(builder) { + builder.startObject(4); + } + static addFlags(builder, flags) { + builder.addFieldInt16(0, flags, 0); + } + static addArrayIndex(builder, arrayIndex) { + builder.addFieldInt16(1, arrayIndex, 0); + } + static addDataType(builder, dataTypeOffset) { + builder.addFieldOffset(2, dataTypeOffset, 0); + } + static createDataTypeVector(builder, data) { + builder.startVector(1, data.length, 1); + for (let i = data.length - 1; i >= 0; i--) builder.addInt8(data[i]); + return builder.endVector(); + } + static startDataTypeVector(builder, numElems) { + builder.startVector(1, numElems, 1); + } + static addData(builder, dataOffset) { + builder.addFieldOffset(3, dataOffset, 0); + } + static createDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static enduserDataItem(builder) { + return builder.endObject(); + } + static createuserDataItem(builder, flags, arrayIndex, dataTypeOffset, dataOffset) { + userDataItem.startuserDataItem(builder); + userDataItem.addFlags(builder, flags); + userDataItem.addArrayIndex(builder, arrayIndex); + userDataItem.addDataType(builder, dataTypeOffset); + userDataItem.addData(builder, dataOffset); + return userDataItem.enduserDataItem(builder); + } + }; + var userDataPerFrame = class userDataPerFrame { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsuserDataPerFrame(bb, obj) { + return (obj || new userDataPerFrame()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsuserDataPerFrame(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new userDataPerFrame()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + frameIndex() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + data(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new userDataItem()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + dataLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startuserDataPerFrame(builder) { + builder.startObject(2); + } + static addFrameIndex(builder, frameIndex) { + builder.addFieldInt16(0, frameIndex, 0); + } + static addData(builder, dataOffset) { + builder.addFieldOffset(1, dataOffset, 0); + } + static createDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static enduserDataPerFrame(builder) { + return builder.endObject(); + } + static createuserDataPerFrame(builder, frameIndex, dataOffset) { + userDataPerFrame.startuserDataPerFrame(builder); + userDataPerFrame.addFrameIndex(builder, frameIndex); + userDataPerFrame.addData(builder, dataOffset); + return userDataPerFrame.enduserDataPerFrame(builder); + } + }; + var AnimationData = class AnimationData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsAnimationData(bb, obj) { + return (obj || new AnimationData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsAnimationData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new AnimationData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + defaultData(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new AnimationInitialData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + defaultDataLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + frameData(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? (obj || new frameDataIndex()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + frameDataLength() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + userData(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? (obj || new userDataPerFrame()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + userDataLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + labelData(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? (obj || new labelDataItem()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + labelDataLength() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + meshsDataUv(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? (obj || new meshDataUV()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + meshsDataUvLength() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + meshsDataIndices(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? (obj || new meshDataIndices()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + meshsDataIndicesLength() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + startFrames() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + endFrames() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + totalFrames() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + fps() { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + labelNum() { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + canvasSizeW() { + const offset = this.bb.__offset(this.bb_pos, 28); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + canvasSizeH() { + const offset = this.bb.__offset(this.bb_pos, 30); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + canvasPvotX() { + const offset = this.bb.__offset(this.bb_pos, 32); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + canvasPvotY() { + const offset = this.bb.__offset(this.bb_pos, 34); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + static startAnimationData(builder) { + builder.startObject(16); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addDefaultData(builder, defaultDataOffset) { + builder.addFieldOffset(1, defaultDataOffset, 0); + } + static createDefaultDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startDefaultDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addFrameData(builder, frameDataOffset) { + builder.addFieldOffset(2, frameDataOffset, 0); + } + static createFrameDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startFrameDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addUserData(builder, userDataOffset) { + builder.addFieldOffset(3, userDataOffset, 0); + } + static createUserDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startUserDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addLabelData(builder, labelDataOffset) { + builder.addFieldOffset(4, labelDataOffset, 0); + } + static createLabelDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startLabelDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addMeshsDataUv(builder, meshsDataUvOffset) { + builder.addFieldOffset(5, meshsDataUvOffset, 0); + } + static createMeshsDataUvVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startMeshsDataUvVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addMeshsDataIndices(builder, meshsDataIndicesOffset) { + builder.addFieldOffset(6, meshsDataIndicesOffset, 0); + } + static createMeshsDataIndicesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startMeshsDataIndicesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addStartFrames(builder, startFrames) { + builder.addFieldInt16(7, startFrames, 0); + } + static addEndFrames(builder, endFrames) { + builder.addFieldInt16(8, endFrames, 0); + } + static addTotalFrames(builder, totalFrames) { + builder.addFieldInt16(9, totalFrames, 0); + } + static addFps(builder, fps) { + builder.addFieldInt16(10, fps, 0); + } + static addLabelNum(builder, labelNum) { + builder.addFieldInt16(11, labelNum, 0); + } + static addCanvasSizeW(builder, canvasSizeW) { + builder.addFieldInt16(12, canvasSizeW, 0); + } + static addCanvasSizeH(builder, canvasSizeH) { + builder.addFieldInt16(13, canvasSizeH, 0); + } + static addCanvasPvotX(builder, canvasPvotX) { + builder.addFieldFloat32(14, canvasPvotX, 0); + } + static addCanvasPvotY(builder, canvasPvotY) { + builder.addFieldFloat32(15, canvasPvotY, 0); + } + static endAnimationData(builder) { + return builder.endObject(); + } + static createAnimationData(builder, nameOffset, defaultDataOffset, frameDataOffset, userDataOffset, labelDataOffset, meshsDataUvOffset, meshsDataIndicesOffset, startFrames, endFrames, totalFrames, fps, labelNum, canvasSizeW, canvasSizeH, canvasPvotX, canvasPvotY) { + AnimationData.startAnimationData(builder); + AnimationData.addName(builder, nameOffset); + AnimationData.addDefaultData(builder, defaultDataOffset); + AnimationData.addFrameData(builder, frameDataOffset); + AnimationData.addUserData(builder, userDataOffset); + AnimationData.addLabelData(builder, labelDataOffset); + AnimationData.addMeshsDataUv(builder, meshsDataUvOffset); + AnimationData.addMeshsDataIndices(builder, meshsDataIndicesOffset); + AnimationData.addStartFrames(builder, startFrames); + AnimationData.addEndFrames(builder, endFrames); + AnimationData.addTotalFrames(builder, totalFrames); + AnimationData.addFps(builder, fps); + AnimationData.addLabelNum(builder, labelNum); + AnimationData.addCanvasSizeW(builder, canvasSizeW); + AnimationData.addCanvasSizeH(builder, canvasSizeH); + AnimationData.addCanvasPvotX(builder, canvasPvotX); + AnimationData.addCanvasPvotY(builder, canvasPvotY); + return AnimationData.endAnimationData(builder); + } + }; + let SsPartType = /* @__PURE__ */ function(SsPartType) { + SsPartType[SsPartType["Invalid"] = -1] = "Invalid"; + SsPartType[SsPartType["Nulltype"] = 0] = "Nulltype"; + SsPartType[SsPartType["Normal"] = 1] = "Normal"; + SsPartType[SsPartType["Text"] = 2] = "Text"; + SsPartType[SsPartType["Instance"] = 3] = "Instance"; + SsPartType[SsPartType["Armature"] = 4] = "Armature"; + SsPartType[SsPartType["Effect"] = 5] = "Effect"; + SsPartType[SsPartType["Mesh"] = 6] = "Mesh"; + SsPartType[SsPartType["Movenode"] = 7] = "Movenode"; + SsPartType[SsPartType["Constraint"] = 8] = "Constraint"; + SsPartType[SsPartType["Mask"] = 9] = "Mask"; + SsPartType[SsPartType["Joint"] = 10] = "Joint"; + SsPartType[SsPartType["Bonepoint"] = 11] = "Bonepoint"; + return SsPartType; + }({}); + var PartData = class PartData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsPartData(bb, obj) { + return (obj || new PartData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsPartData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new PartData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + index() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + parentIndex() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + type() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt8(this.bb_pos + offset) : SsPartType.Nulltype; + } + boundsType() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + alphaBlendType() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + refname(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + effectfilename(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + colorLabel(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + maskInfluence() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + static startPartData(builder) { + builder.startObject(10); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addIndex(builder, index) { + builder.addFieldInt16(1, index, 0); + } + static addParentIndex(builder, parentIndex) { + builder.addFieldInt16(2, parentIndex, 0); + } + static addType(builder, type) { + builder.addFieldInt8(3, type, SsPartType.Nulltype); + } + static addBoundsType(builder, boundsType) { + builder.addFieldInt16(4, boundsType, 0); + } + static addAlphaBlendType(builder, alphaBlendType) { + builder.addFieldInt16(5, alphaBlendType, 0); + } + static addRefname(builder, refnameOffset) { + builder.addFieldOffset(6, refnameOffset, 0); + } + static addEffectfilename(builder, effectfilenameOffset) { + builder.addFieldOffset(7, effectfilenameOffset, 0); + } + static addColorLabel(builder, colorLabelOffset) { + builder.addFieldOffset(8, colorLabelOffset, 0); + } + static addMaskInfluence(builder, maskInfluence) { + builder.addFieldInt16(9, maskInfluence, 0); + } + static endPartData(builder) { + return builder.endObject(); + } + static createPartData(builder, nameOffset, index, parentIndex, type, boundsType, alphaBlendType, refnameOffset, effectfilenameOffset, colorLabelOffset, maskInfluence) { + PartData.startPartData(builder); + PartData.addName(builder, nameOffset); + PartData.addIndex(builder, index); + PartData.addParentIndex(builder, parentIndex); + PartData.addType(builder, type); + PartData.addBoundsType(builder, boundsType); + PartData.addAlphaBlendType(builder, alphaBlendType); + PartData.addRefname(builder, refnameOffset); + PartData.addEffectfilename(builder, effectfilenameOffset); + PartData.addColorLabel(builder, colorLabelOffset); + PartData.addMaskInfluence(builder, maskInfluence); + return PartData.endPartData(builder); + } + }; + var AnimePackData = class AnimePackData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsAnimePackData(bb, obj) { + return (obj || new AnimePackData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsAnimePackData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new AnimePackData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + parts(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new PartData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + partsLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + animations(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? (obj || new AnimationData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + animationsLength() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startAnimePackData(builder) { + builder.startObject(3); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addParts(builder, partsOffset) { + builder.addFieldOffset(1, partsOffset, 0); + } + static createPartsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startPartsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addAnimations(builder, animationsOffset) { + builder.addFieldOffset(2, animationsOffset, 0); + } + static createAnimationsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startAnimationsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endAnimePackData(builder) { + return builder.endObject(); + } + static createAnimePackData(builder, nameOffset, partsOffset, animationsOffset) { + AnimePackData.startAnimePackData(builder); + AnimePackData.addName(builder, nameOffset); + AnimePackData.addParts(builder, partsOffset); + AnimePackData.addAnimations(builder, animationsOffset); + return AnimePackData.endAnimePackData(builder); + } + }; + var CellMap = class CellMap { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsCellMap(bb, obj) { + return (obj || new CellMap()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsCellMap(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new CellMap()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + imagePath(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + index() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + wrapmode() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + filtermode() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + static startCellMap(builder) { + builder.startObject(5); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addImagePath(builder, imagePathOffset) { + builder.addFieldOffset(1, imagePathOffset, 0); + } + static addIndex(builder, index) { + builder.addFieldInt16(2, index, 0); + } + static addWrapmode(builder, wrapmode) { + builder.addFieldInt16(3, wrapmode, 0); + } + static addFiltermode(builder, filtermode) { + builder.addFieldInt16(4, filtermode, 0); + } + static endCellMap(builder) { + return builder.endObject(); + } + static createCellMap(builder, nameOffset, imagePathOffset, index, wrapmode, filtermode) { + CellMap.startCellMap(builder); + CellMap.addName(builder, nameOffset); + CellMap.addImagePath(builder, imagePathOffset); + CellMap.addIndex(builder, index); + CellMap.addWrapmode(builder, wrapmode); + CellMap.addFiltermode(builder, filtermode); + return CellMap.endCellMap(builder); + } + }; + var Cell = class Cell { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsCell(bb, obj) { + return (obj || new Cell()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsCell(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new Cell()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + cellMap(obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new CellMap()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + indexInCellMap() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + x() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + y() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + width() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + height() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + pivotX() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + pivotY() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + u1() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + v1() { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + u2() { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + v2() { + const offset = this.bb.__offset(this.bb_pos, 28); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + static startCell(builder) { + builder.startObject(13); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addCellMap(builder, cellMapOffset) { + builder.addFieldOffset(1, cellMapOffset, 0); + } + static addIndexInCellMap(builder, indexInCellMap) { + builder.addFieldInt16(2, indexInCellMap, 0); + } + static addX(builder, x) { + builder.addFieldInt16(3, x, 0); + } + static addY(builder, y) { + builder.addFieldInt16(4, y, 0); + } + static addWidth(builder, width) { + builder.addFieldInt16(5, width, 0); + } + static addHeight(builder, height) { + builder.addFieldInt16(6, height, 0); + } + static addPivotX(builder, pivotX) { + builder.addFieldFloat32(7, pivotX, 0); + } + static addPivotY(builder, pivotY) { + builder.addFieldFloat32(8, pivotY, 0); + } + static addU1(builder, u1) { + builder.addFieldFloat32(9, u1, 0); + } + static addV1(builder, v1) { + builder.addFieldFloat32(10, v1, 0); + } + static addU2(builder, u2) { + builder.addFieldFloat32(11, u2, 0); + } + static addV2(builder, v2) { + builder.addFieldFloat32(12, v2, 0); + } + static endCell(builder) { + return builder.endObject(); + } + }; + var EffectNode = class EffectNode { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsEffectNode(bb, obj) { + return (obj || new EffectNode()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsEffectNode(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new EffectNode()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + arrayIndex() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + parentIndex() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + type() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + cellIndex() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + blendType() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + numBehavior() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + behaviorType(index) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; + } + behaviorTypeLength() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + behaviorTypeArray() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + behavior(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__union(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; + } + behaviorLength() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startEffectNode(builder) { + builder.startObject(8); + } + static addArrayIndex(builder, arrayIndex) { + builder.addFieldInt16(0, arrayIndex, 0); + } + static addParentIndex(builder, parentIndex) { + builder.addFieldInt16(1, parentIndex, 0); + } + static addType(builder, type) { + builder.addFieldInt16(2, type, 0); + } + static addCellIndex(builder, cellIndex) { + builder.addFieldInt16(3, cellIndex, 0); + } + static addBlendType(builder, blendType) { + builder.addFieldInt16(4, blendType, 0); + } + static addNumBehavior(builder, numBehavior) { + builder.addFieldInt16(5, numBehavior, 0); + } + static addBehaviorType(builder, behaviorTypeOffset) { + builder.addFieldOffset(6, behaviorTypeOffset, 0); + } + static createBehaviorTypeVector(builder, data) { + builder.startVector(1, data.length, 1); + for (let i = data.length - 1; i >= 0; i--) builder.addInt8(data[i]); + return builder.endVector(); + } + static startBehaviorTypeVector(builder, numElems) { + builder.startVector(1, numElems, 1); + } + static addBehavior(builder, behaviorOffset) { + builder.addFieldOffset(7, behaviorOffset, 0); + } + static createBehaviorVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startBehaviorVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endEffectNode(builder) { + return builder.endObject(); + } + static createEffectNode(builder, arrayIndex, parentIndex, type, cellIndex, blendType, numBehavior, behaviorTypeOffset, behaviorOffset) { + EffectNode.startEffectNode(builder); + EffectNode.addArrayIndex(builder, arrayIndex); + EffectNode.addParentIndex(builder, parentIndex); + EffectNode.addType(builder, type); + EffectNode.addCellIndex(builder, cellIndex); + EffectNode.addBlendType(builder, blendType); + EffectNode.addNumBehavior(builder, numBehavior); + EffectNode.addBehaviorType(builder, behaviorTypeOffset); + EffectNode.addBehavior(builder, behaviorOffset); + return EffectNode.endEffectNode(builder); + } + }; + var EffectFile = class EffectFile { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsEffectFile(bb, obj) { + return (obj || new EffectFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsEffectFile(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new EffectFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + fps() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + isLockRandSeed() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + lockRandSeed() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + layoutScaleX() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + layoutScaleY() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + numNodeList() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + effectNode(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? (obj || new EffectNode()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + effectNodeLength() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startEffectFile(builder) { + builder.startObject(8); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addFps(builder, fps) { + builder.addFieldInt16(1, fps, 0); + } + static addIsLockRandSeed(builder, isLockRandSeed) { + builder.addFieldInt16(2, isLockRandSeed, 0); + } + static addLockRandSeed(builder, lockRandSeed) { + builder.addFieldInt16(3, lockRandSeed, 0); + } + static addLayoutScaleX(builder, layoutScaleX) { + builder.addFieldInt16(4, layoutScaleX, 0); + } + static addLayoutScaleY(builder, layoutScaleY) { + builder.addFieldInt16(5, layoutScaleY, 0); + } + static addNumNodeList(builder, numNodeList) { + builder.addFieldInt16(6, numNodeList, 0); + } + static addEffectNode(builder, effectNodeOffset) { + builder.addFieldOffset(7, effectNodeOffset, 0); + } + static createEffectNodeVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startEffectNodeVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endEffectFile(builder) { + return builder.endObject(); + } + static createEffectFile(builder, nameOffset, fps, isLockRandSeed, lockRandSeed, layoutScaleX, layoutScaleY, numNodeList, effectNodeOffset) { + EffectFile.startEffectFile(builder); + EffectFile.addName(builder, nameOffset); + EffectFile.addFps(builder, fps); + EffectFile.addIsLockRandSeed(builder, isLockRandSeed); + EffectFile.addLockRandSeed(builder, lockRandSeed); + EffectFile.addLayoutScaleX(builder, layoutScaleX); + EffectFile.addLayoutScaleY(builder, layoutScaleY); + EffectFile.addNumNodeList(builder, numNodeList); + EffectFile.addEffectNode(builder, effectNodeOffset); + return EffectFile.endEffectFile(builder); + } + }; + let PART_FLAG = /* @__PURE__ */ function(PART_FLAG) { + PART_FLAG[PART_FLAG["INVISIBLE"] = 1] = "INVISIBLE"; + PART_FLAG[PART_FLAG["FLIP_H"] = 2] = "FLIP_H"; + PART_FLAG[PART_FLAG["FLIP_V"] = 4] = "FLIP_V"; + PART_FLAG[PART_FLAG["CELL_INDEX"] = 8] = "CELL_INDEX"; + PART_FLAG[PART_FLAG["POSITION_X"] = 16] = "POSITION_X"; + PART_FLAG[PART_FLAG["POSITION_Y"] = 32] = "POSITION_Y"; + PART_FLAG[PART_FLAG["POSITION_Z"] = 64] = "POSITION_Z"; + PART_FLAG[PART_FLAG["PIVOT_X"] = 128] = "PIVOT_X"; + PART_FLAG[PART_FLAG["PIVOT_Y"] = 256] = "PIVOT_Y"; + PART_FLAG[PART_FLAG["ROTATIONX"] = 512] = "ROTATIONX"; + PART_FLAG[PART_FLAG["ROTATIONY"] = 1024] = "ROTATIONY"; + PART_FLAG[PART_FLAG["ROTATIONZ"] = 2048] = "ROTATIONZ"; + PART_FLAG[PART_FLAG["SCALE_X"] = 4096] = "SCALE_X"; + PART_FLAG[PART_FLAG["SCALE_Y"] = 8192] = "SCALE_Y"; + PART_FLAG[PART_FLAG["LOCALSCALE_X"] = 16384] = "LOCALSCALE_X"; + PART_FLAG[PART_FLAG["LOCALSCALE_Y"] = 32768] = "LOCALSCALE_Y"; + PART_FLAG[PART_FLAG["OPACITY"] = 65536] = "OPACITY"; + PART_FLAG[PART_FLAG["LOCALOPACITY"] = 131072] = "LOCALOPACITY"; + PART_FLAG[PART_FLAG["PARTS_COLOR"] = 262144] = "PARTS_COLOR"; + PART_FLAG[PART_FLAG["VERTEX_TRANSFORM"] = 524288] = "VERTEX_TRANSFORM"; + PART_FLAG[PART_FLAG["SIZE_X"] = 1048576] = "SIZE_X"; + PART_FLAG[PART_FLAG["SIZE_Y"] = 2097152] = "SIZE_Y"; + PART_FLAG[PART_FLAG["U_MOVE"] = 4194304] = "U_MOVE"; + PART_FLAG[PART_FLAG["V_MOVE"] = 8388608] = "V_MOVE"; + PART_FLAG[PART_FLAG["UV_ROTATION"] = 16777216] = "UV_ROTATION"; + PART_FLAG[PART_FLAG["U_SCALE"] = 33554432] = "U_SCALE"; + PART_FLAG[PART_FLAG["V_SCALE"] = 67108864] = "V_SCALE"; + PART_FLAG[PART_FLAG["BOUNDINGRADIUS"] = 134217728] = "BOUNDINGRADIUS"; + PART_FLAG[PART_FLAG["MASK"] = 268435456] = "MASK"; + PART_FLAG[PART_FLAG["PRIORITY"] = 536870912] = "PRIORITY"; + PART_FLAG[PART_FLAG["INSTANCE_KEYFRAME"] = 1073741824] = "INSTANCE_KEYFRAME"; + PART_FLAG[PART_FLAG["EFFECT_KEYFRAME"] = 2147483648] = "EFFECT_KEYFRAME"; + return PART_FLAG; + }({}); + let PART_FLAG2 = /* @__PURE__ */ function(PART_FLAG2) { + PART_FLAG2[PART_FLAG2["MESHDATA"] = 1] = "MESHDATA"; + return PART_FLAG2; + }({}); + var ProjectData = class ProjectData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsProjectData(bb, obj) { + return (obj || new ProjectData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsProjectData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new ProjectData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static bufferHasIdentifier(bb) { + return bb.__has_identifier("SSFB"); + } + dataId() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + version() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + flags() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + imageBaseDir(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + cells(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? (obj || new Cell()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + cellsLength() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + animePacks(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? (obj || new AnimePackData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + animePacksLength() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + effectFileList(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? (obj || new EffectFile()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + effectFileListLength() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + numCells() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + numAnimePacks() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + numEffectFileList() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + static startProjectData(builder) { + builder.startObject(10); + } + static addDataId(builder, dataId) { + builder.addFieldInt32(0, dataId, 0); + } + static addVersion(builder, version) { + builder.addFieldInt32(1, version, 0); + } + static addFlags(builder, flags) { + builder.addFieldInt32(2, flags, 0); + } + static addImageBaseDir(builder, imageBaseDirOffset) { + builder.addFieldOffset(3, imageBaseDirOffset, 0); + } + static addCells(builder, cellsOffset) { + builder.addFieldOffset(4, cellsOffset, 0); + } + static createCellsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startCellsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addAnimePacks(builder, animePacksOffset) { + builder.addFieldOffset(5, animePacksOffset, 0); + } + static createAnimePacksVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startAnimePacksVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addEffectFileList(builder, effectFileListOffset) { + builder.addFieldOffset(6, effectFileListOffset, 0); + } + static createEffectFileListVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startEffectFileListVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addNumCells(builder, numCells) { + builder.addFieldInt16(7, numCells, 0); + } + static addNumAnimePacks(builder, numAnimePacks) { + builder.addFieldInt16(8, numAnimePacks, 0); + } + static addNumEffectFileList(builder, numEffectFileList) { + builder.addFieldInt16(9, numEffectFileList, 0); + } + static endProjectData(builder) { + return builder.endObject(); + } + static finishProjectDataBuffer(builder, offset) { + builder.finish(offset, "SSFB"); + } + static finishSizePrefixedProjectDataBuffer(builder, offset) { + builder.finish(offset, "SSFB", true); + } + static createProjectData(builder, dataId, version, flags, imageBaseDirOffset, cellsOffset, animePacksOffset, effectFileListOffset, numCells, numAnimePacks, numEffectFileList) { + ProjectData.startProjectData(builder); + ProjectData.addDataId(builder, dataId); + ProjectData.addVersion(builder, version); + ProjectData.addFlags(builder, flags); + ProjectData.addImageBaseDir(builder, imageBaseDirOffset); + ProjectData.addCells(builder, cellsOffset); + ProjectData.addAnimePacks(builder, animePacksOffset); + ProjectData.addEffectFileList(builder, effectFileListOffset); + ProjectData.addNumCells(builder, numCells); + ProjectData.addNumAnimePacks(builder, numAnimePacks); + ProjectData.addNumEffectFileList(builder, numEffectFileList); + return ProjectData.endProjectData(builder); + } + }; + var userDataInteger = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + integer() { + return this.bb.readInt32(this.bb_pos); + } + static sizeOf() { + return 4; + } + static createuserDataInteger(builder, integer) { + builder.prep(4, 4); + builder.writeInt32(integer); + return builder.offset(); + } + }; + var userDataPoint = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + x() { + return this.bb.readInt32(this.bb_pos); + } + y() { + return this.bb.readInt32(this.bb_pos + 4); + } + static sizeOf() { + return 8; + } + static createuserDataPoint(builder, x, y) { + builder.prep(4, 8); + builder.writeInt32(y); + builder.writeInt32(x); + return builder.offset(); + } + }; + var userDataRect = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + x() { + return this.bb.readInt32(this.bb_pos); + } + y() { + return this.bb.readInt32(this.bb_pos + 4); + } + w() { + return this.bb.readInt32(this.bb_pos + 8); + } + h() { + return this.bb.readInt32(this.bb_pos + 12); + } + static sizeOf() { + return 16; + } + static createuserDataRect(builder, x, y, w, h) { + builder.prep(4, 16); + builder.writeInt32(h); + builder.writeInt32(w); + builder.writeInt32(y); + builder.writeInt32(x); + return builder.offset(); + } + }; + var userDataString = class userDataString { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsuserDataString(bb, obj) { + return (obj || new userDataString()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsuserDataString(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new userDataString()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + length() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + data(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + static startuserDataString(builder) { + builder.startObject(2); + } + static addLength(builder, length) { + builder.addFieldInt32(0, length, 0); + } + static addData(builder, dataOffset) { + builder.addFieldOffset(1, dataOffset, 0); + } + static enduserDataString(builder) { + return builder.endObject(); + } + static createuserDataString(builder, length, dataOffset) { + userDataString.startuserDataString(builder); + userDataString.addLength(builder, length); + userDataString.addData(builder, dataOffset); + return userDataString.enduserDataString(builder); + } + }; + var Utils$1 = class { + static getProjectData(bytes) { + const buf = new ByteBuffer(bytes); + return ProjectData.getRootAsProjectData(buf); + } + }; + var Utils = class { + static getProjectData(bytes) { + return Utils$1.getProjectData(bytes); + } + }; + var Player = class { + get fbObj() { + return this._fbObj; + } + get animePackName() { + return this.curAnimePackName; + } + get animeName() { + return this.curAnimeName; + } + get animePackIdx() { + return this._animePackIdx; + } + get animePackData() { + return this.curAnimePackData; + } + get animationData() { + return this.curAnimation; + } + get parentIndex() { + return this._parentIndex; + } + get prio2index() { + return this._prio2index; + } + constructor(ssfbData, animePackName = null, animeName = null) { + this.curAnimePackName = null; + this.curAnimeName = null; + this.curAnimation = null; + this.curAnimePackData = null; + this._animePackIdx = -1; + this._parentIndex = []; + this._prio2index = []; + this.userData = []; + this.frameDataCache = null; + this.currentCachedFrameNumber = -1; + this.defaultFrameMap = []; + this._uint32 = new Uint32Array(1); + this._float32 = new Float32Array(this._uint32.buffer); + if (Object.prototype.hasOwnProperty.call(ssfbData, "bb")) this._fbObj = ssfbData; + else this._fbObj = Utils.getProjectData(ssfbData); + if (animePackName !== null && animeName !== null) this.Setup(animePackName, animeName); + } + /** + * Setup + * @param {string} animePackName - The name of animePack(SSAE). + * @param {string} animeName - The name of animation. + */ + Setup(animePackName, animeName) { + this.clearCaches(); + const animePacksLength = this._fbObj.animePacksLength(); + let found = false; + for (let i = 0; i < animePacksLength; i++) if (this._fbObj.animePacks(i).name() === animePackName) { + let j; + const animationsLength = this._fbObj.animePacks(i).animationsLength(); + for (j = 0; j < animationsLength; j++) if (this._fbObj.animePacks(i).animations(j).name() === animeName) { + this.curAnimePackName = animePackName; + this.curAnimeName = animeName; + this.curAnimePackData = this._fbObj.animePacks(i); + this.curAnimation = this.curAnimePackData.animations(j); + found = true; + break; + } + if (!found) continue; + const defaultDataLength = this.curAnimation.defaultDataLength(); + for (let j = 0; j < defaultDataLength; j++) { + const curDefaultData = this.curAnimation.defaultData(j); + this.defaultFrameMap[curDefaultData.index()] = curDefaultData; + } + this._animePackIdx = i; + const partsLength = this.curAnimePackData.partsLength(); + this._parentIndex = new Array(partsLength); + for (j = 0; j < partsLength; j++) { + const index = this.curAnimePackData.parts(j).index(); + this._parentIndex[index] = this._fbObj.animePacks(i).parts(j).parentIndex(); + } + } + if (!found) throw Error("not found animePackName: " + animePackName + " animeName: " + animeName); + } + clearCaches() { + this._prio2index = []; + this.userData = []; + this.frameDataCache = null; + this.currentCachedFrameNumber = -1; + this.defaultFrameMap = []; + } + /** + * ユーザーデータコールバックの設定 + * @param fn + * @constructor + * + * ユーザーデータのフォーマット + * data = [[d0,d1,...,d10],[da0,da1,...,da10],...]) + * data.length : 当該フレームでユーザーデータの存在するパーツ(レイヤー)数 + * d0 : パーツ(レイヤー)番号 + * d1 : 有効データビット(&1:int, &2:rect(int*4), &4:pos(int*2), &8:string) + * d2 : int(int) + * d3 : rect0(int) + * d4 : rect1(int) + * d5 : rect2(int) + * d6 : rect3(int) + * d7 : pos0(int) + * d8 : pos1(int) + * d9 : string.length(int) + * d10: string(string) + * + */ + /** + * ユーザーデータの存在チェック + * @param {number} frameNumber - フレーム番号 + * @return {boolean} - 存在するかどうか + */ + HaveUserData(frameNumber) { + if (this.userData[frameNumber] === null) return false; + if (this.userData[frameNumber] !== void 0) return true; + for (let k = 0; k < this.curAnimation.userDataLength(); k++) if (frameNumber === this.curAnimation.userData(k).frameIndex()) { + this.userData[frameNumber] = this.curAnimation.userData(k); + return true; + } + this.userData[frameNumber] = null; + return false; + } + /** + * ユーザーデータの取得 + * @param {number} frameNumber - フレーム番号 + * @return {array} - ユーザーデータ + */ + GetUserData(frameNumber) { + if (this.HaveUserData(frameNumber) === false) return; + const framedata = this.userData[frameNumber]; + const layers = framedata.dataLength(); + let id = 0; + let data = []; + for (let i = 0; i < layers; i++) { + const bit = framedata.data(i).flags(); + const partsID = framedata.data(i).arrayIndex(); + let d_int = null; + let d_rect_x = null; + let d_rect_y = null; + let d_rect_w = null; + let d_rect_h = null; + let d_pos_x = null; + let d_pos_y = null; + let d_string_length = null; + let d_string = null; + if (bit & 1) { + d_int = framedata.data(i).data(id, new userDataInteger()).integer(); + id++; + } + if (bit & 2) { + d_rect_x = framedata.data(i).data(id, new userDataRect()).x(); + d_rect_y = framedata.data(i).data(id, new userDataRect()).y(); + d_rect_w = framedata.data(i).data(id, new userDataRect()).w(); + d_rect_h = framedata.data(i).data(id, new userDataRect()).h(); + id++; + } + if (bit & 4) { + d_pos_x = framedata.data(i).data(id, new userDataPoint()).x(); + d_pos_y = framedata.data(i).data(id, new userDataPoint()).y(); + id++; + } + if (bit & 8) { + d_string_length = framedata.data(i).data(id, new userDataString()).length(); + d_string = framedata.data(i).data(id, new userDataString()).data(); + id++; + } + data.push([ + partsID, + bit, + d_int, + d_rect_x, + d_rect_y, + d_rect_w, + d_rect_h, + d_pos_x, + d_pos_y, + d_string_length, + d_string + ]); + } + return data; + } + /** + * int型からfloat型に変換する + * @return {floatView[0]} - float型に変換したデータ + */ + I2F(i) { + this._uint32[0] = i; + return this._float32[0]; + } + /** + * 1フレーム分のデータを取得する(未設定項目はデフォルト) + * [注意]現verでは未対応項目があると正常動作しない可能性があります + * @param {number} frameNumber - フレーム番号 + */ + GetFrameData(frameNumber) { + if (this.currentCachedFrameNumber === frameNumber && this.frameDataCache) return this.frameDataCache; + const layers = this.curAnimation.defaultDataLength(); + let frameData = new Array(layers); + this._prio2index = new Array(layers); + const curFrameData = this.curAnimation.frameData(frameNumber); + for (let i = 0; i < layers; i++) { + const curPartState = curFrameData.states(i); + const index = curPartState.index(); + let f1 = curPartState.flag1(); + let f2 = curPartState.flag2(); + let fd = this.GetDefaultDataByIndex(index); + fd.flag1 = f1; + fd.flag2 = f2; + let id = 0; + if (f1 & PART_FLAG.INVISIBLE) fd.f_hide = true; + if (f1 & PART_FLAG.FLIP_H) fd.f_flipH = true; + if (f1 & PART_FLAG.FLIP_V) fd.f_flipV = true; + if (f1 & PART_FLAG.CELL_INDEX) fd.cellIndex = curPartState.data(id++); + if (f1 & PART_FLAG.POSITION_X) fd.positionX = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.POSITION_Y) fd.positionY = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.POSITION_Z) id++; + if (f1 & PART_FLAG.PIVOT_X) fd.pivotX = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.PIVOT_Y) fd.pivotY = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.ROTATIONX) id++; + if (f1 & PART_FLAG.ROTATIONY) id++; + if (f1 & PART_FLAG.ROTATIONZ) fd.rotationZ = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.SCALE_X) fd.scaleX = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.SCALE_Y) fd.scaleY = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.LOCALSCALE_X) fd.localscaleX = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.LOCALSCALE_Y) fd.localscaleY = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.OPACITY) fd.opacity = curPartState.data(id++); + if (f1 & PART_FLAG.LOCALOPACITY) fd.localopacity = curPartState.data(id++); + if (f1 & PART_FLAG.SIZE_X) fd.size_X = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.SIZE_Y) fd.size_Y = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.U_MOVE) fd.uv_move_X = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.V_MOVE) fd.uv_move_Y = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.UV_ROTATION) fd.uv_rotation = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.U_SCALE) fd.uv_scale_X = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.V_SCALE) fd.uv_scale_Y = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.BOUNDINGRADIUS) id++; + if (f1 & PART_FLAG.MASK) fd.masklimen = curPartState.data(id++); + if (f1 & PART_FLAG.PRIORITY) fd.priority = curPartState.data(id++); + if (f1 & PART_FLAG.INSTANCE_KEYFRAME) { + fd.instanceValue_curKeyframe = curPartState.data(id++); + fd.instanceValue_startFrame = curPartState.data(id++); + fd.instanceValue_endFrame = curPartState.data(id++); + fd.instanceValue_loopNum = curPartState.data(id++); + fd.instanceValue_speed = this.I2F(curPartState.data(id++)); + fd.instanceValue_loopflag = curPartState.data(id++); + } + if (f1 & PART_FLAG.EFFECT_KEYFRAME) { + fd.effectValue_curKeyframe = curPartState.data(id++); + fd.effectValue_startTime = curPartState.data(id++); + fd.effectValue_speed = this.I2F(curPartState.data(id++)); + fd.effectValue_loopflag = curPartState.data(id++); + } + if (f1 & PART_FLAG.VERTEX_TRANSFORM) { + fd.f_mesh = true; + const f = fd.i_transformVerts = curPartState.data(id++); + if (f & 1) { + fd.u00 = this.I2F(curPartState.data(id++)); + fd.v00 = this.I2F(curPartState.data(id++)); + } + if (f & 2) { + fd.u01 = this.I2F(curPartState.data(id++)); + fd.v01 = this.I2F(curPartState.data(id++)); + } + if (f & 4) { + fd.u10 = this.I2F(curPartState.data(id++)); + fd.v10 = this.I2F(curPartState.data(id++)); + } + if (f & 8) { + fd.u11 = this.I2F(curPartState.data(id++)); + fd.v11 = this.I2F(curPartState.data(id++)); + } + } + if (f1 & PART_FLAG.PARTS_COLOR) { + const f = curPartState.data(id++); + fd.colorBlendType = f & 255; + fd.useColorMatrix = fd.colorBlendType !== 1; + if (f & 4096) { + fd.colorRate = this.I2F(curPartState.data(id++)); + const bf = curPartState.data(id++); + const bf2 = curPartState.data(id++); + fd.colorArgb32 = bf << 16 | bf2; + fd.partsColorARGB = fd.colorArgb32 >>> 0; + if (fd.colorBlendType === 1) fd.tint = fd.colorArgb32 & 16777215; + } + } + if (f2 & PART_FLAG2.MESHDATA) { + const meshUv = this.curAnimation.meshsDataUv(index); + fd.meshIsBind = meshUv.uv(0); + fd.meshNum = meshUv.uv(1); + let mp = new Float32Array(fd.meshNum * 3); + for (let idx = 0; idx < fd.meshNum; idx++) { + const mx = this.I2F(curPartState.data(id++)); + const my = this.I2F(curPartState.data(id++)); + const mz = this.I2F(curPartState.data(id++)); + mp[idx * 3 + 0] = mx; + mp[idx * 3 + 1] = my; + mp[idx * 3 + 2] = mz; + } + fd.meshDataPoint = mp; + } + frameData[index] = fd; + this._prio2index[i] = index; + if (this.curAnimePackData.parts(index).type() === 0) frameData[index].cellIndex = -2; + } + this.frameDataCache = frameData; + this.currentCachedFrameNumber = frameNumber; + return frameData; + } + /** + * デフォルトデータを取得する + * @param {number} id - パーツ(レイヤー)ID + * @return {array} - データ + */ + GetDefaultDataByIndex(id) { + const curDefaultData = this.defaultFrameMap[id]; + let dfd = new FrameData(); + dfd.index = curDefaultData.index(); + dfd.lowflag = curDefaultData.lowflag(); + dfd.highflag = curDefaultData.highflag(); + dfd.priority = curDefaultData.priority(); + dfd.cellIndex = curDefaultData.cellIndex(); + dfd.opacity = curDefaultData.opacity(); + dfd.localopacity = curDefaultData.localopacity(); + dfd.masklimen = curDefaultData.masklimen(); + dfd.positionX = curDefaultData.positionX(); + dfd.positionY = curDefaultData.positionY(); + dfd.pivotX = curDefaultData.pivotX(); + dfd.pivotY = curDefaultData.pivotY(); + dfd.rotationX = curDefaultData.rotationX(); + dfd.rotationY = curDefaultData.rotationY(); + dfd.rotationZ = curDefaultData.rotationZ(); + dfd.scaleX = curDefaultData.scaleX(); + dfd.scaleY = curDefaultData.scaleY(); + dfd.localscaleX = curDefaultData.localscaleX(); + dfd.localscaleY = curDefaultData.localscaleY(); + dfd.size_X = curDefaultData.sizeX(); + dfd.size_Y = curDefaultData.sizeY(); + dfd.uv_move_X = curDefaultData.uvMoveX(); + dfd.uv_move_Y = curDefaultData.uvMoveY(); + dfd.uv_rotation = curDefaultData.uvRotation(); + dfd.uv_scale_X = curDefaultData.uvScaleX(); + dfd.uv_scale_Y = curDefaultData.uvScaleY(); + dfd.boundingRadius = curDefaultData.boundingRadius(); + dfd.instanceValue_curKeyframe = curDefaultData.instanceValueCurKeyframe(); + dfd.instanceValue_endFrame = curDefaultData.instanceValueEndFrame(); + dfd.instanceValue_startFrame = curDefaultData.instanceValueStartFrame(); + dfd.instanceValue_loopNum = curDefaultData.instanceValueLoopNum(); + dfd.instanceValue_speed = curDefaultData.instanceValueSpeed(); + dfd.instanceValue_loopflag = curDefaultData.instanceValueLoopflag(); + dfd.effectValue_curKeyframe = curDefaultData.effectValueCurKeyframe(); + dfd.effectValue_startTime = curDefaultData.effectValueStartTime(); + dfd.effectValue_speed = curDefaultData.effectValueSpeed(); + dfd.effectValue_loopflag = curDefaultData.effectValueLoopflag(); + dfd.f_hide = false; + dfd.f_flipH = false; + dfd.f_flipV = false; + dfd.f_mesh = false; + dfd.i_transformVerts = 0; + dfd.u00 = 0; + dfd.v00 = 0; + dfd.u01 = 0; + dfd.v01 = 0; + dfd.u10 = 0; + dfd.v10 = 0; + dfd.u11 = 0; + dfd.v11 = 0; + dfd.useColorMatrix = false; + dfd.colorBlendType = 0; + dfd.colorRate = 0; + dfd.colorArgb32 = 0; + dfd.meshIsBind = 0; + dfd.meshNum = 0; + dfd.meshDataPoint = null; + dfd.flag1 = 0; + dfd.flag2 = 0; + dfd.partsColorARGB = 0; + return dfd; + } + /** + * 親を遡って不透明度を継承する + * @param {number} opacity - 透明度 + * @param {number} partId - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {number} - 透明度 + */ + InheritOpacity(opacity, partId, frameNumber) { + opacity = this.GetFrameData(frameNumber)[partId].opacity / 255; + if (this._parentIndex[partId] >= 0) opacity = this.InheritOpacity(opacity, this._parentIndex[partId], frameNumber); + return opacity; + } + /** + * 親を遡って座標変換する(ローカルアトリビュート適用) + * @param {array} verts - 頂点情報配列 + * @param {number} partId - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformVertsLocal(verts, partId, frameNumber) { + const data = this.GetFrameData(frameNumber)[partId]; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + for (let i = 0; i < verts.length / 2; i++) { + let x = verts[i * 2]; + let y = verts[i * 2 + 1]; + if (data.i_transformVerts & 1 && i === 1) { + x += data.u00; + y -= data.v00; + } + if (data.i_transformVerts & 2 && i === 2) { + x += data.u01; + y -= data.v01; + } + if (data.i_transformVerts & 4 && i === 3) { + x += data.u10; + y -= data.v10; + } + if (data.i_transformVerts & 8 && i === 4) { + x += data.u11; + y -= data.v11; + } + x *= data.scaleX * data.localscaleX; + y *= data.scaleY * data.localscaleY; + verts[i * 2] = cos * x - sin * y + data.positionX; + verts[i * 2 + 1] = sin * x + cos * y - data.positionY; + if (data.f_flipH) verts[i * 2] = verts[0] * 2 - verts[i * 2]; + if (data.f_flipV) verts[i * 2 + 1] = verts[1] * 2 - verts[i * 2 + 1]; + } + if (this._parentIndex[partId] >= 0) verts = this.TransformVerts(verts, this._parentIndex[partId], frameNumber); + return verts; + } + /** + * 親を遡って座標変換する(ローカルアトリビュート適用) + * @param {array} verts - 頂点情報配列 + * @param {number} partId - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformMeshVertsLocal(verts, partId, frameNumber) { + const data = this.GetFrameData(frameNumber)[partId]; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + for (let i = 0; i < verts.length / 2; i++) { + let x = verts[i * 2]; + let y = verts[i * 2 + 1]; + x *= data.scaleX * data.localscaleX; + y *= data.scaleY * data.localscaleY; + verts[i * 2] = cos * x - sin * y + data.positionX; + verts[i * 2 + 1] = sin * x + cos * y - data.positionY; + } + if (this._parentIndex[partId] >= 0) verts = this.TransformVerts(verts, this._parentIndex[partId], frameNumber); + return verts; + } + /** + * 親を遡って座標変換する(ローカルアトリビュート適用) + * @param {array} pos - 頂点情報配列 + * @param {number} partId - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformPositionLocal(pos, partId, frameNumber) { + const data = this.GetFrameData(frameNumber)[partId]; + pos[4] += -data.rotationZ; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + const x = pos[0] * data.scaleX * data.localscaleX; + const y = pos[1] * data.scaleY * data.localscaleY; + pos[2] *= data.scaleX * data.localscaleX; + pos[3] *= data.scaleY * data.localscaleY; + pos[0] = cos * x - sin * y + data.positionX; + pos[1] = sin * x + cos * y - data.positionY; + if (this._parentIndex[partId] >= 0) pos = this.TransformPosition(pos, this._parentIndex[partId], frameNumber); + return pos; + } + /** + * 5頂点の中間点を求める + * @param {number} cx - 元の中心点 + * @param {number} cy - 元の中心点 + * @param {number} LUx - 左上座標 + * @param {number} LUy - 左上座標 + * @param {number} RUx - 右上座標 + * @param {number} RUy - 右上座標 + * @param {number} LDx - 左下座標 + * @param {number} LDy - 左下座標 + * @param {number} RDx - 右下座標 + * @param {number} RDy - 右下座標 + * @param vec2 + * @return {array} vec2 - 4頂点から算出した中心点の座標 + */ + static CoordinateGetDiagonalIntersection(cx, cy, LUx, LUy, RUx, RUy, LDx, LDy, RDx, RDy, vec2) { + const c1 = (LDy - RUy) * (LDx - LUx) - (LDx - RUx) * (LDy - LUy); + const c2 = (RDx - LUx) * (LDy - LUy) - (RDy - LUy) * (LDx - LUx); + const c3 = (RDx - LUx) * (LDy - RUy) - (RDy - LUy) * (LDx - RUx); + if (c3 <= 0 && c3 >= 0) return vec2; + const ca = c1 / c3; + const cb = c2 / c3; + if (0 <= ca && 1 >= ca && 0 <= cb && 1 >= cb) { + cx = LUx + ca * (RDx - LUx); + cy = LUy + ca * (RDy - LUy); + } + vec2[0] = cx; + vec2[1] = cy; + return vec2; + } + /** + * 親を遡って座標変換する + * @param {array} verts - 頂点情報配列 + * @param {number} id - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformVerts(verts, id, frameNumber) { + const data = this.GetFrameData(frameNumber)[id]; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + for (let i = 0; i < verts.length / 2; i++) { + let x = verts[i * 2]; + let y = verts[i * 2 + 1]; + x *= data.scaleX; + y *= data.scaleY; + verts[i * 2] = cos * x - sin * y + data.positionX; + verts[i * 2 + 1] = sin * x + cos * y - data.positionY; + if (data.f_flipH) verts[i * 2] = verts[0] * 2 - verts[i * 2]; + if (data.f_flipV) verts[i * 2 + 1] = verts[1] * 2 - verts[i * 2 + 1]; + } + if (this._parentIndex[id] >= 0) verts = this.TransformVerts(verts, this._parentIndex[id], frameNumber); + return verts; + } + /** + * 親を遡って座標変換する + * @param {array} pos - 頂点情報配列 + * @param {number} id - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformPosition(pos, id, frameNumber) { + const data = this.GetFrameData(frameNumber)[id]; + pos[4] += -data.rotationZ; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + const x = pos[0] * data.scaleX; + const y = pos[1] * data.scaleY; + pos[2] *= data.scaleX; + pos[3] *= data.scaleY; + pos[0] = cos * x - sin * y + data.positionX; + pos[1] = sin * x + cos * y - data.positionY; + if (this._parentIndex[id] >= 0) pos = this.TransformPosition(pos, this._parentIndex[id], frameNumber); + return pos; + } + /** + * 矩形セルメッシュの頂点情報のみ取得 + * @param {ssfblib.Cell} cell - セル + * @param {array} data - アニメーションフレームデータ + * @param verts + * @return {array} - 頂点情報配列 + */ + static GetVerts(cell, data, verts) { + const w = data.size_X / 2; + const h = data.size_Y / 2; + const px = data.size_X * -(data.pivotX + cell.pivotX()); + const py = data.size_Y * (data.pivotY + cell.pivotY()); + verts.set([ + px, + py, + px - w, + py - h, + px + w, + py - h, + px - w, + py + h, + px + w, + py + h + ]); + return verts; + } + /** + * 矩形セルメッシュの頂点情報のみ取得 + * @param {ssfblib.Cell} cell - セル + * @param {array} data - アニメーションフレームデータ + * @param verts + * @return {array} - 頂点情報配列 + */ + static GetMeshVerts(cell, data, verts) { + for (let idx = 0; idx < data.meshNum; idx++) { + verts[idx * 2] = data.meshDataPoint[idx * 3]; + verts[idx * 2 + 1] = -data.meshDataPoint[idx * 3 + 1]; + } + return verts; + } + static GetDummyVerts() { + return new Float32Array([ + 0, + 0, + -.5, + -.5, + .5, + -.5, + -.5, + .5, + .5, + .5 + ]); + } + }; + //#endregion + //#region src/loaders/PixiResourceLoaderImpl.ts + var PixiResourceLoaderImpl = class { + constructor() {} + load(sspjfile, sspjMap, onComplete) { + pixi_js.Assets.addBundle(sspjfile, sspjMap); + pixi_js.Assets.loadBundle(sspjfile).then(() => { + if (onComplete !== null) onComplete(null); + }).catch((e) => { + if (onComplete !== null) onComplete(e); + }); + } + unload(sspjfile, sspjMap, onComplete) { + pixi_js.Assets.unloadBundle(sspjfile).then(() => { + if (onComplete !== null) onComplete(null); + }).catch((error) => { + if (onComplete !== null) onComplete(error); + }); + } + texture(key) { + return pixi_js.Assets.get(key); + } + }; + //#endregion + //#region src/SS6ProjectResourceLoader.ts + var SS6ProjectResourceLoader = class { + constructor() { + this.loader = new PixiResourceLoaderImpl(); + } + load(sspjfile, sspjMap, onComplete) { + return this.loader.load(sspjfile, sspjMap, onComplete); + } + unload(sspjfile, sspjMap, onComplete = null) { + return this.loader.unload(sspjfile, sspjMap, onComplete); + } + texture(key) { + return this.loader.texture(key); + } + }; + //#endregion + //#region src/SS6Project.ts + let RESOURCE_PROGRESS = /* @__PURE__ */ function(RESOURCE_PROGRESS) { + RESOURCE_PROGRESS[RESOURCE_PROGRESS["NOT_READY"] = 0] = "NOT_READY"; + RESOURCE_PROGRESS[RESOURCE_PROGRESS["READY"] = 1] = "READY"; + return RESOURCE_PROGRESS; + }({}); + var SS6Project = class { + getBundle() { + return this.ssfbFile; + } + getTexture(key) { + return this.resourceLoader.texture(key); + } + constructor(arg1, arg2, arg3, arg4) { + this.sspjMap = {}; + this.resourceLoader = new SS6ProjectResourceLoader(); + if (typeof arg1 === "string" && arg3 === void 0) { + let ssfbPath = arg1; + this.ssfbPath = ssfbPath; + const index = ssfbPath.lastIndexOf("/"); + this.rootPath = ssfbPath.substring(0, index) + "/"; + this.ssfbFile = ssfbPath.substring(index + 1); + this.onComplete = arg2 === void 0 ? null : arg2; + this.status = RESOURCE_PROGRESS.NOT_READY; + this.LoadFlatBuffersProject(); + } else if (typeof arg2 === "object" && arg2.constructor === Uint8Array) { + this.ssfbPath = null; + this.rootPath = null; + this.ssfbFile = arg1; + let ssfbByte = arg2; + let imageBinaryMap = arg3; + this.onComplete = arg4 === void 0 ? null : arg4; + this.load(ssfbByte, imageBinaryMap); + } + } + dispose(callback = null) { + this.resourceLoader.unload(this.getBundle(), this.sspjMap, (error) => { + if (callback !== null) callback(); + }); + } + /** + * Load json and parse (then, load textures) + */ + LoadFlatBuffersProject() { + const self = this; + fetch(this.ssfbPath, { method: "get" }).then((response) => { + if (response.ok) return Promise.resolve(response.arrayBuffer()); + else return Promise.reject(new Error(response.statusText)); + }).then((a) => { + self.fbObj = Utils.getProjectData(new Uint8Array(a)); + self.LoadCellResources(); + }).catch((error) => { + if (this.onComplete !== null) this.onComplete(null, error); + }); + } + /** + * Load textures + */ + LoadCellResources() { + let ids = []; + this.sspjMap = {}; + for (let i = 0; i < this.fbObj.cellsLength(); i++) { + const cellMap = this.fbObj.cells(i).cellMap(); + const cellMapIndex = cellMap.index(); + if (!ids.some(function(id) { + return id === cellMapIndex; + })) { + ids.push(cellMapIndex); + const name = cellMap.name(); + this.sspjMap[name] = this.rootPath + cellMap.imagePath(); + } + } + const self = this; + this.resourceLoader.load(this.getBundle(), this.sspjMap, (error) => { + if (error === null) { + self.status = RESOURCE_PROGRESS.READY; + if (self.onComplete !== null) self.onComplete(this, null); + } else if (this.onComplete !== null) this.onComplete(null, error); + }); + } + load(bytes, imageBinaryMap) { + this.fbObj = Utils.getProjectData(bytes); + let assetMap = {}; + for (let imageName in imageBinaryMap) { + const binary = imageBinaryMap[imageName]; + let b = ""; + const len = binary.byteLength; + for (let i = 0; i < len; i++) b += String.fromCharCode(binary[i]); + assetMap[imageName] = "data:image/png;base64," + btoa(b); + } + const self = this; + this.resourceLoader.load(this.getBundle(), assetMap, (error) => { + if (error === null) { + self.status = RESOURCE_PROGRESS.READY; + if (self.onComplete !== null) self.onComplete(this, null); + } else if (this.onComplete !== null) this.onComplete(null, error); + }); + } + }; + //#endregion + //#region src/SS6PlayerInstanceKeyParam.ts + /** + * インスタンス差し替え用のキーパラメーター + */ + var SS6PlayerInstanceKeyParam = class { + constructor() { + this.refStartframe = 0; + this.refEndframe = 0; + this.refSpeed = 1; + this.refloopNum = 0; + this.infinity = false; + this.reverse = false; + this.pingpong = false; + this.independent = false; + } + }; + //#endregion + exports.SS6Player = class SS6Player extends pixi_js.Container { + get startFrame() { + return this._startFrame; + } + get endFrame() { + return this._endFrame; + } + get totalFrame() { + return this.playerLib.animationData.totalFrames(); + } + get fps() { + return this.playerLib.animationData.fps(); + } + get frameNo() { + return Math.floor(this._currentFrame); + } + set loop(loop) { + this._loops = loop; + } + get loop() { + return this._loops; + } + get isPlaying() { + return this._isPlaying; + } + get isPausing() { + return this._isPausing; + } + get animePackName() { + return this.playerLib.animePackName; + } + get animeName() { + return this.playerLib.animeName; + } + /** + * SS6Player (extends PIXI.Container) + * @constructor + * @param {SS6Project} ss6project - SS6Project that contains animations. + * @param {string} animePackName - The name of animePack(SSAE). + * @param {string} animeName - The name of animation. + */ + constructor(ss6project, animePackName = null, animeName = null) { + super(); + this.liveFrame = []; + this.colorMatrixFilterCache = []; + this.parentAlpha = 1; + this.prevCellID = []; + this.prevPartObject = []; + this.changeCellID = []; + this.changeVisible = []; + this.changeTint = []; + this.substituteOverWrite = []; + this.substituteKeyParam = []; + this.alphaBlendType = []; + this.defaultColorFilter = new pixi_js.ColorMatrixFilter(); + this._instancePos = new Float32Array(5); + this._CoordinateGetDiagonalIntersectionVec2 = new Float32Array(2); + this.isRenderGroup = true; + this.ss6project = ss6project; + this.playerLib = new Player(ss6project.fbObj, animePackName, animeName); + this.parentAlpha = 1; + if (animePackName !== null && animeName !== null) this.Setup(animePackName, animeName); + this.on("added", (...args) => { + pixi_js.Ticker.shared.add(this.Update, this); + }, this); + this.on("removed", (...args) => { + pixi_js.Ticker.shared.remove(this.Update, this); + }, this); + } + /** + * Setup + * @param {string} animePackName - The name of animePack(SSAE). + * @param {string} animeName - The name of animation. + */ + Setup(animePackName, animeName) { + this.playerLib.Setup(animePackName, animeName); + this.clearCaches(); + const animePackData = this.playerLib.animePackData; + const partsLength = animePackData.partsLength(); + this.prevCellID = new Array(partsLength); + this.prevPartObject = new Array(partsLength); + this.changeCellID = new Array(partsLength); + this.changeVisible = new Array(partsLength); + this.changeTint = new Array(partsLength); + this.substituteOverWrite = new Array(partsLength); + this.substituteKeyParam = new Array(partsLength); + for (let j = 0; j < partsLength; j++) { + const index = animePackData.parts(j).index(); + this.prevCellID[index] = -1; + this.prevPartObject[index] = null; + this.changeCellID[index] = -1; + this.changeVisible[index] = true; + this.changeTint[index] = null; + this.substituteOverWrite[index] = null; + this.substituteKeyParam[index] = null; + } + this.alphaBlendType = this.GetPartsBlendMode(); + this._isPlaying = false; + this._isPausing = true; + this._startFrame = this.playerLib.animationData.startFrames(); + this._endFrame = this.playerLib.animationData.endFrames(); + this._currentFrame = this.playerLib.animationData.startFrames(); + this.nextFrameTime = 0; + this._loops = -1; + this.skipEnabled = true; + this.updateInterval = 1e3 / this.playerLib.animationData.fps(); + this.playDirection = 1; + this.onUserDataCallback = null; + this.playEndCallback = null; + this.parentAlpha = 1; + } + clearCaches() { + this.liveFrame = []; + this.colorMatrixFilterCache = []; + } + Update(ticker) { + this.UpdateInternal(ticker.deltaMS); + } + /** + * Update is called PIXI.ticker + * @param {number} delta - expected 1 + */ + UpdateInternal(delta, rewindAfterReachingEndFrame = true) { + const elapsedTime = delta; + if (this._isPlaying && !this._isPausing && this.updateInterval !== 0) { + this.nextFrameTime += elapsedTime; + if (this.nextFrameTime >= this.updateInterval) { + let playEndFlag = false; + const step = this.nextFrameTime / this.updateInterval; + this.nextFrameTime -= this.updateInterval * step; + let s = this.skipEnabled ? step * this.playDirection : this.playDirection; + let next = this._currentFrame + s; + let nextFrameNo = Math.floor(next); + let nextFrameDecimal = next - nextFrameNo; + let currentFrameNo = Math.floor(this._currentFrame); + if (this.playDirection >= 1) for (let c = nextFrameNo - currentFrameNo; c; c--) { + let incFrameNo = currentFrameNo + 1; + if (incFrameNo > this._endFrame) if (this._loops === -1) incFrameNo = this._startFrame; + else { + this._loops--; + playEndFlag = true; + if (this._loops === 0) { + this._isPlaying = false; + incFrameNo = rewindAfterReachingEndFrame ? this._startFrame : this._endFrame; + break; + } else incFrameNo = this._startFrame; + } + currentFrameNo = incFrameNo; + if (this._isPlaying) { + if (this.playerLib.HaveUserData(currentFrameNo)) { + if (this.onUserDataCallback !== null) this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); + } + } + } + if (this.playDirection <= -1) for (let c = currentFrameNo - nextFrameNo; c; c--) { + let decFrameNo = currentFrameNo - 1; + if (decFrameNo < this._startFrame) if (this._loops === -1) decFrameNo = this._endFrame; + else { + this._loops--; + playEndFlag = true; + if (this._loops === 0) { + this._isPlaying = false; + decFrameNo = rewindAfterReachingEndFrame ? this._endFrame : this._startFrame; + break; + } else decFrameNo = this._endFrame; + } + currentFrameNo = decFrameNo; + if (this._isPlaying) { + if (this.playerLib.HaveUserData(currentFrameNo)) { + if (this.onUserDataCallback !== null) this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); + } + } + } + this._currentFrame = currentFrameNo + nextFrameDecimal; + if (playEndFlag) { + if (this.playEndCallback !== null) this.playEndCallback(this); + } + this.SetFrameAnimation(Math.floor(this._currentFrame), step); + } + } else this.SetFrameAnimation(Math.floor(this._currentFrame)); + } + /** + * アニメーションの速度を設定する (deprecated この関数は削除される可能性があります) + * @param {number} fps - アニメーション速度(frame per sec.) + * @param {boolean} _skipEnabled - 描画更新が間に合わないときにフレームをスキップするかどうか + */ + SetAnimationFramerate(fps, _skipEnabled = true) { + if (fps <= 0) return; + this.updateInterval = 1e3 / fps; + this.skipEnabled = _skipEnabled; + } + /** + * アニメーションの速度を設定する + * @param {number} fpsRate - アニメーション速度(設定値に対する乗率)負数設定で逆再生 + * @param {boolean} _skipEnabled - 描画更新が間に合わないときにフレームをスキップするかどうか + */ + SetAnimationSpeed(fpsRate, _skipEnabled = true) { + if (fpsRate === 0) return; + this.playDirection = fpsRate > 0 ? 1 : -1; + this.updateInterval = 1e3 / (this.playerLib.animationData.fps() * fpsRate * this.playDirection); + this.skipEnabled = _skipEnabled; + } + /** + * アニメーション再生設定 + * @param {number} _startframe - 開始フレーム番号(マイナス設定でデフォルト値を変更しない) + * @param {number} _endframe - 終了フレーム番号(マイナス設定でデフォルト値を変更しない) + * @param {number} _loops - ループ回数(ゼロもしくはマイナス設定で無限ループ) + */ + SetAnimationSection(_startframe = -1, _endframe = -1, _loops = -1) { + if (_startframe >= 0 && _startframe < this.playerLib.animationData.totalFrames()) this._startFrame = _startframe; + if (_endframe >= 0 && _endframe < this.playerLib.animationData.totalFrames()) this._endFrame = _endframe; + if (_loops > 0) this._loops = _loops; + else this._loops = -1; + this._currentFrame = this.playDirection > 0 ? this._startFrame : this._endFrame; + } + /** + * アニメーション再生を開始する + */ + Play(frameNo) { + this._isPlaying = true; + this._isPausing = false; + let currentFrame = this.playDirection > 0 ? this._startFrame : this._endFrame; + if (frameNo && typeof frameNo === "number") currentFrame = frameNo; + this._currentFrame = currentFrame; + this.resetLiveFrame(); + const currentFrameNo = Math.floor(this._currentFrame); + this.SetFrameAnimation(currentFrameNo); + if (this.playerLib.HaveUserData(currentFrameNo)) { + if (this.onUserDataCallback !== null) this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); + } + } + /** + * アニメーション再生を一時停止する + */ + Pause() { + this._isPausing = true; + } + /** + * アニメーション再生を再開する + */ + Resume() { + this._isPausing = false; + } + /** + * アニメーションを停止する + * @constructor + */ + Stop() { + this._isPlaying = false; + } + /** + * アニメーション再生を位置(フレーム)を設定する + */ + SetFrame(frame) { + this._currentFrame = frame; + } + NextFrame() { + const currentFrame = Math.floor(this._currentFrame); + if (currentFrame === this.endFrame) return; + this.SetFrame(currentFrame + 1); + } + PrevFrame() { + const currentFrame = Math.floor(this._currentFrame); + if (currentFrame === 0) return; + this.SetFrame(currentFrame - 1); + } + /** + * アニメーションの透明度を設定する + */ + SetAlpha(alpha) { + this.parentAlpha = alpha; + } + /** + * エラー処理 + * @param {any} _error - エラー + */ + ThrowError(_error) {} + /** + * ユーザーデータコールバックの設定 + * @param fn + * @constructor + * + * ユーザーデータのフォーマット + * data = [[d0,d1,...,d10],[da0,da1,...,da10],...]) + * data.length : 当該フレームでユーザーデータの存在するパーツ(レイヤー)数 + * d0 : パーツ(レイヤー)番号 + * d1 : 有効データビット(&1:int, &2:rect(int*4), &4:pos(int*2), &8:string) + * d2 : int(int) + * d3 : rect0(int) + * d4 : rect1(int) + * d5 : rect2(int) + * d6 : rect3(int) + * d7 : pos0(int) + * d8 : pos1(int) + * d9 : string.length(int) + * d10: string(string) + * + */ + SetUserDataCalback(fn) { + this.onUserDataCallback = fn; + } + /** + * 再生終了時に呼び出されるコールバックを設定します. + * @param fn + * @constructor + * + * ループ回数分再生した後に呼び出される点に注意してください。 + * 無限ループで再生している場合はコールバックが発生しません。 + * + */ + SetPlayEndCallback(fn) { + this.playEndCallback = fn; + } + getCellIndex(sscename, cellname) { + let changeCellIndex = -1; + if (sscename !== "" && cellname !== "") { + const fbObj = this.playerLib.fbObj; + const numCells = this.playerLib.fbObj.numCells(); + for (let i = 0; i < numCells; i++) { + const cell = fbObj.cells(i); + const name1 = cell.name(); + const name2 = cell.cellMap().name(); + if (cellname === name1 && sscename === name2) { + changeCellIndex = i; + break; + } + } + } + return changeCellIndex; + } + /** + * Retrieves the index of a part based on its name from the anime pack data. + * + * @param {string} partsname - The name of the part to search for. + * @return {number} The index of the part if found, or -1 if the part is not found. + */ + GetPartIndexFromName(partsname) { + const animePackData = this.playerLib.animePackData; + const partsLength = animePackData.partsLength(); + let partIndex = -1; + for (let i = 0; i < partsLength; i++) { + const part = animePackData.parts(i); + const index = part.index(); + if (part.name() === partsname) { + partIndex = index; + break; + } + } + return partIndex; + } + /** + * パーツに割り当たるセルを変更します. + * + * @param {string} partsname - パーツ名 + * @param {string} sscename - セルマップ名 + * @param {string} cellname - 表示させたいセル名 + * + * @return {[number, number]} [パーツ名の index, セル名 index] のタプルを返します。見つからない場合は -1 を返します。 + */ + SetPartCell(partsname, sscename, cellname) { + let changeCellIndex = -1; + let partIndex = -1; + if (this.playerLib.animationData) { + changeCellIndex = this.getCellIndex(sscename, cellname); + partIndex = this.GetPartIndexFromName(partsname); + this.SetPartCellByIndex(partIndex, changeCellIndex); + } + return [partIndex, changeCellIndex]; + } + /** + * パーツに割り当たるセルをインデックスで指定して変更します。 + * + * @param {number} partIndex - The index of the part to be updated. Must not be -1 to perform the update. + * @param {number} changeCellIndex - The new cell index to set for the specified partIndex. + * @return {void} This method does not return a value. + */ + SetPartCellByIndex(partIndex, changeCellIndex) { + if (partIndex !== -1) { + this.changeCellID[partIndex] = changeCellIndex; + return true; + } + return false; + } + /** + * Sets the visibility of a specific part by its name. + * + * @param {string} partsname - The name of the part whose visibility is to be set. + * @param {boolean} visible - A boolean indicating whether the part should be visible (true) or hidden (false). + * @return {boolean} Returns true if the operation was successful, false otherwise. + */ + SetPartVisible(partsname, visible) { + if (this.playerLib.animationData) { + const partIndex = this.GetPartIndexFromName(partsname); + return this.SetPartVisibleByIndex(partIndex, visible); + } + return false; + } + /** + * Sets the visibility of a part identified by its index. + * + * @param {number} partIndex - The index of the part to update. Must not be -1. + * @param {boolean} visible - A boolean indicating whether the part should be visible (true) or hidden (false). + * @return {boolean} Returns true if the visibility was successfully updated, otherwise returns false. + */ + SetPartVisibleByIndex(partIndex, visible) { + if (partIndex !== -1) { + this.changeVisible[partIndex] = visible; + return true; + } + return false; + } + /** + * Sets the tint color for a specific part of the player's animation. + * + * @param {string} partName - The name of the part to apply the tint to. + * @param {number} tint - The tint value to apply, represented as a number. + * @return {boolean} Returns true if the tint was successfully applied; otherwise, returns false. + */ + SetPartTint(partName, tint) { + if (this.playerLib.animationData) { + const partIndex = this.GetPartIndexFromName(partName); + return this.SetPartTintByIndex(partIndex, tint); + } + return false; + } + /** + * Updates the tint color of a specific part identified by its index. + * + * @param {number} partIndex - The index of the part for which the tint needs to be set. A value of -1 indicates no part is targeted. + * @param {number} tint - The tint value to be applied to the specified part. + * @return {boolean} Returns true if the tint is successfully applied, otherwise returns false. + */ + SetPartTintByIndex(partIndex, tint) { + if (partIndex !== -1) { + this.changeTint[partIndex] = tint; + return true; + } + return false; + } + /** + * パーツの描画モードを取得する + * @return {array} - 全パーツの描画モード + */ + GetPartsBlendMode() { + const animePacks = this.playerLib.animePackData; + const l = animePacks.partsLength(); + let ret = []; + for (let i = 0; i < l; i++) { + const alphaBlendType = animePacks.parts(i).alphaBlendType(); + let blendMode; + switch (alphaBlendType) { + case 0: + blendMode = "normal"; + break; + case 1: + blendMode = "multiply"; + break; + case 2: + blendMode = "add"; + break; + case 3: + blendMode = "subtract"; + break; + case 4: + blendMode = "multiply"; + break; + case 5: + blendMode = "screen"; + break; + case 6: + blendMode = "exclusion"; + break; + case 7: + blendMode = "normal"; + break; + default: + blendMode = "subtract"; + break; + } + ret.push(blendMode); + } + return ret; + } + /** + * パーツカラーのブレンド用カラーマトリクス + * @param {number} blendType - ブレンド方法(0:mix, 1:multiply, 2:add, 3:sub) + * @param {number} rate - ミックス時の混色レート + * @param {number} argb32 - パーツカラー(単色) + * @return {PIXI.filters.ColorMatrixFilter} - カラーマトリクス + */ + GetColorMatrixFilter(blendType, rate, argb32) { + const key = blendType.toString() + "_" + rate.toString() + "_" + argb32.toString(); + if (this.colorMatrixFilterCache[key]) return this.colorMatrixFilterCache[key]; + const colorMatrix = new pixi_js.ColorMatrixFilter(); + const ca = ((argb32 & 4278190080) >>> 24) / 255; + const cr = ((argb32 & 16711680) >>> 16) / 255; + const cg = ((argb32 & 65280) >>> 8) / 255; + const cb = (argb32 & 255) / 255; + if (blendType === 0) { + const rate_i = 1 - rate; + colorMatrix.matrix = [ + rate_i, + 0, + 0, + 0, + cr * rate, + 0, + rate_i, + 0, + 0, + cg * rate, + 0, + 0, + rate_i, + 0, + cb * rate, + 0, + 0, + 0, + 1, + 0 + ]; + } else if (blendType === 1) colorMatrix.matrix = [ + cr, + 0, + 0, + 0, + 0, + 0, + cg, + 0, + 0, + 0, + 0, + 0, + cb, + 0, + 0, + 0, + 0, + 0, + ca, + 0 + ]; + else if (blendType === 2) colorMatrix.matrix = [ + 1, + 0, + 0, + 0, + cr, + 0, + 1, + 0, + 0, + cg, + 0, + 0, + 1, + 0, + cb, + 0, + 0, + 0, + ca, + 0 + ]; + else if (blendType === 3) colorMatrix.matrix = [ + 1, + 0, + 0, + 0, + -cr, + 0, + 1, + 0, + 0, + -cg, + 0, + 0, + 1, + 0, + -cb, + 0, + 0, + 0, + ca, + 0 + ]; + this.colorMatrixFilterCache[key] = colorMatrix; + return colorMatrix; + } + /** + * 1フレーム分のアニメーション描画 + * @param {number} frameNumber - フレーム番号 + * @param {number} ds - delta step + */ + SetFrameAnimation(frameNumber, ds = 0) { + const fd = this.playerLib.GetFrameData(frameNumber); + this.removeChildren(); + const l = fd.length; + for (let ii = 0; ii < l; ii = ii + 1 | 0) { + const i = this.playerLib.prio2index[ii]; + if (!this.changeVisible[i]) continue; + const data = fd[i]; + const origCellID = data.cellIndex; + const cellID = this.changeCellID[i] !== -1 ? this.changeCellID[i] : origCellID; + let partObject = this.prevPartObject[i]; + const part = this.playerLib.animePackData.parts(i); + const partType = part.type(); + let overWrite = this.substituteOverWrite[i] !== null ? this.substituteOverWrite[i] : false; + let overWritekeyParam = this.substituteKeyParam[i]; + switch (partType) { + case SsPartType.Instance: + if (partObject == null) { + partObject = this.MakeCellPlayer(part.refname()); + partObject.label = part.name(); + } + break; + case SsPartType.Normal: + case SsPartType.Mask: + if (cellID >= 0 && this.prevCellID[i] !== cellID) { + if (partObject != null) partObject.destroy(); + partObject = this.MakeCellMesh(cellID); + partObject.label = part.name(); + } + break; + case SsPartType.Mesh: + if (cellID >= 0 && this.prevCellID[i] !== cellID) { + if (partObject != null) partObject.destroy(); + partObject = this.MakeMeshCellMesh(i, cellID, origCellID); + partObject.label = part.name(); + } + break; + case SsPartType.Nulltype: + case SsPartType.Joint: + if (this.prevCellID[i] !== cellID) { + if (partObject != null) partObject.destroy(); + partObject = new pixi_js.Container(); + partObject.label = part.name(); + } + break; + default: + if (cellID >= 0 && this.prevCellID[i] !== cellID) { + if (partObject != null) partObject.destroy(); + partObject = this.MakeCellMesh(cellID); + partObject.label = part.name(); + } + break; + } + if (partObject == null) continue; + this.prevCellID[i] = cellID; + this.prevPartObject[i] = partObject; + switch (partType) { + case SsPartType.Instance: { + const instance = partObject; + this._instancePos[0] = 0; + this._instancePos[1] = 0; + this._instancePos[2] = 1; + this._instancePos[3] = 1; + this._instancePos[4] = 0; + this._instancePos = this.playerLib.TransformPositionLocal(this._instancePos, data.index, frameNumber); + instance.rotation = this._instancePos[4] * Math.PI / 180; + instance.position.set(this._instancePos[0], this._instancePos[1]); + instance.scale.set(this._instancePos[2], this._instancePos[3]); + let opacity = data.opacity / 255; + if (data.localopacity < 255) opacity = data.localopacity / 255; + instance.SetAlpha(opacity * this.parentAlpha); + instance.visible = !data.f_hide; + let refKeyframe = data.instanceValue_curKeyframe; + let refStartframe = data.instanceValue_startFrame; + let refEndframe = data.instanceValue_endFrame; + let refSpeed = data.instanceValue_speed; + let refloopNum = data.instanceValue_loopNum; + let infinity = false; + let reverse = false; + let pingpong = false; + let independent = false; + const INSTANCE_LOOP_FLAG_INFINITY = 1; + const INSTANCE_LOOP_FLAG_REVERSE = 2; + const INSTANCE_LOOP_FLAG_PINGPONG = 4; + const INSTANCE_LOOP_FLAG_INDEPENDENT = 8; + const lflags = data.instanceValue_loopflag; + if (lflags & INSTANCE_LOOP_FLAG_INFINITY) infinity = true; + if (lflags & INSTANCE_LOOP_FLAG_REVERSE) reverse = true; + if (lflags & INSTANCE_LOOP_FLAG_PINGPONG) pingpong = true; + if (lflags & INSTANCE_LOOP_FLAG_INDEPENDENT) independent = true; + if (overWrite) { + refStartframe = overWritekeyParam.refStartframe; + refEndframe = overWritekeyParam.refEndframe; + refSpeed = overWritekeyParam.refSpeed; + refloopNum = overWritekeyParam.refloopNum; + infinity = overWritekeyParam.infinity; + reverse = overWritekeyParam.reverse; + pingpong = overWritekeyParam.pingpong; + independent = overWritekeyParam.independent; + } + if (instance._startFrame !== refStartframe || instance._endFrame !== refEndframe) instance.SetAnimationSection(refStartframe, refEndframe); + let time = frameNumber; + if (independent === true) { + this.liveFrame[ii] += ds; + time = Math.floor(this.liveFrame[ii]); + } + const selfTopKeyframe = refKeyframe; + let reftime = Math.floor((time - selfTopKeyframe) * refSpeed); + if (reftime < 0) continue; + if (selfTopKeyframe > time) continue; + const inst_scale = refEndframe - refStartframe + 1; + if (inst_scale <= 0) continue; + let nowloop = Math.floor(reftime / inst_scale); + let checkloopnum = refloopNum; + if (pingpong) checkloopnum = checkloopnum * 2; + if (!infinity) { + if (nowloop >= checkloopnum) { + reftime = inst_scale - 1; + nowloop = checkloopnum - 1; + } + } + const temp_frame = Math.floor(reftime % inst_scale); + let _time = 0; + if (pingpong && nowloop % 2 === 1) if (reverse) reverse = false; + else reverse = true; + if (this.playDirection <= -1) reverse = !reverse; + if (reverse) _time = refEndframe - temp_frame; + else _time = temp_frame + refStartframe; + instance.SetFrame(Math.floor(_time)); + this.addChild(instance); + break; + } + case SsPartType.Normal: + case SsPartType.Mesh: + case SsPartType.Joint: + case SsPartType.Mask: { + const mesh = partObject; + const meshVertexBuffer = mesh.geometry.attributes.aPosition.buffer; + let meshVertex = meshVertexBuffer.data; + const cell = this.playerLib.fbObj.cells(cellID); + let verts; + if (partType === SsPartType.Mesh) if (data.meshIsBind === 0) verts = this.playerLib.TransformMeshVertsLocal(Player.GetMeshVerts(cell, data, meshVertex), data.index, frameNumber); + else verts = Player.GetMeshVerts(cell, data, meshVertex); + else { + verts = partType === SsPartType.Joint ? new Float32Array(10) : meshVertex; + verts = this.playerLib.TransformVertsLocal(Player.GetVerts(cell, data, verts), data.index, frameNumber); + } + if (data.flag1 & PART_FLAG.VERTEX_TRANSFORM) { + const vertexCoordinateLUx = verts[6]; + const vertexCoordinateLUy = verts[7]; + const vertexCoordinateLDx = verts[2]; + const vertexCoordinateLDy = verts[3]; + const vertexCoordinateRUx = verts[8]; + const vertexCoordinateRUy = verts[9]; + const vertexCoordinateRDx = verts[4]; + const vertexCoordinateRDy = verts[5]; + const CoordinateLURUx = (vertexCoordinateLUx + vertexCoordinateRUx) * .5; + const CoordinateLURUy = (vertexCoordinateLUy + vertexCoordinateRUy) * .5; + const CoordinateLULDx = (vertexCoordinateLUx + vertexCoordinateLDx) * .5; + const CoordinateLULDy = (vertexCoordinateLUy + vertexCoordinateLDy) * .5; + const CoordinateLDRDx = (vertexCoordinateLDx + vertexCoordinateRDx) * .5; + const CoordinateLDRDy = (vertexCoordinateLDy + vertexCoordinateRDy) * .5; + const CoordinateRURDx = (vertexCoordinateRUx + vertexCoordinateRDx) * .5; + const CoordinateRURDy = (vertexCoordinateRUy + vertexCoordinateRDy) * .5; + const vec2 = Player.CoordinateGetDiagonalIntersection(verts[0], verts[1], CoordinateLURUx, CoordinateLURUy, CoordinateRURDx, CoordinateRURDy, CoordinateLULDx, CoordinateLULDy, CoordinateLDRDx, CoordinateLDRDy, this._CoordinateGetDiagonalIntersectionVec2); + verts[0] = vec2[0]; + verts[1] = vec2[1]; + } + const px = verts[0]; + const py = verts[1]; + for (let j = 0; j < verts.length / 2; j++) { + verts[j * 2] -= px; + verts[j * 2 + 1] -= py; + } + meshVertex = verts; + meshVertexBuffer.update(); + if (data.flag1 & PART_FLAG.U_MOVE || data.flag1 & PART_FLAG.V_MOVE || data.flag1 & PART_FLAG.U_SCALE || data.flag1 & PART_FLAG.V_SCALE || data.flag1 & PART_FLAG.UV_ROTATION) { + const u1 = cell.u1() + data.uv_move_X; + const u2 = cell.u2() + data.uv_move_X; + const v1 = cell.v1() + data.uv_move_Y; + const v2 = cell.v2() + data.uv_move_Y; + const cx = (u2 + u1) / 2; + const cy = (v2 + v1) / 2; + const uvw = (u2 - u1) / 2 * data.uv_scale_X; + const uvh = (v2 - v1) / 2 * data.uv_scale_Y; + const meshUvsBuffer = mesh.geometry.attributes.aUV.buffer; + let meshUvs = mesh.geometry.uvs; + meshUvs[0] = cx; + meshUvs[1] = cy; + meshUvs[2] = cx - uvw; + meshUvs[3] = cy - uvh; + meshUvs[4] = cx + uvw; + meshUvs[5] = cy - uvh; + meshUvs[6] = cx - uvw; + meshUvs[7] = cy + uvh; + meshUvs[8] = cx + uvw; + meshUvs[9] = cy + uvh; + if (data.flag1 & PART_FLAG.UV_ROTATION) { + const rot = data.uv_rotation * Math.PI / 180; + for (let idx = 0; idx < 5; idx++) { + const dx = meshUvs[idx * 2 + 0] - cx; + const dy = meshUvs[idx * 2 + 1] - cy; + const cos = Math.cos(rot); + const sin = Math.sin(rot); + const tmpX = cos * dx - sin * dy; + const tmpY = sin * dx + cos * dy; + meshUvs[idx * 2 + 0] = cx + tmpX; + meshUvs[idx * 2 + 1] = cy + tmpY; + } + } + meshUvsBuffer.update(); + } + mesh.position.set(px, py); + let opacity = data.opacity / 255; + if (data.localopacity < 255) opacity = data.localopacity / 255; + mesh.alpha = opacity * this.parentAlpha; + mesh.visible = !data.f_hide; + if (data.useColorMatrix) mesh.filters = [this.GetColorMatrixFilter(data.colorBlendType, data.colorRate, data.colorArgb32)]; + if (this.changeTint[i] !== null) mesh.tint = this.changeTint[i]; + else if (data.tint) { + mesh.tint = data.tint; + const ca = ((data.partsColorARGB & 4278190080) >>> 24) / 255; + mesh.alpha = mesh.alpha * ca; + } + const blendMode = this.alphaBlendType[i]; + if (blendMode === "multiply" || blendMode === "screen") mesh.alpha = 1; + if (partType !== SsPartType.Mask) this.addChild(mesh); + break; + } + case SsPartType.Nulltype: { + const container = partObject; + container.alpha = this.playerLib.InheritOpacity(1, data.index, frameNumber) * data.localopacity / 255; + const verts = this.playerLib.TransformVerts(Player.GetDummyVerts(), data.index, frameNumber); + const px = verts[0]; + const py = verts[1]; + container.position.set(px, py); + const ax = Math.atan2(verts[5] - verts[3], verts[4] - verts[2]); + const ay = Math.atan2(verts[7] - verts[3], verts[6] - verts[2]); + container.rotation = ax; + container.skew.x = ay - ax - Math.PI / 2; + break; + } + } + } + } + /** + * + * 名前を指定してパーツの再生するインスタンスアニメを変更します。 + * 指定したパーツがインスタンスパーツでない場合、falseを返します. + * インスタンスパーツ名はディフォルトでは「ssae名:モーション名」とつけられています。 + * 再生するアニメの名前は アニメパック名 と アニメ名 で指定してください。 + * 現在再生しているアニメを指定することは入れ子となり無限ループとなるためできません。 + * + * 変更するアニメーションは同じ ssfb に含まれる必要があります。 + * インスタンスパーツが再生するアニメを変更します + * + * インスタンスキーは + * + * @param partName SS上のパーツ名 + * @param animePackName 参照するアニメパック名 + * @param animeName 参照するアニメ名 + * @param overWrite インスタンスキーの上書きフラグ + * @param keyParam インスタンスキー + * + * @constructor + */ + ChangeInstanceAnime(partName, animePackName, animeName, overWrite, keyParam = null) { + let rc = false; + if (this.animePackName !== null && this.animeName !== null) { + let packData = this.playerLib.animePackData; + let partsLength = packData.partsLength(); + for (let index = 0; index < partsLength; index++) { + let partData = packData.parts(index); + if (partData.name() === partName) { + let mesh = this.prevPartObject[index]; + if (mesh === null || mesh instanceof SS6Player) { + this.substituteOverWrite[index] = overWrite; + let keyParamAsSubstitute; + if (keyParam !== null) { + keyParamAsSubstitute = keyParam; + mesh = this.MakeCellPlayer(animePackName + "/" + animeName, keyParam.refStartframe); + } else { + mesh = this.MakeCellPlayer(animePackName + "/" + animeName); + keyParamAsSubstitute = new SS6PlayerInstanceKeyParam(); + keyParamAsSubstitute.refStartframe = mesh.startFrame; + keyParamAsSubstitute.refEndframe = mesh.endFrame; + } + mesh.label = partData.name(); + this.prevPartObject[index] = mesh; + this.substituteKeyParam[index] = keyParamAsSubstitute; + rc = true; + break; + } + } + } + } + return rc; + } + /** + * 矩形セルをメッシュ(5verts4Tri)で作成 + * @param {number} id - セルID + * @return {PIXI.Mesh} - メッシュ + */ + MakeCellMesh(id) { + const cell = this.playerLib.fbObj.cells(id); + const u1 = cell.u1(); + const u2 = cell.u2(); + const v1 = cell.v1(); + const v2 = cell.v2(); + const w = cell.width() / 2; + const h = cell.height() / 2; + return new pixi_js.Mesh({ + geometry: new pixi_js.MeshGeometry({ + positions: new Float32Array([ + 0, + 0, + -w, + -h, + w, + -h, + -w, + h, + w, + h + ]), + uvs: new Float32Array([ + (u1 + u2) / 2, + (v1 + v2) / 2, + u1, + v1, + u2, + v1, + u1, + v2, + u2, + v2 + ]), + indices: new Uint32Array([ + 0, + 1, + 2, + 0, + 2, + 4, + 0, + 4, + 3, + 0, + 1, + 3 + ]), + topology: "triangle-list" + }), + texture: this.ss6project.getTexture(cell.cellMap().name()) + }); + } + /** + * メッシュセルからメッシュを作成 + * @param {number} partID - パーツID + * @param {number} cellID - セルID + * @param {number} origCellID - オリジナルのセルID + * @return {PIXI.Mesh} - メッシュ + */ + MakeMeshCellMesh(partID, cellID, origCellID) { + const meshsDataUV = this.playerLib.animationData.meshsDataUv(partID); + const uvLength = meshsDataUV.uvLength(); + if (uvLength > 0) { + const cell = this.playerLib.fbObj.cells(cellID); + const origCell = this.playerLib.fbObj.cells(origCellID); + const diff_u = cellID === origCellID ? 0 : (cell.u1() + cell.u2()) / 2 - (origCell.u1() + origCell.u2()) / 2; + const diff_v = cellID === origCellID ? 0 : (cell.v1() + cell.v2()) / 2 - (origCell.v1() + origCell.v2()) / 2; + const uvs = new Float32Array(uvLength - 2); + const meshNum = meshsDataUV.uv(1); + for (let idx = 2; idx < uvLength; idx++) uvs[idx - 2] = meshsDataUV.uv(idx) + (idx % 2 === 0 ? diff_u : diff_v); + const meshsDataIndices = this.playerLib.animationData.meshsDataIndices(partID); + const indicesLength = meshsDataIndices.indicesLength(); + const indices = new Uint32Array(indicesLength - 1); + for (let idx = 1; idx < indicesLength; idx++) indices[idx - 1] = meshsDataIndices.indices(idx); + return new pixi_js.Mesh({ + geometry: new pixi_js.MeshGeometry({ + positions: new Float32Array(meshNum * 2), + uvs, + indices, + topology: "triangle-list" + }), + texture: this.ss6project.getTexture(this.playerLib.fbObj.cells(cellID).cellMap().name()) + }); + } + return null; + } + /** + * セルをインスタンスで作成 + * @param {String} refname 参照アニメ名 + * @param {number or undefined} refStart + * @return {SS6Player} - インスタンス + */ + MakeCellPlayer(refname, refStart = void 0) { + const split = refname.split("/"); + const ssp = new SS6Player(this.ss6project); + ssp.Setup(split[0], split[1]); + ssp.Play(refStart); + return ssp; + } + resetLiveFrame() { + const layers = this.playerLib.animationData.defaultDataLength(); + for (let i = 0; i < layers; i++) this.liveFrame[i] = 0; + } + }; + exports.SS6PlayerInstanceKeyParam = SS6PlayerInstanceKeyParam; + exports.SS6Project = SS6Project; +}); -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('pixi.js')) : - typeof define === 'function' && define.amd ? define(['exports', 'pixi.js'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ss6PlayerPixi = {}, global.PIXI)); -})(this, (function (exports, pixi_js) { 'use strict'; - - class FrameData { - } - const SIZEOF_INT = 4; - const FILE_IDENTIFIER_LENGTH = 4; - const SIZE_PREFIX_LENGTH = 4; - const int32 = new Int32Array(2); - const float32 = new Float32Array(int32.buffer); - const float64 = new Float64Array(int32.buffer); - const isLittleEndian = new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1; - var Encoding; - (function(Encoding2) { - Encoding2[Encoding2["UTF8_BYTES"] = 1] = "UTF8_BYTES"; - Encoding2[Encoding2["UTF16_STRING"] = 2] = "UTF16_STRING"; - })(Encoding || (Encoding = {})); - class ByteBuffer { - /** - * Create a new ByteBuffer with a given array of bytes (`Uint8Array`) - */ - constructor(bytes_) { - this.bytes_ = bytes_; - this.position_ = 0; - this.text_decoder_ = new TextDecoder(); - } - /** - * Create and allocate a new ByteBuffer with a given size. - */ - static allocate(byte_size) { - return new ByteBuffer(new Uint8Array(byte_size)); - } - clear() { - this.position_ = 0; - } - /** - * Get the underlying `Uint8Array`. - */ - bytes() { - return this.bytes_; - } - /** - * Get the buffer's position. - */ - position() { - return this.position_; - } - /** - * Set the buffer's position. - */ - setPosition(position) { - this.position_ = position; - } - /** - * Get the buffer's capacity. - */ - capacity() { - return this.bytes_.length; - } - readInt8(offset) { - return this.readUint8(offset) << 24 >> 24; - } - readUint8(offset) { - return this.bytes_[offset]; - } - readInt16(offset) { - return this.readUint16(offset) << 16 >> 16; - } - readUint16(offset) { - return this.bytes_[offset] | this.bytes_[offset + 1] << 8; - } - readInt32(offset) { - return this.bytes_[offset] | this.bytes_[offset + 1] << 8 | this.bytes_[offset + 2] << 16 | this.bytes_[offset + 3] << 24; - } - readUint32(offset) { - return this.readInt32(offset) >>> 0; - } - readInt64(offset) { - return BigInt.asIntN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); - } - readUint64(offset) { - return BigInt.asUintN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); - } - readFloat32(offset) { - int32[0] = this.readInt32(offset); - return float32[0]; - } - readFloat64(offset) { - int32[isLittleEndian ? 0 : 1] = this.readInt32(offset); - int32[isLittleEndian ? 1 : 0] = this.readInt32(offset + 4); - return float64[0]; - } - writeInt8(offset, value) { - this.bytes_[offset] = value; - } - writeUint8(offset, value) { - this.bytes_[offset] = value; - } - writeInt16(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - } - writeUint16(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - } - writeInt32(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - this.bytes_[offset + 2] = value >> 16; - this.bytes_[offset + 3] = value >> 24; - } - writeUint32(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - this.bytes_[offset + 2] = value >> 16; - this.bytes_[offset + 3] = value >> 24; - } - writeInt64(offset, value) { - this.writeInt32(offset, Number(BigInt.asIntN(32, value))); - this.writeInt32(offset + 4, Number(BigInt.asIntN(32, value >> BigInt(32)))); - } - writeUint64(offset, value) { - this.writeUint32(offset, Number(BigInt.asUintN(32, value))); - this.writeUint32(offset + 4, Number(BigInt.asUintN(32, value >> BigInt(32)))); - } - writeFloat32(offset, value) { - float32[0] = value; - this.writeInt32(offset, int32[0]); - } - writeFloat64(offset, value) { - float64[0] = value; - this.writeInt32(offset, int32[isLittleEndian ? 0 : 1]); - this.writeInt32(offset + 4, int32[isLittleEndian ? 1 : 0]); - } - /** - * Return the file identifier. Behavior is undefined for FlatBuffers whose - * schema does not include a file_identifier (likely points at padding or the - * start of a the root vtable). - */ - getBufferIdentifier() { - if (this.bytes_.length < this.position_ + SIZEOF_INT + FILE_IDENTIFIER_LENGTH) { - throw new Error("FlatBuffers: ByteBuffer is too short to contain an identifier."); - } - let result = ""; - for (let i = 0; i < FILE_IDENTIFIER_LENGTH; i++) { - result += String.fromCharCode(this.readInt8(this.position_ + SIZEOF_INT + i)); - } - return result; - } - /** - * Look up a field in the vtable, return an offset into the object, or 0 if the - * field is not present. - */ - __offset(bb_pos, vtable_offset) { - const vtable = bb_pos - this.readInt32(bb_pos); - return vtable_offset < this.readInt16(vtable) ? this.readInt16(vtable + vtable_offset) : 0; - } - /** - * Initialize any Table-derived type to point to the union at the given offset. - */ - __union(t, offset) { - t.bb_pos = offset + this.readInt32(offset); - t.bb = this; - return t; - } - /** - * Create a JavaScript string from UTF-8 data stored inside the FlatBuffer. - * This allocates a new string and converts to wide chars upon each access. - * - * To avoid the conversion to string, pass Encoding.UTF8_BYTES as the - * "optionalEncoding" argument. This is useful for avoiding conversion when - * the data will just be packaged back up in another FlatBuffer later on. - * - * @param offset - * @param opt_encoding Defaults to UTF16_STRING - */ - __string(offset, opt_encoding) { - offset += this.readInt32(offset); - const length = this.readInt32(offset); - offset += SIZEOF_INT; - const utf8bytes = this.bytes_.subarray(offset, offset + length); - if (opt_encoding === Encoding.UTF8_BYTES) - return utf8bytes; - else - return this.text_decoder_.decode(utf8bytes); - } - /** - * Handle unions that can contain string as its member, if a Table-derived type then initialize it, - * if a string then return a new one - * - * WARNING: strings are immutable in JS so we can't change the string that the user gave us, this - * makes the behaviour of __union_with_string different compared to __union - */ - __union_with_string(o, offset) { - if (typeof o === "string") { - return this.__string(offset); - } - return this.__union(o, offset); - } - /** - * Retrieve the relative offset stored at "offset" - */ - __indirect(offset) { - return offset + this.readInt32(offset); - } - /** - * Get the start of data of a vector whose offset is stored at "offset" in this object. - */ - __vector(offset) { - return offset + this.readInt32(offset) + SIZEOF_INT; - } - /** - * Get the length of a vector whose offset is stored at "offset" in this object. - */ - __vector_len(offset) { - return this.readInt32(offset + this.readInt32(offset)); - } - __has_identifier(ident) { - if (ident.length != FILE_IDENTIFIER_LENGTH) { - throw new Error("FlatBuffers: file identifier must be length " + FILE_IDENTIFIER_LENGTH); - } - for (let i = 0; i < FILE_IDENTIFIER_LENGTH; i++) { - if (ident.charCodeAt(i) != this.readInt8(this.position() + SIZEOF_INT + i)) { - return false; - } - } - return true; - } - /** - * A helper function for generating list for obj api - */ - createScalarList(listAccessor, listLength) { - const ret = []; - for (let i = 0; i < listLength; ++i) { - const val = listAccessor(i); - if (val !== null) { - ret.push(val); - } - } - return ret; - } - /** - * A helper function for generating list for obj api - * @param listAccessor function that accepts an index and return data at that index - * @param listLength listLength - * @param res result list - */ - createObjList(listAccessor, listLength) { - const ret = []; - for (let i = 0; i < listLength; ++i) { - const val = listAccessor(i); - if (val !== null) { - ret.push(val.unpack()); - } - } - return ret; - } - } - class AnimationInitialData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsAnimationInitialData(bb, obj) { - return (obj || new AnimationInitialData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsAnimationInitialData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new AnimationInitialData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - index() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - lowflag() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - highflag() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - priority() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - cellIndex() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - opacity() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - localopacity() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - masklimen() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - positionX() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - positionY() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - positionZ() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - pivotX() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - pivotY() { - const offset = this.bb.__offset(this.bb_pos, 28); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - rotationX() { - const offset = this.bb.__offset(this.bb_pos, 30); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - rotationY() { - const offset = this.bb.__offset(this.bb_pos, 32); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - rotationZ() { - const offset = this.bb.__offset(this.bb_pos, 34); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - scaleX() { - const offset = this.bb.__offset(this.bb_pos, 36); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - scaleY() { - const offset = this.bb.__offset(this.bb_pos, 38); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - localscaleX() { - const offset = this.bb.__offset(this.bb_pos, 40); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - localscaleY() { - const offset = this.bb.__offset(this.bb_pos, 42); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - sizeX() { - const offset = this.bb.__offset(this.bb_pos, 44); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - sizeY() { - const offset = this.bb.__offset(this.bb_pos, 46); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvMoveX() { - const offset = this.bb.__offset(this.bb_pos, 48); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvMoveY() { - const offset = this.bb.__offset(this.bb_pos, 50); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvRotation() { - const offset = this.bb.__offset(this.bb_pos, 52); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvScaleX() { - const offset = this.bb.__offset(this.bb_pos, 54); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvScaleY() { - const offset = this.bb.__offset(this.bb_pos, 56); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - boundingRadius() { - const offset = this.bb.__offset(this.bb_pos, 58); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - instanceValueCurKeyframe() { - const offset = this.bb.__offset(this.bb_pos, 60); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueStartFrame() { - const offset = this.bb.__offset(this.bb_pos, 62); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueEndFrame() { - const offset = this.bb.__offset(this.bb_pos, 64); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueLoopNum() { - const offset = this.bb.__offset(this.bb_pos, 66); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueSpeed() { - const offset = this.bb.__offset(this.bb_pos, 68); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - instanceValueLoopflag() { - const offset = this.bb.__offset(this.bb_pos, 70); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - effectValueCurKeyframe() { - const offset = this.bb.__offset(this.bb_pos, 72); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - effectValueStartTime() { - const offset = this.bb.__offset(this.bb_pos, 74); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - effectValueSpeed() { - const offset = this.bb.__offset(this.bb_pos, 76); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - effectValueLoopflag() { - const offset = this.bb.__offset(this.bb_pos, 78); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - static startAnimationInitialData(builder) { - builder.startObject(38); - } - static addIndex(builder, index) { - builder.addFieldInt16(0, index, 0); - } - static addLowflag(builder, lowflag) { - builder.addFieldInt32(1, lowflag, 0); - } - static addHighflag(builder, highflag) { - builder.addFieldInt32(2, highflag, 0); - } - static addPriority(builder, priority) { - builder.addFieldInt16(3, priority, 0); - } - static addCellIndex(builder, cellIndex) { - builder.addFieldInt16(4, cellIndex, 0); - } - static addOpacity(builder, opacity) { - builder.addFieldInt16(5, opacity, 0); - } - static addLocalopacity(builder, localopacity) { - builder.addFieldInt16(6, localopacity, 0); - } - static addMasklimen(builder, masklimen) { - builder.addFieldInt16(7, masklimen, 0); - } - static addPositionX(builder, positionX) { - builder.addFieldFloat32(8, positionX, 0); - } - static addPositionY(builder, positionY) { - builder.addFieldFloat32(9, positionY, 0); - } - static addPositionZ(builder, positionZ) { - builder.addFieldFloat32(10, positionZ, 0); - } - static addPivotX(builder, pivotX) { - builder.addFieldFloat32(11, pivotX, 0); - } - static addPivotY(builder, pivotY) { - builder.addFieldFloat32(12, pivotY, 0); - } - static addRotationX(builder, rotationX) { - builder.addFieldFloat32(13, rotationX, 0); - } - static addRotationY(builder, rotationY) { - builder.addFieldFloat32(14, rotationY, 0); - } - static addRotationZ(builder, rotationZ) { - builder.addFieldFloat32(15, rotationZ, 0); - } - static addScaleX(builder, scaleX) { - builder.addFieldFloat32(16, scaleX, 0); - } - static addScaleY(builder, scaleY) { - builder.addFieldFloat32(17, scaleY, 0); - } - static addLocalscaleX(builder, localscaleX) { - builder.addFieldFloat32(18, localscaleX, 0); - } - static addLocalscaleY(builder, localscaleY) { - builder.addFieldFloat32(19, localscaleY, 0); - } - static addSizeX(builder, sizeX) { - builder.addFieldFloat32(20, sizeX, 0); - } - static addSizeY(builder, sizeY) { - builder.addFieldFloat32(21, sizeY, 0); - } - static addUvMoveX(builder, uvMoveX) { - builder.addFieldFloat32(22, uvMoveX, 0); - } - static addUvMoveY(builder, uvMoveY) { - builder.addFieldFloat32(23, uvMoveY, 0); - } - static addUvRotation(builder, uvRotation) { - builder.addFieldFloat32(24, uvRotation, 0); - } - static addUvScaleX(builder, uvScaleX) { - builder.addFieldFloat32(25, uvScaleX, 0); - } - static addUvScaleY(builder, uvScaleY) { - builder.addFieldFloat32(26, uvScaleY, 0); - } - static addBoundingRadius(builder, boundingRadius) { - builder.addFieldFloat32(27, boundingRadius, 0); - } - static addInstanceValueCurKeyframe(builder, instanceValueCurKeyframe) { - builder.addFieldInt32(28, instanceValueCurKeyframe, 0); - } - static addInstanceValueStartFrame(builder, instanceValueStartFrame) { - builder.addFieldInt32(29, instanceValueStartFrame, 0); - } - static addInstanceValueEndFrame(builder, instanceValueEndFrame) { - builder.addFieldInt32(30, instanceValueEndFrame, 0); - } - static addInstanceValueLoopNum(builder, instanceValueLoopNum) { - builder.addFieldInt32(31, instanceValueLoopNum, 0); - } - static addInstanceValueSpeed(builder, instanceValueSpeed) { - builder.addFieldFloat32(32, instanceValueSpeed, 0); - } - static addInstanceValueLoopflag(builder, instanceValueLoopflag) { - builder.addFieldInt32(33, instanceValueLoopflag, 0); - } - static addEffectValueCurKeyframe(builder, effectValueCurKeyframe) { - builder.addFieldInt32(34, effectValueCurKeyframe, 0); - } - static addEffectValueStartTime(builder, effectValueStartTime) { - builder.addFieldInt32(35, effectValueStartTime, 0); - } - static addEffectValueSpeed(builder, effectValueSpeed) { - builder.addFieldFloat32(36, effectValueSpeed, 0); - } - static addEffectValueLoopflag(builder, effectValueLoopflag) { - builder.addFieldInt32(37, effectValueLoopflag, 0); - } - static endAnimationInitialData(builder) { - const offset = builder.endObject(); - return offset; - } - static createAnimationInitialData(builder, index, lowflag, highflag, priority, cellIndex, opacity, localopacity, masklimen, positionX, positionY, positionZ, pivotX, pivotY, rotationX, rotationY, rotationZ, scaleX, scaleY, localscaleX, localscaleY, sizeX, sizeY, uvMoveX, uvMoveY, uvRotation, uvScaleX, uvScaleY, boundingRadius, instanceValueCurKeyframe, instanceValueStartFrame, instanceValueEndFrame, instanceValueLoopNum, instanceValueSpeed, instanceValueLoopflag, effectValueCurKeyframe, effectValueStartTime, effectValueSpeed, effectValueLoopflag) { - AnimationInitialData.startAnimationInitialData(builder); - AnimationInitialData.addIndex(builder, index); - AnimationInitialData.addLowflag(builder, lowflag); - AnimationInitialData.addHighflag(builder, highflag); - AnimationInitialData.addPriority(builder, priority); - AnimationInitialData.addCellIndex(builder, cellIndex); - AnimationInitialData.addOpacity(builder, opacity); - AnimationInitialData.addLocalopacity(builder, localopacity); - AnimationInitialData.addMasklimen(builder, masklimen); - AnimationInitialData.addPositionX(builder, positionX); - AnimationInitialData.addPositionY(builder, positionY); - AnimationInitialData.addPositionZ(builder, positionZ); - AnimationInitialData.addPivotX(builder, pivotX); - AnimationInitialData.addPivotY(builder, pivotY); - AnimationInitialData.addRotationX(builder, rotationX); - AnimationInitialData.addRotationY(builder, rotationY); - AnimationInitialData.addRotationZ(builder, rotationZ); - AnimationInitialData.addScaleX(builder, scaleX); - AnimationInitialData.addScaleY(builder, scaleY); - AnimationInitialData.addLocalscaleX(builder, localscaleX); - AnimationInitialData.addLocalscaleY(builder, localscaleY); - AnimationInitialData.addSizeX(builder, sizeX); - AnimationInitialData.addSizeY(builder, sizeY); - AnimationInitialData.addUvMoveX(builder, uvMoveX); - AnimationInitialData.addUvMoveY(builder, uvMoveY); - AnimationInitialData.addUvRotation(builder, uvRotation); - AnimationInitialData.addUvScaleX(builder, uvScaleX); - AnimationInitialData.addUvScaleY(builder, uvScaleY); - AnimationInitialData.addBoundingRadius(builder, boundingRadius); - AnimationInitialData.addInstanceValueCurKeyframe(builder, instanceValueCurKeyframe); - AnimationInitialData.addInstanceValueStartFrame(builder, instanceValueStartFrame); - AnimationInitialData.addInstanceValueEndFrame(builder, instanceValueEndFrame); - AnimationInitialData.addInstanceValueLoopNum(builder, instanceValueLoopNum); - AnimationInitialData.addInstanceValueSpeed(builder, instanceValueSpeed); - AnimationInitialData.addInstanceValueLoopflag(builder, instanceValueLoopflag); - AnimationInitialData.addEffectValueCurKeyframe(builder, effectValueCurKeyframe); - AnimationInitialData.addEffectValueStartTime(builder, effectValueStartTime); - AnimationInitialData.addEffectValueSpeed(builder, effectValueSpeed); - AnimationInitialData.addEffectValueLoopflag(builder, effectValueLoopflag); - return AnimationInitialData.endAnimationInitialData(builder); - } - } - class partState { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAspartState(bb, obj) { - return (obj || new partState()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAspartState(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new partState()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - index() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - flag1() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - flag2() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - data(index) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readUint32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; - } - dataLength() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - dataArray() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - static startpartState(builder) { - builder.startObject(4); - } - static addIndex(builder, index) { - builder.addFieldInt16(0, index, 0); - } - static addFlag1(builder, flag1) { - builder.addFieldInt32(1, flag1, 0); - } - static addFlag2(builder, flag2) { - builder.addFieldInt32(2, flag2, 0); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(3, dataOffset, 0); - } - static createDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt32(data[i]); - } - return builder.endVector(); - } - static startDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endpartState(builder) { - const offset = builder.endObject(); - return offset; - } - static createpartState(builder, index, flag1, flag2, dataOffset) { - partState.startpartState(builder); - partState.addIndex(builder, index); - partState.addFlag1(builder, flag1); - partState.addFlag2(builder, flag2); - partState.addData(builder, dataOffset); - return partState.endpartState(builder); - } - } - class frameDataIndex { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsframeDataIndex(bb, obj) { - return (obj || new frameDataIndex()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsframeDataIndex(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new frameDataIndex()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - states(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? (obj || new partState()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - statesLength() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startframeDataIndex(builder) { - builder.startObject(1); - } - static addStates(builder, statesOffset) { - builder.addFieldOffset(0, statesOffset, 0); - } - static createStatesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startStatesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endframeDataIndex(builder) { - const offset = builder.endObject(); - return offset; - } - static createframeDataIndex(builder, statesOffset) { - frameDataIndex.startframeDataIndex(builder); - frameDataIndex.addStates(builder, statesOffset); - return frameDataIndex.endframeDataIndex(builder); - } - } - class labelDataItem { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAslabelDataItem(bb, obj) { - return (obj || new labelDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAslabelDataItem(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new labelDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - label(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - frameIndex() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startlabelDataItem(builder) { - builder.startObject(2); - } - static addLabel(builder, labelOffset) { - builder.addFieldOffset(0, labelOffset, 0); - } - static addFrameIndex(builder, frameIndex) { - builder.addFieldInt16(1, frameIndex, 0); - } - static endlabelDataItem(builder) { - const offset = builder.endObject(); - return offset; - } - static createlabelDataItem(builder, labelOffset, frameIndex) { - labelDataItem.startlabelDataItem(builder); - labelDataItem.addLabel(builder, labelOffset); - labelDataItem.addFrameIndex(builder, frameIndex); - return labelDataItem.endlabelDataItem(builder); - } - } - class meshDataIndices { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsmeshDataIndices(bb, obj) { - return (obj || new meshDataIndices()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsmeshDataIndices(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new meshDataIndices()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - indices(index) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; - } - indicesLength() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - indicesArray() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - static startmeshDataIndices(builder) { - builder.startObject(1); - } - static addIndices(builder, indicesOffset) { - builder.addFieldOffset(0, indicesOffset, 0); - } - static createIndicesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addFloat32(data[i]); - } - return builder.endVector(); - } - static startIndicesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endmeshDataIndices(builder) { - const offset = builder.endObject(); - return offset; - } - static createmeshDataIndices(builder, indicesOffset) { - meshDataIndices.startmeshDataIndices(builder); - meshDataIndices.addIndices(builder, indicesOffset); - return meshDataIndices.endmeshDataIndices(builder); - } - } - class meshDataUV { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsmeshDataUV(bb, obj) { - return (obj || new meshDataUV()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsmeshDataUV(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new meshDataUV()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - uv(index) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; - } - uvLength() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - uvArray() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - static startmeshDataUV(builder) { - builder.startObject(1); - } - static addUv(builder, uvOffset) { - builder.addFieldOffset(0, uvOffset, 0); - } - static createUvVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addFloat32(data[i]); - } - return builder.endVector(); - } - static startUvVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endmeshDataUV(builder) { - const offset = builder.endObject(); - return offset; - } - static createmeshDataUV(builder, uvOffset) { - meshDataUV.startmeshDataUV(builder); - meshDataUV.addUv(builder, uvOffset); - return meshDataUV.endmeshDataUV(builder); - } - } - class userDataItem { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsuserDataItem(bb, obj) { - return (obj || new userDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsuserDataItem(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new userDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - flags() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - arrayIndex() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - dataType(index) { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; - } - dataTypeLength() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - dataTypeArray() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - data(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__union(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; - } - dataLength() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startuserDataItem(builder) { - builder.startObject(4); - } - static addFlags(builder, flags) { - builder.addFieldInt16(0, flags, 0); - } - static addArrayIndex(builder, arrayIndex) { - builder.addFieldInt16(1, arrayIndex, 0); - } - static addDataType(builder, dataTypeOffset) { - builder.addFieldOffset(2, dataTypeOffset, 0); - } - static createDataTypeVector(builder, data) { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]); - } - return builder.endVector(); - } - static startDataTypeVector(builder, numElems) { - builder.startVector(1, numElems, 1); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(3, dataOffset, 0); - } - static createDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static enduserDataItem(builder) { - const offset = builder.endObject(); - return offset; - } - static createuserDataItem(builder, flags, arrayIndex, dataTypeOffset, dataOffset) { - userDataItem.startuserDataItem(builder); - userDataItem.addFlags(builder, flags); - userDataItem.addArrayIndex(builder, arrayIndex); - userDataItem.addDataType(builder, dataTypeOffset); - userDataItem.addData(builder, dataOffset); - return userDataItem.enduserDataItem(builder); - } - } - class userDataPerFrame { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsuserDataPerFrame(bb, obj) { - return (obj || new userDataPerFrame()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsuserDataPerFrame(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new userDataPerFrame()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - frameIndex() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - data(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new userDataItem()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - dataLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startuserDataPerFrame(builder) { - builder.startObject(2); - } - static addFrameIndex(builder, frameIndex) { - builder.addFieldInt16(0, frameIndex, 0); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(1, dataOffset, 0); - } - static createDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static enduserDataPerFrame(builder) { - const offset = builder.endObject(); - return offset; - } - static createuserDataPerFrame(builder, frameIndex, dataOffset) { - userDataPerFrame.startuserDataPerFrame(builder); - userDataPerFrame.addFrameIndex(builder, frameIndex); - userDataPerFrame.addData(builder, dataOffset); - return userDataPerFrame.enduserDataPerFrame(builder); - } - } - class AnimationData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsAnimationData(bb, obj) { - return (obj || new AnimationData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsAnimationData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new AnimationData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - defaultData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new AnimationInitialData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - defaultDataLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - frameData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? (obj || new frameDataIndex()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - frameDataLength() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - userData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? (obj || new userDataPerFrame()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - userDataLength() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - labelData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? (obj || new labelDataItem()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - labelDataLength() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - meshsDataUv(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? (obj || new meshDataUV()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - meshsDataUvLength() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - meshsDataIndices(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? (obj || new meshDataIndices()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - meshsDataIndicesLength() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - startFrames() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - endFrames() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - totalFrames() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - fps() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - labelNum() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - canvasSizeW() { - const offset = this.bb.__offset(this.bb_pos, 28); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - canvasSizeH() { - const offset = this.bb.__offset(this.bb_pos, 30); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - canvasPvotX() { - const offset = this.bb.__offset(this.bb_pos, 32); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - canvasPvotY() { - const offset = this.bb.__offset(this.bb_pos, 34); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - static startAnimationData(builder) { - builder.startObject(16); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addDefaultData(builder, defaultDataOffset) { - builder.addFieldOffset(1, defaultDataOffset, 0); - } - static createDefaultDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDefaultDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addFrameData(builder, frameDataOffset) { - builder.addFieldOffset(2, frameDataOffset, 0); - } - static createFrameDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startFrameDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addUserData(builder, userDataOffset) { - builder.addFieldOffset(3, userDataOffset, 0); - } - static createUserDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startUserDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addLabelData(builder, labelDataOffset) { - builder.addFieldOffset(4, labelDataOffset, 0); - } - static createLabelDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startLabelDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addMeshsDataUv(builder, meshsDataUvOffset) { - builder.addFieldOffset(5, meshsDataUvOffset, 0); - } - static createMeshsDataUvVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startMeshsDataUvVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addMeshsDataIndices(builder, meshsDataIndicesOffset) { - builder.addFieldOffset(6, meshsDataIndicesOffset, 0); - } - static createMeshsDataIndicesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startMeshsDataIndicesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addStartFrames(builder, startFrames) { - builder.addFieldInt16(7, startFrames, 0); - } - static addEndFrames(builder, endFrames) { - builder.addFieldInt16(8, endFrames, 0); - } - static addTotalFrames(builder, totalFrames) { - builder.addFieldInt16(9, totalFrames, 0); - } - static addFps(builder, fps) { - builder.addFieldInt16(10, fps, 0); - } - static addLabelNum(builder, labelNum) { - builder.addFieldInt16(11, labelNum, 0); - } - static addCanvasSizeW(builder, canvasSizeW) { - builder.addFieldInt16(12, canvasSizeW, 0); - } - static addCanvasSizeH(builder, canvasSizeH) { - builder.addFieldInt16(13, canvasSizeH, 0); - } - static addCanvasPvotX(builder, canvasPvotX) { - builder.addFieldFloat32(14, canvasPvotX, 0); - } - static addCanvasPvotY(builder, canvasPvotY) { - builder.addFieldFloat32(15, canvasPvotY, 0); - } - static endAnimationData(builder) { - const offset = builder.endObject(); - return offset; - } - static createAnimationData(builder, nameOffset, defaultDataOffset, frameDataOffset, userDataOffset, labelDataOffset, meshsDataUvOffset, meshsDataIndicesOffset, startFrames, endFrames, totalFrames, fps, labelNum, canvasSizeW, canvasSizeH, canvasPvotX, canvasPvotY) { - AnimationData.startAnimationData(builder); - AnimationData.addName(builder, nameOffset); - AnimationData.addDefaultData(builder, defaultDataOffset); - AnimationData.addFrameData(builder, frameDataOffset); - AnimationData.addUserData(builder, userDataOffset); - AnimationData.addLabelData(builder, labelDataOffset); - AnimationData.addMeshsDataUv(builder, meshsDataUvOffset); - AnimationData.addMeshsDataIndices(builder, meshsDataIndicesOffset); - AnimationData.addStartFrames(builder, startFrames); - AnimationData.addEndFrames(builder, endFrames); - AnimationData.addTotalFrames(builder, totalFrames); - AnimationData.addFps(builder, fps); - AnimationData.addLabelNum(builder, labelNum); - AnimationData.addCanvasSizeW(builder, canvasSizeW); - AnimationData.addCanvasSizeH(builder, canvasSizeH); - AnimationData.addCanvasPvotX(builder, canvasPvotX); - AnimationData.addCanvasPvotY(builder, canvasPvotY); - return AnimationData.endAnimationData(builder); - } - } - var SsPartType = /* @__PURE__ */ ((SsPartType2) => { - SsPartType2[SsPartType2["Invalid"] = -1] = "Invalid"; - SsPartType2[SsPartType2["Nulltype"] = 0] = "Nulltype"; - SsPartType2[SsPartType2["Normal"] = 1] = "Normal"; - SsPartType2[SsPartType2["Text"] = 2] = "Text"; - SsPartType2[SsPartType2["Instance"] = 3] = "Instance"; - SsPartType2[SsPartType2["Armature"] = 4] = "Armature"; - SsPartType2[SsPartType2["Effect"] = 5] = "Effect"; - SsPartType2[SsPartType2["Mesh"] = 6] = "Mesh"; - SsPartType2[SsPartType2["Movenode"] = 7] = "Movenode"; - SsPartType2[SsPartType2["Constraint"] = 8] = "Constraint"; - SsPartType2[SsPartType2["Mask"] = 9] = "Mask"; - SsPartType2[SsPartType2["Joint"] = 10] = "Joint"; - SsPartType2[SsPartType2["Bonepoint"] = 11] = "Bonepoint"; - return SsPartType2; - })(SsPartType || {}); - class PartData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsPartData(bb, obj) { - return (obj || new PartData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsPartData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new PartData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - index() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - parentIndex() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - type() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt8(this.bb_pos + offset) : SsPartType.Nulltype; - } - boundsType() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - alphaBlendType() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - refname(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - effectfilename(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - colorLabel(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - maskInfluence() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startPartData(builder) { - builder.startObject(10); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addIndex(builder, index) { - builder.addFieldInt16(1, index, 0); - } - static addParentIndex(builder, parentIndex) { - builder.addFieldInt16(2, parentIndex, 0); - } - static addType(builder, type) { - builder.addFieldInt8(3, type, SsPartType.Nulltype); - } - static addBoundsType(builder, boundsType) { - builder.addFieldInt16(4, boundsType, 0); - } - static addAlphaBlendType(builder, alphaBlendType) { - builder.addFieldInt16(5, alphaBlendType, 0); - } - static addRefname(builder, refnameOffset) { - builder.addFieldOffset(6, refnameOffset, 0); - } - static addEffectfilename(builder, effectfilenameOffset) { - builder.addFieldOffset(7, effectfilenameOffset, 0); - } - static addColorLabel(builder, colorLabelOffset) { - builder.addFieldOffset(8, colorLabelOffset, 0); - } - static addMaskInfluence(builder, maskInfluence) { - builder.addFieldInt16(9, maskInfluence, 0); - } - static endPartData(builder) { - const offset = builder.endObject(); - return offset; - } - static createPartData(builder, nameOffset, index, parentIndex, type, boundsType, alphaBlendType, refnameOffset, effectfilenameOffset, colorLabelOffset, maskInfluence) { - PartData.startPartData(builder); - PartData.addName(builder, nameOffset); - PartData.addIndex(builder, index); - PartData.addParentIndex(builder, parentIndex); - PartData.addType(builder, type); - PartData.addBoundsType(builder, boundsType); - PartData.addAlphaBlendType(builder, alphaBlendType); - PartData.addRefname(builder, refnameOffset); - PartData.addEffectfilename(builder, effectfilenameOffset); - PartData.addColorLabel(builder, colorLabelOffset); - PartData.addMaskInfluence(builder, maskInfluence); - return PartData.endPartData(builder); - } - } - class AnimePackData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsAnimePackData(bb, obj) { - return (obj || new AnimePackData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsAnimePackData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new AnimePackData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - parts(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new PartData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - partsLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - animations(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? (obj || new AnimationData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - animationsLength() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startAnimePackData(builder) { - builder.startObject(3); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addParts(builder, partsOffset) { - builder.addFieldOffset(1, partsOffset, 0); - } - static createPartsVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startPartsVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addAnimations(builder, animationsOffset) { - builder.addFieldOffset(2, animationsOffset, 0); - } - static createAnimationsVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startAnimationsVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endAnimePackData(builder) { - const offset = builder.endObject(); - return offset; - } - static createAnimePackData(builder, nameOffset, partsOffset, animationsOffset) { - AnimePackData.startAnimePackData(builder); - AnimePackData.addName(builder, nameOffset); - AnimePackData.addParts(builder, partsOffset); - AnimePackData.addAnimations(builder, animationsOffset); - return AnimePackData.endAnimePackData(builder); - } - } - class CellMap { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsCellMap(bb, obj) { - return (obj || new CellMap()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsCellMap(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new CellMap()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - imagePath(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - index() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - wrapmode() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - filtermode() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startCellMap(builder) { - builder.startObject(5); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addImagePath(builder, imagePathOffset) { - builder.addFieldOffset(1, imagePathOffset, 0); - } - static addIndex(builder, index) { - builder.addFieldInt16(2, index, 0); - } - static addWrapmode(builder, wrapmode) { - builder.addFieldInt16(3, wrapmode, 0); - } - static addFiltermode(builder, filtermode) { - builder.addFieldInt16(4, filtermode, 0); - } - static endCellMap(builder) { - const offset = builder.endObject(); - return offset; - } - static createCellMap(builder, nameOffset, imagePathOffset, index, wrapmode, filtermode) { - CellMap.startCellMap(builder); - CellMap.addName(builder, nameOffset); - CellMap.addImagePath(builder, imagePathOffset); - CellMap.addIndex(builder, index); - CellMap.addWrapmode(builder, wrapmode); - CellMap.addFiltermode(builder, filtermode); - return CellMap.endCellMap(builder); - } - } - class Cell { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsCell(bb, obj) { - return (obj || new Cell()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsCell(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new Cell()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - cellMap(obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new CellMap()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; - } - indexInCellMap() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - x() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - y() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - width() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - height() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - pivotX() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - pivotY() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - u1() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - v1() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - u2() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - v2() { - const offset = this.bb.__offset(this.bb_pos, 28); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - static startCell(builder) { - builder.startObject(13); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addCellMap(builder, cellMapOffset) { - builder.addFieldOffset(1, cellMapOffset, 0); - } - static addIndexInCellMap(builder, indexInCellMap) { - builder.addFieldInt16(2, indexInCellMap, 0); - } - static addX(builder, x) { - builder.addFieldInt16(3, x, 0); - } - static addY(builder, y) { - builder.addFieldInt16(4, y, 0); - } - static addWidth(builder, width) { - builder.addFieldInt16(5, width, 0); - } - static addHeight(builder, height) { - builder.addFieldInt16(6, height, 0); - } - static addPivotX(builder, pivotX) { - builder.addFieldFloat32(7, pivotX, 0); - } - static addPivotY(builder, pivotY) { - builder.addFieldFloat32(8, pivotY, 0); - } - static addU1(builder, u1) { - builder.addFieldFloat32(9, u1, 0); - } - static addV1(builder, v1) { - builder.addFieldFloat32(10, v1, 0); - } - static addU2(builder, u2) { - builder.addFieldFloat32(11, u2, 0); - } - static addV2(builder, v2) { - builder.addFieldFloat32(12, v2, 0); - } - static endCell(builder) { - const offset = builder.endObject(); - return offset; - } - } - class EffectNode { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsEffectNode(bb, obj) { - return (obj || new EffectNode()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsEffectNode(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new EffectNode()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - arrayIndex() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - parentIndex() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - type() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - cellIndex() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - blendType() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numBehavior() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - behaviorType(index) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; - } - behaviorTypeLength() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - behaviorTypeArray() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - behavior(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__union(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; - } - behaviorLength() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startEffectNode(builder) { - builder.startObject(8); - } - static addArrayIndex(builder, arrayIndex) { - builder.addFieldInt16(0, arrayIndex, 0); - } - static addParentIndex(builder, parentIndex) { - builder.addFieldInt16(1, parentIndex, 0); - } - static addType(builder, type) { - builder.addFieldInt16(2, type, 0); - } - static addCellIndex(builder, cellIndex) { - builder.addFieldInt16(3, cellIndex, 0); - } - static addBlendType(builder, blendType) { - builder.addFieldInt16(4, blendType, 0); - } - static addNumBehavior(builder, numBehavior) { - builder.addFieldInt16(5, numBehavior, 0); - } - static addBehaviorType(builder, behaviorTypeOffset) { - builder.addFieldOffset(6, behaviorTypeOffset, 0); - } - static createBehaviorTypeVector(builder, data) { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]); - } - return builder.endVector(); - } - static startBehaviorTypeVector(builder, numElems) { - builder.startVector(1, numElems, 1); - } - static addBehavior(builder, behaviorOffset) { - builder.addFieldOffset(7, behaviorOffset, 0); - } - static createBehaviorVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startBehaviorVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endEffectNode(builder) { - const offset = builder.endObject(); - return offset; - } - static createEffectNode(builder, arrayIndex, parentIndex, type, cellIndex, blendType, numBehavior, behaviorTypeOffset, behaviorOffset) { - EffectNode.startEffectNode(builder); - EffectNode.addArrayIndex(builder, arrayIndex); - EffectNode.addParentIndex(builder, parentIndex); - EffectNode.addType(builder, type); - EffectNode.addCellIndex(builder, cellIndex); - EffectNode.addBlendType(builder, blendType); - EffectNode.addNumBehavior(builder, numBehavior); - EffectNode.addBehaviorType(builder, behaviorTypeOffset); - EffectNode.addBehavior(builder, behaviorOffset); - return EffectNode.endEffectNode(builder); - } - } - class EffectFile { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsEffectFile(bb, obj) { - return (obj || new EffectFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsEffectFile(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new EffectFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - fps() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - isLockRandSeed() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - lockRandSeed() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - layoutScaleX() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - layoutScaleY() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numNodeList() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - effectNode(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? (obj || new EffectNode()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - effectNodeLength() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startEffectFile(builder) { - builder.startObject(8); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addFps(builder, fps) { - builder.addFieldInt16(1, fps, 0); - } - static addIsLockRandSeed(builder, isLockRandSeed) { - builder.addFieldInt16(2, isLockRandSeed, 0); - } - static addLockRandSeed(builder, lockRandSeed) { - builder.addFieldInt16(3, lockRandSeed, 0); - } - static addLayoutScaleX(builder, layoutScaleX) { - builder.addFieldInt16(4, layoutScaleX, 0); - } - static addLayoutScaleY(builder, layoutScaleY) { - builder.addFieldInt16(5, layoutScaleY, 0); - } - static addNumNodeList(builder, numNodeList) { - builder.addFieldInt16(6, numNodeList, 0); - } - static addEffectNode(builder, effectNodeOffset) { - builder.addFieldOffset(7, effectNodeOffset, 0); - } - static createEffectNodeVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startEffectNodeVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endEffectFile(builder) { - const offset = builder.endObject(); - return offset; - } - static createEffectFile(builder, nameOffset, fps, isLockRandSeed, lockRandSeed, layoutScaleX, layoutScaleY, numNodeList, effectNodeOffset) { - EffectFile.startEffectFile(builder); - EffectFile.addName(builder, nameOffset); - EffectFile.addFps(builder, fps); - EffectFile.addIsLockRandSeed(builder, isLockRandSeed); - EffectFile.addLockRandSeed(builder, lockRandSeed); - EffectFile.addLayoutScaleX(builder, layoutScaleX); - EffectFile.addLayoutScaleY(builder, layoutScaleY); - EffectFile.addNumNodeList(builder, numNodeList); - EffectFile.addEffectNode(builder, effectNodeOffset); - return EffectFile.endEffectFile(builder); - } - } - var PART_FLAG = /* @__PURE__ */ ((PART_FLAG22) => { - PART_FLAG22[PART_FLAG22["INVISIBLE"] = 1] = "INVISIBLE"; - PART_FLAG22[PART_FLAG22["FLIP_H"] = 2] = "FLIP_H"; - PART_FLAG22[PART_FLAG22["FLIP_V"] = 4] = "FLIP_V"; - PART_FLAG22[PART_FLAG22["CELL_INDEX"] = 8] = "CELL_INDEX"; - PART_FLAG22[PART_FLAG22["POSITION_X"] = 16] = "POSITION_X"; - PART_FLAG22[PART_FLAG22["POSITION_Y"] = 32] = "POSITION_Y"; - PART_FLAG22[PART_FLAG22["POSITION_Z"] = 64] = "POSITION_Z"; - PART_FLAG22[PART_FLAG22["PIVOT_X"] = 128] = "PIVOT_X"; - PART_FLAG22[PART_FLAG22["PIVOT_Y"] = 256] = "PIVOT_Y"; - PART_FLAG22[PART_FLAG22["ROTATIONX"] = 512] = "ROTATIONX"; - PART_FLAG22[PART_FLAG22["ROTATIONY"] = 1024] = "ROTATIONY"; - PART_FLAG22[PART_FLAG22["ROTATIONZ"] = 2048] = "ROTATIONZ"; - PART_FLAG22[PART_FLAG22["SCALE_X"] = 4096] = "SCALE_X"; - PART_FLAG22[PART_FLAG22["SCALE_Y"] = 8192] = "SCALE_Y"; - PART_FLAG22[PART_FLAG22["LOCALSCALE_X"] = 16384] = "LOCALSCALE_X"; - PART_FLAG22[PART_FLAG22["LOCALSCALE_Y"] = 32768] = "LOCALSCALE_Y"; - PART_FLAG22[PART_FLAG22["OPACITY"] = 65536] = "OPACITY"; - PART_FLAG22[PART_FLAG22["LOCALOPACITY"] = 131072] = "LOCALOPACITY"; - PART_FLAG22[PART_FLAG22["PARTS_COLOR"] = 262144] = "PARTS_COLOR"; - PART_FLAG22[PART_FLAG22["VERTEX_TRANSFORM"] = 524288] = "VERTEX_TRANSFORM"; - PART_FLAG22[PART_FLAG22["SIZE_X"] = 1048576] = "SIZE_X"; - PART_FLAG22[PART_FLAG22["SIZE_Y"] = 2097152] = "SIZE_Y"; - PART_FLAG22[PART_FLAG22["U_MOVE"] = 4194304] = "U_MOVE"; - PART_FLAG22[PART_FLAG22["V_MOVE"] = 8388608] = "V_MOVE"; - PART_FLAG22[PART_FLAG22["UV_ROTATION"] = 16777216] = "UV_ROTATION"; - PART_FLAG22[PART_FLAG22["U_SCALE"] = 33554432] = "U_SCALE"; - PART_FLAG22[PART_FLAG22["V_SCALE"] = 67108864] = "V_SCALE"; - PART_FLAG22[PART_FLAG22["BOUNDINGRADIUS"] = 134217728] = "BOUNDINGRADIUS"; - PART_FLAG22[PART_FLAG22["MASK"] = 268435456] = "MASK"; - PART_FLAG22[PART_FLAG22["PRIORITY"] = 536870912] = "PRIORITY"; - PART_FLAG22[PART_FLAG22["INSTANCE_KEYFRAME"] = 1073741824] = "INSTANCE_KEYFRAME"; - PART_FLAG22[PART_FLAG22["EFFECT_KEYFRAME"] = 2147483648] = "EFFECT_KEYFRAME"; - return PART_FLAG22; - })(PART_FLAG || {}); - var PART_FLAG2 = /* @__PURE__ */ ((PART_FLAG22) => { - PART_FLAG22[PART_FLAG22["MESHDATA"] = 1] = "MESHDATA"; - return PART_FLAG22; - })(PART_FLAG2 || {}); - class ProjectData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsProjectData(bb, obj) { - return (obj || new ProjectData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsProjectData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new ProjectData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static bufferHasIdentifier(bb) { - return bb.__has_identifier("SSFB"); - } - dataId() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - version() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - flags() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - imageBaseDir(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - cells(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? (obj || new Cell()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - cellsLength() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - animePacks(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? (obj || new AnimePackData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - animePacksLength() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - effectFileList(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? (obj || new EffectFile()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - effectFileListLength() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - numCells() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numAnimePacks() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numEffectFileList() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startProjectData(builder) { - builder.startObject(10); - } - static addDataId(builder, dataId) { - builder.addFieldInt32(0, dataId, 0); - } - static addVersion(builder, version) { - builder.addFieldInt32(1, version, 0); - } - static addFlags(builder, flags) { - builder.addFieldInt32(2, flags, 0); - } - static addImageBaseDir(builder, imageBaseDirOffset) { - builder.addFieldOffset(3, imageBaseDirOffset, 0); - } - static addCells(builder, cellsOffset) { - builder.addFieldOffset(4, cellsOffset, 0); - } - static createCellsVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startCellsVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addAnimePacks(builder, animePacksOffset) { - builder.addFieldOffset(5, animePacksOffset, 0); - } - static createAnimePacksVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startAnimePacksVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addEffectFileList(builder, effectFileListOffset) { - builder.addFieldOffset(6, effectFileListOffset, 0); - } - static createEffectFileListVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startEffectFileListVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addNumCells(builder, numCells) { - builder.addFieldInt16(7, numCells, 0); - } - static addNumAnimePacks(builder, numAnimePacks) { - builder.addFieldInt16(8, numAnimePacks, 0); - } - static addNumEffectFileList(builder, numEffectFileList) { - builder.addFieldInt16(9, numEffectFileList, 0); - } - static endProjectData(builder) { - const offset = builder.endObject(); - return offset; - } - static finishProjectDataBuffer(builder, offset) { - builder.finish(offset, "SSFB"); - } - static finishSizePrefixedProjectDataBuffer(builder, offset) { - builder.finish(offset, "SSFB", true); - } - static createProjectData(builder, dataId, version, flags, imageBaseDirOffset, cellsOffset, animePacksOffset, effectFileListOffset, numCells, numAnimePacks, numEffectFileList) { - ProjectData.startProjectData(builder); - ProjectData.addDataId(builder, dataId); - ProjectData.addVersion(builder, version); - ProjectData.addFlags(builder, flags); - ProjectData.addImageBaseDir(builder, imageBaseDirOffset); - ProjectData.addCells(builder, cellsOffset); - ProjectData.addAnimePacks(builder, animePacksOffset); - ProjectData.addEffectFileList(builder, effectFileListOffset); - ProjectData.addNumCells(builder, numCells); - ProjectData.addNumAnimePacks(builder, numAnimePacks); - ProjectData.addNumEffectFileList(builder, numEffectFileList); - return ProjectData.endProjectData(builder); - } - } - class userDataInteger { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - integer() { - return this.bb.readInt32(this.bb_pos); - } - static sizeOf() { - return 4; - } - static createuserDataInteger(builder, integer) { - builder.prep(4, 4); - builder.writeInt32(integer); - return builder.offset(); - } - } - class userDataPoint { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - x() { - return this.bb.readInt32(this.bb_pos); - } - y() { - return this.bb.readInt32(this.bb_pos + 4); - } - static sizeOf() { - return 8; - } - static createuserDataPoint(builder, x, y) { - builder.prep(4, 8); - builder.writeInt32(y); - builder.writeInt32(x); - return builder.offset(); - } - } - class userDataRect { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - x() { - return this.bb.readInt32(this.bb_pos); - } - y() { - return this.bb.readInt32(this.bb_pos + 4); - } - w() { - return this.bb.readInt32(this.bb_pos + 8); - } - h() { - return this.bb.readInt32(this.bb_pos + 12); - } - static sizeOf() { - return 16; - } - static createuserDataRect(builder, x, y, w, h) { - builder.prep(4, 16); - builder.writeInt32(h); - builder.writeInt32(w); - builder.writeInt32(y); - builder.writeInt32(x); - return builder.offset(); - } - } - class userDataString { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsuserDataString(bb, obj) { - return (obj || new userDataString()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsuserDataString(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new userDataString()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - length() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - data(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - static startuserDataString(builder) { - builder.startObject(2); - } - static addLength(builder, length) { - builder.addFieldInt32(0, length, 0); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(1, dataOffset, 0); - } - static enduserDataString(builder) { - const offset = builder.endObject(); - return offset; - } - static createuserDataString(builder, length, dataOffset) { - userDataString.startuserDataString(builder); - userDataString.addLength(builder, length); - userDataString.addData(builder, dataOffset); - return userDataString.enduserDataString(builder); - } - } - let Utils$1 = class Utils { - static getProjectData(bytes) { - const buf = new ByteBuffer(bytes); - return ProjectData.getRootAsProjectData(buf); - } - }; - class Utils2 { - static getProjectData(bytes) { - return Utils$1.getProjectData(bytes); - } - } - class Player { - constructor(ssfbData, animePackName = null, animeName = null) { - this.curAnimePackName = null; - this.curAnimeName = null; - this.curAnimation = null; - this.curAnimePackData = null; - this._animePackIdx = -1; - this._parentIndex = []; - this._prio2index = []; - this.userData = []; - this.frameDataCache = null; - this.currentCachedFrameNumber = -1; - this.defaultFrameMap = []; - this._uint32 = new Uint32Array(1); - this._float32 = new Float32Array(this._uint32.buffer); - if (Object.prototype.hasOwnProperty.call(ssfbData, "bb")) { - this._fbObj = ssfbData; - } else { - this._fbObj = Utils2.getProjectData(ssfbData); - } - if (animePackName !== null && animeName !== null) { - this.Setup(animePackName, animeName); - } - } - get fbObj() { - return this._fbObj; - } - get animePackName() { - return this.curAnimePackName; - } - get animeName() { - return this.curAnimeName; - } - get animePackIdx() { - return this._animePackIdx; - } - get animePackData() { - return this.curAnimePackData; - } - get animationData() { - return this.curAnimation; - } - get parentIndex() { - return this._parentIndex; - } - get prio2index() { - return this._prio2index; - } - /** - * Setup - * @param {string} animePackName - The name of animePack(SSAE). - * @param {string} animeName - The name of animation. - */ - Setup(animePackName, animeName) { - this.clearCaches(); - const animePacksLength = this._fbObj.animePacksLength(); - let found = false; - for (let i = 0; i < animePacksLength; i++) { - if (this._fbObj.animePacks(i).name() === animePackName) { - let j; - const animationsLength = this._fbObj.animePacks(i).animationsLength(); - for (j = 0; j < animationsLength; j++) { - if (this._fbObj.animePacks(i).animations(j).name() === animeName) { - this.curAnimePackName = animePackName; - this.curAnimeName = animeName; - this.curAnimePackData = this._fbObj.animePacks(i); - this.curAnimation = this.curAnimePackData.animations(j); - found = true; - break; - } - } - if (!found) { - continue; - } - const defaultDataLength = this.curAnimation.defaultDataLength(); - for (let j2 = 0; j2 < defaultDataLength; j2++) { - const curDefaultData = this.curAnimation.defaultData(j2); - this.defaultFrameMap[curDefaultData.index()] = curDefaultData; - } - this._animePackIdx = i; - const partsLength = this.curAnimePackData.partsLength(); - this._parentIndex = new Array(partsLength); - for (j = 0; j < partsLength; j++) { - const index = this.curAnimePackData.parts(j).index(); - this._parentIndex[index] = this._fbObj.animePacks(i).parts(j).parentIndex(); - } - } - } - if (!found) { - throw Error("not found animePackName: " + animePackName + " animeName: " + animeName); - } - } - clearCaches() { - this._prio2index = []; - this.userData = []; - this.frameDataCache = null; - this.currentCachedFrameNumber = -1; - this.defaultFrameMap = []; - } - /** - * ユーザーデータコールバックの設定 - * @param fn - * @constructor - * - * ユーザーデータのフォーマット - * data = [[d0,d1,...,d10],[da0,da1,...,da10],...]) - * data.length : 当該フレームでユーザーデータの存在するパーツ(レイヤー)数 - * d0 : パーツ(レイヤー)番号 - * d1 : 有効データビット(&1:int, &2:rect(int*4), &4:pos(int*2), &8:string) - * d2 : int(int) - * d3 : rect0(int) - * d4 : rect1(int) - * d5 : rect2(int) - * d6 : rect3(int) - * d7 : pos0(int) - * d8 : pos1(int) - * d9 : string.length(int) - * d10: string(string) - * - */ - /** - * ユーザーデータの存在チェック - * @param {number} frameNumber - フレーム番号 - * @return {boolean} - 存在するかどうか - */ - HaveUserData(frameNumber) { - if (this.userData[frameNumber] === null) { - return false; - } - if (this.userData[frameNumber] !== void 0) { - return true; - } - for (let k = 0; k < this.curAnimation.userDataLength(); k++) { - if (frameNumber === this.curAnimation.userData(k).frameIndex()) { - this.userData[frameNumber] = this.curAnimation.userData(k); - return true; - } - } - this.userData[frameNumber] = null; - return false; - } - /** - * ユーザーデータの取得 - * @param {number} frameNumber - フレーム番号 - * @return {array} - ユーザーデータ - */ - GetUserData(frameNumber) { - if (this.HaveUserData(frameNumber) === false) { - return; - } - const framedata = this.userData[frameNumber]; - const layers = framedata.dataLength(); - let id = 0; - let data = []; - for (let i = 0; i < layers; i++) { - const bit = framedata.data(i).flags(); - const partsID = framedata.data(i).arrayIndex(); - let d_int = null; - let d_rect_x = null; - let d_rect_y = null; - let d_rect_w = null; - let d_rect_h = null; - let d_pos_x = null; - let d_pos_y = null; - let d_string_length = null; - let d_string = null; - if (bit & 1) { - d_int = framedata.data(i).data(id, new userDataInteger()).integer(); - id++; - } - if (bit & 2) { - d_rect_x = framedata.data(i).data(id, new userDataRect()).x(); - d_rect_y = framedata.data(i).data(id, new userDataRect()).y(); - d_rect_w = framedata.data(i).data(id, new userDataRect()).w(); - d_rect_h = framedata.data(i).data(id, new userDataRect()).h(); - id++; - } - if (bit & 4) { - d_pos_x = framedata.data(i).data(id, new userDataPoint()).x(); - d_pos_y = framedata.data(i).data(id, new userDataPoint()).y(); - id++; - } - if (bit & 8) { - d_string_length = framedata.data(i).data(id, new userDataString()).length(); - d_string = framedata.data(i).data(id, new userDataString()).data(); - id++; - } - data.push([partsID, bit, d_int, d_rect_x, d_rect_y, d_rect_w, d_rect_h, d_pos_x, d_pos_y, d_string_length, d_string]); - } - return data; - } - /** - * int型からfloat型に変換する - * @return {floatView[0]} - float型に変換したデータ - */ - I2F(i) { - this._uint32[0] = i; - return this._float32[0]; - } - /** - * 1フレーム分のデータを取得する(未設定項目はデフォルト) - * [注意]現verでは未対応項目があると正常動作しない可能性があります - * @param {number} frameNumber - フレーム番号 - */ - GetFrameData(frameNumber) { - if (this.currentCachedFrameNumber === frameNumber && this.frameDataCache) { - return this.frameDataCache; - } - const layers = this.curAnimation.defaultDataLength(); - let frameData = new Array(layers); - this._prio2index = new Array(layers); - const curFrameData = this.curAnimation.frameData(frameNumber); - for (let i = 0; i < layers; i++) { - const curPartState = curFrameData.states(i); - const index = curPartState.index(); - let f1 = curPartState.flag1(); - let f2 = curPartState.flag2(); - let fd = this.GetDefaultDataByIndex(index); - fd.flag1 = f1; - fd.flag2 = f2; - let id = 0; - if (f1 & PART_FLAG.INVISIBLE) fd.f_hide = true; - if (f1 & PART_FLAG.FLIP_H) fd.f_flipH = true; - if (f1 & PART_FLAG.FLIP_V) fd.f_flipV = true; - if (f1 & PART_FLAG.CELL_INDEX) fd.cellIndex = curPartState.data(id++); - if (f1 & PART_FLAG.POSITION_X) fd.positionX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.POSITION_Y) fd.positionY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.POSITION_Z) id++; - if (f1 & PART_FLAG.PIVOT_X) fd.pivotX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.PIVOT_Y) fd.pivotY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.ROTATIONX) id++; - if (f1 & PART_FLAG.ROTATIONY) id++; - if (f1 & PART_FLAG.ROTATIONZ) fd.rotationZ = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.SCALE_X) fd.scaleX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.SCALE_Y) fd.scaleY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.LOCALSCALE_X) fd.localscaleX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.LOCALSCALE_Y) fd.localscaleY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.OPACITY) fd.opacity = curPartState.data(id++); - if (f1 & PART_FLAG.LOCALOPACITY) fd.localopacity = curPartState.data(id++); - if (f1 & PART_FLAG.SIZE_X) fd.size_X = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.SIZE_Y) fd.size_Y = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.U_MOVE) fd.uv_move_X = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.V_MOVE) fd.uv_move_Y = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.UV_ROTATION) fd.uv_rotation = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.U_SCALE) fd.uv_scale_X = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.V_SCALE) fd.uv_scale_Y = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.BOUNDINGRADIUS) id++; - if (f1 & PART_FLAG.MASK) fd.masklimen = curPartState.data(id++); - if (f1 & PART_FLAG.PRIORITY) fd.priority = curPartState.data(id++); - if (f1 & PART_FLAG.INSTANCE_KEYFRAME) { - fd.instanceValue_curKeyframe = curPartState.data(id++); - fd.instanceValue_startFrame = curPartState.data(id++); - fd.instanceValue_endFrame = curPartState.data(id++); - fd.instanceValue_loopNum = curPartState.data(id++); - fd.instanceValue_speed = this.I2F(curPartState.data(id++)); - fd.instanceValue_loopflag = curPartState.data(id++); - } - if (f1 & PART_FLAG.EFFECT_KEYFRAME) { - fd.effectValue_curKeyframe = curPartState.data(id++); - fd.effectValue_startTime = curPartState.data(id++); - fd.effectValue_speed = this.I2F(curPartState.data(id++)); - fd.effectValue_loopflag = curPartState.data(id++); - } - if (f1 & PART_FLAG.VERTEX_TRANSFORM) { - fd.f_mesh = true; - const f = fd.i_transformVerts = curPartState.data(id++); - if (f & 1) { - fd.u00 = this.I2F(curPartState.data(id++)); - fd.v00 = this.I2F(curPartState.data(id++)); - } - if (f & 2) { - fd.u01 = this.I2F(curPartState.data(id++)); - fd.v01 = this.I2F(curPartState.data(id++)); - } - if (f & 4) { - fd.u10 = this.I2F(curPartState.data(id++)); - fd.v10 = this.I2F(curPartState.data(id++)); - } - if (f & 8) { - fd.u11 = this.I2F(curPartState.data(id++)); - fd.v11 = this.I2F(curPartState.data(id++)); - } - } - if (f1 & PART_FLAG.PARTS_COLOR) { - const f = curPartState.data(id++); - fd.colorBlendType = f & 255; - fd.useColorMatrix = fd.colorBlendType !== 1; - if (f & 4096) { - fd.colorRate = this.I2F(curPartState.data(id++)); - const bf = curPartState.data(id++); - const bf2 = curPartState.data(id++); - fd.colorArgb32 = bf << 16 | bf2; - fd.partsColorARGB = fd.colorArgb32 >>> 0; - if (fd.colorBlendType === 1) { - fd.tint = fd.colorArgb32 & 16777215; - } - } - } - if (f2 & PART_FLAG2.MESHDATA) { - const meshUv = this.curAnimation.meshsDataUv(index); - fd.meshIsBind = meshUv.uv(0); - fd.meshNum = meshUv.uv(1); - let mp = new Float32Array(fd.meshNum * 3); - for (let idx = 0; idx < fd.meshNum; idx++) { - const mx = this.I2F(curPartState.data(id++)); - const my = this.I2F(curPartState.data(id++)); - const mz = this.I2F(curPartState.data(id++)); - mp[idx * 3 + 0] = mx; - mp[idx * 3 + 1] = my; - mp[idx * 3 + 2] = mz; - } - fd.meshDataPoint = mp; - } - frameData[index] = fd; - this._prio2index[i] = index; - if (this.curAnimePackData.parts(index).type() === 0) { - frameData[index].cellIndex = -2; - } - } - this.frameDataCache = frameData; - this.currentCachedFrameNumber = frameNumber; - return frameData; - } - /** - * デフォルトデータを取得する - * @param {number} id - パーツ(レイヤー)ID - * @return {array} - データ - */ - GetDefaultDataByIndex(id) { - const curDefaultData = this.defaultFrameMap[id]; - let dfd = new FrameData(); - dfd.index = curDefaultData.index(); - dfd.lowflag = curDefaultData.lowflag(); - dfd.highflag = curDefaultData.highflag(); - dfd.priority = curDefaultData.priority(); - dfd.cellIndex = curDefaultData.cellIndex(); - dfd.opacity = curDefaultData.opacity(); - dfd.localopacity = curDefaultData.localopacity(); - dfd.masklimen = curDefaultData.masklimen(); - dfd.positionX = curDefaultData.positionX(); - dfd.positionY = curDefaultData.positionY(); - dfd.pivotX = curDefaultData.pivotX(); - dfd.pivotY = curDefaultData.pivotY(); - dfd.rotationX = curDefaultData.rotationX(); - dfd.rotationY = curDefaultData.rotationY(); - dfd.rotationZ = curDefaultData.rotationZ(); - dfd.scaleX = curDefaultData.scaleX(); - dfd.scaleY = curDefaultData.scaleY(); - dfd.localscaleX = curDefaultData.localscaleX(); - dfd.localscaleY = curDefaultData.localscaleY(); - dfd.size_X = curDefaultData.sizeX(); - dfd.size_Y = curDefaultData.sizeY(); - dfd.uv_move_X = curDefaultData.uvMoveX(); - dfd.uv_move_Y = curDefaultData.uvMoveY(); - dfd.uv_rotation = curDefaultData.uvRotation(); - dfd.uv_scale_X = curDefaultData.uvScaleX(); - dfd.uv_scale_Y = curDefaultData.uvScaleY(); - dfd.boundingRadius = curDefaultData.boundingRadius(); - dfd.instanceValue_curKeyframe = curDefaultData.instanceValueCurKeyframe(); - dfd.instanceValue_endFrame = curDefaultData.instanceValueEndFrame(); - dfd.instanceValue_startFrame = curDefaultData.instanceValueStartFrame(); - dfd.instanceValue_loopNum = curDefaultData.instanceValueLoopNum(); - dfd.instanceValue_speed = curDefaultData.instanceValueSpeed(); - dfd.instanceValue_loopflag = curDefaultData.instanceValueLoopflag(); - dfd.effectValue_curKeyframe = curDefaultData.effectValueCurKeyframe(); - dfd.effectValue_startTime = curDefaultData.effectValueStartTime(); - dfd.effectValue_speed = curDefaultData.effectValueSpeed(); - dfd.effectValue_loopflag = curDefaultData.effectValueLoopflag(); - dfd.f_hide = false; - dfd.f_flipH = false; - dfd.f_flipV = false; - dfd.f_mesh = false; - dfd.i_transformVerts = 0; - dfd.u00 = 0; - dfd.v00 = 0; - dfd.u01 = 0; - dfd.v01 = 0; - dfd.u10 = 0; - dfd.v10 = 0; - dfd.u11 = 0; - dfd.v11 = 0; - dfd.useColorMatrix = false; - dfd.colorBlendType = 0; - dfd.colorRate = 0; - dfd.colorArgb32 = 0; - dfd.meshIsBind = 0; - dfd.meshNum = 0; - dfd.meshDataPoint = null; - dfd.flag1 = 0; - dfd.flag2 = 0; - dfd.partsColorARGB = 0; - return dfd; - } - /** - * 親を遡って不透明度を継承する - * @param {number} opacity - 透明度 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {number} - 透明度 - */ - InheritOpacity(opacity, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - opacity = data.opacity / 255; - if (this._parentIndex[partId] >= 0) { - opacity = this.InheritOpacity(opacity, this._parentIndex[partId], frameNumber); - } - return opacity; - } - /** - * 親を遡って座標変換する(ローカルアトリビュート適用) - * @param {array} verts - 頂点情報配列 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformVertsLocal(verts, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - for (let i = 0; i < verts.length / 2; i++) { - let x = verts[i * 2]; - let y = verts[i * 2 + 1]; - if (data.i_transformVerts & 1 && i === 1) { - x += data.u00; - y -= data.v00; - } - if (data.i_transformVerts & 2 && i === 2) { - x += data.u01; - y -= data.v01; - } - if (data.i_transformVerts & 4 && i === 3) { - x += data.u10; - y -= data.v10; - } - if (data.i_transformVerts & 8 && i === 4) { - x += data.u11; - y -= data.v11; - } - x *= data.scaleX * data.localscaleX; - y *= data.scaleY * data.localscaleY; - verts[i * 2] = cos * x - sin * y + data.positionX; - verts[i * 2 + 1] = sin * x + cos * y - data.positionY; - if (data.f_flipH) { - verts[i * 2] = verts[0] * 2 - verts[i * 2]; - } - if (data.f_flipV) { - verts[i * 2 + 1] = verts[1] * 2 - verts[i * 2 + 1]; - } - } - if (this._parentIndex[partId] >= 0) { - verts = this.TransformVerts(verts, this._parentIndex[partId], frameNumber); - } - return verts; - } - /** - * 親を遡って座標変換する(ローカルアトリビュート適用) - * @param {array} verts - 頂点情報配列 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformMeshVertsLocal(verts, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - for (let i = 0; i < verts.length / 2; i++) { - let x = verts[i * 2]; - let y = verts[i * 2 + 1]; - x *= data.scaleX * data.localscaleX; - y *= data.scaleY * data.localscaleY; - verts[i * 2] = cos * x - sin * y + data.positionX; - verts[i * 2 + 1] = sin * x + cos * y - data.positionY; - } - if (this._parentIndex[partId] >= 0) { - verts = this.TransformVerts(verts, this._parentIndex[partId], frameNumber); - } - return verts; - } - /** - * 親を遡って座標変換する(ローカルアトリビュート適用) - * @param {array} pos - 頂点情報配列 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformPositionLocal(pos, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - pos[4] += -data.rotationZ; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - const x = pos[0] * data.scaleX * data.localscaleX; - const y = pos[1] * data.scaleY * data.localscaleY; - pos[2] *= data.scaleX * data.localscaleX; - pos[3] *= data.scaleY * data.localscaleY; - pos[0] = cos * x - sin * y + data.positionX; - pos[1] = sin * x + cos * y - data.positionY; - if (this._parentIndex[partId] >= 0) { - pos = this.TransformPosition(pos, this._parentIndex[partId], frameNumber); - } - return pos; - } - /** - * 5頂点の中間点を求める - * @param {number} cx - 元の中心点 - * @param {number} cy - 元の中心点 - * @param {number} LUx - 左上座標 - * @param {number} LUy - 左上座標 - * @param {number} RUx - 右上座標 - * @param {number} RUy - 右上座標 - * @param {number} LDx - 左下座標 - * @param {number} LDy - 左下座標 - * @param {number} RDx - 右下座標 - * @param {number} RDy - 右下座標 - * @param vec2 - * @return {array} vec2 - 4頂点から算出した中心点の座標 - */ - static CoordinateGetDiagonalIntersection(cx, cy, LUx, LUy, RUx, RUy, LDx, LDy, RDx, RDy, vec2) { - const c1 = (LDy - RUy) * (LDx - LUx) - (LDx - RUx) * (LDy - LUy); - const c2 = (RDx - LUx) * (LDy - LUy) - (RDy - LUy) * (LDx - LUx); - const c3 = (RDx - LUx) * (LDy - RUy) - (RDy - LUy) * (LDx - RUx); - if (c3 <= 0 && c3 >= 0) return vec2; - const ca = c1 / c3; - const cb = c2 / c3; - if (0 <= ca && 1 >= ca && (0 <= cb && 1 >= cb)) { - cx = LUx + ca * (RDx - LUx); - cy = LUy + ca * (RDy - LUy); - } - vec2[0] = cx; - vec2[1] = cy; - return vec2; - } - /** - * 親を遡って座標変換する - * @param {array} verts - 頂点情報配列 - * @param {number} id - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformVerts(verts, id, frameNumber) { - const data = this.GetFrameData(frameNumber)[id]; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - for (let i = 0; i < verts.length / 2; i++) { - let x = verts[i * 2]; - let y = verts[i * 2 + 1]; - x *= data.scaleX; - y *= data.scaleY; - verts[i * 2] = cos * x - sin * y + data.positionX; - verts[i * 2 + 1] = sin * x + cos * y - data.positionY; - if (data.f_flipH) { - verts[i * 2] = verts[0] * 2 - verts[i * 2]; - } - if (data.f_flipV) { - verts[i * 2 + 1] = verts[1] * 2 - verts[i * 2 + 1]; - } - } - if (this._parentIndex[id] >= 0) { - verts = this.TransformVerts(verts, this._parentIndex[id], frameNumber); - } - return verts; - } - /** - * 親を遡って座標変換する - * @param {array} pos - 頂点情報配列 - * @param {number} id - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformPosition(pos, id, frameNumber) { - const data = this.GetFrameData(frameNumber)[id]; - pos[4] += -data.rotationZ; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - const x = pos[0] * data.scaleX; - const y = pos[1] * data.scaleY; - pos[2] *= data.scaleX; - pos[3] *= data.scaleY; - pos[0] = cos * x - sin * y + data.positionX; - pos[1] = sin * x + cos * y - data.positionY; - if (this._parentIndex[id] >= 0) { - pos = this.TransformPosition(pos, this._parentIndex[id], frameNumber); - } - return pos; - } - /** - * 矩形セルメッシュの頂点情報のみ取得 - * @param {ssfblib.Cell} cell - セル - * @param {array} data - アニメーションフレームデータ - * @param verts - * @return {array} - 頂点情報配列 - */ - static GetVerts(cell, data, verts) { - const w = data.size_X / 2; - const h = data.size_Y / 2; - const px = data.size_X * -(data.pivotX + cell.pivotX()); - const py = data.size_Y * (data.pivotY + cell.pivotY()); - verts.set([px, py, px - w, py - h, px + w, py - h, px - w, py + h, px + w, py + h]); - return verts; - } - /** - * 矩形セルメッシュの頂点情報のみ取得 - * @param {ssfblib.Cell} cell - セル - * @param {array} data - アニメーションフレームデータ - * @param verts - * @return {array} - 頂点情報配列 - */ - static GetMeshVerts(cell, data, verts) { - for (let idx = 0; idx < data.meshNum; idx++) { - verts[ - idx * 2 - /*+ 0*/ - ] = data.meshDataPoint[ - idx * 3 - /* + 0 */ - ]; - verts[idx * 2 + 1] = -data.meshDataPoint[idx * 3 + 1]; - } - return verts; - } - static GetDummyVerts() { - return new Float32Array([0, 0, -0.5, -0.5, 0.5, -0.5, -0.5, 0.5, 0.5, 0.5]); - } - } - - class PixiResourceLoaderImpl { - constructor() { - } - load(sspjfile, sspjMap, onComplete) { - pixi_js.Assets.addBundle(sspjfile, sspjMap); - pixi_js.Assets.loadBundle(sspjfile).then(() => { - if (onComplete !== null) { - onComplete(null); - } - }).catch((e) => { - if (onComplete !== null) { - onComplete(e); - } - }); - } - unload(sspjfile, sspjMap, onComplete) { - pixi_js.Assets.unloadBundle(sspjfile).then(() => { - if (onComplete !== null) { - onComplete(null); - } - }).catch((error) => { - if (onComplete !== null) { - onComplete(error); - } - }); - } - texture(key) { - return pixi_js.Assets.get(key); - } - } - - class SS6ProjectResourceLoader { - constructor() { - this.loader = new PixiResourceLoaderImpl(); - } - load(sspjfile, sspjMap, onComplete) { - return this.loader.load(sspjfile, sspjMap, onComplete); - } - unload(sspjfile, sspjMap, onComplete = null) { - return this.loader.unload(sspjfile, sspjMap, onComplete); - } - texture(key) { - return this.loader.texture(key); - } - } - - class SS6Project { - constructor(arg1, arg2, arg3, arg4) { - this.sspjMap = {}; - this.resourceLoader = new SS6ProjectResourceLoader(); - if (typeof arg1 === "string" && arg3 === void 0) { - let ssfbPath = arg1; - this.ssfbPath = ssfbPath; - const index = ssfbPath.lastIndexOf("/"); - this.rootPath = ssfbPath.substring(0, index) + "/"; - this.ssfbFile = ssfbPath.substring(index + 1); - this.onComplete = arg2 === void 0 ? null : arg2; - this.status = 0 /* NOT_READY */; - this.LoadFlatBuffersProject(); - } else if (typeof arg2 === "object" && arg2.constructor === Uint8Array) { - this.ssfbPath = null; - this.rootPath = null; - this.ssfbFile = arg1; - let ssfbByte = arg2; - let imageBinaryMap = arg3; - this.onComplete = arg4 === void 0 ? null : arg4; - this.load(ssfbByte, imageBinaryMap); - } - } - getBundle() { - return this.ssfbFile; - } - getTexture(key) { - return this.resourceLoader.texture(key); - } - dispose(callback = null) { - this.resourceLoader.unload(this.getBundle(), this.sspjMap, (error) => { - if (callback !== null) { - callback(); - } - }); - } - /** - * Load json and parse (then, load textures) - */ - LoadFlatBuffersProject() { - const self = this; - fetch(this.ssfbPath, { method: "get" }).then((response) => { - if (response.ok) { - return Promise.resolve(response.arrayBuffer()); - } else { - return Promise.reject(new Error(response.statusText)); - } - }).then((a) => { - self.fbObj = Utils2.getProjectData(new Uint8Array(a)); - self.LoadCellResources(); - }).catch((error) => { - if (this.onComplete !== null) { - this.onComplete(null, error); - } - }); - } - /** - * Load textures - */ - LoadCellResources() { - let ids = []; - this.sspjMap = {}; - for (let i = 0; i < this.fbObj.cellsLength(); i++) { - const cellMap = this.fbObj.cells(i).cellMap(); - const cellMapIndex = cellMap.index(); - if (!ids.some(function(id) { - return id === cellMapIndex; - })) { - ids.push(cellMapIndex); - const name = cellMap.name(); - this.sspjMap[name] = this.rootPath + cellMap.imagePath(); - } - } - const self = this; - this.resourceLoader.load(this.getBundle(), this.sspjMap, (error) => { - if (error === null) { - self.status = 1 /* READY */; - if (self.onComplete !== null) { - self.onComplete(this, null); - } - } else { - if (this.onComplete !== null) { - this.onComplete(null, error); - } - } - }); - } - load(bytes, imageBinaryMap) { - this.fbObj = Utils2.getProjectData(bytes); - let assetMap = {}; - for (let imageName in imageBinaryMap) { - const binary = imageBinaryMap[imageName]; - let b = ""; - const len = binary.byteLength; - for (let i = 0; i < len; i++) { - b += String.fromCharCode(binary[i]); - } - assetMap[imageName] = "data:image/png;base64," + btoa(b); - } - const self = this; - this.resourceLoader.load(this.getBundle(), assetMap, (error) => { - if (error === null) { - self.status = 1 /* READY */; - if (self.onComplete !== null) { - self.onComplete(this, null); - } - } else { - if (this.onComplete !== null) { - this.onComplete(null, error); - } - } - }); - } - } - - class SS6PlayerInstanceKeyParam { - constructor() { - this.refStartframe = 0; - this.refEndframe = 0; - this.refSpeed = 1; - this.refloopNum = 0; - this.infinity = false; - this.reverse = false; - this.pingpong = false; - this.independent = false; - } - } - - class SS6Player extends pixi_js.Container { - /** - * SS6Player (extends PIXI.Container) - * @constructor - * @param {SS6Project} ss6project - SS6Project that contains animations. - * @param {string} animePackName - The name of animePack(SSAE). - * @param {string} animeName - The name of animation. - */ - constructor(ss6project, animePackName = null, animeName = null) { - super(); - this.liveFrame = []; - this.colorMatrixFilterCache = []; - this.parentAlpha = 1; - // - // cell再利用 - this.prevCellID = []; - // 各パーツ(レイヤー)で前回使用したセルID - this.prevPartObject = []; - this.changeCellID = []; - this.changeVisible = []; - this.changeTint = []; - // for change instance - this.substituteOverWrite = []; - this.substituteKeyParam = []; - this.alphaBlendType = []; - this.defaultColorFilter = new pixi_js.ColorMatrixFilter(); - this._instancePos = new Float32Array(5); - this._CoordinateGetDiagonalIntersectionVec2 = new Float32Array(2); - this.isRenderGroup = true; - this.ss6project = ss6project; - this.playerLib = new Player(ss6project.fbObj, animePackName, animeName); - this.parentAlpha = 1; - if (animePackName !== null && animeName !== null) { - this.Setup(animePackName, animeName); - } - this.on("added", (...args) => { - pixi_js.Ticker.shared.add(this.Update, this); - }, this); - this.on("removed", (...args) => { - pixi_js.Ticker.shared.remove(this.Update, this); - }, this); - } - get startFrame() { - return this._startFrame; - } - get endFrame() { - return this._endFrame; - } - get totalFrame() { - return this.playerLib.animationData.totalFrames(); - } - get fps() { - return this.playerLib.animationData.fps(); - } - get frameNo() { - return Math.floor(this._currentFrame); - } - set loop(loop) { - this._loops = loop; - } - get loop() { - return this._loops; - } - get isPlaying() { - return this._isPlaying; - } - get isPausing() { - return this._isPausing; - } - get animePackName() { - return this.playerLib.animePackName; - } - get animeName() { - return this.playerLib.animeName; - } - /** - * Setup - * @param {string} animePackName - The name of animePack(SSAE). - * @param {string} animeName - The name of animation. - */ - Setup(animePackName, animeName) { - this.playerLib.Setup(animePackName, animeName); - this.clearCaches(); - const animePackData = this.playerLib.animePackData; - const partsLength = animePackData.partsLength(); - this.prevCellID = new Array(partsLength); - this.prevPartObject = new Array(partsLength); - this.changeCellID = new Array(partsLength); - this.changeVisible = new Array(partsLength); - this.changeTint = new Array(partsLength); - this.substituteOverWrite = new Array(partsLength); - this.substituteKeyParam = new Array(partsLength); - for (let j = 0; j < partsLength; j++) { - const index = animePackData.parts(j).index(); - this.prevCellID[index] = -1; - this.prevPartObject[index] = null; - this.changeCellID[index] = -1; - this.changeVisible[index] = true; - this.changeTint[index] = null; - this.substituteOverWrite[index] = null; - this.substituteKeyParam[index] = null; - } - this.alphaBlendType = this.GetPartsBlendMode(); - this._isPlaying = false; - this._isPausing = true; - this._startFrame = this.playerLib.animationData.startFrames(); - this._endFrame = this.playerLib.animationData.endFrames(); - this._currentFrame = this.playerLib.animationData.startFrames(); - this.nextFrameTime = 0; - this._loops = -1; - this.skipEnabled = true; - this.updateInterval = 1e3 / this.playerLib.animationData.fps(); - this.playDirection = 1; - this.onUserDataCallback = null; - this.playEndCallback = null; - this.parentAlpha = 1; - } - clearCaches() { - this.liveFrame = []; - this.colorMatrixFilterCache = []; - } - Update(ticker) { - this.UpdateInternal(ticker.deltaMS); - } - /** - * Update is called PIXI.ticker - * @param {number} delta - expected 1 - */ - UpdateInternal(delta, rewindAfterReachingEndFrame = true) { - const elapsedTime = delta; - const toNextFrame = this._isPlaying && !this._isPausing; - if (toNextFrame && this.updateInterval !== 0) { - this.nextFrameTime += elapsedTime; - if (this.nextFrameTime >= this.updateInterval) { - let playEndFlag = false; - const step = this.nextFrameTime / this.updateInterval; - this.nextFrameTime -= this.updateInterval * step; - let s = this.skipEnabled ? step * this.playDirection : this.playDirection; - let next = this._currentFrame + s; - let nextFrameNo = Math.floor(next); - let nextFrameDecimal = next - nextFrameNo; - let currentFrameNo = Math.floor(this._currentFrame); - if (this.playDirection >= 1) { - for (let c = nextFrameNo - currentFrameNo; c; c--) { - let incFrameNo = currentFrameNo + 1; - if (incFrameNo > this._endFrame) { - if (this._loops === -1) { - incFrameNo = this._startFrame; - } else { - this._loops--; - playEndFlag = true; - if (this._loops === 0) { - this._isPlaying = false; - incFrameNo = rewindAfterReachingEndFrame ? this._startFrame : this._endFrame; - break; - } else { - incFrameNo = this._startFrame; - } - } - } - currentFrameNo = incFrameNo; - if (this._isPlaying) { - if (this.playerLib.HaveUserData(currentFrameNo)) { - if (this.onUserDataCallback !== null) { - this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); - } - } - } - } - } - if (this.playDirection <= -1) { - for (let c = currentFrameNo - nextFrameNo; c; c--) { - let decFrameNo = currentFrameNo - 1; - if (decFrameNo < this._startFrame) { - if (this._loops === -1) { - decFrameNo = this._endFrame; - } else { - this._loops--; - playEndFlag = true; - if (this._loops === 0) { - this._isPlaying = false; - decFrameNo = rewindAfterReachingEndFrame ? this._endFrame : this._startFrame; - break; - } else { - decFrameNo = this._endFrame; - } - } - } - currentFrameNo = decFrameNo; - if (this._isPlaying) { - if (this.playerLib.HaveUserData(currentFrameNo)) { - if (this.onUserDataCallback !== null) { - this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); - } - } - } - } - } - this._currentFrame = currentFrameNo + nextFrameDecimal; - if (playEndFlag) { - if (this.playEndCallback !== null) { - this.playEndCallback(this); - } - } - this.SetFrameAnimation(Math.floor(this._currentFrame), step); - } - } else { - this.SetFrameAnimation(Math.floor(this._currentFrame)); - } - } - /** - * アニメーションの速度を設定する (deprecated この関数は削除される可能性があります) - * @param {number} fps - アニメーション速度(frame per sec.) - * @param {boolean} _skipEnabled - 描画更新が間に合わないときにフレームをスキップするかどうか - */ - SetAnimationFramerate(fps, _skipEnabled = true) { - if (fps <= 0) return; - this.updateInterval = 1e3 / fps; - this.skipEnabled = _skipEnabled; - } - /** - * アニメーションの速度を設定する - * @param {number} fpsRate - アニメーション速度(設定値に対する乗率)負数設定で逆再生 - * @param {boolean} _skipEnabled - 描画更新が間に合わないときにフレームをスキップするかどうか - */ - SetAnimationSpeed(fpsRate, _skipEnabled = true) { - if (fpsRate === 0) return; - this.playDirection = fpsRate > 0 ? 1 : -1; - this.updateInterval = 1e3 / (this.playerLib.animationData.fps() * fpsRate * this.playDirection); - this.skipEnabled = _skipEnabled; - } - /** - * アニメーション再生設定 - * @param {number} _startframe - 開始フレーム番号(マイナス設定でデフォルト値を変更しない) - * @param {number} _endframe - 終了フレーム番号(マイナス設定でデフォルト値を変更しない) - * @param {number} _loops - ループ回数(ゼロもしくはマイナス設定で無限ループ) - */ - SetAnimationSection(_startframe = -1, _endframe = -1, _loops = -1) { - if (_startframe >= 0 && _startframe < this.playerLib.animationData.totalFrames()) { - this._startFrame = _startframe; - } - if (_endframe >= 0 && _endframe < this.playerLib.animationData.totalFrames()) { - this._endFrame = _endframe; - } - if (_loops > 0) { - this._loops = _loops; - } else { - this._loops = -1; - } - this._currentFrame = this.playDirection > 0 ? this._startFrame : this._endFrame; - } - /** - * アニメーション再生を開始する - */ - Play(frameNo) { - this._isPlaying = true; - this._isPausing = false; - let currentFrame = this.playDirection > 0 ? this._startFrame : this._endFrame; - if (frameNo && typeof frameNo === "number") { - currentFrame = frameNo; - } - this._currentFrame = currentFrame; - this.resetLiveFrame(); - const currentFrameNo = Math.floor(this._currentFrame); - this.SetFrameAnimation(currentFrameNo); - if (this.playerLib.HaveUserData(currentFrameNo)) { - if (this.onUserDataCallback !== null) { - this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); - } - } - } - /** - * アニメーション再生を一時停止する - */ - Pause() { - this._isPausing = true; - } - /** - * アニメーション再生を再開する - */ - Resume() { - this._isPausing = false; - } - /** - * アニメーションを停止する - * @constructor - */ - Stop() { - this._isPlaying = false; - } - /** - * アニメーション再生を位置(フレーム)を設定する - */ - SetFrame(frame) { - this._currentFrame = frame; - } - NextFrame() { - const currentFrame = Math.floor(this._currentFrame); - const endFrame = this.endFrame; - if (currentFrame === endFrame) { - return; - } - this.SetFrame(currentFrame + 1); - } - PrevFrame() { - const currentFrame = Math.floor(this._currentFrame); - if (currentFrame === 0) { - return; - } - this.SetFrame(currentFrame - 1); - } - /** - * アニメーションの透明度を設定する - */ - SetAlpha(alpha) { - this.parentAlpha = alpha; - } - /** - * エラー処理 - * @param {any} _error - エラー - */ - ThrowError(_error) { - } - /** - * ユーザーデータコールバックの設定 - * @param fn - * @constructor - * - * ユーザーデータのフォーマット - * data = [[d0,d1,...,d10],[da0,da1,...,da10],...]) - * data.length : 当該フレームでユーザーデータの存在するパーツ(レイヤー)数 - * d0 : パーツ(レイヤー)番号 - * d1 : 有効データビット(&1:int, &2:rect(int*4), &4:pos(int*2), &8:string) - * d2 : int(int) - * d3 : rect0(int) - * d4 : rect1(int) - * d5 : rect2(int) - * d6 : rect3(int) - * d7 : pos0(int) - * d8 : pos1(int) - * d9 : string.length(int) - * d10: string(string) - * - */ - SetUserDataCalback(fn) { - this.onUserDataCallback = fn; - } - /** - * 再生終了時に呼び出されるコールバックを設定します. - * @param fn - * @constructor - * - * ループ回数分再生した後に呼び出される点に注意してください。 - * 無限ループで再生している場合はコールバックが発生しません。 - * - */ - SetPlayEndCallback(fn) { - this.playEndCallback = fn; - } - getCellIndex(sscename, cellname) { - let changeCellIndex = -1; - if (sscename !== "" && cellname !== "") { - const fbObj = this.playerLib.fbObj; - const numCells = this.playerLib.fbObj.numCells(); - for (let i = 0; i < numCells; i++) { - const cell = fbObj.cells(i); - const name1 = cell.name(); - const cellMap = cell.cellMap(); - const name2 = cellMap.name(); - if (cellname === name1 && sscename === name2) { - changeCellIndex = i; - break; - } - } - } - return changeCellIndex; - } - /** - * Retrieves the index of a part based on its name from the anime pack data. - * - * @param {string} partsname - The name of the part to search for. - * @return {number} The index of the part if found, or -1 if the part is not found. - */ - GetPartIndexFromName(partsname) { - const animePackData = this.playerLib.animePackData; - const partsLength = animePackData.partsLength(); - let partIndex = -1; - for (let i = 0; i < partsLength; i++) { - const part = animePackData.parts(i); - const index = part.index(); - const partName = part.name(); - if (partName === partsname) { - partIndex = index; - break; - } - } - return partIndex; - } - /** - * パーツに割り当たるセルを変更します. - * - * @param {string} partsname - パーツ名 - * @param {string} sscename - セルマップ名 - * @param {string} cellname - 表示させたいセル名 - * - * @return {[number, number]} [パーツ名の index, セル名 index] のタプルを返します。見つからない場合は -1 を返します。 - */ - SetPartCell(partsname, sscename, cellname) { - let changeCellIndex = -1; - let partIndex = -1; - if (this.playerLib.animationData) { - changeCellIndex = this.getCellIndex(sscename, cellname); - partIndex = this.GetPartIndexFromName(partsname); - this.SetPartCellByIndex(partIndex, changeCellIndex); - } - return [partIndex, changeCellIndex]; - } - /** - * パーツに割り当たるセルをインデックスで指定して変更します。 - * - * @param {number} partIndex - The index of the part to be updated. Must not be -1 to perform the update. - * @param {number} changeCellIndex - The new cell index to set for the specified partIndex. - * @return {void} This method does not return a value. - */ - SetPartCellByIndex(partIndex, changeCellIndex) { - if (partIndex !== -1) { - this.changeCellID[partIndex] = changeCellIndex; - return true; - } - return false; - } - /** - * Sets the visibility of a specific part by its name. - * - * @param {string} partsname - The name of the part whose visibility is to be set. - * @param {boolean} visible - A boolean indicating whether the part should be visible (true) or hidden (false). - * @return {boolean} Returns true if the operation was successful, false otherwise. - */ - SetPartVisible(partsname, visible) { - if (this.playerLib.animationData) { - const partIndex = this.GetPartIndexFromName(partsname); - return this.SetPartVisibleByIndex(partIndex, visible); - } - return false; - } - /** - * Sets the visibility of a part identified by its index. - * - * @param {number} partIndex - The index of the part to update. Must not be -1. - * @param {boolean} visible - A boolean indicating whether the part should be visible (true) or hidden (false). - * @return {boolean} Returns true if the visibility was successfully updated, otherwise returns false. - */ - SetPartVisibleByIndex(partIndex, visible) { - if (partIndex !== -1) { - this.changeVisible[partIndex] = visible; - return true; - } - return false; - } - /** - * Sets the tint color for a specific part of the player's animation. - * - * @param {string} partName - The name of the part to apply the tint to. - * @param {number} tint - The tint value to apply, represented as a number. - * @return {boolean} Returns true if the tint was successfully applied; otherwise, returns false. - */ - SetPartTint(partName, tint) { - if (this.playerLib.animationData) { - const partIndex = this.GetPartIndexFromName(partName); - return this.SetPartTintByIndex(partIndex, tint); - } - return false; - } - /** - * Updates the tint color of a specific part identified by its index. - * - * @param {number} partIndex - The index of the part for which the tint needs to be set. A value of -1 indicates no part is targeted. - * @param {number} tint - The tint value to be applied to the specified part. - * @return {boolean} Returns true if the tint is successfully applied, otherwise returns false. - */ - SetPartTintByIndex(partIndex, tint) { - if (partIndex !== -1) { - this.changeTint[partIndex] = tint; - return true; - } - return false; - } - /** - * パーツの描画モードを取得する - * @return {array} - 全パーツの描画モード - */ - GetPartsBlendMode() { - const animePacks = this.playerLib.animePackData; - const l = animePacks.partsLength(); - let ret = []; - for (let i = 0; i < l; i++) { - const alphaBlendType = animePacks.parts(i).alphaBlendType(); - let blendMode; - switch (alphaBlendType) { - case 0: - blendMode = "normal"; - break; - case 1: - blendMode = "multiply"; - break; - case 2: - blendMode = "add"; - break; - case 3: - blendMode = "subtract"; - break; - case 4: - blendMode = "multiply"; - break; - case 5: - blendMode = "screen"; - break; - case 6: - blendMode = "exclusion"; - break; - case 7: - blendMode = "normal"; - break; - default: - blendMode = "subtract"; - break; - } - ret.push(blendMode); - } - return ret; - } - /** - * パーツカラーのブレンド用カラーマトリクス - * @param {number} blendType - ブレンド方法(0:mix, 1:multiply, 2:add, 3:sub) - * @param {number} rate - ミックス時の混色レート - * @param {number} argb32 - パーツカラー(単色) - * @return {PIXI.filters.ColorMatrixFilter} - カラーマトリクス - */ - GetColorMatrixFilter(blendType, rate, argb32) { - const key = blendType.toString() + "_" + rate.toString() + "_" + argb32.toString(); - if (this.colorMatrixFilterCache[key]) return this.colorMatrixFilterCache[key]; - const colorMatrix = new pixi_js.ColorMatrixFilter(); - const ca = ((argb32 & 4278190080) >>> 24) / 255; - const cr = ((argb32 & 16711680) >>> 16) / 255; - const cg = ((argb32 & 65280) >>> 8) / 255; - const cb = (argb32 & 255) / 255; - if (blendType === 0) { - const rate_i = 1 - rate; - colorMatrix.matrix = [ - rate_i, - 0, - 0, - 0, - cr * rate, - 0, - rate_i, - 0, - 0, - cg * rate, - 0, - 0, - rate_i, - 0, - cb * rate, - 0, - 0, - 0, - 1, - 0 - ]; - } else if (blendType === 1) { - colorMatrix.matrix = [ - cr, - 0, - 0, - 0, - 0, - 0, - cg, - 0, - 0, - 0, - 0, - 0, - cb, - 0, - 0, - 0, - 0, - 0, - ca, - 0 - ]; - } else if (blendType === 2) { - colorMatrix.matrix = [ - 1, - 0, - 0, - 0, - cr, - 0, - 1, - 0, - 0, - cg, - 0, - 0, - 1, - 0, - cb, - 0, - 0, - 0, - ca, - 0 - ]; - } else if (blendType === 3) { - colorMatrix.matrix = [ - 1, - 0, - 0, - 0, - -cr, - 0, - 1, - 0, - 0, - -cg, - 0, - 0, - 1, - 0, - -cb, - 0, - 0, - 0, - ca, - 0 - ]; - } - this.colorMatrixFilterCache[key] = colorMatrix; - return colorMatrix; - } - /** - * 1フレーム分のアニメーション描画 - * @param {number} frameNumber - フレーム番号 - * @param {number} ds - delta step - */ - SetFrameAnimation(frameNumber, ds = 0) { - const fd = this.playerLib.GetFrameData(frameNumber); - this.removeChildren(); - const l = fd.length; - for (let ii = 0; ii < l; ii = ii + 1 | 0) { - const i = this.playerLib.prio2index[ii]; - if (!this.changeVisible[i]) { - continue; - } - const data = fd[i]; - const origCellID = data.cellIndex; - const cellID = this.changeCellID[i] !== -1 ? this.changeCellID[i] : origCellID; - let partObject = this.prevPartObject[i]; - const part = this.playerLib.animePackData.parts(i); - const partType = part.type(); - let overWrite = this.substituteOverWrite[i] !== null ? this.substituteOverWrite[i] : false; - let overWritekeyParam = this.substituteKeyParam[i]; - switch (partType) { - case SsPartType.Instance: - if (partObject == null) { - partObject = this.MakeCellPlayer(part.refname()); - partObject.label = part.name(); - } - break; - case SsPartType.Normal: - case SsPartType.Mask: - if (cellID >= 0 && this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = this.MakeCellMesh(cellID); - partObject.label = part.name(); - } - break; - case SsPartType.Mesh: - if (cellID >= 0 && this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = this.MakeMeshCellMesh(i, cellID, origCellID); - partObject.label = part.name(); - } - break; - case SsPartType.Nulltype: - case SsPartType.Joint: - if (this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = new pixi_js.Container(); - partObject.label = part.name(); - } - break; - default: - if (cellID >= 0 && this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = this.MakeCellMesh(cellID); - partObject.label = part.name(); - } - break; - } - if (partObject == null) continue; - this.prevCellID[i] = cellID; - this.prevPartObject[i] = partObject; - switch (partType) { - case SsPartType.Instance: { - const instance = partObject; - this._instancePos[0] = 0; - this._instancePos[1] = 0; - this._instancePos[2] = 1; - this._instancePos[3] = 1; - this._instancePos[4] = 0; - this._instancePos = this.playerLib.TransformPositionLocal(this._instancePos, data.index, frameNumber); - instance.rotation = this._instancePos[4] * Math.PI / 180; - instance.position.set(this._instancePos[0], this._instancePos[1]); - instance.scale.set(this._instancePos[2], this._instancePos[3]); - let opacity = data.opacity / 255; - if (data.localopacity < 255) { - opacity = data.localopacity / 255; - } - instance.SetAlpha(opacity * this.parentAlpha); - instance.visible = !data.f_hide; - let refKeyframe = data.instanceValue_curKeyframe; - let refStartframe = data.instanceValue_startFrame; - let refEndframe = data.instanceValue_endFrame; - let refSpeed = data.instanceValue_speed; - let refloopNum = data.instanceValue_loopNum; - let infinity = false; - let reverse = false; - let pingpong = false; - let independent = false; - const INSTANCE_LOOP_FLAG_INFINITY = 1; - const INSTANCE_LOOP_FLAG_REVERSE = 2; - const INSTANCE_LOOP_FLAG_PINGPONG = 4; - const INSTANCE_LOOP_FLAG_INDEPENDENT = 8; - const lflags = data.instanceValue_loopflag; - if (lflags & INSTANCE_LOOP_FLAG_INFINITY) { - infinity = true; - } - if (lflags & INSTANCE_LOOP_FLAG_REVERSE) { - reverse = true; - } - if (lflags & INSTANCE_LOOP_FLAG_PINGPONG) { - pingpong = true; - } - if (lflags & INSTANCE_LOOP_FLAG_INDEPENDENT) { - independent = true; - } - if (overWrite) { - refStartframe = overWritekeyParam.refStartframe; - refEndframe = overWritekeyParam.refEndframe; - refSpeed = overWritekeyParam.refSpeed; - refloopNum = overWritekeyParam.refloopNum; - infinity = overWritekeyParam.infinity; - reverse = overWritekeyParam.reverse; - pingpong = overWritekeyParam.pingpong; - independent = overWritekeyParam.independent; - } - if (instance._startFrame !== refStartframe || instance._endFrame !== refEndframe) { - instance.SetAnimationSection(refStartframe, refEndframe); - } - let time = frameNumber; - if (independent === true) { - this.liveFrame[ii] += ds; - time = Math.floor(this.liveFrame[ii]); - } - const selfTopKeyframe = refKeyframe; - let reftime = Math.floor((time - selfTopKeyframe) * refSpeed); - if (reftime < 0) continue; - if (selfTopKeyframe > time) continue; - const inst_scale = refEndframe - refStartframe + 1; - if (inst_scale <= 0) continue; - let nowloop = Math.floor(reftime / inst_scale); - let checkloopnum = refloopNum; - if (pingpong) checkloopnum = checkloopnum * 2; - if (!infinity) { - if (nowloop >= checkloopnum) { - reftime = inst_scale - 1; - nowloop = checkloopnum - 1; - } - } - const temp_frame = Math.floor(reftime % inst_scale); - let _time = 0; - if (pingpong && nowloop % 2 === 1) { - if (reverse) { - reverse = false; - } else { - reverse = true; - } - } - if (this.playDirection <= -1) { - reverse = !reverse; - } - if (reverse) { - _time = refEndframe - temp_frame; - } else { - _time = temp_frame + refStartframe; - } - instance.SetFrame(Math.floor(_time)); - this.addChild(instance); - break; - } - // Instance以外の通常のMeshと空のContainerで処理分岐 - case SsPartType.Normal: - case SsPartType.Mesh: - case SsPartType.Joint: - case SsPartType.Mask: { - const mesh = partObject; - const meshVertexBuffer = mesh.geometry.attributes.aPosition.buffer; - let meshVertex = meshVertexBuffer.data; - const cell = this.playerLib.fbObj.cells(cellID); - let verts; - if (partType === SsPartType.Mesh) { - if (data.meshIsBind === 0) { - verts = this.playerLib.TransformMeshVertsLocal(Player.GetMeshVerts(cell, data, meshVertex), data.index, frameNumber); - } else { - verts = Player.GetMeshVerts(cell, data, meshVertex); - } - } else { - verts = partType === SsPartType.Joint ? new Float32Array(10) : meshVertex; - verts = this.playerLib.TransformVertsLocal(Player.GetVerts(cell, data, verts), data.index, frameNumber); - } - if (data.flag1 & PART_FLAG.VERTEX_TRANSFORM) { - const vertexCoordinateLUx = verts[3 * 2 + 0]; - const vertexCoordinateLUy = verts[3 * 2 + 1]; - const vertexCoordinateLDx = verts[1 * 2 + 0]; - const vertexCoordinateLDy = verts[1 * 2 + 1]; - const vertexCoordinateRUx = verts[4 * 2 + 0]; - const vertexCoordinateRUy = verts[4 * 2 + 1]; - const vertexCoordinateRDx = verts[2 * 2 + 0]; - const vertexCoordinateRDy = verts[2 * 2 + 1]; - const CoordinateLURUx = (vertexCoordinateLUx + vertexCoordinateRUx) * 0.5; - const CoordinateLURUy = (vertexCoordinateLUy + vertexCoordinateRUy) * 0.5; - const CoordinateLULDx = (vertexCoordinateLUx + vertexCoordinateLDx) * 0.5; - const CoordinateLULDy = (vertexCoordinateLUy + vertexCoordinateLDy) * 0.5; - const CoordinateLDRDx = (vertexCoordinateLDx + vertexCoordinateRDx) * 0.5; - const CoordinateLDRDy = (vertexCoordinateLDy + vertexCoordinateRDy) * 0.5; - const CoordinateRURDx = (vertexCoordinateRUx + vertexCoordinateRDx) * 0.5; - const CoordinateRURDy = (vertexCoordinateRUy + vertexCoordinateRDy) * 0.5; - const vec2 = Player.CoordinateGetDiagonalIntersection(verts[0], verts[1], CoordinateLURUx, CoordinateLURUy, CoordinateRURDx, CoordinateRURDy, CoordinateLULDx, CoordinateLULDy, CoordinateLDRDx, CoordinateLDRDy, this._CoordinateGetDiagonalIntersectionVec2); - verts[0] = vec2[0]; - verts[1] = vec2[1]; - } - const px = verts[0]; - const py = verts[1]; - for (let j = 0; j < verts.length / 2; j++) { - verts[j * 2] -= px; - verts[j * 2 + 1] -= py; - } - meshVertex = verts; - meshVertexBuffer.update(); - if (data.flag1 & PART_FLAG.U_MOVE || data.flag1 & PART_FLAG.V_MOVE || data.flag1 & PART_FLAG.U_SCALE || data.flag1 & PART_FLAG.V_SCALE || data.flag1 & PART_FLAG.UV_ROTATION) { - const u1 = cell.u1() + data.uv_move_X; - const u2 = cell.u2() + data.uv_move_X; - const v1 = cell.v1() + data.uv_move_Y; - const v2 = cell.v2() + data.uv_move_Y; - const cx = (u2 + u1) / 2; - const cy = (v2 + v1) / 2; - const uvw = (u2 - u1) / 2 * data.uv_scale_X; - const uvh = (v2 - v1) / 2 * data.uv_scale_Y; - const meshUvsBuffer = mesh.geometry.attributes.aUV.buffer; - let meshUvs = mesh.geometry.uvs; - meshUvs[0] = cx; - meshUvs[1] = cy; - meshUvs[2] = cx - uvw; - meshUvs[3] = cy - uvh; - meshUvs[4] = cx + uvw; - meshUvs[5] = cy - uvh; - meshUvs[6] = cx - uvw; - meshUvs[7] = cy + uvh; - meshUvs[8] = cx + uvw; - meshUvs[9] = cy + uvh; - if (data.flag1 & PART_FLAG.UV_ROTATION) { - const rot = data.uv_rotation * Math.PI / 180; - for (let idx = 0; idx < 5; idx++) { - const dx = meshUvs[idx * 2 + 0] - cx; - const dy = meshUvs[idx * 2 + 1] - cy; - const cos = Math.cos(rot); - const sin = Math.sin(rot); - const tmpX = cos * dx - sin * dy; - const tmpY = sin * dx + cos * dy; - meshUvs[idx * 2 + 0] = cx + tmpX; - meshUvs[idx * 2 + 1] = cy + tmpY; - } - } - meshUvsBuffer.update(); - } - mesh.position.set(px, py); - let opacity = data.opacity / 255; - if (data.localopacity < 255) { - opacity = data.localopacity / 255; - } - mesh.alpha = opacity * this.parentAlpha; - mesh.visible = !data.f_hide; - if (data.useColorMatrix) { - const colorMatrix = this.GetColorMatrixFilter(data.colorBlendType, data.colorRate, data.colorArgb32); - mesh.filters = [colorMatrix]; - } - if (this.changeTint[i] !== null) { - mesh.tint = this.changeTint[i]; - } else if (data.tint) { - mesh.tint = data.tint; - const ca = ((data.partsColorARGB & 4278190080) >>> 24) / 255; - mesh.alpha = mesh.alpha * ca; - } - const blendMode = this.alphaBlendType[i]; - if (blendMode === "multiply" || blendMode === "screen") { - mesh.alpha = 1; - } - if (partType !== SsPartType.Mask) this.addChild(mesh); - break; - } - case SsPartType.Nulltype: { - const container = partObject; - const opacity = this.playerLib.InheritOpacity(1, data.index, frameNumber); - container.alpha = opacity * data.localopacity / 255; - const verts = this.playerLib.TransformVerts(Player.GetDummyVerts(), data.index, frameNumber); - const px = verts[0]; - const py = verts[1]; - container.position.set(px, py); - const ax = Math.atan2(verts[5] - verts[3], verts[4] - verts[2]); - const ay = Math.atan2(verts[7] - verts[3], verts[6] - verts[2]); - container.rotation = ax; - container.skew.x = ay - ax - Math.PI / 2; - break; - } - } - } - } - /** - * - * 名前を指定してパーツの再生するインスタンスアニメを変更します。 - * 指定したパーツがインスタンスパーツでない場合、falseを返します. - * インスタンスパーツ名はディフォルトでは「ssae名:モーション名」とつけられています。 - * 再生するアニメの名前は アニメパック名 と アニメ名 で指定してください。 - * 現在再生しているアニメを指定することは入れ子となり無限ループとなるためできません。 - * - * 変更するアニメーションは同じ ssfb に含まれる必要があります。 - * インスタンスパーツが再生するアニメを変更します - * - * インスタンスキーは - * - * @param partName SS上のパーツ名 - * @param animePackName 参照するアニメパック名 - * @param animeName 参照するアニメ名 - * @param overWrite インスタンスキーの上書きフラグ - * @param keyParam インスタンスキー - * - * @constructor - */ - ChangeInstanceAnime(partName, animePackName, animeName, overWrite, keyParam = null) { - let rc = false; - if (this.animePackName !== null && this.animeName !== null) { - let packData = this.playerLib.animePackData; - let partsLength = packData.partsLength(); - for (let index = 0; index < partsLength; index++) { - let partData = packData.parts(index); - if (partData.name() === partName) { - let mesh = this.prevPartObject[index]; - if (mesh === null || mesh instanceof SS6Player) { - this.substituteOverWrite[index] = overWrite; - let keyParamAsSubstitute; - if (keyParam !== null) { - keyParamAsSubstitute = keyParam; - mesh = this.MakeCellPlayer(animePackName + "/" + animeName, keyParam.refStartframe); - } else { - mesh = this.MakeCellPlayer(animePackName + "/" + animeName); - keyParamAsSubstitute = new SS6PlayerInstanceKeyParam(); - keyParamAsSubstitute.refStartframe = mesh.startFrame; - keyParamAsSubstitute.refEndframe = mesh.endFrame; - } - mesh.label = partData.name(); - this.prevPartObject[index] = mesh; - this.substituteKeyParam[index] = keyParamAsSubstitute; - rc = true; - break; - } - } - } - } - return rc; - } - /** - * 矩形セルをメッシュ(5verts4Tri)で作成 - * @param {number} id - セルID - * @return {PIXI.Mesh} - メッシュ - */ - MakeCellMesh(id) { - const cell = this.playerLib.fbObj.cells(id); - const u1 = cell.u1(); - const u2 = cell.u2(); - const v1 = cell.v1(); - const v2 = cell.v2(); - const w = cell.width() / 2; - const h = cell.height() / 2; - const verts = new Float32Array([0, 0, -w, -h, w, -h, -w, h, w, h]); - const uvs = new Float32Array([(u1 + u2) / 2, (v1 + v2) / 2, u1, v1, u2, v1, u1, v2, u2, v2]); - const indices = new Uint32Array([0, 1, 2, 0, 2, 4, 0, 4, 3, 0, 1, 3]); - const geometry = new pixi_js.MeshGeometry({ positions: verts, uvs, indices, topology: "triangle-list" }); - return new pixi_js.Mesh({ geometry, texture: this.ss6project.getTexture(cell.cellMap().name()) }); - } - /** - * メッシュセルからメッシュを作成 - * @param {number} partID - パーツID - * @param {number} cellID - セルID - * @param {number} origCellID - オリジナルのセルID - * @return {PIXI.Mesh} - メッシュ - */ - MakeMeshCellMesh(partID, cellID, origCellID) { - const meshsDataUV = this.playerLib.animationData.meshsDataUv(partID); - const uvLength = meshsDataUV.uvLength(); - if (uvLength > 0) { - const cell = this.playerLib.fbObj.cells(cellID); - const origCell = this.playerLib.fbObj.cells(origCellID); - const diff_u = cellID === origCellID ? 0 : (cell.u1() + cell.u2()) / 2 - (origCell.u1() + origCell.u2()) / 2; - const diff_v = cellID === origCellID ? 0 : (cell.v1() + cell.v2()) / 2 - (origCell.v1() + origCell.v2()) / 2; - const uvs = new Float32Array(uvLength - 2); - const meshNum = meshsDataUV.uv(1); - for (let idx = 2; idx < uvLength; idx++) { - uvs[idx - 2] = meshsDataUV.uv(idx) + (idx % 2 === 0 ? diff_u : diff_v); - } - const meshsDataIndices = this.playerLib.animationData.meshsDataIndices(partID); - const indicesLength = meshsDataIndices.indicesLength(); - const indices = new Uint32Array(indicesLength - 1); - for (let idx = 1; idx < indicesLength; idx++) { - indices[idx - 1] = meshsDataIndices.indices(idx); - } - const verts = new Float32Array(meshNum * 2); - const geometry = new pixi_js.MeshGeometry({ positions: verts, uvs, indices, topology: "triangle-list" }); - return new pixi_js.Mesh({ geometry, texture: this.ss6project.getTexture(this.playerLib.fbObj.cells(cellID).cellMap().name()) }); - } - return null; - } - /** - * セルをインスタンスで作成 - * @param {String} refname 参照アニメ名 - * @param {number or undefined} refStart - * @return {SS6Player} - インスタンス - */ - MakeCellPlayer(refname, refStart = void 0) { - const split = refname.split("/"); - const ssp = new SS6Player(this.ss6project); - ssp.Setup(split[0], split[1]); - ssp.Play(refStart); - return ssp; - } - resetLiveFrame() { - const layers = this.playerLib.animationData.defaultDataLength(); - for (let i = 0; i < layers; i++) { - this.liveFrame[i] = 0; - } - } - } - - exports.SS6Player = SS6Player; - exports.SS6PlayerInstanceKeyParam = SS6PlayerInstanceKeyParam; - exports.SS6Project = SS6Project; - -})); -//# sourceMappingURL=ss6player-pixi.umd.js.map +//# sourceMappingURL=ss6player-pixi.umd.js.map \ No newline at end of file diff --git a/lerna.json b/lerna.json deleted file mode 100644 index 5d0e66d2..00000000 --- a/lerna.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "version": "independent", - "packages": [ - "packages/ssfblib", - "packages/ss6player-lib", - "packages/ss6player-pixi6", - "packages/ss6player-rpgmakermz", - "packages/ss6player-pixi", - "packages/ss6player-viewer" - ], - "command": { - "publish": { - "allowBranch": "master", - "message": "ss6playerforweb(release): publish %s" - } - }, - "$schema": "node_modules/lerna/schemas/lerna-schema.json" -} diff --git a/nx.json b/nx.json deleted file mode 100644 index 9a6dfbd8..00000000 --- a/nx.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "targetDefaults": { - "build": { - "dependsOn": [ - "^build" - ], - "cache": true - } - }, - "namedInputs": { - "default": [ - "{projectRoot}/**/*", - "sharedGlobals" - ], - "sharedGlobals": [], - "production": [ - "default" - ] - } -} diff --git a/package-lock.json b/package-lock.json index 88fde1d2..151bedaa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,9047 +14,2432 @@ "packages/ss6player-viewer" ], "devDependencies": { - "lerna": "^8.2.3", "ncp": "^2.0.0", - "rimraf": "^6.0.1" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" + "rimraf": "^6.1.3", + "turbo": "^2.8.17" } }, "node_modules/@emnapi/core": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz", - "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.0.tgz", + "integrity": "sha512-0DQ98G9ZQZOxfUcQn1waV2yS8aWdZ6kJMbYCJB3oUBecjWYO1fqJ+a1DRfPF3O5JEkwqwP1A9QEN/9mYm2Yd0w==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "@emnapi/wasi-threads": "1.0.2", + "@emnapi/wasi-threads": "1.2.0", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", - "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.0.tgz", + "integrity": "sha512-QN75eB0IH2ywSpRpNddCRfQIhmJYBCJ1x5Lb3IscKAL8bMnVAKnRg8dCoXbHzVLLH7P38N2Z3mtulB7W0J0FKw==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz", - "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz", + "integrity": "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "tslib": "^2.4.0" } }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.8.tgz", - "integrity": "sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==", - "cpu": [ - "ppc64" - ], + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "aix" - ], + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, "engines": { - "node": ">=18" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.8.tgz", - "integrity": "sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==", - "cpu": [ - "arm" - ], + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "android" - ], "engines": { - "node": ">=18" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.8.tgz", - "integrity": "sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==", - "cpu": [ - "arm64" - ], + "node_modules/@eslint/config-array": { + "version": "0.23.3", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.3.tgz", + "integrity": "sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@eslint/object-schema": "^3.0.3", + "debug": "^4.3.1", + "minimatch": "^10.2.4" + }, "engines": { - "node": ">=18" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.8.tgz", - "integrity": "sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==", - "cpu": [ - "x64" - ], + "node_modules/@eslint/config-array/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "peer": true, "engines": { - "node": ">=18" + "node": "18 || 20 || >=22" } }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.8.tgz", - "integrity": "sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==", - "cpu": [ - "arm64" - ], + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "peer": true, + "dependencies": { + "balanced-match": "^4.0.2" + }, "engines": { - "node": ">=18" + "node": "18 || 20 || >=22" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.8.tgz", - "integrity": "sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==", - "cpu": [ - "x64" - ], + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "license": "BlueOak-1.0.0", + "peer": true, + "dependencies": { + "brace-expansion": "^5.0.2" + }, "engines": { - "node": ">=18" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.8.tgz", - "integrity": "sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==", - "cpu": [ - "arm64" - ], + "node_modules/@eslint/config-helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.3.tgz", + "integrity": "sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@eslint/core": "^1.1.1" + }, "engines": { - "node": ">=18" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.8.tgz", - "integrity": "sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==", - "cpu": [ - "x64" - ], + "node_modules/@eslint/core": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.1.1.tgz", + "integrity": "sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.15" + }, "engines": { - "node": ">=18" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.8.tgz", - "integrity": "sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==", - "cpu": [ - "arm" - ], + "node_modules/@eslint/eslintrc": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", + "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "ajv": "^6.14.0", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.5", + "strip-json-comments": "^3.1.1" + }, "engines": { - "node": ">=18" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.8.tgz", - "integrity": "sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==", - "cpu": [ - "arm64" - ], + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.8.tgz", - "integrity": "sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==", - "cpu": [ - "ia32" - ], + "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "license": "Apache-2.0", "engines": { - "node": ">=18" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.8.tgz", - "integrity": "sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==", - "cpu": [ - "loong64" - ], + "node_modules/@eslint/eslintrc/node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, "engines": { - "node": ">=18" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.8.tgz", - "integrity": "sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==", - "cpu": [ - "mips64el" - ], + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">=18" + "node": "*" } }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.8.tgz", - "integrity": "sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==", - "cpu": [ - "ppc64" - ], + "node_modules/@eslint/js": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", + "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">=18" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" } }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.8.tgz", - "integrity": "sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==", - "cpu": [ - "riscv64" - ], + "node_modules/@eslint/object-schema": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.3.tgz", + "integrity": "sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "license": "Apache-2.0", + "peer": true, "engines": { - "node": ">=18" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.8.tgz", - "integrity": "sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==", - "cpu": [ - "s390x" - ], + "node_modules/@eslint/plugin-kit": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.6.1.tgz", + "integrity": "sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@eslint/core": "^1.1.1", + "levn": "^0.4.1" + }, "engines": { - "node": ">=18" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.8.tgz", - "integrity": "sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==", - "cpu": [ - "x64" - ], + "node_modules/@gerrit0/mini-shiki": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.23.0.tgz", + "integrity": "sha512-bEMORlG0cqdjVyCEuU0cDQbORWX+kYCeo0kV1lbxF5bt4r7SID2l9bqsxJEM0zndaxpOUT7riCyIVEuqq/Ynxg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" + "dependencies": { + "@shikijs/engine-oniguruma": "^3.23.0", + "@shikijs/langs": "^3.23.0", + "@shikijs/themes": "^3.23.0", + "@shikijs/types": "^3.23.0", + "@shikijs/vscode-textmate": "^10.0.2" } }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.8.tgz", - "integrity": "sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==", - "cpu": [ - "arm64" - ], + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], + "license": "Apache-2.0", "engines": { - "node": ">=18" + "node": ">=18.18.0" } }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.8.tgz", - "integrity": "sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==", - "cpu": [ - "x64" - ], + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" + }, "engines": { - "node": ">=18" + "node": ">=18.18.0" } }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.8.tgz", - "integrity": "sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==", - "cpu": [ - "arm64" - ], + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], + "license": "Apache-2.0", "engines": { - "node": ">=18" + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.8.tgz", - "integrity": "sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==", - "cpu": [ - "x64" - ], + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], + "license": "Apache-2.0", "engines": { - "node": ">=18" + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.8.tgz", - "integrity": "sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==", - "cpu": [ - "arm64" - ], + "node_modules/@oxc-project/types": { + "version": "0.115.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.115.0.tgz", + "integrity": "sha512-4n91DKnebUS4yjUHl2g3/b2T+IUdCfmoZGhmwsovZCDaJSs+QkVAM+0AqqTxHSsHfeiMuueT75cZaZcT/m0pSw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" + "funding": { + "url": "https://github.com/sponsors/Boshen" } }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.8.tgz", - "integrity": "sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==", - "cpu": [ - "x64" - ], + "node_modules/@pixi/accessibility": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/accessibility/-/accessibility-6.5.10.tgz", + "integrity": "sha512-URrI1H+1kjjHSyhY1QXcUZ8S3omdVTrXg5y0gndtpOhIelErBTC9NWjJfw6s0Rlmv5+x5VAitQTgw9mRiatDgw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" + "peerDependencies": { + "@pixi/core": "6.5.10", + "@pixi/display": "6.5.10", + "@pixi/utils": "6.5.10" } }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.8.tgz", - "integrity": "sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==", - "cpu": [ - "arm64" - ], + "node_modules/@pixi/app": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/app/-/app-6.5.10.tgz", + "integrity": "sha512-VsNHLajZ5Dbc/Zrj7iWmIl3eu6Fec+afjW/NXXezD8Sp3nTDF0bv5F+GDgN/zSc2gqIvPHyundImT7hQGBDghg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" + "peerDependencies": { + "@pixi/core": "6.5.10", + "@pixi/display": "6.5.10", + "@pixi/math": "6.5.10", + "@pixi/utils": "6.5.10" } }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.8.tgz", - "integrity": "sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==", - "cpu": [ - "ia32" - ], + "node_modules/@pixi/colord": { + "version": "2.9.6", + "resolved": "https://registry.npmjs.org/@pixi/colord/-/colord-2.9.6.tgz", + "integrity": "sha512-nezytU2pw587fQstUu1AsJZDVEynjskwOL+kibwcdxsMBFqPsFFNA7xl0ii/gXuDi6M0xj3mfRJj8pBSc2jCfA==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } + "license": "MIT" }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.8.tgz", - "integrity": "sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==", - "cpu": [ - "x64" - ], + "node_modules/@pixi/compressed-textures": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/compressed-textures/-/compressed-textures-6.5.10.tgz", + "integrity": "sha512-41NT5mkfam47DrkB8xMp3HUZDt7139JMB6rVNOmb3u2vm+2mdy9tzi5s9nN7bG9xgXlchxcFzytTURk+jwXVJA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" + "peerDependencies": { + "@pixi/constants": "6.5.10", + "@pixi/core": "6.5.10", + "@pixi/loaders": "6.5.10", + "@pixi/settings": "6.5.10", + "@pixi/utils": "6.5.10" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", - "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "node_modules/@pixi/constants": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-6.5.10.tgz", + "integrity": "sha512-PUF2Y9YISRu5eVrVVHhHCWpc/KmxQTg3UH8rIUs8UI9dCK41/wsPd3pEahzf7H47v7x1HCohVZcFO3XQc1bUDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@pixi/core": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/core/-/core-6.5.10.tgz", + "integrity": "sha512-Gdzp5ENypyglvsh5Gv3teUZnZnmizo4xOsL+QqmWALdFlJXJwLJMVhKVThV/q/095XR6i4Ou54oshn+m4EkuFw==", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "@types/offscreencanvas": "^2019.6.4" }, "funding": { - "url": "https://opencollective.com/eslint" + "type": "opencollective", + "url": "https://opencollective.com/pixijs" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "@pixi/constants": "6.5.10", + "@pixi/extensions": "6.5.10", + "@pixi/math": "6.5.10", + "@pixi/runner": "6.5.10", + "@pixi/settings": "6.5.10", + "@pixi/ticker": "6.5.10", + "@pixi/utils": "6.5.10" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "node_modules/@pixi/display": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/display/-/display-6.5.10.tgz", + "integrity": "sha512-NxFdDDxlbH5fQkzGHraLGoTMucW9pVgXqQm13TSmkA3NWIi/SItHL4qT2SI8nmclT9Vid1VDEBCJFAbdeuQw1Q==", "dev": true, "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "peerDependencies": { + "@pixi/constants": "6.5.10", + "@pixi/math": "6.5.10", + "@pixi/settings": "6.5.10", + "@pixi/utils": "6.5.10" } }, - "node_modules/@eslint/config-array": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", - "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", + "node_modules/@pixi/extensions": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/extensions/-/extensions-6.5.10.tgz", + "integrity": "sha512-EIUGza+E+sCy3dupuIjvRK/WyVyfSzHb5XsxRaxNrPwvG1iIUIqNqZ3owLYCo4h17fJWrj/yXVufNNtUKQccWQ==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.6", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } + "license": "MIT" }, - "node_modules/@eslint/config-array/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "node_modules/@pixi/extract": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/extract/-/extract-6.5.10.tgz", + "integrity": "sha512-hXFIc4EGs14GFfXAjT1+6mzopzCMWeXeai38/Yod3vuBXkkp8+ksen6kE09vTnB9l1IpcIaCM+XZEokuqoGX2A==", "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "peerDependencies": { + "@pixi/constants": "6.5.10", + "@pixi/core": "6.5.10", + "@pixi/math": "6.5.10", + "@pixi/utils": "6.5.10" } }, - "node_modules/@eslint/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@pixi/filter-alpha": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/filter-alpha/-/filter-alpha-6.5.10.tgz", + "integrity": "sha512-GWHLJvY0QOIDRjVx0hdUff6nl/PePQg84i8XXPmANrvA+gJ/eSRTQRmQcdgInQfawENADB/oRqpcCct6IAcKpQ==", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "license": "MIT", + "peerDependencies": { + "@pixi/core": "6.5.10" } }, - "node_modules/@eslint/config-helpers": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz", - "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==", + "node_modules/@pixi/filter-blur": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/filter-blur/-/filter-blur-6.5.10.tgz", + "integrity": "sha512-LJsRocVOdM9hTzZKjP+jmkfoL1nrJi5XpR0ItgRN8fflOC7A7Ln4iPe7nukbbq3H7QhZSunbygMubbO6xhThZw==", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "license": "MIT", + "peerDependencies": { + "@pixi/constants": "6.5.10", + "@pixi/core": "6.5.10", + "@pixi/settings": "6.5.10" } }, - "node_modules/@eslint/core": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", - "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", - "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/js": { - "version": "9.32.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.32.0.tgz", - "integrity": "sha512-BBpRFZK3eX6uMLKz8WxFOBIFFcGFJ/g8XuwjTHCqHROSIsopI+ddn/d5Cfh36+7+e5edVS8dbSHnBNhrLEX0zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", - "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz", - "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.15.1", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@gerrit0/mini-shiki": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.9.2.tgz", - "integrity": "sha512-Tvsj+AOO4Z8xLRJK900WkyfxHsZQu+Zm1//oT1w443PO6RiYMoq/4NGOhaNuZoUMYsjKIAPVQ6eOFMddj6yphQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/engine-oniguruma": "^3.9.2", - "@shikijs/langs": "^3.9.2", - "@shikijs/themes": "^3.9.2", - "@shikijs/types": "^3.9.2", - "@shikijs/vscode-textmate": "^10.0.2" - } - }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", - "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@hutson/parse-repository-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", - "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/string-locale-compare": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", - "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@lerna/create": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@lerna/create/-/create-8.2.3.tgz", - "integrity": "sha512-f+68+iojcQ0tZRMfCgQyJdsdz+YPu3/d+0Zo1RJz92bgBxTCiEU+dHACVq1n3sEjm/YWPnFGdag8U5EYYmP3WA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@npmcli/arborist": "7.5.4", - "@npmcli/package-json": "5.2.0", - "@npmcli/run-script": "8.1.0", - "@nx/devkit": ">=17.1.2 < 21", - "@octokit/plugin-enterprise-rest": "6.0.1", - "@octokit/rest": "20.1.2", - "aproba": "2.0.0", - "byte-size": "8.1.1", - "chalk": "4.1.0", - "clone-deep": "4.0.1", - "cmd-shim": "6.0.3", - "color-support": "1.1.3", - "columnify": "1.6.0", - "console-control-strings": "^1.1.0", - "conventional-changelog-core": "5.0.1", - "conventional-recommended-bump": "7.0.1", - "cosmiconfig": "9.0.0", - "dedent": "1.5.3", - "execa": "5.0.0", - "fs-extra": "^11.2.0", - "get-stream": "6.0.0", - "git-url-parse": "14.0.0", - "glob-parent": "6.0.2", - "graceful-fs": "4.2.11", - "has-unicode": "2.0.1", - "ini": "^1.3.8", - "init-package-json": "6.0.3", - "inquirer": "^8.2.4", - "is-ci": "3.0.1", - "is-stream": "2.0.0", - "js-yaml": "4.1.0", - "libnpmpublish": "9.0.9", - "load-json-file": "6.2.0", - "lodash": "^4.17.21", - "make-dir": "4.0.0", - "minimatch": "3.0.5", - "multimatch": "5.0.0", - "node-fetch": "2.6.7", - "npm-package-arg": "11.0.2", - "npm-packlist": "8.0.2", - "npm-registry-fetch": "^17.1.0", - "nx": ">=17.1.2 < 21", - "p-map": "4.0.0", - "p-map-series": "2.1.0", - "p-queue": "6.6.2", - "p-reduce": "^2.1.0", - "pacote": "^18.0.6", - "pify": "5.0.0", - "read-cmd-shim": "4.0.0", - "resolve-from": "5.0.0", - "rimraf": "^4.4.1", - "semver": "^7.3.4", - "set-blocking": "^2.0.0", - "signal-exit": "3.0.7", - "slash": "^3.0.0", - "ssri": "^10.0.6", - "string-width": "^4.2.3", - "tar": "6.2.1", - "temp-dir": "1.0.0", - "through": "2.3.8", - "tinyglobby": "0.2.12", - "upath": "2.0.1", - "uuid": "^10.0.0", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "5.0.1", - "wide-align": "1.1.5", - "write-file-atomic": "5.0.1", - "write-pkg": "4.0.0", - "yargs": "17.7.2", - "yargs-parser": "21.1.1" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@lerna/create/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@lerna/create/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@lerna/create/node_modules/glob": { - "version": "9.3.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", - "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "minimatch": "^8.0.2", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@lerna/create/node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@lerna/create/node_modules/glob/node_modules/minimatch": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", - "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@lerna/create/node_modules/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@lerna/create/node_modules/minipass": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", - "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=8" - } - }, - "node_modules/@lerna/create/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@lerna/create/node_modules/rimraf": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", - "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^9.2.0" - }, - "bin": { - "rimraf": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz", - "integrity": "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@emnapi/core": "^1.1.0", - "@emnapi/runtime": "^1.1.0", - "@tybys/wasm-util": "^0.9.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/agent": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", - "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", - "dev": true, - "license": "ISC", - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.3" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/arborist": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-7.5.4.tgz", - "integrity": "sha512-nWtIc6QwwoUORCRNzKx4ypHqCk3drI+5aeYdMTQQiRCcn4lOOgfQh7WyZobGYTxXPSq1VwV53lkpN/BRlRk08g==", - "dev": true, - "license": "ISC", - "dependencies": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/fs": "^3.1.1", - "@npmcli/installed-package-contents": "^2.1.0", - "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/metavuln-calculator": "^7.1.1", - "@npmcli/name-from-folder": "^2.0.0", - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.1.0", - "@npmcli/query": "^3.1.0", - "@npmcli/redact": "^2.0.0", - "@npmcli/run-script": "^8.1.0", - "bin-links": "^4.0.4", - "cacache": "^18.0.3", - "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^7.0.2", - "json-parse-even-better-errors": "^3.0.2", - "json-stringify-nice": "^1.1.4", - "lru-cache": "^10.2.2", - "minimatch": "^9.0.4", - "nopt": "^7.2.1", - "npm-install-checks": "^6.2.0", - "npm-package-arg": "^11.0.2", - "npm-pick-manifest": "^9.0.1", - "npm-registry-fetch": "^17.0.1", - "pacote": "^18.0.6", - "parse-conflict-json": "^3.0.0", - "proc-log": "^4.2.0", - "proggy": "^2.0.0", - "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^3.0.1", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.7", - "ssri": "^10.0.6", - "treeverse": "^3.0.0", - "walk-up-path": "^3.0.1" - }, - "bin": { - "arborist": "bin/index.js" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", - "dev": true, - "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz", - "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/promise-spawn": "^7.0.0", - "ini": "^4.1.3", - "lru-cache": "^10.0.1", - "npm-pick-manifest": "^9.0.0", - "proc-log": "^4.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git/node_modules/ini": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", - "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16" - } - }, - "node_modules/@npmcli/git/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/installed-package-contents": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", - "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", - "dev": true, - "license": "ISC", - "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "bin": { - "installed-package-contents": "bin/index.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/map-workspaces": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz", - "integrity": "sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/name-from-folder": "^2.0.0", - "glob": "^10.2.2", - "minimatch": "^9.0.0", - "read-package-json-fast": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/metavuln-calculator": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-7.1.1.tgz", - "integrity": "sha512-Nkxf96V0lAx3HCpVda7Vw4P23RILgdi/5K1fmj2tZkWIYLpXAN8k2UVVOsW16TsS5F8Ws2I7Cm+PU1/rsVF47g==", - "dev": true, - "license": "ISC", - "dependencies": { - "cacache": "^18.0.0", - "json-parse-even-better-errors": "^3.0.0", - "pacote": "^18.0.0", - "proc-log": "^4.1.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/name-from-folder": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz", - "integrity": "sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/node-gyp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", - "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/package-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.0.tgz", - "integrity": "sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^5.0.0", - "glob": "^10.2.2", - "hosted-git-info": "^7.0.0", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "proc-log": "^4.0.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/promise-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", - "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/promise-spawn/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16" - } - }, - "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/query": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/query/-/query-3.1.0.tgz", - "integrity": "sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/redact": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz", - "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/run-script": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz", - "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.0.0", - "@npmcli/promise-spawn": "^7.0.0", - "node-gyp": "^10.0.0", - "proc-log": "^4.0.0", - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/run-script/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16" - } - }, - "node_modules/@npmcli/run-script/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/@nx/devkit": { - "version": "20.8.2", - "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-20.8.2.tgz", - "integrity": "sha512-rr9p2/tZDQivIpuBUpZaFBK6bZ+b5SAjZk75V4tbCUqGW3+5OPuVvBPm+X+7PYwUF6rwSpewxkjWNeGskfCe+Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ejs": "^3.1.7", - "enquirer": "~2.3.6", - "ignore": "^5.0.4", - "minimatch": "9.0.3", - "semver": "^7.5.3", - "tmp": "~0.2.1", - "tslib": "^2.3.0", - "yargs-parser": "21.1.1" - }, - "peerDependencies": { - "nx": ">= 19 <= 21" - } - }, - "node_modules/@nx/devkit/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@nx/nx-darwin-arm64": { - "version": "20.8.2", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-20.8.2.tgz", - "integrity": "sha512-t+bmCn6sRPNGU6hnSyWNvbQYA/KgsxGZKYlaCLRwkNhI2akModcBUqtktJzCKd1XHDqs6EkEFBWjFr8/kBEkSg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-darwin-x64": { - "version": "20.8.2", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-20.8.2.tgz", - "integrity": "sha512-pt/wmDLM31Es8/EzazlyT5U+ou2l60rfMNFGCLqleHEQ0JUTc0KWnOciBLbHIQFiPsCQZJFEKyfV5V/ncePmmw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-freebsd-x64": { - "version": "20.8.2", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-20.8.2.tgz", - "integrity": "sha512-joZxFbgJfkHkB9uMIJr73Gpnm9pnpvr0XKGbWC409/d2x7q1qK77tKdyhGm+A3+kaZFwstNVPmCUtUwJYyU6LA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "20.8.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-20.8.2.tgz", - "integrity": "sha512-98O/qsxn4vIMPY/FyzvmVrl7C5yFhCUVk0/4PF+PA2SvtQ051L1eMRY6bq/lb69qfN6szJPZ41PG5mPx0NeLZw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "20.8.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-20.8.2.tgz", - "integrity": "sha512-h6a+HxwfSpxsi4KpxGgPh9GDBmD2E+XqGCdfYpobabxqEBvlnIlJyuDhlRR06cTWpuNXHpRdrVogmV6m/YbtDg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-arm64-musl": { - "version": "20.8.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-20.8.2.tgz", - "integrity": "sha512-4Ev+jM0VAxDHV/dFgMXjQTCXS4I8W4oMe7FSkXpG8RUn6JK659DC8ExIDPoGIh+Cyqq6r6mw1CSia+ciQWICWQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-x64-gnu": { - "version": "20.8.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.8.2.tgz", - "integrity": "sha512-nR0ev+wxu+nQYRd7bhqggOxK7UfkV6h+Ko1mumUFyrM5GvPpz/ELhjJFSnMcOkOMcvH0b6G5uTBJvN1XWCkbmg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-x64-musl": { - "version": "20.8.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-20.8.2.tgz", - "integrity": "sha512-ost41l5yc2aq2Gc9bMMpaPi/jkXqbXEMEPHrxWKuKmaek3K2zbVDQzvBBNcQKxf/mlCsrqN4QO0mKYSRRqag5A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "20.8.2", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-20.8.2.tgz", - "integrity": "sha512-0SEOqT/daBG5WtM9vOGilrYaAuf1tiALdrFavY62+/arXYxXemUKmRI5qoKDTnvoLMBGkJs6kxhMO5b7aUXIvQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-win32-x64-msvc": { - "version": "20.8.2", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-20.8.2.tgz", - "integrity": "sha512-iIsY+tVqes/NOqTbJmggL9Juie/iaDYlWgXA9IUv88FE9thqWKhVj4/tCcPjsOwzD+1SVna3YISEEFsx5UV4ew==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@octokit/auth-token": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", - "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/core": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.1.tgz", - "integrity": "sha512-dKYCMuPO1bmrpuogcjQ8z7ICCH3FP6WmxpwC03yjzGfZhj9fTJg6+bS1+UAplekbN2C+M61UNllGOOoAfGCrdQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/auth-token": "^4.0.0", - "@octokit/graphql": "^7.1.0", - "@octokit/request": "^8.4.1", - "@octokit/request-error": "^5.1.1", - "@octokit/types": "^13.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/endpoint": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz", - "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/types": "^13.1.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/graphql": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.1.tgz", - "integrity": "sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/request": "^8.4.1", - "@octokit/types": "^13.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/openapi-types": { - "version": "24.2.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", - "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@octokit/plugin-enterprise-rest": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz", - "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "11.4.4-cjs.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.4-cjs.2.tgz", - "integrity": "sha512-2dK6z8fhs8lla5PaOTgqfCGBxgAv/le+EhPs27KklPhm1bKObpu6lXzwfUEQ16ajXzqNrKMujsFyo9K2eaoISw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/types": "^13.7.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": "5" - } - }, - "node_modules/@octokit/plugin-request-log": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz", - "integrity": "sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": "5" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "13.3.2-cjs.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.3.2-cjs.1.tgz", - "integrity": "sha512-VUjIjOOvF2oELQmiFpWA1aOPdawpyaCUqcEBc/UOUnj3Xp6DJGrJ1+bjUIIDzdHjnFNO6q57ODMfdEZnoBkCwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/types": "^13.8.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": "^5" - } - }, - "node_modules/@octokit/request": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz", - "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/endpoint": "^9.0.6", - "@octokit/request-error": "^5.1.1", - "@octokit/types": "^13.1.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/request-error": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz", - "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/types": "^13.1.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/rest": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.1.2.tgz", - "integrity": "sha512-GmYiltypkHHtihFwPRxlaorG5R9VAHuk/vbszVoRTGXnAsY60wYLkh/E2XiFmdZmqrisw+9FaazS1i5SbdWYgA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/core": "^5.0.2", - "@octokit/plugin-paginate-rest": "11.4.4-cjs.2", - "@octokit/plugin-request-log": "^4.0.0", - "@octokit/plugin-rest-endpoint-methods": "13.3.2-cjs.1" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/types": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", - "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^24.2.0" - } - }, - "node_modules/@pixi/accessibility": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/accessibility/-/accessibility-6.5.10.tgz", - "integrity": "sha512-URrI1H+1kjjHSyhY1QXcUZ8S3omdVTrXg5y0gndtpOhIelErBTC9NWjJfw6s0Rlmv5+x5VAitQTgw9mRiatDgw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/core": "6.5.10", - "@pixi/display": "6.5.10", - "@pixi/utils": "6.5.10" - } - }, - "node_modules/@pixi/app": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/app/-/app-6.5.10.tgz", - "integrity": "sha512-VsNHLajZ5Dbc/Zrj7iWmIl3eu6Fec+afjW/NXXezD8Sp3nTDF0bv5F+GDgN/zSc2gqIvPHyundImT7hQGBDghg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/core": "6.5.10", - "@pixi/display": "6.5.10", - "@pixi/math": "6.5.10", - "@pixi/utils": "6.5.10" - } - }, - "node_modules/@pixi/colord": { - "version": "2.9.6", - "resolved": "https://registry.npmjs.org/@pixi/colord/-/colord-2.9.6.tgz", - "integrity": "sha512-nezytU2pw587fQstUu1AsJZDVEynjskwOL+kibwcdxsMBFqPsFFNA7xl0ii/gXuDi6M0xj3mfRJj8pBSc2jCfA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@pixi/compressed-textures": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/compressed-textures/-/compressed-textures-6.5.10.tgz", - "integrity": "sha512-41NT5mkfam47DrkB8xMp3HUZDt7139JMB6rVNOmb3u2vm+2mdy9tzi5s9nN7bG9xgXlchxcFzytTURk+jwXVJA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/constants": "6.5.10", - "@pixi/core": "6.5.10", - "@pixi/loaders": "6.5.10", - "@pixi/settings": "6.5.10", - "@pixi/utils": "6.5.10" - } - }, - "node_modules/@pixi/constants": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-6.5.10.tgz", - "integrity": "sha512-PUF2Y9YISRu5eVrVVHhHCWpc/KmxQTg3UH8rIUs8UI9dCK41/wsPd3pEahzf7H47v7x1HCohVZcFO3XQc1bUDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@pixi/core": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/core/-/core-6.5.10.tgz", - "integrity": "sha512-Gdzp5ENypyglvsh5Gv3teUZnZnmizo4xOsL+QqmWALdFlJXJwLJMVhKVThV/q/095XR6i4Ou54oshn+m4EkuFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/offscreencanvas": "^2019.6.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/pixijs" - }, - "peerDependencies": { - "@pixi/constants": "6.5.10", - "@pixi/extensions": "6.5.10", - "@pixi/math": "6.5.10", - "@pixi/runner": "6.5.10", - "@pixi/settings": "6.5.10", - "@pixi/ticker": "6.5.10", - "@pixi/utils": "6.5.10" - } - }, - "node_modules/@pixi/display": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/display/-/display-6.5.10.tgz", - "integrity": "sha512-NxFdDDxlbH5fQkzGHraLGoTMucW9pVgXqQm13TSmkA3NWIi/SItHL4qT2SI8nmclT9Vid1VDEBCJFAbdeuQw1Q==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/constants": "6.5.10", - "@pixi/math": "6.5.10", - "@pixi/settings": "6.5.10", - "@pixi/utils": "6.5.10" - } - }, - "node_modules/@pixi/extensions": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/extensions/-/extensions-6.5.10.tgz", - "integrity": "sha512-EIUGza+E+sCy3dupuIjvRK/WyVyfSzHb5XsxRaxNrPwvG1iIUIqNqZ3owLYCo4h17fJWrj/yXVufNNtUKQccWQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@pixi/extract": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/extract/-/extract-6.5.10.tgz", - "integrity": "sha512-hXFIc4EGs14GFfXAjT1+6mzopzCMWeXeai38/Yod3vuBXkkp8+ksen6kE09vTnB9l1IpcIaCM+XZEokuqoGX2A==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/constants": "6.5.10", - "@pixi/core": "6.5.10", - "@pixi/math": "6.5.10", - "@pixi/utils": "6.5.10" - } - }, - "node_modules/@pixi/filter-alpha": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/filter-alpha/-/filter-alpha-6.5.10.tgz", - "integrity": "sha512-GWHLJvY0QOIDRjVx0hdUff6nl/PePQg84i8XXPmANrvA+gJ/eSRTQRmQcdgInQfawENADB/oRqpcCct6IAcKpQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/core": "6.5.10" - } - }, - "node_modules/@pixi/filter-blur": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/filter-blur/-/filter-blur-6.5.10.tgz", - "integrity": "sha512-LJsRocVOdM9hTzZKjP+jmkfoL1nrJi5XpR0ItgRN8fflOC7A7Ln4iPe7nukbbq3H7QhZSunbygMubbO6xhThZw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/constants": "6.5.10", - "@pixi/core": "6.5.10", - "@pixi/settings": "6.5.10" - } - }, - "node_modules/@pixi/filter-color-matrix": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/filter-color-matrix/-/filter-color-matrix-6.5.10.tgz", - "integrity": "sha512-C2S44/EoWTrhqedLWOZTq9GZV5loEq1+MhyK9AUzEubWGMHhou1Juhn2mRZ7R6flKPCRQNKrXpStUwCAouud3Q==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/core": "6.5.10" - } - }, - "node_modules/@pixi/filter-displacement": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/filter-displacement/-/filter-displacement-6.5.10.tgz", - "integrity": "sha512-fbblMYyPX/hO3Tpoaa4tOBYxqp4TxjNrz6xyt15tKSVxWQElk+Tx98GJ+aaBoiHOKt8ezzHplStWoHG++JIv/w==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/core": "6.5.10", - "@pixi/math": "6.5.10" - } - }, - "node_modules/@pixi/filter-fxaa": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/filter-fxaa/-/filter-fxaa-6.5.10.tgz", - "integrity": "sha512-wbHL9UtY3g7jTyvO8JaZks6DqV8AO5c96Hfu0zfndWBPs79Ul6/sq3LD2eE+yq5vK5T2R9Sr4s54ls1JT3Sppg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/core": "6.5.10" - } - }, - "node_modules/@pixi/filter-noise": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/filter-noise/-/filter-noise-6.5.10.tgz", - "integrity": "sha512-CX+/06NVaw3HsjipZVb7aemkca0TC8I6qfKI4lx2ugxS/6G6zkY5zqd8+nVSXW4DpUXB6eT0emwfRv6N00NvuA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/core": "6.5.10" - } - }, - "node_modules/@pixi/graphics": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/graphics/-/graphics-6.5.10.tgz", - "integrity": "sha512-KPHGJ910fi8bRQQ+VcTIgrK+bKIm8yAQaZKPqMtm14HzHPGcES6HkgeNY1sd7m8J4aS9btm5wOSyFu0p5IzTpA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/constants": "6.5.10", - "@pixi/core": "6.5.10", - "@pixi/display": "6.5.10", - "@pixi/math": "6.5.10", - "@pixi/sprite": "6.5.10", - "@pixi/utils": "6.5.10" - } - }, - "node_modules/@pixi/interaction": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/interaction/-/interaction-6.5.10.tgz", - "integrity": "sha512-v809pJmXA2B9dV/vdrDMUqJT+fBB/ARZli2YRmI2dPbEbkaYr8FNmxCAJnwT8o+ymTx044Ie820hn9tVrtMtfA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/core": "6.5.10", - "@pixi/display": "6.5.10", - "@pixi/math": "6.5.10", - "@pixi/ticker": "6.5.10", - "@pixi/utils": "6.5.10" - } - }, - "node_modules/@pixi/loaders": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/loaders/-/loaders-6.5.10.tgz", - "integrity": "sha512-AuK7mXBmyVsDFL9DDFPB8sqP8fwQ2NOktvu98bQuJl0/p/UeK/0OAQnF3wcf3FeBv5YGXfNHL21c2DCisjKfTg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/constants": "6.5.10", - "@pixi/core": "6.5.10", - "@pixi/utils": "6.5.10" - } - }, - "node_modules/@pixi/math": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/math/-/math-6.5.10.tgz", - "integrity": "sha512-fxeu7ykVbMGxGV2S3qRTupHToeo1hdWBm8ihyURn3BMqJZe2SkZEECPd5RyvIuuNUtjRnmhkZRnF3Jsz2S+L0g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@pixi/mesh": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/mesh/-/mesh-6.5.10.tgz", - "integrity": "sha512-tUNPsdp5/t/yRsCmfxIcufIfbQVzgAlMNgQ1igWOkSxzhB7vlEbZ8ZLLW5tQcNyM/r7Nhjz+RoB+RD+/BCtvlA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/constants": "6.5.10", - "@pixi/core": "6.5.10", - "@pixi/display": "6.5.10", - "@pixi/math": "6.5.10", - "@pixi/settings": "6.5.10", - "@pixi/utils": "6.5.10" - } - }, - "node_modules/@pixi/mesh-extras": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/mesh-extras/-/mesh-extras-6.5.10.tgz", - "integrity": "sha512-UCG7OOPPFeikrX09haCibCMR0jPQ4UJ+4HiYiAv/3dahq5eEzBx+yAwVtxcVCjonkTf/lu5SzmHdzpsbHLx5aw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/constants": "6.5.10", - "@pixi/core": "6.5.10", - "@pixi/math": "6.5.10", - "@pixi/mesh": "6.5.10", - "@pixi/utils": "6.5.10" - } - }, - "node_modules/@pixi/mixin-cache-as-bitmap": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-6.5.10.tgz", - "integrity": "sha512-HV4qPZt8R7uuPZf1XE5S0e3jbN4+/EqgAIkueIyK3Em+0IO1rCmIbzzYxFPxkElMUu5VvN1r4hXK846z9ITnhw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/constants": "6.5.10", - "@pixi/core": "6.5.10", - "@pixi/display": "6.5.10", - "@pixi/math": "6.5.10", - "@pixi/settings": "6.5.10", - "@pixi/sprite": "6.5.10", - "@pixi/utils": "6.5.10" - } - }, - "node_modules/@pixi/mixin-get-child-by-name": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-6.5.10.tgz", - "integrity": "sha512-YYd9wjnI/4aKY0H5Ij413UppVZn3YE1No2CZrNevV6WbhylsJucowY3hJihtl9mxkpwtaUIyWMjmphkbOinbzA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/display": "6.5.10" - } - }, - "node_modules/@pixi/mixin-get-global-position": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/mixin-get-global-position/-/mixin-get-global-position-6.5.10.tgz", - "integrity": "sha512-A83gTZP9CdQAyrAvOZl1P707Q0QvIC0V8UnBAMd4GxuhMOXJtXVPCdmfPVXUrfoywgnH+/Bgimq5xhsXTf8Hzg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/display": "6.5.10", - "@pixi/math": "6.5.10" - } - }, - "node_modules/@pixi/particle-container": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/particle-container/-/particle-container-6.5.10.tgz", - "integrity": "sha512-CCNAdYGzKoOc3FtK2kyWCNjygdHppeOEqqK189yhg3yRSsvby+HMms/cM6bLK/4Vf6mFoAy1na3w/oXpqTR2Ag==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/constants": "6.5.10", - "@pixi/core": "6.5.10", - "@pixi/display": "6.5.10", - "@pixi/math": "6.5.10", - "@pixi/sprite": "6.5.10", - "@pixi/utils": "6.5.10" - } - }, - "node_modules/@pixi/particles": { - "version": "5.3.12", - "resolved": "https://registry.npmjs.org/@pixi/particles/-/particles-5.3.12.tgz", - "integrity": "sha512-SV/gOJBFa4jpsEM90f1bz5EuMMiNAz81mu+lhiUxdQQjZ8y/S4TiK7OAiyc+hUtp97JbJ//6u+4ynGwbhV+WDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@pixi/constants": "5.3.12", - "@pixi/core": "5.3.12", - "@pixi/display": "5.3.12", - "@pixi/math": "5.3.12", - "@pixi/utils": "5.3.12" - } - }, - "node_modules/@pixi/particles/node_modules/@pixi/constants": { - "version": "5.3.12", - "resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-5.3.12.tgz", - "integrity": "sha512-UcuvZZ8cQu+ZC7ufLpKi8NfZX0FncPuxKd0Rf6u6pzO2SmHPq4C1moXYGDnkZjPFAjNYFFHC7chU+zolMtkL/g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@pixi/particles/node_modules/@pixi/core": { - "version": "5.3.12", - "resolved": "https://registry.npmjs.org/@pixi/core/-/core-5.3.12.tgz", - "integrity": "sha512-SKZPU2mP4UE4trWOTcubGekKwopnotbyR2X8nb68wffBd1GzMoaxyakltfJF2oCV/ivrru/biP4CkW9K6MJ56g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@pixi/constants": "5.3.12", - "@pixi/math": "5.3.12", - "@pixi/runner": "5.3.12", - "@pixi/settings": "5.3.12", - "@pixi/ticker": "5.3.12", - "@pixi/utils": "5.3.12" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/pixijs" - } - }, - "node_modules/@pixi/particles/node_modules/@pixi/display": { - "version": "5.3.12", - "resolved": "https://registry.npmjs.org/@pixi/display/-/display-5.3.12.tgz", - "integrity": "sha512-/fsH/GAxc62rvwTnmrnV8oGCkk4LwJ9pt2Jv3UIorNsjXyL0V5fGw7uZnilF2eSdu6LgQKBMWPOtBF0TNML3lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@pixi/math": "5.3.12", - "@pixi/settings": "5.3.12", - "@pixi/utils": "5.3.12" - } - }, - "node_modules/@pixi/particles/node_modules/@pixi/math": { - "version": "5.3.12", - "resolved": "https://registry.npmjs.org/@pixi/math/-/math-5.3.12.tgz", - "integrity": "sha512-VMccUVKSRlLFTGQu6Z450q/W6LVibaFWEo2eSZZfxz+hwjlYiqRPx4heG++4Y6tGskZK7W8l8h+2ixjmo65FCg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@pixi/particles/node_modules/@pixi/runner": { - "version": "5.3.12", - "resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-5.3.12.tgz", - "integrity": "sha512-I5mXx4BiP8Bx5CFIXy3XV3ABYFXbIWaY6FxWsNFkySn0KUhizN7SarPdhFGs//hJuC54EH2FsKKNa98Lfc2nCQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@pixi/particles/node_modules/@pixi/settings": { - "version": "5.3.12", - "resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-5.3.12.tgz", - "integrity": "sha512-tLAa8tpDGllgj88NMUQn2Obn9MFJfHNF/CKs8aBhfeZGU4yL4PZDtlI+tqaB1ITGl3xxyHmJK+qfmv5lJn+zyA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ismobilejs": "^1.1.0" - } - }, - "node_modules/@pixi/particles/node_modules/@pixi/ticker": { - "version": "5.3.12", - "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-5.3.12.tgz", - "integrity": "sha512-YNYUj94XgogipYhPOjbdFBIsy7+U6KmolvK+Av1G88GDac5SDoALb1Nt6s23fd8HIz6b4YnabHOdXGz3zPir1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@pixi/settings": "5.3.12" - } - }, - "node_modules/@pixi/particles/node_modules/@pixi/utils": { - "version": "5.3.12", - "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-5.3.12.tgz", - "integrity": "sha512-PU/L852YjVbTy/6fDKQtYji6Vqcwi5FZNIjK6JXKuDPF411QfJK3QBaEqJTrexzHlc9Odr0tYECjwtXkCUR02g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@pixi/constants": "5.3.12", - "@pixi/settings": "5.3.12", - "earcut": "^2.1.5", - "eventemitter3": "^3.1.0", - "url": "^0.11.0" - } - }, - "node_modules/@pixi/particles/node_modules/eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@pixi/polyfill": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/polyfill/-/polyfill-6.5.10.tgz", - "integrity": "sha512-KDTWyr285VvPM8GGTVIZAhmxGrOlTznUGK/9kWS3GtrogwLWn41S/86Yej1gYvotVyUomCcOok33Jzahb+vX1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "object-assign": "^4.1.1", - "promise-polyfill": "^8.2.0" - } - }, - "node_modules/@pixi/prepare": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/prepare/-/prepare-6.5.10.tgz", - "integrity": "sha512-PHMApz/GPg7IX/7+2S98criN2+Mp+fgiKpojV9cnl0SlW2zMxfAHBBi8zik9rHBgjx8X6d6bR0MG1rPtb6vSxQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/core": "6.5.10", - "@pixi/display": "6.5.10", - "@pixi/graphics": "6.5.10", - "@pixi/settings": "6.5.10", - "@pixi/text": "6.5.10", - "@pixi/ticker": "6.5.10", - "@pixi/utils": "6.5.10" - } - }, - "node_modules/@pixi/runner": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-6.5.10.tgz", - "integrity": "sha512-4HiHp6diCmigJT/DSbnqQP62OfWKmZB7zPWMdV1AEdr4YT1QxzXAW1wHg7dkoEfyTHqZKl0tm/zcqKq/iH7tMA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@pixi/settings": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-6.5.10.tgz", - "integrity": "sha512-ypAS5L7pQ2Qb88yQK72bXtc7sD8OrtLWNXdZ/gnw5kwSWCFaOSoqhKqJCXrR5DQtN98+RQefwbEAmMvqobhFyw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/constants": "6.5.10" - } - }, - "node_modules/@pixi/sprite": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/sprite/-/sprite-6.5.10.tgz", - "integrity": "sha512-UiK+8LgM9XQ/SBDKjRgZ8WggdOSlFRXqiWjEZVmNkiyU8HvXeFzWPRhpc8RR1zDwAUhZWKtMhF8X/ba9m+z2lg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/constants": "6.5.10", - "@pixi/core": "6.5.10", - "@pixi/display": "6.5.10", - "@pixi/math": "6.5.10", - "@pixi/settings": "6.5.10", - "@pixi/utils": "6.5.10" - } - }, - "node_modules/@pixi/sprite-animated": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/sprite-animated/-/sprite-animated-6.5.10.tgz", - "integrity": "sha512-x1kayucAqpVbNk+j+diC/7sQGQsAl6NCH1J2/EEaiQjlV3GOx1MXS9Tft1N1Y1y7otbg1XsnBd60/Yzcp05pxA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/core": "6.5.10", - "@pixi/sprite": "6.5.10", - "@pixi/ticker": "6.5.10" - } - }, - "node_modules/@pixi/sprite-tiling": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/sprite-tiling/-/sprite-tiling-6.5.10.tgz", - "integrity": "sha512-lDFcPuwExrdJhli+WmjPivChjeCG6NiRl36iQ8n2zVi/MYVv9qfKCA6IdU7HBWk1AZdsg6KUTpwfmVLUI+qz3w==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/constants": "6.5.10", - "@pixi/core": "6.5.10", - "@pixi/display": "6.5.10", - "@pixi/math": "6.5.10", - "@pixi/sprite": "6.5.10", - "@pixi/utils": "6.5.10" - } - }, - "node_modules/@pixi/spritesheet": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/spritesheet/-/spritesheet-6.5.10.tgz", - "integrity": "sha512-7uOZ1cYyYtPb0ZEgXV1SZ8ujtluZNY0TL5z3+Qc8cgGGZK/MaWG7N6Wf+uR4BR2x8FLNwcyN5IjbQDKCpblrmg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/core": "6.5.10", - "@pixi/loaders": "6.5.10", - "@pixi/math": "6.5.10", - "@pixi/utils": "6.5.10" - } - }, - "node_modules/@pixi/text": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/text/-/text-6.5.10.tgz", - "integrity": "sha512-ikwkonLJ+6QmEVW8Ji9fS5CjrKNbU4mHzYuwRQas/VJQuSWgd0myCcaw6ZbF1oSfQe70HgbNOR0sH8Q3Com0qg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/core": "6.5.10", - "@pixi/math": "6.5.10", - "@pixi/settings": "6.5.10", - "@pixi/sprite": "6.5.10", - "@pixi/utils": "6.5.10" - } - }, - "node_modules/@pixi/text-bitmap": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/text-bitmap/-/text-bitmap-6.5.10.tgz", - "integrity": "sha512-g/iFIMGp6Pfi0BvX6Ykp48Z6JXVgKOrc7UCIR9CM21wYcCiQGqtdFwstV236xk6/D8NToUtSOcifhtQ28dVTdQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/constants": "6.5.10", - "@pixi/core": "6.5.10", - "@pixi/display": "6.5.10", - "@pixi/loaders": "6.5.10", - "@pixi/math": "6.5.10", - "@pixi/mesh": "6.5.10", - "@pixi/settings": "6.5.10", - "@pixi/text": "6.5.10", - "@pixi/utils": "6.5.10" - } - }, - "node_modules/@pixi/ticker": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-6.5.10.tgz", - "integrity": "sha512-UqX1XYtzqFSirmTOy8QAK4Ccg4KkIZztrBdRPKwFSOEiKAJoGDCSBmyQBo/9aYQKGObbNnrJ7Hxv3/ucg3/1GA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@pixi/extensions": "6.5.10", - "@pixi/settings": "6.5.10" - } - }, - "node_modules/@pixi/utils": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-6.5.10.tgz", - "integrity": "sha512-4f4qDMmAz9IoSAe08G2LAxUcEtG9jSdudfsMQT2MG+OpfToirboE6cNoO0KnLCvLzDVE/mfisiQ9uJbVA9Ssdw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/earcut": "^2.1.0", - "earcut": "^2.2.4", - "eventemitter3": "^3.1.0", - "url": "^0.11.0" - }, - "peerDependencies": { - "@pixi/constants": "6.5.10", - "@pixi/settings": "6.5.10" - } - }, - "node_modules/@pixi/utils/node_modules/eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@rollup/plugin-commonjs": { - "version": "28.0.6", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.6.tgz", - "integrity": "sha512-XSQB1K7FUU5QP+3lOQmVCE3I0FcbbNvmNT4VJSj93iUjayaARrTQeoRdiYQoftAJBLrR9t2agwAd3ekaTgHNlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "commondir": "^1.0.1", - "estree-walker": "^2.0.2", - "fdir": "^6.2.0", - "is-reference": "1.2.1", - "magic-string": "^0.30.3", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=16.0.0 || 14 >= 14.17" - }, - "peerDependencies": { - "rollup": "^2.68.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-commonjs/node_modules/fdir": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", - "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-commonjs/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/@rollup/plugin-json": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", - "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.1.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.1.tgz", - "integrity": "sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.78.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-typescript": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.4.tgz", - "integrity": "sha512-s5Hx+EtN60LMlDBvl5f04bEiFZmAepk27Q+mr85L/00zPDn1jtzlTV6FWn81MaIwqfWzKxmOJrBWHU6vtQyedQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.1.0", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.14.0||^3.0.0||^4.0.0", - "tslib": "*", - "typescript": ">=3.7.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - }, - "tslib": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.3.tgz", - "integrity": "sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", - "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", - "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", - "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", - "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", - "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", - "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", - "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", - "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", - "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", - "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", - "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", - "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", - "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", - "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", - "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", - "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", - "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", - "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", - "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", - "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@shikijs/engine-oniguruma": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.9.2.tgz", - "integrity": "sha512-Vn/w5oyQ6TUgTVDIC/BrpXwIlfK6V6kGWDVVz2eRkF2v13YoENUvaNwxMsQU/t6oCuZKzqp9vqtEtEzKl9VegA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/types": "3.9.2", - "@shikijs/vscode-textmate": "^10.0.2" - } - }, - "node_modules/@shikijs/langs": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.9.2.tgz", - "integrity": "sha512-X1Q6wRRQXY7HqAuX3I8WjMscjeGjqXCg/Sve7J2GWFORXkSrXud23UECqTBIdCSNKJioFtmUGJQNKtlMMZMn0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/types": "3.9.2" - } - }, - "node_modules/@shikijs/themes": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.9.2.tgz", - "integrity": "sha512-6z5lBPBMRfLyyEsgf6uJDHPa6NAGVzFJqH4EAZ+03+7sedYir2yJBRu2uPZOKmj43GyhVHWHvyduLDAwJQfDjA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/types": "3.9.2" - } - }, - "node_modules/@shikijs/types": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.9.2.tgz", - "integrity": "sha512-/M5L0Uc2ljyn2jKvj4Yiah7ow/W+DJSglVafvWAJ/b8AZDeeRAdMu3c2riDzB7N42VD+jSnWxeP9AKtd4TfYVw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4" - } - }, - "node_modules/@shikijs/vscode-textmate": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", - "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@sigstore/bundle": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", - "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/core": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", - "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/protobuf-specs": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.3.tgz", - "integrity": "sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/@sigstore/sign": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", - "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "make-fetch-happen": "^13.0.1", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/tuf": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", - "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2", - "tuf-js": "^2.2.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/verify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz", - "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.1.0", - "@sigstore/protobuf-specs": "^0.3.2" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tufjs/canonical-json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", - "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@tufjs/models": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz", - "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.4" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@tybys/wasm-util": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", - "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@types/css-font-loading-module": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@types/css-font-loading-module/-/css-font-loading-module-0.0.12.tgz", - "integrity": "sha512-x2tZZYkSxXqWvTDgveSynfjq/T2HyiZHXb00j/+gy19yp70PHCizM48XFdjBCWH7eHBD0R5i/pw9yMBP/BH5uA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/earcut": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@types/earcut/-/earcut-2.1.4.tgz", - "integrity": "sha512-qp3m9PPz4gULB9MhjGID7wpo3gJ4bTGXm7ltNDsmOvsPduTeHp8wSW9YckBj3mljeOh4F0m2z/0JKAALRKbmLQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", - "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/offscreencanvas": { - "version": "2019.7.3", - "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz", - "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/resolve": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", - "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.39.0.tgz", - "integrity": "sha512-bhEz6OZeUR+O/6yx9Jk6ohX6H9JSFTaiY0v9/PuKT3oGK0rn0jNplLmyFUGV+a9gfYnVNwGDwS/UkLIuXNb2Rw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.39.0", - "@typescript-eslint/type-utils": "8.39.0", - "@typescript-eslint/utils": "8.39.0", - "@typescript-eslint/visitor-keys": "8.39.0", - "graphemer": "^1.4.0", - "ignore": "^7.0.0", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.1.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.39.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.39.0.tgz", - "integrity": "sha512-g3WpVQHngx0aLXn6kfIYCZxM6rRJlWzEkVpqEFLT3SgEDsp9cpCbxxgwnE504q4H+ruSDh/VGS6nqZIDynP+vg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.39.0", - "@typescript-eslint/types": "8.39.0", - "@typescript-eslint/typescript-estree": "8.39.0", - "@typescript-eslint/visitor-keys": "8.39.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/project-service": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.39.0.tgz", - "integrity": "sha512-CTzJqaSq30V/Z2Og9jogzZt8lJRR5TKlAdXmWgdu4hgcC9Kww5flQ+xFvMxIBWVNdxJO7OifgdOK4PokMIWPew==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.39.0", - "@typescript-eslint/types": "^8.39.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.39.0.tgz", - "integrity": "sha512-8QOzff9UKxOh6npZQ/4FQu4mjdOCGSdO3p44ww0hk8Vu+IGbg0tB/H1LcTARRDzGCC8pDGbh2rissBuuoPgH8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.39.0", - "@typescript-eslint/visitor-keys": "8.39.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.39.0.tgz", - "integrity": "sha512-Fd3/QjmFV2sKmvv3Mrj8r6N8CryYiCS8Wdb/6/rgOXAWGcFuc+VkQuG28uk/4kVNVZBQuuDHEDUpo/pQ32zsIQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.39.0.tgz", - "integrity": "sha512-6B3z0c1DXVT2vYA9+z9axjtc09rqKUPRmijD5m9iv8iQpHBRYRMBcgxSiKTZKm6FwWw1/cI4v6em35OsKCiN5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.39.0", - "@typescript-eslint/typescript-estree": "8.39.0", - "@typescript-eslint/utils": "8.39.0", - "debug": "^4.3.4", - "ts-api-utils": "^2.1.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.39.0.tgz", - "integrity": "sha512-ArDdaOllnCj3yn/lzKn9s0pBQYmmyme/v1HbGIGB0GB/knFI3fWMHloC+oYTJW46tVbYnGKTMDK4ah1sC2v0Kg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.39.0.tgz", - "integrity": "sha512-ndWdiflRMvfIgQRpckQQLiB5qAKQ7w++V4LlCHwp62eym1HLB/kw7D9f2e8ytONls/jt89TEasgvb+VwnRprsw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/project-service": "8.39.0", - "@typescript-eslint/tsconfig-utils": "8.39.0", - "@typescript-eslint/types": "8.39.0", - "@typescript-eslint/visitor-keys": "8.39.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.1.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.39.0.tgz", - "integrity": "sha512-4GVSvNA0Vx1Ktwvf4sFE+exxJ3QGUorQG1/A5mRfRNZtkBT2xrA/BCO2H0eALx/PnvCS6/vmYwRdDA41EoffkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.39.0", - "@typescript-eslint/types": "8.39.0", - "@typescript-eslint/typescript-estree": "8.39.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.39.0.tgz", - "integrity": "sha512-ldgiJ+VAhQCfIjeOgu8Kj5nSxds0ktPOSO9p4+0VDH2R2pLvQraaM5Oen2d7NxzMCm+Sn/vJT+mv2H5u6b/3fA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.39.0", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@webgpu/types": { - "version": "0.1.51", - "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.51.tgz", - "integrity": "sha512-ktR3u64NPjwIViNCck+z9QeyN0iPkQCUOQ07ZCV1RzlkfP+olLTeEZ95O1QHS+v4w9vJeY9xj/uJuSphsHy5rQ==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@xmldom/xmldom": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", - "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/@yarnpkg/parsers": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.2.tgz", - "integrity": "sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "js-yaml": "^3.10.0", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@yarnpkg/parsers/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@yarnpkg/parsers/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@yarnpkg/parsers/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@zkochan/js-yaml": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz", - "integrity": "sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/abbrev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/add-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", - "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true, - "license": "MIT" - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "dev": true, - "license": "MIT" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/axios": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.10.0.tgz", - "integrity": "sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/basic-auth/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/bin-links": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-4.0.4.tgz", - "integrity": "sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==", - "dev": true, - "license": "ISC", - "dependencies": { - "cmd-shim": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "read-cmd-shim": "^4.0.0", - "write-file-atomic": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/byte-size": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-8.1.1.tgz", - "integrity": "sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.17" - } - }, - "node_modules/cacache": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", - "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true, - "license": "MIT" - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 10" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cmd-shim": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-6.0.3.tgz", - "integrity": "sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "license": "ISC", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/columnify": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", - "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commenting": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/commenting/-/commenting-1.1.0.tgz", - "integrity": "sha512-YeNK4tavZwtH7jEgK1ZINXzLKm6DZdEMfsaaieOsCAN0S8vsY7UeuO3Q7d/M018EFgE+IeUAuBOKkFccBZsUZA==", - "dev": true, - "license": "MIT" - }, - "node_modules/common-ancestor-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", - "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", - "dev": true, - "license": "ISC" - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true, - "license": "MIT" - }, - "node_modules/compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "dev": true, - "engines": [ - "node >= 6.0" - ], - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concurrently": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.0.tgz", - "integrity": "sha512-IsB/fiXTupmagMW4MNp2lx2cdSN2FfZq78vF90LBB+zZHArbIQZjQtzXCiXnvTxCZSvXanTqFLWBjw2UkLx1SQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.2", - "lodash": "^4.17.21", - "rxjs": "^7.8.1", - "shell-quote": "^1.8.1", - "supports-color": "^8.1.1", - "tree-kill": "^1.2.2", - "yargs": "^17.7.2" - }, - "bin": { - "conc": "dist/bin/concurrently.js", - "concurrently": "dist/bin/concurrently.js" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/conventional-changelog-angular": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", - "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "compare-func": "^2.0.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-changelog-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-5.0.1.tgz", - "integrity": "sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==", - "dev": true, - "license": "MIT", - "dependencies": { - "add-stream": "^1.0.0", - "conventional-changelog-writer": "^6.0.0", - "conventional-commits-parser": "^4.0.0", - "dateformat": "^3.0.3", - "get-pkg-repo": "^4.2.1", - "git-raw-commits": "^3.0.0", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^5.0.0", - "normalize-package-data": "^3.0.3", - "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/conventional-changelog-core/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-core/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-core/node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-preset-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz", - "integrity": "sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/conventional-changelog-writer": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-6.0.1.tgz", - "integrity": "sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "conventional-commits-filter": "^3.0.0", - "dateformat": "^3.0.3", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "meow": "^8.1.2", - "semver": "^7.0.0", - "split": "^1.0.1" - }, - "bin": { - "conventional-changelog-writer": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/conventional-commits-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz", - "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/conventional-commits-parser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", - "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.3.5", - "meow": "^8.1.2", - "split2": "^3.2.2" - }, - "bin": { - "conventional-commits-parser": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/conventional-recommended-bump": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-7.0.1.tgz", - "integrity": "sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA==", - "dev": true, - "license": "MIT", - "dependencies": { - "concat-stream": "^2.0.0", - "conventional-changelog-preset-loader": "^3.0.0", - "conventional-commits-filter": "^3.0.0", - "conventional-commits-parser": "^4.0.0", - "git-raw-commits": "^3.0.0", - "git-semver-tags": "^5.0.0", - "meow": "^8.1.2" - }, - "bin": { - "conventional-recommended-bump": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" - }, - "node_modules/corser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", - "integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "license": "MIT", - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dedent": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dotenv": { - "version": "16.4.7", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", - "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dotenv-expand": { - "version": "11.0.7", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", - "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dotenv": "^16.4.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/earcut": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", - "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, - "node_modules/ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/envinfo": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", - "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", - "dev": true, - "license": "MIT", - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true, - "license": "MIT" - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es6-promise-polyfill": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es6-promise-polyfill/-/es6-promise-polyfill-1.2.0.tgz", - "integrity": "sha512-HHb0vydCpoclpd0ySPkRXMmBw80MRt1wM4RBJBlXkux97K7gleabZdsR0gvE1nNPM9mgOZIBTzjjXiPxf4lIqQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/esbuild": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz", - "integrity": "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.8", - "@esbuild/android-arm": "0.25.8", - "@esbuild/android-arm64": "0.25.8", - "@esbuild/android-x64": "0.25.8", - "@esbuild/darwin-arm64": "0.25.8", - "@esbuild/darwin-x64": "0.25.8", - "@esbuild/freebsd-arm64": "0.25.8", - "@esbuild/freebsd-x64": "0.25.8", - "@esbuild/linux-arm": "0.25.8", - "@esbuild/linux-arm64": "0.25.8", - "@esbuild/linux-ia32": "0.25.8", - "@esbuild/linux-loong64": "0.25.8", - "@esbuild/linux-mips64el": "0.25.8", - "@esbuild/linux-ppc64": "0.25.8", - "@esbuild/linux-riscv64": "0.25.8", - "@esbuild/linux-s390x": "0.25.8", - "@esbuild/linux-x64": "0.25.8", - "@esbuild/netbsd-arm64": "0.25.8", - "@esbuild/netbsd-x64": "0.25.8", - "@esbuild/openbsd-arm64": "0.25.8", - "@esbuild/openbsd-x64": "0.25.8", - "@esbuild/openharmony-arm64": "0.25.8", - "@esbuild/sunos-x64": "0.25.8", - "@esbuild/win32-arm64": "0.25.8", - "@esbuild/win32-ia32": "0.25.8", - "@esbuild/win32-x64": "0.25.8" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "9.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.32.0.tgz", - "integrity": "sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.0", - "@eslint/config-helpers": "^0.3.0", - "@eslint/core": "^0.15.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.32.0", - "@eslint/plugin-kit": "^0.3.4", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.4.0", - "eslint-visitor-keys": "^4.2.1", - "espree": "^10.4.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-scope": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", - "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/espree": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", - "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.15.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true, - "license": "MIT" - }, - "node_modules/execa": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", - "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exponential-backoff": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.2.tgz", - "integrity": "sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "license": "MIT", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/external-editor/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatbuffers": { - "version": "25.2.10", - "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-25.2.10.tgz", - "integrity": "sha512-7JlN9ZvLDG1McO3kbX0k4v+SUAg48L1rIwEvN6ZQl/eCtgJz9UylTMzE9wrmYrcorgxm3CX/3T/w5VAub99UUw==", - "license": "Apache-2.0" - }, - "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "dev": true, - "license": "ISC" - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/form-data": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz", - "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/front-matter": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", - "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-yaml": "^3.13.1" - } - }, - "node_modules/front-matter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/front-matter/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/front-matter/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true, - "license": "MIT" - }, - "node_modules/fs-extra": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", - "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-pkg-repo": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", - "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@hutson/parse-repository-url": "^3.0.0", - "hosted-git-info": "^4.0.0", - "through2": "^2.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "get-pkg-repo": "src/cli.js" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-pkg-repo/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/get-pkg-repo/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/get-pkg-repo/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/get-pkg-repo/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/get-pkg-repo/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/get-pkg-repo/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", - "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-tsconfig": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", - "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/gifuct-js": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/gifuct-js/-/gifuct-js-2.1.2.tgz", - "integrity": "sha512-rI2asw77u0mGgwhV3qA+OEgYqaDn5UNqgs+Bx0FGwSpuqfYn+Ir6RQY5ENNQ8SbIiG/m5gVa7CD5RriO4f4Lsg==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-binary-schema-parser": "^2.0.3" - } - }, - "node_modules/git-raw-commits": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-3.0.0.tgz", - "integrity": "sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "dargs": "^7.0.0", - "meow": "^8.1.2", - "split2": "^3.2.2" - }, - "bin": { - "git-raw-commits": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/git-remote-origin-url/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/git-semver-tags": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-5.0.1.tgz", - "integrity": "sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==", - "dev": true, - "license": "MIT", - "dependencies": { - "meow": "^8.1.2", - "semver": "^7.0.0" - }, - "bin": { - "git-semver-tags": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/git-up": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", - "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-ssh": "^1.4.0", - "parse-url": "^8.1.0" - } - }, - "node_modules/git-url-parse": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-14.0.0.tgz", - "integrity": "sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "git-up": "^7.0.0" - } - }, - "node_modules/gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", - "dev": true, - "license": "BSD", - "dependencies": { - "ini": "^1.3.2" - } - }, - "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, - "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/hosted-git-info": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", - "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/http-server": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz", - "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==", - "dev": true, - "license": "MIT", - "dependencies": { - "basic-auth": "^2.0.1", - "chalk": "^4.1.2", - "corser": "^2.0.1", - "he": "^1.2.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy": "^1.18.1", - "mime": "^1.6.0", - "minimist": "^1.2.6", - "opener": "^1.5.1", - "portfinder": "^1.0.28", - "secure-compare": "3.0.1", - "union": "~0.5.0", - "url-join": "^4.0.1" - }, - "bin": { - "http-server": "bin/http-server" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-walk": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz", - "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", - "dev": true, - "license": "ISC", - "dependencies": { - "minimatch": "^9.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - "license": "MIT" - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true, - "license": "ISC" - }, - "node_modules/init-package-json": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-6.0.3.tgz", - "integrity": "sha512-Zfeb5ol+H+eqJWHTaGca9BovufyGeIfr4zaaBorPmJBMrJ+KBnN+kQx2ZtXdsotUTgldHmHQV44xvUWOUA7E2w==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/package-json": "^5.0.0", - "npm-package-arg": "^11.0.0", - "promzard": "^1.0.0", - "read": "^3.0.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/inquirer": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", - "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^6.0.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/is-ssh": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.1.tgz", - "integrity": "sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==", - "dev": true, - "license": "MIT", - "dependencies": { - "protocols": "^2.0.1" - } - }, - "node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "text-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/ismobilejs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz", - "integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw==", - "dev": true, - "license": "MIT" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jake": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", - "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jake/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/jake/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/js-binary-schema-parser": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz", - "integrity": "sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg==", - "dev": true, - "license": "MIT" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stringify-nice": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", - "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==", - "dev": true, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true, - "license": "ISC" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true, - "license": "MIT" - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "license": "MIT" - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "license": "(MIT OR Apache-2.0)", - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "license": "(MIT OR GPL-3.0-or-later)", - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - } - }, - "node_modules/jszip/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/jszip/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/jszip/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/just-diff": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-6.0.2.tgz", - "integrity": "sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==", - "dev": true, - "license": "MIT" - }, - "node_modules/just-diff-apply": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz", - "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "node_modules/@pixi/filter-color-matrix": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/filter-color-matrix/-/filter-color-matrix-6.5.10.tgz", + "integrity": "sha512-C2S44/EoWTrhqedLWOZTq9GZV5loEq1+MhyK9AUzEubWGMHhou1Juhn2mRZ7R6flKPCRQNKrXpStUwCAouud3Q==", "dev": true, "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lerna": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-8.2.3.tgz", - "integrity": "sha512-rmuDU+92eWUnnyaPg3Ise339pTxF+r2hu8ky/soCfbGpUoW4kCwsDza3P/LtQJWrKwZWHcosEitfYvxGUWZ16A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@lerna/create": "8.2.3", - "@npmcli/arborist": "7.5.4", - "@npmcli/package-json": "5.2.0", - "@npmcli/run-script": "8.1.0", - "@nx/devkit": ">=17.1.2 < 21", - "@octokit/plugin-enterprise-rest": "6.0.1", - "@octokit/rest": "20.1.2", - "aproba": "2.0.0", - "byte-size": "8.1.1", - "chalk": "4.1.0", - "clone-deep": "4.0.1", - "cmd-shim": "6.0.3", - "color-support": "1.1.3", - "columnify": "1.6.0", - "console-control-strings": "^1.1.0", - "conventional-changelog-angular": "7.0.0", - "conventional-changelog-core": "5.0.1", - "conventional-recommended-bump": "7.0.1", - "cosmiconfig": "9.0.0", - "dedent": "1.5.3", - "envinfo": "7.13.0", - "execa": "5.0.0", - "fs-extra": "^11.2.0", - "get-port": "5.1.1", - "get-stream": "6.0.0", - "git-url-parse": "14.0.0", - "glob-parent": "6.0.2", - "graceful-fs": "4.2.11", - "has-unicode": "2.0.1", - "import-local": "3.1.0", - "ini": "^1.3.8", - "init-package-json": "6.0.3", - "inquirer": "^8.2.4", - "is-ci": "3.0.1", - "is-stream": "2.0.0", - "jest-diff": ">=29.4.3 < 30", - "js-yaml": "4.1.0", - "libnpmaccess": "8.0.6", - "libnpmpublish": "9.0.9", - "load-json-file": "6.2.0", - "lodash": "^4.17.21", - "make-dir": "4.0.0", - "minimatch": "3.0.5", - "multimatch": "5.0.0", - "node-fetch": "2.6.7", - "npm-package-arg": "11.0.2", - "npm-packlist": "8.0.2", - "npm-registry-fetch": "^17.1.0", - "nx": ">=17.1.2 < 21", - "p-map": "4.0.0", - "p-map-series": "2.1.0", - "p-pipe": "3.1.0", - "p-queue": "6.6.2", - "p-reduce": "2.1.0", - "p-waterfall": "2.1.1", - "pacote": "^18.0.6", - "pify": "5.0.0", - "read-cmd-shim": "4.0.0", - "resolve-from": "5.0.0", - "rimraf": "^4.4.1", - "semver": "^7.3.8", - "set-blocking": "^2.0.0", - "signal-exit": "3.0.7", - "slash": "3.0.0", - "ssri": "^10.0.6", - "string-width": "^4.2.3", - "tar": "6.2.1", - "temp-dir": "1.0.0", - "through": "2.3.8", - "tinyglobby": "0.2.12", - "typescript": ">=3 < 6", - "upath": "2.0.1", - "uuid": "^10.0.0", - "validate-npm-package-license": "3.0.4", - "validate-npm-package-name": "5.0.1", - "wide-align": "1.1.5", - "write-file-atomic": "5.0.1", - "write-pkg": "4.0.0", - "yargs": "17.7.2", - "yargs-parser": "21.1.1" - }, - "bin": { - "lerna": "dist/cli.js" - }, - "engines": { - "node": ">=18.0.0" + "peerDependencies": { + "@pixi/core": "6.5.10" } }, - "node_modules/lerna/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@pixi/filter-displacement": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/filter-displacement/-/filter-displacement-6.5.10.tgz", + "integrity": "sha512-fbblMYyPX/hO3Tpoaa4tOBYxqp4TxjNrz6xyt15tKSVxWQElk+Tx98GJ+aaBoiHOKt8ezzHplStWoHG++JIv/w==", "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "peerDependencies": { + "@pixi/core": "6.5.10", + "@pixi/math": "6.5.10" } }, - "node_modules/lerna/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/@pixi/filter-fxaa": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/filter-fxaa/-/filter-fxaa-6.5.10.tgz", + "integrity": "sha512-wbHL9UtY3g7jTyvO8JaZks6DqV8AO5c96Hfu0zfndWBPs79Ul6/sq3LD2eE+yq5vK5T2R9Sr4s54ls1JT3Sppg==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/lerna/node_modules/glob": { - "version": "9.3.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", - "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "minimatch": "^8.0.2", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "@pixi/core": "6.5.10" } }, - "node_modules/lerna/node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/@pixi/filter-noise": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/filter-noise/-/filter-noise-6.5.10.tgz", + "integrity": "sha512-CX+/06NVaw3HsjipZVb7aemkca0TC8I6qfKI4lx2ugxS/6G6zkY5zqd8+nVSXW4DpUXB6eT0emwfRv6N00NvuA==", "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/lerna/node_modules/glob/node_modules/minimatch": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", - "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/lerna/node_modules/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/lerna/node_modules/minipass": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", - "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=8" + "peerDependencies": { + "@pixi/core": "6.5.10" } }, - "node_modules/lerna/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/@pixi/graphics": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/graphics/-/graphics-6.5.10.tgz", + "integrity": "sha512-KPHGJ910fi8bRQQ+VcTIgrK+bKIm8yAQaZKPqMtm14HzHPGcES6HkgeNY1sd7m8J4aS9btm5wOSyFu0p5IzTpA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "peerDependencies": { + "@pixi/constants": "6.5.10", + "@pixi/core": "6.5.10", + "@pixi/display": "6.5.10", + "@pixi/math": "6.5.10", + "@pixi/sprite": "6.5.10", + "@pixi/utils": "6.5.10" } }, - "node_modules/lerna/node_modules/rimraf": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", - "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", + "node_modules/@pixi/interaction": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/interaction/-/interaction-6.5.10.tgz", + "integrity": "sha512-v809pJmXA2B9dV/vdrDMUqJT+fBB/ARZli2YRmI2dPbEbkaYr8FNmxCAJnwT8o+ymTx044Ie820hn9tVrtMtfA==", "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^9.2.0" - }, - "bin": { - "rimraf": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "license": "MIT", + "peerDependencies": { + "@pixi/core": "6.5.10", + "@pixi/display": "6.5.10", + "@pixi/math": "6.5.10", + "@pixi/ticker": "6.5.10", + "@pixi/utils": "6.5.10" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/@pixi/loaders": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/loaders/-/loaders-6.5.10.tgz", + "integrity": "sha512-AuK7mXBmyVsDFL9DDFPB8sqP8fwQ2NOktvu98bQuJl0/p/UeK/0OAQnF3wcf3FeBv5YGXfNHL21c2DCisjKfTg==", "dev": true, "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" + "peerDependencies": { + "@pixi/constants": "6.5.10", + "@pixi/core": "6.5.10", + "@pixi/utils": "6.5.10" } }, - "node_modules/libnpmaccess": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-8.0.6.tgz", - "integrity": "sha512-uM8DHDEfYG6G5gVivVl+yQd4pH3uRclHC59lzIbSvy7b5FEwR+mU49Zq1jEyRtRFv7+M99mUW9S0wL/4laT4lw==", + "node_modules/@pixi/math": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/math/-/math-6.5.10.tgz", + "integrity": "sha512-fxeu7ykVbMGxGV2S3qRTupHToeo1hdWBm8ihyURn3BMqJZe2SkZEECPd5RyvIuuNUtjRnmhkZRnF3Jsz2S+L0g==", "dev": true, - "license": "ISC", - "dependencies": { - "npm-package-arg": "^11.0.2", - "npm-registry-fetch": "^17.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "license": "MIT" + }, + "node_modules/@pixi/mesh": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/mesh/-/mesh-6.5.10.tgz", + "integrity": "sha512-tUNPsdp5/t/yRsCmfxIcufIfbQVzgAlMNgQ1igWOkSxzhB7vlEbZ8ZLLW5tQcNyM/r7Nhjz+RoB+RD+/BCtvlA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@pixi/constants": "6.5.10", + "@pixi/core": "6.5.10", + "@pixi/display": "6.5.10", + "@pixi/math": "6.5.10", + "@pixi/settings": "6.5.10", + "@pixi/utils": "6.5.10" } }, - "node_modules/libnpmpublish": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-9.0.9.tgz", - "integrity": "sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg==", + "node_modules/@pixi/mesh-extras": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/mesh-extras/-/mesh-extras-6.5.10.tgz", + "integrity": "sha512-UCG7OOPPFeikrX09haCibCMR0jPQ4UJ+4HiYiAv/3dahq5eEzBx+yAwVtxcVCjonkTf/lu5SzmHdzpsbHLx5aw==", "dev": true, - "license": "ISC", - "dependencies": { - "ci-info": "^4.0.0", - "normalize-package-data": "^6.0.1", - "npm-package-arg": "^11.0.2", - "npm-registry-fetch": "^17.0.1", - "proc-log": "^4.2.0", - "semver": "^7.3.7", - "sigstore": "^2.2.0", - "ssri": "^10.0.6" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "license": "MIT", + "peerDependencies": { + "@pixi/constants": "6.5.10", + "@pixi/core": "6.5.10", + "@pixi/math": "6.5.10", + "@pixi/mesh": "6.5.10", + "@pixi/utils": "6.5.10" } }, - "node_modules/libnpmpublish/node_modules/ci-info": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.2.0.tgz", - "integrity": "sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==", + "node_modules/@pixi/mixin-cache-as-bitmap": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-6.5.10.tgz", + "integrity": "sha512-HV4qPZt8R7uuPZf1XE5S0e3jbN4+/EqgAIkueIyK3Em+0IO1rCmIbzzYxFPxkElMUu5VvN1r4hXK846z9ITnhw==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], "license": "MIT", - "engines": { - "node": ">=8" + "peerDependencies": { + "@pixi/constants": "6.5.10", + "@pixi/core": "6.5.10", + "@pixi/display": "6.5.10", + "@pixi/math": "6.5.10", + "@pixi/settings": "6.5.10", + "@pixi/sprite": "6.5.10", + "@pixi/utils": "6.5.10" } }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "node_modules/@pixi/mixin-get-child-by-name": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-6.5.10.tgz", + "integrity": "sha512-YYd9wjnI/4aKY0H5Ij413UppVZn3YE1No2CZrNevV6WbhylsJucowY3hJihtl9mxkpwtaUIyWMjmphkbOinbzA==", + "dev": true, "license": "MIT", - "dependencies": { - "immediate": "~3.0.5" + "peerDependencies": { + "@pixi/display": "6.5.10" } }, - "node_modules/lines-and-columns": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", - "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", + "node_modules/@pixi/mixin-get-global-position": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/mixin-get-global-position/-/mixin-get-global-position-6.5.10.tgz", + "integrity": "sha512-A83gTZP9CdQAyrAvOZl1P707Q0QvIC0V8UnBAMd4GxuhMOXJtXVPCdmfPVXUrfoywgnH+/Bgimq5xhsXTf8Hzg==", "dev": true, "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "peerDependencies": { + "@pixi/display": "6.5.10", + "@pixi/math": "6.5.10" } }, - "node_modules/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "node_modules/@pixi/particle-container": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/particle-container/-/particle-container-6.5.10.tgz", + "integrity": "sha512-CCNAdYGzKoOc3FtK2kyWCNjygdHppeOEqqK189yhg3yRSsvby+HMms/cM6bLK/4Vf6mFoAy1na3w/oXpqTR2Ag==", "dev": true, "license": "MIT", - "dependencies": { - "uc.micro": "^2.0.0" + "peerDependencies": { + "@pixi/constants": "6.5.10", + "@pixi/core": "6.5.10", + "@pixi/display": "6.5.10", + "@pixi/math": "6.5.10", + "@pixi/sprite": "6.5.10", + "@pixi/utils": "6.5.10" } }, - "node_modules/load-json-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", - "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", + "node_modules/@pixi/particles": { + "version": "5.3.12", + "resolved": "https://registry.npmjs.org/@pixi/particles/-/particles-5.3.12.tgz", + "integrity": "sha512-SV/gOJBFa4jpsEM90f1bz5EuMMiNAz81mu+lhiUxdQQjZ8y/S4TiK7OAiyc+hUtp97JbJ//6u+4ynGwbhV+WDA==", "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.15", - "parse-json": "^5.0.0", - "strip-bom": "^4.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" + "@pixi/constants": "5.3.12", + "@pixi/core": "5.3.12", + "@pixi/display": "5.3.12", + "@pixi/math": "5.3.12", + "@pixi/utils": "5.3.12" } }, - "node_modules/load-json-file/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "node_modules/@pixi/particles/node_modules/@pixi/constants": { + "version": "5.3.12", + "resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-5.3.12.tgz", + "integrity": "sha512-UcuvZZ8cQu+ZC7ufLpKi8NfZX0FncPuxKd0Rf6u6pzO2SmHPq4C1moXYGDnkZjPFAjNYFFHC7chU+zolMtkL/g==", "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/@pixi/particles/node_modules/@pixi/core": { + "version": "5.3.12", + "resolved": "https://registry.npmjs.org/@pixi/core/-/core-5.3.12.tgz", + "integrity": "sha512-SKZPU2mP4UE4trWOTcubGekKwopnotbyR2X8nb68wffBd1GzMoaxyakltfJF2oCV/ivrru/biP4CkW9K6MJ56g==", "dev": true, "license": "MIT", "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" + "@pixi/constants": "5.3.12", + "@pixi/math": "5.3.12", + "@pixi/runner": "5.3.12", + "@pixi/settings": "5.3.12", + "@pixi/ticker": "5.3.12", + "@pixi/utils": "5.3.12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/pixijs" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "node_modules/@pixi/particles/node_modules/@pixi/display": { + "version": "5.3.12", + "resolved": "https://registry.npmjs.org/@pixi/display/-/display-5.3.12.tgz", + "integrity": "sha512-/fsH/GAxc62rvwTnmrnV8oGCkk4LwJ9pt2Jv3UIorNsjXyL0V5fGw7uZnilF2eSdu6LgQKBMWPOtBF0TNML3lg==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@pixi/math": "5.3.12", + "@pixi/settings": "5.3.12", + "@pixi/utils": "5.3.12" + } }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "node_modules/@pixi/particles/node_modules/@pixi/math": { + "version": "5.3.12", + "resolved": "https://registry.npmjs.org/@pixi/math/-/math-5.3.12.tgz", + "integrity": "sha512-VMccUVKSRlLFTGQu6Z450q/W6LVibaFWEo2eSZZfxz+hwjlYiqRPx4heG++4Y6tGskZK7W8l8h+2ixjmo65FCg==", "dev": true, "license": "MIT" }, - "node_modules/lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", + "node_modules/@pixi/particles/node_modules/@pixi/runner": { + "version": "5.3.12", + "resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-5.3.12.tgz", + "integrity": "sha512-I5mXx4BiP8Bx5CFIXy3XV3ABYFXbIWaY6FxWsNFkySn0KUhizN7SarPdhFGs//hJuC54EH2FsKKNa98Lfc2nCQ==", "dev": true, "license": "MIT" }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "node_modules/@pixi/particles/node_modules/@pixi/settings": { + "version": "5.3.12", + "resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-5.3.12.tgz", + "integrity": "sha512-tLAa8tpDGllgj88NMUQn2Obn9MFJfHNF/CKs8aBhfeZGU4yL4PZDtlI+tqaB1ITGl3xxyHmJK+qfmv5lJn+zyA==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "ismobilejs": "^1.1.0" + } }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "node_modules/@pixi/particles/node_modules/@pixi/ticker": { + "version": "5.3.12", + "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-5.3.12.tgz", + "integrity": "sha512-YNYUj94XgogipYhPOjbdFBIsy7+U6KmolvK+Av1G88GDac5SDoALb1Nt6s23fd8HIz6b4YnabHOdXGz3zPir1Q==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@pixi/settings": "5.3.12" } }, - "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "node_modules/@pixi/particles/node_modules/@pixi/utils": { + "version": "5.3.12", + "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-5.3.12.tgz", + "integrity": "sha512-PU/L852YjVbTy/6fDKQtYji6Vqcwi5FZNIjK6JXKuDPF411QfJK3QBaEqJTrexzHlc9Odr0tYECjwtXkCUR02g==", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "@pixi/constants": "5.3.12", + "@pixi/settings": "5.3.12", + "earcut": "^2.1.5", + "eventemitter3": "^3.1.0", + "url": "^0.11.0" + } }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "node_modules/@pixi/particles/node_modules/eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", "dev": true, "license": "MIT" }, - "node_modules/magic-string": { - "version": "0.30.13", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.13.tgz", - "integrity": "sha512-8rYBO+MsWkgjDSOvLomYnzhdwEG51olQ4zL5KXnNJWV5MNmrb4rTZdrtkhxjnD/QyZUqR/Z/XDsUs/4ej2nx0g==", + "node_modules/@pixi/polyfill": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/polyfill/-/polyfill-6.5.10.tgz", + "integrity": "sha512-KDTWyr285VvPM8GGTVIZAhmxGrOlTznUGK/9kWS3GtrogwLWn41S/86Yej1gYvotVyUomCcOok33Jzahb+vX1w==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" + "object-assign": "^4.1.1", + "promise-polyfill": "^8.2.0" } }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "node_modules/@pixi/prepare": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/prepare/-/prepare-6.5.10.tgz", + "integrity": "sha512-PHMApz/GPg7IX/7+2S98criN2+Mp+fgiKpojV9cnl0SlW2zMxfAHBBi8zik9rHBgjx8X6d6bR0MG1rPtb6vSxQ==", "dev": true, "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@pixi/core": "6.5.10", + "@pixi/display": "6.5.10", + "@pixi/graphics": "6.5.10", + "@pixi/settings": "6.5.10", + "@pixi/text": "6.5.10", + "@pixi/ticker": "6.5.10", + "@pixi/utils": "6.5.10" } }, - "node_modules/make-fetch-happen": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", - "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "node_modules/@pixi/runner": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-6.5.10.tgz", + "integrity": "sha512-4HiHp6diCmigJT/DSbnqQP62OfWKmZB7zPWMdV1AEdr4YT1QxzXAW1wHg7dkoEfyTHqZKl0tm/zcqKq/iH7tMA==", "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } + "license": "MIT" }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "node_modules/@pixi/settings": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-6.5.10.tgz", + "integrity": "sha512-ypAS5L7pQ2Qb88yQK72bXtc7sD8OrtLWNXdZ/gnw5kwSWCFaOSoqhKqJCXrR5DQtN98+RQefwbEAmMvqobhFyw==", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@pixi/constants": "6.5.10" } }, - "node_modules/markdown-it": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", - "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "node_modules/@pixi/sprite": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/sprite/-/sprite-6.5.10.tgz", + "integrity": "sha512-UiK+8LgM9XQ/SBDKjRgZ8WggdOSlFRXqiWjEZVmNkiyU8HvXeFzWPRhpc8RR1zDwAUhZWKtMhF8X/ba9m+z2lg==", "dev": true, "license": "MIT", - "dependencies": { - "argparse": "^2.0.1", - "entities": "^4.4.0", - "linkify-it": "^5.0.0", - "mdurl": "^2.0.0", - "punycode.js": "^2.3.1", - "uc.micro": "^2.1.0" - }, - "bin": { - "markdown-it": "bin/markdown-it.mjs" + "peerDependencies": { + "@pixi/constants": "6.5.10", + "@pixi/core": "6.5.10", + "@pixi/display": "6.5.10", + "@pixi/math": "6.5.10", + "@pixi/settings": "6.5.10", + "@pixi/utils": "6.5.10" } }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "node_modules/@pixi/sprite-animated": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/sprite-animated/-/sprite-animated-6.5.10.tgz", + "integrity": "sha512-x1kayucAqpVbNk+j+diC/7sQGQsAl6NCH1J2/EEaiQjlV3GOx1MXS9Tft1N1Y1y7otbg1XsnBd60/Yzcp05pxA==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.4" + "peerDependencies": { + "@pixi/core": "6.5.10", + "@pixi/sprite": "6.5.10", + "@pixi/ticker": "6.5.10" } }, - "node_modules/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "node_modules/@pixi/sprite-tiling": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/sprite-tiling/-/sprite-tiling-6.5.10.tgz", + "integrity": "sha512-lDFcPuwExrdJhli+WmjPivChjeCG6NiRl36iQ8n2zVi/MYVv9qfKCA6IdU7HBWk1AZdsg6KUTpwfmVLUI+qz3w==", "dev": true, - "license": "MIT" + "license": "MIT", + "peerDependencies": { + "@pixi/constants": "6.5.10", + "@pixi/core": "6.5.10", + "@pixi/display": "6.5.10", + "@pixi/math": "6.5.10", + "@pixi/sprite": "6.5.10", + "@pixi/utils": "6.5.10" + } }, - "node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "node_modules/@pixi/spritesheet": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/spritesheet/-/spritesheet-6.5.10.tgz", + "integrity": "sha512-7uOZ1cYyYtPb0ZEgXV1SZ8ujtluZNY0TL5z3+Qc8cgGGZK/MaWG7N6Wf+uR4BR2x8FLNwcyN5IjbQDKCpblrmg==", "dev": true, "license": "MIT", - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@pixi/core": "6.5.10", + "@pixi/loaders": "6.5.10", + "@pixi/math": "6.5.10", + "@pixi/utils": "6.5.10" } }, - "node_modules/meow/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/@pixi/text": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/text/-/text-6.5.10.tgz", + "integrity": "sha512-ikwkonLJ+6QmEVW8Ji9fS5CjrKNbU4mHzYuwRQas/VJQuSWgd0myCcaw6ZbF1oSfQe70HgbNOR0sH8Q3Com0qg==", "dev": true, "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@pixi/core": "6.5.10", + "@pixi/math": "6.5.10", + "@pixi/settings": "6.5.10", + "@pixi/sprite": "6.5.10", + "@pixi/utils": "6.5.10" } }, - "node_modules/meow/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "node_modules/@pixi/text-bitmap": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/text-bitmap/-/text-bitmap-6.5.10.tgz", + "integrity": "sha512-g/iFIMGp6Pfi0BvX6Ykp48Z6JXVgKOrc7UCIR9CM21wYcCiQGqtdFwstV236xk6/D8NToUtSOcifhtQ28dVTdQ==", "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" + "license": "MIT", + "peerDependencies": { + "@pixi/constants": "6.5.10", + "@pixi/core": "6.5.10", + "@pixi/display": "6.5.10", + "@pixi/loaders": "6.5.10", + "@pixi/math": "6.5.10", + "@pixi/mesh": "6.5.10", + "@pixi/settings": "6.5.10", + "@pixi/text": "6.5.10", + "@pixi/utils": "6.5.10" } }, - "node_modules/meow/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/@pixi/ticker": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-6.5.10.tgz", + "integrity": "sha512-UqX1XYtzqFSirmTOy8QAK4Ccg4KkIZztrBdRPKwFSOEiKAJoGDCSBmyQBo/9aYQKGObbNnrJ7Hxv3/ucg3/1GA==", "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@pixi/extensions": "6.5.10", + "@pixi/settings": "6.5.10" } }, - "node_modules/meow/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/@pixi/utils": { + "version": "6.5.10", + "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-6.5.10.tgz", + "integrity": "sha512-4f4qDMmAz9IoSAe08G2LAxUcEtG9jSdudfsMQT2MG+OpfToirboE6cNoO0KnLCvLzDVE/mfisiQ9uJbVA9Ssdw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "@types/earcut": "^2.1.0", + "earcut": "^2.2.4", + "eventemitter3": "^3.1.0", + "url": "^0.11.0" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@pixi/constants": "6.5.10", + "@pixi/settings": "6.5.10" } }, - "node_modules/meow/node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "node_modules/@pixi/utils/node_modules/eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } + "license": "MIT" }, - "node_modules/meow/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.9.tgz", + "integrity": "sha512-lcJL0bN5hpgJfSIz/8PIf02irmyL43P+j1pTCfbD1DbLkmGRuFIA4DD3B3ZOvGqG0XiVvRznbKtN0COQVaKUTg==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/meow/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.9.tgz", + "integrity": "sha512-J7Zk3kLYFsLtuH6U+F4pS2sYVzac0qkjcO5QxHS7OS7yZu2LRs+IXo+uvJ/mvpyUljDJ3LROZPoQfgBIpCMhdQ==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=8" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/meow/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.9.tgz", + "integrity": "sha512-iwtmmghy8nhfRGeNAIltcNXzD0QMNaaA5U/NyZc1Ia4bxrzFByNMDoppoC+hl7cDiUq5/1CnFthpT9n+UtfFyg==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=8" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/meow/node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.9.tgz", + "integrity": "sha512-DLFYI78SCiZr5VvdEplsVC2Vx53lnA4/Ga5C65iyldMVaErr86aiqCoNBLl92PXPfDtUYjUh+xFFor40ueNs4Q==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.9.tgz", + "integrity": "sha512-CsjTmTwd0Hri6iTw/DRMK7kOZ7FwAkrO4h8YWKoX/kcj833e4coqo2wzIFywtch/8Eb5enQ/lwLM7w6JX1W5RQ==", + "cpu": [ + "arm" + ], "dev": true, - "license": "(MIT OR CC0-1.0)", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true, - "license": "ISC" - }, - "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/meow/node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.9.tgz", + "integrity": "sha512-2x9O2JbSPxpxMDhP9Z74mahAStibTlrBMW0520+epJH5sac7/LwZW5Bmg/E6CXuEF53JJFW509uP+lSedaUNxg==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.9.tgz", + "integrity": "sha512-JA1QRW31ogheAIRhIg9tjMfsYbglXXYGNPLdPEYrwFxdbkQCAzvpSCSHCDWNl4hTtrol8WeboCSEpjdZK8qrCg==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "(MIT OR CC0-1.0)", + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.9.tgz", + "integrity": "sha512-aOKU9dJheda8Kj8Y3w9gnt9QFOO+qKPAl8SWd7JPHP+Cu0EuDAE5wokQubLzIDQWg2myXq2XhTpOVS07qqvT+w==", + "cpu": [ + "ppc64" + ], "dev": true, - "license": "(MIT OR CC0-1.0)", + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/meow/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.9.tgz", + "integrity": "sha512-OalO94fqj7IWRn3VdXWty75jC5dk4C197AWEuMhIpvVv2lw9fiPhud0+bW2ctCxb3YoBZor71QHbY+9/WToadA==", + "cpu": [ + "s390x" + ], "dev": true, - "license": "ISC", + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.9.tgz", + "integrity": "sha512-cVEl1vZtBsBZna3YMjGXNvnYYrOJ7RzuWvZU0ffvJUexWkukMaDuGhUXn0rjnV0ptzGVkvc+vW9Yqy6h8YX4pg==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT" + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.9.tgz", + "integrity": "sha512-UzYnKCIIc4heAKgI4PZ3dfBGUZefGCJ1TPDuLHoCzgrMYPb5Rv6TLFuYtyM4rWyHM7hymNdsg5ik2C+UD9VDbA==", + "cpu": [ + "x64" + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 8" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.9.tgz", + "integrity": "sha512-+6zoiF+RRyf5cdlFQP7nm58mq7+/2PFaY2DNQeD4B87N36JzfF/l9mdBkkmTvSYcYPE8tMh/o3cRlsx1ldLfog==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, + "optional": true, + "os": [ + "openharmony" + ], "engines": { - "node": ">=8.6" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.9.tgz", + "integrity": "sha512-rgFN6sA/dyebil3YTlL2evvi/M+ivhfnyxec7AccTpRPccno/rPoNlqybEZQBkcbZu8Hy+eqNJCqfBR8P7Pg8g==", + "cpu": [ + "wasm32" + ], "dev": true, "license": "MIT", - "bin": { - "mime": "cli.js" + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^1.1.1" }, "engines": { - "node": ">=4" + "node": ">=14.0.0" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz", + "integrity": "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.6" + "optional": true, + "dependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1", + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" + "tslib": "^2.4.0" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.9.tgz", + "integrity": "sha512-lHVNUG/8nlF1IQk1C0Ci574qKYyty2goMiPlRqkC5R+3LkXDkL5Dhx8ytbxq35m+pkHVIvIxviD+TWLdfeuadA==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.9.tgz", + "integrity": "sha512-G0oA4+w1iY5AGi5HcDTxWsoxF509hrFIPB2rduV5aDqS9FtDg1CAfa7V34qImbjfhIcA8C+RekocJZA96EarwQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/mini-signals": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mini-signals/-/mini-signals-1.2.0.tgz", - "integrity": "sha512-alffqMkGCjjTSwvYMVLx+7QeJ6sTuxbXqBkP21my4iWU5+QpTQAJt3h7htA1OKm9F3BpMM0vnu72QIoiJakrLA==", + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.9.tgz", + "integrity": "sha512-w6oiRWgEBl04QkFZgmW+jnU1EC9b57Oihi2ot3HNWIQRqgHp5PnYDia5iZ5FF7rpa4EQdiqMDXjlqKGXBhsoXw==", "dev": true, "license": "MIT" }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "node_modules/@shikijs/engine-oniguruma": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.23.0.tgz", + "integrity": "sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "@shikijs/types": "3.23.0", + "@shikijs/vscode-textmate": "^10.0.2" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "node_modules/@shikijs/langs": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.23.0.tgz", + "integrity": "sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==", "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "@shikijs/types": "3.23.0" } }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "node_modules/@shikijs/themes": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.23.0.tgz", + "integrity": "sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==", "dev": true, "license": "MIT", "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" + "@shikijs/types": "3.23.0" } }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "node_modules/@shikijs/types": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.23.0.tgz", + "integrity": "sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" } }, - "node_modules/minipass-collect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } + "license": "MIT" }, - "node_modules/minipass-fetch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "node_modules/@types/earcut": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@types/earcut/-/earcut-2.1.4.tgz", + "integrity": "sha512-qp3m9PPz4gULB9MhjGID7wpo3gJ4bTGXm7ltNDsmOvsPduTeHp8wSW9YckBj3mljeOh4F0m2z/0JKAALRKbmLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/esrecurse": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", + "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==", "dev": true, "license": "MIT", - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } + "peer": true }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } + "license": "MIT" }, - "node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@types/unist": "*" } }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" + }, + "node_modules/@types/offscreencanvas": { + "version": "2019.7.3", + "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz", + "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==", + "dev": true, + "license": "MIT" }, - "node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "dev": true, - "license": "ISC", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.0.tgz", + "integrity": "sha512-qeu4rTHR3/IaFORbD16gmjq9+rEs9fGKdX0kF6BKSfi+gCuG3RCKLlSBYzn/bGsY9Tj7KE/DAQStbp8AHJGHEQ==", + "dev": true, + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.57.0", + "@typescript-eslint/type-utils": "8.57.0", + "@typescript-eslint/utils": "8.57.0", + "@typescript-eslint/visitor-keys": "8.57.0", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.4.0" }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.57.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 4" } }, - "node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/@typescript-eslint/parser": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.57.0.tgz", + "integrity": "sha512-XZzOmihLIr8AD1b9hL9ccNMzEMWt/dE2u7NyTY9jJG6YNiNthaD5XtUHVF2uCXZ15ng+z2hT3MVuxnUYhq6k1g==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "@typescript-eslint/scope-manager": "8.57.0", + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/typescript-estree": "8.57.0", + "@typescript-eslint/visitor-keys": "8.57.0", + "debug": "^4.4.3" }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "node_modules/@typescript-eslint/project-service": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.57.0.tgz", + "integrity": "sha512-pR+dK0BlxCLxtWfaKQWtYr7MhKmzqZxuii+ZjuFlZlIGRZm22HnXFqa2eY+90MUz8/i80YJmzFGDUsi8dMOV5w==", "dev": true, "license": "MIT", "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" + "@typescript-eslint/tsconfig-utils": "^8.57.0", + "@typescript-eslint/types": "^8.57.0", + "debug": "^4.4.3" }, "engines": { - "node": ">= 8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.57.0.tgz", + "integrity": "sha512-nvExQqAHF01lUM66MskSaZulpPL5pgy5hI5RfrxviLgzZVffB5yYzw27uK/ft8QnKXI2X0LBrHJFr1TaZtAibw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/visitor-keys": "8.57.0" }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.0.tgz", + "integrity": "sha512-LtXRihc5ytjJIQEH+xqjB0+YgsV4/tW35XKX3GTZHpWtcC8SPkT/d4tqdf1cKtesryHm2bgp6l555NYcT2NLvA==", "dev": true, "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "node_modules/@typescript-eslint/type-utils": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.57.0.tgz", + "integrity": "sha512-yjgh7gmDcJ1+TcEg8x3uWQmn8ifvSupnPfjP21twPKrDP/pTHlEQgmKcitzF/rzPSmv7QjJ90vRpN4U+zoUjwQ==", "dev": true, "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/typescript-estree": "8.57.0", + "@typescript-eslint/utils": "8.57.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.4.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/moment": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "node_modules/@typescript-eslint/types": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.57.0.tgz", + "integrity": "sha512-dTLI8PEXhjUC7B9Kre+u0XznO696BhXcTlOn0/6kf1fHaQW8+VjJAVHJ3eTI14ZapTxdkOmc80HblPQLaEeJdg==", "dev": true, "license": "MIT", "engines": { - "node": "*" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/multimatch": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", - "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.57.0.tgz", + "integrity": "sha512-m7faHcyVg0BT3VdYTlX8GdJEM7COexXxS6KqGopxdtkQRvBanK377QDHr4W/vIPAR+ah9+B/RclSW5ldVniO1Q==", "dev": true, "license": "MIT", "dependencies": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" + "@typescript-eslint/project-service": "8.57.0", + "@typescript-eslint/tsconfig-utils": "8.57.0", + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/visitor-keys": "8.57.0", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.4.0" }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/multimatch/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" } }, - "node_modules/multimatch/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" } }, - "node_modules/multimatch/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^5.0.2" }, "engines": { - "node": "*" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true, - "license": "ISC" - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/ncp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, - "license": "MIT", + "license": "ISC", "bin": { - "ncp": "bin/ncp" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, "engines": { - "node": ">= 0.6" + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "node_modules/@typescript-eslint/utils": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.57.0.tgz", + "integrity": "sha512-5iIHvpD3CZe06riAsbNxxreP+MuYgVUsV0n4bwLH//VJmgtt54sQeY2GszntJ4BjYCpMzrfVh2SBnUQTtys2lQ==", "dev": true, "license": "MIT", "dependencies": { - "whatwg-url": "^5.0.0" + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.57.0", + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/typescript-estree": "8.57.0" }, "engines": { - "node": "4.x || >=6.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, - "peerDependencies": { - "encoding": "^0.1.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/node-gyp": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.3.1.tgz", - "integrity": "sha512-Pp3nFHBThHzVtNY7U6JfPjvT/DTE8+o/4xKsLQtBoU+j2HLsGlhcfzflAoUreaJbNmYnX+LlLi0qjV8kpyO6xQ==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.57.0.tgz", + "integrity": "sha512-zm6xx8UT/Xy2oSr2ZXD0pZo7Jx2XsCoID2IUh9YSTFRu7z+WdwYTRk6LhUftm1crwqbuoF6I8zAFeCMw0YjwDg==", "dev": true, "license": "MIT", "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^10.3.10", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^13.0.0", - "nopt": "^7.0.0", - "proc-log": "^4.1.0", - "semver": "^7.3.5", - "tar": "^6.2.1", - "which": "^4.0.0" + "@typescript-eslint/types": "8.57.0", + "eslint-visitor-keys": "^5.0.0" }, - "bin": { - "node-gyp": "bin/node-gyp.js" + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/node-gyp/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "node_modules/@webgpu/types": { + "version": "0.1.69", + "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.69.tgz", + "integrity": "sha512-RPmm6kgRbI8e98zSD3RVACvnuktIja5+yLgDAkTmxLr90BEwdTXRQWNLF3ETTTyH/8mKhznZuN5AveXYFEsMGQ==", "dev": true, - "license": "ISC", + "license": "BSD-3-Clause" + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz", + "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=16" + "node": ">=10.0.0" } }, - "node_modules/node-gyp/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, + "license": "MIT", "bin": { - "node-which": "bin/which.js" + "acorn": "bin/acorn" }, "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": ">=0.4.0" } }, - "node_modules/node-machine-id": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz", - "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==", + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } }, - "node_modules/nopt": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", - "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "node_modules/ajv": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "abbrev": "^2.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/normalize-package-data": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", - "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^7.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, + "license": "MIT", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/npm-bundled": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz", - "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "npm-normalize-package-bin": "^3.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/npm-install-checks": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", - "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, - "license": "BSD-2-Clause", + "license": "Python-2.0" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dev": true, + "license": "MIT", "dependencies": { - "semver": "^7.1.1" + "safe-buffer": "5.1.2" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 0.8" } }, - "node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "node_modules/basic-auth/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } + "license": "MIT" }, - "node_modules/npm-package-arg": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.2.tgz", - "integrity": "sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==", + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^4.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "balanced-match": "^1.0.0" } }, - "node_modules/npm-packlist": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", - "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "ignore-walk": "^6.0.4" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm-pick-manifest": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", - "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^11.0.0", - "semver": "^7.3.5" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 0.4" } }, - "node_modules/npm-registry-fetch": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz", - "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/redact": "^2.0.0", - "jsonparse": "^1.3.1", - "make-fetch-happen": "^13.0.0", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minizlib": "^2.1.2", - "npm-package-arg": "^11.0.0", - "proc-log": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/nx": { - "version": "20.8.2", - "resolved": "https://registry.npmjs.org/nx/-/nx-20.8.2.tgz", - "integrity": "sha512-mDKpbH3vEpUFDx0rrLh+tTqLq1PYU8KiD/R7OVZGd1FxQxghx2HOl32MiqNsfPcw6AvKlXhslbwIESV+N55FLQ==", + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "hasInstallScript": true, "license": "MIT", "dependencies": { - "@napi-rs/wasm-runtime": "0.2.4", - "@yarnpkg/lockfile": "^1.1.0", - "@yarnpkg/parsers": "3.0.2", - "@zkochan/js-yaml": "0.0.7", - "axios": "^1.8.3", - "chalk": "^4.1.0", - "cli-cursor": "3.1.0", - "cli-spinners": "2.6.1", - "cliui": "^8.0.1", - "dotenv": "~16.4.5", - "dotenv-expand": "~11.0.6", - "enquirer": "~2.3.6", - "figures": "3.2.0", - "flat": "^5.0.2", - "front-matter": "^4.0.2", - "ignore": "^5.0.4", - "jest-diff": "^29.4.1", - "jsonc-parser": "3.2.0", - "lines-and-columns": "2.0.3", - "minimatch": "9.0.3", - "node-machine-id": "1.1.12", - "npm-run-path": "^4.0.1", - "open": "^8.4.0", - "ora": "5.3.0", - "resolve.exports": "2.0.3", - "semver": "^7.5.3", - "string-width": "^4.2.3", - "tar-stream": "~2.2.0", - "tmp": "~0.2.1", - "tsconfig-paths": "^4.1.2", - "tslib": "^2.3.0", - "yaml": "^2.6.0", - "yargs": "^17.6.2", - "yargs-parser": "21.1.1" - }, - "bin": { - "nx": "bin/nx.js", - "nx-cloud": "bin/nx-cloud.js" - }, - "optionalDependencies": { - "@nx/nx-darwin-arm64": "20.8.2", - "@nx/nx-darwin-x64": "20.8.2", - "@nx/nx-freebsd-x64": "20.8.2", - "@nx/nx-linux-arm-gnueabihf": "20.8.2", - "@nx/nx-linux-arm64-gnu": "20.8.2", - "@nx/nx-linux-arm64-musl": "20.8.2", - "@nx/nx-linux-x64-gnu": "20.8.2", - "@nx/nx-linux-x64-musl": "20.8.2", - "@nx/nx-win32-arm64-msvc": "20.8.2", - "@nx/nx-win32-x64-msvc": "20.8.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "peerDependencies": { - "@swc-node/register": "^1.8.0", - "@swc/core": "^1.3.85" + "engines": { + "node": ">=10" }, - "peerDependenciesMeta": { - "@swc-node/register": { - "optional": true - }, - "@swc/core": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/nx/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=12" } }, - "node_modules/nx/node_modules/ora": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", - "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==", + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "license": "MIT", "dependencies": { - "bl": "^4.0.3", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "log-symbols": "^4.0.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=0.10.0" + "node": ">=7.0.0" } }, - "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } + "license": "MIT" }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/concurrently": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.1.tgz", + "integrity": "sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==", "dev": true, "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "chalk": "4.1.2", + "rxjs": "7.8.2", + "shell-quote": "1.8.3", + "supports-color": "8.1.1", + "tree-kill": "1.2.2", + "yargs": "17.7.2" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" }, "engines": { - "node": ">=6" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" } }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "node_modules/concurrently/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/corser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", + "integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==", "dev": true, - "license": "(WTFPL OR MIT)", - "bin": { - "opener": "bin/opener-bin.js" + "license": "MIT", + "engines": { + "node": ">= 0.4.0" } }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 8" } }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" + "ms": "^2.1.3" }, "engines": { - "node": ">=10" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^3.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "dev": true, "license": "MIT", "dependencies": { - "aggregate-error": "^3.0.0" + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.4" } }, - "node_modules/p-map-series": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz", - "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==", + "node_modules/earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "license": "ISC" }, - "node_modules/p-pipe": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", - "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, - "license": "MIT", + "license": "MIT" + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=8" + "node": ">=0.12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.4" } }, - "node_modules/p-reduce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", - "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "dev": true, "license": "MIT", "dependencies": { - "p-finally": "^1.0.0" + "es-errors": "^1.3.0" }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/es6-promise-polyfill": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es6-promise-polyfill/-/es6-promise-polyfill-1.2.0.tgz", + "integrity": "sha512-HHb0vydCpoclpd0ySPkRXMmBw80MRt1wM4RBJBlXkux97K7gleabZdsR0gvE1nNPM9mgOZIBTzjjXiPxf4lIqQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/p-waterfall": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz", - "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==", + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "license": "MIT", - "dependencies": { - "p-reduce": "^2.0.0" - }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/package-name-regex": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/package-name-regex/-/package-name-regex-2.0.6.tgz", - "integrity": "sha512-gFL35q7kbE/zBaPA3UKhp2vSzcPYx2ecbYuwv1ucE9Il6IIgBDweBlH8D68UFGZic2MkllKa2KHCfC1IQBQUYA==", + "node_modules/eslint": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.0.3.tgz", + "integrity": "sha512-COV33RzXZkqhG9P2rZCFl9ZmJ7WL+gQSCRzE7RhkbclbQPtLAWReL7ysA0Sh4c8Im2U9ynybdR56PV0XcKvqaQ==", "dev": true, "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/dword-design" - } - }, - "node_modules/pacote": { - "version": "18.0.6", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz", - "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", - "dev": true, - "license": "ISC", + "peer": true, "dependencies": { - "@npmcli/git": "^5.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/package-json": "^5.1.0", - "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^8.0.0", - "cacache": "^18.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^7.0.2", - "npm-package-arg": "^11.0.0", - "npm-packlist": "^8.0.0", - "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^17.0.0", - "proc-log": "^4.0.0", - "promise-retry": "^2.0.1", - "sigstore": "^2.2.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.2", + "@eslint/config-array": "^0.23.3", + "@eslint/config-helpers": "^0.5.2", + "@eslint/core": "^1.1.1", + "@eslint/plugin-kit": "^0.6.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^9.1.2", + "eslint-visitor-keys": "^5.0.1", + "espree": "^11.1.1", + "esquery": "^1.7.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "minimatch": "^10.2.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" }, "bin": { - "pacote": "bin/index.js" + "eslint": "bin/eslint.js" }, "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "license": "(MIT AND Zlib)" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, - "engines": { - "node": ">=6" + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, - "node_modules/parse-conflict-json": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz", - "integrity": "sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==", + "node_modules/eslint-scope": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", + "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", "dev": true, - "license": "ISC", + "license": "BSD-2-Clause", + "peer": true, "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "just-diff": "^6.0.0", - "just-diff-apply": "^5.2.0" + "@types/esrecurse": "^4.3.1", + "@types/estree": "^1.0.8", + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, - "node_modules/parse-json/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/parse-json/node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "node_modules/eslint/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true, + "engines": { + "node": "18 || 20 || >=22" + } }, - "node_modules/parse-path": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.1.0.tgz", - "integrity": "sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==", + "node_modules/eslint/node_modules/brace-expansion": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "protocols": "^2.0.0" + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" } }, - "node_modules/parse-svg-path": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", - "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/parse-uri": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/parse-uri/-/parse-uri-1.0.9.tgz", - "integrity": "sha512-YZfRHHkEZa6qTfPF/xgZ1ErQYCABfud/Vcqp1Q1GNa7RKwv6Oe0YaxXfQQMnQsGdNTo3fwaT0GbVEX7dMAr7tw==", + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", + "peer": true, "engines": { - "node": ">= 0.10" + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/parse-url": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz", - "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==", + "node_modules/eslint/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", + "peer": true, "dependencies": { - "parse-path": "^7.0.0" + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/espree": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "acorn": "^8.16.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^5.0.1" + }, "engines": { - "node": ">=8" + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", + "peer": true, "engines": { - "node": ">=8" + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "BSD-3-Clause", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "estraverse": "^5.1.0" }, "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=0.10" } }, - "node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "pify": "^3.0.0" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=4" + "node": ">=4.0" } }, - "node_modules/path-type/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "engines": { - "node": ">=4" + "node": ">=4.0" } }, - "node_modules/pathe": { + "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true, "license": "MIT" }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12.0.0" }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/pify": { + "node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, "engines": { "node": ">=10" }, @@ -9062,1640 +2447,1527 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pixi.js": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-8.12.0.tgz", - "integrity": "sha512-or7vrH7WajLevu/JnGMdD80JaSpTlXfjwCLtzhg2BL60LWPf1pF0w08Qleiqr1Saj012gevguM//+6HzzVlnfA==", + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", "dependencies": { - "@pixi/colord": "^2.9.6", - "@types/css-font-loading-module": "^0.0.12", - "@types/earcut": "^3.0.0", - "@webgpu/types": "^0.1.40", - "@xmldom/xmldom": "^0.8.10", - "earcut": "^3.0.2", - "eventemitter3": "^5.0.1", - "gifuct-js": "^2.1.2", - "ismobilejs": "^1.1.1", - "parse-svg-path": "^0.1.2" + "flatted": "^3.2.9", + "keyv": "^4.5.4" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/pixijs" + "engines": { + "node": ">=16" } }, - "node_modules/pixi.js/node_modules/@types/earcut": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/earcut/-/earcut-3.0.0.tgz", - "integrity": "sha512-k/9fOUGO39yd2sCjrbAJvGDEQvRwRnQIZlBz43roGwUZo5SHAmyVvSFyaVVZkicRVCaDXPKlbxrUcBuJoSWunQ==", - "dev": true, - "license": "MIT" + "node_modules/flatbuffers": { + "version": "25.9.23", + "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-25.9.23.tgz", + "integrity": "sha512-MI1qs7Lo4Syw0EOzUl0xjs2lsoeqFku44KpngfIduHBYvzm8h2+7K8YMQh1JtVVVrUvhLpNwqVi4DERegUJhPQ==", + "license": "Apache-2.0" }, - "node_modules/pixi.js/node_modules/earcut": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.2.tgz", - "integrity": "sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==", + "node_modules/flatted": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.1.tgz", + "integrity": "sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==", "dev": true, "license": "ISC" }, - "node_modules/pixi.js/node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "dev": true, - "license": "MIT" - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "node": ">=4.0" }, - "engines": { - "node": ">=8" + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=8" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, + "license": "ISC", "engines": { - "node": ">=8" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/portfinder": { - "version": "1.0.32", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", - "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, "license": "MIT", "dependencies": { - "async": "^2.6.4", - "debug": "^3.2.7", - "mkdirp": "^0.5.6" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { - "node": ">= 0.12.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/portfinder/node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "dev": true, "license": "MIT", "dependencies": { - "lodash": "^4.17.14" + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/gifuct-js": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/gifuct-js/-/gifuct-js-2.1.2.tgz", + "integrity": "sha512-rI2asw77u0mGgwhV3qA+OEgYqaDn5UNqgs+Bx0FGwSpuqfYn+Ir6RQY5ENNQ8SbIiG/m5gVa7CD5RriO4f4Lsg==", "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "js-binary-schema-parser": "^2.0.3" } }, - "node_modules/portfinder/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "minimist": "^1.2.6" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, - "bin": { - "mkdirp": "bin/cmd.js" + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "is-glob": "^4.0.3" }, "engines": { - "node": ">=4" + "node": ">=10.13.0" } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "node_modules/glob/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": "18 || 20 || >=22" } }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "node_modules/glob/node_modules/brace-expansion": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "balanced-match": "^4.0.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "18 || 20 || >=22" } }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "node_modules/glob/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, "engines": { - "node": ">=10" + "node": "18 || 20 || >=22" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "license": "MIT" - }, - "node_modules/proggy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/proggy/-/proggy-2.0.0.tgz", - "integrity": "sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A==", + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "license": "ISC", + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/promise-all-reject-late": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", - "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==", - "dev": true, - "license": "ISC", + "node": ">=18" + }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/promise-call-limit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-3.0.2.tgz", - "integrity": "sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==", + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, - "license": "ISC", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true, - "license": "ISC" - }, - "node_modules/promise-polyfill": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.3.0.tgz", - "integrity": "sha512-H5oELycFml5yto/atYqmjyigJoAo3+OXwolYiH7OfQuYlAqhxNvTfiNMbV9hsC6Yp83yE5r2KTVmtrG6R9i6Pg==", - "dev": true, - "license": "MIT" - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/promzard": { + "node_modules/has-property-descriptors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/promzard/-/promzard-1.0.2.tgz", - "integrity": "sha512-2FPputGL+mP3jJ3UZg/Dl9YOkovB7DX0oOr+ck5QbZ5MtORtds8k/BZdn+02peDLI8/YWbmzx34k5fA+fHvCVQ==", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "read": "^3.0.1" + "es-define-property": "^1.0.0" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/protocols": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.2.tgz", - "integrity": "sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/proxy-from-env": { + "node_modules/has-symbols": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true, - "license": "MIT" - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/punycode.js": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", - "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.13.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", - "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", - "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.6" + "function-bind": "^1.1.2" }, "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.4" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "bin": { + "he": "bin/he" } }, - "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/read": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/read/-/read-3.0.1.tgz", - "integrity": "sha512-SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw==", + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "mute-stream": "^1.0.0" + "whatwg-encoding": "^2.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=12" } }, - "node_modules/read-cmd-shim": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz", - "integrity": "sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==", + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, - "license": "ISC", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8.0.0" } }, - "node_modules/read-package-json-fast": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", - "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "node_modules/http-server": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz", + "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" + "basic-auth": "^2.0.1", + "chalk": "^4.1.2", + "corser": "^2.0.1", + "he": "^1.2.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy": "^1.18.1", + "mime": "^1.6.0", + "minimist": "^1.2.6", + "opener": "^1.5.1", + "portfinder": "^1.0.28", + "secure-compare": "3.0.1", + "union": "~0.5.0", + "url-join": "^4.0.1" + }, + "bin": { + "http-server": "bin/http-server" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=12" } }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, "engines": { - "node": ">=4" + "node": ">= 4" } }, - "node_modules/read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "license": "MIT", "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "license": "MIT", - "dependencies": { - "locate-path": "^2.0.0" - }, "engines": { - "node": ">=4" + "node": ">=0.8.19" } }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "license": "MIT", - "dependencies": { - "p-try": "^1.0.0" - }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^1.1.0" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/read-pkg-up/node_modules/p-try": { + "node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } + "license": "ISC" }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "node_modules/ismobilejs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz", + "integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "node_modules/js-binary-schema-parser": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz", + "integrity": "sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg==", "dev": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/read-pkg/node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "argparse": "^2.0.1" }, - "engines": { - "node": ">=4" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } + "license": "MIT" }, - "node_modules/read-pkg/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, - "license": "MIT", + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "license": "(MIT OR GPL-3.0-or-later)", "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" } }, - "node_modules/read-pkg/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } + "node_modules/jszip/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, - "node_modules/read-pkg/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "node_modules/read/node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" } }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": ">= 6" + "node": ">= 0.8.0" } }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "license": "MIT", "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" + "immediate": "~3.0.5" } }, - "node_modules/replace": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/replace/-/replace-1.2.2.tgz", - "integrity": "sha512-C4EDifm22XZM2b2JOYe6Mhn+lBsLBAvLbK8drfUQLTfD1KYl/n3VaW/CDju0Ny4w3xTtegBpg8YNSpFJPUDSjA==", + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "2.4.2", - "minimatch": "3.0.5", - "yargs": "^15.3.1" - }, - "bin": { - "replace": "bin/replace.js", - "search": "bin/search.js" - }, - "engines": { - "node": ">= 6" + "uc.micro": "^2.0.0" } }, - "node_modules/replace/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/replace/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } + "license": "MIT" }, - "node_modules/replace/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", + "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", + "dev": true, + "license": "BlueOak-1.0.0", "engines": { - "node": ">=4" + "node": "20 || >=22" } }, - "node_modules/replace/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", "dev": true, - "license": "ISC", + "license": "MIT" + }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dev": true, + "license": "MIT", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" } }, - "node_modules/replace/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "dev": true, "license": "MIT", - "dependencies": { - "color-name": "1.1.3" + "engines": { + "node": ">= 0.4" } }, - "node_modules/replace/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", "dev": true, "license": "MIT" }, - "node_modules/replace/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, "license": "MIT", + "bin": { + "mime": "cli.js" + }, "engines": { - "node": ">=0.8.0" + "node": ">=4" } }, - "node_modules/replace/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/mini-signals": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mini-signals/-/mini-signals-1.2.0.tgz", + "integrity": "sha512-alffqMkGCjjTSwvYMVLx+7QeJ6sTuxbXqBkP21my4iWU5+QpTQAJt3h7htA1OKm9F3BpMM0vnu72QIoiJakrLA==", "dev": true, - "license": "MIT", + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/replace/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "dev": true, + "license": "BlueOak-1.0.0", "engines": { - "node": ">=4" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/replace/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/ncp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==", "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" + "bin": { + "ncp": "bin/ncp" } }, - "node_modules/replace/node_modules/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "license": "MIT", "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/replace/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", "dev": true, "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/replace/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" } }, - "node_modules/replace/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { - "node": ">=4" + "node": ">= 0.8.0" } }, - "node_modules/replace/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/replace/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "license": "MIT", "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/replace/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "dev": true, - "license": "ISC" + "license": "BlueOak-1.0.0" }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true, - "license": "MIT" + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "callsites": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=6" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "node_modules/parse-svg-path": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", + "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/parse-uri": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/parse-uri/-/parse-uri-1.0.9.tgz", + "integrity": "sha512-YZfRHHkEZa6qTfPF/xgZ1ErQYCABfud/Vcqp1Q1GNa7RKwv6Oe0YaxXfQQMnQsGdNTo3fwaT0GbVEX7dMAr7tw==", "dev": true, "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, "engines": { - "node": ">=8" + "node": ">= 0.10" } }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "node_modules/path-scurry": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/resolve.exports": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", - "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/resource-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/resource-loader/-/resource-loader-3.0.1.tgz", - "integrity": "sha512-fBuCRbEHdLCI1eglzQhUv9Rrdcmqkydr1r6uHE2cYHvRBrcLXeSmbE/qI/urFt8rPr/IGxir3BUwM5kUK8XoyA==", + "node_modules/pixi.js": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-8.17.0.tgz", + "integrity": "sha512-A6AhxbNG8Abo5xyNRJx//ETefTCcwWx2sw9e/E57YCGQ8MuvS5o2mbofBOPCdf1J+z6VKd7MZjictS9EkMXiuw==", "dev": true, "license": "MIT", + "workspaces": [ + "examples", + "playground" + ], "dependencies": { - "mini-signals": "^1.2.0", - "parse-uri": "^1.0.0" + "@pixi/colord": "^2.9.6", + "@types/earcut": "^3.0.0", + "@webgpu/types": "^0.1.69", + "@xmldom/xmldom": "^0.8.11", + "earcut": "^3.0.2", + "eventemitter3": "^5.0.1", + "gifuct-js": "^2.1.2", + "ismobilejs": "^1.1.1", + "parse-svg-path": "^0.1.2", + "tiny-lru": "^11.4.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/pixijs" } }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "node_modules/pixi.js/node_modules/@types/earcut": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/earcut/-/earcut-3.0.0.tgz", + "integrity": "sha512-k/9fOUGO39yd2sCjrbAJvGDEQvRwRnQIZlBz43roGwUZo5SHAmyVvSFyaVVZkicRVCaDXPKlbxrUcBuJoSWunQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pixi.js/node_modules/earcut": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.2.tgz", + "integrity": "sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/pixi.js/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true, + "license": "MIT" + }, + "node_modules/portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", "dev": true, "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" }, "engines": { - "node": ">=8" + "node": ">= 0.12.0" } }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "node_modules/portfinder/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 4" + "dependencies": { + "lodash": "^4.17.14" } }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/rimraf": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", - "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", + "node_modules/portfinder/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "glob": "^11.0.0", - "package-json-from-dist": "^1.0.0" + "minimist": "^1.2.6" }, "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "mkdirp": "bin/cmd.js" } }, - "node_modules/rimraf/node_modules/glob": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", - "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^4.0.1", - "minimatch": "^10.0.0", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, + "license": "MIT", "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 0.8.0" } }, - "node_modules/rimraf/node_modules/jackspeak": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", - "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/promise-polyfill": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.3.0.tgz", + "integrity": "sha512-H5oELycFml5yto/atYqmjyigJoAo3+OXwolYiH7OfQuYlAqhxNvTfiNMbV9hsC6Yp83yE5r2KTVmtrG6R9i6Pg==", "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "license": "MIT" }, - "node_modules/rimraf/node_modules/lru-cache": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", - "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "license": "ISC", + "license": "MIT", "engines": { - "node": "20 || >=22" + "node": ">=6" } }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, + "license": "MIT", "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=6" } }, - "node_modules/rimraf/node_modules/path-scurry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "node_modules/qs": { + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", + "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "BSD-3-Clause", "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" + "side-channel": "^1.0.6" }, "engines": { - "node": "20 || >=22" + "node": ">=0.6" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rollup": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", - "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", + "node_modules/replace": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/replace/-/replace-1.2.2.tgz", + "integrity": "sha512-C4EDifm22XZM2b2JOYe6Mhn+lBsLBAvLbK8drfUQLTfD1KYl/n3VaW/CDju0Ny4w3xTtegBpg8YNSpFJPUDSjA==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.8" + "chalk": "2.4.2", + "minimatch": "3.0.5", + "yargs": "^15.3.1" }, "bin": { - "rollup": "dist/bin/rollup" + "replace": "bin/replace.js", + "search": "bin/search.js" }, "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.46.2", - "@rollup/rollup-android-arm64": "4.46.2", - "@rollup/rollup-darwin-arm64": "4.46.2", - "@rollup/rollup-darwin-x64": "4.46.2", - "@rollup/rollup-freebsd-arm64": "4.46.2", - "@rollup/rollup-freebsd-x64": "4.46.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", - "@rollup/rollup-linux-arm-musleabihf": "4.46.2", - "@rollup/rollup-linux-arm64-gnu": "4.46.2", - "@rollup/rollup-linux-arm64-musl": "4.46.2", - "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", - "@rollup/rollup-linux-ppc64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-musl": "4.46.2", - "@rollup/rollup-linux-s390x-gnu": "4.46.2", - "@rollup/rollup-linux-x64-gnu": "4.46.2", - "@rollup/rollup-linux-x64-musl": "4.46.2", - "@rollup/rollup-win32-arm64-msvc": "4.46.2", - "@rollup/rollup-win32-ia32-msvc": "4.46.2", - "@rollup/rollup-win32-x64-msvc": "4.46.2", - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-esbuild": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-6.2.1.tgz", - "integrity": "sha512-jTNOMGoMRhs0JuueJrJqbW8tOwxumaWYq+V5i+PD+8ecSCVkuX27tGW7BXqDgoULQ55rO7IdNxPcnsWtshz3AA==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.4.0", - "es-module-lexer": "^1.6.0", - "get-tsconfig": "^4.10.0", - "unplugin-utils": "^0.2.4" - }, - "engines": { - "node": ">=14.18.0" - }, - "peerDependencies": { - "esbuild": ">=0.18.0", - "rollup": "^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" + "node": ">= 6" } }, - "node_modules/rollup-plugin-includepaths": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/rollup-plugin-includepaths/-/rollup-plugin-includepaths-0.2.4.tgz", - "integrity": "sha512-iZen+XKVExeCzk7jeSZPJKL7B67slZNr8GXSC5ROBXtDGXDBH8wdjMfdNW5hf9kPt+tHyIvWh3wlE9bPrZL24g==", - "dev": true, - "license": "MIT" - }, - "node_modules/rollup-plugin-license": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-3.6.0.tgz", - "integrity": "sha512-1ieLxTCaigI5xokIfszVDRoy6c/Wmlot1fDEnea7Q/WXSR8AqOjYljHDLObAx7nFxHC2mbxT3QnTSPhaic2IYw==", + "node_modules/replace/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "license": "MIT", "dependencies": { - "commenting": "~1.1.0", - "fdir": "^6.4.3", - "lodash": "~4.17.21", - "magic-string": "~0.30.0", - "moment": "~2.30.1", - "package-name-regex": "~2.0.6", - "spdx-expression-validate": "~2.0.0", - "spdx-satisfies": "~5.0.1" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" - } - }, - "node_modules/rollup-plugin-license/node_modules/fdir": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", - "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } + "node": ">=4" } }, - "node_modules/rollup-plugin-tsconfig-paths": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-tsconfig-paths/-/rollup-plugin-tsconfig-paths-1.5.2.tgz", - "integrity": "sha512-tyS7u2Md0eXKwbDfTuDDa1izciwqhOZsHzX7zYc5gKC1L7q5ozdSt+q1jjtD1dDqWyjrt8lZoiLtOQGhMHh1OQ==", + "node_modules/replace/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", "dependencies": { - "typescript-paths": "^1.5.1" - }, - "peerDependencies": { - "rollup": "^2 || ^3 || ^4" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "node_modules/replace/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, "engines": { - "node": ">=0.12.0" + "node": ">=4" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "node_modules/replace/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", + "license": "ISC", "dependencies": { - "queue-microtask": "^1.2.2" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" } }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "node_modules/replace/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "tslib": "^2.1.0" + "color-name": "1.1.3" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "license": "MIT" - }, - "node_modules/secure-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", - "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", + "node_modules/replace/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true, "license": "MIT" }, - "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/replace/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=0.8.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true, - "license": "ISC" - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "node_modules/replace/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "license": "MIT" + "node_modules/replace/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "node_modules/replace/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", "dependencies": { - "kind-of": "^6.0.2" + "p-locate": "^4.1.0" }, "engines": { "node": ">=8" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/replace/node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "shebang-regex": "^3.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/replace/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, "engines": { - "node": ">=8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "node_modules/replace/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "node_modules/replace/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "has-flag": "^3.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "node_modules/replace/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true, "license": "ISC" }, - "node_modules/sigstore": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz", - "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", + "node_modules/replace/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "@sigstore/sign": "^2.3.2", - "@sigstore/tuf": "^2.3.4", - "@sigstore/verify": "^1.2.1" + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/replace/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, "license": "MIT", "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" + "node": ">=0.10.0" } }, - "node_modules/socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true, - "license": "MIT", - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } + "license": "ISC" + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true, + "license": "MIT" }, - "node_modules/socks-proxy-agent": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", - "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "license": "MIT", - "dependencies": { - "agent-base": "^7.1.1", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, "engines": { - "node": ">= 14" + "node": ">=4" } }, - "node_modules/sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", + "node_modules/resource-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/resource-loader/-/resource-loader-3.0.1.tgz", + "integrity": "sha512-fBuCRbEHdLCI1eglzQhUv9Rrdcmqkydr1r6uHE2cYHvRBrcLXeSmbE/qI/urFt8rPr/IGxir3BUwM5kUK8XoyA==", "dev": true, "license": "MIT", "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=4" + "mini-signals": "^1.2.0", + "parse-uri": "^1.0.0" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/rimraf": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.3.tgz", + "integrity": "sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==", "dev": true, - "license": "BSD-3-Clause", + "license": "BlueOak-1.0.0", + "dependencies": { + "glob": "^13.0.3", + "package-json-from-dist": "^1.0.1" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, "engines": { - "node": ">=0.10.0" + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/spdx-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", - "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", + "node_modules/rolldown": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.9.tgz", + "integrity": "sha512-9EbgWge7ZH+yqb4d2EnELAntgPTWbfL8ajiTW+SyhJEC4qhBbkCKbqFV4Ge4zmu5ziQuVbWxb/XwLZ+RIO7E8Q==", "dev": true, "license": "MIT", "dependencies": { - "array-find-index": "^1.0.2", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" + "@oxc-project/types": "=0.115.0", + "@rolldown/pluginutils": "1.0.0-rc.9" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.0-rc.9", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.9", + "@rolldown/binding-darwin-x64": "1.0.0-rc.9", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.9", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.9", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.9", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.9", + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.9", + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.9", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.9", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.9", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.9", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.9", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.9", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.9" } }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "tslib": "^2.1.0" } }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, - "license": "CC-BY-3.0" + "license": "MIT" }, - "node_modules/spdx-expression-parse": { + "node_modules/secure-compare": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", + "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } + "license": "MIT" }, - "node_modules/spdx-expression-validate": { + "node_modules/set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-validate/-/spdx-expression-validate-2.0.0.tgz", - "integrity": "sha512-b3wydZLM+Tc6CFvaRDBOF9d76oGIHNCLYFeHbftFXUWjnfZWganmDmvtM5sm1cRwJc/VDBMLyGGrsLFd1vOxbg==", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true, - "license": "(MIT AND CC-BY-3.0)", - "dependencies": { - "spdx-expression-parse": "^3.0.0" - } + "license": "ISC" }, - "node_modules/spdx-license-ids": { - "version": "3.0.20", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", - "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, - "license": "CC0-1.0" + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } }, - "node_modules/spdx-ranges": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/spdx-ranges/-/spdx-ranges-2.1.1.tgz", - "integrity": "sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==", - "dev": true, - "license": "(MIT AND CC-BY-3.0)" + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" }, - "node_modules/spdx-satisfies": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-5.0.1.tgz", - "integrity": "sha512-Nwor6W6gzFp8XX4neaKQ7ChV4wmpSh2sSDemMFSzHxpTw460jxFYeOn+jq4ybnSSw/5sc3pjka9MQPouksQNpw==", + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "license": "MIT", "dependencies": { - "spdx-compare": "^1.0.0", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "license": "MIT", - "dependencies": { - "through": "2" - }, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", "dev": true, - "license": "ISC", - "dependencies": { - "readable-stream": "^3.0.0" + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, - "license": "BSD-3-Clause" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/ss6player-lib": { "resolved": "packages/ss6player-lib", @@ -10721,29 +3993,6 @@ "resolved": "packages/ssfblib", "link": true }, - "node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -10759,22 +4008,6 @@ "node": ">=8" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -10788,53 +4021,6 @@ "node": ">=8" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -10861,345 +4047,397 @@ "node": ">=8" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "node_modules/tiny-lru": { + "version": "11.4.7", + "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-11.4.7.tgz", + "integrity": "sha512-w/Te7uMUVeH0CR8vZIjr+XiN41V+30lkDdK+NRIDCUYKKuL9VcmaUEmaPISuwGhLlrTGh5yu18lENtR9axSxYw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-api-utils": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=18.12" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "typescript": ">=4.8.4" } }, - "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/turbo": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/turbo/-/turbo-2.8.17.tgz", + "integrity": "sha512-YwPsNSqU2f/RXU/+Kcb7cPkPZARxom4+me7LKEdN5jsvy2tpfze3zDZ4EiGrJnvOm9Avu9rK0aaYsP7qZ3iz7A==", "dev": true, - "license": "ISC", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "license": "MIT", + "bin": { + "turbo": "bin/turbo" }, - "engines": { - "node": ">=10" - } + "optionalDependencies": { + "turbo-darwin-64": "2.8.17", + "turbo-darwin-arm64": "2.8.17", + "turbo-linux-64": "2.8.17", + "turbo-linux-arm64": "2.8.17", + "turbo-windows-64": "2.8.17", + "turbo-windows-arm64": "2.8.17" + } + }, + "node_modules/turbo-darwin-64": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/turbo-darwin-64/-/turbo-darwin-64-2.8.17.tgz", + "integrity": "sha512-ZFkv2hv7zHpAPEXBF6ouRRXshllOavYc+jjcrYyVHvxVTTwJWsBZwJ/gpPzmOKGvkSjsEyDO5V6aqqtZzwVF+Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "node_modules/turbo-darwin-arm64": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/turbo-darwin-arm64/-/turbo-darwin-arm64-2.8.17.tgz", + "integrity": "sha512-5DXqhQUt24ycEryXDfMNKEkW5TBHs+QmU23a2qxXwwFDaJsWcPo2obEhBxxdEPOv7qmotjad+09RGeWCcJ9JDw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/turbo-linux-64": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/turbo-linux-64/-/turbo-linux-64-2.8.17.tgz", + "integrity": "sha512-KLUbz6w7F73D/Ihh51hVagrKR0/CTsPEbRkvXLXvoND014XJ4BCrQUqSxlQ4/hu+nqp1v5WlM85/h3ldeyujuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/turbo-linux-arm64": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/turbo-linux-arm64/-/turbo-linux-arm64-2.8.17.tgz", + "integrity": "sha512-pJK67XcNJH40lTAjFu7s/rUlobgVXyB3A3lDoq+/JccB3hf+SysmkpR4Itlc93s8LEaFAI4mamhFuTV17Z6wOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/turbo-windows-64": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/turbo-windows-64/-/turbo-windows-64-2.8.17.tgz", + "integrity": "sha512-EijeQ6zszDMmGZLP2vT2RXTs/GVi9rM0zv2/G4rNu2SSRSGFapgZdxgW4b5zUYLVaSkzmkpWlGfPfj76SW9yUg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/turbo-windows-arm64": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/turbo-windows-arm64/-/turbo-windows-arm64-2.8.17.tgz", + "integrity": "sha512-crpfeMPkfECd4V1PQ/hMoiyVcOy04+bWedu/if89S15WhOalHZ2BYUi6DOJhZrszY+mTT99OwpOsj4wNfb/GHQ==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "prelude-ls": "^1.2.1" }, "engines": { - "node": ">= 8" + "node": ">= 0.8.0" } }, - "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/typedoc": { + "version": "0.28.17", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.17.tgz", + "integrity": "sha512-ZkJ2G7mZrbxrKxinTQMjFqsCoYY6a5Luwv2GKbTnBCEgV2ihYm5CflA9JnJAwH0pZWavqfYxmDkFHPt4yx2oDQ==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "yallist": "^4.0.0" + "@gerrit0/mini-shiki": "^3.17.0", + "lunr": "^2.3.9", + "markdown-it": "^14.1.0", + "minimatch": "^9.0.5", + "yaml": "^2.8.1" + }, + "bin": { + "typedoc": "bin/typedoc" }, "engines": { - "node": ">=8" + "node": ">= 18", + "pnpm": ">= 10" + }, + "peerDependencies": { + "typescript": "5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x" } }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, "engines": { - "node": ">=8" + "node": ">=14.17" } }, - "node_modules/temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "node_modules/union": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", + "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", "dev": true, - "license": "MIT", + "dependencies": { + "qs": "^6.4.0" + }, "engines": { - "node": ">=0.10" + "node": ">= 0.8.0" } }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true, - "license": "MIT" - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "punycode": "^2.1.0" } }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/url": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", "dev": true, "license": "MIT", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", "dev": true, "license": "MIT" }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } + "license": "MIT" }, - "node_modules/tinyglobby": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz", - "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.4.3", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", "dev": true, "license": "MIT", - "peerDependencies": { - "picomatch": "^3 || ^4" + "dependencies": { + "iconv-lite": "0.6.3" }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, - "license": "MIT", "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, "engines": { - "node": ">=14.14" + "node": ">=0.10.0" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "is-number": "^7.0.0" + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" }, "engines": { - "node": ">=8.0" + "node": ">= 8" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", "dev": true, - "license": "MIT" + "license": "ISC" }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "license": "MIT", - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/treeverse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-3.0.0.tgz", - "integrity": "sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==", - "dev": true, - "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/ts-api-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", - "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, - "license": "MIT", + "license": "ISC", "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" + "node": ">=10" } }, - "node_modules/tsconfig-paths": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", "dev": true, - "license": "MIT", - "dependencies": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "license": "ISC", + "bin": { + "yaml": "bin.mjs" }, "engines": { - "node": ">=6" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" } }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, - "node_modules/tuf-js": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", - "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "license": "MIT", "dependencies": { - "@tufjs/models": "2.0.1", - "debug": "^4.3.4", - "make-fetch-happen": "^13.0.1" + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=12" } }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, + "license": "ISC", "engines": { - "node": ">= 0.8.0" + "node": ">=12" } }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, - "license": "(MIT OR CC0-1.0)", + "license": "MIT", "engines": { "node": ">=10" }, @@ -11207,708 +4445,672 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/typedoc": { - "version": "0.28.9", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.9.tgz", - "integrity": "sha512-aw45vwtwOl3QkUAmWCnLV9QW1xY+FSX2zzlit4MAfE99wX+Jij4ycnpbAWgBXsRrxmfs9LaYktg/eX5Bpthd3g==", - "dev": true, - "license": "Apache-2.0", + "packages/ss6player-lib": { + "version": "1.0.6", + "license": "SEE LICENSE", "dependencies": { - "@gerrit0/mini-shiki": "^3.9.0", - "lunr": "^2.3.9", - "markdown-it": "^14.1.0", - "minimatch": "^9.0.5", - "yaml": "^2.8.0" + "ssfblib": "1.2.6" }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 18", - "pnpm": ">= 10" + "devDependencies": { + "@typescript-eslint/eslint-plugin": "^8.57.0", + "@typescript-eslint/parser": "^8.57.0", + "eslint": "^9.39.4", + "flatbuffers": "^25.9.23", + "lodash.camelcase": "^4.3.0", + "rimraf": "^6.1.3", + "rolldown": "^1.0.0-rc.9", + "typedoc": "^0.28.17", + "typescript": "^5.9.3" }, - "peerDependencies": { - "typescript": "5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x" + "optionalDependencies": { + "fsevents": "^2.3.3" } }, - "node_modules/typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "packages/ss6player-lib/node_modules/@eslint/config-array": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", "dev": true, "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.5" }, "engines": { - "node": ">=14.17" - } - }, - "node_modules/typescript-paths": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/typescript-paths/-/typescript-paths-1.5.1.tgz", - "integrity": "sha512-lYErSLCON2MSplVV5V/LBgD4UNjMgY3guATdFCZY2q1Nr6OZEu4q6zX/rYMsG1TaWqqQSszg6C9EU7AGWMDrIw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "typescript": "^4.7.2 || ^5" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/uc.micro": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", - "dev": true, - "license": "MIT" - }, - "node_modules/uglify-js": { - "version": "3.19.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", - "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "packages/ss6player-lib/node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", "dev": true, - "license": "BSD-2-Clause", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" }, "engines": { - "node": ">=0.8.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/union": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", - "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", + "packages/ss6player-lib/node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "qs": "^6.4.0" + "@types/json-schema": "^7.0.15" }, "engines": { - "node": ">= 0.8.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "packages/ss6player-lib/node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", "dev": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^4.0.0" - }, + "license": "Apache-2.0", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "packages/ss6player-lib/node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "imurmurhash": "^0.1.4" + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/universal-user-agent": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", - "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "packages/ss6player-lib/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 10.0.0" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/unplugin-utils": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.2.4.tgz", - "integrity": "sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==", + "packages/ss6player-lib/node_modules/eslint": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", "dev": true, "license": "MIT", "dependencies": { - "pathe": "^2.0.2", - "picomatch": "^4.0.2" + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.2", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": ">=18.12.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sxzz" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, - "node_modules/unplugin-utils/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "packages/ss6player-lib/node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, "engines": { - "node": ">=12" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://opencollective.com/eslint" } }, - "node_modules/upath": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", - "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", + "packages/ss6player-lib/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "engines": { - "node": ">=4", - "yarn": "*" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "packages/ss6player-lib/node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", - "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^1.4.1", - "qs": "^6.12.3" + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": ">= 0.4" - } - }, - "node_modules/url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", - "dev": true, - "license": "MIT" - }, - "node_modules/url/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, - "node_modules/uuid": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", - "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/validate-npm-package-name": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", - "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "packages/ss6player-lib/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/walk-up-path": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz", - "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==", - "dev": true, - "license": "ISC" - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "license": "MIT", "dependencies": { - "defaults": "^1.0.3" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dev": true, - "license": "MIT", + "packages/ss6player-pixi": { + "version": "2.4.1", + "license": "SEE LICENSE", "dependencies": { - "iconv-lite": "0.6.3" + "ss6player-lib": "1.0.6" }, - "engines": { - "node": ">=12" + "devDependencies": { + "@typescript-eslint/eslint-plugin": "^8.57.0", + "@typescript-eslint/parser": "^8.57.0", + "concurrently": "^9.2.1", + "eslint": "^9.39.4", + "flatbuffers": "^25.9.23", + "http-server": "^14.1.1", + "lodash.camelcase": "^4.3.0", + "opener": "^1.5.2", + "pixi.js": "^8.17.0", + "rimraf": "^6.1.3", + "rolldown": "^1.0.0-rc.9", + "typedoc": "^0.28.17", + "typescript": "^5.9.3" + }, + "optionalDependencies": { + "fsevents": "^2.3.3" } }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "packages/ss6player-pixi/node_modules/@eslint/config-array": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.5" }, "engines": { - "node": ">=0.10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "packages/ss6player-pixi/node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "packages/ss6player-pixi/node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "@types/json-schema": "^7.0.15" }, "engines": { - "node": ">= 8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "packages/ss6player-pixi/node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "packages/ss6player-pixi/node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, "engines": { - "node": ">=0.10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "packages/ss6player-pixi/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "packages/ss6player-pixi/node_modules/eslint": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.2", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "packages/ss6player-pixi/node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, - "license": "ISC", + "license": "BSD-2-Clause", "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/write-file-atomic/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "packages/ss6player-pixi/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "engines": { - "node": ">=14" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://opencollective.com/eslint" } }, - "node_modules/write-json-file": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz", - "integrity": "sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==", + "packages/ss6player-pixi/node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "detect-indent": "^5.0.0", - "graceful-fs": "^4.1.15", - "make-dir": "^2.1.0", - "pify": "^4.0.1", - "sort-keys": "^2.0.0", - "write-file-atomic": "^2.4.2" + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": ">=6" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/write-json-file/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "packages/ss6player-pixi/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=6" - } - }, - "node_modules/write-json-file/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/write-json-file/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" + "node": "*" } }, - "node_modules/write-json-file/node_modules/write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "license": "ISC", + "packages/ss6player-pixi6": { + "version": "1.0.6", + "license": "SEE LICENSE", "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "ss6player-lib": "1.0.6" + }, + "devDependencies": { + "@pixi/constants": "^6.5.10", + "@pixi/core": "^6.5.10", + "@pixi/display": "^6.5.10", + "@pixi/filter-color-matrix": "^6.5.10", + "@pixi/loaders": "^6.5.10", + "@pixi/mesh-extras": "^6.5.10", + "@pixi/ticker": "^6.5.10", + "@typescript-eslint/eslint-plugin": "^8.57.0", + "@typescript-eslint/parser": "^8.57.0", + "concurrently": "^9.2.1", + "eslint": "^9.39.4", + "http-server": "^14.1.1", + "lodash.camelcase": "^4.3.0", + "opener": "^1.5.2", + "pixi.js": "^6.5.10", + "rimraf": "^6.1.3", + "rolldown": "^1.0.0-rc.9", + "typedoc": "^0.28.17", + "typescript": "^5.9.3" + }, + "optionalDependencies": { + "fsevents": "^2.3.3" } }, - "node_modules/write-pkg": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-4.0.0.tgz", - "integrity": "sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==", + "packages/ss6player-pixi6/node_modules/@eslint/config-array": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "sort-keys": "^2.0.0", - "type-fest": "^0.4.1", - "write-json-file": "^3.2.0" + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.5" }, "engines": { - "node": ">=8" - } - }, - "node_modules/write-pkg/node_modules/type-fest": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", - "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=6" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "packages/ss6player-pixi6/node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", - "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", + "packages/ss6player-pixi6/node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" }, "engines": { - "node": ">= 14.6" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "packages/ss6player-pixi6/node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "packages/ss6player-pixi6/node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" }, "engines": { - "node": ">=12" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "packages/ss6player-pixi6/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "packages/ss6player-pixi6/node_modules/eslint": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", "dev": true, "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.2", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, - "packages/ss6player-lib": { - "version": "1.0.5", - "license": "SEE LICENSE", + "packages/ss6player-pixi6/node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "ssfblib": "1.2.5" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, - "devDependencies": { - "@rollup/plugin-commonjs": "^28.0.6", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^16.0.1", - "@rollup/plugin-typescript": "^12.1.4", - "@typescript-eslint/eslint-plugin": "^8.39.0", - "@typescript-eslint/parser": "^8.39.0", - "esbuild": "^0.25.8", - "eslint": "^9.32.0", - "flatbuffers": "^25.2.10", - "lodash.camelcase": "^4.3.0", - "rimraf": "^6.0.1", - "rollup": "^4.46.2", - "rollup-plugin-esbuild": "^6.2.1", - "rollup-plugin-includepaths": "^0.2.4", - "rollup-plugin-license": "^3.6.0", - "typedoc": "^0.28.9", - "typescript": "^5.9.2" + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, - "optionalDependencies": { - "fsevents": "^2.3.3" + "funding": { + "url": "https://opencollective.com/eslint" } }, - "packages/ss6player-pixi": { - "version": "2.4.0", - "license": "SEE LICENSE", + "packages/ss6player-pixi6/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "packages/ss6player-pixi6/node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "ss6player-lib": "1.0.5" + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" }, - "devDependencies": { - "@rollup/plugin-commonjs": "^28.0.6", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^16.0.1", - "@rollup/plugin-typescript": "^12.1.4", - "@typescript-eslint/eslint-plugin": "^8.39.0", - "@typescript-eslint/parser": "^8.39.0", - "concurrently": "^9.2.0", - "esbuild": "^0.25.8", - "eslint": "^9.32.0", - "flatbuffers": "^25.2.10", - "http-server": "^14.1.1", - "lodash.camelcase": "^4.3.0", - "opener": "^1.5.2", - "pixi.js": "^8.12.0", - "rimraf": "^6.0.1", - "rollup": "^4.46.2", - "rollup-plugin-esbuild": "^6.2.1", - "rollup-plugin-includepaths": "^0.2.4", - "rollup-plugin-license": "^3.6.0", - "rollup-plugin-tsconfig-paths": "^1.5.2", - "typedoc": "^0.28.9", - "typescript": "^5.9.2" + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, - "optionalDependencies": { - "fsevents": "^2.3.3" + "funding": { + "url": "https://opencollective.com/eslint" } }, - "packages/ss6player-pixi6": { - "version": "1.0.5", - "license": "SEE LICENSE", + "packages/ss6player-pixi6/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", "dependencies": { - "ss6player-lib": "1.0.5" - }, - "devDependencies": { - "@pixi/constants": "^6.5.10", - "@pixi/core": "^6.5.10", - "@pixi/display": "^6.5.10", - "@pixi/filter-color-matrix": "^6.5.10", - "@pixi/loaders": "^6.5.10", - "@pixi/mesh-extras": "^6.5.10", - "@pixi/ticker": "^6.5.10", - "@rollup/plugin-commonjs": "^28.0.6", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^16.0.1", - "@rollup/plugin-typescript": "^12.1.4", - "@typescript-eslint/eslint-plugin": "^8.39.0", - "@typescript-eslint/parser": "^8.39.0", - "concurrently": "^9.2.0", - "esbuild": "^0.25.8", - "eslint": "^9.32.0", - "http-server": "^14.1.1", - "lodash.camelcase": "^4.3.0", - "opener": "^1.5.2", - "pixi.js": "^6.5.10", - "rimraf": "^6.0.1", - "rollup": "^4.46.2", - "rollup-plugin-esbuild": "^6.2.1", - "rollup-plugin-includepaths": "^0.2.4", - "rollup-plugin-license": "^3.6.0", - "rollup-plugin-tsconfig-paths": "^1.5.2", - "typedoc": "^0.28.9", - "typescript": "^5.9.2" + "brace-expansion": "^1.1.7" }, - "optionalDependencies": { - "fsevents": "^2.3.3" + "engines": { + "node": "*" } }, "packages/ss6player-pixi6/node_modules/pixi.js": { @@ -11961,39 +5163,96 @@ } }, "packages/ss6player-rpgmakermz": { - "version": "0.8.5", + "version": "0.9.0", "license": "SEE LICENSE", "dependencies": { - "ss6player-pixi6": "^1.0.5" + "ss6player-pixi6": "^1.0.6" }, "devDependencies": { - "@rollup/plugin-commonjs": "^28.0.6", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^16.0.1", - "@rollup/plugin-typescript": "^12.1.4", - "@typescript-eslint/eslint-plugin": "^8.39.0", - "@typescript-eslint/parser": "^8.39.0", - "concurrently": "^9.2.0", - "esbuild": "^0.25.8", - "eslint": "^9.32.0", + "@typescript-eslint/eslint-plugin": "^8.57.0", + "@typescript-eslint/parser": "^8.57.0", + "concurrently": "^9.2.1", + "eslint": "^9.39.4", "http-server": "^14.1.1", "lodash.camelcase": "^4.3.0", "ncp": "^2.0.0", "opener": "^1.5.2", "pixi.js": "^5.3.12", "replace": "^1.2.2", - "rimraf": "^6.0.1", - "rollup": "^4.46.2", - "rollup-plugin-esbuild": "^6.2.1", - "rollup-plugin-includepaths": "^0.2.4", - "rollup-plugin-license": "^3.6.0", - "typedoc": "^0.28.9", - "typescript": "^5.9.2" + "rimraf": "^6.1.3", + "rolldown": "^1.0.0-rc.9", + "typedoc": "^0.28.17", + "typescript": "^5.9.3" }, "optionalDependencies": { "fsevents": "^2.3.3" } }, + "packages/ss6player-rpgmakermz/node_modules/@eslint/config-array": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.5" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "packages/ss6player-rpgmakermz/node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "packages/ss6player-rpgmakermz/node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "packages/ss6player-rpgmakermz/node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "packages/ss6player-rpgmakermz/node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "packages/ss6player-rpgmakermz/node_modules/@pixi/accessibility": { "version": "5.3.12", "resolved": "https://registry.npmjs.org/@pixi/accessibility/-/accessibility-5.3.12.tgz", @@ -12354,45 +5613,164 @@ "@pixi/utils": "5.3.12" } }, - "packages/ss6player-rpgmakermz/node_modules/@pixi/text-bitmap": { - "version": "5.3.12", - "resolved": "https://registry.npmjs.org/@pixi/text-bitmap/-/text-bitmap-5.3.12.tgz", - "integrity": "sha512-tiorA3XdriJKJtUhMDcKX1umE3hGbaNJ/y0ZLuQ0lCvoTLrN9674HtveutoR9KkXWguDHCSk2cY+y3mNAvjPHA==", + "packages/ss6player-rpgmakermz/node_modules/@pixi/text-bitmap": { + "version": "5.3.12", + "resolved": "https://registry.npmjs.org/@pixi/text-bitmap/-/text-bitmap-5.3.12.tgz", + "integrity": "sha512-tiorA3XdriJKJtUhMDcKX1umE3hGbaNJ/y0ZLuQ0lCvoTLrN9674HtveutoR9KkXWguDHCSk2cY+y3mNAvjPHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pixi/core": "5.3.12", + "@pixi/display": "5.3.12", + "@pixi/loaders": "5.3.12", + "@pixi/math": "5.3.12", + "@pixi/mesh": "5.3.12", + "@pixi/settings": "5.3.12", + "@pixi/text": "5.3.12", + "@pixi/utils": "5.3.12" + } + }, + "packages/ss6player-rpgmakermz/node_modules/@pixi/ticker": { + "version": "5.3.12", + "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-5.3.12.tgz", + "integrity": "sha512-YNYUj94XgogipYhPOjbdFBIsy7+U6KmolvK+Av1G88GDac5SDoALb1Nt6s23fd8HIz6b4YnabHOdXGz3zPir1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pixi/settings": "5.3.12" + } + }, + "packages/ss6player-rpgmakermz/node_modules/@pixi/utils": { + "version": "5.3.12", + "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-5.3.12.tgz", + "integrity": "sha512-PU/L852YjVbTy/6fDKQtYji6Vqcwi5FZNIjK6JXKuDPF411QfJK3QBaEqJTrexzHlc9Odr0tYECjwtXkCUR02g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pixi/constants": "5.3.12", + "@pixi/settings": "5.3.12", + "earcut": "^2.1.5", + "eventemitter3": "^3.1.0", + "url": "^0.11.0" + } + }, + "packages/ss6player-rpgmakermz/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "packages/ss6player-rpgmakermz/node_modules/eslint": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.2", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "packages/ss6player-rpgmakermz/node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "@pixi/core": "5.3.12", - "@pixi/display": "5.3.12", - "@pixi/loaders": "5.3.12", - "@pixi/math": "5.3.12", - "@pixi/mesh": "5.3.12", - "@pixi/settings": "5.3.12", - "@pixi/text": "5.3.12", - "@pixi/utils": "5.3.12" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "packages/ss6player-rpgmakermz/node_modules/@pixi/ticker": { - "version": "5.3.12", - "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-5.3.12.tgz", - "integrity": "sha512-YNYUj94XgogipYhPOjbdFBIsy7+U6KmolvK+Av1G88GDac5SDoALb1Nt6s23fd8HIz6b4YnabHOdXGz3zPir1Q==", + "packages/ss6player-rpgmakermz/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@pixi/settings": "5.3.12" + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "packages/ss6player-rpgmakermz/node_modules/@pixi/utils": { - "version": "5.3.12", - "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-5.3.12.tgz", - "integrity": "sha512-PU/L852YjVbTy/6fDKQtYji6Vqcwi5FZNIjK6JXKuDPF411QfJK3QBaEqJTrexzHlc9Odr0tYECjwtXkCUR02g==", + "packages/ss6player-rpgmakermz/node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "@pixi/constants": "5.3.12", - "@pixi/settings": "5.3.12", - "earcut": "^2.1.5", - "eventemitter3": "^3.1.0", - "url": "^0.11.0" + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "packages/ss6player-rpgmakermz/node_modules/eventemitter3": { @@ -12402,6 +5780,19 @@ "dev": true, "license": "MIT" }, + "packages/ss6player-rpgmakermz/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "packages/ss6player-rpgmakermz/node_modules/pixi.js": { "version": "5.3.12", "resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-5.3.12.tgz", @@ -12450,59 +5841,240 @@ } }, "packages/ss6player-viewer": { - "version": "1.6.0", + "version": "1.6.1", "license": "SEE LICENSE", "dependencies": { "jszip": "^3.10.1", - "ss6player-pixi": "2.4.0" + "ss6player-pixi": "2.4.1" }, "devDependencies": { - "@rollup/plugin-commonjs": "^28.0.6", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^16.0.1", - "@rollup/plugin-typescript": "^12.1.4", - "@typescript-eslint/eslint-plugin": "^8.39.0", - "@typescript-eslint/parser": "^8.39.0", - "concurrently": "^9.2.0", - "esbuild": "^0.25.8", - "eslint": "^9.32.0", + "@typescript-eslint/eslint-plugin": "^8.57.0", + "@typescript-eslint/parser": "^8.57.0", + "concurrently": "^9.2.1", + "eslint": "^9.39.4", "http-server": "^14.1.1", "lodash.camelcase": "^4.3.0", "opener": "^1.5.2", - "pixi.js": "^8.12.0", + "pixi.js": "^8.17.0", "replace": "^1.2.2", - "rimraf": "^6.0.1", - "rollup": "^4.46.2", - "rollup-plugin-esbuild": "^6.2.1", - "rollup-plugin-includepaths": "^0.2.4", - "rollup-plugin-license": "^3.6.0", - "typedoc": "^0.28.9", - "typescript": "^5.9.2" + "rimraf": "^6.1.3", + "rolldown": "^1.0.0-rc.9", + "typedoc": "^0.28.17", + "typescript": "^5.9.3" }, "optionalDependencies": { "fsevents": "^2.3.3" } }, + "packages/ss6player-viewer/node_modules/@eslint/config-array": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.5" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "packages/ss6player-viewer/node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "packages/ss6player-viewer/node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "packages/ss6player-viewer/node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "packages/ss6player-viewer/node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "packages/ss6player-viewer/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "packages/ss6player-viewer/node_modules/eslint": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.2", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "packages/ss6player-viewer/node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "packages/ss6player-viewer/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "packages/ss6player-viewer/node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "packages/ss6player-viewer/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "packages/ssfblib": { - "version": "1.2.5", + "version": "1.2.6", "license": "SEE LICENSE", "dependencies": { - "flatbuffers": "^25.2.10" + "flatbuffers": "^25.9.23" }, "devDependencies": { - "@rollup/plugin-commonjs": "^28.0.6", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^16.0.1", - "@rollup/plugin-typescript": "^12.1.4", - "esbuild": "^0.25.8", "lodash.camelcase": "^4.3.0", - "rimraf": "^6.0.1", - "rollup": "^4.46.2", - "rollup-plugin-esbuild": "^6.2.1", - "rollup-plugin-includepaths": "^0.2.4", - "rollup-plugin-license": "^3.6.0", - "typedoc": "^0.28.9", - "typescript": "^5.9.2" + "rimraf": "^6.1.3", + "rolldown": "^1.0.0-rc.9", + "typedoc": "^0.28.17", + "typescript": "^5.9.3" }, "optionalDependencies": { "fsevents": "^2.3.3" diff --git a/package.json b/package.json index 0f8af627..73c9cddc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,7 @@ { "name": "ss6playerforwebroot", "private": true, + "packageManager": "npm@11.11.0", "workspaces": [ "packages/ssfblib", "packages/ss6player-lib", @@ -18,28 +19,27 @@ "url": "https://www.webtech.co.jp/" }, "scripts": { - "build": "npx lerna run build --stream", - "lerna": "npx lerna", + "build": "turbo run build", "clean": "npm run clean:artifacts && npm run clean:packages && npm run clean:root", - "clean:artifacts": "npx lerna run clean", - "clean:packages": "npx lerna clean --yes", - "clean:root": "npx rimraf node_modules", - "lint": "npx lerna run lint --stream", - "test": "npx lerna run test --stream", - "docs": "npx lerna run docs --stream", + "clean:artifacts": "turbo run clean", + "clean:packages": "rimraf packages/*/node_modules", + "clean:root": "rimraf node_modules", + "lint": "turbo run lint", + "test": "turbo run test", + "docs": "turbo run docs", "dist": "npm run build && npm run docs && npm run deploy", "deploy": "npm run deploy:pixi && npm run deploy:pixi6 && npm run deploy:mz && npm run deploy:mzapp && npm run deploy:viewer", - "deploy:pixi": "node ./scripts/deploy_pixiplayersample.js && npx ncp packages/ss6player-pixi/dist/ss6player-pixi.umd.js ./docs/Player/ss6player-pixi.umd.js && npx ncp packages/ss6player-pixi/dist/ss6player-pixi.min.js ./docs/Player/ss6player-pixi.min.js && npx ncp packages/ss6player-pixi/dist/ss6player-pixi.umd.js ./docs/ui-examples/ss6player-pixi.umd.js && npx ncp packages/ss6player-pixi/dist/ss6player-pixi.min.js ./docs/ui-examples/ss6player-pixi.min.js", - "deploy:pixi6": "node ./scripts/deploy_pixi6playersample.js && npx ncp packages/ss6player-pixi6/dist/ss6player-pixi6.umd.js ./docs/Player6/ss6player-pixi6.umd.js && npx ncp packages/ss6player-pixi6/dist/ss6player-pixi6.min.js ./docs/Player6/ss6player-pixi6.min.js", - "deploy:mz": "npx lerna run deploy --scope=ss6player-rpgmakermz && npx ncp packages/ss6player-rpgmakermz/dist/ss6player-rpgmakermz.js ./docs/mz/ss6player-rpgmakermz.js && npx ncp packages/ss6player-rpgmakermz/dist/ss6player-rpgmakermz.min.js ./docs/mz/ss6player-rpgmakermz.min.js", - "deploy:mzapp": "npx rimraf ./docs/mz/SampleProject && npx ncp packages/ss6player-rpgmakermz/SampleProject ./docs/mz/SampleProject", - "deploy:viewer": "node ./scripts/deploy_viewerplayersample.js && npx ncp packages/ss6player-viewer/dist/ss6player-viewer.umd.js ./docs/ViewerPlayer/ss6player-viewer.umd.js && npx ncp packages/ss6player-viewer/dist/ss6player-viewer.min.js ./docs/ViewerPlayer/ss6player-viewer.min.js", - "view": "npx lerna run view --scope=ss6player-pixi", - "mzview": "npx lerna run view --scope=ss6player-rpgmakermz" + "deploy:pixi": "node ./scripts/deploy_pixiplayersample.js && ncp packages/ss6player-pixi/dist/ss6player-pixi.umd.js ./docs/Player/ss6player-pixi.umd.js && ncp packages/ss6player-pixi/dist/ss6player-pixi.min.js ./docs/Player/ss6player-pixi.min.js && ncp packages/ss6player-pixi/dist/ss6player-pixi.umd.js ./docs/ui-examples/ss6player-pixi.umd.js && ncp packages/ss6player-pixi/dist/ss6player-pixi.min.js ./docs/ui-examples/ss6player-pixi.min.js", + "deploy:pixi6": "node ./scripts/deploy_pixi6playersample.js && ncp packages/ss6player-pixi6/dist/ss6player-pixi6.umd.js ./docs/Player6/ss6player-pixi6.umd.js && ncp packages/ss6player-pixi6/dist/ss6player-pixi6.min.js ./docs/Player6/ss6player-pixi6.min.js", + "deploy:mz": "turbo run deploy --filter=ss6player-rpgmakermz && ncp packages/ss6player-rpgmakermz/dist/ss6player-rpgmakermz.js ./docs/mz/ss6player-rpgmakermz.js && ncp packages/ss6player-rpgmakermz/dist/ss6player-rpgmakermz.min.js ./docs/mz/ss6player-rpgmakermz.min.js", + "deploy:mzapp": "rimraf ./docs/mz/SampleProject && ncp packages/ss6player-rpgmakermz/SampleProject ./docs/mz/SampleProject", + "deploy:viewer": "node ./scripts/deploy_viewerplayersample.js && ncp packages/ss6player-viewer/dist/ss6player-viewer.umd.js ./docs/ViewerPlayer/ss6player-viewer.umd.js && ncp packages/ss6player-viewer/dist/ss6player-viewer.min.js ./docs/ViewerPlayer/ss6player-viewer.min.js", + "view": "turbo run view --filter=ss6player-pixi", + "mzview": "turbo run view --filter=ss6player-rpgmakermz" }, "devDependencies": { - "lerna": "^8.2.3", "ncp": "^2.0.0", - "rimraf": "^6.0.1" + "rimraf": "^6.1.3", + "turbo": "^2.8.17" } } diff --git a/packages/ss6player-lib/package.json b/packages/ss6player-lib/package.json index 91d7acd1..c0820612 100644 --- a/packages/ss6player-lib/package.json +++ b/packages/ss6player-lib/package.json @@ -1,6 +1,6 @@ { "name": "ss6player-lib", - "version": "1.0.5", + "version": "1.0.6", "description": "generate an animation framedata from ssfblib for ss6players", "keywords": [ "SpriteStudio" @@ -29,33 +29,25 @@ "start": "npm run watch", "lint": "eslint -c ../../eslint.config.js ./src", "prebuild": "npm run clean", - "build": "tsc --module commonjs && rollup -c rollup.config.ts --configPlugin typescript --bundleConfigAsCjs --strictDeprecations", - "watch": "rollup -c rollup.config.ts -w", + "build": "tsc --module commonjs && rolldown -c rolldown.config.mjs", + "watch": "rolldown -c rolldown.config.mjs -w", "dist": "npm run docs && npm run build", "clean": "rimraf dist", "docs": "typedoc --out ../../docs/ss6player_lib_api src/ss6player-lib.ts" }, "dependencies": { - "ssfblib": "1.2.5" + "ssfblib": "1.2.6" }, "devDependencies": { - "typescript": "^5.9.2", - "typedoc": "^0.28.9", - "flatbuffers": "^25.2.10", + "typescript": "^5.9.3", + "typedoc": "^0.28.17", + "flatbuffers": "^25.9.23", "lodash.camelcase": "^4.3.0", - "rimraf": "^6.0.1", - "rollup": "^4.46.2", - "@rollup/plugin-typescript": "^12.1.4", - "@rollup/plugin-commonjs": "^28.0.6", - "rollup-plugin-includepaths": "^0.2.4", - "@rollup/plugin-json": "^6.1.0", - "rollup-plugin-license": "^3.6.0", - "@rollup/plugin-node-resolve": "^16.0.1", - "rollup-plugin-esbuild": "^6.2.1", - "esbuild": "^0.25.8", - "eslint": "^9.32.0", - "@typescript-eslint/eslint-plugin": "^8.39.0", - "@typescript-eslint/parser": "^8.39.0" + "rimraf": "^6.1.3", + "rolldown": "^1.0.0-rc.9", + "eslint": "^9.39.4", + "@typescript-eslint/eslint-plugin": "^8.57.0", + "@typescript-eslint/parser": "^8.57.0" }, "optionalDependencies": { "fsevents": "^2.3.3" diff --git a/packages/ss6player-lib/rolldown.config.mjs b/packages/ss6player-lib/rolldown.config.mjs new file mode 100644 index 00000000..045b5823 --- /dev/null +++ b/packages/ss6player-lib/rolldown.config.mjs @@ -0,0 +1,27 @@ +import { defineConfig } from 'rolldown'; +import camelCase from 'lodash.camelcase'; +import { createRequire } from 'module'; + +const require = createRequire(import.meta.url); +const pkg = require('./package.json'); + +const libraryName = 'ss6player-lib'; +const banner = `/*! + * ----------------------------------------------------------- + * ss6player-lib v${pkg.version} + * + * Copyright(C) ${pkg.author.name} + * ${pkg.author.url} + * ----------------------------------------------------------- + */`; + +export default defineConfig([ + { + input: `src/${libraryName}.ts`, + output: [ + { file: pkg.main, name: camelCase(libraryName), format: 'umd', sourcemap: true, banner }, + { file: pkg.module, format: 'es', sourcemap: true, banner } + ], + external: [] + } +]); diff --git a/packages/ss6player-lib/rollup.config.ts b/packages/ss6player-lib/rollup.config.ts deleted file mode 100644 index bdd910e7..00000000 --- a/packages/ss6player-lib/rollup.config.ts +++ /dev/null @@ -1,48 +0,0 @@ -import resolve from '@rollup/plugin-node-resolve'; -import commonjs from '@rollup/plugin-commonjs'; -import camelCase from 'lodash.camelcase'; -import esbuild from 'rollup-plugin-esbuild'; -import json from '@rollup/plugin-json'; -import license from 'rollup-plugin-license'; - -const production = !process.env.ROLLUP_WATCH; - -const pkg = require('./package.json'); - -const libraryName = 'ss6player-lib'; - -const licenseBannerOptions = `----------------------------------------------------------- - ss6player-lib v<%= pkg.version %> - - Copyright(C) <%= pkg.author.name %> - <%= pkg.author.url %> ------------------------------------------------------------ -`; - -export default { - input: `src/${libraryName}.ts`, - output: [ - { file: pkg.main, name: camelCase(libraryName), format: 'umd', sourcemap: true }, - { file: pkg.module, format: 'es', sourcemap: true }, - ], - // Indicate here external modules you don't wanna include in your bundle (i.e.: 'lodash') - external: [ - ], - watch: { - include: 'src/**', - }, - plugins: [ - // Allow json resolution - json(), - // Compile TypeScript files - // typescript({ useTsconfigDeclarationDir: true }), - esbuild.default({sourceMap: !production}), - // Allow bundling cjs modules (unlike webpack, rollup doesn't understand cjs) - commonjs(), - // Allow node_modules resolution, so you can use 'external' to control - // which external modules to include in the bundle - // https://github.com/rollup/rollup-plugin-node-resolve#usage - resolve(), - license({ banner: licenseBannerOptions }) - ] -}; diff --git a/packages/ss6player-pixi/package.json b/packages/ss6player-pixi/package.json index ff0d2598..3108b2cf 100644 --- a/packages/ss6player-pixi/package.json +++ b/packages/ss6player-pixi/package.json @@ -1,7 +1,7 @@ { "name": "ss6player-pixi", "private": true, - "version": "2.4.0", + "version": "2.4.1", "description": "SS6Player for pixi", "keywords": [ "SpriteStudio", @@ -35,40 +35,31 @@ "start": "npm run watch", "lint": "eslint -c ../../eslint.config.js ./src", "prebuild": "npm run clean", - "build": "tsc --module commonjs && rollup -c rollup.config.ts --configPlugin typescript --bundleConfigAsCjs --strictDeprecations", + "build": "tsc --module commonjs && rolldown -c rolldown.config.mjs", "docs": "typedoc --out ../../docs/ss6player_pixi_api src/ss6player-pixi.ts", - "watch": "rollup -c rollup.config.ts -w", + "watch": "rolldown -c rolldown.config.mjs -w", "dist": "npm run docs && npm run build", "view": "concurrently \"http-server -c-1 ../../\" \"opener http://localhost:8080/packages/ss6player-pixi/Player/index.html\"", "sample-ui": "concurrently \"http-server -c-1 ../../\" \"opener http://localhost:8080/packages/ss6player-pixi/examples/ui/index.html\"", "clean": "rimraf dist" }, "dependencies": { - "ss6player-lib": "1.0.5" + "ss6player-lib": "1.0.6" }, "devDependencies": { - "typescript": "^5.9.2", - "typedoc": "^0.28.9", - "flatbuffers": "^25.2.10", + "typescript": "^5.9.3", + "typedoc": "^0.28.17", + "flatbuffers": "^25.9.23", "lodash.camelcase": "^4.3.0", - "rimraf": "^6.0.1", - "rollup": "^4.46.2", - "@rollup/plugin-typescript": "^12.1.4", - "@rollup/plugin-commonjs": "^28.0.6", - "rollup-plugin-includepaths": "^0.2.4", - "@rollup/plugin-json": "^6.1.0", - "rollup-plugin-license": "^3.6.0", - "@rollup/plugin-node-resolve": "^16.0.1", - "rollup-plugin-tsconfig-paths": "^1.5.2", - "rollup-plugin-esbuild": "^6.2.1", - "esbuild": "^0.25.8", - "pixi.js": "^8.12.0", - "concurrently": "^9.2.0", + "rimraf": "^6.1.3", + "rolldown": "^1.0.0-rc.9", + "pixi.js": "^8.17.0", + "concurrently": "^9.2.1", "http-server": "^14.1.1", "opener": "^1.5.2", - "eslint": "^9.32.0", - "@typescript-eslint/eslint-plugin": "^8.39.0", - "@typescript-eslint/parser": "^8.39.0" + "eslint": "^9.39.4", + "@typescript-eslint/eslint-plugin": "^8.57.0", + "@typescript-eslint/parser": "^8.57.0" }, "optionalDependencies": { "fsevents": "^2.3.3" diff --git a/packages/ss6player-pixi/rolldown.config.mjs b/packages/ss6player-pixi/rolldown.config.mjs new file mode 100644 index 00000000..63172c31 --- /dev/null +++ b/packages/ss6player-pixi/rolldown.config.mjs @@ -0,0 +1,44 @@ +import { defineConfig } from 'rolldown'; +import camelCase from 'lodash.camelcase'; +import { createRequire } from 'module'; + +const require = createRequire(import.meta.url); +const pkg = require('./package.json'); + +const libraryName = 'ss6player-pixi'; +const pixiGlobals = { + 'pixi.js': 'PIXI' +}; + +const banner = `/*! + * ----------------------------------------------------------- + * SS6Player For pixi.js v${pkg.version} + * + * Copyright(C) ${pkg.author.name} + * ${pkg.author.url} + * ----------------------------------------------------------- + */`; + +export default defineConfig([ + { + input: `src/${libraryName}.ts`, + output: [ + { file: pkg.main, name: camelCase(libraryName), format: 'umd', sourcemap: true, globals: pixiGlobals, banner }, + { file: pkg.module, format: 'es', sourcemap: true, globals: pixiGlobals, banner } + ], + external: [/@pixi\/.*/, 'pixi.js'], + }, + { + input: `src/${libraryName}.ts`, + output: { + file: `dist/${libraryName}.min.js`, + name: camelCase(libraryName), + format: 'iife', + sourcemap: false, + globals: pixiGlobals, + minify: true, + banner, + }, + external: [/@pixi\/.*/, 'pixi.js'], + } +]); diff --git a/packages/ss6player-pixi/rollup.config.ts b/packages/ss6player-pixi/rollup.config.ts deleted file mode 100644 index 042ade38..00000000 --- a/packages/ss6player-pixi/rollup.config.ts +++ /dev/null @@ -1,58 +0,0 @@ -import tsConfigPaths from "rollup-plugin-tsconfig-paths"; -import resolve from '@rollup/plugin-node-resolve'; -import commonjs from '@rollup/plugin-commonjs'; -import camelCase from 'lodash.camelcase'; -import esbuild, { minify } from 'rollup-plugin-esbuild'; -import json from '@rollup/plugin-json'; -import license from 'rollup-plugin-license'; - -const production = !process.env.ROLLUP_WATCH; - -const pkg = require('./package.json'); - -const libraryName = 'ss6player-pixi'; - -// reference: @pixi-build-tools/globals -const pixiGlobals = { - 'pixi.js': 'PIXI' -}; - -const licenseBannerOptions = `----------------------------------------------------------- - SS6Player For pixi.js v<%= pkg.version %> - - Copyright(C) <%= pkg.author.name %> - <%= pkg.author.url %> ------------------------------------------------------------ -`; - -export default { - input: `src/${libraryName}.ts`, - output: [ - { file: pkg.main, name: camelCase(libraryName), format: 'umd', sourcemap: true, globals: pixiGlobals }, - { file: `dist/${libraryName}.min.js`, name: camelCase(libraryName), format: 'iife', sourcemap: false, globals: pixiGlobals, plugins: [ minify(), license({ banner: licenseBannerOptions }) ] }, - { file: pkg.module, format: 'es', sourcemap: true, globals: pixiGlobals }, - ], - // Indicate here external modules you don't wanna include in your bundle (i.e.: 'lodash') - external: [ - /@pixi\/.*/, - 'pixi.js' - ], - watch: { - include: 'src/**', - }, - plugins: [ - // Allow json resolution - json(), - // - tsConfigPaths(), - // Compile TypeScript files - esbuild.default({sourceMap: !production}), - // Allow bundling cjs modules (unlike webpack, rollup doesn't understand cjs) - commonjs(), - // Allow node_modules resolution, so you can use 'external' to control - // which external modules to include in the bundle - // https://github.com/rollup/rollup-plugin-node-resolve#usage - resolve(), - license({ banner: licenseBannerOptions }) - ] -}; diff --git a/packages/ss6player-pixi6/package.json b/packages/ss6player-pixi6/package.json index 4a8a5532..3a6f6702 100644 --- a/packages/ss6player-pixi6/package.json +++ b/packages/ss6player-pixi6/package.json @@ -1,7 +1,7 @@ { "name": "ss6player-pixi6", "private": true, - "version": "1.0.5", + "version": "1.0.6", "description": "SS6Player for pixi", "keywords": [ "SpriteStudio", @@ -35,31 +35,22 @@ "start": "npm run watch", "lint": "eslint -c ../../eslint.config.js ./src", "prebuild": "npm run clean", - "build": "tsc --module commonjs && rollup -c rollup.config.ts --configPlugin typescript --bundleConfigAsCjs --strictDeprecations", + "build": "tsc --module commonjs && rolldown -c rolldown.config.mjs", "docs": "typedoc --out ../../docs/ss6player_pixi6_api src/ss6player-pixi6.ts", - "watch": "rollup -c rollup.config.ts -w", + "watch": "rolldown -c rolldown.config.mjs -w", "dist": "npm run docs && npm run build", "view": "concurrently \"http-server -c-1 -p 8086 ../../\" \"opener http://localhost:8086/packages/ss6player-pixi6/Player/index.html\"", "clean": "rimraf dist" }, "dependencies": { - "ss6player-lib": "1.0.5" + "ss6player-lib": "1.0.6" }, "devDependencies": { - "typescript": "^5.9.2", - "typedoc": "^0.28.9", + "typescript": "^5.9.3", + "typedoc": "^0.28.17", "lodash.camelcase": "^4.3.0", - "rimraf": "^6.0.1", - "rollup": "^4.46.2", - "@rollup/plugin-typescript": "^12.1.4", - "@rollup/plugin-commonjs": "^28.0.6", - "rollup-plugin-includepaths": "^0.2.4", - "@rollup/plugin-json": "^6.1.0", - "rollup-plugin-license": "^3.6.0", - "@rollup/plugin-node-resolve": "^16.0.1", - "rollup-plugin-tsconfig-paths": "^1.5.2", - "rollup-plugin-esbuild": "^6.2.1", - "esbuild": "^0.25.8", + "rimraf": "^6.1.3", + "rolldown": "^1.0.0-rc.9", "pixi.js": "^6.5.10", "@pixi/loaders": "^6.5.10", "@pixi/display": "^6.5.10", @@ -68,12 +59,12 @@ "@pixi/filter-color-matrix": "^6.5.10", "@pixi/core": "^6.5.10", "@pixi/constants": "^6.5.10", - "concurrently": "^9.2.0", + "concurrently": "^9.2.1", "http-server": "^14.1.1", "opener": "^1.5.2", - "eslint": "^9.32.0", - "@typescript-eslint/eslint-plugin": "^8.39.0", - "@typescript-eslint/parser": "^8.39.0" + "eslint": "^9.39.4", + "@typescript-eslint/eslint-plugin": "^8.57.0", + "@typescript-eslint/parser": "^8.57.0" }, "optionalDependencies": { "fsevents": "^2.3.3" diff --git a/packages/ss6player-pixi6/rolldown.config.mjs b/packages/ss6player-pixi6/rolldown.config.mjs new file mode 100644 index 00000000..825c7d68 --- /dev/null +++ b/packages/ss6player-pixi6/rolldown.config.mjs @@ -0,0 +1,52 @@ +import { defineConfig } from 'rolldown'; +import camelCase from 'lodash.camelcase'; +import { createRequire } from 'module'; + +const require = createRequire(import.meta.url); +const pkg = require('./package.json'); + +const libraryName = 'ss6player-pixi6'; +const pixiGlobals = { + '@pixi/loaders': 'PIXI', + '@pixi/display': 'PIXI', + '@pixi/mesh': 'PIXI', + '@pixi/ticker': 'PIXI', + '@pixi/filter-color-matrix': 'PIXI.filters', + '@pixi/core': 'PIXI', + '@pixi/constants': 'PIXI', + '@pixi/mixin-get-child-by-name': 'PIXI' +}; + +const banner = `/*! + * ----------------------------------------------------------- + * SS6Player For pixi.js v6 v${pkg.version} + * + * Copyright(C) ${pkg.author.name} + * ${pkg.author.url} + * ----------------------------------------------------------- + */`; + + +export default defineConfig([ + { + input: `src/${libraryName}.ts`, + output: [ + { file: pkg.main, name: camelCase(libraryName), format: 'umd', sourcemap: true, globals: pixiGlobals, banner }, + { file: pkg.module, format: 'es', sourcemap: true, globals: pixiGlobals, banner } + ], + external: [/@pixi\/.*/] + }, + { + input: `src/${libraryName}.ts`, + output: { + file: `dist/${libraryName}.min.js`, + name: camelCase(libraryName), + format: 'iife', + sourcemap: false, + globals: pixiGlobals, + minify: true, + banner + }, + external: [/@pixi\/.*/] + } +]); diff --git a/packages/ss6player-pixi6/rollup.config.ts b/packages/ss6player-pixi6/rollup.config.ts deleted file mode 100644 index 4e9a34da..00000000 --- a/packages/ss6player-pixi6/rollup.config.ts +++ /dev/null @@ -1,63 +0,0 @@ -import tsConfigPaths from "rollup-plugin-tsconfig-paths"; -import resolve from '@rollup/plugin-node-resolve'; -import commonjs from '@rollup/plugin-commonjs'; -import camelCase from 'lodash.camelcase'; -import esbuild, { minify } from 'rollup-plugin-esbuild'; -import json from '@rollup/plugin-json'; -import license from 'rollup-plugin-license'; - -const production = !process.env.ROLLUP_WATCH; - -const pkg = require('./package.json'); - -const libraryName = 'ss6player-pixi6'; - -// reference: @pixi-build-tools/globals -const pixiGlobals = { - '@pixi/loaders': 'PIXI', - '@pixi/display': 'PIXI', - '@pixi/mesh': 'PIXI', - '@pixi/ticker': 'PIXI', - '@pixi/filter-color-matrix': 'PIXI.filters', - '@pixi/core': 'PIXI', - '@pixi/constants': 'PIXI' -}; - -const licenseBannerOptions = `----------------------------------------------------------- - SS6Player For pixi.js v6 v<%= pkg.version %> - - Copyright(C) <%= pkg.author.name %> - <%= pkg.author.url %> ------------------------------------------------------------ -`; - -export default { - input: `src/${libraryName}.ts`, - output: [ - { file: pkg.main, name: camelCase(libraryName), format: 'umd', sourcemap: true, globals: pixiGlobals }, - { file: `dist/${libraryName}.min.js`, name: camelCase(libraryName), format: 'iife', sourcemap: false, globals: pixiGlobals, plugins: [ minify(), license({ banner: licenseBannerOptions }) ] }, - { file: pkg.module, format: 'es', sourcemap: true, globals: pixiGlobals }, - ], - // Indicate here external modules you don't wanna include in your bundle (i.e.: 'lodash') - external: [ - /@pixi\/.*/ - ], - watch: { - include: 'src/**', - }, - plugins: [ - // Allow json resolution - json(), - // - tsConfigPaths(), - // Compile TypeScript files - esbuild.default({sourceMap: !production}), - // Allow bundling cjs modules (unlike webpack, rollup doesn't understand cjs) - commonjs(), - // Allow node_modules resolution, so you can use 'external' to control - // which external modules to include in the bundle - // https://github.com/rollup/rollup-plugin-node-resolve#usage - resolve(), - license({ banner: licenseBannerOptions }) - ] -}; diff --git a/packages/ss6player-rpgmakermz/SampleProject/data/System.json b/packages/ss6player-rpgmakermz/SampleProject/data/System.json index dccf5ac0..b6c9c6ee 100755 --- a/packages/ss6player-rpgmakermz/SampleProject/data/System.json +++ b/packages/ss6player-rpgmakermz/SampleProject/data/System.json @@ -1 +1 @@ -{"advanced":{"gameId":37402338,"screenWidth":816,"screenHeight":624,"uiAreaWidth":816,"uiAreaHeight":624,"numberFontFilename":"mplus-2p-bold-sub.woff","fallbackFonts":"Verdana, sans-serif","fontSize":26,"mainFontFilename":"mplus-1m-regular.woff","windowOpacity":192},"airship":{"bgm":{"name":"","pan":0,"pitch":100,"volume":90},"characterIndex":3,"characterName":"Vehicle","startMapId":0,"startX":0,"startY":0},"armorTypes":["","一般防具","魔法防具","軽装防具","重装防具","小型盾","大型盾"],"attackMotions":[{"type":0,"weaponImageId":0},{"type":1,"weaponImageId":1},{"type":1,"weaponImageId":2},{"type":1,"weaponImageId":3},{"type":1,"weaponImageId":4},{"type":1,"weaponImageId":5},{"type":1,"weaponImageId":6},{"type":2,"weaponImageId":7},{"type":2,"weaponImageId":8},{"type":2,"weaponImageId":9},{"type":0,"weaponImageId":10},{"type":0,"weaponImageId":11},{"type":0,"weaponImageId":12}],"battleBgm":{"name":"","pan":0,"pitch":100,"volume":90},"battleback1Name":"GrassMaze","battleback2Name":"GrassMaze","battlerHue":0,"battlerName":"Hi_monster","battleSystem":0,"boat":{"bgm":{"name":"","pan":0,"pitch":100,"volume":90},"characterIndex":0,"characterName":"Vehicle","startMapId":0,"startX":0,"startY":0},"currencyUnit":"G","defeatMe":{"name":"","pan":0,"pitch":100,"volume":90},"editMapId":1,"elements":["","物理","炎","氷","雷","水","土","風","光","闇"],"equipTypes":["","武器","盾","頭","身体","装飾品"],"gameTitle":"SampleProject","gameoverMe":{"name":"","pan":0,"pitch":100,"volume":90},"itemCategories":[true,true,true,true],"locale":"ja_JP","magicSkills":[1],"menuCommands":[true,true,true,true,true,true],"optAutosave":true,"optDisplayTp":true,"optDrawTitle":true,"optExtraExp":false,"optFloorDeath":false,"optFollowers":true,"optKeyItemsNumber":false,"optSideView":true,"optSlipDeath":false,"optTransparent":false,"partyMembers":[1,4,6,7],"ship":{"bgm":{"name":"","pan":0,"pitch":100,"volume":90},"characterIndex":1,"characterName":"Vehicle","startMapId":0,"startX":0,"startY":0},"skillTypes":["","魔法","必殺技"],"sounds":[{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90}],"startMapId":1,"startX":8,"startY":6,"switches":["","","","","","","","","","","","","","","","","","","","",""],"terms":{"basic":["レベル","Lv","HP","HP","MP","MP","TP","TP","経験値","EXP"],"commands":["戦う","逃げる","攻撃","防御","アイテム","スキル","装備","ステータス","並び替え","セーブ","ゲーム終了","オプション","武器","防具","大事なもの","装備","最強装備","全て外す","ニューゲーム","コンティニュー",null,"タイトルへ","やめる",null,"購入する","売却する"],"params":["最大HP","最大MP","攻撃力","防御力","魔法力","魔法防御","敏捷性","運","命中率","回避率"],"messages":{"alwaysDash":"常時ダッシュ","commandRemember":"コマンド記憶","touchUI":"タッチUI","bgmVolume":"BGM 音量","bgsVolume":"BGS 音量","meVolume":"ME 音量","seVolume":"SE 音量","possession":"持っている数","expTotal":"現在の%1","expNext":"次の%1まで","saveMessage":"どのファイルにセーブしますか?","loadMessage":"どのファイルをロードしますか?","file":"ファイル","autosave":"オートセーブ","partyName":"%1たち","emerge":"%1が出現!","preemptive":"%1は先手を取った!","surprise":"%1は不意をつかれた!","escapeStart":"%1は逃げ出した!","escapeFailure":"しかし逃げることはできなかった!","victory":"%1の勝利!","defeat":"%1は戦いに敗れた。","obtainExp":"%1 の%2を獲得!","obtainGold":"お金を %1\\G 手に入れた!","obtainItem":"%1を手に入れた!","levelUp":"%1は%2 %3 に上がった!","obtainSkill":"%1を覚えた!","useItem":"%1は%2を使った!","criticalToEnemy":"会心の一撃!!","criticalToActor":"痛恨の一撃!!","actorDamage":"%1は %2 のダメージを受けた!","actorRecovery":"%1の%2が %3 回復した!","actorGain":"%1の%2が %3 増えた!","actorLoss":"%1の%2が %3 減った!","actorDrain":"%1は%2を %3 奪われた!","actorNoDamage":"%1はダメージを受けていない!","actorNoHit":"ミス! %1はダメージを受けていない!","enemyDamage":"%1に %2 のダメージを与えた!","enemyRecovery":"%1の%2が %3 回復した!","enemyGain":"%1の%2が %3 増えた!","enemyLoss":"%1の%2が %3 減った!","enemyDrain":"%1の%2を %3 奪った!","enemyNoDamage":"%1にダメージを与えられない!","enemyNoHit":"ミス! %1にダメージを与えられない!","evasion":"%1は攻撃をかわした!","magicEvasion":"%1は魔法を打ち消した!","magicReflection":"%1は魔法を跳ね返した!","counterAttack":"%1の反撃!","substitute":"%1が%2をかばった!","buffAdd":"%1の%2が上がった!","debuffAdd":"%1の%2が下がった!","buffRemove":"%1の%2が元に戻った!","actionFailure":"%1には効かなかった!"}},"testBattlers":[{"actorId":1,"level":1,"equips":[2,1,2,3,0]},{"actorId":4,"level":1,"equips":[31,0,0,5,0]},{"actorId":6,"level":1,"equips":[7,0,65,21,0]},{"actorId":7,"level":1,"equips":[7,0,0,20,0]}],"testTroopId":1,"title1Name":"","title2Name":"","titleBgm":{"name":"","pan":0,"pitch":100,"volume":90},"titleCommandWindow":{"background":0,"offsetX":0,"offsetY":0},"variables":["","","","","","","","","","","","","","","","","","","","",""],"versionId":14287297,"victoryMe":{"name":"","pan":0,"pitch":100,"volume":90},"weaponTypes":["","短剣","剣","フレイル","斧","ムチ","杖","弓","クロスボウ","銃","爪","グローブ","槍"],"windowTone":[0,0,0,0],"tileSize":48} \ No newline at end of file +{"advanced":{"gameId":37402338,"screenWidth":816,"screenHeight":624,"uiAreaWidth":816,"uiAreaHeight":624,"numberFontFilename":"mplus-2p-bold-sub.woff","fallbackFonts":"Verdana, sans-serif","fontSize":26,"mainFontFilename":"mplus-1m-regular.woff","windowOpacity":192,"screenScale":1,"picturesUpperLimit":100},"airship":{"bgm":{"name":"","pan":0,"pitch":100,"volume":90},"characterIndex":3,"characterName":"Vehicle","startMapId":0,"startX":0,"startY":0},"armorTypes":["","一般防具","魔法防具","軽装防具","重装防具","小型盾","大型盾"],"attackMotions":[{"type":0,"weaponImageId":0},{"type":1,"weaponImageId":1},{"type":1,"weaponImageId":2},{"type":1,"weaponImageId":3},{"type":1,"weaponImageId":4},{"type":1,"weaponImageId":5},{"type":1,"weaponImageId":6},{"type":2,"weaponImageId":7},{"type":2,"weaponImageId":8},{"type":2,"weaponImageId":9},{"type":0,"weaponImageId":10},{"type":0,"weaponImageId":11},{"type":0,"weaponImageId":12}],"battleBgm":{"name":"","pan":0,"pitch":100,"volume":90},"battleback1Name":"GrassMaze","battleback2Name":"GrassMaze","battlerHue":0,"battlerName":"Hi_monster","battleSystem":0,"boat":{"bgm":{"name":"","pan":0,"pitch":100,"volume":90},"characterIndex":0,"characterName":"Vehicle","startMapId":0,"startX":0,"startY":0},"currencyUnit":"G","defeatMe":{"name":"","pan":0,"pitch":100,"volume":90},"editMapId":1,"elements":["","物理","炎","氷","雷","水","土","風","光","闇"],"equipTypes":["","武器","盾","頭","身体","装飾品"],"gameTitle":"SampleProject","gameoverMe":{"name":"","pan":0,"pitch":100,"volume":90},"itemCategories":[true,true,true,true],"locale":"ja_JP","magicSkills":[1],"menuCommands":[true,true,true,true,true,true],"optAutosave":true,"optDisplayTp":true,"optDrawTitle":true,"optExtraExp":false,"optFloorDeath":false,"optFollowers":true,"optKeyItemsNumber":false,"optSideView":true,"optSlipDeath":false,"optTransparent":false,"partyMembers":[1,4,6,7],"ship":{"bgm":{"name":"","pan":0,"pitch":100,"volume":90},"characterIndex":1,"characterName":"Vehicle","startMapId":0,"startX":0,"startY":0},"skillTypes":["","魔法","必殺技"],"sounds":[{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90}],"startMapId":1,"startX":8,"startY":6,"switches":["","","","","","","","","","","","","","","","","","","","",""],"terms":{"basic":["レベル","Lv","HP","HP","MP","MP","TP","TP","経験値","EXP"],"commands":["戦う","逃げる","攻撃","防御","アイテム","スキル","装備","ステータス","並び替え","セーブ","ゲーム終了","オプション","武器","防具","大事なもの","装備","最強装備","全て外す","ニューゲーム","コンティニュー",null,"タイトルへ","やめる",null,"購入する","売却する"],"params":["最大HP","最大MP","攻撃力","防御力","魔法力","魔法防御","敏捷性","運","命中率","回避率"],"messages":{"alwaysDash":"常時ダッシュ","commandRemember":"コマンド記憶","touchUI":"タッチUI","bgmVolume":"BGM 音量","bgsVolume":"BGS 音量","meVolume":"ME 音量","seVolume":"SE 音量","possession":"持っている数","expTotal":"現在の%1","expNext":"次の%1まで","saveMessage":"どのファイルにセーブしますか?","loadMessage":"どのファイルをロードしますか?","file":"ファイル","autosave":"オートセーブ","partyName":"%1たち","emerge":"%1が出現!","preemptive":"%1は先手を取った!","surprise":"%1は不意をつかれた!","escapeStart":"%1は逃げ出した!","escapeFailure":"しかし逃げることはできなかった!","victory":"%1の勝利!","defeat":"%1は戦いに敗れた。","obtainExp":"%1 の%2を獲得!","obtainGold":"お金を %1\\G 手に入れた!","obtainItem":"%1を手に入れた!","levelUp":"%1は%2 %3 に上がった!","obtainSkill":"%1を覚えた!","useItem":"%1は%2を使った!","criticalToEnemy":"会心の一撃!!","criticalToActor":"痛恨の一撃!!","actorDamage":"%1は %2 のダメージを受けた!","actorRecovery":"%1の%2が %3 回復した!","actorGain":"%1の%2が %3 増えた!","actorLoss":"%1の%2が %3 減った!","actorDrain":"%1は%2を %3 奪われた!","actorNoDamage":"%1はダメージを受けていない!","actorNoHit":"ミス! %1はダメージを受けていない!","enemyDamage":"%1に %2 のダメージを与えた!","enemyRecovery":"%1の%2が %3 回復した!","enemyGain":"%1の%2が %3 増えた!","enemyLoss":"%1の%2が %3 減った!","enemyDrain":"%1の%2を %3 奪った!","enemyNoDamage":"%1にダメージを与えられない!","enemyNoHit":"ミス! %1にダメージを与えられない!","evasion":"%1は攻撃をかわした!","magicEvasion":"%1は魔法を打ち消した!","magicReflection":"%1は魔法を跳ね返した!","counterAttack":"%1の反撃!","substitute":"%1が%2をかばった!","buffAdd":"%1の%2が上がった!","debuffAdd":"%1の%2が下がった!","buffRemove":"%1の%2が元に戻った!","actionFailure":"%1には効かなかった!"}},"testBattlers":[{"actorId":1,"level":1,"equips":[2,1,2,3,0]},{"actorId":4,"level":1,"equips":[31,0,0,5,0]},{"actorId":6,"level":1,"equips":[7,0,65,21,0]},{"actorId":7,"level":1,"equips":[7,0,0,20,0]}],"testTroopId":1,"title1Name":"","title2Name":"","titleBgm":{"name":"","pan":0,"pitch":100,"volume":90},"titleCommandWindow":{"background":0,"offsetX":0,"offsetY":0},"variables":["","","","","","","","","","","","","","","","","","","","",""],"versionId":89273119,"victoryMe":{"name":"","pan":0,"pitch":100,"volume":90},"weaponTypes":["","短剣","剣","フレイル","斧","ムチ","杖","弓","クロスボウ","銃","爪","グローブ","槍"],"windowTone":[0,0,0,0],"tileSize":48,"editor":{"messageWidth1":60,"messageWidth2":47,"jsonFormatLevel":1},"faceSize":144,"iconSize":32,"optSplashScreen":false,"optMessageSkip":true} \ No newline at end of file diff --git a/packages/ss6player-rpgmakermz/SampleProject/game.rmmzproject b/packages/ss6player-rpgmakermz/SampleProject/game.rmmzproject index 0c82fde6..f6cbd590 100644 --- a/packages/ss6player-rpgmakermz/SampleProject/game.rmmzproject +++ b/packages/ss6player-rpgmakermz/SampleProject/game.rmmzproject @@ -1 +1 @@ -RPGMZ 1.7.0 \ No newline at end of file +RPGMZ 1.10.0 \ No newline at end of file diff --git a/packages/ss6player-rpgmakermz/SampleProject/js/main.js b/packages/ss6player-rpgmakermz/SampleProject/js/main.js index dbb36bae..8d64dc8f 100755 --- a/packages/ss6player-rpgmakermz/SampleProject/js/main.js +++ b/packages/ss6player-rpgmakermz/SampleProject/js/main.js @@ -1,5 +1,5 @@ //============================================================================= -// main.js v1.9.0 +// main.js v1.10.0 //============================================================================= const scriptUrls = [ diff --git a/packages/ss6player-rpgmakermz/SampleProject/js/plugins/ss6player-rpgmakermz.js b/packages/ss6player-rpgmakermz/SampleProject/js/plugins/ss6player-rpgmakermz.js index 8730a35d..677ee6ad 100644 --- a/packages/ss6player-rpgmakermz/SampleProject/js/plugins/ss6player-rpgmakermz.js +++ b/packages/ss6player-rpgmakermz/SampleProject/js/plugins/ss6player-rpgmakermz.js @@ -1,4782 +1,4477 @@ /** - * ----------------------------------------------------------- - * SS6Player For RPG Maker MZ v0.8.5 - * - * Copyright(C) CRI Middleware Co., Ltd. - * https://www.webtech.co.jp/ - * ----------------------------------------------------------- - */ - +* ----------------------------------------------------------- +* SS6Player For RPG Maker MZ v0.9.0 +* +* Copyright(C) CRI Middleware Co., Ltd. +* https://www.webtech.co.jp/ +* ----------------------------------------------------------- +*/ // eslint-disable-next-line var Imported = Imported || {}; Imported.SS6PlayerRPGMakerMZ = true; - /*:ja - * @target MZ - * @plugindesc SpriteStudio 7.0 & 6 アニメーション再生プラグイン - * @version 0.8.5 - * @author CRI Middleware Co., Ltd. - * @url https://github.com/SpriteStudio/SS6PlayerForWeb/tree/master/packages/ss6player-rpgmakermz - * @help SS6Player for RPG Maker MZ - * - * 詳しい使い方は、GitHub リポジトリの README.md をお読みください。 - * https://github.com/SpriteStudio/SS6PlayerForWeb/tree/master/packages/ss6player-rpgmakermz/README.md - * - * デプロイメント時に「未使用ファイルを削除」オプションを使用した場合、 - * アニメーションを含むフォルダは削除されてしまいます。 - * 必ず、デプロイメント後にプラグインパラメータで指定したディレクトリを、 - * 出力先の同じ位置にコピーしてください。 - * - * @param animationDir - * @text ssfb アニメーションベースディレクトリ - * @desc ssfb のフォルダを格納するベースディレクトリのパスです。 - * @type file - * @default img/ssfb - * @requiredAssets img/ssfb - * - * @param replaceSVActorSpriteFlag - * @text SV アクター置き換え - * @desc SV アクターを Sprite Studio アニメーションに置き換える機能の ON/OFF です。 - * @type boolean - * @default false - * - * @param svActorDir - * @text SV アクターディレクトリ - * @desc SV アクターの SpriteStudio データを格納するディレクトリのパスです - * @type file - * @default img/ssfb/sv_actors - * @requiredAssets img/ssfb/sv_actors - * - * @param svActorAnimationPack - * @text SV アクターアニメーションパック名 - * @desc SV アクターが利用する Sprite Studio の共通アニメーションパック(ssae)名です - * @type string - * @default motions - * - * @param svActorHideWeaponGraphics - * @text SV アクター武器非表示 - * @desc SV アクターの攻撃中の武器アニメーションを非表示にする機能の ON/OFF です。 - * @type boolean - * @default true - * - * @param replaceSVEnemySpriteFlag - * @text SV エネミー置き換え - * @desc SV エネミーを Sprite Studio アニメーションに置き換える機能の ON/OFF です。 - * @type boolean - * @default false - * - * @param svEnemyDir - * @text SV エネミーディレクトリ - * @desc SV アクターの SpriteStudio データを格納するディレクトリのパスです - * @type file - * @default img/ssfb/sv_enemies - * @requiredAssets img/ssfb/sv_enemies - * - * @param svEnemyAnimationPack - * @text SV エネミーアニメーションパック名 - * @desc SV エネミーが利用する Sprite Studio の共通アニメーションパック(ssae)名です - * @type string - * @default motions - * - * @param svEnemyAnimationName - * @text SV エネミーアニメーション名 - * @desc SV エネミーが利用する Sprite Studio の共通アニメーション名です。 - * @type string - * @default walk - * - * - * @command loadSsfb - * @text ssfbロード - * @desc ssfb ファイルと関連画像をダウンロードしロードします。 - * - * @arg ssfbId - * @text ssfb ID - * @desc 登録する ssfb ID です。他のコマンドから参照するのに利用します。 - * @type number - * @min 1 - * - * @arg ssfbFile - * @text ssfbファイルパス - * @desc ssfb ファイルをアニメーションディレクトリからの相対パスで指定してください。 (e.g. MeshBone/Knight.ssfb) - * @type string - * - * - * @command setAsPicture - * @text アニメーションピクチャの設定 - * @desc ピクチャとして表示するアニメーションを設定します。 - * この後、画像を指定せずに「ピクチャの表示」を実行してください。 - * - * @arg ssfbId - * @text ssfb ID - * @desc 利用する ssfb ID を指定してください。 - * @type number - * @min 1 - * - * @arg animePackName - * @text アニメパック名 - * @desc 再生するアニメパック名(ssae)を指定してください。 - * e.g. Knight_bomb - * @type string - * - * @arg animeName - * @text アニメ名 - * @desc 再生するアニメ名を指定してください。 - * e.g. Balloon - * @type string - * - * @arg scaleX - * @text スケールX - * @desc X のスケールを指定します - * @type decimals - * @default 1.0 - * - * @arg scaleY - * @text スケールY - * @desc Y のスケールを指定します - * @type decimals - * @default 1.0 - * - * @arg loop - * @text 再生ループ回数 - * @desc 再生ループ回数を指定します。 -1 を指定すると無限ループで再生します。 - * @type number - * @default 1 - * @min -1 - * - * - * @command waitForPicture - * @text ピクチャ再生待ち - * @desc アニメーションが再生完了するまでウエイトします。ピクチャにアニメーションがない場合とループ再生時は無視されます。 - * - * @arg pictureId - * @text Picture ID - * @desc アニメーション再生中のピクチャの ID を指定してください。 - * @type number - * @min 1 - * - */ - -(function (loaders, display, mesh, ticker, filterColorMatrix, constants) { - 'use strict'; - - class FrameData { - } - const SIZEOF_INT = 4; - const FILE_IDENTIFIER_LENGTH = 4; - const SIZE_PREFIX_LENGTH = 4; - const int32 = new Int32Array(2); - const float32 = new Float32Array(int32.buffer); - const float64 = new Float64Array(int32.buffer); - const isLittleEndian = new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1; - var Encoding; - (function(Encoding2) { - Encoding2[Encoding2["UTF8_BYTES"] = 1] = "UTF8_BYTES"; - Encoding2[Encoding2["UTF16_STRING"] = 2] = "UTF16_STRING"; - })(Encoding || (Encoding = {})); - class ByteBuffer { - /** - * Create a new ByteBuffer with a given array of bytes (`Uint8Array`) - */ - constructor(bytes_) { - this.bytes_ = bytes_; - this.position_ = 0; - this.text_decoder_ = new TextDecoder(); - } - /** - * Create and allocate a new ByteBuffer with a given size. - */ - static allocate(byte_size) { - return new ByteBuffer(new Uint8Array(byte_size)); - } - clear() { - this.position_ = 0; - } - /** - * Get the underlying `Uint8Array`. - */ - bytes() { - return this.bytes_; - } - /** - * Get the buffer's position. - */ - position() { - return this.position_; - } - /** - * Set the buffer's position. - */ - setPosition(position) { - this.position_ = position; - } - /** - * Get the buffer's capacity. - */ - capacity() { - return this.bytes_.length; - } - readInt8(offset) { - return this.readUint8(offset) << 24 >> 24; - } - readUint8(offset) { - return this.bytes_[offset]; - } - readInt16(offset) { - return this.readUint16(offset) << 16 >> 16; - } - readUint16(offset) { - return this.bytes_[offset] | this.bytes_[offset + 1] << 8; - } - readInt32(offset) { - return this.bytes_[offset] | this.bytes_[offset + 1] << 8 | this.bytes_[offset + 2] << 16 | this.bytes_[offset + 3] << 24; - } - readUint32(offset) { - return this.readInt32(offset) >>> 0; - } - readInt64(offset) { - return BigInt.asIntN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); - } - readUint64(offset) { - return BigInt.asUintN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); - } - readFloat32(offset) { - int32[0] = this.readInt32(offset); - return float32[0]; - } - readFloat64(offset) { - int32[isLittleEndian ? 0 : 1] = this.readInt32(offset); - int32[isLittleEndian ? 1 : 0] = this.readInt32(offset + 4); - return float64[0]; - } - writeInt8(offset, value) { - this.bytes_[offset] = value; - } - writeUint8(offset, value) { - this.bytes_[offset] = value; - } - writeInt16(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - } - writeUint16(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - } - writeInt32(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - this.bytes_[offset + 2] = value >> 16; - this.bytes_[offset + 3] = value >> 24; - } - writeUint32(offset, value) { - this.bytes_[offset] = value; - this.bytes_[offset + 1] = value >> 8; - this.bytes_[offset + 2] = value >> 16; - this.bytes_[offset + 3] = value >> 24; - } - writeInt64(offset, value) { - this.writeInt32(offset, Number(BigInt.asIntN(32, value))); - this.writeInt32(offset + 4, Number(BigInt.asIntN(32, value >> BigInt(32)))); - } - writeUint64(offset, value) { - this.writeUint32(offset, Number(BigInt.asUintN(32, value))); - this.writeUint32(offset + 4, Number(BigInt.asUintN(32, value >> BigInt(32)))); - } - writeFloat32(offset, value) { - float32[0] = value; - this.writeInt32(offset, int32[0]); - } - writeFloat64(offset, value) { - float64[0] = value; - this.writeInt32(offset, int32[isLittleEndian ? 0 : 1]); - this.writeInt32(offset + 4, int32[isLittleEndian ? 1 : 0]); - } - /** - * Return the file identifier. Behavior is undefined for FlatBuffers whose - * schema does not include a file_identifier (likely points at padding or the - * start of a the root vtable). - */ - getBufferIdentifier() { - if (this.bytes_.length < this.position_ + SIZEOF_INT + FILE_IDENTIFIER_LENGTH) { - throw new Error("FlatBuffers: ByteBuffer is too short to contain an identifier."); - } - let result = ""; - for (let i = 0; i < FILE_IDENTIFIER_LENGTH; i++) { - result += String.fromCharCode(this.readInt8(this.position_ + SIZEOF_INT + i)); - } - return result; - } - /** - * Look up a field in the vtable, return an offset into the object, or 0 if the - * field is not present. - */ - __offset(bb_pos, vtable_offset) { - const vtable = bb_pos - this.readInt32(bb_pos); - return vtable_offset < this.readInt16(vtable) ? this.readInt16(vtable + vtable_offset) : 0; - } - /** - * Initialize any Table-derived type to point to the union at the given offset. - */ - __union(t, offset) { - t.bb_pos = offset + this.readInt32(offset); - t.bb = this; - return t; - } - /** - * Create a JavaScript string from UTF-8 data stored inside the FlatBuffer. - * This allocates a new string and converts to wide chars upon each access. - * - * To avoid the conversion to string, pass Encoding.UTF8_BYTES as the - * "optionalEncoding" argument. This is useful for avoiding conversion when - * the data will just be packaged back up in another FlatBuffer later on. - * - * @param offset - * @param opt_encoding Defaults to UTF16_STRING - */ - __string(offset, opt_encoding) { - offset += this.readInt32(offset); - const length = this.readInt32(offset); - offset += SIZEOF_INT; - const utf8bytes = this.bytes_.subarray(offset, offset + length); - if (opt_encoding === Encoding.UTF8_BYTES) - return utf8bytes; - else - return this.text_decoder_.decode(utf8bytes); - } - /** - * Handle unions that can contain string as its member, if a Table-derived type then initialize it, - * if a string then return a new one - * - * WARNING: strings are immutable in JS so we can't change the string that the user gave us, this - * makes the behaviour of __union_with_string different compared to __union - */ - __union_with_string(o, offset) { - if (typeof o === "string") { - return this.__string(offset); - } - return this.__union(o, offset); - } - /** - * Retrieve the relative offset stored at "offset" - */ - __indirect(offset) { - return offset + this.readInt32(offset); - } - /** - * Get the start of data of a vector whose offset is stored at "offset" in this object. - */ - __vector(offset) { - return offset + this.readInt32(offset) + SIZEOF_INT; - } - /** - * Get the length of a vector whose offset is stored at "offset" in this object. - */ - __vector_len(offset) { - return this.readInt32(offset + this.readInt32(offset)); - } - __has_identifier(ident) { - if (ident.length != FILE_IDENTIFIER_LENGTH) { - throw new Error("FlatBuffers: file identifier must be length " + FILE_IDENTIFIER_LENGTH); - } - for (let i = 0; i < FILE_IDENTIFIER_LENGTH; i++) { - if (ident.charCodeAt(i) != this.readInt8(this.position() + SIZEOF_INT + i)) { - return false; - } - } - return true; - } - /** - * A helper function for generating list for obj api - */ - createScalarList(listAccessor, listLength) { - const ret = []; - for (let i = 0; i < listLength; ++i) { - const val = listAccessor(i); - if (val !== null) { - ret.push(val); - } - } - return ret; - } - /** - * A helper function for generating list for obj api - * @param listAccessor function that accepts an index and return data at that index - * @param listLength listLength - * @param res result list - */ - createObjList(listAccessor, listLength) { - const ret = []; - for (let i = 0; i < listLength; ++i) { - const val = listAccessor(i); - if (val !== null) { - ret.push(val.unpack()); - } - } - return ret; - } - } - class AnimationInitialData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsAnimationInitialData(bb, obj) { - return (obj || new AnimationInitialData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsAnimationInitialData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new AnimationInitialData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - index() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - lowflag() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - highflag() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - priority() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - cellIndex() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - opacity() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - localopacity() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - masklimen() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - positionX() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - positionY() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - positionZ() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - pivotX() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - pivotY() { - const offset = this.bb.__offset(this.bb_pos, 28); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - rotationX() { - const offset = this.bb.__offset(this.bb_pos, 30); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - rotationY() { - const offset = this.bb.__offset(this.bb_pos, 32); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - rotationZ() { - const offset = this.bb.__offset(this.bb_pos, 34); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - scaleX() { - const offset = this.bb.__offset(this.bb_pos, 36); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - scaleY() { - const offset = this.bb.__offset(this.bb_pos, 38); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - localscaleX() { - const offset = this.bb.__offset(this.bb_pos, 40); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - localscaleY() { - const offset = this.bb.__offset(this.bb_pos, 42); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - sizeX() { - const offset = this.bb.__offset(this.bb_pos, 44); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - sizeY() { - const offset = this.bb.__offset(this.bb_pos, 46); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvMoveX() { - const offset = this.bb.__offset(this.bb_pos, 48); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvMoveY() { - const offset = this.bb.__offset(this.bb_pos, 50); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvRotation() { - const offset = this.bb.__offset(this.bb_pos, 52); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvScaleX() { - const offset = this.bb.__offset(this.bb_pos, 54); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - uvScaleY() { - const offset = this.bb.__offset(this.bb_pos, 56); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - boundingRadius() { - const offset = this.bb.__offset(this.bb_pos, 58); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - instanceValueCurKeyframe() { - const offset = this.bb.__offset(this.bb_pos, 60); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueStartFrame() { - const offset = this.bb.__offset(this.bb_pos, 62); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueEndFrame() { - const offset = this.bb.__offset(this.bb_pos, 64); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueLoopNum() { - const offset = this.bb.__offset(this.bb_pos, 66); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - instanceValueSpeed() { - const offset = this.bb.__offset(this.bb_pos, 68); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - instanceValueLoopflag() { - const offset = this.bb.__offset(this.bb_pos, 70); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - effectValueCurKeyframe() { - const offset = this.bb.__offset(this.bb_pos, 72); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - effectValueStartTime() { - const offset = this.bb.__offset(this.bb_pos, 74); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - effectValueSpeed() { - const offset = this.bb.__offset(this.bb_pos, 76); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - effectValueLoopflag() { - const offset = this.bb.__offset(this.bb_pos, 78); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - static startAnimationInitialData(builder) { - builder.startObject(38); - } - static addIndex(builder, index) { - builder.addFieldInt16(0, index, 0); - } - static addLowflag(builder, lowflag) { - builder.addFieldInt32(1, lowflag, 0); - } - static addHighflag(builder, highflag) { - builder.addFieldInt32(2, highflag, 0); - } - static addPriority(builder, priority) { - builder.addFieldInt16(3, priority, 0); - } - static addCellIndex(builder, cellIndex) { - builder.addFieldInt16(4, cellIndex, 0); - } - static addOpacity(builder, opacity) { - builder.addFieldInt16(5, opacity, 0); - } - static addLocalopacity(builder, localopacity) { - builder.addFieldInt16(6, localopacity, 0); - } - static addMasklimen(builder, masklimen) { - builder.addFieldInt16(7, masklimen, 0); - } - static addPositionX(builder, positionX) { - builder.addFieldFloat32(8, positionX, 0); - } - static addPositionY(builder, positionY) { - builder.addFieldFloat32(9, positionY, 0); - } - static addPositionZ(builder, positionZ) { - builder.addFieldFloat32(10, positionZ, 0); - } - static addPivotX(builder, pivotX) { - builder.addFieldFloat32(11, pivotX, 0); - } - static addPivotY(builder, pivotY) { - builder.addFieldFloat32(12, pivotY, 0); - } - static addRotationX(builder, rotationX) { - builder.addFieldFloat32(13, rotationX, 0); - } - static addRotationY(builder, rotationY) { - builder.addFieldFloat32(14, rotationY, 0); - } - static addRotationZ(builder, rotationZ) { - builder.addFieldFloat32(15, rotationZ, 0); - } - static addScaleX(builder, scaleX) { - builder.addFieldFloat32(16, scaleX, 0); - } - static addScaleY(builder, scaleY) { - builder.addFieldFloat32(17, scaleY, 0); - } - static addLocalscaleX(builder, localscaleX) { - builder.addFieldFloat32(18, localscaleX, 0); - } - static addLocalscaleY(builder, localscaleY) { - builder.addFieldFloat32(19, localscaleY, 0); - } - static addSizeX(builder, sizeX) { - builder.addFieldFloat32(20, sizeX, 0); - } - static addSizeY(builder, sizeY) { - builder.addFieldFloat32(21, sizeY, 0); - } - static addUvMoveX(builder, uvMoveX) { - builder.addFieldFloat32(22, uvMoveX, 0); - } - static addUvMoveY(builder, uvMoveY) { - builder.addFieldFloat32(23, uvMoveY, 0); - } - static addUvRotation(builder, uvRotation) { - builder.addFieldFloat32(24, uvRotation, 0); - } - static addUvScaleX(builder, uvScaleX) { - builder.addFieldFloat32(25, uvScaleX, 0); - } - static addUvScaleY(builder, uvScaleY) { - builder.addFieldFloat32(26, uvScaleY, 0); - } - static addBoundingRadius(builder, boundingRadius) { - builder.addFieldFloat32(27, boundingRadius, 0); - } - static addInstanceValueCurKeyframe(builder, instanceValueCurKeyframe) { - builder.addFieldInt32(28, instanceValueCurKeyframe, 0); - } - static addInstanceValueStartFrame(builder, instanceValueStartFrame) { - builder.addFieldInt32(29, instanceValueStartFrame, 0); - } - static addInstanceValueEndFrame(builder, instanceValueEndFrame) { - builder.addFieldInt32(30, instanceValueEndFrame, 0); - } - static addInstanceValueLoopNum(builder, instanceValueLoopNum) { - builder.addFieldInt32(31, instanceValueLoopNum, 0); - } - static addInstanceValueSpeed(builder, instanceValueSpeed) { - builder.addFieldFloat32(32, instanceValueSpeed, 0); - } - static addInstanceValueLoopflag(builder, instanceValueLoopflag) { - builder.addFieldInt32(33, instanceValueLoopflag, 0); - } - static addEffectValueCurKeyframe(builder, effectValueCurKeyframe) { - builder.addFieldInt32(34, effectValueCurKeyframe, 0); - } - static addEffectValueStartTime(builder, effectValueStartTime) { - builder.addFieldInt32(35, effectValueStartTime, 0); - } - static addEffectValueSpeed(builder, effectValueSpeed) { - builder.addFieldFloat32(36, effectValueSpeed, 0); - } - static addEffectValueLoopflag(builder, effectValueLoopflag) { - builder.addFieldInt32(37, effectValueLoopflag, 0); - } - static endAnimationInitialData(builder) { - const offset = builder.endObject(); - return offset; - } - static createAnimationInitialData(builder, index, lowflag, highflag, priority, cellIndex, opacity, localopacity, masklimen, positionX, positionY, positionZ, pivotX, pivotY, rotationX, rotationY, rotationZ, scaleX, scaleY, localscaleX, localscaleY, sizeX, sizeY, uvMoveX, uvMoveY, uvRotation, uvScaleX, uvScaleY, boundingRadius, instanceValueCurKeyframe, instanceValueStartFrame, instanceValueEndFrame, instanceValueLoopNum, instanceValueSpeed, instanceValueLoopflag, effectValueCurKeyframe, effectValueStartTime, effectValueSpeed, effectValueLoopflag) { - AnimationInitialData.startAnimationInitialData(builder); - AnimationInitialData.addIndex(builder, index); - AnimationInitialData.addLowflag(builder, lowflag); - AnimationInitialData.addHighflag(builder, highflag); - AnimationInitialData.addPriority(builder, priority); - AnimationInitialData.addCellIndex(builder, cellIndex); - AnimationInitialData.addOpacity(builder, opacity); - AnimationInitialData.addLocalopacity(builder, localopacity); - AnimationInitialData.addMasklimen(builder, masklimen); - AnimationInitialData.addPositionX(builder, positionX); - AnimationInitialData.addPositionY(builder, positionY); - AnimationInitialData.addPositionZ(builder, positionZ); - AnimationInitialData.addPivotX(builder, pivotX); - AnimationInitialData.addPivotY(builder, pivotY); - AnimationInitialData.addRotationX(builder, rotationX); - AnimationInitialData.addRotationY(builder, rotationY); - AnimationInitialData.addRotationZ(builder, rotationZ); - AnimationInitialData.addScaleX(builder, scaleX); - AnimationInitialData.addScaleY(builder, scaleY); - AnimationInitialData.addLocalscaleX(builder, localscaleX); - AnimationInitialData.addLocalscaleY(builder, localscaleY); - AnimationInitialData.addSizeX(builder, sizeX); - AnimationInitialData.addSizeY(builder, sizeY); - AnimationInitialData.addUvMoveX(builder, uvMoveX); - AnimationInitialData.addUvMoveY(builder, uvMoveY); - AnimationInitialData.addUvRotation(builder, uvRotation); - AnimationInitialData.addUvScaleX(builder, uvScaleX); - AnimationInitialData.addUvScaleY(builder, uvScaleY); - AnimationInitialData.addBoundingRadius(builder, boundingRadius); - AnimationInitialData.addInstanceValueCurKeyframe(builder, instanceValueCurKeyframe); - AnimationInitialData.addInstanceValueStartFrame(builder, instanceValueStartFrame); - AnimationInitialData.addInstanceValueEndFrame(builder, instanceValueEndFrame); - AnimationInitialData.addInstanceValueLoopNum(builder, instanceValueLoopNum); - AnimationInitialData.addInstanceValueSpeed(builder, instanceValueSpeed); - AnimationInitialData.addInstanceValueLoopflag(builder, instanceValueLoopflag); - AnimationInitialData.addEffectValueCurKeyframe(builder, effectValueCurKeyframe); - AnimationInitialData.addEffectValueStartTime(builder, effectValueStartTime); - AnimationInitialData.addEffectValueSpeed(builder, effectValueSpeed); - AnimationInitialData.addEffectValueLoopflag(builder, effectValueLoopflag); - return AnimationInitialData.endAnimationInitialData(builder); - } - } - class partState { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAspartState(bb, obj) { - return (obj || new partState()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAspartState(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new partState()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - index() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - flag1() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - flag2() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - data(index) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readUint32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; - } - dataLength() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - dataArray() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - static startpartState(builder) { - builder.startObject(4); - } - static addIndex(builder, index) { - builder.addFieldInt16(0, index, 0); - } - static addFlag1(builder, flag1) { - builder.addFieldInt32(1, flag1, 0); - } - static addFlag2(builder, flag2) { - builder.addFieldInt32(2, flag2, 0); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(3, dataOffset, 0); - } - static createDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt32(data[i]); - } - return builder.endVector(); - } - static startDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endpartState(builder) { - const offset = builder.endObject(); - return offset; - } - static createpartState(builder, index, flag1, flag2, dataOffset) { - partState.startpartState(builder); - partState.addIndex(builder, index); - partState.addFlag1(builder, flag1); - partState.addFlag2(builder, flag2); - partState.addData(builder, dataOffset); - return partState.endpartState(builder); - } - } - class frameDataIndex { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsframeDataIndex(bb, obj) { - return (obj || new frameDataIndex()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsframeDataIndex(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new frameDataIndex()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - states(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? (obj || new partState()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - statesLength() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startframeDataIndex(builder) { - builder.startObject(1); - } - static addStates(builder, statesOffset) { - builder.addFieldOffset(0, statesOffset, 0); - } - static createStatesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startStatesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endframeDataIndex(builder) { - const offset = builder.endObject(); - return offset; - } - static createframeDataIndex(builder, statesOffset) { - frameDataIndex.startframeDataIndex(builder); - frameDataIndex.addStates(builder, statesOffset); - return frameDataIndex.endframeDataIndex(builder); - } - } - class labelDataItem { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAslabelDataItem(bb, obj) { - return (obj || new labelDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAslabelDataItem(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new labelDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - label(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - frameIndex() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startlabelDataItem(builder) { - builder.startObject(2); - } - static addLabel(builder, labelOffset) { - builder.addFieldOffset(0, labelOffset, 0); - } - static addFrameIndex(builder, frameIndex) { - builder.addFieldInt16(1, frameIndex, 0); - } - static endlabelDataItem(builder) { - const offset = builder.endObject(); - return offset; - } - static createlabelDataItem(builder, labelOffset, frameIndex) { - labelDataItem.startlabelDataItem(builder); - labelDataItem.addLabel(builder, labelOffset); - labelDataItem.addFrameIndex(builder, frameIndex); - return labelDataItem.endlabelDataItem(builder); - } - } - class meshDataIndices { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsmeshDataIndices(bb, obj) { - return (obj || new meshDataIndices()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsmeshDataIndices(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new meshDataIndices()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - indices(index) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; - } - indicesLength() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - indicesArray() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - static startmeshDataIndices(builder) { - builder.startObject(1); - } - static addIndices(builder, indicesOffset) { - builder.addFieldOffset(0, indicesOffset, 0); - } - static createIndicesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addFloat32(data[i]); - } - return builder.endVector(); - } - static startIndicesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endmeshDataIndices(builder) { - const offset = builder.endObject(); - return offset; - } - static createmeshDataIndices(builder, indicesOffset) { - meshDataIndices.startmeshDataIndices(builder); - meshDataIndices.addIndices(builder, indicesOffset); - return meshDataIndices.endmeshDataIndices(builder); - } - } - class meshDataUV { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsmeshDataUV(bb, obj) { - return (obj || new meshDataUV()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsmeshDataUV(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new meshDataUV()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - uv(index) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; - } - uvLength() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - uvArray() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - static startmeshDataUV(builder) { - builder.startObject(1); - } - static addUv(builder, uvOffset) { - builder.addFieldOffset(0, uvOffset, 0); - } - static createUvVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addFloat32(data[i]); - } - return builder.endVector(); - } - static startUvVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endmeshDataUV(builder) { - const offset = builder.endObject(); - return offset; - } - static createmeshDataUV(builder, uvOffset) { - meshDataUV.startmeshDataUV(builder); - meshDataUV.addUv(builder, uvOffset); - return meshDataUV.endmeshDataUV(builder); - } - } - class userDataItem { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsuserDataItem(bb, obj) { - return (obj || new userDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsuserDataItem(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new userDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - flags() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - arrayIndex() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - dataType(index) { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; - } - dataTypeLength() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - dataTypeArray() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - data(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__union(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; - } - dataLength() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startuserDataItem(builder) { - builder.startObject(4); - } - static addFlags(builder, flags) { - builder.addFieldInt16(0, flags, 0); - } - static addArrayIndex(builder, arrayIndex) { - builder.addFieldInt16(1, arrayIndex, 0); - } - static addDataType(builder, dataTypeOffset) { - builder.addFieldOffset(2, dataTypeOffset, 0); - } - static createDataTypeVector(builder, data) { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]); - } - return builder.endVector(); - } - static startDataTypeVector(builder, numElems) { - builder.startVector(1, numElems, 1); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(3, dataOffset, 0); - } - static createDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static enduserDataItem(builder) { - const offset = builder.endObject(); - return offset; - } - static createuserDataItem(builder, flags, arrayIndex, dataTypeOffset, dataOffset) { - userDataItem.startuserDataItem(builder); - userDataItem.addFlags(builder, flags); - userDataItem.addArrayIndex(builder, arrayIndex); - userDataItem.addDataType(builder, dataTypeOffset); - userDataItem.addData(builder, dataOffset); - return userDataItem.enduserDataItem(builder); - } - } - class userDataPerFrame { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsuserDataPerFrame(bb, obj) { - return (obj || new userDataPerFrame()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsuserDataPerFrame(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new userDataPerFrame()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - frameIndex() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - data(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new userDataItem()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - dataLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startuserDataPerFrame(builder) { - builder.startObject(2); - } - static addFrameIndex(builder, frameIndex) { - builder.addFieldInt16(0, frameIndex, 0); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(1, dataOffset, 0); - } - static createDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static enduserDataPerFrame(builder) { - const offset = builder.endObject(); - return offset; - } - static createuserDataPerFrame(builder, frameIndex, dataOffset) { - userDataPerFrame.startuserDataPerFrame(builder); - userDataPerFrame.addFrameIndex(builder, frameIndex); - userDataPerFrame.addData(builder, dataOffset); - return userDataPerFrame.enduserDataPerFrame(builder); - } - } - class AnimationData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsAnimationData(bb, obj) { - return (obj || new AnimationData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsAnimationData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new AnimationData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - defaultData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new AnimationInitialData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - defaultDataLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - frameData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? (obj || new frameDataIndex()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - frameDataLength() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - userData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? (obj || new userDataPerFrame()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - userDataLength() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - labelData(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? (obj || new labelDataItem()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - labelDataLength() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - meshsDataUv(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? (obj || new meshDataUV()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - meshsDataUvLength() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - meshsDataIndices(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? (obj || new meshDataIndices()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - meshsDataIndicesLength() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - startFrames() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - endFrames() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - totalFrames() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - fps() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - labelNum() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - canvasSizeW() { - const offset = this.bb.__offset(this.bb_pos, 28); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - canvasSizeH() { - const offset = this.bb.__offset(this.bb_pos, 30); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - canvasPvotX() { - const offset = this.bb.__offset(this.bb_pos, 32); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - canvasPvotY() { - const offset = this.bb.__offset(this.bb_pos, 34); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - static startAnimationData(builder) { - builder.startObject(16); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addDefaultData(builder, defaultDataOffset) { - builder.addFieldOffset(1, defaultDataOffset, 0); - } - static createDefaultDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDefaultDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addFrameData(builder, frameDataOffset) { - builder.addFieldOffset(2, frameDataOffset, 0); - } - static createFrameDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startFrameDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addUserData(builder, userDataOffset) { - builder.addFieldOffset(3, userDataOffset, 0); - } - static createUserDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startUserDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addLabelData(builder, labelDataOffset) { - builder.addFieldOffset(4, labelDataOffset, 0); - } - static createLabelDataVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startLabelDataVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addMeshsDataUv(builder, meshsDataUvOffset) { - builder.addFieldOffset(5, meshsDataUvOffset, 0); - } - static createMeshsDataUvVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startMeshsDataUvVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addMeshsDataIndices(builder, meshsDataIndicesOffset) { - builder.addFieldOffset(6, meshsDataIndicesOffset, 0); - } - static createMeshsDataIndicesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startMeshsDataIndicesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addStartFrames(builder, startFrames) { - builder.addFieldInt16(7, startFrames, 0); - } - static addEndFrames(builder, endFrames) { - builder.addFieldInt16(8, endFrames, 0); - } - static addTotalFrames(builder, totalFrames) { - builder.addFieldInt16(9, totalFrames, 0); - } - static addFps(builder, fps) { - builder.addFieldInt16(10, fps, 0); - } - static addLabelNum(builder, labelNum) { - builder.addFieldInt16(11, labelNum, 0); - } - static addCanvasSizeW(builder, canvasSizeW) { - builder.addFieldInt16(12, canvasSizeW, 0); - } - static addCanvasSizeH(builder, canvasSizeH) { - builder.addFieldInt16(13, canvasSizeH, 0); - } - static addCanvasPvotX(builder, canvasPvotX) { - builder.addFieldFloat32(14, canvasPvotX, 0); - } - static addCanvasPvotY(builder, canvasPvotY) { - builder.addFieldFloat32(15, canvasPvotY, 0); - } - static endAnimationData(builder) { - const offset = builder.endObject(); - return offset; - } - static createAnimationData(builder, nameOffset, defaultDataOffset, frameDataOffset, userDataOffset, labelDataOffset, meshsDataUvOffset, meshsDataIndicesOffset, startFrames, endFrames, totalFrames, fps, labelNum, canvasSizeW, canvasSizeH, canvasPvotX, canvasPvotY) { - AnimationData.startAnimationData(builder); - AnimationData.addName(builder, nameOffset); - AnimationData.addDefaultData(builder, defaultDataOffset); - AnimationData.addFrameData(builder, frameDataOffset); - AnimationData.addUserData(builder, userDataOffset); - AnimationData.addLabelData(builder, labelDataOffset); - AnimationData.addMeshsDataUv(builder, meshsDataUvOffset); - AnimationData.addMeshsDataIndices(builder, meshsDataIndicesOffset); - AnimationData.addStartFrames(builder, startFrames); - AnimationData.addEndFrames(builder, endFrames); - AnimationData.addTotalFrames(builder, totalFrames); - AnimationData.addFps(builder, fps); - AnimationData.addLabelNum(builder, labelNum); - AnimationData.addCanvasSizeW(builder, canvasSizeW); - AnimationData.addCanvasSizeH(builder, canvasSizeH); - AnimationData.addCanvasPvotX(builder, canvasPvotX); - AnimationData.addCanvasPvotY(builder, canvasPvotY); - return AnimationData.endAnimationData(builder); - } - } - var SsPartType = /* @__PURE__ */ ((SsPartType2) => { - SsPartType2[SsPartType2["Invalid"] = -1] = "Invalid"; - SsPartType2[SsPartType2["Nulltype"] = 0] = "Nulltype"; - SsPartType2[SsPartType2["Normal"] = 1] = "Normal"; - SsPartType2[SsPartType2["Text"] = 2] = "Text"; - SsPartType2[SsPartType2["Instance"] = 3] = "Instance"; - SsPartType2[SsPartType2["Armature"] = 4] = "Armature"; - SsPartType2[SsPartType2["Effect"] = 5] = "Effect"; - SsPartType2[SsPartType2["Mesh"] = 6] = "Mesh"; - SsPartType2[SsPartType2["Movenode"] = 7] = "Movenode"; - SsPartType2[SsPartType2["Constraint"] = 8] = "Constraint"; - SsPartType2[SsPartType2["Mask"] = 9] = "Mask"; - SsPartType2[SsPartType2["Joint"] = 10] = "Joint"; - SsPartType2[SsPartType2["Bonepoint"] = 11] = "Bonepoint"; - return SsPartType2; - })(SsPartType || {}); - class PartData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsPartData(bb, obj) { - return (obj || new PartData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsPartData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new PartData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - index() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - parentIndex() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - type() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt8(this.bb_pos + offset) : SsPartType.Nulltype; - } - boundsType() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - alphaBlendType() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - refname(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - effectfilename(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - colorLabel(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - maskInfluence() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startPartData(builder) { - builder.startObject(10); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addIndex(builder, index) { - builder.addFieldInt16(1, index, 0); - } - static addParentIndex(builder, parentIndex) { - builder.addFieldInt16(2, parentIndex, 0); - } - static addType(builder, type) { - builder.addFieldInt8(3, type, SsPartType.Nulltype); - } - static addBoundsType(builder, boundsType) { - builder.addFieldInt16(4, boundsType, 0); - } - static addAlphaBlendType(builder, alphaBlendType) { - builder.addFieldInt16(5, alphaBlendType, 0); - } - static addRefname(builder, refnameOffset) { - builder.addFieldOffset(6, refnameOffset, 0); - } - static addEffectfilename(builder, effectfilenameOffset) { - builder.addFieldOffset(7, effectfilenameOffset, 0); - } - static addColorLabel(builder, colorLabelOffset) { - builder.addFieldOffset(8, colorLabelOffset, 0); - } - static addMaskInfluence(builder, maskInfluence) { - builder.addFieldInt16(9, maskInfluence, 0); - } - static endPartData(builder) { - const offset = builder.endObject(); - return offset; - } - static createPartData(builder, nameOffset, index, parentIndex, type, boundsType, alphaBlendType, refnameOffset, effectfilenameOffset, colorLabelOffset, maskInfluence) { - PartData.startPartData(builder); - PartData.addName(builder, nameOffset); - PartData.addIndex(builder, index); - PartData.addParentIndex(builder, parentIndex); - PartData.addType(builder, type); - PartData.addBoundsType(builder, boundsType); - PartData.addAlphaBlendType(builder, alphaBlendType); - PartData.addRefname(builder, refnameOffset); - PartData.addEffectfilename(builder, effectfilenameOffset); - PartData.addColorLabel(builder, colorLabelOffset); - PartData.addMaskInfluence(builder, maskInfluence); - return PartData.endPartData(builder); - } - } - class AnimePackData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsAnimePackData(bb, obj) { - return (obj || new AnimePackData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsAnimePackData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new AnimePackData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - parts(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new PartData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - partsLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - animations(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? (obj || new AnimationData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - animationsLength() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startAnimePackData(builder) { - builder.startObject(3); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addParts(builder, partsOffset) { - builder.addFieldOffset(1, partsOffset, 0); - } - static createPartsVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startPartsVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addAnimations(builder, animationsOffset) { - builder.addFieldOffset(2, animationsOffset, 0); - } - static createAnimationsVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startAnimationsVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endAnimePackData(builder) { - const offset = builder.endObject(); - return offset; - } - static createAnimePackData(builder, nameOffset, partsOffset, animationsOffset) { - AnimePackData.startAnimePackData(builder); - AnimePackData.addName(builder, nameOffset); - AnimePackData.addParts(builder, partsOffset); - AnimePackData.addAnimations(builder, animationsOffset); - return AnimePackData.endAnimePackData(builder); - } - } - class CellMap { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsCellMap(bb, obj) { - return (obj || new CellMap()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsCellMap(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new CellMap()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - imagePath(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - index() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - wrapmode() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - filtermode() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startCellMap(builder) { - builder.startObject(5); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addImagePath(builder, imagePathOffset) { - builder.addFieldOffset(1, imagePathOffset, 0); - } - static addIndex(builder, index) { - builder.addFieldInt16(2, index, 0); - } - static addWrapmode(builder, wrapmode) { - builder.addFieldInt16(3, wrapmode, 0); - } - static addFiltermode(builder, filtermode) { - builder.addFieldInt16(4, filtermode, 0); - } - static endCellMap(builder) { - const offset = builder.endObject(); - return offset; - } - static createCellMap(builder, nameOffset, imagePathOffset, index, wrapmode, filtermode) { - CellMap.startCellMap(builder); - CellMap.addName(builder, nameOffset); - CellMap.addImagePath(builder, imagePathOffset); - CellMap.addIndex(builder, index); - CellMap.addWrapmode(builder, wrapmode); - CellMap.addFiltermode(builder, filtermode); - return CellMap.endCellMap(builder); - } - } - class Cell { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsCell(bb, obj) { - return (obj || new Cell()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsCell(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new Cell()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - cellMap(obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new CellMap()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; - } - indexInCellMap() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - x() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - y() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - width() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - height() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - pivotX() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - pivotY() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - u1() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - v1() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - u2() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - v2() { - const offset = this.bb.__offset(this.bb_pos, 28); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; - } - static startCell(builder) { - builder.startObject(13); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addCellMap(builder, cellMapOffset) { - builder.addFieldOffset(1, cellMapOffset, 0); - } - static addIndexInCellMap(builder, indexInCellMap) { - builder.addFieldInt16(2, indexInCellMap, 0); - } - static addX(builder, x) { - builder.addFieldInt16(3, x, 0); - } - static addY(builder, y) { - builder.addFieldInt16(4, y, 0); - } - static addWidth(builder, width) { - builder.addFieldInt16(5, width, 0); - } - static addHeight(builder, height) { - builder.addFieldInt16(6, height, 0); - } - static addPivotX(builder, pivotX) { - builder.addFieldFloat32(7, pivotX, 0); - } - static addPivotY(builder, pivotY) { - builder.addFieldFloat32(8, pivotY, 0); - } - static addU1(builder, u1) { - builder.addFieldFloat32(9, u1, 0); - } - static addV1(builder, v1) { - builder.addFieldFloat32(10, v1, 0); - } - static addU2(builder, u2) { - builder.addFieldFloat32(11, u2, 0); - } - static addV2(builder, v2) { - builder.addFieldFloat32(12, v2, 0); - } - static endCell(builder) { - const offset = builder.endObject(); - return offset; - } - } - class EffectNode { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsEffectNode(bb, obj) { - return (obj || new EffectNode()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsEffectNode(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new EffectNode()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - arrayIndex() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - parentIndex() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - type() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - cellIndex() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - blendType() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numBehavior() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - behaviorType(index) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; - } - behaviorTypeLength() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - behaviorTypeArray() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - behavior(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__union(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; - } - behaviorLength() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startEffectNode(builder) { - builder.startObject(8); - } - static addArrayIndex(builder, arrayIndex) { - builder.addFieldInt16(0, arrayIndex, 0); - } - static addParentIndex(builder, parentIndex) { - builder.addFieldInt16(1, parentIndex, 0); - } - static addType(builder, type) { - builder.addFieldInt16(2, type, 0); - } - static addCellIndex(builder, cellIndex) { - builder.addFieldInt16(3, cellIndex, 0); - } - static addBlendType(builder, blendType) { - builder.addFieldInt16(4, blendType, 0); - } - static addNumBehavior(builder, numBehavior) { - builder.addFieldInt16(5, numBehavior, 0); - } - static addBehaviorType(builder, behaviorTypeOffset) { - builder.addFieldOffset(6, behaviorTypeOffset, 0); - } - static createBehaviorTypeVector(builder, data) { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]); - } - return builder.endVector(); - } - static startBehaviorTypeVector(builder, numElems) { - builder.startVector(1, numElems, 1); - } - static addBehavior(builder, behaviorOffset) { - builder.addFieldOffset(7, behaviorOffset, 0); - } - static createBehaviorVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startBehaviorVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endEffectNode(builder) { - const offset = builder.endObject(); - return offset; - } - static createEffectNode(builder, arrayIndex, parentIndex, type, cellIndex, blendType, numBehavior, behaviorTypeOffset, behaviorOffset) { - EffectNode.startEffectNode(builder); - EffectNode.addArrayIndex(builder, arrayIndex); - EffectNode.addParentIndex(builder, parentIndex); - EffectNode.addType(builder, type); - EffectNode.addCellIndex(builder, cellIndex); - EffectNode.addBlendType(builder, blendType); - EffectNode.addNumBehavior(builder, numBehavior); - EffectNode.addBehaviorType(builder, behaviorTypeOffset); - EffectNode.addBehavior(builder, behaviorOffset); - return EffectNode.endEffectNode(builder); - } - } - class EffectFile { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsEffectFile(bb, obj) { - return (obj || new EffectFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsEffectFile(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new EffectFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - fps() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - isLockRandSeed() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - lockRandSeed() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - layoutScaleX() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - layoutScaleY() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numNodeList() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - effectNode(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? (obj || new EffectNode()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - effectNodeLength() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static startEffectFile(builder) { - builder.startObject(8); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addFps(builder, fps) { - builder.addFieldInt16(1, fps, 0); - } - static addIsLockRandSeed(builder, isLockRandSeed) { - builder.addFieldInt16(2, isLockRandSeed, 0); - } - static addLockRandSeed(builder, lockRandSeed) { - builder.addFieldInt16(3, lockRandSeed, 0); - } - static addLayoutScaleX(builder, layoutScaleX) { - builder.addFieldInt16(4, layoutScaleX, 0); - } - static addLayoutScaleY(builder, layoutScaleY) { - builder.addFieldInt16(5, layoutScaleY, 0); - } - static addNumNodeList(builder, numNodeList) { - builder.addFieldInt16(6, numNodeList, 0); - } - static addEffectNode(builder, effectNodeOffset) { - builder.addFieldOffset(7, effectNodeOffset, 0); - } - static createEffectNodeVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startEffectNodeVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endEffectFile(builder) { - const offset = builder.endObject(); - return offset; - } - static createEffectFile(builder, nameOffset, fps, isLockRandSeed, lockRandSeed, layoutScaleX, layoutScaleY, numNodeList, effectNodeOffset) { - EffectFile.startEffectFile(builder); - EffectFile.addName(builder, nameOffset); - EffectFile.addFps(builder, fps); - EffectFile.addIsLockRandSeed(builder, isLockRandSeed); - EffectFile.addLockRandSeed(builder, lockRandSeed); - EffectFile.addLayoutScaleX(builder, layoutScaleX); - EffectFile.addLayoutScaleY(builder, layoutScaleY); - EffectFile.addNumNodeList(builder, numNodeList); - EffectFile.addEffectNode(builder, effectNodeOffset); - return EffectFile.endEffectFile(builder); - } - } - var PART_FLAG = /* @__PURE__ */ ((PART_FLAG22) => { - PART_FLAG22[PART_FLAG22["INVISIBLE"] = 1] = "INVISIBLE"; - PART_FLAG22[PART_FLAG22["FLIP_H"] = 2] = "FLIP_H"; - PART_FLAG22[PART_FLAG22["FLIP_V"] = 4] = "FLIP_V"; - PART_FLAG22[PART_FLAG22["CELL_INDEX"] = 8] = "CELL_INDEX"; - PART_FLAG22[PART_FLAG22["POSITION_X"] = 16] = "POSITION_X"; - PART_FLAG22[PART_FLAG22["POSITION_Y"] = 32] = "POSITION_Y"; - PART_FLAG22[PART_FLAG22["POSITION_Z"] = 64] = "POSITION_Z"; - PART_FLAG22[PART_FLAG22["PIVOT_X"] = 128] = "PIVOT_X"; - PART_FLAG22[PART_FLAG22["PIVOT_Y"] = 256] = "PIVOT_Y"; - PART_FLAG22[PART_FLAG22["ROTATIONX"] = 512] = "ROTATIONX"; - PART_FLAG22[PART_FLAG22["ROTATIONY"] = 1024] = "ROTATIONY"; - PART_FLAG22[PART_FLAG22["ROTATIONZ"] = 2048] = "ROTATIONZ"; - PART_FLAG22[PART_FLAG22["SCALE_X"] = 4096] = "SCALE_X"; - PART_FLAG22[PART_FLAG22["SCALE_Y"] = 8192] = "SCALE_Y"; - PART_FLAG22[PART_FLAG22["LOCALSCALE_X"] = 16384] = "LOCALSCALE_X"; - PART_FLAG22[PART_FLAG22["LOCALSCALE_Y"] = 32768] = "LOCALSCALE_Y"; - PART_FLAG22[PART_FLAG22["OPACITY"] = 65536] = "OPACITY"; - PART_FLAG22[PART_FLAG22["LOCALOPACITY"] = 131072] = "LOCALOPACITY"; - PART_FLAG22[PART_FLAG22["PARTS_COLOR"] = 262144] = "PARTS_COLOR"; - PART_FLAG22[PART_FLAG22["VERTEX_TRANSFORM"] = 524288] = "VERTEX_TRANSFORM"; - PART_FLAG22[PART_FLAG22["SIZE_X"] = 1048576] = "SIZE_X"; - PART_FLAG22[PART_FLAG22["SIZE_Y"] = 2097152] = "SIZE_Y"; - PART_FLAG22[PART_FLAG22["U_MOVE"] = 4194304] = "U_MOVE"; - PART_FLAG22[PART_FLAG22["V_MOVE"] = 8388608] = "V_MOVE"; - PART_FLAG22[PART_FLAG22["UV_ROTATION"] = 16777216] = "UV_ROTATION"; - PART_FLAG22[PART_FLAG22["U_SCALE"] = 33554432] = "U_SCALE"; - PART_FLAG22[PART_FLAG22["V_SCALE"] = 67108864] = "V_SCALE"; - PART_FLAG22[PART_FLAG22["BOUNDINGRADIUS"] = 134217728] = "BOUNDINGRADIUS"; - PART_FLAG22[PART_FLAG22["MASK"] = 268435456] = "MASK"; - PART_FLAG22[PART_FLAG22["PRIORITY"] = 536870912] = "PRIORITY"; - PART_FLAG22[PART_FLAG22["INSTANCE_KEYFRAME"] = 1073741824] = "INSTANCE_KEYFRAME"; - PART_FLAG22[PART_FLAG22["EFFECT_KEYFRAME"] = 2147483648] = "EFFECT_KEYFRAME"; - return PART_FLAG22; - })(PART_FLAG || {}); - var PART_FLAG2 = /* @__PURE__ */ ((PART_FLAG22) => { - PART_FLAG22[PART_FLAG22["MESHDATA"] = 1] = "MESHDATA"; - return PART_FLAG22; - })(PART_FLAG2 || {}); - class ProjectData { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsProjectData(bb, obj) { - return (obj || new ProjectData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsProjectData(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new ProjectData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static bufferHasIdentifier(bb) { - return bb.__has_identifier("SSFB"); - } - dataId() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - version() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - flags() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - imageBaseDir(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - cells(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? (obj || new Cell()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - cellsLength() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - animePacks(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? (obj || new AnimePackData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - animePacksLength() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - effectFileList(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? (obj || new EffectFile()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - effectFileListLength() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - numCells() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numAnimePacks() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - numEffectFileList() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - static startProjectData(builder) { - builder.startObject(10); - } - static addDataId(builder, dataId) { - builder.addFieldInt32(0, dataId, 0); - } - static addVersion(builder, version) { - builder.addFieldInt32(1, version, 0); - } - static addFlags(builder, flags) { - builder.addFieldInt32(2, flags, 0); - } - static addImageBaseDir(builder, imageBaseDirOffset) { - builder.addFieldOffset(3, imageBaseDirOffset, 0); - } - static addCells(builder, cellsOffset) { - builder.addFieldOffset(4, cellsOffset, 0); - } - static createCellsVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startCellsVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addAnimePacks(builder, animePacksOffset) { - builder.addFieldOffset(5, animePacksOffset, 0); - } - static createAnimePacksVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startAnimePacksVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addEffectFileList(builder, effectFileListOffset) { - builder.addFieldOffset(6, effectFileListOffset, 0); - } - static createEffectFileListVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startEffectFileListVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addNumCells(builder, numCells) { - builder.addFieldInt16(7, numCells, 0); - } - static addNumAnimePacks(builder, numAnimePacks) { - builder.addFieldInt16(8, numAnimePacks, 0); - } - static addNumEffectFileList(builder, numEffectFileList) { - builder.addFieldInt16(9, numEffectFileList, 0); - } - static endProjectData(builder) { - const offset = builder.endObject(); - return offset; - } - static finishProjectDataBuffer(builder, offset) { - builder.finish(offset, "SSFB"); - } - static finishSizePrefixedProjectDataBuffer(builder, offset) { - builder.finish(offset, "SSFB", true); - } - static createProjectData(builder, dataId, version, flags, imageBaseDirOffset, cellsOffset, animePacksOffset, effectFileListOffset, numCells, numAnimePacks, numEffectFileList) { - ProjectData.startProjectData(builder); - ProjectData.addDataId(builder, dataId); - ProjectData.addVersion(builder, version); - ProjectData.addFlags(builder, flags); - ProjectData.addImageBaseDir(builder, imageBaseDirOffset); - ProjectData.addCells(builder, cellsOffset); - ProjectData.addAnimePacks(builder, animePacksOffset); - ProjectData.addEffectFileList(builder, effectFileListOffset); - ProjectData.addNumCells(builder, numCells); - ProjectData.addNumAnimePacks(builder, numAnimePacks); - ProjectData.addNumEffectFileList(builder, numEffectFileList); - return ProjectData.endProjectData(builder); - } - } - class userDataInteger { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - integer() { - return this.bb.readInt32(this.bb_pos); - } - static sizeOf() { - return 4; - } - static createuserDataInteger(builder, integer) { - builder.prep(4, 4); - builder.writeInt32(integer); - return builder.offset(); - } - } - class userDataPoint { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - x() { - return this.bb.readInt32(this.bb_pos); - } - y() { - return this.bb.readInt32(this.bb_pos + 4); - } - static sizeOf() { - return 8; - } - static createuserDataPoint(builder, x, y) { - builder.prep(4, 8); - builder.writeInt32(y); - builder.writeInt32(x); - return builder.offset(); - } - } - class userDataRect { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - x() { - return this.bb.readInt32(this.bb_pos); - } - y() { - return this.bb.readInt32(this.bb_pos + 4); - } - w() { - return this.bb.readInt32(this.bb_pos + 8); - } - h() { - return this.bb.readInt32(this.bb_pos + 12); - } - static sizeOf() { - return 16; - } - static createuserDataRect(builder, x, y, w, h) { - builder.prep(4, 16); - builder.writeInt32(h); - builder.writeInt32(w); - builder.writeInt32(y); - builder.writeInt32(x); - return builder.offset(); - } - } - class userDataString { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsuserDataString(bb, obj) { - return (obj || new userDataString()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsuserDataString(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); - return (obj || new userDataString()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - length() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - data(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - static startuserDataString(builder) { - builder.startObject(2); - } - static addLength(builder, length) { - builder.addFieldInt32(0, length, 0); - } - static addData(builder, dataOffset) { - builder.addFieldOffset(1, dataOffset, 0); - } - static enduserDataString(builder) { - const offset = builder.endObject(); - return offset; - } - static createuserDataString(builder, length, dataOffset) { - userDataString.startuserDataString(builder); - userDataString.addLength(builder, length); - userDataString.addData(builder, dataOffset); - return userDataString.enduserDataString(builder); - } - } - let Utils$1 = class Utils { - static getProjectData(bytes) { - const buf = new ByteBuffer(bytes); - return ProjectData.getRootAsProjectData(buf); - } - }; - class Utils2 { - static getProjectData(bytes) { - return Utils$1.getProjectData(bytes); - } - } - class Player { - constructor(ssfbData, animePackName = null, animeName = null) { - this.curAnimePackName = null; - this.curAnimeName = null; - this.curAnimation = null; - this.curAnimePackData = null; - this._animePackIdx = -1; - this._parentIndex = []; - this._prio2index = []; - this.userData = []; - this.frameDataCache = null; - this.currentCachedFrameNumber = -1; - this.defaultFrameMap = []; - this._uint32 = new Uint32Array(1); - this._float32 = new Float32Array(this._uint32.buffer); - if (Object.prototype.hasOwnProperty.call(ssfbData, "bb")) { - this._fbObj = ssfbData; - } else { - this._fbObj = Utils2.getProjectData(ssfbData); - } - if (animePackName !== null && animeName !== null) { - this.Setup(animePackName, animeName); - } - } - get fbObj() { - return this._fbObj; - } - get animePackName() { - return this.curAnimePackName; - } - get animeName() { - return this.curAnimeName; - } - get animePackIdx() { - return this._animePackIdx; - } - get animePackData() { - return this.curAnimePackData; - } - get animationData() { - return this.curAnimation; - } - get parentIndex() { - return this._parentIndex; - } - get prio2index() { - return this._prio2index; - } - /** - * Setup - * @param {string} animePackName - The name of animePack(SSAE). - * @param {string} animeName - The name of animation. - */ - Setup(animePackName, animeName) { - this.clearCaches(); - const animePacksLength = this._fbObj.animePacksLength(); - let found = false; - for (let i = 0; i < animePacksLength; i++) { - if (this._fbObj.animePacks(i).name() === animePackName) { - let j; - const animationsLength = this._fbObj.animePacks(i).animationsLength(); - for (j = 0; j < animationsLength; j++) { - if (this._fbObj.animePacks(i).animations(j).name() === animeName) { - this.curAnimePackName = animePackName; - this.curAnimeName = animeName; - this.curAnimePackData = this._fbObj.animePacks(i); - this.curAnimation = this.curAnimePackData.animations(j); - found = true; - break; - } - } - if (!found) { - continue; - } - const defaultDataLength = this.curAnimation.defaultDataLength(); - for (let j2 = 0; j2 < defaultDataLength; j2++) { - const curDefaultData = this.curAnimation.defaultData(j2); - this.defaultFrameMap[curDefaultData.index()] = curDefaultData; - } - this._animePackIdx = i; - const partsLength = this.curAnimePackData.partsLength(); - this._parentIndex = new Array(partsLength); - for (j = 0; j < partsLength; j++) { - const index = this.curAnimePackData.parts(j).index(); - this._parentIndex[index] = this._fbObj.animePacks(i).parts(j).parentIndex(); - } - } - } - if (!found) { - throw Error("not found animePackName: " + animePackName + " animeName: " + animeName); - } - } - clearCaches() { - this._prio2index = []; - this.userData = []; - this.frameDataCache = null; - this.currentCachedFrameNumber = -1; - this.defaultFrameMap = []; - } - /** - * ユーザーデータコールバックの設定 - * @param fn - * @constructor - * - * ユーザーデータのフォーマット - * data = [[d0,d1,...,d10],[da0,da1,...,da10],...]) - * data.length : 当該フレームでユーザーデータの存在するパーツ(レイヤー)数 - * d0 : パーツ(レイヤー)番号 - * d1 : 有効データビット(&1:int, &2:rect(int*4), &4:pos(int*2), &8:string) - * d2 : int(int) - * d3 : rect0(int) - * d4 : rect1(int) - * d5 : rect2(int) - * d6 : rect3(int) - * d7 : pos0(int) - * d8 : pos1(int) - * d9 : string.length(int) - * d10: string(string) - * - */ - /** - * ユーザーデータの存在チェック - * @param {number} frameNumber - フレーム番号 - * @return {boolean} - 存在するかどうか - */ - HaveUserData(frameNumber) { - if (this.userData[frameNumber] === null) { - return false; - } - if (this.userData[frameNumber] !== void 0) { - return true; - } - for (let k = 0; k < this.curAnimation.userDataLength(); k++) { - if (frameNumber === this.curAnimation.userData(k).frameIndex()) { - this.userData[frameNumber] = this.curAnimation.userData(k); - return true; - } - } - this.userData[frameNumber] = null; - return false; - } - /** - * ユーザーデータの取得 - * @param {number} frameNumber - フレーム番号 - * @return {array} - ユーザーデータ - */ - GetUserData(frameNumber) { - if (this.HaveUserData(frameNumber) === false) { - return; - } - const framedata = this.userData[frameNumber]; - const layers = framedata.dataLength(); - let id = 0; - let data = []; - for (let i = 0; i < layers; i++) { - const bit = framedata.data(i).flags(); - const partsID = framedata.data(i).arrayIndex(); - let d_int = null; - let d_rect_x = null; - let d_rect_y = null; - let d_rect_w = null; - let d_rect_h = null; - let d_pos_x = null; - let d_pos_y = null; - let d_string_length = null; - let d_string = null; - if (bit & 1) { - d_int = framedata.data(i).data(id, new userDataInteger()).integer(); - id++; - } - if (bit & 2) { - d_rect_x = framedata.data(i).data(id, new userDataRect()).x(); - d_rect_y = framedata.data(i).data(id, new userDataRect()).y(); - d_rect_w = framedata.data(i).data(id, new userDataRect()).w(); - d_rect_h = framedata.data(i).data(id, new userDataRect()).h(); - id++; - } - if (bit & 4) { - d_pos_x = framedata.data(i).data(id, new userDataPoint()).x(); - d_pos_y = framedata.data(i).data(id, new userDataPoint()).y(); - id++; - } - if (bit & 8) { - d_string_length = framedata.data(i).data(id, new userDataString()).length(); - d_string = framedata.data(i).data(id, new userDataString()).data(); - id++; - } - data.push([partsID, bit, d_int, d_rect_x, d_rect_y, d_rect_w, d_rect_h, d_pos_x, d_pos_y, d_string_length, d_string]); - } - return data; - } - /** - * int型からfloat型に変換する - * @return {floatView[0]} - float型に変換したデータ - */ - I2F(i) { - this._uint32[0] = i; - return this._float32[0]; - } - /** - * 1フレーム分のデータを取得する(未設定項目はデフォルト) - * [注意]現verでは未対応項目があると正常動作しない可能性があります - * @param {number} frameNumber - フレーム番号 - */ - GetFrameData(frameNumber) { - if (this.currentCachedFrameNumber === frameNumber && this.frameDataCache) { - return this.frameDataCache; - } - const layers = this.curAnimation.defaultDataLength(); - let frameData = new Array(layers); - this._prio2index = new Array(layers); - const curFrameData = this.curAnimation.frameData(frameNumber); - for (let i = 0; i < layers; i++) { - const curPartState = curFrameData.states(i); - const index = curPartState.index(); - let f1 = curPartState.flag1(); - let f2 = curPartState.flag2(); - let fd = this.GetDefaultDataByIndex(index); - fd.flag1 = f1; - fd.flag2 = f2; - let id = 0; - if (f1 & PART_FLAG.INVISIBLE) fd.f_hide = true; - if (f1 & PART_FLAG.FLIP_H) fd.f_flipH = true; - if (f1 & PART_FLAG.FLIP_V) fd.f_flipV = true; - if (f1 & PART_FLAG.CELL_INDEX) fd.cellIndex = curPartState.data(id++); - if (f1 & PART_FLAG.POSITION_X) fd.positionX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.POSITION_Y) fd.positionY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.POSITION_Z) id++; - if (f1 & PART_FLAG.PIVOT_X) fd.pivotX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.PIVOT_Y) fd.pivotY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.ROTATIONX) id++; - if (f1 & PART_FLAG.ROTATIONY) id++; - if (f1 & PART_FLAG.ROTATIONZ) fd.rotationZ = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.SCALE_X) fd.scaleX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.SCALE_Y) fd.scaleY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.LOCALSCALE_X) fd.localscaleX = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.LOCALSCALE_Y) fd.localscaleY = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.OPACITY) fd.opacity = curPartState.data(id++); - if (f1 & PART_FLAG.LOCALOPACITY) fd.localopacity = curPartState.data(id++); - if (f1 & PART_FLAG.SIZE_X) fd.size_X = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.SIZE_Y) fd.size_Y = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.U_MOVE) fd.uv_move_X = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.V_MOVE) fd.uv_move_Y = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.UV_ROTATION) fd.uv_rotation = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.U_SCALE) fd.uv_scale_X = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.V_SCALE) fd.uv_scale_Y = this.I2F(curPartState.data(id++)); - if (f1 & PART_FLAG.BOUNDINGRADIUS) id++; - if (f1 & PART_FLAG.MASK) fd.masklimen = curPartState.data(id++); - if (f1 & PART_FLAG.PRIORITY) fd.priority = curPartState.data(id++); - if (f1 & PART_FLAG.INSTANCE_KEYFRAME) { - fd.instanceValue_curKeyframe = curPartState.data(id++); - fd.instanceValue_startFrame = curPartState.data(id++); - fd.instanceValue_endFrame = curPartState.data(id++); - fd.instanceValue_loopNum = curPartState.data(id++); - fd.instanceValue_speed = this.I2F(curPartState.data(id++)); - fd.instanceValue_loopflag = curPartState.data(id++); - } - if (f1 & PART_FLAG.EFFECT_KEYFRAME) { - fd.effectValue_curKeyframe = curPartState.data(id++); - fd.effectValue_startTime = curPartState.data(id++); - fd.effectValue_speed = this.I2F(curPartState.data(id++)); - fd.effectValue_loopflag = curPartState.data(id++); - } - if (f1 & PART_FLAG.VERTEX_TRANSFORM) { - fd.f_mesh = true; - const f = fd.i_transformVerts = curPartState.data(id++); - if (f & 1) { - fd.u00 = this.I2F(curPartState.data(id++)); - fd.v00 = this.I2F(curPartState.data(id++)); - } - if (f & 2) { - fd.u01 = this.I2F(curPartState.data(id++)); - fd.v01 = this.I2F(curPartState.data(id++)); - } - if (f & 4) { - fd.u10 = this.I2F(curPartState.data(id++)); - fd.v10 = this.I2F(curPartState.data(id++)); - } - if (f & 8) { - fd.u11 = this.I2F(curPartState.data(id++)); - fd.v11 = this.I2F(curPartState.data(id++)); - } - } - if (f1 & PART_FLAG.PARTS_COLOR) { - const f = curPartState.data(id++); - fd.colorBlendType = f & 255; - fd.useColorMatrix = fd.colorBlendType !== 1; - if (f & 4096) { - fd.colorRate = this.I2F(curPartState.data(id++)); - const bf = curPartState.data(id++); - const bf2 = curPartState.data(id++); - fd.colorArgb32 = bf << 16 | bf2; - fd.partsColorARGB = fd.colorArgb32 >>> 0; - if (fd.colorBlendType === 1) { - fd.tint = fd.colorArgb32 & 16777215; - } - } - } - if (f2 & PART_FLAG2.MESHDATA) { - const meshUv = this.curAnimation.meshsDataUv(index); - fd.meshIsBind = meshUv.uv(0); - fd.meshNum = meshUv.uv(1); - let mp = new Float32Array(fd.meshNum * 3); - for (let idx = 0; idx < fd.meshNum; idx++) { - const mx = this.I2F(curPartState.data(id++)); - const my = this.I2F(curPartState.data(id++)); - const mz = this.I2F(curPartState.data(id++)); - mp[idx * 3 + 0] = mx; - mp[idx * 3 + 1] = my; - mp[idx * 3 + 2] = mz; - } - fd.meshDataPoint = mp; - } - frameData[index] = fd; - this._prio2index[i] = index; - if (this.curAnimePackData.parts(index).type() === 0) { - frameData[index].cellIndex = -2; - } - } - this.frameDataCache = frameData; - this.currentCachedFrameNumber = frameNumber; - return frameData; - } - /** - * デフォルトデータを取得する - * @param {number} id - パーツ(レイヤー)ID - * @return {array} - データ - */ - GetDefaultDataByIndex(id) { - const curDefaultData = this.defaultFrameMap[id]; - let dfd = new FrameData(); - dfd.index = curDefaultData.index(); - dfd.lowflag = curDefaultData.lowflag(); - dfd.highflag = curDefaultData.highflag(); - dfd.priority = curDefaultData.priority(); - dfd.cellIndex = curDefaultData.cellIndex(); - dfd.opacity = curDefaultData.opacity(); - dfd.localopacity = curDefaultData.localopacity(); - dfd.masklimen = curDefaultData.masklimen(); - dfd.positionX = curDefaultData.positionX(); - dfd.positionY = curDefaultData.positionY(); - dfd.pivotX = curDefaultData.pivotX(); - dfd.pivotY = curDefaultData.pivotY(); - dfd.rotationX = curDefaultData.rotationX(); - dfd.rotationY = curDefaultData.rotationY(); - dfd.rotationZ = curDefaultData.rotationZ(); - dfd.scaleX = curDefaultData.scaleX(); - dfd.scaleY = curDefaultData.scaleY(); - dfd.localscaleX = curDefaultData.localscaleX(); - dfd.localscaleY = curDefaultData.localscaleY(); - dfd.size_X = curDefaultData.sizeX(); - dfd.size_Y = curDefaultData.sizeY(); - dfd.uv_move_X = curDefaultData.uvMoveX(); - dfd.uv_move_Y = curDefaultData.uvMoveY(); - dfd.uv_rotation = curDefaultData.uvRotation(); - dfd.uv_scale_X = curDefaultData.uvScaleX(); - dfd.uv_scale_Y = curDefaultData.uvScaleY(); - dfd.boundingRadius = curDefaultData.boundingRadius(); - dfd.instanceValue_curKeyframe = curDefaultData.instanceValueCurKeyframe(); - dfd.instanceValue_endFrame = curDefaultData.instanceValueEndFrame(); - dfd.instanceValue_startFrame = curDefaultData.instanceValueStartFrame(); - dfd.instanceValue_loopNum = curDefaultData.instanceValueLoopNum(); - dfd.instanceValue_speed = curDefaultData.instanceValueSpeed(); - dfd.instanceValue_loopflag = curDefaultData.instanceValueLoopflag(); - dfd.effectValue_curKeyframe = curDefaultData.effectValueCurKeyframe(); - dfd.effectValue_startTime = curDefaultData.effectValueStartTime(); - dfd.effectValue_speed = curDefaultData.effectValueSpeed(); - dfd.effectValue_loopflag = curDefaultData.effectValueLoopflag(); - dfd.f_hide = false; - dfd.f_flipH = false; - dfd.f_flipV = false; - dfd.f_mesh = false; - dfd.i_transformVerts = 0; - dfd.u00 = 0; - dfd.v00 = 0; - dfd.u01 = 0; - dfd.v01 = 0; - dfd.u10 = 0; - dfd.v10 = 0; - dfd.u11 = 0; - dfd.v11 = 0; - dfd.useColorMatrix = false; - dfd.colorBlendType = 0; - dfd.colorRate = 0; - dfd.colorArgb32 = 0; - dfd.meshIsBind = 0; - dfd.meshNum = 0; - dfd.meshDataPoint = null; - dfd.flag1 = 0; - dfd.flag2 = 0; - dfd.partsColorARGB = 0; - return dfd; - } - /** - * 親を遡って不透明度を継承する - * @param {number} opacity - 透明度 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {number} - 透明度 - */ - InheritOpacity(opacity, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - opacity = data.opacity / 255; - if (this._parentIndex[partId] >= 0) { - opacity = this.InheritOpacity(opacity, this._parentIndex[partId], frameNumber); - } - return opacity; - } - /** - * 親を遡って座標変換する(ローカルアトリビュート適用) - * @param {array} verts - 頂点情報配列 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformVertsLocal(verts, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - for (let i = 0; i < verts.length / 2; i++) { - let x = verts[i * 2]; - let y = verts[i * 2 + 1]; - if (data.i_transformVerts & 1 && i === 1) { - x += data.u00; - y -= data.v00; - } - if (data.i_transformVerts & 2 && i === 2) { - x += data.u01; - y -= data.v01; - } - if (data.i_transformVerts & 4 && i === 3) { - x += data.u10; - y -= data.v10; - } - if (data.i_transformVerts & 8 && i === 4) { - x += data.u11; - y -= data.v11; - } - x *= data.scaleX * data.localscaleX; - y *= data.scaleY * data.localscaleY; - verts[i * 2] = cos * x - sin * y + data.positionX; - verts[i * 2 + 1] = sin * x + cos * y - data.positionY; - if (data.f_flipH) { - verts[i * 2] = verts[0] * 2 - verts[i * 2]; - } - if (data.f_flipV) { - verts[i * 2 + 1] = verts[1] * 2 - verts[i * 2 + 1]; - } - } - if (this._parentIndex[partId] >= 0) { - verts = this.TransformVerts(verts, this._parentIndex[partId], frameNumber); - } - return verts; - } - /** - * 親を遡って座標変換する(ローカルアトリビュート適用) - * @param {array} verts - 頂点情報配列 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformMeshVertsLocal(verts, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - for (let i = 0; i < verts.length / 2; i++) { - let x = verts[i * 2]; - let y = verts[i * 2 + 1]; - x *= data.scaleX * data.localscaleX; - y *= data.scaleY * data.localscaleY; - verts[i * 2] = cos * x - sin * y + data.positionX; - verts[i * 2 + 1] = sin * x + cos * y - data.positionY; - } - if (this._parentIndex[partId] >= 0) { - verts = this.TransformVerts(verts, this._parentIndex[partId], frameNumber); - } - return verts; - } - /** - * 親を遡って座標変換する(ローカルアトリビュート適用) - * @param {array} pos - 頂点情報配列 - * @param {number} partId - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformPositionLocal(pos, partId, frameNumber) { - const data = this.GetFrameData(frameNumber)[partId]; - pos[4] += -data.rotationZ; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - const x = pos[0] * data.scaleX * data.localscaleX; - const y = pos[1] * data.scaleY * data.localscaleY; - pos[2] *= data.scaleX * data.localscaleX; - pos[3] *= data.scaleY * data.localscaleY; - pos[0] = cos * x - sin * y + data.positionX; - pos[1] = sin * x + cos * y - data.positionY; - if (this._parentIndex[partId] >= 0) { - pos = this.TransformPosition(pos, this._parentIndex[partId], frameNumber); - } - return pos; - } - /** - * 5頂点の中間点を求める - * @param {number} cx - 元の中心点 - * @param {number} cy - 元の中心点 - * @param {number} LUx - 左上座標 - * @param {number} LUy - 左上座標 - * @param {number} RUx - 右上座標 - * @param {number} RUy - 右上座標 - * @param {number} LDx - 左下座標 - * @param {number} LDy - 左下座標 - * @param {number} RDx - 右下座標 - * @param {number} RDy - 右下座標 - * @param vec2 - * @return {array} vec2 - 4頂点から算出した中心点の座標 - */ - static CoordinateGetDiagonalIntersection(cx, cy, LUx, LUy, RUx, RUy, LDx, LDy, RDx, RDy, vec2) { - const c1 = (LDy - RUy) * (LDx - LUx) - (LDx - RUx) * (LDy - LUy); - const c2 = (RDx - LUx) * (LDy - LUy) - (RDy - LUy) * (LDx - LUx); - const c3 = (RDx - LUx) * (LDy - RUy) - (RDy - LUy) * (LDx - RUx); - if (c3 <= 0 && c3 >= 0) return vec2; - const ca = c1 / c3; - const cb = c2 / c3; - if (0 <= ca && 1 >= ca && (0 <= cb && 1 >= cb)) { - cx = LUx + ca * (RDx - LUx); - cy = LUy + ca * (RDy - LUy); - } - vec2[0] = cx; - vec2[1] = cy; - return vec2; - } - /** - * 親を遡って座標変換する - * @param {array} verts - 頂点情報配列 - * @param {number} id - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformVerts(verts, id, frameNumber) { - const data = this.GetFrameData(frameNumber)[id]; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - for (let i = 0; i < verts.length / 2; i++) { - let x = verts[i * 2]; - let y = verts[i * 2 + 1]; - x *= data.scaleX; - y *= data.scaleY; - verts[i * 2] = cos * x - sin * y + data.positionX; - verts[i * 2 + 1] = sin * x + cos * y - data.positionY; - if (data.f_flipH) { - verts[i * 2] = verts[0] * 2 - verts[i * 2]; - } - if (data.f_flipV) { - verts[i * 2 + 1] = verts[1] * 2 - verts[i * 2 + 1]; - } - } - if (this._parentIndex[id] >= 0) { - verts = this.TransformVerts(verts, this._parentIndex[id], frameNumber); - } - return verts; - } - /** - * 親を遡って座標変換する - * @param {array} pos - 頂点情報配列 - * @param {number} id - パーツ(レイヤー)ID - * @param {number} frameNumber - フレーム番号 - * @return {array} - 変換された頂点座標配列 - */ - TransformPosition(pos, id, frameNumber) { - const data = this.GetFrameData(frameNumber)[id]; - pos[4] += -data.rotationZ; - const rz = -data.rotationZ * Math.PI / 180; - const cos = Math.cos(rz); - const sin = Math.sin(rz); - const x = pos[0] * data.scaleX; - const y = pos[1] * data.scaleY; - pos[2] *= data.scaleX; - pos[3] *= data.scaleY; - pos[0] = cos * x - sin * y + data.positionX; - pos[1] = sin * x + cos * y - data.positionY; - if (this._parentIndex[id] >= 0) { - pos = this.TransformPosition(pos, this._parentIndex[id], frameNumber); - } - return pos; - } - /** - * 矩形セルメッシュの頂点情報のみ取得 - * @param {ssfblib.Cell} cell - セル - * @param {array} data - アニメーションフレームデータ - * @param verts - * @return {array} - 頂点情報配列 - */ - static GetVerts(cell, data, verts) { - const w = data.size_X / 2; - const h = data.size_Y / 2; - const px = data.size_X * -(data.pivotX + cell.pivotX()); - const py = data.size_Y * (data.pivotY + cell.pivotY()); - verts.set([px, py, px - w, py - h, px + w, py - h, px - w, py + h, px + w, py + h]); - return verts; - } - /** - * 矩形セルメッシュの頂点情報のみ取得 - * @param {ssfblib.Cell} cell - セル - * @param {array} data - アニメーションフレームデータ - * @param verts - * @return {array} - 頂点情報配列 - */ - static GetMeshVerts(cell, data, verts) { - for (let idx = 0; idx < data.meshNum; idx++) { - verts[ - idx * 2 - /*+ 0*/ - ] = data.meshDataPoint[ - idx * 3 - /* + 0 */ - ]; - verts[idx * 2 + 1] = -data.meshDataPoint[idx * 3 + 1]; - } - return verts; - } - static GetDummyVerts() { - return new Float32Array([0, 0, -0.5, -0.5, 0.5, -0.5, -0.5, 0.5, 0.5, 0.5]); - } - } - class PixiResourceLoaderImpl { - constructor() { - this.loader = new loaders.Loader(); - } - load(sspjfile, sspjMap, onComplete) { - for (let key in sspjMap) { - this.loader.add(key, sspjMap[key]); - } - const self = this; - this.loader.load((loader, resources) => { - self.resources = resources; - if (onComplete !== null) { - onComplete(null); - } - }); - } - unload(sspjfile, sspjMap, onComplete) { - this.resources = null; - if (onComplete !== null) { - onComplete(null); - } - } - texture(key) { - console.log(this.resources); - return this.resources[key].texture; - } - } - class SS6ProjectResourceLoader { - constructor() { - this.loader = new PixiResourceLoaderImpl(); - } - load(sspjfile, sspjMap, onComplete) { - return this.loader.load(sspjfile, sspjMap, onComplete); - } - unload(sspjfile, sspjMap, onComplete = null) { - return this.loader.unload(sspjfile, sspjMap, onComplete); - } - texture(key) { - return this.loader.texture(key); - } - } - class SS6Project { - constructor(arg1, arg2, arg3, arg4) { - this.sspjMap = {}; - this.resourceLoader = new SS6ProjectResourceLoader(); - if (typeof arg1 === "string" && arg3 === void 0) { - let ssfbPath = arg1; - this.ssfbPath = ssfbPath; - const index = ssfbPath.lastIndexOf("/"); - this.rootPath = ssfbPath.substring(0, index) + "/"; - this.ssfbFile = ssfbPath.substring(index + 1); - this.onComplete = arg2 === void 0 ? null : arg2; - this.status = 0; - this.LoadFlatBuffersProject(); - } else if (typeof arg2 === "object" && arg2.constructor === Uint8Array) { - this.ssfbPath = null; - this.rootPath = null; - this.ssfbFile = arg1; - let ssfbByte = arg2; - let imageBinaryMap = arg3; - this.onComplete = arg4 === void 0 ? null : arg4; - this.load(ssfbByte, imageBinaryMap); - } - } - getBundle() { - return this.ssfbFile; - } - getTexture(key) { - return this.resourceLoader.texture(key); - } - dispose(callback = null) { - this.resourceLoader.unload(this.getBundle(), this.sspjMap, (error) => { - if (callback !== null) { - callback(); - } - }); - } - /** - * Load json and parse (then, load textures) - */ - LoadFlatBuffersProject() { - const self = this; - fetch(this.ssfbPath, { method: "get" }).then((response) => { - if (response.ok) { - return Promise.resolve(response.arrayBuffer()); - } else { - return Promise.reject(new Error(response.statusText)); - } - }).then((a) => { - self.fbObj = Utils2.getProjectData(new Uint8Array(a)); - self.LoadCellResources(); - }).catch((error) => { - if (this.onComplete !== null) { - this.onComplete(null, error); - } - }); - } - /** - * Load textures - */ - LoadCellResources() { - let ids = []; - this.sspjMap = {}; - for (let i = 0; i < this.fbObj.cellsLength(); i++) { - const cellMap = this.fbObj.cells(i).cellMap(); - const cellMapIndex = cellMap.index(); - if (!ids.some(function(id) { - return id === cellMapIndex; - })) { - ids.push(cellMapIndex); - const name = cellMap.name(); - this.sspjMap[name] = this.rootPath + cellMap.imagePath(); - } - } - const self = this; - this.resourceLoader.load(this.getBundle(), this.sspjMap, (error) => { - if (error === null) { - self.status = 1; - if (self.onComplete !== null) { - self.onComplete(this, null); - } - } else { - if (this.onComplete !== null) { - this.onComplete(null, error); - } - } - }); - } - load(bytes, imageBinaryMap) { - this.fbObj = Utils2.getProjectData(bytes); - let assetMap = {}; - for (let imageName in imageBinaryMap) { - const binary = imageBinaryMap[imageName]; - let b = ""; - const len = binary.byteLength; - for (let i = 0; i < len; i++) { - b += String.fromCharCode(binary[i]); - } - assetMap[imageName] = "data:image/png;base64," + btoa(b); - } - const self = this; - this.resourceLoader.load(this.getBundle(), assetMap, (error) => { - if (error === null) { - self.status = 1; - if (self.onComplete !== null) { - self.onComplete(this, null); - } - } else { - if (this.onComplete !== null) { - this.onComplete(null, error); - } - } - }); - } - } - class SS6PlayerInstanceKeyParam { - constructor() { - this.refStartframe = 0; - this.refEndframe = 0; - this.refSpeed = 1; - this.refloopNum = 0; - this.infinity = false; - this.reverse = false; - this.pingpong = false; - this.independent = false; - } - } - class SS6Player extends display.Container { - /** - * SS6Player (extends PIXI.Container) - * @constructor - * @param {SS6Project} ss6project - SS6Project that contains animations. - * @param {string} animePackName - The name of animePack(SSAE). - * @param {string} animeName - The name of animation. - */ - constructor(ss6project, animePackName = null, animeName = null) { - super(); - this.liveFrame = []; - this.colorMatrixFilterCache = []; - this.parentAlpha = 1; - this.prevCellID = []; - this.prevPartObject = []; - this.substituteOverWrite = []; - this.substituteKeyParam = []; - this.alphaBlendType = []; - this.defaultColorFilter = new filterColorMatrix.ColorMatrixFilter(); - this._instancePos = new Float32Array(5); - this._CoordinateGetDiagonalIntersectionVec2 = new Float32Array(2); - this.ss6project = ss6project; - this.playerLib = new Player(ss6project.fbObj, animePackName, animeName); - this.parentAlpha = 1; - if (animePackName !== null && animeName !== null) { - this.Setup(animePackName, animeName); - } - this.on("added", (...args) => { - ticker.Ticker.shared.add(this.Update, this); - }, this); - this.on("removed", (...args) => { - ticker.Ticker.shared.remove(this.Update, this); - }, this); - } - get startFrame() { - return this._startFrame; - } - get endFrame() { - return this._endFrame; - } - get totalFrame() { - return this.playerLib.animationData.totalFrames(); - } - get fps() { - return this.playerLib.animationData.fps(); - } - get frameNo() { - return Math.floor(this._currentFrame); - } - set loop(loop) { - this._loops = loop; - } - get loop() { - return this._loops; - } - get isPlaying() { - return this._isPlaying; - } - get isPausing() { - return this._isPausing; - } - get animePackName() { - return this.playerLib.animePackName; - } - get animeName() { - return this.playerLib.animeName; - } - /** - * Setup - * @param {string} animePackName - The name of animePack(SSAE). - * @param {string} animeName - The name of animation. - */ - Setup(animePackName, animeName) { - this.playerLib.Setup(animePackName, animeName); - this.clearCaches(); - const animePackData = this.playerLib.animePackData; - const partsLength = animePackData.partsLength(); - this.prevCellID = new Array(partsLength); - this.prevPartObject = new Array(partsLength); - this.substituteOverWrite = new Array(partsLength); - this.substituteKeyParam = new Array(partsLength); - for (let j = 0; j < partsLength; j++) { - const index = animePackData.parts(j).index(); - this.prevCellID[index] = -1; - this.prevPartObject[index] = null; - this.substituteOverWrite[index] = null; - this.substituteKeyParam[index] = null; - } - this.alphaBlendType = this.GetPartsBlendMode(); - this._isPlaying = false; - this._isPausing = true; - this._startFrame = this.playerLib.animationData.startFrames(); - this._endFrame = this.playerLib.animationData.endFrames(); - this._currentFrame = this.playerLib.animationData.startFrames(); - this.nextFrameTime = 0; - this._loops = -1; - this.skipEnabled = true; - this.updateInterval = 1e3 / this.playerLib.animationData.fps(); - this.playDirection = 1; - this.onUserDataCallback = null; - this.playEndCallback = null; - this.parentAlpha = 1; - } - clearCaches() { - this.liveFrame = []; - this.colorMatrixFilterCache = []; - } - Update(delta) { - this.UpdateInternal(delta); - } - /** - * Update is called PIXI.ticker - * @param {number} delta - expected 1 - */ - UpdateInternal(delta, rewindAfterReachingEndFrame = true) { - const elapsedTime = ticker.Ticker.shared.elapsedMS; - const toNextFrame = this._isPlaying && !this._isPausing; - if (toNextFrame && this.updateInterval !== 0) { - this.nextFrameTime += elapsedTime; - if (this.nextFrameTime >= this.updateInterval) { - let playEndFlag = false; - const step = this.nextFrameTime / this.updateInterval; - this.nextFrameTime -= this.updateInterval * step; - let s = this.skipEnabled ? step * this.playDirection : this.playDirection; - let next = this._currentFrame + s; - let nextFrameNo = Math.floor(next); - let nextFrameDecimal = next - nextFrameNo; - let currentFrameNo = Math.floor(this._currentFrame); - if (this.playDirection >= 1) { - for (let c = nextFrameNo - currentFrameNo; c; c--) { - let incFrameNo = currentFrameNo + 1; - if (incFrameNo > this._endFrame) { - if (this._loops === -1) { - incFrameNo = this._startFrame; - } else { - this._loops--; - playEndFlag = true; - if (this._loops === 0) { - this._isPlaying = false; - incFrameNo = rewindAfterReachingEndFrame ? this._startFrame : this._endFrame; - break; - } else { - incFrameNo = this._startFrame; - } - } - } - currentFrameNo = incFrameNo; - if (this._isPlaying) { - if (this.playerLib.HaveUserData(currentFrameNo)) { - if (this.onUserDataCallback !== null) { - this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); - } - } - } - } - } - if (this.playDirection <= -1) { - for (let c = currentFrameNo - nextFrameNo; c; c--) { - let decFrameNo = currentFrameNo - 1; - if (decFrameNo < this._startFrame) { - if (this._loops === -1) { - decFrameNo = this._endFrame; - } else { - this._loops--; - playEndFlag = true; - if (this._loops === 0) { - this._isPlaying = false; - decFrameNo = rewindAfterReachingEndFrame ? this._endFrame : this._startFrame; - break; - } else { - decFrameNo = this._endFrame; - } - } - } - currentFrameNo = decFrameNo; - if (this._isPlaying) { - if (this.playerLib.HaveUserData(currentFrameNo)) { - if (this.onUserDataCallback !== null) { - this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); - } - } - } - } - } - this._currentFrame = currentFrameNo + nextFrameDecimal; - if (playEndFlag) { - if (this.playEndCallback !== null) { - this.playEndCallback(this); - } - } - this.SetFrameAnimation(Math.floor(this._currentFrame), step); - } - } else { - this.SetFrameAnimation(Math.floor(this._currentFrame)); - } - } - /** - * アニメーションの速度を設定する (deprecated この関数は削除される可能性があります) - * @param {number} fps - アニメーション速度(frame per sec.) - * @param {boolean} _skipEnabled - 描画更新が間に合わないときにフレームをスキップするかどうか - */ - SetAnimationFramerate(fps, _skipEnabled = true) { - if (fps <= 0) return; - this.updateInterval = 1e3 / fps; - this.skipEnabled = _skipEnabled; - } - /** - * アニメーションの速度を設定する - * @param {number} fpsRate - アニメーション速度(設定値に対する乗率)負数設定で逆再生 - * @param {boolean} _skipEnabled - 描画更新が間に合わないときにフレームをスキップするかどうか - */ - SetAnimationSpeed(fpsRate, _skipEnabled = true) { - if (fpsRate === 0) return; - this.playDirection = fpsRate > 0 ? 1 : -1; - this.updateInterval = 1e3 / (this.playerLib.animationData.fps() * fpsRate * this.playDirection); - this.skipEnabled = _skipEnabled; - } - /** - * アニメーション再生設定 - * @param {number} _startframe - 開始フレーム番号(マイナス設定でデフォルト値を変更しない) - * @param {number} _endframe - 終了フレーム番号(マイナス設定でデフォルト値を変更しない) - * @param {number} _loops - ループ回数(ゼロもしくはマイナス設定で無限ループ) - */ - SetAnimationSection(_startframe = -1, _endframe = -1, _loops = -1) { - if (_startframe >= 0 && _startframe < this.playerLib.animationData.totalFrames()) { - this._startFrame = _startframe; - } - if (_endframe >= 0 && _endframe < this.playerLib.animationData.totalFrames()) { - this._endFrame = _endframe; - } - if (_loops > 0) { - this._loops = _loops; - } else { - this._loops = -1; - } - this._currentFrame = this.playDirection > 0 ? this._startFrame : this._endFrame; - } - /** - * アニメーション再生を開始する - */ - Play(frameNo) { - this._isPlaying = true; - this._isPausing = false; - let currentFrame = this.playDirection > 0 ? this._startFrame : this._endFrame; - if (frameNo && typeof frameNo === "number") { - currentFrame = frameNo; - } - this._currentFrame = currentFrame; - this.resetLiveFrame(); - const currentFrameNo = Math.floor(this._currentFrame); - this.SetFrameAnimation(currentFrameNo); - if (this.playerLib.HaveUserData(currentFrameNo)) { - if (this.onUserDataCallback !== null) { - this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); - } - } - } - /** - * アニメーション再生を一時停止する - */ - Pause() { - this._isPausing = true; - } - /** - * アニメーション再生を再開する - */ - Resume() { - this._isPausing = false; - } - /** - * アニメーションを停止する - * @constructor - */ - Stop() { - this._isPlaying = false; - } - /** - * アニメーション再生を位置(フレーム)を設定する - */ - SetFrame(frame) { - this._currentFrame = frame; - } - NextFrame() { - const currentFrame = Math.floor(this._currentFrame); - const endFrame = this.endFrame; - if (currentFrame === endFrame) { - return; - } - this.SetFrame(currentFrame + 1); - } - PrevFrame() { - const currentFrame = Math.floor(this._currentFrame); - if (currentFrame === 0) { - return; - } - this.SetFrame(currentFrame - 1); - } - /** - * アニメーションの透明度を設定する - */ - SetAlpha(alpha) { - this.parentAlpha = alpha; - } - /** - * エラー処理 - * @param {any} _error - エラー - */ - ThrowError(_error) { - } - /** - * ユーザーデータコールバックの設定 - * @param fn - * @constructor - * - * ユーザーデータのフォーマット - * data = [[d0,d1,...,d10],[da0,da1,...,da10],...]) - * data.length : 当該フレームでユーザーデータの存在するパーツ(レイヤー)数 - * d0 : パーツ(レイヤー)番号 - * d1 : 有効データビット(&1:int, &2:rect(int*4), &4:pos(int*2), &8:string) - * d2 : int(int) - * d3 : rect0(int) - * d4 : rect1(int) - * d5 : rect2(int) - * d6 : rect3(int) - * d7 : pos0(int) - * d8 : pos1(int) - * d9 : string.length(int) - * d10: string(string) - * - */ - SetUserDataCalback(fn) { - this.onUserDataCallback = fn; - } - /** - * 再生終了時に呼び出されるコールバックを設定します. - * @param fn - * @constructor - * - * ループ回数分再生した後に呼び出される点に注意してください。 - * 無限ループで再生している場合はコールバックが発生しません。 - * - */ - SetPlayEndCallback(fn) { - this.playEndCallback = fn; - } - /** - * パーツの描画モードを取得する - * @return {array} - 全パーツの描画モード - */ - GetPartsBlendMode() { - const animePacks = this.playerLib.animePackData; - const l = animePacks.partsLength(); - let ret = []; - for (let i = 0; i < l; i++) { - const alphaBlendType = animePacks.parts(i).alphaBlendType(); - let blendMode; - switch (alphaBlendType) { - case 0: - blendMode = constants.BLEND_MODES.NORMAL; - break; - case 1: - blendMode = constants.BLEND_MODES.MULTIPLY; - break; - case 2: - blendMode = constants.BLEND_MODES.ADD; - break; - case 3: - blendMode = constants.BLEND_MODES.NORMAL; - break; - case 4: - blendMode = constants.BLEND_MODES.MULTIPLY; - break; - case 5: - blendMode = constants.BLEND_MODES.SCREEN; - break; - case 6: - blendMode = constants.BLEND_MODES.EXCLUSION; - break; - case 7: - blendMode = constants.BLEND_MODES.NORMAL; - break; - default: - blendMode = constants.BLEND_MODES.NORMAL; - break; - } - ret.push(blendMode); - } - return ret; - } - /** - * パーツカラーのブレンド用カラーマトリクス - * @param {number} blendType - ブレンド方法(0:mix, 1:multiply, 2:add, 3:sub) - * @param {number} rate - ミックス時の混色レート - * @param {number} argb32 - パーツカラー(単色) - * @return {PIXI.filters.ColorMatrixFilter} - カラーマトリクス - */ - GetColorMatrixFilter(blendType, rate, argb32) { - const key = blendType.toString() + "_" + rate.toString() + "_" + argb32.toString(); - if (this.colorMatrixFilterCache[key]) return this.colorMatrixFilterCache[key]; - const colorMatrix = new filterColorMatrix.ColorMatrixFilter(); - const ca = ((argb32 & 4278190080) >>> 24) / 255; - const cr = ((argb32 & 16711680) >>> 16) / 255; - const cg = ((argb32 & 65280) >>> 8) / 255; - const cb = (argb32 & 255) / 255; - if (blendType === 0) { - const rate_i = 1 - rate; - colorMatrix.matrix = [ - rate_i, - 0, - 0, - 0, - cr * rate, - 0, - rate_i, - 0, - 0, - cg * rate, - 0, - 0, - rate_i, - 0, - cb * rate, - 0, - 0, - 0, - 1, - 0 - ]; - } else if (blendType === 1) { - colorMatrix.matrix = [ - cr, - 0, - 0, - 0, - 0, - 0, - cg, - 0, - 0, - 0, - 0, - 0, - cb, - 0, - 0, - 0, - 0, - 0, - ca, - 0 - ]; - } else if (blendType === 2) { - colorMatrix.matrix = [ - 1, - 0, - 0, - 0, - cr, - 0, - 1, - 0, - 0, - cg, - 0, - 0, - 1, - 0, - cb, - 0, - 0, - 0, - ca, - 0 - ]; - } else if (blendType === 3) { - colorMatrix.matrix = [ - 1, - 0, - 0, - 0, - -cr, - 0, - 1, - 0, - 0, - -cg, - 0, - 0, - 1, - 0, - -cb, - 0, - 0, - 0, - ca, - 0 - ]; - } - this.colorMatrixFilterCache[key] = colorMatrix; - return colorMatrix; - } - /** - * 1フレーム分のアニメーション描画 - * @param {number} frameNumber - フレーム番号 - * @param {number} ds - delta step - */ - SetFrameAnimation(frameNumber, ds = 0) { - const fd = this.playerLib.GetFrameData(frameNumber); - this.removeChildren(); - const l = fd.length; - for (let ii = 0; ii < l; ii = ii + 1 | 0) { - const i = this.playerLib.prio2index[ii]; - const data = fd[i]; - const cellID = data.cellIndex; - let partObject = this.prevPartObject[i]; - const part = this.playerLib.animePackData.parts(i); - const partType = part.type(); - let overWrite = this.substituteOverWrite[i] !== null ? this.substituteOverWrite[i] : false; - let overWritekeyParam = this.substituteKeyParam[i]; - switch (partType) { - case SsPartType.Instance: - if (partObject == null) { - partObject = this.MakeCellPlayer(part.refname()); - partObject.name = part.name(); - } - break; - case SsPartType.Normal: - case SsPartType.Mask: - if (cellID >= 0 && this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = this.MakeCellMesh(cellID); - partObject.name = part.name(); - } - break; - case SsPartType.Mesh: - if (cellID >= 0 && this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = this.MakeMeshCellMesh(i, cellID); - partObject.name = part.name(); - } - break; - case SsPartType.Nulltype: - case SsPartType.Joint: - if (this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = new display.Container(); - partObject.name = part.name(); - } - break; - default: - if (cellID >= 0 && this.prevCellID[i] !== cellID) { - if (partObject != null) partObject.destroy(); - partObject = this.MakeCellMesh(cellID); - partObject.name = part.name(); - } - break; - } - if (partObject == null) continue; - this.prevCellID[i] = cellID; - this.prevPartObject[i] = partObject; - switch (partType) { - case SsPartType.Instance: { - const instance = partObject; - this._instancePos[0] = 0; - this._instancePos[1] = 0; - this._instancePos[2] = 1; - this._instancePos[3] = 1; - this._instancePos[4] = 0; - this._instancePos = this.playerLib.TransformPositionLocal(this._instancePos, data.index, frameNumber); - instance.rotation = this._instancePos[4] * Math.PI / 180; - instance.position.set(this._instancePos[0], this._instancePos[1]); - instance.scale.set(this._instancePos[2], this._instancePos[3]); - let opacity = data.opacity / 255; - if (data.localopacity < 255) { - opacity = data.localopacity / 255; - } - instance.SetAlpha(opacity * this.parentAlpha); - instance.visible = !data.f_hide; - let refKeyframe = data.instanceValue_curKeyframe; - let refStartframe = data.instanceValue_startFrame; - let refEndframe = data.instanceValue_endFrame; - let refSpeed = data.instanceValue_speed; - let refloopNum = data.instanceValue_loopNum; - let infinity = false; - let reverse = false; - let pingpong = false; - let independent = false; - const INSTANCE_LOOP_FLAG_INFINITY = 1; - const INSTANCE_LOOP_FLAG_REVERSE = 2; - const INSTANCE_LOOP_FLAG_PINGPONG = 4; - const INSTANCE_LOOP_FLAG_INDEPENDENT = 8; - const lflags = data.instanceValue_loopflag; - if (lflags & INSTANCE_LOOP_FLAG_INFINITY) { - infinity = true; - } - if (lflags & INSTANCE_LOOP_FLAG_REVERSE) { - reverse = true; - } - if (lflags & INSTANCE_LOOP_FLAG_PINGPONG) { - pingpong = true; - } - if (lflags & INSTANCE_LOOP_FLAG_INDEPENDENT) { - independent = true; - } - if (overWrite) { - refStartframe = overWritekeyParam.refStartframe; - refEndframe = overWritekeyParam.refEndframe; - refSpeed = overWritekeyParam.refSpeed; - refloopNum = overWritekeyParam.refloopNum; - infinity = overWritekeyParam.infinity; - reverse = overWritekeyParam.reverse; - pingpong = overWritekeyParam.pingpong; - independent = overWritekeyParam.independent; - } - if (instance._startFrame !== refStartframe || instance._endFrame !== refEndframe) { - instance.SetAnimationSection(refStartframe, refEndframe); - } - let time = frameNumber; - if (independent === true) { - this.liveFrame[ii] += ds; - time = Math.floor(this.liveFrame[ii]); - } - const selfTopKeyframe = refKeyframe; - let reftime = Math.floor((time - selfTopKeyframe) * refSpeed); - if (reftime < 0) continue; - if (selfTopKeyframe > time) continue; - const inst_scale = refEndframe - refStartframe + 1; - if (inst_scale <= 0) continue; - let nowloop = Math.floor(reftime / inst_scale); - let checkloopnum = refloopNum; - if (pingpong) checkloopnum = checkloopnum * 2; - if (!infinity) { - if (nowloop >= checkloopnum) { - reftime = inst_scale - 1; - nowloop = checkloopnum - 1; - } - } - const temp_frame = Math.floor(reftime % inst_scale); - let _time = 0; - if (pingpong && nowloop % 2 === 1) { - if (reverse) { - reverse = false; - } else { - reverse = true; - } - } - if (this.playDirection <= -1) { - reverse = !reverse; - } - if (reverse) { - _time = refEndframe - temp_frame; - } else { - _time = temp_frame + refStartframe; - } - instance.SetFrame(Math.floor(_time)); - this.addChild(instance); - break; - } - // Instance以外の通常のMeshと空のContainerで処理分岐 - case SsPartType.Normal: - case SsPartType.Mesh: - case SsPartType.Joint: - case SsPartType.Mask: { - const mesh = partObject; - const meshVertexBuffer = mesh.geometry.getBuffer("aVertexPosition"); - let meshVertex = meshVertexBuffer.data; - const cell = this.playerLib.fbObj.cells(cellID); - let verts; - if (partType === SsPartType.Mesh) { - if (data.meshIsBind === 0) { - verts = this.playerLib.TransformMeshVertsLocal(Player.GetMeshVerts(cell, data, meshVertex), data.index, frameNumber); - } else { - verts = Player.GetMeshVerts(cell, data, meshVertex); - } - } else { - verts = partType === SsPartType.Joint ? new Float32Array(10) : meshVertex; - verts = this.playerLib.TransformVertsLocal(Player.GetVerts(cell, data, verts), data.index, frameNumber); - } - if (data.flag1 & PART_FLAG.VERTEX_TRANSFORM) { - const vertexCoordinateLUx = verts[3 * 2 + 0]; - const vertexCoordinateLUy = verts[3 * 2 + 1]; - const vertexCoordinateLDx = verts[1 * 2 + 0]; - const vertexCoordinateLDy = verts[1 * 2 + 1]; - const vertexCoordinateRUx = verts[4 * 2 + 0]; - const vertexCoordinateRUy = verts[4 * 2 + 1]; - const vertexCoordinateRDx = verts[2 * 2 + 0]; - const vertexCoordinateRDy = verts[2 * 2 + 1]; - const CoordinateLURUx = (vertexCoordinateLUx + vertexCoordinateRUx) * 0.5; - const CoordinateLURUy = (vertexCoordinateLUy + vertexCoordinateRUy) * 0.5; - const CoordinateLULDx = (vertexCoordinateLUx + vertexCoordinateLDx) * 0.5; - const CoordinateLULDy = (vertexCoordinateLUy + vertexCoordinateLDy) * 0.5; - const CoordinateLDRDx = (vertexCoordinateLDx + vertexCoordinateRDx) * 0.5; - const CoordinateLDRDy = (vertexCoordinateLDy + vertexCoordinateRDy) * 0.5; - const CoordinateRURDx = (vertexCoordinateRUx + vertexCoordinateRDx) * 0.5; - const CoordinateRURDy = (vertexCoordinateRUy + vertexCoordinateRDy) * 0.5; - const vec2 = Player.CoordinateGetDiagonalIntersection(verts[0], verts[1], CoordinateLURUx, CoordinateLURUy, CoordinateRURDx, CoordinateRURDy, CoordinateLULDx, CoordinateLULDy, CoordinateLDRDx, CoordinateLDRDy, this._CoordinateGetDiagonalIntersectionVec2); - verts[0] = vec2[0]; - verts[1] = vec2[1]; - } - const px = verts[0]; - const py = verts[1]; - for (let j = 0; j < verts.length / 2; j++) { - verts[j * 2] -= px; - verts[j * 2 + 1] -= py; - } - meshVertex = verts; - meshVertexBuffer.update(); - if (data.flag1 & PART_FLAG.U_MOVE || data.flag1 & PART_FLAG.V_MOVE || data.flag1 & PART_FLAG.U_SCALE || data.flag1 & PART_FLAG.V_SCALE || data.flag1 & PART_FLAG.UV_ROTATION) { - const u1 = cell.u1() + data.uv_move_X; - const u2 = cell.u2() + data.uv_move_X; - const v1 = cell.v1() + data.uv_move_Y; - const v2 = cell.v2() + data.uv_move_Y; - const cx = (u2 + u1) / 2; - const cy = (v2 + v1) / 2; - const uvw = (u2 - u1) / 2 * data.uv_scale_X; - const uvh = (v2 - v1) / 2 * data.uv_scale_Y; - const meshUvsBuffer = mesh.uvBuffer; - let meshUvs = meshUvsBuffer.data; - meshUvs[0] = cx; - meshUvs[1] = cy; - meshUvs[2] = cx - uvw; - meshUvs[3] = cy - uvh; - meshUvs[4] = cx + uvw; - meshUvs[5] = cy - uvh; - meshUvs[6] = cx - uvw; - meshUvs[7] = cy + uvh; - meshUvs[8] = cx + uvw; - meshUvs[9] = cy + uvh; - if (data.flag1 & PART_FLAG.UV_ROTATION) { - const rot = data.uv_rotation * Math.PI / 180; - for (let idx = 0; idx < 5; idx++) { - const dx = meshUvs[idx * 2 + 0] - cx; - const dy = meshUvs[idx * 2 + 1] - cy; - const cos = Math.cos(rot); - const sin = Math.sin(rot); - const tmpX = cos * dx - sin * dy; - const tmpY = sin * dx + cos * dy; - meshUvs[idx * 2 + 0] = cx + tmpX; - meshUvs[idx * 2 + 1] = cy + tmpY; - } - } - meshUvsBuffer.update(); - } - mesh.position.set(px, py); - let opacity = data.opacity / 255; - if (data.localopacity < 255) { - opacity = data.localopacity / 255; - } - mesh.alpha = opacity * this.parentAlpha; - mesh.visible = !data.f_hide; - if (data.useColorMatrix) { - const colorMatrix = this.GetColorMatrixFilter(data.colorBlendType, data.colorRate, data.colorArgb32); - mesh.filters = [colorMatrix]; - } - if (data.tint) { - mesh.tint = data.tint; - const ca = ((data.partsColorARGB & 4278190080) >>> 24) / 255; - mesh.alpha = mesh.alpha * ca; - } - const blendMode = this.alphaBlendType[i]; - if (blendMode === constants.BLEND_MODES.MULTIPLY || blendMode === constants.BLEND_MODES.SCREEN) { - mesh.alpha = 1; - } - if (partType !== SsPartType.Mask) this.addChild(mesh); - break; - } - case SsPartType.Nulltype: { - const container = partObject; - const opacity = this.playerLib.InheritOpacity(1, data.index, frameNumber); - container.alpha = opacity * data.localopacity / 255; - const verts = this.playerLib.TransformVerts(Player.GetDummyVerts(), data.index, frameNumber); - const px = verts[0]; - const py = verts[1]; - container.position.set(px, py); - const ax = Math.atan2(verts[5] - verts[3], verts[4] - verts[2]); - const ay = Math.atan2(verts[7] - verts[3], verts[6] - verts[2]); - container.rotation = ax; - container.skew.x = ay - ax - Math.PI / 2; - break; - } - } - } - } - /** - * - * 名前を指定してパーツの再生するインスタンスアニメを変更します。 - * 指定したパーツがインスタンスパーツでない場合、falseを返します. - * インスタンスパーツ名はディフォルトでは「ssae名:モーション名」とつけられています。 - * 再生するアニメの名前は アニメパック名 と アニメ名 で指定してください。 - * 現在再生しているアニメを指定することは入れ子となり無限ループとなるためできません。 - * - * 変更するアニメーションは同じ ssfb に含まれる必要があります。 - * インスタンスパーツが再生するアニメを変更します - * - * インスタンスキーは - * - * @param partName SS上のパーツ名 - * @param animePackName 参照するアニメパック名 - * @param animeName 参照するアニメ名 - * @param overWrite インスタンスキーの上書きフラグ - * @param keyParam インスタンスキー - * - * @constructor - */ - ChangeInstanceAnime(partName, animePackName, animeName, overWrite, keyParam = null) { - let rc = false; - if (this.animePackName !== null && this.animeName !== null) { - let packData = this.playerLib.animePackData; - let partsLength = packData.partsLength(); - for (let index = 0; index < partsLength; index++) { - let partData = packData.parts(index); - if (partData.name() === partName) { - let mesh = this.prevPartObject[index]; - if (mesh === null || mesh instanceof SS6Player) { - this.substituteOverWrite[index] = overWrite; - let keyParamAsSubstitute; - if (keyParam !== null) { - keyParamAsSubstitute = keyParam; - mesh = this.MakeCellPlayer(animePackName + "/" + animeName, keyParam.refStartframe); - } else { - mesh = this.MakeCellPlayer(animePackName + "/" + animeName); - keyParamAsSubstitute = new SS6PlayerInstanceKeyParam(); - keyParamAsSubstitute.refStartframe = mesh.startFrame; - keyParamAsSubstitute.refEndframe = mesh.endFrame; - } - mesh.name = partData.name(); - this.prevPartObject[index] = mesh; - this.substituteKeyParam[index] = keyParamAsSubstitute; - rc = true; - break; - } - } - } - } - return rc; - } - /** - * 矩形セルをメッシュ(5verts4Tri)で作成 - * @param {number} id - セルID - * @return {PIXI.Mesh} - メッシュ - */ - MakeCellMesh(id) { - const cell = this.playerLib.fbObj.cells(id); - const u1 = cell.u1(); - const u2 = cell.u2(); - const v1 = cell.v1(); - const v2 = cell.v2(); - const w = cell.width() / 2; - const h = cell.height() / 2; - const verts = new Float32Array([0, 0, -w, -h, w, -h, -w, h, w, h]); - const uvs = new Float32Array([(u1 + u2) / 2, (v1 + v2) / 2, u1, v1, u2, v1, u1, v2, u2, v2]); - const indices = new Uint16Array([0, 1, 2, 0, 2, 4, 0, 4, 3, 0, 1, 3]); - const geometry = new mesh.MeshGeometry(verts, uvs, indices); - const meshMaterial = new mesh.MeshMaterial(this.ss6project.getTexture(cell.cellMap().name())); - return new mesh.Mesh(geometry, meshMaterial, null, constants.DRAW_MODES.TRIANGLES); - } - /** - * メッシュセルからメッシュを作成 - * @param {number} partID - パーツID - * @param {number} cellID - セルID - * @return {PIXI.Mesh} - メッシュ - */ - MakeMeshCellMesh(partID, cellID) { - const meshsDataUV = this.playerLib.animationData.meshsDataUv(partID); - const uvLength = meshsDataUV.uvLength(); - if (uvLength > 0) { - const uvs = new Float32Array(uvLength - 2); - const meshNum = meshsDataUV.uv(1); - for (let idx = 2; idx < uvLength; idx++) { - uvs[idx - 2] = meshsDataUV.uv(idx); - } - const meshsDataIndices = this.playerLib.animationData.meshsDataIndices(partID); - const indicesLength = meshsDataIndices.indicesLength(); - const indices = new Uint16Array(indicesLength - 1); - for (let idx = 1; idx < indicesLength; idx++) { - indices[idx - 1] = meshsDataIndices.indices(idx); - } - const verts = new Float32Array(meshNum * 2); - const geometry = new mesh.MeshGeometry(verts, uvs, indices); - const meshMaterial = new mesh.MeshMaterial(this.ss6project.getTexture(this.playerLib.fbObj.cells(cellID).cellMap().name())); - return new mesh.Mesh(geometry, meshMaterial, null, constants.DRAW_MODES.TRIANGLES); - } - return null; - } - /** - * セルをインスタンスで作成 - * @param {String} refname 参照アニメ名 - * @param {number or undefined} refStart - * @return {SS6Player} - インスタンス - */ - MakeCellPlayer(refname, refStart = void 0) { - const split = refname.split("/"); - const ssp = new SS6Player(this.ss6project); - ssp.Setup(split[0], split[1]); - ssp.Play(refStart); - return ssp; - } - resetLiveFrame() { - const layers = this.playerLib.animationData.defaultDataLength(); - for (let i = 0; i < layers; i++) { - this.liveFrame[i] = 0; - } - } - } - - var __defProp$1 = Object.defineProperty; - var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; - var __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value); - const _PluginParameters = class _PluginParameters { - // string - constructor() { - __publicField$1(this, "pluginParameters"); - __publicField$1(this, "animationDir"); - __publicField$1(this, "replaceSVActorSpriteFlag"); - // boolean - __publicField$1(this, "svActorDir"); - // string - __publicField$1(this, "svActorAnimationPack"); - // string - __publicField$1(this, "svActorHideWeaponGraphics"); - // boolean - __publicField$1(this, "replaceSVEnemySpriteFlag"); - // boolean - __publicField$1(this, "svEnemyDir"); - // string - __publicField$1(this, "svEnemyAnimationPack"); - // string - __publicField$1(this, "svEnemyAnimationName"); - this.pluginParameters = PluginManager.parameters("ss6player-rpgmakermz"); - this.animationDir = String(this.pluginParameters["animationDir"] || "img/ssfb") + "/"; - this.replaceSVActorSpriteFlag = this.pluginParameters["replaceSVActorSpriteFlag"] === "true" || false; - this.svActorDir = String(this.pluginParameters["svActorDir"] || "img/ssfb/sv_actors") + "/"; - this.svActorAnimationPack = String(this.pluginParameters["svActorAnimationPack"] || "motions"); - this.svActorHideWeaponGraphics = this.pluginParameters["svActorHideWeaponGraphics"] === "true" || false; - this.replaceSVEnemySpriteFlag = this.pluginParameters["replaceSVEnemySpriteFlag"] === "true" || false; - this.svEnemyDir = String(this.pluginParameters["svEnemyDir"] || "img/ssfb/sv_enemies") + "/"; - this.svEnemyAnimationPack = String(this.pluginParameters["svEnemyAnimationPack"] || "motions"); - this.svEnemyAnimationName = String(this.pluginParameters["svEnemyAnimationName"] || "walk"); - } - static getInstance() { - if (_PluginParameters.instance) { - return _PluginParameters.instance; - } - _PluginParameters.instance = new _PluginParameters(); - return _PluginParameters.instance; - } - }; - __publicField$1(_PluginParameters, "instance"); - let PluginParameters = _PluginParameters; - - var __defProp = Object.defineProperty; - var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; - var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); - const _SS6ProjectManager = class _SS6ProjectManager { - constructor() { - __publicField(this, "ssprojectMap"); - __publicField(this, "_isLoading"); - this.clear(); - this._isLoading = false; - } - prepare(ssfbId) { - this.ssprojectMap.set(ssfbId, null); - this._isLoading = true; - } - isLoading() { - return this._isLoading; - } - isExist(ssfbId) { - return this.ssprojectMap.has(ssfbId) && this.ssprojectMap.get(ssfbId) !== null; - } - set(ssfbId, ssproject) { - this.ssprojectMap.set(ssfbId, ssproject); - this._isLoading = false; - } - get(ssfbId) { - return this.ssprojectMap.has(ssfbId) ? this.ssprojectMap.get(ssfbId) : null; - } - clear() { - this.ssprojectMap = /* @__PURE__ */ new Map(); - } - static getInstance() { - if (_SS6ProjectManager.instance) { - return _SS6ProjectManager.instance; - } - _SS6ProjectManager.instance = new _SS6ProjectManager(); - return _SS6ProjectManager.instance; - } - }; - __publicField(_SS6ProjectManager, "instance"); - let SS6ProjectManager = _SS6ProjectManager; - - const PLUGIN_NAME = "ss6player-rpgmakermz"; - const SS6PROJECT_LOAD_WAIT_MODE = "ss6projectLoadWait"; - const SS6PLAYER_WAIT_MODE = "ss6playerPlayWaitMode"; - let g_ss6playerPlayWaitingStatus = false; - let g_passSS6PlayerToSpritePicture = null; - let g_pictureSS6PlayerPrependCallback = null; - let g_pictureSS6PlayerAppendCallback = null; - PluginManager.registerCommand(PLUGIN_NAME, "loadSsfb", function(args) { - const ssfbId = Number(args.ssfbId); - const ssfbFile = args.ssfbFile; - const ssfbPath = PluginParameters.getInstance().animationDir + ssfbFile; - if (SS6ProjectManager.getInstance().isExist(ssfbId)) { - const existProject = SS6ProjectManager.getInstance().get(ssfbId); - if (ssfbPath === existProject.ssfbPath) { - return; - } - } - this.setWaitMode(SS6PROJECT_LOAD_WAIT_MODE); - SS6ProjectManager.getInstance().prepare(ssfbId); - let project = new SS6Project( - ssfbPath, - () => { - SS6ProjectManager.getInstance().set(ssfbId, project); - }, - 180 * 1e3, - 3, - (ssfbPath2, timeout, retry, httpObj) => { - this.setWaitMode(""); - throw httpObj; - }, - (ssfbPath2, timeout, retry, httpObj) => { - console.log("timeout download ssfb file: " + ssfbPath2); - this.setWaitMode(""); - throw httpObj; - }, - null - ); - }); - PluginManager.registerCommand(PLUGIN_NAME, "setAsPicture", function(args) { - const ssfbId = Number(args.ssfbId); - const animePackName = args.animePackName; - const animeName = args.animeName; - const scaleX = Number(args.scaleX) || 1; - const scaleY = Number(args.scaleY) || 1; - const loop = Number(args.loop) || 1; - let project = SS6ProjectManager.getInstance().get(ssfbId); - if (project === null) { - const err = "not found ssfbId: " + ssfbId; - console.error(err); - throw err; - } - let player = new SS6Player(project, animePackName, animeName); - player.scale = new PIXI.Point(scaleX, scaleY); - player.loop = loop; - g_passSS6PlayerToSpritePicture = player; - }); - PluginManager.registerCommand(PLUGIN_NAME, "waitForPicture", function(args) { - const pictureId = Number(args.pictureId) || 1; - const picture = $gameScreen.picture(pictureId); - if (picture && picture.mzkpSS6Player) { - if (picture.mzkpSS6Player instanceof SS6Player) { - const player = picture.mzkpSS6Player; - if (player.loop !== -1) { - this.setWaitMode(SS6PLAYER_WAIT_MODE); - g_ss6playerPlayWaitingStatus = true; - g_pictureSS6PlayerPrependCallback = function(ss6player) { - if (ss6player.loop === 0) { - g_ss6playerPlayWaitingStatus = false; - } - }; - } else { - console.warn("pictureId: " + pictureId + " can not wait SS6Player because setting infinity loop."); - } - } - } else { - console.warn("pictureId: " + pictureId + " not have SS6Player"); - } - }); - const _Game_Interpreter_updateWaitMode = Game_Interpreter.prototype.updateWaitMode; - Game_Interpreter.prototype.updateWaitMode = function() { - let waiting = false; - if (this._waitMode === SS6PROJECT_LOAD_WAIT_MODE) { - waiting = SS6ProjectManager.getInstance().isLoading(); - } else if (this._waitMode === SS6PLAYER_WAIT_MODE) { - waiting = g_ss6playerPlayWaitingStatus; - } else { - waiting = _Game_Interpreter_updateWaitMode.call(this); - } - return waiting; - }; - const _Game_Picture_show = Game_Picture.prototype.show; - Game_Picture.prototype.show = function() { - _Game_Picture_show.apply(this, arguments); - if (this._name === "" && g_passSS6PlayerToSpritePicture !== null) { - this.mzkpSS6Player = g_passSS6PlayerToSpritePicture; - this.mzkpSS6PlayerChanged = true; - g_passSS6PlayerToSpritePicture = null; - } - }; - const _Sprite_Picture_destroy = Sprite_Picture.prototype.destroy; - Sprite_Picture.prototype.destroy = function(options) { - if (this.mzkpSS6Player !== null && this.mzkpSS6Player instanceof SS6Player) { - this.mzkpSS6Player.Stop(); - this.picture().mzkpSS6PlayerPrevFrameNo = this.mzkpSS6Player.frameNo; - this.removeChild(this.mzkpSS6Player); - this.mzkpSS6Player = null; - } - _Sprite_Picture_destroy.call(this, options); - }; - const _Game_Screen_erasePicture = Game_Screen.prototype.erasePicture; - Game_Screen.prototype.erasePicture = function(pictureId) { - const picture = this._pictures[pictureId]; - if (picture && picture.mzkpSS6Player) { - picture.mzkpSS6Player = null; - } - _Game_Screen_erasePicture.call(this, pictureId); - }; - const _Scene_Base_terminate = Scene_Base.prototype.terminate; - Scene_Base.prototype.terminate = function() { - $gameActors._data.forEach((actor, index, actors) => { - if (actor && actor._svActorSS6Player) { - actor._svActorSS6Player.Stop(); - actor._svActorSS6PlayerParent.removeChild(actor._svActorSS6Player); - actor._svActorSS6Player = null; - actor._svActorSS6PlayerParent = null; - } - }); - $gameTroop.members().forEach((enemy, index, enemies) => { - if (enemy && enemy._svEnemySS6Player) { - enemy._svEnemySS6Player.Stop(); - enemy._svEnemySS6PlayerParent.removeChild(enemy._svEnemySS6Player); - enemy._svEnemySS6ProjectLoaded = false; - enemy._svEnemySS6Player = null; - enemy._svEnemySS6PlayerParent = null; - } - }); - _Scene_Base_terminate.apply(this, arguments); - }; - const _Sprite_Picture_updateBitmap = Sprite_Picture.prototype.updateBitmap; - Sprite_Picture.prototype.updateBitmap = function() { - _Sprite_Picture_updateBitmap.apply(this, arguments); - if (this.visible && this._pictureName === "") { - const picture = this.picture(); - const player = picture ? picture.mzkpSS6Player || null : null; - const playerChanged = picture && picture.mzkpSS6PlayerChanged; - if (this.mzkpSS6Player !== player || playerChanged) { - if (player !== null) { - if (player.loop === 0) { - if (this.mzkpSS6Player) { - this.mzkpSS6Player.Stop(); - this.removeChild(this.mzkpSS6Player); - this.mzkpSS6Player = null; - picture.mzkpSS6Player = null; - } - return; - } - const prependCallback = g_pictureSS6PlayerPrependCallback; - const appendCallback = g_pictureSS6PlayerAppendCallback; - const spritePicture = this; - player.SetPlayEndCallback(() => { - if (prependCallback !== null) { - prependCallback(player); - } - if (player.loop === 0) { - player.Stop(); - spritePicture.removeChild(player); - } - if (appendCallback !== null) { - appendCallback(player); - } - }); - if (this.mzkpSS6Player) { - this.mzkpSS6Player.Stop(); - this.removeChild(this.mzkpSS6Player); - } - this.mzkpSS6Player = player; - this.addChild(this.mzkpSS6Player); - this.mzkpSS6Player.Play(picture.mzkpSS6PlayerPrevFrameNo); - picture.mzkpSS6PlayerChanged = false; - g_pictureSS6PlayerPrependCallback = null; - g_pictureSS6PlayerAppendCallback = null; - } else { - this.mzkpSS6Player = null; - } - } - } else { - if (this.mzkpSS6Player !== null && this.mzkpSS6Player instanceof SS6Player) { - this.mzkpSS6Player.Stop(); - this.removeChild(this.mzkpSS6Player); - } - this.mzkpSS6Player = null; - } - }; - const _Game_Screen_clear = Game_Screen.prototype.clear; - Game_Screen.prototype.clear = function() { - SS6ProjectManager.getInstance().clear(); - _Game_Screen_clear.call(this); - }; - let g_suspendPlayingSS6Player = false; - const _SceneManager_updateScene = SceneManager.updateScene; - SceneManager.updateScene = function() { - _SceneManager_updateScene.apply(this, arguments); - if (this._scene) { - if (this.isGameActive()) { - if (g_suspendPlayingSS6Player) { - $gameScreen._pictures.forEach((picture, index, pictures) => { - if (picture && picture.mzkpSS6Player) { - picture.mzkpSS6Player.Resume(); - } - }); - $gameActors._data.forEach((actor, index, actors) => { - if (actor && actor._svActorSS6Player) { - actor._svActorSS6Player.Resume(); - } - }); - $gameTroop.members().forEach((enemy, index, enemies) => { - if (enemy && enemy._svEnemySS6Player) { - enemy._svEnemySS6Player.Resume(); - } - }); - g_suspendPlayingSS6Player = false; - } - } else { - if ($gameScreen && $gameScreen._pictures) { - $gameScreen._pictures.forEach((picture, index, pictures) => { - if (picture && picture.mzkpSS6Player) { - picture.mzkpSS6Player.Pause(); - } - }); - } - if ($gameActors && $gameActors._data) { - $gameActors._data.forEach((actor, index, actors) => { - if (actor && actor._svActorSS6Player) { - actor._svActorSS6Player.Pause(); - } - }); - } - if ($gameTroop && $gameTroop.members()) { - $gameTroop.members().forEach((enemy, index, enemies) => { - if (enemy && enemy._svEnemySS6Player) { - enemy._svEnemySS6Player.Pause(); - } - }); - } - g_suspendPlayingSS6Player = true; - } - } - }; - let loaded_EnemyNoteTags = false; - const _DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded; - DataManager.isDatabaseLoaded = function() { - if (PluginParameters.getInstance().replaceSVEnemySpriteFlag) { - if (!_DataManager_isDatabaseLoaded.call(this)) { - return false; - } - if (!loaded_EnemyNoteTags) { - this.loadEnemyNoteTags(); - loaded_EnemyNoteTags = true; - } - return true; - } else { - return _DataManager_isDatabaseLoaded.call(this); - } - }; - const SV_ENEMY_TAG = "SS6SVEnemy"; - const SV_ENEMY_ATTRIBUTE_FILE = "file"; - const SV_ENEMY_ATTRIBUTE_ANIMATIONPACK = "animationPackName"; - const SV_ENEMY_ATTRIBUTE_ANIMATIONNAME = "animationName"; - const SV_ENEMY_ATTRIBUTE_SCALE_X = "scaleX"; - const SV_ENEMY_ATTRIBUTE_SCALE_Y = "scaleY"; - const SV_ENEMY_ATTRIBUTE_OFFSET_X = "offsetX"; - const SV_ENEMY_ATTRIBUTE_OFFSET_Y = "offsetY"; - DataManager.loadEnemyNoteTags = function() { - const regex = new RegExp("<" + SV_ENEMY_TAG + " (.*):(.*)>", "i"); - $dataEnemies.forEach((enemy, idx, enemies) => { - if (enemy === null) { - return; - } - const noteData = enemy.note.split(/\r?\n/); - noteData.forEach((line, idx2, lines) => { - const match = regex.exec(line); - if (match && match.length === 3) { - const attribute = match[1].toLowerCase(); - const value = match[2]; - switch (attribute) { - case SV_ENEMY_ATTRIBUTE_FILE.toLowerCase(): - enemy._svEnemyFile = value; - break; - case SV_ENEMY_ATTRIBUTE_ANIMATIONPACK.toLowerCase(): - enemy._svEnemyAnimationPackName = value; - break; - case SV_ENEMY_ATTRIBUTE_ANIMATIONNAME.toLowerCase(): - enemy._svEnemyAnimationName = value; - break; - case SV_ENEMY_ATTRIBUTE_SCALE_X.toLowerCase(): - enemy._svEnemyScaleX = Number(value); - break; - case SV_ENEMY_ATTRIBUTE_SCALE_Y.toLowerCase(): - enemy._svEnemyScaleY = Number(value); - break; - case SV_ENEMY_ATTRIBUTE_OFFSET_X.toLowerCase(): - enemy._svEnemyOffsetX = Number(value); - break; - case SV_ENEMY_ATTRIBUTE_OFFSET_Y.toLowerCase(): - enemy._svEnemyOffsetY = Number(value); - break; - } - } - }); - }); - }; - Sprite_Actor.svActorSsfbId = function(actorId) { - return "sv_actor_" + actorId; - }; - Sprite_Actor.svActorSsfbDir = function(actorId) { - return PluginParameters.getInstance().svActorDir + String(actorId) + "/"; - }; - Sprite_Actor.svActorSsfbPath = function(actorId) { - return Sprite_Actor.svActorSsfbDir(actorId) + String(actorId) + ".ssfb"; - }; - let notFoundSvActorSsfbMap = /* @__PURE__ */ new Map(); - const _Sprite_Actor_setBattler = Sprite_Actor.prototype.setBattler; - Sprite_Actor.prototype.setBattler = function(battler) { - const changed = battler !== this._actor; - _Sprite_Actor_setBattler.call(this, battler); - if (PluginParameters.getInstance().replaceSVActorSpriteFlag) { - if (changed) { - let actorId; - let ssfbId; - let ssfbPath; - if (Imported.VisuMZ_0_CoreEngine && Imported.VisuMZ_1_BattleCore && this instanceof Sprite_SvEnemy) { - actorId = this._actor.enemyId(); - ssfbId = "sv_enemy_" + actorId; - ssfbPath = PluginParameters.getInstance().svActorDir + "svenemy" + String(actorId) + "/" + String(actorId) + ".ssfb"; - } else { - actorId = this._actor.actorId(); - ssfbId = Sprite_Actor.svActorSsfbId(actorId); - ssfbPath = Sprite_Actor.svActorSsfbPath(actorId); - } - if (notFoundSvActorSsfbMap.has(ssfbId)) { - return; - } - if (SS6ProjectManager.getInstance().isExist(ssfbId)) { - const existProject = SS6ProjectManager.getInstance().get(ssfbId); - if (ssfbPath === existProject.ssfbPath) { - this._actor._svActorSS6Player = null; - this._actor._svActorSS6PlayerParent = null; - return; - } - } - SS6ProjectManager.getInstance().prepare(ssfbId); - let project = new SS6Project( - ssfbPath, - () => { - this._actor._svActorSS6Player = null; - this._actor._svActorSS6PlayerParent = null; - SS6ProjectManager.getInstance().set(ssfbId, project); - }, - 180 * 1e3, - 3, - (ssfbPath2, timeout, retry, httpObj) => { - notFoundSvActorSsfbMap.set(ssfbId, null); - SS6ProjectManager.getInstance().set(ssfbId, null); - } - ); - } - } - }; - const _Sprite_Actor_updateBitmap = Sprite_Actor.prototype.updateBitmap; - Sprite_Actor.prototype.updateBitmap = function() { - if (PluginParameters.getInstance().replaceSVActorSpriteFlag) { - const actorId = this._actor.actorId(); - const ssfbId = Sprite_Actor.svActorSsfbId(actorId); - if (SS6ProjectManager.getInstance().isExist(ssfbId) && this._actor._svActorSS6Player !== void 0) { - Sprite_Battler.prototype.updateBitmap.call(this); - this._mainSprite.bitmap = null; - this.updateSS6Player(); - } else { - _Sprite_Actor_updateBitmap.call(this); - } - } else { - _Sprite_Actor_updateBitmap.call(this); - } - }; - Sprite_Actor.prototype.updateSS6Player = function() { - let motionName = ""; - for (let key in Sprite_Actor.MOTIONS) { - const motion = Sprite_Actor.MOTIONS[key]; - if (this._motion === motion) { - motionName = key; - } - } - if (motionName === "") { - motionName = "walk"; - } - if (this._actor._svActorSS6Player === null || this._actor._svActorSS6Player.animeName !== motionName) { - if (this._actor._svActorSS6Player) { - this._mainSprite.removeChild(this._actor._svActorSS6Player); - this._actor._svActorSS6Playe = null; - this._actor._svActorSS6PlayerParent = null; - } - const loop = this._motion.loop; - const actorId = this._actor.actorId(); - const ssfbId = Sprite_Actor.svActorSsfbId(actorId); - const project = SS6ProjectManager.getInstance().get(ssfbId); - const animePackName = PluginParameters.getInstance().svActorAnimationPack; - this._actor._svActorSS6Player = new SS6Player(project, animePackName, motionName); - this._actor._svActorSS6Player.loop = loop ? -1 : 1; - this._actor._svActorSS6Player.SetPlayEndCallback((player) => { - if (player.loop === 0) { - this.refreshMotion(); - } - }); - this._actor._svActorSS6Player.Play(); - this._mainSprite.addChild(this._actor._svActorSS6Player); - this._actor._svActorSS6PlayerParent = this._mainSprite; - } - }; - const _Sprite_Actor_setupWeaponAnimation = Sprite_Actor.prototype.setupWeaponAnimation; - Sprite_Actor.prototype.setupWeaponAnimation = function() { - if (PluginParameters.getInstance().replaceSVActorSpriteFlag) { - if (PluginParameters.getInstance().svActorHideWeaponGraphics) { - if (this._actor._svActorSS6Player === void 0) { - _Sprite_Actor_setupWeaponAnimation.call(this); - } - } else { - _Sprite_Actor_setupWeaponAnimation.call(this); - } - } else { - _Sprite_Actor_setupWeaponAnimation.call(this); - } - }; - Sprite_Enemy.svEnemySsfbId = function(enemyId) { - return "sv_enemy_" + enemyId; - }; - Sprite_Enemy.svEnemySsfbDir = function(enemyId) { - return PluginParameters.getInstance().svEnemyDir + String(enemyId) + "/"; - }; - Sprite_Enemy.svEnemySsfbPath = function(enemyId) { - return Sprite_Enemy.svEnemySsfbDir(enemyId) + String(enemyId) + ".ssfb"; - }; - let notFoundSvEnemySsfbMap = /* @__PURE__ */ new Map(); - const _Sprite_Enemy_setBattler = Sprite_Enemy.prototype.setBattler; - Sprite_Enemy.prototype.setBattler = function(battler) { - const changed = battler !== this._enemy; - _Sprite_Enemy_setBattler.call(this, battler); - if (PluginParameters.getInstance().replaceSVEnemySpriteFlag) { - if (changed) { - const enemyId = this._enemy.enemyId(); - const ssfbId = Sprite_Enemy.svEnemySsfbId(enemyId); - if (notFoundSvEnemySsfbMap.has(ssfbId)) { - return; - } - let ssfbPath = Sprite_Enemy.svEnemySsfbPath(enemyId); - const dataEnemy = this._enemy.enemy(); - if (dataEnemy._svEnemyFile) { - ssfbPath = PluginParameters.getInstance().animationDir + dataEnemy._svEnemyFile; - } - this._enemy._svEnemySS6ProjectLoaded = false; - if (SS6ProjectManager.getInstance().isExist(ssfbId)) { - const existProject = SS6ProjectManager.getInstance().get(ssfbId); - if (ssfbPath === existProject.ssfbPath) { - this._enemy._svEnemySS6ProjectLoaded = true; - this._enemy._svEnemySS6Player = null; - this._enemy._svEnemySS6PlayerParent = null; - return; - } - } - SS6ProjectManager.getInstance().prepare(ssfbId); - let project = new SS6Project( - ssfbPath, - () => { - this._enemy._svEnemySS6ProjectLoaded = true; - this._enemy._svEnemySS6Player = null; - this._enemy._svEnemySS6PlayerParent = null; - SS6ProjectManager.getInstance().set(ssfbId, project); - }, - 180 * 1e3, - 3, - (ssfbPath2, timeout, retry, httpObj) => { - this._enemy._svEnemySS6ProjectLoaded = true; - notFoundSvEnemySsfbMap.set(ssfbId, null); - SS6ProjectManager.getInstance().set(ssfbId, null); - } - ); - } - } - }; - const _Sprite_Enemy_updateBitmap = Sprite_Enemy.prototype.updateBitmap; - Sprite_Enemy.prototype.updateBitmap = function() { - if (PluginParameters.getInstance().replaceSVEnemySpriteFlag) { - const enemyId = this._enemy.enemyId(); - const ssfbId = Sprite_Enemy.svEnemySsfbId(enemyId); - if (!this._enemy._svEnemySS6ProjectLoaded) { - return; - } - if (SS6ProjectManager.getInstance().isExist(ssfbId) && this._enemy._svEnemySS6Player !== void 0) { - Sprite_Battler.prototype.updateBitmap.call(this); - this.bitmap = null; - this.updateSS6Player(); - } else { - _Sprite_Enemy_updateBitmap.call(this); - } - } else { - _Sprite_Enemy_updateBitmap.call(this); - } - }; - Sprite_Enemy.prototype.updateSS6Player = function() { - if (this._enemy._svEnemySS6Player === null) { - const enemyId = this._enemy.enemyId(); - const ssfbId = Sprite_Enemy.svEnemySsfbId(enemyId); - const project = SS6ProjectManager.getInstance().get(ssfbId); - let animePackName = PluginParameters.getInstance().svEnemyAnimationPack; - let animeName = PluginParameters.getInstance().svEnemyAnimationName; - let scaleX = 1; - let scaleY = 1; - let offsetX = 0; - let offsetY = 0; - const dataEnemy = this._enemy.enemy(); - if (dataEnemy._svEnemyAnimationPackName) { - animePackName = dataEnemy._svEnemyAnimationPackName; - } - if (dataEnemy._svEnemyAnimationName) { - animeName = dataEnemy._svEnemyAnimationName; - } - if (dataEnemy._svEnemyScaleX) { - scaleX = dataEnemy._svEnemyScaleX; - } - if (dataEnemy._svEnemyScaleY) { - scaleY = dataEnemy._svEnemyScaleY; - } - if (dataEnemy._svEnemyOffsetX) { - offsetX = dataEnemy._svEnemyOffsetX; - } - if (dataEnemy._svEnemyOffsetY) { - offsetY = dataEnemy._svEnemyOffsetY; - } - this._enemy._svEnemySS6Player = new SS6Player(project, animePackName, animeName); - this._enemy._svEnemySS6Player.loop = -1; - this._enemy._svEnemySS6Player.SetPlayEndCallback((player) => { - }); - this._enemy._svEnemySS6Player.scale.x = scaleX; - this._enemy._svEnemySS6Player.scale.y = scaleY; - this._enemy._svEnemySS6Player.position.x += offsetX; - this._enemy._svEnemySS6Player.position.y += offsetY; - this._enemy._svEnemySS6Player.Play(); - this.addChild(this._enemy._svEnemySS6Player); - this._enemy._svEnemySS6PlayerParent = this; - } - }; - const _Sprite_Enemy_updateFrame = Sprite_Enemy.prototype.updateFrame; - Sprite_Enemy.prototype.updateFrame = function() { - if (PluginParameters.getInstance().replaceSVEnemySpriteFlag) { - const enemyId = this._enemy.enemyId(); - const ssfbId = Sprite_Enemy.svEnemySsfbId(enemyId); - if (!this._enemy._svEnemySS6ProjectLoaded) { - return; - } - if (SS6ProjectManager.getInstance().isExist(ssfbId) && this._enemy._svEnemySS6Player !== void 0) { - const bitmap = this.bitmap; - if (bitmap) { - _Sprite_Enemy_updateFrame.call(this); - return; - } - Sprite_Battler.prototype.updateFrame.call(this); - const player = this._enemy._svEnemySS6Player; - let width = 0; - let height = 0; - if (player) { - width = player.width; - height = player.height; - } - if (this._effectType === "bossCollapse") { - this.setFrame(0, 0, width, this._effectDuration); - } else { - this.setFrame(0, 0, width, height); - } - } else { - _Sprite_Enemy_updateFrame.call(this); - } - } else { - _Sprite_Enemy_updateFrame.call(this); - } - }; - const _Sprite_Enemy_updateStateSprite = Sprite_Enemy.prototype.updateStateSprite; - Sprite_Enemy.prototype.updateStateSprite = function() { - if (PluginParameters.getInstance().replaceSVEnemySpriteFlag) { - if (this.bitmap) { - this._stateIconSprite.y = -Math.round((this.bitmap.height + 40) * 0.9); - if (this._stateIconSprite.y < 20 - this.y) { - this._stateIconSprite.y = 20 - this.y; - } - } else { - let height = 0; - if (this._enemy && this._enemy._svEnemySS6Player) { - height = this._enemy._svEnemySS6Player; - } - this._stateIconSprite.y = -Math.round((height + 40) * 0.9); - if (this._stateIconSprite.y < 20 - this.y) { - this._stateIconSprite.y = 20 - this.y; - } - } - } else { - _Sprite_Enemy_updateStateSprite.call(this); - } - }; - +* @target MZ +* @plugindesc SpriteStudio 7.0 & 6 アニメーション再生プラグイン +* @version 0.9.0 +* @author CRI Middleware Co., Ltd. +* @url https://github.com/SpriteStudio/SS6PlayerForWeb/tree/master/packages/ss6player-rpgmakermz +* @help SS6Player for RPG Maker MZ +* +* 詳しい使い方は、GitHub リポジトリの README.md をお読みください。 +* https://github.com/SpriteStudio/SS6PlayerForWeb/tree/master/packages/ss6player-rpgmakermz/README.md +* +* デプロイメント時に「未使用ファイルを削除」オプションを使用した場合、 +* アニメーションを含むフォルダは削除されてしまいます。 +* 必ず、デプロイメント後にプラグインパラメータで指定したディレクトリを、 +* 出力先の同じ位置にコピーしてください。 +* +* @param animationDir +* @text ssfb アニメーションベースディレクトリ +* @desc ssfb のフォルダを格納するベースディレクトリのパスです。 +* @type file +* @default img/ssfb +* @requiredAssets img/ssfb +* +* @param replaceSVActorSpriteFlag +* @text SV アクター置き換え +* @desc SV アクターを Sprite Studio アニメーションに置き換える機能の ON/OFF です。 +* @type boolean +* @default false +* +* @param svActorDir +* @text SV アクターディレクトリ +* @desc SV アクターの SpriteStudio データを格納するディレクトリのパスです +* @type file +* @default img/ssfb/sv_actors +* @requiredAssets img/ssfb/sv_actors +* +* @param svActorAnimationPack +* @text SV アクターアニメーションパック名 +* @desc SV アクターが利用する Sprite Studio の共通アニメーションパック(ssae)名です +* @type string +* @default motions +* +* @param svActorHideWeaponGraphics +* @text SV アクター武器非表示 +* @desc SV アクターの攻撃中の武器アニメーションを非表示にする機能の ON/OFF です。 +* @type boolean +* @default true +* +* @param replaceSVEnemySpriteFlag +* @text SV エネミー置き換え +* @desc SV エネミーを Sprite Studio アニメーションに置き換える機能の ON/OFF です。 +* @type boolean +* @default false +* +* @param svEnemyDir +* @text SV エネミーディレクトリ +* @desc SV アクターの SpriteStudio データを格納するディレクトリのパスです +* @type file +* @default img/ssfb/sv_enemies +* @requiredAssets img/ssfb/sv_enemies +* +* @param svEnemyAnimationPack +* @text SV エネミーアニメーションパック名 +* @desc SV エネミーが利用する Sprite Studio の共通アニメーションパック(ssae)名です +* @type string +* @default motions +* +* @param svEnemyAnimationName +* @text SV エネミーアニメーション名 +* @desc SV エネミーが利用する Sprite Studio の共通アニメーション名です。 +* @type string +* @default walk +* +* +* @command loadSsfb +* @text ssfbロード +* @desc ssfb ファイルと関連画像をダウンロードしロードします。 +* +* @arg ssfbId +* @text ssfb ID +* @desc 登録する ssfb ID です。他のコマンドから参照するのに利用します。 +* @type number +* @min 1 +* +* @arg ssfbFile +* @text ssfbファイルパス +* @desc ssfb ファイルをアニメーションディレクトリからの相対パスで指定してください。 (e.g. MeshBone/Knight.ssfb) +* @type string +* +* +* @command setAsPicture +* @text アニメーションピクチャの設定 +* @desc ピクチャとして表示するアニメーションを設定します。 +* この後、画像を指定せずに「ピクチャの表示」を実行してください。 +* +* @arg ssfbId +* @text ssfb ID +* @desc 利用する ssfb ID を指定してください。 +* @type number +* @min 1 +* +* @arg animePackName +* @text アニメパック名 +* @desc 再生するアニメパック名(ssae)を指定してください。 +* e.g. Knight_bomb +* @type string +* +* @arg animeName +* @text アニメ名 +* @desc 再生するアニメ名を指定してください。 +* e.g. Balloon +* @type string +* +* @arg scaleX +* @text スケールX +* @desc X のスケールを指定します +* @type decimals +* @default 1.0 +* +* @arg scaleY +* @text スケールY +* @desc Y のスケールを指定します +* @type decimals +* @default 1.0 +* +* @arg loop +* @text 再生ループ回数 +* @desc 再生ループ回数を指定します。 -1 を指定すると無限ループで再生します。 +* @type number +* @default 1 +* @min -1 +* +* +* @command waitForPicture +* @text ピクチャ再生待ち +* @desc アニメーションが再生完了するまでウエイトします。ピクチャにアニメーションがない場合とループ再生時は無視されます。 +* +* @arg pictureId +* @text Picture ID +* @desc アニメーション再生中のピクチャの ID を指定してください。 +* @type number +* @min 1 +* +*/ +(function(_pixi_loaders, _pixi_display, _pixi_mesh, _pixi_ticker, _pixi_filter_color_matrix, _pixi_constants) { + //#region ../ss6player-pixi6/dist/ss6player-pixi6.es6.js + /*! + * ----------------------------------------------------------- + * SS6Player For pixi.js v6 v1.0.6 + * + * Copyright(C) CRI Middleware Co., Ltd. + * https://www.webtech.co.jp/ + * ----------------------------------------------------------- + */ + /*! + * ----------------------------------------------------------- + * ss6player-lib v1.0.6 + * + * Copyright(C) CRI Middleware Co., Ltd. + * https://www.webtech.co.jp/ + * ----------------------------------------------------------- + */ + /** + * FrameData + */ + var FrameData = class {}; + /*! + * ----------------------------------------------------------- + * ssfblib v1.2.6 + * + * Copyright(C) CRI Middleware Co., Ltd. + * https://www.webtech.co.jp/ + * ----------------------------------------------------------- + */ + const int32 = new Int32Array(2); + const float32 = new Float32Array(int32.buffer); + const float64 = new Float64Array(int32.buffer); + const isLittleEndian = new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1; + var Encoding; + (function(Encoding) { + Encoding[Encoding["UTF8_BYTES"] = 1] = "UTF8_BYTES"; + Encoding[Encoding["UTF16_STRING"] = 2] = "UTF16_STRING"; + })(Encoding || (Encoding = {})); + var ByteBuffer = class ByteBuffer { + /** + * Create a new ByteBuffer with a given array of bytes (`Uint8Array`) + */ + constructor(bytes_) { + this.bytes_ = bytes_; + this.position_ = 0; + this.text_decoder_ = new TextDecoder(); + } + /** + * Create and allocate a new ByteBuffer with a given size. + */ + static allocate(byte_size) { + return new ByteBuffer(new Uint8Array(byte_size)); + } + clear() { + this.position_ = 0; + } + /** + * Get the underlying `Uint8Array`. + */ + bytes() { + return this.bytes_; + } + /** + * Get the buffer's position. + */ + position() { + return this.position_; + } + /** + * Set the buffer's position. + */ + setPosition(position) { + this.position_ = position; + } + /** + * Get the buffer's capacity. + */ + capacity() { + return this.bytes_.length; + } + readInt8(offset) { + return this.readUint8(offset) << 24 >> 24; + } + readUint8(offset) { + return this.bytes_[offset]; + } + readInt16(offset) { + return this.readUint16(offset) << 16 >> 16; + } + readUint16(offset) { + return this.bytes_[offset] | this.bytes_[offset + 1] << 8; + } + readInt32(offset) { + return this.bytes_[offset] | this.bytes_[offset + 1] << 8 | this.bytes_[offset + 2] << 16 | this.bytes_[offset + 3] << 24; + } + readUint32(offset) { + return this.readInt32(offset) >>> 0; + } + readInt64(offset) { + return BigInt.asIntN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); + } + readUint64(offset) { + return BigInt.asUintN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); + } + readFloat32(offset) { + int32[0] = this.readInt32(offset); + return float32[0]; + } + readFloat64(offset) { + int32[isLittleEndian ? 0 : 1] = this.readInt32(offset); + int32[isLittleEndian ? 1 : 0] = this.readInt32(offset + 4); + return float64[0]; + } + writeInt8(offset, value) { + this.bytes_[offset] = value; + } + writeUint8(offset, value) { + this.bytes_[offset] = value; + } + writeInt16(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + } + writeUint16(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + } + writeInt32(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + this.bytes_[offset + 2] = value >> 16; + this.bytes_[offset + 3] = value >> 24; + } + writeUint32(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + this.bytes_[offset + 2] = value >> 16; + this.bytes_[offset + 3] = value >> 24; + } + writeInt64(offset, value) { + this.writeInt32(offset, Number(BigInt.asIntN(32, value))); + this.writeInt32(offset + 4, Number(BigInt.asIntN(32, value >> BigInt(32)))); + } + writeUint64(offset, value) { + this.writeUint32(offset, Number(BigInt.asUintN(32, value))); + this.writeUint32(offset + 4, Number(BigInt.asUintN(32, value >> BigInt(32)))); + } + writeFloat32(offset, value) { + float32[0] = value; + this.writeInt32(offset, int32[0]); + } + writeFloat64(offset, value) { + float64[0] = value; + this.writeInt32(offset, int32[isLittleEndian ? 0 : 1]); + this.writeInt32(offset + 4, int32[isLittleEndian ? 1 : 0]); + } + /** + * Return the file identifier. Behavior is undefined for FlatBuffers whose + * schema does not include a file_identifier (likely points at padding or the + * start of a the root vtable). + */ + getBufferIdentifier() { + if (this.bytes_.length < this.position_ + 4 + 4) throw new Error("FlatBuffers: ByteBuffer is too short to contain an identifier."); + let result = ""; + for (let i = 0; i < 4; i++) result += String.fromCharCode(this.readInt8(this.position_ + 4 + i)); + return result; + } + /** + * Look up a field in the vtable, return an offset into the object, or 0 if the + * field is not present. + */ + __offset(bb_pos, vtable_offset) { + const vtable = bb_pos - this.readInt32(bb_pos); + return vtable_offset < this.readInt16(vtable) ? this.readInt16(vtable + vtable_offset) : 0; + } + /** + * Initialize any Table-derived type to point to the union at the given offset. + */ + __union(t, offset) { + t.bb_pos = offset + this.readInt32(offset); + t.bb = this; + return t; + } + /** + * Create a JavaScript string from UTF-8 data stored inside the FlatBuffer. + * This allocates a new string and converts to wide chars upon each access. + * + * To avoid the conversion to string, pass Encoding.UTF8_BYTES as the + * "optionalEncoding" argument. This is useful for avoiding conversion when + * the data will just be packaged back up in another FlatBuffer later on. + * + * @param offset + * @param opt_encoding Defaults to UTF16_STRING + */ + __string(offset, opt_encoding) { + offset += this.readInt32(offset); + const length = this.readInt32(offset); + offset += 4; + const utf8bytes = this.bytes_.subarray(offset, offset + length); + if (opt_encoding === Encoding.UTF8_BYTES) return utf8bytes; + else return this.text_decoder_.decode(utf8bytes); + } + /** + * Handle unions that can contain string as its member, if a Table-derived type then initialize it, + * if a string then return a new one + * + * WARNING: strings are immutable in JS so we can't change the string that the user gave us, this + * makes the behaviour of __union_with_string different compared to __union + */ + __union_with_string(o, offset) { + if (typeof o === "string") return this.__string(offset); + return this.__union(o, offset); + } + /** + * Retrieve the relative offset stored at "offset" + */ + __indirect(offset) { + return offset + this.readInt32(offset); + } + /** + * Get the start of data of a vector whose offset is stored at "offset" in this object. + */ + __vector(offset) { + return offset + this.readInt32(offset) + 4; + } + /** + * Get the length of a vector whose offset is stored at "offset" in this object. + */ + __vector_len(offset) { + return this.readInt32(offset + this.readInt32(offset)); + } + __has_identifier(ident) { + if (ident.length != 4) throw new Error("FlatBuffers: file identifier must be length 4"); + for (let i = 0; i < 4; i++) if (ident.charCodeAt(i) != this.readInt8(this.position() + 4 + i)) return false; + return true; + } + /** + * A helper function for generating list for obj api + */ + createScalarList(listAccessor, listLength) { + const ret = []; + for (let i = 0; i < listLength; ++i) { + const val = listAccessor(i); + if (val !== null) ret.push(val); + } + return ret; + } + /** + * A helper function for generating list for obj api + * @param listAccessor function that accepts an index and return data at that index + * @param listLength listLength + * @param res result list + */ + createObjList(listAccessor, listLength) { + const ret = []; + for (let i = 0; i < listLength; ++i) { + const val = listAccessor(i); + if (val !== null) ret.push(val.unpack()); + } + return ret; + } + }; + var AnimationInitialData = class AnimationInitialData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsAnimationInitialData(bb, obj) { + return (obj || new AnimationInitialData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsAnimationInitialData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new AnimationInitialData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + index() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + lowflag() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + highflag() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + priority() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + cellIndex() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + opacity() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + localopacity() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + masklimen() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + positionX() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + positionY() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + positionZ() { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + pivotX() { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + pivotY() { + const offset = this.bb.__offset(this.bb_pos, 28); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + rotationX() { + const offset = this.bb.__offset(this.bb_pos, 30); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + rotationY() { + const offset = this.bb.__offset(this.bb_pos, 32); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + rotationZ() { + const offset = this.bb.__offset(this.bb_pos, 34); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + scaleX() { + const offset = this.bb.__offset(this.bb_pos, 36); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + scaleY() { + const offset = this.bb.__offset(this.bb_pos, 38); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + localscaleX() { + const offset = this.bb.__offset(this.bb_pos, 40); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + localscaleY() { + const offset = this.bb.__offset(this.bb_pos, 42); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + sizeX() { + const offset = this.bb.__offset(this.bb_pos, 44); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + sizeY() { + const offset = this.bb.__offset(this.bb_pos, 46); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvMoveX() { + const offset = this.bb.__offset(this.bb_pos, 48); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvMoveY() { + const offset = this.bb.__offset(this.bb_pos, 50); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvRotation() { + const offset = this.bb.__offset(this.bb_pos, 52); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvScaleX() { + const offset = this.bb.__offset(this.bb_pos, 54); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + uvScaleY() { + const offset = this.bb.__offset(this.bb_pos, 56); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + boundingRadius() { + const offset = this.bb.__offset(this.bb_pos, 58); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + instanceValueCurKeyframe() { + const offset = this.bb.__offset(this.bb_pos, 60); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + instanceValueStartFrame() { + const offset = this.bb.__offset(this.bb_pos, 62); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + instanceValueEndFrame() { + const offset = this.bb.__offset(this.bb_pos, 64); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + instanceValueLoopNum() { + const offset = this.bb.__offset(this.bb_pos, 66); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + instanceValueSpeed() { + const offset = this.bb.__offset(this.bb_pos, 68); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + instanceValueLoopflag() { + const offset = this.bb.__offset(this.bb_pos, 70); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + effectValueCurKeyframe() { + const offset = this.bb.__offset(this.bb_pos, 72); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + effectValueStartTime() { + const offset = this.bb.__offset(this.bb_pos, 74); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + effectValueSpeed() { + const offset = this.bb.__offset(this.bb_pos, 76); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + effectValueLoopflag() { + const offset = this.bb.__offset(this.bb_pos, 78); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + static startAnimationInitialData(builder) { + builder.startObject(38); + } + static addIndex(builder, index) { + builder.addFieldInt16(0, index, 0); + } + static addLowflag(builder, lowflag) { + builder.addFieldInt32(1, lowflag, 0); + } + static addHighflag(builder, highflag) { + builder.addFieldInt32(2, highflag, 0); + } + static addPriority(builder, priority) { + builder.addFieldInt16(3, priority, 0); + } + static addCellIndex(builder, cellIndex) { + builder.addFieldInt16(4, cellIndex, 0); + } + static addOpacity(builder, opacity) { + builder.addFieldInt16(5, opacity, 0); + } + static addLocalopacity(builder, localopacity) { + builder.addFieldInt16(6, localopacity, 0); + } + static addMasklimen(builder, masklimen) { + builder.addFieldInt16(7, masklimen, 0); + } + static addPositionX(builder, positionX) { + builder.addFieldFloat32(8, positionX, 0); + } + static addPositionY(builder, positionY) { + builder.addFieldFloat32(9, positionY, 0); + } + static addPositionZ(builder, positionZ) { + builder.addFieldFloat32(10, positionZ, 0); + } + static addPivotX(builder, pivotX) { + builder.addFieldFloat32(11, pivotX, 0); + } + static addPivotY(builder, pivotY) { + builder.addFieldFloat32(12, pivotY, 0); + } + static addRotationX(builder, rotationX) { + builder.addFieldFloat32(13, rotationX, 0); + } + static addRotationY(builder, rotationY) { + builder.addFieldFloat32(14, rotationY, 0); + } + static addRotationZ(builder, rotationZ) { + builder.addFieldFloat32(15, rotationZ, 0); + } + static addScaleX(builder, scaleX) { + builder.addFieldFloat32(16, scaleX, 0); + } + static addScaleY(builder, scaleY) { + builder.addFieldFloat32(17, scaleY, 0); + } + static addLocalscaleX(builder, localscaleX) { + builder.addFieldFloat32(18, localscaleX, 0); + } + static addLocalscaleY(builder, localscaleY) { + builder.addFieldFloat32(19, localscaleY, 0); + } + static addSizeX(builder, sizeX) { + builder.addFieldFloat32(20, sizeX, 0); + } + static addSizeY(builder, sizeY) { + builder.addFieldFloat32(21, sizeY, 0); + } + static addUvMoveX(builder, uvMoveX) { + builder.addFieldFloat32(22, uvMoveX, 0); + } + static addUvMoveY(builder, uvMoveY) { + builder.addFieldFloat32(23, uvMoveY, 0); + } + static addUvRotation(builder, uvRotation) { + builder.addFieldFloat32(24, uvRotation, 0); + } + static addUvScaleX(builder, uvScaleX) { + builder.addFieldFloat32(25, uvScaleX, 0); + } + static addUvScaleY(builder, uvScaleY) { + builder.addFieldFloat32(26, uvScaleY, 0); + } + static addBoundingRadius(builder, boundingRadius) { + builder.addFieldFloat32(27, boundingRadius, 0); + } + static addInstanceValueCurKeyframe(builder, instanceValueCurKeyframe) { + builder.addFieldInt32(28, instanceValueCurKeyframe, 0); + } + static addInstanceValueStartFrame(builder, instanceValueStartFrame) { + builder.addFieldInt32(29, instanceValueStartFrame, 0); + } + static addInstanceValueEndFrame(builder, instanceValueEndFrame) { + builder.addFieldInt32(30, instanceValueEndFrame, 0); + } + static addInstanceValueLoopNum(builder, instanceValueLoopNum) { + builder.addFieldInt32(31, instanceValueLoopNum, 0); + } + static addInstanceValueSpeed(builder, instanceValueSpeed) { + builder.addFieldFloat32(32, instanceValueSpeed, 0); + } + static addInstanceValueLoopflag(builder, instanceValueLoopflag) { + builder.addFieldInt32(33, instanceValueLoopflag, 0); + } + static addEffectValueCurKeyframe(builder, effectValueCurKeyframe) { + builder.addFieldInt32(34, effectValueCurKeyframe, 0); + } + static addEffectValueStartTime(builder, effectValueStartTime) { + builder.addFieldInt32(35, effectValueStartTime, 0); + } + static addEffectValueSpeed(builder, effectValueSpeed) { + builder.addFieldFloat32(36, effectValueSpeed, 0); + } + static addEffectValueLoopflag(builder, effectValueLoopflag) { + builder.addFieldInt32(37, effectValueLoopflag, 0); + } + static endAnimationInitialData(builder) { + return builder.endObject(); + } + static createAnimationInitialData(builder, index, lowflag, highflag, priority, cellIndex, opacity, localopacity, masklimen, positionX, positionY, positionZ, pivotX, pivotY, rotationX, rotationY, rotationZ, scaleX, scaleY, localscaleX, localscaleY, sizeX, sizeY, uvMoveX, uvMoveY, uvRotation, uvScaleX, uvScaleY, boundingRadius, instanceValueCurKeyframe, instanceValueStartFrame, instanceValueEndFrame, instanceValueLoopNum, instanceValueSpeed, instanceValueLoopflag, effectValueCurKeyframe, effectValueStartTime, effectValueSpeed, effectValueLoopflag) { + AnimationInitialData.startAnimationInitialData(builder); + AnimationInitialData.addIndex(builder, index); + AnimationInitialData.addLowflag(builder, lowflag); + AnimationInitialData.addHighflag(builder, highflag); + AnimationInitialData.addPriority(builder, priority); + AnimationInitialData.addCellIndex(builder, cellIndex); + AnimationInitialData.addOpacity(builder, opacity); + AnimationInitialData.addLocalopacity(builder, localopacity); + AnimationInitialData.addMasklimen(builder, masklimen); + AnimationInitialData.addPositionX(builder, positionX); + AnimationInitialData.addPositionY(builder, positionY); + AnimationInitialData.addPositionZ(builder, positionZ); + AnimationInitialData.addPivotX(builder, pivotX); + AnimationInitialData.addPivotY(builder, pivotY); + AnimationInitialData.addRotationX(builder, rotationX); + AnimationInitialData.addRotationY(builder, rotationY); + AnimationInitialData.addRotationZ(builder, rotationZ); + AnimationInitialData.addScaleX(builder, scaleX); + AnimationInitialData.addScaleY(builder, scaleY); + AnimationInitialData.addLocalscaleX(builder, localscaleX); + AnimationInitialData.addLocalscaleY(builder, localscaleY); + AnimationInitialData.addSizeX(builder, sizeX); + AnimationInitialData.addSizeY(builder, sizeY); + AnimationInitialData.addUvMoveX(builder, uvMoveX); + AnimationInitialData.addUvMoveY(builder, uvMoveY); + AnimationInitialData.addUvRotation(builder, uvRotation); + AnimationInitialData.addUvScaleX(builder, uvScaleX); + AnimationInitialData.addUvScaleY(builder, uvScaleY); + AnimationInitialData.addBoundingRadius(builder, boundingRadius); + AnimationInitialData.addInstanceValueCurKeyframe(builder, instanceValueCurKeyframe); + AnimationInitialData.addInstanceValueStartFrame(builder, instanceValueStartFrame); + AnimationInitialData.addInstanceValueEndFrame(builder, instanceValueEndFrame); + AnimationInitialData.addInstanceValueLoopNum(builder, instanceValueLoopNum); + AnimationInitialData.addInstanceValueSpeed(builder, instanceValueSpeed); + AnimationInitialData.addInstanceValueLoopflag(builder, instanceValueLoopflag); + AnimationInitialData.addEffectValueCurKeyframe(builder, effectValueCurKeyframe); + AnimationInitialData.addEffectValueStartTime(builder, effectValueStartTime); + AnimationInitialData.addEffectValueSpeed(builder, effectValueSpeed); + AnimationInitialData.addEffectValueLoopflag(builder, effectValueLoopflag); + return AnimationInitialData.endAnimationInitialData(builder); + } + }; + var partState = class partState { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAspartState(bb, obj) { + return (obj || new partState()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAspartState(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new partState()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + index() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + flag1() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + flag2() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + data(index) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readUint32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + dataLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + dataArray() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + static startpartState(builder) { + builder.startObject(4); + } + static addIndex(builder, index) { + builder.addFieldInt16(0, index, 0); + } + static addFlag1(builder, flag1) { + builder.addFieldInt32(1, flag1, 0); + } + static addFlag2(builder, flag2) { + builder.addFieldInt32(2, flag2, 0); + } + static addData(builder, dataOffset) { + builder.addFieldOffset(3, dataOffset, 0); + } + static createDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addInt32(data[i]); + return builder.endVector(); + } + static startDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endpartState(builder) { + return builder.endObject(); + } + static createpartState(builder, index, flag1, flag2, dataOffset) { + partState.startpartState(builder); + partState.addIndex(builder, index); + partState.addFlag1(builder, flag1); + partState.addFlag2(builder, flag2); + partState.addData(builder, dataOffset); + return partState.endpartState(builder); + } + }; + var frameDataIndex = class frameDataIndex { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsframeDataIndex(bb, obj) { + return (obj || new frameDataIndex()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsframeDataIndex(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new frameDataIndex()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + states(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? (obj || new partState()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + statesLength() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startframeDataIndex(builder) { + builder.startObject(1); + } + static addStates(builder, statesOffset) { + builder.addFieldOffset(0, statesOffset, 0); + } + static createStatesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startStatesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endframeDataIndex(builder) { + return builder.endObject(); + } + static createframeDataIndex(builder, statesOffset) { + frameDataIndex.startframeDataIndex(builder); + frameDataIndex.addStates(builder, statesOffset); + return frameDataIndex.endframeDataIndex(builder); + } + }; + var labelDataItem = class labelDataItem { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAslabelDataItem(bb, obj) { + return (obj || new labelDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAslabelDataItem(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new labelDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + label(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + frameIndex() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + static startlabelDataItem(builder) { + builder.startObject(2); + } + static addLabel(builder, labelOffset) { + builder.addFieldOffset(0, labelOffset, 0); + } + static addFrameIndex(builder, frameIndex) { + builder.addFieldInt16(1, frameIndex, 0); + } + static endlabelDataItem(builder) { + return builder.endObject(); + } + static createlabelDataItem(builder, labelOffset, frameIndex) { + labelDataItem.startlabelDataItem(builder); + labelDataItem.addLabel(builder, labelOffset); + labelDataItem.addFrameIndex(builder, frameIndex); + return labelDataItem.endlabelDataItem(builder); + } + }; + var meshDataIndices = class meshDataIndices { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsmeshDataIndices(bb, obj) { + return (obj || new meshDataIndices()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsmeshDataIndices(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new meshDataIndices()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + indices(index) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + indicesLength() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + indicesArray() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + static startmeshDataIndices(builder) { + builder.startObject(1); + } + static addIndices(builder, indicesOffset) { + builder.addFieldOffset(0, indicesOffset, 0); + } + static createIndicesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addFloat32(data[i]); + return builder.endVector(); + } + static startIndicesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endmeshDataIndices(builder) { + return builder.endObject(); + } + static createmeshDataIndices(builder, indicesOffset) { + meshDataIndices.startmeshDataIndices(builder); + meshDataIndices.addIndices(builder, indicesOffset); + return meshDataIndices.endmeshDataIndices(builder); + } + }; + var meshDataUV = class meshDataUV { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsmeshDataUV(bb, obj) { + return (obj || new meshDataUV()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsmeshDataUV(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new meshDataUV()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + uv(index) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + uvLength() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + uvArray() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + static startmeshDataUV(builder) { + builder.startObject(1); + } + static addUv(builder, uvOffset) { + builder.addFieldOffset(0, uvOffset, 0); + } + static createUvVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addFloat32(data[i]); + return builder.endVector(); + } + static startUvVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endmeshDataUV(builder) { + return builder.endObject(); + } + static createmeshDataUV(builder, uvOffset) { + meshDataUV.startmeshDataUV(builder); + meshDataUV.addUv(builder, uvOffset); + return meshDataUV.endmeshDataUV(builder); + } + }; + var userDataItem = class userDataItem { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsuserDataItem(bb, obj) { + return (obj || new userDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsuserDataItem(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new userDataItem()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + flags() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + arrayIndex() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + dataType(index) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; + } + dataTypeLength() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + dataTypeArray() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + data(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__union(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; + } + dataLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startuserDataItem(builder) { + builder.startObject(4); + } + static addFlags(builder, flags) { + builder.addFieldInt16(0, flags, 0); + } + static addArrayIndex(builder, arrayIndex) { + builder.addFieldInt16(1, arrayIndex, 0); + } + static addDataType(builder, dataTypeOffset) { + builder.addFieldOffset(2, dataTypeOffset, 0); + } + static createDataTypeVector(builder, data) { + builder.startVector(1, data.length, 1); + for (let i = data.length - 1; i >= 0; i--) builder.addInt8(data[i]); + return builder.endVector(); + } + static startDataTypeVector(builder, numElems) { + builder.startVector(1, numElems, 1); + } + static addData(builder, dataOffset) { + builder.addFieldOffset(3, dataOffset, 0); + } + static createDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static enduserDataItem(builder) { + return builder.endObject(); + } + static createuserDataItem(builder, flags, arrayIndex, dataTypeOffset, dataOffset) { + userDataItem.startuserDataItem(builder); + userDataItem.addFlags(builder, flags); + userDataItem.addArrayIndex(builder, arrayIndex); + userDataItem.addDataType(builder, dataTypeOffset); + userDataItem.addData(builder, dataOffset); + return userDataItem.enduserDataItem(builder); + } + }; + var userDataPerFrame = class userDataPerFrame { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsuserDataPerFrame(bb, obj) { + return (obj || new userDataPerFrame()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsuserDataPerFrame(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new userDataPerFrame()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + frameIndex() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + data(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new userDataItem()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + dataLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startuserDataPerFrame(builder) { + builder.startObject(2); + } + static addFrameIndex(builder, frameIndex) { + builder.addFieldInt16(0, frameIndex, 0); + } + static addData(builder, dataOffset) { + builder.addFieldOffset(1, dataOffset, 0); + } + static createDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static enduserDataPerFrame(builder) { + return builder.endObject(); + } + static createuserDataPerFrame(builder, frameIndex, dataOffset) { + userDataPerFrame.startuserDataPerFrame(builder); + userDataPerFrame.addFrameIndex(builder, frameIndex); + userDataPerFrame.addData(builder, dataOffset); + return userDataPerFrame.enduserDataPerFrame(builder); + } + }; + var AnimationData = class AnimationData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsAnimationData(bb, obj) { + return (obj || new AnimationData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsAnimationData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new AnimationData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + defaultData(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new AnimationInitialData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + defaultDataLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + frameData(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? (obj || new frameDataIndex()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + frameDataLength() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + userData(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? (obj || new userDataPerFrame()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + userDataLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + labelData(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? (obj || new labelDataItem()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + labelDataLength() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + meshsDataUv(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? (obj || new meshDataUV()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + meshsDataUvLength() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + meshsDataIndices(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? (obj || new meshDataIndices()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + meshsDataIndicesLength() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + startFrames() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + endFrames() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + totalFrames() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + fps() { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + labelNum() { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + canvasSizeW() { + const offset = this.bb.__offset(this.bb_pos, 28); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + canvasSizeH() { + const offset = this.bb.__offset(this.bb_pos, 30); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + canvasPvotX() { + const offset = this.bb.__offset(this.bb_pos, 32); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + canvasPvotY() { + const offset = this.bb.__offset(this.bb_pos, 34); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + static startAnimationData(builder) { + builder.startObject(16); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addDefaultData(builder, defaultDataOffset) { + builder.addFieldOffset(1, defaultDataOffset, 0); + } + static createDefaultDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startDefaultDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addFrameData(builder, frameDataOffset) { + builder.addFieldOffset(2, frameDataOffset, 0); + } + static createFrameDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startFrameDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addUserData(builder, userDataOffset) { + builder.addFieldOffset(3, userDataOffset, 0); + } + static createUserDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startUserDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addLabelData(builder, labelDataOffset) { + builder.addFieldOffset(4, labelDataOffset, 0); + } + static createLabelDataVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startLabelDataVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addMeshsDataUv(builder, meshsDataUvOffset) { + builder.addFieldOffset(5, meshsDataUvOffset, 0); + } + static createMeshsDataUvVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startMeshsDataUvVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addMeshsDataIndices(builder, meshsDataIndicesOffset) { + builder.addFieldOffset(6, meshsDataIndicesOffset, 0); + } + static createMeshsDataIndicesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startMeshsDataIndicesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addStartFrames(builder, startFrames) { + builder.addFieldInt16(7, startFrames, 0); + } + static addEndFrames(builder, endFrames) { + builder.addFieldInt16(8, endFrames, 0); + } + static addTotalFrames(builder, totalFrames) { + builder.addFieldInt16(9, totalFrames, 0); + } + static addFps(builder, fps) { + builder.addFieldInt16(10, fps, 0); + } + static addLabelNum(builder, labelNum) { + builder.addFieldInt16(11, labelNum, 0); + } + static addCanvasSizeW(builder, canvasSizeW) { + builder.addFieldInt16(12, canvasSizeW, 0); + } + static addCanvasSizeH(builder, canvasSizeH) { + builder.addFieldInt16(13, canvasSizeH, 0); + } + static addCanvasPvotX(builder, canvasPvotX) { + builder.addFieldFloat32(14, canvasPvotX, 0); + } + static addCanvasPvotY(builder, canvasPvotY) { + builder.addFieldFloat32(15, canvasPvotY, 0); + } + static endAnimationData(builder) { + return builder.endObject(); + } + static createAnimationData(builder, nameOffset, defaultDataOffset, frameDataOffset, userDataOffset, labelDataOffset, meshsDataUvOffset, meshsDataIndicesOffset, startFrames, endFrames, totalFrames, fps, labelNum, canvasSizeW, canvasSizeH, canvasPvotX, canvasPvotY) { + AnimationData.startAnimationData(builder); + AnimationData.addName(builder, nameOffset); + AnimationData.addDefaultData(builder, defaultDataOffset); + AnimationData.addFrameData(builder, frameDataOffset); + AnimationData.addUserData(builder, userDataOffset); + AnimationData.addLabelData(builder, labelDataOffset); + AnimationData.addMeshsDataUv(builder, meshsDataUvOffset); + AnimationData.addMeshsDataIndices(builder, meshsDataIndicesOffset); + AnimationData.addStartFrames(builder, startFrames); + AnimationData.addEndFrames(builder, endFrames); + AnimationData.addTotalFrames(builder, totalFrames); + AnimationData.addFps(builder, fps); + AnimationData.addLabelNum(builder, labelNum); + AnimationData.addCanvasSizeW(builder, canvasSizeW); + AnimationData.addCanvasSizeH(builder, canvasSizeH); + AnimationData.addCanvasPvotX(builder, canvasPvotX); + AnimationData.addCanvasPvotY(builder, canvasPvotY); + return AnimationData.endAnimationData(builder); + } + }; + let SsPartType = /* @__PURE__ */ function(SsPartType) { + SsPartType[SsPartType["Invalid"] = -1] = "Invalid"; + SsPartType[SsPartType["Nulltype"] = 0] = "Nulltype"; + SsPartType[SsPartType["Normal"] = 1] = "Normal"; + SsPartType[SsPartType["Text"] = 2] = "Text"; + SsPartType[SsPartType["Instance"] = 3] = "Instance"; + SsPartType[SsPartType["Armature"] = 4] = "Armature"; + SsPartType[SsPartType["Effect"] = 5] = "Effect"; + SsPartType[SsPartType["Mesh"] = 6] = "Mesh"; + SsPartType[SsPartType["Movenode"] = 7] = "Movenode"; + SsPartType[SsPartType["Constraint"] = 8] = "Constraint"; + SsPartType[SsPartType["Mask"] = 9] = "Mask"; + SsPartType[SsPartType["Joint"] = 10] = "Joint"; + SsPartType[SsPartType["Bonepoint"] = 11] = "Bonepoint"; + return SsPartType; + }({}); + var PartData = class PartData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsPartData(bb, obj) { + return (obj || new PartData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsPartData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new PartData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + index() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + parentIndex() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + type() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt8(this.bb_pos + offset) : SsPartType.Nulltype; + } + boundsType() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + alphaBlendType() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + refname(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + effectfilename(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + colorLabel(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + maskInfluence() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + static startPartData(builder) { + builder.startObject(10); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addIndex(builder, index) { + builder.addFieldInt16(1, index, 0); + } + static addParentIndex(builder, parentIndex) { + builder.addFieldInt16(2, parentIndex, 0); + } + static addType(builder, type) { + builder.addFieldInt8(3, type, SsPartType.Nulltype); + } + static addBoundsType(builder, boundsType) { + builder.addFieldInt16(4, boundsType, 0); + } + static addAlphaBlendType(builder, alphaBlendType) { + builder.addFieldInt16(5, alphaBlendType, 0); + } + static addRefname(builder, refnameOffset) { + builder.addFieldOffset(6, refnameOffset, 0); + } + static addEffectfilename(builder, effectfilenameOffset) { + builder.addFieldOffset(7, effectfilenameOffset, 0); + } + static addColorLabel(builder, colorLabelOffset) { + builder.addFieldOffset(8, colorLabelOffset, 0); + } + static addMaskInfluence(builder, maskInfluence) { + builder.addFieldInt16(9, maskInfluence, 0); + } + static endPartData(builder) { + return builder.endObject(); + } + static createPartData(builder, nameOffset, index, parentIndex, type, boundsType, alphaBlendType, refnameOffset, effectfilenameOffset, colorLabelOffset, maskInfluence) { + PartData.startPartData(builder); + PartData.addName(builder, nameOffset); + PartData.addIndex(builder, index); + PartData.addParentIndex(builder, parentIndex); + PartData.addType(builder, type); + PartData.addBoundsType(builder, boundsType); + PartData.addAlphaBlendType(builder, alphaBlendType); + PartData.addRefname(builder, refnameOffset); + PartData.addEffectfilename(builder, effectfilenameOffset); + PartData.addColorLabel(builder, colorLabelOffset); + PartData.addMaskInfluence(builder, maskInfluence); + return PartData.endPartData(builder); + } + }; + var AnimePackData = class AnimePackData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsAnimePackData(bb, obj) { + return (obj || new AnimePackData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsAnimePackData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new AnimePackData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + parts(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new PartData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + partsLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + animations(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? (obj || new AnimationData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + animationsLength() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startAnimePackData(builder) { + builder.startObject(3); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addParts(builder, partsOffset) { + builder.addFieldOffset(1, partsOffset, 0); + } + static createPartsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startPartsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addAnimations(builder, animationsOffset) { + builder.addFieldOffset(2, animationsOffset, 0); + } + static createAnimationsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startAnimationsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endAnimePackData(builder) { + return builder.endObject(); + } + static createAnimePackData(builder, nameOffset, partsOffset, animationsOffset) { + AnimePackData.startAnimePackData(builder); + AnimePackData.addName(builder, nameOffset); + AnimePackData.addParts(builder, partsOffset); + AnimePackData.addAnimations(builder, animationsOffset); + return AnimePackData.endAnimePackData(builder); + } + }; + var CellMap = class CellMap { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsCellMap(bb, obj) { + return (obj || new CellMap()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsCellMap(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new CellMap()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + imagePath(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + index() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + wrapmode() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + filtermode() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + static startCellMap(builder) { + builder.startObject(5); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addImagePath(builder, imagePathOffset) { + builder.addFieldOffset(1, imagePathOffset, 0); + } + static addIndex(builder, index) { + builder.addFieldInt16(2, index, 0); + } + static addWrapmode(builder, wrapmode) { + builder.addFieldInt16(3, wrapmode, 0); + } + static addFiltermode(builder, filtermode) { + builder.addFieldInt16(4, filtermode, 0); + } + static endCellMap(builder) { + return builder.endObject(); + } + static createCellMap(builder, nameOffset, imagePathOffset, index, wrapmode, filtermode) { + CellMap.startCellMap(builder); + CellMap.addName(builder, nameOffset); + CellMap.addImagePath(builder, imagePathOffset); + CellMap.addIndex(builder, index); + CellMap.addWrapmode(builder, wrapmode); + CellMap.addFiltermode(builder, filtermode); + return CellMap.endCellMap(builder); + } + }; + var Cell = class Cell { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsCell(bb, obj) { + return (obj || new Cell()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsCell(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new Cell()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + cellMap(obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new CellMap()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + indexInCellMap() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + x() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + y() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + width() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + height() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + pivotX() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + pivotY() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + u1() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + v1() { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + u2() { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + v2() { + const offset = this.bb.__offset(this.bb_pos, 28); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + static startCell(builder) { + builder.startObject(13); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addCellMap(builder, cellMapOffset) { + builder.addFieldOffset(1, cellMapOffset, 0); + } + static addIndexInCellMap(builder, indexInCellMap) { + builder.addFieldInt16(2, indexInCellMap, 0); + } + static addX(builder, x) { + builder.addFieldInt16(3, x, 0); + } + static addY(builder, y) { + builder.addFieldInt16(4, y, 0); + } + static addWidth(builder, width) { + builder.addFieldInt16(5, width, 0); + } + static addHeight(builder, height) { + builder.addFieldInt16(6, height, 0); + } + static addPivotX(builder, pivotX) { + builder.addFieldFloat32(7, pivotX, 0); + } + static addPivotY(builder, pivotY) { + builder.addFieldFloat32(8, pivotY, 0); + } + static addU1(builder, u1) { + builder.addFieldFloat32(9, u1, 0); + } + static addV1(builder, v1) { + builder.addFieldFloat32(10, v1, 0); + } + static addU2(builder, u2) { + builder.addFieldFloat32(11, u2, 0); + } + static addV2(builder, v2) { + builder.addFieldFloat32(12, v2, 0); + } + static endCell(builder) { + return builder.endObject(); + } + }; + var EffectNode = class EffectNode { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsEffectNode(bb, obj) { + return (obj || new EffectNode()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsEffectNode(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new EffectNode()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + arrayIndex() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + parentIndex() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + type() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + cellIndex() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + blendType() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + numBehavior() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + behaviorType(index) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; + } + behaviorTypeLength() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + behaviorTypeArray() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + behavior(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__union(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; + } + behaviorLength() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startEffectNode(builder) { + builder.startObject(8); + } + static addArrayIndex(builder, arrayIndex) { + builder.addFieldInt16(0, arrayIndex, 0); + } + static addParentIndex(builder, parentIndex) { + builder.addFieldInt16(1, parentIndex, 0); + } + static addType(builder, type) { + builder.addFieldInt16(2, type, 0); + } + static addCellIndex(builder, cellIndex) { + builder.addFieldInt16(3, cellIndex, 0); + } + static addBlendType(builder, blendType) { + builder.addFieldInt16(4, blendType, 0); + } + static addNumBehavior(builder, numBehavior) { + builder.addFieldInt16(5, numBehavior, 0); + } + static addBehaviorType(builder, behaviorTypeOffset) { + builder.addFieldOffset(6, behaviorTypeOffset, 0); + } + static createBehaviorTypeVector(builder, data) { + builder.startVector(1, data.length, 1); + for (let i = data.length - 1; i >= 0; i--) builder.addInt8(data[i]); + return builder.endVector(); + } + static startBehaviorTypeVector(builder, numElems) { + builder.startVector(1, numElems, 1); + } + static addBehavior(builder, behaviorOffset) { + builder.addFieldOffset(7, behaviorOffset, 0); + } + static createBehaviorVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startBehaviorVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endEffectNode(builder) { + return builder.endObject(); + } + static createEffectNode(builder, arrayIndex, parentIndex, type, cellIndex, blendType, numBehavior, behaviorTypeOffset, behaviorOffset) { + EffectNode.startEffectNode(builder); + EffectNode.addArrayIndex(builder, arrayIndex); + EffectNode.addParentIndex(builder, parentIndex); + EffectNode.addType(builder, type); + EffectNode.addCellIndex(builder, cellIndex); + EffectNode.addBlendType(builder, blendType); + EffectNode.addNumBehavior(builder, numBehavior); + EffectNode.addBehaviorType(builder, behaviorTypeOffset); + EffectNode.addBehavior(builder, behaviorOffset); + return EffectNode.endEffectNode(builder); + } + }; + var EffectFile = class EffectFile { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsEffectFile(bb, obj) { + return (obj || new EffectFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsEffectFile(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new EffectFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + fps() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + isLockRandSeed() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + lockRandSeed() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + layoutScaleX() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + layoutScaleY() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + numNodeList() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + effectNode(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? (obj || new EffectNode()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + effectNodeLength() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static startEffectFile(builder) { + builder.startObject(8); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addFps(builder, fps) { + builder.addFieldInt16(1, fps, 0); + } + static addIsLockRandSeed(builder, isLockRandSeed) { + builder.addFieldInt16(2, isLockRandSeed, 0); + } + static addLockRandSeed(builder, lockRandSeed) { + builder.addFieldInt16(3, lockRandSeed, 0); + } + static addLayoutScaleX(builder, layoutScaleX) { + builder.addFieldInt16(4, layoutScaleX, 0); + } + static addLayoutScaleY(builder, layoutScaleY) { + builder.addFieldInt16(5, layoutScaleY, 0); + } + static addNumNodeList(builder, numNodeList) { + builder.addFieldInt16(6, numNodeList, 0); + } + static addEffectNode(builder, effectNodeOffset) { + builder.addFieldOffset(7, effectNodeOffset, 0); + } + static createEffectNodeVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startEffectNodeVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endEffectFile(builder) { + return builder.endObject(); + } + static createEffectFile(builder, nameOffset, fps, isLockRandSeed, lockRandSeed, layoutScaleX, layoutScaleY, numNodeList, effectNodeOffset) { + EffectFile.startEffectFile(builder); + EffectFile.addName(builder, nameOffset); + EffectFile.addFps(builder, fps); + EffectFile.addIsLockRandSeed(builder, isLockRandSeed); + EffectFile.addLockRandSeed(builder, lockRandSeed); + EffectFile.addLayoutScaleX(builder, layoutScaleX); + EffectFile.addLayoutScaleY(builder, layoutScaleY); + EffectFile.addNumNodeList(builder, numNodeList); + EffectFile.addEffectNode(builder, effectNodeOffset); + return EffectFile.endEffectFile(builder); + } + }; + let PART_FLAG = /* @__PURE__ */ function(PART_FLAG) { + PART_FLAG[PART_FLAG["INVISIBLE"] = 1] = "INVISIBLE"; + PART_FLAG[PART_FLAG["FLIP_H"] = 2] = "FLIP_H"; + PART_FLAG[PART_FLAG["FLIP_V"] = 4] = "FLIP_V"; + PART_FLAG[PART_FLAG["CELL_INDEX"] = 8] = "CELL_INDEX"; + PART_FLAG[PART_FLAG["POSITION_X"] = 16] = "POSITION_X"; + PART_FLAG[PART_FLAG["POSITION_Y"] = 32] = "POSITION_Y"; + PART_FLAG[PART_FLAG["POSITION_Z"] = 64] = "POSITION_Z"; + PART_FLAG[PART_FLAG["PIVOT_X"] = 128] = "PIVOT_X"; + PART_FLAG[PART_FLAG["PIVOT_Y"] = 256] = "PIVOT_Y"; + PART_FLAG[PART_FLAG["ROTATIONX"] = 512] = "ROTATIONX"; + PART_FLAG[PART_FLAG["ROTATIONY"] = 1024] = "ROTATIONY"; + PART_FLAG[PART_FLAG["ROTATIONZ"] = 2048] = "ROTATIONZ"; + PART_FLAG[PART_FLAG["SCALE_X"] = 4096] = "SCALE_X"; + PART_FLAG[PART_FLAG["SCALE_Y"] = 8192] = "SCALE_Y"; + PART_FLAG[PART_FLAG["LOCALSCALE_X"] = 16384] = "LOCALSCALE_X"; + PART_FLAG[PART_FLAG["LOCALSCALE_Y"] = 32768] = "LOCALSCALE_Y"; + PART_FLAG[PART_FLAG["OPACITY"] = 65536] = "OPACITY"; + PART_FLAG[PART_FLAG["LOCALOPACITY"] = 131072] = "LOCALOPACITY"; + PART_FLAG[PART_FLAG["PARTS_COLOR"] = 262144] = "PARTS_COLOR"; + PART_FLAG[PART_FLAG["VERTEX_TRANSFORM"] = 524288] = "VERTEX_TRANSFORM"; + PART_FLAG[PART_FLAG["SIZE_X"] = 1048576] = "SIZE_X"; + PART_FLAG[PART_FLAG["SIZE_Y"] = 2097152] = "SIZE_Y"; + PART_FLAG[PART_FLAG["U_MOVE"] = 4194304] = "U_MOVE"; + PART_FLAG[PART_FLAG["V_MOVE"] = 8388608] = "V_MOVE"; + PART_FLAG[PART_FLAG["UV_ROTATION"] = 16777216] = "UV_ROTATION"; + PART_FLAG[PART_FLAG["U_SCALE"] = 33554432] = "U_SCALE"; + PART_FLAG[PART_FLAG["V_SCALE"] = 67108864] = "V_SCALE"; + PART_FLAG[PART_FLAG["BOUNDINGRADIUS"] = 134217728] = "BOUNDINGRADIUS"; + PART_FLAG[PART_FLAG["MASK"] = 268435456] = "MASK"; + PART_FLAG[PART_FLAG["PRIORITY"] = 536870912] = "PRIORITY"; + PART_FLAG[PART_FLAG["INSTANCE_KEYFRAME"] = 1073741824] = "INSTANCE_KEYFRAME"; + PART_FLAG[PART_FLAG["EFFECT_KEYFRAME"] = 2147483648] = "EFFECT_KEYFRAME"; + return PART_FLAG; + }({}); + let PART_FLAG2 = /* @__PURE__ */ function(PART_FLAG2) { + PART_FLAG2[PART_FLAG2["MESHDATA"] = 1] = "MESHDATA"; + return PART_FLAG2; + }({}); + var ProjectData = class ProjectData { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsProjectData(bb, obj) { + return (obj || new ProjectData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsProjectData(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new ProjectData()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static bufferHasIdentifier(bb) { + return bb.__has_identifier("SSFB"); + } + dataId() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + version() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + flags() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + imageBaseDir(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + cells(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? (obj || new Cell()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + cellsLength() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + animePacks(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? (obj || new AnimePackData()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + animePacksLength() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + effectFileList(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? (obj || new EffectFile()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + effectFileListLength() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + numCells() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + numAnimePacks() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + numEffectFileList() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + static startProjectData(builder) { + builder.startObject(10); + } + static addDataId(builder, dataId) { + builder.addFieldInt32(0, dataId, 0); + } + static addVersion(builder, version) { + builder.addFieldInt32(1, version, 0); + } + static addFlags(builder, flags) { + builder.addFieldInt32(2, flags, 0); + } + static addImageBaseDir(builder, imageBaseDirOffset) { + builder.addFieldOffset(3, imageBaseDirOffset, 0); + } + static addCells(builder, cellsOffset) { + builder.addFieldOffset(4, cellsOffset, 0); + } + static createCellsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startCellsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addAnimePacks(builder, animePacksOffset) { + builder.addFieldOffset(5, animePacksOffset, 0); + } + static createAnimePacksVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startAnimePacksVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addEffectFileList(builder, effectFileListOffset) { + builder.addFieldOffset(6, effectFileListOffset, 0); + } + static createEffectFileListVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); + return builder.endVector(); + } + static startEffectFileListVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addNumCells(builder, numCells) { + builder.addFieldInt16(7, numCells, 0); + } + static addNumAnimePacks(builder, numAnimePacks) { + builder.addFieldInt16(8, numAnimePacks, 0); + } + static addNumEffectFileList(builder, numEffectFileList) { + builder.addFieldInt16(9, numEffectFileList, 0); + } + static endProjectData(builder) { + return builder.endObject(); + } + static finishProjectDataBuffer(builder, offset) { + builder.finish(offset, "SSFB"); + } + static finishSizePrefixedProjectDataBuffer(builder, offset) { + builder.finish(offset, "SSFB", true); + } + static createProjectData(builder, dataId, version, flags, imageBaseDirOffset, cellsOffset, animePacksOffset, effectFileListOffset, numCells, numAnimePacks, numEffectFileList) { + ProjectData.startProjectData(builder); + ProjectData.addDataId(builder, dataId); + ProjectData.addVersion(builder, version); + ProjectData.addFlags(builder, flags); + ProjectData.addImageBaseDir(builder, imageBaseDirOffset); + ProjectData.addCells(builder, cellsOffset); + ProjectData.addAnimePacks(builder, animePacksOffset); + ProjectData.addEffectFileList(builder, effectFileListOffset); + ProjectData.addNumCells(builder, numCells); + ProjectData.addNumAnimePacks(builder, numAnimePacks); + ProjectData.addNumEffectFileList(builder, numEffectFileList); + return ProjectData.endProjectData(builder); + } + }; + var userDataInteger = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + integer() { + return this.bb.readInt32(this.bb_pos); + } + static sizeOf() { + return 4; + } + static createuserDataInteger(builder, integer) { + builder.prep(4, 4); + builder.writeInt32(integer); + return builder.offset(); + } + }; + var userDataPoint = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + x() { + return this.bb.readInt32(this.bb_pos); + } + y() { + return this.bb.readInt32(this.bb_pos + 4); + } + static sizeOf() { + return 8; + } + static createuserDataPoint(builder, x, y) { + builder.prep(4, 8); + builder.writeInt32(y); + builder.writeInt32(x); + return builder.offset(); + } + }; + var userDataRect = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + x() { + return this.bb.readInt32(this.bb_pos); + } + y() { + return this.bb.readInt32(this.bb_pos + 4); + } + w() { + return this.bb.readInt32(this.bb_pos + 8); + } + h() { + return this.bb.readInt32(this.bb_pos + 12); + } + static sizeOf() { + return 16; + } + static createuserDataRect(builder, x, y, w, h) { + builder.prep(4, 16); + builder.writeInt32(h); + builder.writeInt32(w); + builder.writeInt32(y); + builder.writeInt32(x); + return builder.offset(); + } + }; + var userDataString = class userDataString { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsuserDataString(bb, obj) { + return (obj || new userDataString()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsuserDataString(bb, obj) { + bb.setPosition(bb.position() + 4); + return (obj || new userDataString()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + length() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + data(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + static startuserDataString(builder) { + builder.startObject(2); + } + static addLength(builder, length) { + builder.addFieldInt32(0, length, 0); + } + static addData(builder, dataOffset) { + builder.addFieldOffset(1, dataOffset, 0); + } + static enduserDataString(builder) { + return builder.endObject(); + } + static createuserDataString(builder, length, dataOffset) { + userDataString.startuserDataString(builder); + userDataString.addLength(builder, length); + userDataString.addData(builder, dataOffset); + return userDataString.enduserDataString(builder); + } + }; + var Utils$1 = class { + static getProjectData(bytes) { + const buf = new ByteBuffer(bytes); + return ProjectData.getRootAsProjectData(buf); + } + }; + var Utils = class { + static getProjectData(bytes) { + return Utils$1.getProjectData(bytes); + } + }; + var Player = class { + get fbObj() { + return this._fbObj; + } + get animePackName() { + return this.curAnimePackName; + } + get animeName() { + return this.curAnimeName; + } + get animePackIdx() { + return this._animePackIdx; + } + get animePackData() { + return this.curAnimePackData; + } + get animationData() { + return this.curAnimation; + } + get parentIndex() { + return this._parentIndex; + } + get prio2index() { + return this._prio2index; + } + constructor(ssfbData, animePackName = null, animeName = null) { + this.curAnimePackName = null; + this.curAnimeName = null; + this.curAnimation = null; + this.curAnimePackData = null; + this._animePackIdx = -1; + this._parentIndex = []; + this._prio2index = []; + this.userData = []; + this.frameDataCache = null; + this.currentCachedFrameNumber = -1; + this.defaultFrameMap = []; + this._uint32 = new Uint32Array(1); + this._float32 = new Float32Array(this._uint32.buffer); + if (Object.prototype.hasOwnProperty.call(ssfbData, "bb")) this._fbObj = ssfbData; + else this._fbObj = Utils.getProjectData(ssfbData); + if (animePackName !== null && animeName !== null) this.Setup(animePackName, animeName); + } + /** + * Setup + * @param {string} animePackName - The name of animePack(SSAE). + * @param {string} animeName - The name of animation. + */ + Setup(animePackName, animeName) { + this.clearCaches(); + const animePacksLength = this._fbObj.animePacksLength(); + let found = false; + for (let i = 0; i < animePacksLength; i++) if (this._fbObj.animePacks(i).name() === animePackName) { + let j; + const animationsLength = this._fbObj.animePacks(i).animationsLength(); + for (j = 0; j < animationsLength; j++) if (this._fbObj.animePacks(i).animations(j).name() === animeName) { + this.curAnimePackName = animePackName; + this.curAnimeName = animeName; + this.curAnimePackData = this._fbObj.animePacks(i); + this.curAnimation = this.curAnimePackData.animations(j); + found = true; + break; + } + if (!found) continue; + const defaultDataLength = this.curAnimation.defaultDataLength(); + for (let j = 0; j < defaultDataLength; j++) { + const curDefaultData = this.curAnimation.defaultData(j); + this.defaultFrameMap[curDefaultData.index()] = curDefaultData; + } + this._animePackIdx = i; + const partsLength = this.curAnimePackData.partsLength(); + this._parentIndex = new Array(partsLength); + for (j = 0; j < partsLength; j++) { + const index = this.curAnimePackData.parts(j).index(); + this._parentIndex[index] = this._fbObj.animePacks(i).parts(j).parentIndex(); + } + } + if (!found) throw Error("not found animePackName: " + animePackName + " animeName: " + animeName); + } + clearCaches() { + this._prio2index = []; + this.userData = []; + this.frameDataCache = null; + this.currentCachedFrameNumber = -1; + this.defaultFrameMap = []; + } + /** + * ユーザーデータコールバックの設定 + * @param fn + * @constructor + * + * ユーザーデータのフォーマット + * data = [[d0,d1,...,d10],[da0,da1,...,da10],...]) + * data.length : 当該フレームでユーザーデータの存在するパーツ(レイヤー)数 + * d0 : パーツ(レイヤー)番号 + * d1 : 有効データビット(&1:int, &2:rect(int*4), &4:pos(int*2), &8:string) + * d2 : int(int) + * d3 : rect0(int) + * d4 : rect1(int) + * d5 : rect2(int) + * d6 : rect3(int) + * d7 : pos0(int) + * d8 : pos1(int) + * d9 : string.length(int) + * d10: string(string) + * + */ + /** + * ユーザーデータの存在チェック + * @param {number} frameNumber - フレーム番号 + * @return {boolean} - 存在するかどうか + */ + HaveUserData(frameNumber) { + if (this.userData[frameNumber] === null) return false; + if (this.userData[frameNumber] !== void 0) return true; + for (let k = 0; k < this.curAnimation.userDataLength(); k++) if (frameNumber === this.curAnimation.userData(k).frameIndex()) { + this.userData[frameNumber] = this.curAnimation.userData(k); + return true; + } + this.userData[frameNumber] = null; + return false; + } + /** + * ユーザーデータの取得 + * @param {number} frameNumber - フレーム番号 + * @return {array} - ユーザーデータ + */ + GetUserData(frameNumber) { + if (this.HaveUserData(frameNumber) === false) return; + const framedata = this.userData[frameNumber]; + const layers = framedata.dataLength(); + let id = 0; + let data = []; + for (let i = 0; i < layers; i++) { + const bit = framedata.data(i).flags(); + const partsID = framedata.data(i).arrayIndex(); + let d_int = null; + let d_rect_x = null; + let d_rect_y = null; + let d_rect_w = null; + let d_rect_h = null; + let d_pos_x = null; + let d_pos_y = null; + let d_string_length = null; + let d_string = null; + if (bit & 1) { + d_int = framedata.data(i).data(id, new userDataInteger()).integer(); + id++; + } + if (bit & 2) { + d_rect_x = framedata.data(i).data(id, new userDataRect()).x(); + d_rect_y = framedata.data(i).data(id, new userDataRect()).y(); + d_rect_w = framedata.data(i).data(id, new userDataRect()).w(); + d_rect_h = framedata.data(i).data(id, new userDataRect()).h(); + id++; + } + if (bit & 4) { + d_pos_x = framedata.data(i).data(id, new userDataPoint()).x(); + d_pos_y = framedata.data(i).data(id, new userDataPoint()).y(); + id++; + } + if (bit & 8) { + d_string_length = framedata.data(i).data(id, new userDataString()).length(); + d_string = framedata.data(i).data(id, new userDataString()).data(); + id++; + } + data.push([ + partsID, + bit, + d_int, + d_rect_x, + d_rect_y, + d_rect_w, + d_rect_h, + d_pos_x, + d_pos_y, + d_string_length, + d_string + ]); + } + return data; + } + /** + * int型からfloat型に変換する + * @return {floatView[0]} - float型に変換したデータ + */ + I2F(i) { + this._uint32[0] = i; + return this._float32[0]; + } + /** + * 1フレーム分のデータを取得する(未設定項目はデフォルト) + * [注意]現verでは未対応項目があると正常動作しない可能性があります + * @param {number} frameNumber - フレーム番号 + */ + GetFrameData(frameNumber) { + if (this.currentCachedFrameNumber === frameNumber && this.frameDataCache) return this.frameDataCache; + const layers = this.curAnimation.defaultDataLength(); + let frameData = new Array(layers); + this._prio2index = new Array(layers); + const curFrameData = this.curAnimation.frameData(frameNumber); + for (let i = 0; i < layers; i++) { + const curPartState = curFrameData.states(i); + const index = curPartState.index(); + let f1 = curPartState.flag1(); + let f2 = curPartState.flag2(); + let fd = this.GetDefaultDataByIndex(index); + fd.flag1 = f1; + fd.flag2 = f2; + let id = 0; + if (f1 & PART_FLAG.INVISIBLE) fd.f_hide = true; + if (f1 & PART_FLAG.FLIP_H) fd.f_flipH = true; + if (f1 & PART_FLAG.FLIP_V) fd.f_flipV = true; + if (f1 & PART_FLAG.CELL_INDEX) fd.cellIndex = curPartState.data(id++); + if (f1 & PART_FLAG.POSITION_X) fd.positionX = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.POSITION_Y) fd.positionY = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.POSITION_Z) id++; + if (f1 & PART_FLAG.PIVOT_X) fd.pivotX = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.PIVOT_Y) fd.pivotY = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.ROTATIONX) id++; + if (f1 & PART_FLAG.ROTATIONY) id++; + if (f1 & PART_FLAG.ROTATIONZ) fd.rotationZ = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.SCALE_X) fd.scaleX = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.SCALE_Y) fd.scaleY = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.LOCALSCALE_X) fd.localscaleX = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.LOCALSCALE_Y) fd.localscaleY = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.OPACITY) fd.opacity = curPartState.data(id++); + if (f1 & PART_FLAG.LOCALOPACITY) fd.localopacity = curPartState.data(id++); + if (f1 & PART_FLAG.SIZE_X) fd.size_X = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.SIZE_Y) fd.size_Y = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.U_MOVE) fd.uv_move_X = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.V_MOVE) fd.uv_move_Y = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.UV_ROTATION) fd.uv_rotation = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.U_SCALE) fd.uv_scale_X = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.V_SCALE) fd.uv_scale_Y = this.I2F(curPartState.data(id++)); + if (f1 & PART_FLAG.BOUNDINGRADIUS) id++; + if (f1 & PART_FLAG.MASK) fd.masklimen = curPartState.data(id++); + if (f1 & PART_FLAG.PRIORITY) fd.priority = curPartState.data(id++); + if (f1 & PART_FLAG.INSTANCE_KEYFRAME) { + fd.instanceValue_curKeyframe = curPartState.data(id++); + fd.instanceValue_startFrame = curPartState.data(id++); + fd.instanceValue_endFrame = curPartState.data(id++); + fd.instanceValue_loopNum = curPartState.data(id++); + fd.instanceValue_speed = this.I2F(curPartState.data(id++)); + fd.instanceValue_loopflag = curPartState.data(id++); + } + if (f1 & PART_FLAG.EFFECT_KEYFRAME) { + fd.effectValue_curKeyframe = curPartState.data(id++); + fd.effectValue_startTime = curPartState.data(id++); + fd.effectValue_speed = this.I2F(curPartState.data(id++)); + fd.effectValue_loopflag = curPartState.data(id++); + } + if (f1 & PART_FLAG.VERTEX_TRANSFORM) { + fd.f_mesh = true; + const f = fd.i_transformVerts = curPartState.data(id++); + if (f & 1) { + fd.u00 = this.I2F(curPartState.data(id++)); + fd.v00 = this.I2F(curPartState.data(id++)); + } + if (f & 2) { + fd.u01 = this.I2F(curPartState.data(id++)); + fd.v01 = this.I2F(curPartState.data(id++)); + } + if (f & 4) { + fd.u10 = this.I2F(curPartState.data(id++)); + fd.v10 = this.I2F(curPartState.data(id++)); + } + if (f & 8) { + fd.u11 = this.I2F(curPartState.data(id++)); + fd.v11 = this.I2F(curPartState.data(id++)); + } + } + if (f1 & PART_FLAG.PARTS_COLOR) { + const f = curPartState.data(id++); + fd.colorBlendType = f & 255; + fd.useColorMatrix = fd.colorBlendType !== 1; + if (f & 4096) { + fd.colorRate = this.I2F(curPartState.data(id++)); + const bf = curPartState.data(id++); + const bf2 = curPartState.data(id++); + fd.colorArgb32 = bf << 16 | bf2; + fd.partsColorARGB = fd.colorArgb32 >>> 0; + if (fd.colorBlendType === 1) fd.tint = fd.colorArgb32 & 16777215; + } + } + if (f2 & PART_FLAG2.MESHDATA) { + const meshUv = this.curAnimation.meshsDataUv(index); + fd.meshIsBind = meshUv.uv(0); + fd.meshNum = meshUv.uv(1); + let mp = new Float32Array(fd.meshNum * 3); + for (let idx = 0; idx < fd.meshNum; idx++) { + const mx = this.I2F(curPartState.data(id++)); + const my = this.I2F(curPartState.data(id++)); + const mz = this.I2F(curPartState.data(id++)); + mp[idx * 3 + 0] = mx; + mp[idx * 3 + 1] = my; + mp[idx * 3 + 2] = mz; + } + fd.meshDataPoint = mp; + } + frameData[index] = fd; + this._prio2index[i] = index; + if (this.curAnimePackData.parts(index).type() === 0) frameData[index].cellIndex = -2; + } + this.frameDataCache = frameData; + this.currentCachedFrameNumber = frameNumber; + return frameData; + } + /** + * デフォルトデータを取得する + * @param {number} id - パーツ(レイヤー)ID + * @return {array} - データ + */ + GetDefaultDataByIndex(id) { + const curDefaultData = this.defaultFrameMap[id]; + let dfd = new FrameData(); + dfd.index = curDefaultData.index(); + dfd.lowflag = curDefaultData.lowflag(); + dfd.highflag = curDefaultData.highflag(); + dfd.priority = curDefaultData.priority(); + dfd.cellIndex = curDefaultData.cellIndex(); + dfd.opacity = curDefaultData.opacity(); + dfd.localopacity = curDefaultData.localopacity(); + dfd.masklimen = curDefaultData.masklimen(); + dfd.positionX = curDefaultData.positionX(); + dfd.positionY = curDefaultData.positionY(); + dfd.pivotX = curDefaultData.pivotX(); + dfd.pivotY = curDefaultData.pivotY(); + dfd.rotationX = curDefaultData.rotationX(); + dfd.rotationY = curDefaultData.rotationY(); + dfd.rotationZ = curDefaultData.rotationZ(); + dfd.scaleX = curDefaultData.scaleX(); + dfd.scaleY = curDefaultData.scaleY(); + dfd.localscaleX = curDefaultData.localscaleX(); + dfd.localscaleY = curDefaultData.localscaleY(); + dfd.size_X = curDefaultData.sizeX(); + dfd.size_Y = curDefaultData.sizeY(); + dfd.uv_move_X = curDefaultData.uvMoveX(); + dfd.uv_move_Y = curDefaultData.uvMoveY(); + dfd.uv_rotation = curDefaultData.uvRotation(); + dfd.uv_scale_X = curDefaultData.uvScaleX(); + dfd.uv_scale_Y = curDefaultData.uvScaleY(); + dfd.boundingRadius = curDefaultData.boundingRadius(); + dfd.instanceValue_curKeyframe = curDefaultData.instanceValueCurKeyframe(); + dfd.instanceValue_endFrame = curDefaultData.instanceValueEndFrame(); + dfd.instanceValue_startFrame = curDefaultData.instanceValueStartFrame(); + dfd.instanceValue_loopNum = curDefaultData.instanceValueLoopNum(); + dfd.instanceValue_speed = curDefaultData.instanceValueSpeed(); + dfd.instanceValue_loopflag = curDefaultData.instanceValueLoopflag(); + dfd.effectValue_curKeyframe = curDefaultData.effectValueCurKeyframe(); + dfd.effectValue_startTime = curDefaultData.effectValueStartTime(); + dfd.effectValue_speed = curDefaultData.effectValueSpeed(); + dfd.effectValue_loopflag = curDefaultData.effectValueLoopflag(); + dfd.f_hide = false; + dfd.f_flipH = false; + dfd.f_flipV = false; + dfd.f_mesh = false; + dfd.i_transformVerts = 0; + dfd.u00 = 0; + dfd.v00 = 0; + dfd.u01 = 0; + dfd.v01 = 0; + dfd.u10 = 0; + dfd.v10 = 0; + dfd.u11 = 0; + dfd.v11 = 0; + dfd.useColorMatrix = false; + dfd.colorBlendType = 0; + dfd.colorRate = 0; + dfd.colorArgb32 = 0; + dfd.meshIsBind = 0; + dfd.meshNum = 0; + dfd.meshDataPoint = null; + dfd.flag1 = 0; + dfd.flag2 = 0; + dfd.partsColorARGB = 0; + return dfd; + } + /** + * 親を遡って不透明度を継承する + * @param {number} opacity - 透明度 + * @param {number} partId - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {number} - 透明度 + */ + InheritOpacity(opacity, partId, frameNumber) { + opacity = this.GetFrameData(frameNumber)[partId].opacity / 255; + if (this._parentIndex[partId] >= 0) opacity = this.InheritOpacity(opacity, this._parentIndex[partId], frameNumber); + return opacity; + } + /** + * 親を遡って座標変換する(ローカルアトリビュート適用) + * @param {array} verts - 頂点情報配列 + * @param {number} partId - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformVertsLocal(verts, partId, frameNumber) { + const data = this.GetFrameData(frameNumber)[partId]; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + for (let i = 0; i < verts.length / 2; i++) { + let x = verts[i * 2]; + let y = verts[i * 2 + 1]; + if (data.i_transformVerts & 1 && i === 1) { + x += data.u00; + y -= data.v00; + } + if (data.i_transformVerts & 2 && i === 2) { + x += data.u01; + y -= data.v01; + } + if (data.i_transformVerts & 4 && i === 3) { + x += data.u10; + y -= data.v10; + } + if (data.i_transformVerts & 8 && i === 4) { + x += data.u11; + y -= data.v11; + } + x *= data.scaleX * data.localscaleX; + y *= data.scaleY * data.localscaleY; + verts[i * 2] = cos * x - sin * y + data.positionX; + verts[i * 2 + 1] = sin * x + cos * y - data.positionY; + if (data.f_flipH) verts[i * 2] = verts[0] * 2 - verts[i * 2]; + if (data.f_flipV) verts[i * 2 + 1] = verts[1] * 2 - verts[i * 2 + 1]; + } + if (this._parentIndex[partId] >= 0) verts = this.TransformVerts(verts, this._parentIndex[partId], frameNumber); + return verts; + } + /** + * 親を遡って座標変換する(ローカルアトリビュート適用) + * @param {array} verts - 頂点情報配列 + * @param {number} partId - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformMeshVertsLocal(verts, partId, frameNumber) { + const data = this.GetFrameData(frameNumber)[partId]; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + for (let i = 0; i < verts.length / 2; i++) { + let x = verts[i * 2]; + let y = verts[i * 2 + 1]; + x *= data.scaleX * data.localscaleX; + y *= data.scaleY * data.localscaleY; + verts[i * 2] = cos * x - sin * y + data.positionX; + verts[i * 2 + 1] = sin * x + cos * y - data.positionY; + } + if (this._parentIndex[partId] >= 0) verts = this.TransformVerts(verts, this._parentIndex[partId], frameNumber); + return verts; + } + /** + * 親を遡って座標変換する(ローカルアトリビュート適用) + * @param {array} pos - 頂点情報配列 + * @param {number} partId - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformPositionLocal(pos, partId, frameNumber) { + const data = this.GetFrameData(frameNumber)[partId]; + pos[4] += -data.rotationZ; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + const x = pos[0] * data.scaleX * data.localscaleX; + const y = pos[1] * data.scaleY * data.localscaleY; + pos[2] *= data.scaleX * data.localscaleX; + pos[3] *= data.scaleY * data.localscaleY; + pos[0] = cos * x - sin * y + data.positionX; + pos[1] = sin * x + cos * y - data.positionY; + if (this._parentIndex[partId] >= 0) pos = this.TransformPosition(pos, this._parentIndex[partId], frameNumber); + return pos; + } + /** + * 5頂点の中間点を求める + * @param {number} cx - 元の中心点 + * @param {number} cy - 元の中心点 + * @param {number} LUx - 左上座標 + * @param {number} LUy - 左上座標 + * @param {number} RUx - 右上座標 + * @param {number} RUy - 右上座標 + * @param {number} LDx - 左下座標 + * @param {number} LDy - 左下座標 + * @param {number} RDx - 右下座標 + * @param {number} RDy - 右下座標 + * @param vec2 + * @return {array} vec2 - 4頂点から算出した中心点の座標 + */ + static CoordinateGetDiagonalIntersection(cx, cy, LUx, LUy, RUx, RUy, LDx, LDy, RDx, RDy, vec2) { + const c1 = (LDy - RUy) * (LDx - LUx) - (LDx - RUx) * (LDy - LUy); + const c2 = (RDx - LUx) * (LDy - LUy) - (RDy - LUy) * (LDx - LUx); + const c3 = (RDx - LUx) * (LDy - RUy) - (RDy - LUy) * (LDx - RUx); + if (c3 <= 0 && c3 >= 0) return vec2; + const ca = c1 / c3; + const cb = c2 / c3; + if (0 <= ca && 1 >= ca && 0 <= cb && 1 >= cb) { + cx = LUx + ca * (RDx - LUx); + cy = LUy + ca * (RDy - LUy); + } + vec2[0] = cx; + vec2[1] = cy; + return vec2; + } + /** + * 親を遡って座標変換する + * @param {array} verts - 頂点情報配列 + * @param {number} id - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformVerts(verts, id, frameNumber) { + const data = this.GetFrameData(frameNumber)[id]; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + for (let i = 0; i < verts.length / 2; i++) { + let x = verts[i * 2]; + let y = verts[i * 2 + 1]; + x *= data.scaleX; + y *= data.scaleY; + verts[i * 2] = cos * x - sin * y + data.positionX; + verts[i * 2 + 1] = sin * x + cos * y - data.positionY; + if (data.f_flipH) verts[i * 2] = verts[0] * 2 - verts[i * 2]; + if (data.f_flipV) verts[i * 2 + 1] = verts[1] * 2 - verts[i * 2 + 1]; + } + if (this._parentIndex[id] >= 0) verts = this.TransformVerts(verts, this._parentIndex[id], frameNumber); + return verts; + } + /** + * 親を遡って座標変換する + * @param {array} pos - 頂点情報配列 + * @param {number} id - パーツ(レイヤー)ID + * @param {number} frameNumber - フレーム番号 + * @return {array} - 変換された頂点座標配列 + */ + TransformPosition(pos, id, frameNumber) { + const data = this.GetFrameData(frameNumber)[id]; + pos[4] += -data.rotationZ; + const rz = -data.rotationZ * Math.PI / 180; + const cos = Math.cos(rz); + const sin = Math.sin(rz); + const x = pos[0] * data.scaleX; + const y = pos[1] * data.scaleY; + pos[2] *= data.scaleX; + pos[3] *= data.scaleY; + pos[0] = cos * x - sin * y + data.positionX; + pos[1] = sin * x + cos * y - data.positionY; + if (this._parentIndex[id] >= 0) pos = this.TransformPosition(pos, this._parentIndex[id], frameNumber); + return pos; + } + /** + * 矩形セルメッシュの頂点情報のみ取得 + * @param {ssfblib.Cell} cell - セル + * @param {array} data - アニメーションフレームデータ + * @param verts + * @return {array} - 頂点情報配列 + */ + static GetVerts(cell, data, verts) { + const w = data.size_X / 2; + const h = data.size_Y / 2; + const px = data.size_X * -(data.pivotX + cell.pivotX()); + const py = data.size_Y * (data.pivotY + cell.pivotY()); + verts.set([ + px, + py, + px - w, + py - h, + px + w, + py - h, + px - w, + py + h, + px + w, + py + h + ]); + return verts; + } + /** + * 矩形セルメッシュの頂点情報のみ取得 + * @param {ssfblib.Cell} cell - セル + * @param {array} data - アニメーションフレームデータ + * @param verts + * @return {array} - 頂点情報配列 + */ + static GetMeshVerts(cell, data, verts) { + for (let idx = 0; idx < data.meshNum; idx++) { + verts[idx * 2] = data.meshDataPoint[idx * 3]; + verts[idx * 2 + 1] = -data.meshDataPoint[idx * 3 + 1]; + } + return verts; + } + static GetDummyVerts() { + return new Float32Array([ + 0, + 0, + -.5, + -.5, + .5, + -.5, + -.5, + .5, + .5, + .5 + ]); + } + }; + var PixiResourceLoaderImpl = class { + constructor() { + this.loader = new _pixi_loaders.Loader(); + } + load(sspjfile, sspjMap, onComplete) { + for (let key in sspjMap) this.loader.add(key, sspjMap[key]); + const self = this; + this.loader.load((loader, resources) => { + self.resources = resources; + if (onComplete !== null) onComplete(null); + }); + } + unload(sspjfile, sspjMap, onComplete) { + this.resources = null; + if (onComplete !== null) onComplete(null); + } + texture(key) { + console.log(this.resources); + return this.resources[key].texture; + } + }; + var SS6ProjectResourceLoader = class { + constructor() { + this.loader = new PixiResourceLoaderImpl(); + } + load(sspjfile, sspjMap, onComplete) { + return this.loader.load(sspjfile, sspjMap, onComplete); + } + unload(sspjfile, sspjMap, onComplete = null) { + return this.loader.unload(sspjfile, sspjMap, onComplete); + } + texture(key) { + return this.loader.texture(key); + } + }; + let RESOURCE_PROGRESS = /* @__PURE__ */ function(RESOURCE_PROGRESS) { + RESOURCE_PROGRESS[RESOURCE_PROGRESS["NOT_READY"] = 0] = "NOT_READY"; + RESOURCE_PROGRESS[RESOURCE_PROGRESS["READY"] = 1] = "READY"; + return RESOURCE_PROGRESS; + }({}); + var SS6Project = class { + getBundle() { + return this.ssfbFile; + } + getTexture(key) { + return this.resourceLoader.texture(key); + } + constructor(arg1, arg2, arg3, arg4) { + this.sspjMap = {}; + this.resourceLoader = new SS6ProjectResourceLoader(); + if (typeof arg1 === "string" && arg3 === void 0) { + let ssfbPath = arg1; + this.ssfbPath = ssfbPath; + const index = ssfbPath.lastIndexOf("/"); + this.rootPath = ssfbPath.substring(0, index) + "/"; + this.ssfbFile = ssfbPath.substring(index + 1); + this.onComplete = arg2 === void 0 ? null : arg2; + this.status = RESOURCE_PROGRESS.NOT_READY; + this.LoadFlatBuffersProject(); + } else if (typeof arg2 === "object" && arg2.constructor === Uint8Array) { + this.ssfbPath = null; + this.rootPath = null; + this.ssfbFile = arg1; + let ssfbByte = arg2; + let imageBinaryMap = arg3; + this.onComplete = arg4 === void 0 ? null : arg4; + this.load(ssfbByte, imageBinaryMap); + } + } + dispose(callback = null) { + this.resourceLoader.unload(this.getBundle(), this.sspjMap, (error) => { + if (callback !== null) callback(); + }); + } + /** + * Load json and parse (then, load textures) + */ + LoadFlatBuffersProject() { + const self = this; + fetch(this.ssfbPath, { method: "get" }).then((response) => { + if (response.ok) return Promise.resolve(response.arrayBuffer()); + else return Promise.reject(new Error(response.statusText)); + }).then((a) => { + self.fbObj = Utils.getProjectData(new Uint8Array(a)); + self.LoadCellResources(); + }).catch((error) => { + if (this.onComplete !== null) this.onComplete(null, error); + }); + } + /** + * Load textures + */ + LoadCellResources() { + let ids = []; + this.sspjMap = {}; + for (let i = 0; i < this.fbObj.cellsLength(); i++) { + const cellMap = this.fbObj.cells(i).cellMap(); + const cellMapIndex = cellMap.index(); + if (!ids.some(function(id) { + return id === cellMapIndex; + })) { + ids.push(cellMapIndex); + const name = cellMap.name(); + this.sspjMap[name] = this.rootPath + cellMap.imagePath(); + } + } + const self = this; + this.resourceLoader.load(this.getBundle(), this.sspjMap, (error) => { + if (error === null) { + self.status = RESOURCE_PROGRESS.READY; + if (self.onComplete !== null) self.onComplete(this, null); + } else if (this.onComplete !== null) this.onComplete(null, error); + }); + } + load(bytes, imageBinaryMap) { + this.fbObj = Utils.getProjectData(bytes); + let assetMap = {}; + for (let imageName in imageBinaryMap) { + const binary = imageBinaryMap[imageName]; + let b = ""; + const len = binary.byteLength; + for (let i = 0; i < len; i++) b += String.fromCharCode(binary[i]); + assetMap[imageName] = "data:image/png;base64," + btoa(b); + } + const self = this; + this.resourceLoader.load(this.getBundle(), assetMap, (error) => { + if (error === null) { + self.status = RESOURCE_PROGRESS.READY; + if (self.onComplete !== null) self.onComplete(this, null); + } else if (this.onComplete !== null) this.onComplete(null, error); + }); + } + }; + /** + * インスタンス差し替え用のキーパラメーター + */ + var SS6PlayerInstanceKeyParam = class { + constructor() { + this.refStartframe = 0; + this.refEndframe = 0; + this.refSpeed = 1; + this.refloopNum = 0; + this.infinity = false; + this.reverse = false; + this.pingpong = false; + this.independent = false; + } + }; + var SS6Player = class SS6Player extends _pixi_display.Container { + get startFrame() { + return this._startFrame; + } + get endFrame() { + return this._endFrame; + } + get totalFrame() { + return this.playerLib.animationData.totalFrames(); + } + get fps() { + return this.playerLib.animationData.fps(); + } + get frameNo() { + return Math.floor(this._currentFrame); + } + set loop(loop) { + this._loops = loop; + } + get loop() { + return this._loops; + } + get isPlaying() { + return this._isPlaying; + } + get isPausing() { + return this._isPausing; + } + get animePackName() { + return this.playerLib.animePackName; + } + get animeName() { + return this.playerLib.animeName; + } + /** + * SS6Player (extends PIXI.Container) + * @constructor + * @param {SS6Project} ss6project - SS6Project that contains animations. + * @param {string} animePackName - The name of animePack(SSAE). + * @param {string} animeName - The name of animation. + */ + constructor(ss6project, animePackName = null, animeName = null) { + super(); + this.liveFrame = []; + this.colorMatrixFilterCache = []; + this.parentAlpha = 1; + this.prevCellID = []; + this.prevPartObject = []; + this.substituteOverWrite = []; + this.substituteKeyParam = []; + this.alphaBlendType = []; + this.defaultColorFilter = new _pixi_filter_color_matrix.ColorMatrixFilter(); + this._instancePos = new Float32Array(5); + this._CoordinateGetDiagonalIntersectionVec2 = new Float32Array(2); + this.ss6project = ss6project; + this.playerLib = new Player(ss6project.fbObj, animePackName, animeName); + this.parentAlpha = 1; + if (animePackName !== null && animeName !== null) this.Setup(animePackName, animeName); + this.on("added", (...args) => { + _pixi_ticker.Ticker.shared.add(this.Update, this); + }, this); + this.on("removed", (...args) => { + _pixi_ticker.Ticker.shared.remove(this.Update, this); + }, this); + } + /** + * Setup + * @param {string} animePackName - The name of animePack(SSAE). + * @param {string} animeName - The name of animation. + */ + Setup(animePackName, animeName) { + this.playerLib.Setup(animePackName, animeName); + this.clearCaches(); + const animePackData = this.playerLib.animePackData; + const partsLength = animePackData.partsLength(); + this.prevCellID = new Array(partsLength); + this.prevPartObject = new Array(partsLength); + this.substituteOverWrite = new Array(partsLength); + this.substituteKeyParam = new Array(partsLength); + for (let j = 0; j < partsLength; j++) { + const index = animePackData.parts(j).index(); + this.prevCellID[index] = -1; + this.prevPartObject[index] = null; + this.substituteOverWrite[index] = null; + this.substituteKeyParam[index] = null; + } + this.alphaBlendType = this.GetPartsBlendMode(); + this._isPlaying = false; + this._isPausing = true; + this._startFrame = this.playerLib.animationData.startFrames(); + this._endFrame = this.playerLib.animationData.endFrames(); + this._currentFrame = this.playerLib.animationData.startFrames(); + this.nextFrameTime = 0; + this._loops = -1; + this.skipEnabled = true; + this.updateInterval = 1e3 / this.playerLib.animationData.fps(); + this.playDirection = 1; + this.onUserDataCallback = null; + this.playEndCallback = null; + this.parentAlpha = 1; + } + clearCaches() { + this.liveFrame = []; + this.colorMatrixFilterCache = []; + } + Update(delta) { + this.UpdateInternal(delta); + } + /** + * Update is called PIXI.ticker + * @param {number} delta - expected 1 + */ + UpdateInternal(delta, rewindAfterReachingEndFrame = true) { + const elapsedTime = _pixi_ticker.Ticker.shared.elapsedMS; + if (this._isPlaying && !this._isPausing && this.updateInterval !== 0) { + this.nextFrameTime += elapsedTime; + if (this.nextFrameTime >= this.updateInterval) { + let playEndFlag = false; + const step = this.nextFrameTime / this.updateInterval; + this.nextFrameTime -= this.updateInterval * step; + let s = this.skipEnabled ? step * this.playDirection : this.playDirection; + let next = this._currentFrame + s; + let nextFrameNo = Math.floor(next); + let nextFrameDecimal = next - nextFrameNo; + let currentFrameNo = Math.floor(this._currentFrame); + if (this.playDirection >= 1) for (let c = nextFrameNo - currentFrameNo; c; c--) { + let incFrameNo = currentFrameNo + 1; + if (incFrameNo > this._endFrame) if (this._loops === -1) incFrameNo = this._startFrame; + else { + this._loops--; + playEndFlag = true; + if (this._loops === 0) { + this._isPlaying = false; + incFrameNo = rewindAfterReachingEndFrame ? this._startFrame : this._endFrame; + break; + } else incFrameNo = this._startFrame; + } + currentFrameNo = incFrameNo; + if (this._isPlaying) { + if (this.playerLib.HaveUserData(currentFrameNo)) { + if (this.onUserDataCallback !== null) this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); + } + } + } + if (this.playDirection <= -1) for (let c = currentFrameNo - nextFrameNo; c; c--) { + let decFrameNo = currentFrameNo - 1; + if (decFrameNo < this._startFrame) if (this._loops === -1) decFrameNo = this._endFrame; + else { + this._loops--; + playEndFlag = true; + if (this._loops === 0) { + this._isPlaying = false; + decFrameNo = rewindAfterReachingEndFrame ? this._endFrame : this._startFrame; + break; + } else decFrameNo = this._endFrame; + } + currentFrameNo = decFrameNo; + if (this._isPlaying) { + if (this.playerLib.HaveUserData(currentFrameNo)) { + if (this.onUserDataCallback !== null) this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); + } + } + } + this._currentFrame = currentFrameNo + nextFrameDecimal; + if (playEndFlag) { + if (this.playEndCallback !== null) this.playEndCallback(this); + } + this.SetFrameAnimation(Math.floor(this._currentFrame), step); + } + } else this.SetFrameAnimation(Math.floor(this._currentFrame)); + } + /** + * アニメーションの速度を設定する (deprecated この関数は削除される可能性があります) + * @param {number} fps - アニメーション速度(frame per sec.) + * @param {boolean} _skipEnabled - 描画更新が間に合わないときにフレームをスキップするかどうか + */ + SetAnimationFramerate(fps, _skipEnabled = true) { + if (fps <= 0) return; + this.updateInterval = 1e3 / fps; + this.skipEnabled = _skipEnabled; + } + /** + * アニメーションの速度を設定する + * @param {number} fpsRate - アニメーション速度(設定値に対する乗率)負数設定で逆再生 + * @param {boolean} _skipEnabled - 描画更新が間に合わないときにフレームをスキップするかどうか + */ + SetAnimationSpeed(fpsRate, _skipEnabled = true) { + if (fpsRate === 0) return; + this.playDirection = fpsRate > 0 ? 1 : -1; + this.updateInterval = 1e3 / (this.playerLib.animationData.fps() * fpsRate * this.playDirection); + this.skipEnabled = _skipEnabled; + } + /** + * アニメーション再生設定 + * @param {number} _startframe - 開始フレーム番号(マイナス設定でデフォルト値を変更しない) + * @param {number} _endframe - 終了フレーム番号(マイナス設定でデフォルト値を変更しない) + * @param {number} _loops - ループ回数(ゼロもしくはマイナス設定で無限ループ) + */ + SetAnimationSection(_startframe = -1, _endframe = -1, _loops = -1) { + if (_startframe >= 0 && _startframe < this.playerLib.animationData.totalFrames()) this._startFrame = _startframe; + if (_endframe >= 0 && _endframe < this.playerLib.animationData.totalFrames()) this._endFrame = _endframe; + if (_loops > 0) this._loops = _loops; + else this._loops = -1; + this._currentFrame = this.playDirection > 0 ? this._startFrame : this._endFrame; + } + /** + * アニメーション再生を開始する + */ + Play(frameNo) { + this._isPlaying = true; + this._isPausing = false; + let currentFrame = this.playDirection > 0 ? this._startFrame : this._endFrame; + if (frameNo && typeof frameNo === "number") currentFrame = frameNo; + this._currentFrame = currentFrame; + this.resetLiveFrame(); + const currentFrameNo = Math.floor(this._currentFrame); + this.SetFrameAnimation(currentFrameNo); + if (this.playerLib.HaveUserData(currentFrameNo)) { + if (this.onUserDataCallback !== null) this.onUserDataCallback(this.playerLib.GetUserData(currentFrameNo)); + } + } + /** + * アニメーション再生を一時停止する + */ + Pause() { + this._isPausing = true; + } + /** + * アニメーション再生を再開する + */ + Resume() { + this._isPausing = false; + } + /** + * アニメーションを停止する + * @constructor + */ + Stop() { + this._isPlaying = false; + } + /** + * アニメーション再生を位置(フレーム)を設定する + */ + SetFrame(frame) { + this._currentFrame = frame; + } + NextFrame() { + const currentFrame = Math.floor(this._currentFrame); + if (currentFrame === this.endFrame) return; + this.SetFrame(currentFrame + 1); + } + PrevFrame() { + const currentFrame = Math.floor(this._currentFrame); + if (currentFrame === 0) return; + this.SetFrame(currentFrame - 1); + } + /** + * アニメーションの透明度を設定する + */ + SetAlpha(alpha) { + this.parentAlpha = alpha; + } + /** + * エラー処理 + * @param {any} _error - エラー + */ + ThrowError(_error) {} + /** + * ユーザーデータコールバックの設定 + * @param fn + * @constructor + * + * ユーザーデータのフォーマット + * data = [[d0,d1,...,d10],[da0,da1,...,da10],...]) + * data.length : 当該フレームでユーザーデータの存在するパーツ(レイヤー)数 + * d0 : パーツ(レイヤー)番号 + * d1 : 有効データビット(&1:int, &2:rect(int*4), &4:pos(int*2), &8:string) + * d2 : int(int) + * d3 : rect0(int) + * d4 : rect1(int) + * d5 : rect2(int) + * d6 : rect3(int) + * d7 : pos0(int) + * d8 : pos1(int) + * d9 : string.length(int) + * d10: string(string) + * + */ + SetUserDataCalback(fn) { + this.onUserDataCallback = fn; + } + /** + * 再生終了時に呼び出されるコールバックを設定します. + * @param fn + * @constructor + * + * ループ回数分再生した後に呼び出される点に注意してください。 + * 無限ループで再生している場合はコールバックが発生しません。 + * + */ + SetPlayEndCallback(fn) { + this.playEndCallback = fn; + } + /** + * パーツの描画モードを取得する + * @return {array} - 全パーツの描画モード + */ + GetPartsBlendMode() { + const animePacks = this.playerLib.animePackData; + const l = animePacks.partsLength(); + let ret = []; + for (let i = 0; i < l; i++) { + const alphaBlendType = animePacks.parts(i).alphaBlendType(); + let blendMode; + switch (alphaBlendType) { + case 0: + blendMode = _pixi_constants.BLEND_MODES.NORMAL; + break; + case 1: + blendMode = _pixi_constants.BLEND_MODES.MULTIPLY; + break; + case 2: + blendMode = _pixi_constants.BLEND_MODES.ADD; + break; + case 3: + blendMode = _pixi_constants.BLEND_MODES.NORMAL; + break; + case 4: + blendMode = _pixi_constants.BLEND_MODES.MULTIPLY; + break; + case 5: + blendMode = _pixi_constants.BLEND_MODES.SCREEN; + break; + case 6: + blendMode = _pixi_constants.BLEND_MODES.EXCLUSION; + break; + case 7: + blendMode = _pixi_constants.BLEND_MODES.NORMAL; + break; + default: + blendMode = _pixi_constants.BLEND_MODES.NORMAL; + break; + } + ret.push(blendMode); + } + return ret; + } + /** + * パーツカラーのブレンド用カラーマトリクス + * @param {number} blendType - ブレンド方法(0:mix, 1:multiply, 2:add, 3:sub) + * @param {number} rate - ミックス時の混色レート + * @param {number} argb32 - パーツカラー(単色) + * @return {PIXI.filters.ColorMatrixFilter} - カラーマトリクス + */ + GetColorMatrixFilter(blendType, rate, argb32) { + const key = blendType.toString() + "_" + rate.toString() + "_" + argb32.toString(); + if (this.colorMatrixFilterCache[key]) return this.colorMatrixFilterCache[key]; + const colorMatrix = new _pixi_filter_color_matrix.ColorMatrixFilter(); + const ca = ((argb32 & 4278190080) >>> 24) / 255; + const cr = ((argb32 & 16711680) >>> 16) / 255; + const cg = ((argb32 & 65280) >>> 8) / 255; + const cb = (argb32 & 255) / 255; + if (blendType === 0) { + const rate_i = 1 - rate; + colorMatrix.matrix = [ + rate_i, + 0, + 0, + 0, + cr * rate, + 0, + rate_i, + 0, + 0, + cg * rate, + 0, + 0, + rate_i, + 0, + cb * rate, + 0, + 0, + 0, + 1, + 0 + ]; + } else if (blendType === 1) colorMatrix.matrix = [ + cr, + 0, + 0, + 0, + 0, + 0, + cg, + 0, + 0, + 0, + 0, + 0, + cb, + 0, + 0, + 0, + 0, + 0, + ca, + 0 + ]; + else if (blendType === 2) colorMatrix.matrix = [ + 1, + 0, + 0, + 0, + cr, + 0, + 1, + 0, + 0, + cg, + 0, + 0, + 1, + 0, + cb, + 0, + 0, + 0, + ca, + 0 + ]; + else if (blendType === 3) colorMatrix.matrix = [ + 1, + 0, + 0, + 0, + -cr, + 0, + 1, + 0, + 0, + -cg, + 0, + 0, + 1, + 0, + -cb, + 0, + 0, + 0, + ca, + 0 + ]; + this.colorMatrixFilterCache[key] = colorMatrix; + return colorMatrix; + } + /** + * 1フレーム分のアニメーション描画 + * @param {number} frameNumber - フレーム番号 + * @param {number} ds - delta step + */ + SetFrameAnimation(frameNumber, ds = 0) { + const fd = this.playerLib.GetFrameData(frameNumber); + this.removeChildren(); + const l = fd.length; + for (let ii = 0; ii < l; ii = ii + 1 | 0) { + const i = this.playerLib.prio2index[ii]; + const data = fd[i]; + const cellID = data.cellIndex; + let partObject = this.prevPartObject[i]; + const part = this.playerLib.animePackData.parts(i); + const partType = part.type(); + let overWrite = this.substituteOverWrite[i] !== null ? this.substituteOverWrite[i] : false; + let overWritekeyParam = this.substituteKeyParam[i]; + switch (partType) { + case SsPartType.Instance: + if (partObject == null) { + partObject = this.MakeCellPlayer(part.refname()); + partObject.name = part.name(); + } + break; + case SsPartType.Normal: + case SsPartType.Mask: + if (cellID >= 0 && this.prevCellID[i] !== cellID) { + if (partObject != null) partObject.destroy(); + partObject = this.MakeCellMesh(cellID); + partObject.name = part.name(); + } + break; + case SsPartType.Mesh: + if (cellID >= 0 && this.prevCellID[i] !== cellID) { + if (partObject != null) partObject.destroy(); + partObject = this.MakeMeshCellMesh(i, cellID); + partObject.name = part.name(); + } + break; + case SsPartType.Nulltype: + case SsPartType.Joint: + if (this.prevCellID[i] !== cellID) { + if (partObject != null) partObject.destroy(); + partObject = new _pixi_display.Container(); + partObject.name = part.name(); + } + break; + default: + if (cellID >= 0 && this.prevCellID[i] !== cellID) { + if (partObject != null) partObject.destroy(); + partObject = this.MakeCellMesh(cellID); + partObject.name = part.name(); + } + break; + } + if (partObject == null) continue; + this.prevCellID[i] = cellID; + this.prevPartObject[i] = partObject; + switch (partType) { + case SsPartType.Instance: { + const instance = partObject; + this._instancePos[0] = 0; + this._instancePos[1] = 0; + this._instancePos[2] = 1; + this._instancePos[3] = 1; + this._instancePos[4] = 0; + this._instancePos = this.playerLib.TransformPositionLocal(this._instancePos, data.index, frameNumber); + instance.rotation = this._instancePos[4] * Math.PI / 180; + instance.position.set(this._instancePos[0], this._instancePos[1]); + instance.scale.set(this._instancePos[2], this._instancePos[3]); + let opacity = data.opacity / 255; + if (data.localopacity < 255) opacity = data.localopacity / 255; + instance.SetAlpha(opacity * this.parentAlpha); + instance.visible = !data.f_hide; + let refKeyframe = data.instanceValue_curKeyframe; + let refStartframe = data.instanceValue_startFrame; + let refEndframe = data.instanceValue_endFrame; + let refSpeed = data.instanceValue_speed; + let refloopNum = data.instanceValue_loopNum; + let infinity = false; + let reverse = false; + let pingpong = false; + let independent = false; + const INSTANCE_LOOP_FLAG_INFINITY = 1; + const INSTANCE_LOOP_FLAG_REVERSE = 2; + const INSTANCE_LOOP_FLAG_PINGPONG = 4; + const INSTANCE_LOOP_FLAG_INDEPENDENT = 8; + const lflags = data.instanceValue_loopflag; + if (lflags & INSTANCE_LOOP_FLAG_INFINITY) infinity = true; + if (lflags & INSTANCE_LOOP_FLAG_REVERSE) reverse = true; + if (lflags & INSTANCE_LOOP_FLAG_PINGPONG) pingpong = true; + if (lflags & INSTANCE_LOOP_FLAG_INDEPENDENT) independent = true; + if (overWrite) { + refStartframe = overWritekeyParam.refStartframe; + refEndframe = overWritekeyParam.refEndframe; + refSpeed = overWritekeyParam.refSpeed; + refloopNum = overWritekeyParam.refloopNum; + infinity = overWritekeyParam.infinity; + reverse = overWritekeyParam.reverse; + pingpong = overWritekeyParam.pingpong; + independent = overWritekeyParam.independent; + } + if (instance._startFrame !== refStartframe || instance._endFrame !== refEndframe) instance.SetAnimationSection(refStartframe, refEndframe); + let time = frameNumber; + if (independent === true) { + this.liveFrame[ii] += ds; + time = Math.floor(this.liveFrame[ii]); + } + const selfTopKeyframe = refKeyframe; + let reftime = Math.floor((time - selfTopKeyframe) * refSpeed); + if (reftime < 0) continue; + if (selfTopKeyframe > time) continue; + const inst_scale = refEndframe - refStartframe + 1; + if (inst_scale <= 0) continue; + let nowloop = Math.floor(reftime / inst_scale); + let checkloopnum = refloopNum; + if (pingpong) checkloopnum = checkloopnum * 2; + if (!infinity) { + if (nowloop >= checkloopnum) { + reftime = inst_scale - 1; + nowloop = checkloopnum - 1; + } + } + const temp_frame = Math.floor(reftime % inst_scale); + let _time = 0; + if (pingpong && nowloop % 2 === 1) if (reverse) reverse = false; + else reverse = true; + if (this.playDirection <= -1) reverse = !reverse; + if (reverse) _time = refEndframe - temp_frame; + else _time = temp_frame + refStartframe; + instance.SetFrame(Math.floor(_time)); + this.addChild(instance); + break; + } + case SsPartType.Normal: + case SsPartType.Mesh: + case SsPartType.Joint: + case SsPartType.Mask: { + const mesh = partObject; + const meshVertexBuffer = mesh.geometry.getBuffer("aVertexPosition"); + let meshVertex = meshVertexBuffer.data; + const cell = this.playerLib.fbObj.cells(cellID); + let verts; + if (partType === SsPartType.Mesh) if (data.meshIsBind === 0) verts = this.playerLib.TransformMeshVertsLocal(Player.GetMeshVerts(cell, data, meshVertex), data.index, frameNumber); + else verts = Player.GetMeshVerts(cell, data, meshVertex); + else { + verts = partType === SsPartType.Joint ? new Float32Array(10) : meshVertex; + verts = this.playerLib.TransformVertsLocal(Player.GetVerts(cell, data, verts), data.index, frameNumber); + } + if (data.flag1 & PART_FLAG.VERTEX_TRANSFORM) { + const vertexCoordinateLUx = verts[6]; + const vertexCoordinateLUy = verts[7]; + const vertexCoordinateLDx = verts[2]; + const vertexCoordinateLDy = verts[3]; + const vertexCoordinateRUx = verts[8]; + const vertexCoordinateRUy = verts[9]; + const vertexCoordinateRDx = verts[4]; + const vertexCoordinateRDy = verts[5]; + const CoordinateLURUx = (vertexCoordinateLUx + vertexCoordinateRUx) * .5; + const CoordinateLURUy = (vertexCoordinateLUy + vertexCoordinateRUy) * .5; + const CoordinateLULDx = (vertexCoordinateLUx + vertexCoordinateLDx) * .5; + const CoordinateLULDy = (vertexCoordinateLUy + vertexCoordinateLDy) * .5; + const CoordinateLDRDx = (vertexCoordinateLDx + vertexCoordinateRDx) * .5; + const CoordinateLDRDy = (vertexCoordinateLDy + vertexCoordinateRDy) * .5; + const CoordinateRURDx = (vertexCoordinateRUx + vertexCoordinateRDx) * .5; + const CoordinateRURDy = (vertexCoordinateRUy + vertexCoordinateRDy) * .5; + const vec2 = Player.CoordinateGetDiagonalIntersection(verts[0], verts[1], CoordinateLURUx, CoordinateLURUy, CoordinateRURDx, CoordinateRURDy, CoordinateLULDx, CoordinateLULDy, CoordinateLDRDx, CoordinateLDRDy, this._CoordinateGetDiagonalIntersectionVec2); + verts[0] = vec2[0]; + verts[1] = vec2[1]; + } + const px = verts[0]; + const py = verts[1]; + for (let j = 0; j < verts.length / 2; j++) { + verts[j * 2] -= px; + verts[j * 2 + 1] -= py; + } + meshVertex = verts; + meshVertexBuffer.update(); + if (data.flag1 & PART_FLAG.U_MOVE || data.flag1 & PART_FLAG.V_MOVE || data.flag1 & PART_FLAG.U_SCALE || data.flag1 & PART_FLAG.V_SCALE || data.flag1 & PART_FLAG.UV_ROTATION) { + const u1 = cell.u1() + data.uv_move_X; + const u2 = cell.u2() + data.uv_move_X; + const v1 = cell.v1() + data.uv_move_Y; + const v2 = cell.v2() + data.uv_move_Y; + const cx = (u2 + u1) / 2; + const cy = (v2 + v1) / 2; + const uvw = (u2 - u1) / 2 * data.uv_scale_X; + const uvh = (v2 - v1) / 2 * data.uv_scale_Y; + const meshUvsBuffer = mesh.uvBuffer; + let meshUvs = meshUvsBuffer.data; + meshUvs[0] = cx; + meshUvs[1] = cy; + meshUvs[2] = cx - uvw; + meshUvs[3] = cy - uvh; + meshUvs[4] = cx + uvw; + meshUvs[5] = cy - uvh; + meshUvs[6] = cx - uvw; + meshUvs[7] = cy + uvh; + meshUvs[8] = cx + uvw; + meshUvs[9] = cy + uvh; + if (data.flag1 & PART_FLAG.UV_ROTATION) { + const rot = data.uv_rotation * Math.PI / 180; + for (let idx = 0; idx < 5; idx++) { + const dx = meshUvs[idx * 2 + 0] - cx; + const dy = meshUvs[idx * 2 + 1] - cy; + const cos = Math.cos(rot); + const sin = Math.sin(rot); + const tmpX = cos * dx - sin * dy; + const tmpY = sin * dx + cos * dy; + meshUvs[idx * 2 + 0] = cx + tmpX; + meshUvs[idx * 2 + 1] = cy + tmpY; + } + } + meshUvsBuffer.update(); + } + mesh.position.set(px, py); + let opacity = data.opacity / 255; + if (data.localopacity < 255) opacity = data.localopacity / 255; + mesh.alpha = opacity * this.parentAlpha; + mesh.visible = !data.f_hide; + if (data.useColorMatrix) mesh.filters = [this.GetColorMatrixFilter(data.colorBlendType, data.colorRate, data.colorArgb32)]; + if (data.tint) { + mesh.tint = data.tint; + const ca = ((data.partsColorARGB & 4278190080) >>> 24) / 255; + mesh.alpha = mesh.alpha * ca; + } + const blendMode = this.alphaBlendType[i]; + if (blendMode === _pixi_constants.BLEND_MODES.MULTIPLY || blendMode === _pixi_constants.BLEND_MODES.SCREEN) mesh.alpha = 1; + if (partType !== SsPartType.Mask) this.addChild(mesh); + break; + } + case SsPartType.Nulltype: { + const container = partObject; + container.alpha = this.playerLib.InheritOpacity(1, data.index, frameNumber) * data.localopacity / 255; + const verts = this.playerLib.TransformVerts(Player.GetDummyVerts(), data.index, frameNumber); + const px = verts[0]; + const py = verts[1]; + container.position.set(px, py); + const ax = Math.atan2(verts[5] - verts[3], verts[4] - verts[2]); + const ay = Math.atan2(verts[7] - verts[3], verts[6] - verts[2]); + container.rotation = ax; + container.skew.x = ay - ax - Math.PI / 2; + break; + } + } + } + } + /** + * + * 名前を指定してパーツの再生するインスタンスアニメを変更します。 + * 指定したパーツがインスタンスパーツでない場合、falseを返します. + * インスタンスパーツ名はディフォルトでは「ssae名:モーション名」とつけられています。 + * 再生するアニメの名前は アニメパック名 と アニメ名 で指定してください。 + * 現在再生しているアニメを指定することは入れ子となり無限ループとなるためできません。 + * + * 変更するアニメーションは同じ ssfb に含まれる必要があります。 + * インスタンスパーツが再生するアニメを変更します + * + * インスタンスキーは + * + * @param partName SS上のパーツ名 + * @param animePackName 参照するアニメパック名 + * @param animeName 参照するアニメ名 + * @param overWrite インスタンスキーの上書きフラグ + * @param keyParam インスタンスキー + * + * @constructor + */ + ChangeInstanceAnime(partName, animePackName, animeName, overWrite, keyParam = null) { + let rc = false; + if (this.animePackName !== null && this.animeName !== null) { + let packData = this.playerLib.animePackData; + let partsLength = packData.partsLength(); + for (let index = 0; index < partsLength; index++) { + let partData = packData.parts(index); + if (partData.name() === partName) { + let mesh = this.prevPartObject[index]; + if (mesh === null || mesh instanceof SS6Player) { + this.substituteOverWrite[index] = overWrite; + let keyParamAsSubstitute; + if (keyParam !== null) { + keyParamAsSubstitute = keyParam; + mesh = this.MakeCellPlayer(animePackName + "/" + animeName, keyParam.refStartframe); + } else { + mesh = this.MakeCellPlayer(animePackName + "/" + animeName); + keyParamAsSubstitute = new SS6PlayerInstanceKeyParam(); + keyParamAsSubstitute.refStartframe = mesh.startFrame; + keyParamAsSubstitute.refEndframe = mesh.endFrame; + } + mesh.name = partData.name(); + this.prevPartObject[index] = mesh; + this.substituteKeyParam[index] = keyParamAsSubstitute; + rc = true; + break; + } + } + } + } + return rc; + } + /** + * 矩形セルをメッシュ(5verts4Tri)で作成 + * @param {number} id - セルID + * @return {PIXI.Mesh} - メッシュ + */ + MakeCellMesh(id) { + const cell = this.playerLib.fbObj.cells(id); + const u1 = cell.u1(); + const u2 = cell.u2(); + const v1 = cell.v1(); + const v2 = cell.v2(); + const w = cell.width() / 2; + const h = cell.height() / 2; + return new _pixi_mesh.Mesh(new _pixi_mesh.MeshGeometry(new Float32Array([ + 0, + 0, + -w, + -h, + w, + -h, + -w, + h, + w, + h + ]), new Float32Array([ + (u1 + u2) / 2, + (v1 + v2) / 2, + u1, + v1, + u2, + v1, + u1, + v2, + u2, + v2 + ]), new Uint16Array([ + 0, + 1, + 2, + 0, + 2, + 4, + 0, + 4, + 3, + 0, + 1, + 3 + ])), new _pixi_mesh.MeshMaterial(this.ss6project.getTexture(cell.cellMap().name())), null, _pixi_constants.DRAW_MODES.TRIANGLES); + } + /** + * メッシュセルからメッシュを作成 + * @param {number} partID - パーツID + * @param {number} cellID - セルID + * @return {PIXI.Mesh} - メッシュ + */ + MakeMeshCellMesh(partID, cellID) { + const meshsDataUV = this.playerLib.animationData.meshsDataUv(partID); + const uvLength = meshsDataUV.uvLength(); + if (uvLength > 0) { + const uvs = new Float32Array(uvLength - 2); + const meshNum = meshsDataUV.uv(1); + for (let idx = 2; idx < uvLength; idx++) uvs[idx - 2] = meshsDataUV.uv(idx); + const meshsDataIndices = this.playerLib.animationData.meshsDataIndices(partID); + const indicesLength = meshsDataIndices.indicesLength(); + const indices = new Uint16Array(indicesLength - 1); + for (let idx = 1; idx < indicesLength; idx++) indices[idx - 1] = meshsDataIndices.indices(idx); + return new _pixi_mesh.Mesh(new _pixi_mesh.MeshGeometry(new Float32Array(meshNum * 2), uvs, indices), new _pixi_mesh.MeshMaterial(this.ss6project.getTexture(this.playerLib.fbObj.cells(cellID).cellMap().name())), null, _pixi_constants.DRAW_MODES.TRIANGLES); + } + return null; + } + /** + * セルをインスタンスで作成 + * @param {String} refname 参照アニメ名 + * @param {number or undefined} refStart + * @return {SS6Player} - インスタンス + */ + MakeCellPlayer(refname, refStart = void 0) { + const split = refname.split("/"); + const ssp = new SS6Player(this.ss6project); + ssp.Setup(split[0], split[1]); + ssp.Play(refStart); + return ssp; + } + resetLiveFrame() { + const layers = this.playerLib.animationData.defaultDataLength(); + for (let i = 0; i < layers; i++) this.liveFrame[i] = 0; + } + }; + //#endregion + //#region src/PluginParameters.js + var PluginParameters = class PluginParameters { + static instance; + pluginParameters; + animationDir; + replaceSVActorSpriteFlag; + svActorDir; + svActorAnimationPack; + svActorHideWeaponGraphics; + replaceSVEnemySpriteFlag; + svEnemyDir; + svEnemyAnimationPack; + svEnemyAnimationName; + constructor() { + this.pluginParameters = PluginManager.parameters("ss6player-rpgmakermz"); + this.animationDir = String(this.pluginParameters["animationDir"] || "img/ssfb") + "/"; + this.replaceSVActorSpriteFlag = this.pluginParameters["replaceSVActorSpriteFlag"] === "true" || false; + this.svActorDir = String(this.pluginParameters["svActorDir"] || "img/ssfb/sv_actors") + "/"; + this.svActorAnimationPack = String(this.pluginParameters["svActorAnimationPack"] || "motions"); + this.svActorHideWeaponGraphics = this.pluginParameters["svActorHideWeaponGraphics"] === "true" || false; + this.replaceSVEnemySpriteFlag = this.pluginParameters["replaceSVEnemySpriteFlag"] === "true" || false; + this.svEnemyDir = String(this.pluginParameters["svEnemyDir"] || "img/ssfb/sv_enemies") + "/"; + this.svEnemyAnimationPack = String(this.pluginParameters["svEnemyAnimationPack"] || "motions"); + this.svEnemyAnimationName = String(this.pluginParameters["svEnemyAnimationName"] || "walk"); + } + static getInstance() { + if (PluginParameters.instance) return PluginParameters.instance; + PluginParameters.instance = new PluginParameters(); + return PluginParameters.instance; + } + }; + //#endregion + //#region src/SS6ProjectManager.js + var SS6ProjectManager = class SS6ProjectManager { + static instance; + ssprojectMap; + _isLoading; + constructor() { + this.clear(); + this._isLoading = false; + } + prepare(ssfbId) { + this.ssprojectMap.set(ssfbId, null); + this._isLoading = true; + } + isLoading() { + return this._isLoading; + } + isExist(ssfbId) { + return this.ssprojectMap.has(ssfbId) && this.ssprojectMap.get(ssfbId) !== null; + } + set(ssfbId, ssproject) { + this.ssprojectMap.set(ssfbId, ssproject); + this._isLoading = false; + } + get(ssfbId) { + return this.ssprojectMap.has(ssfbId) ? this.ssprojectMap.get(ssfbId) : null; + } + clear() { + this.ssprojectMap = /* @__PURE__ */ new Map(); + } + static getInstance() { + if (SS6ProjectManager.instance) return SS6ProjectManager.instance; + SS6ProjectManager.instance = new SS6ProjectManager(); + return SS6ProjectManager.instance; + } + }; + //#endregion + //#region src/ss6player-rpgmakermz.js + const PLUGIN_NAME = "ss6player-rpgmakermz"; + const SS6PROJECT_LOAD_WAIT_MODE = "ss6projectLoadWait"; + const SS6PLAYER_WAIT_MODE = "ss6playerPlayWaitMode"; + let g_ss6playerPlayWaitingStatus = false; + let g_passSS6PlayerToSpritePicture = null; + let g_pictureSS6PlayerPrependCallback = null; + let g_pictureSS6PlayerAppendCallback = null; + PluginManager.registerCommand(PLUGIN_NAME, "loadSsfb", function(args) { + const ssfbId = Number(args.ssfbId); + const ssfbFile = args.ssfbFile; + const ssfbPath = PluginParameters.getInstance().animationDir + ssfbFile; + if (SS6ProjectManager.getInstance().isExist(ssfbId)) { + if (ssfbPath === SS6ProjectManager.getInstance().get(ssfbId).ssfbPath) return; + } + this.setWaitMode(SS6PROJECT_LOAD_WAIT_MODE); + SS6ProjectManager.getInstance().prepare(ssfbId); + new SS6Project(ssfbPath, (proj, error) => { + if (error) { + this.setWaitMode(""); + console.error(error); + throw error; + } + SS6ProjectManager.getInstance().set(ssfbId, proj); + }); + }); + PluginManager.registerCommand(PLUGIN_NAME, "setAsPicture", function(args) { + const ssfbId = Number(args.ssfbId); + const animePackName = args.animePackName; + const animeName = args.animeName; + const scaleX = Number(args.scaleX) || 1; + const scaleY = Number(args.scaleY) || 1; + const loop = Number(args.loop) || 1; + let project = SS6ProjectManager.getInstance().get(ssfbId); + if (project === null) { + const err = "not found ssfbId: " + ssfbId; + console.error(err); + throw err; + } + let player = new SS6Player(project, animePackName, animeName); + player.scale = new PIXI.Point(scaleX, scaleY); + player.loop = loop; + g_passSS6PlayerToSpritePicture = player; + }); + PluginManager.registerCommand(PLUGIN_NAME, "waitForPicture", function(args) { + const pictureId = Number(args.pictureId) || 1; + const picture = $gameScreen.picture(pictureId); + if (picture && picture.mzkpSS6Player) { + if (picture.mzkpSS6Player instanceof SS6Player) if (picture.mzkpSS6Player.loop !== -1) { + this.setWaitMode(SS6PLAYER_WAIT_MODE); + g_ss6playerPlayWaitingStatus = true; + g_pictureSS6PlayerPrependCallback = function(ss6player) { + if (ss6player.loop === 0) g_ss6playerPlayWaitingStatus = false; + }; + } else console.warn("pictureId: " + pictureId + " can not wait SS6Player because setting infinity loop."); + } else console.warn("pictureId: " + pictureId + " not have SS6Player"); + }); + const _Game_Interpreter_updateWaitMode = Game_Interpreter.prototype.updateWaitMode; + Game_Interpreter.prototype.updateWaitMode = function() { + let waiting = false; + if (this._waitMode === SS6PROJECT_LOAD_WAIT_MODE) waiting = SS6ProjectManager.getInstance().isLoading(); + else if (this._waitMode === SS6PLAYER_WAIT_MODE) waiting = g_ss6playerPlayWaitingStatus; + else waiting = _Game_Interpreter_updateWaitMode.call(this); + return waiting; + }; + const _Game_Picture_show = Game_Picture.prototype.show; + Game_Picture.prototype.show = function() { + _Game_Picture_show.apply(this, arguments); + if (this._name === "" && g_passSS6PlayerToSpritePicture !== null) { + this.mzkpSS6Player = g_passSS6PlayerToSpritePicture; + this.mzkpSS6PlayerChanged = true; + g_passSS6PlayerToSpritePicture = null; + } + }; + const _Sprite_Picture_destroy = Sprite_Picture.prototype.destroy; + Sprite_Picture.prototype.destroy = function(options) { + if (this.mzkpSS6Player !== null && this.mzkpSS6Player instanceof SS6Player) { + this.mzkpSS6Player.Stop(); + this.picture().mzkpSS6PlayerPrevFrameNo = this.mzkpSS6Player.frameNo; + this.removeChild(this.mzkpSS6Player); + this.mzkpSS6Player = null; + } + _Sprite_Picture_destroy.call(this, options); + }; + const _Game_Screen_erasePicture = Game_Screen.prototype.erasePicture; + Game_Screen.prototype.erasePicture = function(pictureId) { + const picture = this._pictures[pictureId]; + if (picture && picture.mzkpSS6Player) picture.mzkpSS6Player = null; + _Game_Screen_erasePicture.call(this, pictureId); + }; + const _Scene_Base_terminate = Scene_Base.prototype.terminate; + Scene_Base.prototype.terminate = function() { + $gameActors._data.forEach((actor, index, actors) => { + if (actor && actor._svActorSS6Player) { + actor._svActorSS6Player.Stop(); + actor._svActorSS6PlayerParent.removeChild(actor._svActorSS6Player); + actor._svActorSS6Player = null; + actor._svActorSS6PlayerParent = null; + } + }); + $gameTroop.members().forEach((enemy, index, enemies) => { + if (enemy && enemy._svEnemySS6Player) { + enemy._svEnemySS6Player.Stop(); + enemy._svEnemySS6PlayerParent.removeChild(enemy._svEnemySS6Player); + enemy._svEnemySS6ProjectLoaded = false; + enemy._svEnemySS6Player = null; + enemy._svEnemySS6PlayerParent = null; + } + }); + _Scene_Base_terminate.apply(this, arguments); + }; + const _Sprite_Picture_updateBitmap = Sprite_Picture.prototype.updateBitmap; + Sprite_Picture.prototype.updateBitmap = function() { + _Sprite_Picture_updateBitmap.apply(this, arguments); + if (this.visible && this._pictureName === "") { + const picture = this.picture(); + const player = picture ? picture.mzkpSS6Player || null : null; + const playerChanged = picture && picture.mzkpSS6PlayerChanged; + if (this.mzkpSS6Player !== player || playerChanged) if (player !== null) { + if (player.loop === 0) { + if (this.mzkpSS6Player) { + this.mzkpSS6Player.Stop(); + this.removeChild(this.mzkpSS6Player); + this.mzkpSS6Player = null; + picture.mzkpSS6Player = null; + } + return; + } + const prependCallback = g_pictureSS6PlayerPrependCallback; + const appendCallback = g_pictureSS6PlayerAppendCallback; + const spritePicture = this; + player.SetPlayEndCallback(() => { + if (prependCallback !== null) prependCallback(player); + if (player.loop === 0) { + player.Stop(); + spritePicture.removeChild(player); + } + if (appendCallback !== null) appendCallback(player); + }); + if (this.mzkpSS6Player) { + this.mzkpSS6Player.Stop(); + this.removeChild(this.mzkpSS6Player); + } + this.mzkpSS6Player = player; + this.addChild(this.mzkpSS6Player); + this.mzkpSS6Player.Play(picture.mzkpSS6PlayerPrevFrameNo); + picture.mzkpSS6PlayerChanged = false; + g_pictureSS6PlayerPrependCallback = null; + g_pictureSS6PlayerAppendCallback = null; + } else this.mzkpSS6Player = null; + } else { + if (this.mzkpSS6Player !== null && this.mzkpSS6Player instanceof SS6Player) { + this.mzkpSS6Player.Stop(); + this.removeChild(this.mzkpSS6Player); + } + this.mzkpSS6Player = null; + } + }; + const _Game_Screen_clear = Game_Screen.prototype.clear; + Game_Screen.prototype.clear = function() { + SS6ProjectManager.getInstance().clear(); + _Game_Screen_clear.call(this); + }; + let g_suspendPlayingSS6Player = false; + const _SceneManager_updateScene = SceneManager.updateScene; + SceneManager.updateScene = function() { + _SceneManager_updateScene.apply(this, arguments); + if (this._scene) if (this.isGameActive()) { + if (g_suspendPlayingSS6Player) { + $gameScreen._pictures.forEach((picture, index, pictures) => { + if (picture && picture.mzkpSS6Player) picture.mzkpSS6Player.Resume(); + }); + $gameActors._data.forEach((actor, index, actors) => { + if (actor && actor._svActorSS6Player) actor._svActorSS6Player.Resume(); + }); + $gameTroop.members().forEach((enemy, index, enemies) => { + if (enemy && enemy._svEnemySS6Player) enemy._svEnemySS6Player.Resume(); + }); + g_suspendPlayingSS6Player = false; + } + } else { + if ($gameScreen && $gameScreen._pictures) $gameScreen._pictures.forEach((picture, index, pictures) => { + if (picture && picture.mzkpSS6Player) picture.mzkpSS6Player.Pause(); + }); + if ($gameActors && $gameActors._data) $gameActors._data.forEach((actor, index, actors) => { + if (actor && actor._svActorSS6Player) actor._svActorSS6Player.Pause(); + }); + if ($gameTroop && $gameTroop.members()) $gameTroop.members().forEach((enemy, index, enemies) => { + if (enemy && enemy._svEnemySS6Player) enemy._svEnemySS6Player.Pause(); + }); + g_suspendPlayingSS6Player = true; + } + }; + let loaded_EnemyNoteTags = false; + const _DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded; + DataManager.isDatabaseLoaded = function() { + if (PluginParameters.getInstance().replaceSVEnemySpriteFlag) { + if (!_DataManager_isDatabaseLoaded.call(this)) return false; + if (!loaded_EnemyNoteTags) { + this.loadEnemyNoteTags(); + loaded_EnemyNoteTags = true; + } + return true; + } else return _DataManager_isDatabaseLoaded.call(this); + }; + const SV_ENEMY_TAG = "SS6SVEnemy"; + const SV_ENEMY_ATTRIBUTE_FILE = "file"; + const SV_ENEMY_ATTRIBUTE_ANIMATIONPACK = "animationPackName"; + const SV_ENEMY_ATTRIBUTE_ANIMATIONNAME = "animationName"; + const SV_ENEMY_ATTRIBUTE_SCALE_X = "scaleX"; + const SV_ENEMY_ATTRIBUTE_SCALE_Y = "scaleY"; + const SV_ENEMY_ATTRIBUTE_OFFSET_X = "offsetX"; + const SV_ENEMY_ATTRIBUTE_OFFSET_Y = "offsetY"; + DataManager.loadEnemyNoteTags = function() { + const regex = new RegExp("<" + SV_ENEMY_TAG + " (.*):(.*)>", "i"); + $dataEnemies.forEach((enemy, idx, enemies) => { + if (enemy === null) return; + enemy.note.split(/\r?\n/).forEach((line, idx, lines) => { + const match = regex.exec(line); + if (match && match.length === 3) { + const attribute = match[1].toLowerCase(); + const value = match[2]; + switch (attribute) { + case SV_ENEMY_ATTRIBUTE_FILE.toLowerCase(): + enemy._svEnemyFile = value; + break; + case SV_ENEMY_ATTRIBUTE_ANIMATIONPACK.toLowerCase(): + enemy._svEnemyAnimationPackName = value; + break; + case SV_ENEMY_ATTRIBUTE_ANIMATIONNAME.toLowerCase(): + enemy._svEnemyAnimationName = value; + break; + case SV_ENEMY_ATTRIBUTE_SCALE_X.toLowerCase(): + enemy._svEnemyScaleX = Number(value); + break; + case SV_ENEMY_ATTRIBUTE_SCALE_Y.toLowerCase(): + enemy._svEnemyScaleY = Number(value); + break; + case SV_ENEMY_ATTRIBUTE_OFFSET_X.toLowerCase(): + enemy._svEnemyOffsetX = Number(value); + break; + case SV_ENEMY_ATTRIBUTE_OFFSET_Y.toLowerCase(): + enemy._svEnemyOffsetY = Number(value); + break; + default: break; + } + } + }); + }); + }; + Sprite_Actor.svActorSsfbId = function(actorId) { + return "sv_actor_" + actorId; + }; + Sprite_Actor.svActorSsfbDir = function(actorId) { + return PluginParameters.getInstance().svActorDir + String(actorId) + "/"; + }; + Sprite_Actor.svActorSsfbPath = function(actorId) { + return Sprite_Actor.svActorSsfbDir(actorId) + String(actorId) + ".ssfb"; + }; + let notFoundSvActorSsfbMap = /* @__PURE__ */ new Map(); + const _Sprite_Actor_setBattler = Sprite_Actor.prototype.setBattler; + Sprite_Actor.prototype.setBattler = function(battler) { + const changed = battler !== this._actor; + _Sprite_Actor_setBattler.call(this, battler); + if (PluginParameters.getInstance().replaceSVActorSpriteFlag) { + if (changed) { + let actorId; + let ssfbId; + let ssfbPath; + if (Imported.VisuMZ_0_CoreEngine && Imported.VisuMZ_1_BattleCore && this instanceof Sprite_SvEnemy) { + actorId = this._actor.enemyId(); + ssfbId = "sv_enemy_" + actorId; + ssfbPath = PluginParameters.getInstance().svActorDir + "svenemy" + String(actorId) + "/" + String(actorId) + ".ssfb"; + } else { + actorId = this._actor.actorId(); + ssfbId = Sprite_Actor.svActorSsfbId(actorId); + ssfbPath = Sprite_Actor.svActorSsfbPath(actorId); + } + if (notFoundSvActorSsfbMap.has(ssfbId)) return; + if (SS6ProjectManager.getInstance().isExist(ssfbId)) { + const existProject = SS6ProjectManager.getInstance().get(ssfbId); + if (ssfbPath === existProject.ssfbPath) { + this._actor._svActorSS6Player = null; + this._actor._svActorSS6PlayerParent = null; + return; + } + } + SS6ProjectManager.getInstance().prepare(ssfbId); + new SS6Project(ssfbPath, (proj, error) => { + if (error) { + notFoundSvActorSsfbMap.set(ssfbId, null); + SS6ProjectManager.getInstance().set(ssfbId, null); + return; + } + this._actor._svActorSS6Player = null; + this._actor._svActorSS6PlayerParent = null; + SS6ProjectManager.getInstance().set(ssfbId, proj); + }); + } + } + }; + const _Sprite_Actor_updateBitmap = Sprite_Actor.prototype.updateBitmap; + Sprite_Actor.prototype.updateBitmap = function() { + if (PluginParameters.getInstance().replaceSVActorSpriteFlag) { + const actorId = this._actor.actorId(); + const ssfbId = Sprite_Actor.svActorSsfbId(actorId); + if (SS6ProjectManager.getInstance().isExist(ssfbId) && this._actor._svActorSS6Player !== void 0) { + Sprite_Battler.prototype.updateBitmap.call(this); + this._mainSprite.bitmap = null; + this.updateSS6Player(); + } else _Sprite_Actor_updateBitmap.call(this); + } else _Sprite_Actor_updateBitmap.call(this); + }; + Sprite_Actor.prototype.updateSS6Player = function() { + let motionName = ""; + for (let key in Sprite_Actor.MOTIONS) { + const motion = Sprite_Actor.MOTIONS[key]; + if (this._motion === motion) motionName = key; + } + if (motionName === "") motionName = "walk"; + if (this._actor._svActorSS6Player === null || this._actor._svActorSS6Player.animeName !== motionName) { + if (this._actor._svActorSS6Player) { + this._mainSprite.removeChild(this._actor._svActorSS6Player); + this._actor._svActorSS6Playe = null; + this._actor._svActorSS6PlayerParent = null; + } + const loop = this._motion.loop; + const actorId = this._actor.actorId(); + const ssfbId = Sprite_Actor.svActorSsfbId(actorId); + const project = SS6ProjectManager.getInstance().get(ssfbId); + const animePackName = PluginParameters.getInstance().svActorAnimationPack; + this._actor._svActorSS6Player = new SS6Player(project, animePackName, motionName); + this._actor._svActorSS6Player.loop = loop ? -1 : 1; + this._actor._svActorSS6Player.SetPlayEndCallback((player) => { + if (player.loop === 0) this.refreshMotion(); + }); + this._actor._svActorSS6Player.Play(); + this._mainSprite.addChild(this._actor._svActorSS6Player); + this._actor._svActorSS6PlayerParent = this._mainSprite; + } + }; + const _Sprite_Actor_setupWeaponAnimation = Sprite_Actor.prototype.setupWeaponAnimation; + Sprite_Actor.prototype.setupWeaponAnimation = function() { + if (PluginParameters.getInstance().replaceSVActorSpriteFlag) if (PluginParameters.getInstance().svActorHideWeaponGraphics) { + if (this._actor._svActorSS6Player === void 0) _Sprite_Actor_setupWeaponAnimation.call(this); + } else _Sprite_Actor_setupWeaponAnimation.call(this); + else _Sprite_Actor_setupWeaponAnimation.call(this); + }; + Sprite_Enemy.svEnemySsfbId = function(enemyId) { + return "sv_enemy_" + enemyId; + }; + Sprite_Enemy.svEnemySsfbDir = function(enemyId) { + return PluginParameters.getInstance().svEnemyDir + String(enemyId) + "/"; + }; + Sprite_Enemy.svEnemySsfbPath = function(enemyId) { + return Sprite_Enemy.svEnemySsfbDir(enemyId) + String(enemyId) + ".ssfb"; + }; + let notFoundSvEnemySsfbMap = /* @__PURE__ */ new Map(); + const _Sprite_Enemy_setBattler = Sprite_Enemy.prototype.setBattler; + Sprite_Enemy.prototype.setBattler = function(battler) { + const changed = battler !== this._enemy; + _Sprite_Enemy_setBattler.call(this, battler); + if (PluginParameters.getInstance().replaceSVEnemySpriteFlag) { + if (changed) { + const enemyId = this._enemy.enemyId(); + const ssfbId = Sprite_Enemy.svEnemySsfbId(enemyId); + if (notFoundSvEnemySsfbMap.has(ssfbId)) return; + let ssfbPath = Sprite_Enemy.svEnemySsfbPath(enemyId); + const dataEnemy = this._enemy.enemy(); + if (dataEnemy._svEnemyFile) ssfbPath = PluginParameters.getInstance().animationDir + dataEnemy._svEnemyFile; + this._enemy._svEnemySS6ProjectLoaded = false; + if (SS6ProjectManager.getInstance().isExist(ssfbId)) { + const existProject = SS6ProjectManager.getInstance().get(ssfbId); + if (ssfbPath === existProject.ssfbPath) { + this._enemy._svEnemySS6ProjectLoaded = true; + this._enemy._svEnemySS6Player = null; + this._enemy._svEnemySS6PlayerParent = null; + return; + } + } + SS6ProjectManager.getInstance().prepare(ssfbId); + new SS6Project(ssfbPath, (proj, error) => { + if (error) { + this._enemy._svEnemySS6ProjectLoaded = true; + notFoundSvEnemySsfbMap.set(ssfbId, null); + SS6ProjectManager.getInstance().set(ssfbId, null); + return; + } + this._enemy._svEnemySS6ProjectLoaded = true; + this._enemy._svEnemySS6Player = null; + this._enemy._svEnemySS6PlayerParent = null; + SS6ProjectManager.getInstance().set(ssfbId, proj); + }); + } + } + }; + const _Sprite_Enemy_updateBitmap = Sprite_Enemy.prototype.updateBitmap; + Sprite_Enemy.prototype.updateBitmap = function() { + if (PluginParameters.getInstance().replaceSVEnemySpriteFlag) { + const enemyId = this._enemy.enemyId(); + const ssfbId = Sprite_Enemy.svEnemySsfbId(enemyId); + if (!this._enemy._svEnemySS6ProjectLoaded) return; + if (SS6ProjectManager.getInstance().isExist(ssfbId) && this._enemy._svEnemySS6Player !== void 0) { + Sprite_Battler.prototype.updateBitmap.call(this); + this.bitmap = null; + this.updateSS6Player(); + } else _Sprite_Enemy_updateBitmap.call(this); + } else _Sprite_Enemy_updateBitmap.call(this); + }; + Sprite_Enemy.prototype.updateSS6Player = function() { + if (this._enemy._svEnemySS6Player === null) { + const enemyId = this._enemy.enemyId(); + const ssfbId = Sprite_Enemy.svEnemySsfbId(enemyId); + const project = SS6ProjectManager.getInstance().get(ssfbId); + let animePackName = PluginParameters.getInstance().svEnemyAnimationPack; + let animeName = PluginParameters.getInstance().svEnemyAnimationName; + let scaleX = 1; + let scaleY = 1; + let offsetX = 0; + let offsetY = 0; + const dataEnemy = this._enemy.enemy(); + if (dataEnemy._svEnemyAnimationPackName) animePackName = dataEnemy._svEnemyAnimationPackName; + if (dataEnemy._svEnemyAnimationName) animeName = dataEnemy._svEnemyAnimationName; + if (dataEnemy._svEnemyScaleX) scaleX = dataEnemy._svEnemyScaleX; + if (dataEnemy._svEnemyScaleY) scaleY = dataEnemy._svEnemyScaleY; + if (dataEnemy._svEnemyOffsetX) offsetX = dataEnemy._svEnemyOffsetX; + if (dataEnemy._svEnemyOffsetY) offsetY = dataEnemy._svEnemyOffsetY; + this._enemy._svEnemySS6Player = new SS6Player(project, animePackName, animeName); + this._enemy._svEnemySS6Player.loop = -1; + this._enemy._svEnemySS6Player.SetPlayEndCallback((player) => {}); + this._enemy._svEnemySS6Player.scale.x = scaleX; + this._enemy._svEnemySS6Player.scale.y = scaleY; + this._enemy._svEnemySS6Player.position.x += offsetX; + this._enemy._svEnemySS6Player.position.y += offsetY; + this._enemy._svEnemySS6Player.Play(); + this.addChild(this._enemy._svEnemySS6Player); + this._enemy._svEnemySS6PlayerParent = this; + } + }; + const _Sprite_Enemy_updateFrame = Sprite_Enemy.prototype.updateFrame; + Sprite_Enemy.prototype.updateFrame = function() { + if (PluginParameters.getInstance().replaceSVEnemySpriteFlag) { + const enemyId = this._enemy.enemyId(); + const ssfbId = Sprite_Enemy.svEnemySsfbId(enemyId); + if (!this._enemy._svEnemySS6ProjectLoaded) return; + if (SS6ProjectManager.getInstance().isExist(ssfbId) && this._enemy._svEnemySS6Player !== void 0) { + if (this.bitmap) { + _Sprite_Enemy_updateFrame.call(this); + return; + } + Sprite_Battler.prototype.updateFrame.call(this); + const player = this._enemy._svEnemySS6Player; + let width = 0; + let height = 0; + if (player) { + width = player.width; + height = player.height; + } + if (this._effectType === "bossCollapse") this.setFrame(0, 0, width, this._effectDuration); + else this.setFrame(0, 0, width, height); + } else _Sprite_Enemy_updateFrame.call(this); + } else _Sprite_Enemy_updateFrame.call(this); + }; + const _Sprite_Enemy_updateStateSprite = Sprite_Enemy.prototype.updateStateSprite; + Sprite_Enemy.prototype.updateStateSprite = function() { + if (PluginParameters.getInstance().replaceSVEnemySpriteFlag) if (this.bitmap) { + this._stateIconSprite.y = -Math.round((this.bitmap.height + 40) * .9); + if (this._stateIconSprite.y < 20 - this.y) this._stateIconSprite.y = 20 - this.y; + } else { + let height = 0; + if (this._enemy && this._enemy._svEnemySS6Player) height = this._enemy._svEnemySS6Player.height; + this._stateIconSprite.y = -Math.round((height + 40) * .9); + if (this._stateIconSprite.y < 20 - this.y) this._stateIconSprite.y = 20 - this.y; + } + else _Sprite_Enemy_updateStateSprite.call(this); + }; + //#endregion })(PIXI, PIXI, PIXI, PIXI, PIXI.filters, PIXI); diff --git a/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_core.js b/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_core.js index 410d2543..a6c5ecc0 100755 --- a/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_core.js +++ b/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_core.js @@ -1,5 +1,5 @@ //============================================================================= -// rmmz_core.js v1.9.0 +// rmmz_core.js v1.10.0 //============================================================================= //----------------------------------------------------------------------------- @@ -192,7 +192,7 @@ Utils.RPGMAKER_NAME = "MZ"; * @type string * @constant */ -Utils.RPGMAKER_VERSION = "1.9.0"; +Utils.RPGMAKER_VERSION = "1.10.0"; /** * Checks whether the current RPG Maker version is greater than or equal to diff --git a/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_managers.js b/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_managers.js index 6c37c684..13d7a90f 100755 --- a/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_managers.js +++ b/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_managers.js @@ -1,5 +1,5 @@ //============================================================================= -// rmmz_managers.js v1.9.0 +// rmmz_managers.js v1.10.0 //============================================================================= //----------------------------------------------------------------------------- @@ -892,7 +892,7 @@ ImageManager.getIconSize = function() { if ("iconSize" in $dataSystem) { return $dataSystem.iconSize; } else { - return this.defaultIconWidth; + return this.standardIconWidth; } }; @@ -900,7 +900,7 @@ ImageManager.getFaceSize = function() { if ("faceSize" in $dataSystem) { return $dataSystem.faceSize; } else { - return this.defaultFaceWidth; + return this.standardFaceWidth; } }; diff --git a/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_objects.js b/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_objects.js index 36e9cd08..09dc869e 100755 --- a/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_objects.js +++ b/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_objects.js @@ -1,5 +1,5 @@ //============================================================================= -// rmmz_objects.js v1.9.0 +// rmmz_objects.js v1.10.0 //============================================================================= //----------------------------------------------------------------------------- diff --git a/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_scenes.js b/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_scenes.js index feb5255f..0e861e08 100755 --- a/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_scenes.js +++ b/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_scenes.js @@ -1,5 +1,5 @@ //============================================================================= -// rmmz_scenes.js v1.9.0 +// rmmz_scenes.js v1.10.0 //============================================================================= //----------------------------------------------------------------------------- @@ -2684,6 +2684,7 @@ Scene_Shop.prototype.createSellWindow = function() { if (!this._categoryWindow.needsSelection()) { this._sellWindow.y -= this._categoryWindow.height; this._sellWindow.height += this._categoryWindow.height; + this._sellWindow.createContents(); } }; @@ -2758,6 +2759,7 @@ Scene_Shop.prototype.onBuyCancel = function() { Scene_Shop.prototype.onCategoryOk = function() { this.activateSellWindow(); this._sellWindow.select(0); + this._sellWindow.setTopRow(0); }; Scene_Shop.prototype.onCategoryCancel = function() { diff --git a/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_sprites.js b/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_sprites.js index 4dc30875..35c1f01e 100755 --- a/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_sprites.js +++ b/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_sprites.js @@ -1,5 +1,5 @@ //============================================================================= -// rmmz_sprites.js v1.9.0 +// rmmz_sprites.js v1.10.0 //============================================================================= //----------------------------------------------------------------------------- diff --git a/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_windows.js b/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_windows.js index 3ae92b14..788557e2 100755 --- a/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_windows.js +++ b/packages/ss6player-rpgmakermz/SampleProject/js/rmmz_windows.js @@ -1,5 +1,5 @@ //============================================================================= -// rmmz_windows.js v1.9.0 +// rmmz_windows.js v1.10.0 //============================================================================= //----------------------------------------------------------------------------- @@ -455,7 +455,7 @@ Window_Base.prototype.drawIcon = function(iconIndex, x, y) { const ph = ImageManager.iconHeight; const sx = (iconIndex % 16) * pw; const sy = Math.floor(iconIndex / 16) * ph; - this.contents.blt(bitmap, sx, sy, pw, ph, x, y); + this.contents.blt(bitmap, sx, sy, pw, ph, Math.floor(x), Math.floor(y)); }; // prettier-ignore diff --git a/packages/ss6player-rpgmakermz/package.json b/packages/ss6player-rpgmakermz/package.json index 0b897990..a1c9c04c 100644 --- a/packages/ss6player-rpgmakermz/package.json +++ b/packages/ss6player-rpgmakermz/package.json @@ -1,7 +1,7 @@ { "name": "ss6player-rpgmakermz", "private": true, - "version": "0.8.5", + "version": "0.9.0", "description": "SS6Player for RPG Maker MZ", "keywords": [ "SpriteStudio", @@ -35,39 +35,31 @@ "start": "npm run watch", "lint": "eslint -c ../../eslint.config.js ./src", "prebuild": "npm run clean", - "build": "tsc --module commonjs && rollup -c rollup.config.ts --configPlugin typescript --bundleConfigAsCjs --strictDeprecations", + "build": "tsc --module commonjs && rolldown -c rolldown.config.mjs", "deploy": "npm run build && npx ncp dist/ss6player-rpgmakermz.js SampleProject/js/plugins/ss6player-rpgmakermz.js", - "watch": "rollup -c rollup.config.ts -w", + "watch": "rolldown -c rolldown.config.mjs -w", "dist": "npm run build", "view": "concurrently \"http-server -c-1 -p 8083 ./SampleProject\" \"opener http://localhost:8083/index.html\"", "clean": "rimraf dist" }, "dependencies": { - "ss6player-pixi6": "^1.0.5" + "ss6player-pixi6": "^1.0.6" }, "devDependencies": { - "typescript": "^5.9.2", - "typedoc": "^0.28.9", + "typescript": "^5.9.3", + "typedoc": "^0.28.17", "lodash.camelcase": "^4.3.0", - "rimraf": "^6.0.1", - "rollup": "^4.46.2", - "@rollup/plugin-typescript": "^12.1.4", - "@rollup/plugin-commonjs": "^28.0.6", - "rollup-plugin-includepaths": "^0.2.4", - "@rollup/plugin-json": "^6.1.0", - "rollup-plugin-license": "^3.6.0", - "@rollup/plugin-node-resolve": "^16.0.1", - "rollup-plugin-esbuild": "^6.2.1", - "esbuild": "^0.25.8", + "rimraf": "^6.1.3", + "rolldown": "^1.0.0-rc.9", "pixi.js": "^5.3.12", - "concurrently": "^9.2.0", + "concurrently": "^9.2.1", "http-server": "^14.1.1", "opener": "^1.5.2", "replace": "^1.2.2", "ncp": "^2.0.0", - "eslint": "^9.32.0", - "@typescript-eslint/eslint-plugin": "^8.39.0", - "@typescript-eslint/parser": "^8.39.0" + "eslint": "^9.39.4", + "@typescript-eslint/eslint-plugin": "^8.57.0", + "@typescript-eslint/parser": "^8.57.0" }, "optionalDependencies": { "fsevents": "^2.3.3" diff --git a/packages/ss6player-rpgmakermz/rolldown.config.mjs b/packages/ss6player-rpgmakermz/rolldown.config.mjs new file mode 100644 index 00000000..8ff98ed4 --- /dev/null +++ b/packages/ss6player-rpgmakermz/rolldown.config.mjs @@ -0,0 +1,66 @@ +import { defineConfig } from 'rolldown'; +import camelCase from 'lodash.camelcase'; +import { createRequire } from 'module'; +import * as path from 'path'; +import * as fs from 'fs'; +const require = createRequire(import.meta.url); +const pkg = require('./package.json'); + +const libraryName = 'ss6player-rpgmakermz'; +const pixiGlobals = { + '@pixi/loaders': 'PIXI', + '@pixi/display': 'PIXI', + '@pixi/mesh': 'PIXI', + '@pixi/ticker': 'PIXI', + '@pixi/filter-color-matrix': 'PIXI.filters', + '@pixi/core': 'PIXI', + '@pixi/constants': 'PIXI', + '@pixi/app': 'PIXI', + '@pixi/graphics': 'PIXI' +}; +const headerFilePath = path.join(import.meta.dirname, 'src/header.js'); +let banner = fs.readFileSync(headerFilePath, 'utf-8'); +banner = banner + .replace(/<%= pkg\.version %>/g, pkg.version) + .replace(/<%= pkg\.author\.name %>/g, pkg.author.name) + .replace(/<%= pkg\.author\.url %>/g, pkg.author.url); + + +function injectBannerAfterMinify() { + return { + name: 'inject-banner-after-minify', + generateBundle(options, bundle) { + for (const fileName in bundle) { + const chunk = bundle[fileName]; + if (chunk.type === 'chunk') { + chunk.code = banner + '\n' + chunk.code; + } + } + } + }; +} + +export default defineConfig([ + { + input: `src/${libraryName}.js`, + output: [ + { file: pkg.main, name: camelCase(libraryName), format: 'iife', sourcemap: false, globals: pixiGlobals, banner } + ], + external: [/@pixi\/.*/, 'pixi.js'], + moduleContext: 'this' + }, + { + input: `src/${libraryName}.js`, + output: { + file: `dist/${libraryName}.min.js`, + name: camelCase(libraryName), + format: 'iife', + sourcemap: false, + globals: pixiGlobals, + minify: true, + }, + external: [/@pixi\/.*/, 'pixi.js'], + moduleContext: 'this', + plugins: [injectBannerAfterMinify()] + } +]); diff --git a/packages/ss6player-rpgmakermz/rollup.config.ts b/packages/ss6player-rpgmakermz/rollup.config.ts deleted file mode 100644 index 19669b7d..00000000 --- a/packages/ss6player-rpgmakermz/rollup.config.ts +++ /dev/null @@ -1,64 +0,0 @@ -import resolve from '@rollup/plugin-node-resolve'; -import commonjs from '@rollup/plugin-commonjs'; -import camelCase from 'lodash.camelcase'; -import esbuild, { minify } from 'rollup-plugin-esbuild'; -import json from '@rollup/plugin-json'; -import license from 'rollup-plugin-license'; -import * as path from 'path'; - -const production = !process.env.ROLLUP_WATCH; - -const pkg = require('./package.json'); - -const libraryName = 'ss6player-rpgmakermz'; - -// reference: @pixi-build-tools/globals -const pixiGlobals = { - '@pixi/loaders': 'PIXI', - '@pixi/display': 'PIXI', - '@pixi/mesh': 'PIXI', - '@pixi/ticker': 'PIXI', - '@pixi/filter-color-matrix': 'PIXI.filters', - '@pixi/core': 'PIXI', - '@pixi/constants': 'PIXI', - '@pixi/app': 'PIXI', - '@pixi/graphics': 'PIXI' -}; - -const licenseBannerOptions = { - commentStyle: 'none', - content: { - file: path.join(__dirname, 'src/header.js'), - encoding: 'utf-8' // Default is utf-8 - } -}; - -export default { - input: `src/${libraryName}.js`, - output: [ - { file: pkg.main, name: camelCase(libraryName), format: 'iife', sourcemap: false, globals: pixiGlobals }, - { file: `dist/${libraryName}.min.js`, name: camelCase(libraryName), format: 'iife', sourcemap: false, globals: pixiGlobals, plugins: [ minify(), license({banner: licenseBannerOptions}) ] } - ], - // Indicate here external modules you don't wanna include in your bundle (i.e.: 'lodash') - external: [ - 'pixi.js', - /@pixi\/.*/ - ], - watch: { - include: 'src/**' - }, - context: 'this', - plugins: [ - // Allow json resolution - json(), - // Compile TypeScript files - esbuild.default({sourceMap: !production}), - // Allow bundling cjs modules (unlike webpack, rollup doesn't understand cjs) - commonjs(), - // Allow node_modules resolution, so you can use 'external' to control - // which external modules to include in the bundle - // https://github.com/rollup/rollup-plugin-node-resolve#usage - resolve(), - license({ banner: licenseBannerOptions }) - ] -}; diff --git a/packages/ss6player-rpgmakermz/src/ss6player-rpgmakermz.js b/packages/ss6player-rpgmakermz/src/ss6player-rpgmakermz.js index 15a8a987..a6c32b89 100644 --- a/packages/ss6player-rpgmakermz/src/ss6player-rpgmakermz.js +++ b/packages/ss6player-rpgmakermz/src/ss6player-rpgmakermz.js @@ -24,20 +24,14 @@ PluginManager.registerCommand(PLUGIN_NAME, 'loadSsfb', function(args) { } this.setWaitMode(SS6PROJECT_LOAD_WAIT_MODE); SS6ProjectManager.getInstance().prepare(ssfbId); - let project = new SS6Project(ssfbPath, () => { - SS6ProjectManager.getInstance().set(ssfbId, project); - }, - 180 * 1000, 3, - (ssfbPath, timeout, retry, httpObj) => { + let project = new SS6Project(ssfbPath, (proj, error) => { + if (error) { this.setWaitMode(''); - throw httpObj; - }, - (ssfbPath, timeout, retry, httpObj) => { - console.log('timeout download ssfb file: ' + ssfbPath); - this.setWaitMode(''); - throw httpObj; - }, - null); + console.error(error); + throw error; + } + SS6ProjectManager.getInstance().set(ssfbId, proj); + }); }); PluginManager.registerCommand(PLUGIN_NAME, 'setAsPicture', function(args) { @@ -412,18 +406,18 @@ Sprite_Actor.prototype.setBattler = function (battler) { } SS6ProjectManager.getInstance().prepare(ssfbId); - let project = new SS6Project(ssfbPath, - () => { + new SS6Project(ssfbPath, + (proj, error) => { + if (error) { + // not found character sub directory + notFoundSvActorSsfbMap.set(ssfbId, null); + SS6ProjectManager.getInstance().set(ssfbId, null); + return; + } this._actor._svActorSS6Player = null; this._actor._svActorSS6PlayerParent = null; - SS6ProjectManager.getInstance().set(ssfbId, project); - }, - 180 * 1000, 3, - (ssfbPath, timeout, retry, httpObj) => { - // not found character sub directory - notFoundSvActorSsfbMap.set(ssfbId, null); - SS6ProjectManager.getInstance().set(ssfbId, null); + SS6ProjectManager.getInstance().set(ssfbId, proj); } ); } @@ -553,19 +547,19 @@ Sprite_Enemy.prototype.setBattler = function (battler) { } SS6ProjectManager.getInstance().prepare(ssfbId); - let project = new SS6Project(ssfbPath, - () => { + new SS6Project(ssfbPath, + (proj, error) => { + if (error) { + // not found character sub directory + this._enemy._svEnemySS6ProjectLoaded = true; + notFoundSvEnemySsfbMap.set(ssfbId, null); + SS6ProjectManager.getInstance().set(ssfbId, null); + return; + } this._enemy._svEnemySS6ProjectLoaded = true; this._enemy._svEnemySS6Player = null; this._enemy._svEnemySS6PlayerParent = null; - SS6ProjectManager.getInstance().set(ssfbId, project); - }, - 180 * 1000, 3, - (ssfbPath, timeout, retry, httpObj) => { - // not found character sub directory - this._enemy._svEnemySS6ProjectLoaded = true; - notFoundSvEnemySsfbMap.set(ssfbId, null); - SS6ProjectManager.getInstance().set(ssfbId, null); + SS6ProjectManager.getInstance().set(ssfbId, proj); } ); } @@ -693,7 +687,7 @@ Sprite_Enemy.prototype.updateStateSprite = function() { } else { let height = 0; if (this._enemy && this._enemy._svEnemySS6Player) { - height = this._enemy._svEnemySS6Player; + height = this._enemy._svEnemySS6Player.height; } this._stateIconSprite.y = -Math.round((height + 40) * 0.9); if (this._stateIconSprite.y < 20 - this.y) { diff --git a/packages/ss6player-viewer/package.json b/packages/ss6player-viewer/package.json index 8225498f..6212185e 100644 --- a/packages/ss6player-viewer/package.json +++ b/packages/ss6player-viewer/package.json @@ -1,7 +1,7 @@ { "name": "ss6player-viewer", "private": true, - "version": "1.6.0", + "version": "1.6.1", "description": "SS6Player for viewer", "keywords": [ "SpriteStudio", @@ -35,39 +35,31 @@ "start": "npm run watch", "lint": "eslint -c ../../eslint.config.js ./src", "prebuild": "npm run clean", - "build": "tsc --module commonjs && rollup -c rollup.config.ts --configPlugin typescript --bundleConfigAsCjs --strictDeprecations", + "build": "tsc --module commonjs && rolldown -c rolldown.config.mjs", "docs": "typedoc --out ../../docs/ss6player_viewer_api src/ss6player-viewer.ts", - "watch": "rollup -c rollup.config.ts -w", + "watch": "rolldown -c rolldown.config.mjs -w", "dist": "npm run docs && npm run build", "view": "concurrently \"http-server -c-1 -p 8084 ../../\" \"opener http://localhost:8084/packages/ss6player-viewer/Player/index.html\"", "clean": "rimraf dist" }, "dependencies": { - "ss6player-pixi": "2.4.0", + "ss6player-pixi": "2.4.1", "jszip": "^3.10.1" }, "devDependencies": { - "typescript": "^5.9.2", - "typedoc": "^0.28.9", + "typescript": "^5.9.3", + "typedoc": "^0.28.17", "lodash.camelcase": "^4.3.0", - "rimraf": "^6.0.1", - "rollup": "^4.46.2", - "@rollup/plugin-typescript": "^12.1.4", - "@rollup/plugin-commonjs": "^28.0.6", - "rollup-plugin-includepaths": "^0.2.4", - "@rollup/plugin-json": "^6.1.0", - "rollup-plugin-license": "^3.6.0", - "@rollup/plugin-node-resolve": "^16.0.1", - "rollup-plugin-esbuild": "^6.2.1", - "esbuild": "^0.25.8", - "pixi.js": "^8.12.0", - "concurrently": "^9.2.0", + "rimraf": "^6.1.3", + "rolldown": "^1.0.0-rc.9", + "pixi.js": "^8.17.0", + "concurrently": "^9.2.1", "http-server": "^14.1.1", "opener": "^1.5.2", "replace": "^1.2.2", - "eslint": "^9.32.0", - "@typescript-eslint/eslint-plugin": "^8.39.0", - "@typescript-eslint/parser": "^8.39.0" + "eslint": "^9.39.4", + "@typescript-eslint/eslint-plugin": "^8.57.0", + "@typescript-eslint/parser": "^8.57.0" }, "optionalDependencies": { "fsevents": "^2.3.3" diff --git a/packages/ss6player-viewer/rolldown.config.mjs b/packages/ss6player-viewer/rolldown.config.mjs new file mode 100644 index 00000000..e9387d2f --- /dev/null +++ b/packages/ss6player-viewer/rolldown.config.mjs @@ -0,0 +1,44 @@ +import { defineConfig } from 'rolldown'; +import camelCase from 'lodash.camelcase'; +import { createRequire } from 'module'; + +const require = createRequire(import.meta.url); +const pkg = require('./package.json'); + +const libraryName = 'ss6player-viewer'; +const pixiGlobals = { + 'pixi.js': 'PIXI' +}; +const banner = `/*! + * ----------------------------------------------------------- + * SS6Player For Viewer v${pkg.version} + * + * Copyright(C) ${pkg.author.name} + * ${pkg.author.url} + * ----------------------------------------------------------- + */`; + + +export default defineConfig([ + { + input: `src/${libraryName}.ts`, + output: [ + { file: pkg.main, name: camelCase(libraryName), format: 'iife', sourcemap: false, globals: pixiGlobals, banner}, + { file: pkg.module, format: 'es', sourcemap: true, globals: pixiGlobals, banner} + ], + external: [/@pixi\/.*/, 'pixi.js'] + }, + { + input: `src/${libraryName}.ts`, + output: { + file: `dist/${libraryName}.min.js`, + name: camelCase(libraryName), + format: 'iife', + sourcemap: false, + globals: pixiGlobals, + minify: true, + banner + }, + external: [/@pixi\/.*/, 'pixi.js'] + } +]); diff --git a/packages/ss6player-viewer/rollup.config.ts b/packages/ss6player-viewer/rollup.config.ts deleted file mode 100644 index 9a16d87c..00000000 --- a/packages/ss6player-viewer/rollup.config.ts +++ /dev/null @@ -1,55 +0,0 @@ -import resolve from '@rollup/plugin-node-resolve'; -import commonjs from '@rollup/plugin-commonjs'; -import camelCase from 'lodash.camelcase'; -import esbuild, { minify } from 'rollup-plugin-esbuild'; -import json from '@rollup/plugin-json'; -import license from 'rollup-plugin-license'; - -const production = !process.env.ROLLUP_WATCH; - -const pkg = require('./package.json'); - -const libraryName = 'ss6player-viewer'; - -// reference: @pixi-build-tools/globals -const pixiGlobals = { - 'pixi.js': 'PIXI' -}; - -const licenseBannerOptions = `----------------------------------------------------------- - SS6Player For Viewer v<%= pkg.version %> - - Copyright(C) <%= pkg.author.name %> - <%= pkg.author.url %> ------------------------------------------------------------ -`; - -export default { - input: `src/${libraryName}.ts`, - output: [ - { file: pkg.main, name: camelCase(libraryName), format: 'iife', sourcemap: false, globals: pixiGlobals }, - { file: `dist/${libraryName}.min.js`, name: camelCase(libraryName), format: 'iife', sourcemap: false, globals: pixiGlobals, plugins: [ minify(), license({ banner: licenseBannerOptions }) ] }, - { file: pkg.module, format: 'es', sourcemap: true, globals: pixiGlobals }, - ], - // Indicate here external modules you don't wanna include in your bundle (i.e.: 'lodash') - external: [ - /@pixi\/.*/, - 'pixi.js' - ], - watch: { - include: 'src/**' - }, - plugins: [ - // Allow json resolution - json(), - // Compile TypeScript files - esbuild.default({sourceMap: !production}), - // Allow bundling cjs modules (unlike webpack, rollup doesn't understand cjs) - commonjs(), - // Allow node_modules resolution, so you can use 'external' to control - // which external modules to include in the bundle - // https://github.com/rollup/rollup-plugin-node-resolve#usage - resolve(), - license({ banner: licenseBannerOptions }) - ] -}; diff --git a/packages/ssfblib/package.json b/packages/ssfblib/package.json index 68930f67..0ad1716f 100644 --- a/packages/ssfblib/package.json +++ b/packages/ssfblib/package.json @@ -1,6 +1,6 @@ { "name": "ssfblib", - "version": "1.2.5", + "version": "1.2.6", "description": "> TODO: description", "keywords": [ "SpriteStudio" @@ -27,27 +27,19 @@ "license": "SEE LICENSE", "scripts": { "prebuild": "npm run clean", - "build": "tsc --module commonjs && rollup -c rollup.config.ts --configPlugin typescript --bundleConfigAsCjs --strictDeprecations", + "build": "tsc --module commonjs && rolldown -c rolldown.config.mjs", "clean": "rimraf dist", "docs": "typedoc --out ../../docs/ssfblib_api src/ssfblib.ts" }, "dependencies": { - "flatbuffers": "^25.2.10" + "flatbuffers": "^25.9.23" }, "devDependencies": { - "typescript": "^5.9.2", - "typedoc": "^0.28.9", + "typescript": "^5.9.3", + "typedoc": "^0.28.17", "lodash.camelcase": "^4.3.0", - "rimraf": "^6.0.1", - "rollup": "^4.46.2", - "@rollup/plugin-typescript": "^12.1.4", - "@rollup/plugin-commonjs": "^28.0.6", - "rollup-plugin-includepaths": "^0.2.4", - "@rollup/plugin-json": "^6.1.0", - "rollup-plugin-license": "^3.6.0", - "@rollup/plugin-node-resolve": "^16.0.1", - "rollup-plugin-esbuild": "^6.2.1", - "esbuild": "^0.25.8" + "rimraf": "^6.1.3", + "rolldown": "^1.0.0-rc.9" }, "optionalDependencies": { "fsevents": "^2.3.3" diff --git a/packages/ssfblib/rolldown.config.mjs b/packages/ssfblib/rolldown.config.mjs new file mode 100644 index 00000000..6c3a1ab8 --- /dev/null +++ b/packages/ssfblib/rolldown.config.mjs @@ -0,0 +1,28 @@ +import { defineConfig } from 'rolldown'; +import camelCase from 'lodash.camelcase'; +import { createRequire } from 'module'; + +const require = createRequire(import.meta.url); +const pkg = require('./package.json'); + +const libraryName = 'ssfblib'; +const banner = `/*! + * ----------------------------------------------------------- + * ssfblib v${pkg.version} + * + * Copyright(C) ${pkg.author.name} + * ${pkg.author.url} + * ----------------------------------------------------------- + */`; + + +export default defineConfig([ + { + input: `src/${libraryName}.ts`, + output: [ + { file: pkg.main, name: camelCase(libraryName), format: 'umd', sourcemap: true, banner}, + { file: pkg.module, format: 'es', sourcemap: true, banner } + ], + external: [] + } +]); diff --git a/packages/ssfblib/rollup.config.ts b/packages/ssfblib/rollup.config.ts deleted file mode 100644 index bfaf2c0e..00000000 --- a/packages/ssfblib/rollup.config.ts +++ /dev/null @@ -1,48 +0,0 @@ -import resolve from '@rollup/plugin-node-resolve'; -import commonjs from '@rollup/plugin-commonjs'; -import camelCase from 'lodash.camelcase'; -import esbuild from 'rollup-plugin-esbuild'; -import json from '@rollup/plugin-json'; -import license from 'rollup-plugin-license'; - -const production = !process.env.ROLLUP_WATCH; - -const pkg = require('./package.json'); - -const libraryName = 'ssfblib'; - -const licenseBannerOptions = `----------------------------------------------------------- - ssfblib v<%= pkg.version %> - - Copyright(C) <%= pkg.author.name %> - <%= pkg.author.url %> ------------------------------------------------------------ -`; - -export default { - input: `src/${libraryName}.ts`, - output: [ - { file: pkg.main, name: camelCase(libraryName), format: 'umd', sourcemap: true }, - { file: pkg.module, format: 'es', sourcemap: true }, - ], - // Indicate here external modules you don't wanna include in your bundle (i.e.: 'lodash') - external: [ - ], - watch: { - include: 'src/**', - }, - plugins: [ - // Allow json resolution - json(), - // Compile TypeScript files - // typescript({ useTsconfigDeclarationDir: true }), - esbuild.default({sourceMap: !production}), - // Allow bundling cjs modules (unlike webpack, rollup doesn't understand cjs) - commonjs(), - // Allow node_modules resolution, so you can use 'external' to control - // which external modules to include in the bundle - // https://github.com/rollup/rollup-plugin-node-resolve#usage - resolve(), - license({ banner: licenseBannerOptions }) - ] -}; diff --git a/scripts/deploy_pixiplayersample.js b/scripts/deploy_pixiplayersample.js index cef465dc..a4850ec1 100755 --- a/scripts/deploy_pixiplayersample.js +++ b/scripts/deploy_pixiplayersample.js @@ -18,7 +18,7 @@ fs.cpSync(path.join(baseDir, 'TestData', 'AnimeMaking'), path.join(dstDir, 'Anim const pixiPackageJsonPath = path.join(ss6playerPixiDir, 'package.json'); const pixiPackageJsonObject = JSON.parse(fs.readFileSync(pixiPackageJsonPath, 'utf8')); const pixiVersion = pixiPackageJsonObject.devDependencies["pixi.js"].replace('^',''); -const cdnURL = `https://cdnjs.cloudflare.com/ajax/libs/pixi.js/${pixiVersion}/pixi.min.js`; +const cdnURL = `https://cdn.jsdelivr.net/npm/pixi.js@${pixiVersion}/dist/pixi.min.js`; let indexHtmlPath = path.join(dstDir, 'index.html'); let indexHtml = fs.readFileSync(indexHtmlPath, 'utf8'); indexHtml = indexHtml.replace('../../../node_modules/pixi.js/dist/pixi.min.js', cdnURL); diff --git a/scripts/deploy_viewerplayersample.js b/scripts/deploy_viewerplayersample.js index fb2b5ce6..32f35e1d 100755 --- a/scripts/deploy_viewerplayersample.js +++ b/scripts/deploy_viewerplayersample.js @@ -24,7 +24,7 @@ fs.writeFileSync(indexHtmlPath, indexHtml, 'utf-8'); const pixiPackageJsonPath = path.join(ss6playerViewerDir, 'package.json'); const pixiPackageJsonObject = JSON.parse(fs.readFileSync(pixiPackageJsonPath, 'utf8')); const pixiVersion = pixiPackageJsonObject.devDependencies["pixi.js"].replace('^',''); -const cdnURL = `https://cdnjs.cloudflare.com/ajax/libs/pixi.js/${pixiVersion}/pixi.min.js`; +const cdnURL = `https://cdn.jsdelivr.net/npm/pixi.js@${pixiVersion}/dist/pixi.min.js`; const playerHtmlPath = path.join(docsDir, 'ViewerPlayer', 'player.html'); let playerHtml = fs.readFileSync(playerHtmlPath, 'utf8'); playerHtml = playerHtml.replace('../../../node_modules/pixi.js/dist/pixi.min.js', cdnURL); diff --git a/turbo.json b/turbo.json new file mode 100644 index 00000000..a8febb09 --- /dev/null +++ b/turbo.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://turbo.build/schema.json", + "tasks": { + "build": { + "dependsOn": ["^build"], + "outputs": ["dist/**"] + }, + "lint": { + "cache": true + }, + "test": { + "cache": true + }, + "clean": { + "cache": false + }, + "docs": { + "outputs": ["../../docs/**"] + }, + "deploy": { + "dependsOn": ["build"], + "cache": false + }, + "view": { + "cache": false, + "persistent": true + } + } +}