3 lines
35 KiB
JavaScript
Raw Normal View History

var Pe=Object.defineProperty;var _e=(s,e,t)=>e in s?Pe(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var g=(s,e)=>()=>(s&&(e=s(s=0)),e);var z=(s,e)=>{for(var t in e)Pe(s,t,{get:e[t],enumerable:!0})};var E=(s,e,t)=>(_e(s,typeof e!="symbol"?e+"":e,t),t);var qe,W,Z=g(()=>{qe={ReadableStream:globalThis.ReadableStream,WritableStream:globalThis.WritableStream,TransformStream:globalThis.TransformStream,DOMException:globalThis.DOMException,Blob:globalThis.Blob,File:globalThis.File},W=qe});var te={};z(te,{FileHandle:()=>R,FolderHandle:()=>N,Sink:()=>ee,default:()=>$e});var O,Ke,m,Ge,S,He,Xe,de,Hr,Ve,ee,R,N,Ye,$e,re=g(()=>{U();Z();({File:O,Blob:Ke,DOMException:m}=W),{INVALID:Ge,GONE:S,MISMATCH:He,MOD_ERR:Xe,SYNTAX:de,SECURITY:Hr,DISALLOWED:Ve}=D,ee=class{constructor(e,t){this.fileHandle=e,this.file=t,this.size=t.size,this.position=0}write(e){let t=this.file;if(typeof e=="object"){if(e.type==="write"){if(Number.isInteger(e.position)&&e.position>=0&&(this.position=e.position,this.size<e.position&&(this.file=new O([this.file,new ArrayBuffer(e.position-this.size)],this.file.name,this.file))),!("data"in e))throw new m(...de("write requires a data argument"));e=e.data}else if(e.type==="seek")if(Number.isInteger(e.position)&&e.position>=0){if(this.size<e.position)throw new m(...Ge);this.position=e.position;return}else throw new m(...de("seek requires a position argument"));else if(e.type==="truncate")if(Number.isInteger(e.size)&&e.size>=0){t=e.size<this.size?new O([t.slice(0,e.size)],t.name,t):new O([t,new Uint8Array(e.size-this.size)],t.name),this.size=t.size,this.position>t.size&&(this.position=t.size),this.file=t;return}else throw new m(...de("truncate requires a size argument"))}e=new Ke([e]);let r=this.file,i=r.slice(0,this.position),n=r.slice(this.position+e.size),a=this.position-i.size;a<0&&(a=0),r=new O([i,new Uint8Array(a),e,n],r.name),this.size=r.size,this.position+=e.size,this.file=r}close(){if(this.fileHandle._deleted)throw new m(...S);this.fileHandle._file=this.file,this.file=this.position=this.size=null,this.fileHandle.onclose&&this.fileHandle.onclose(this.fileHandle)}},R=class{constructor(e="",t=new O([],e),r=!0){this._file=t,this.name=e,this.kind="file",this._deleted=!1,this.writable=r,this.readable=!0}async getFile(){if(this._deleted)throw new m(...S);return this._file}async createWritable(e){if(!this.writable)throw new m(...Ve);if(this._deleted)throw new m(...S);let t=e.keepExistingData?await this.getFile():new O([],this.name);return new ee(this,t)}async isSameEntry(e){return this===e}async _destroy(){this._deleted=!0,this._file=null}},N=class{constructor(e,t=!0){this.name=e,this.kind="directory",this._deleted=!1,this._entries={},this.writable=t,this.readable=!0}async*entries(){if(this._deleted)throw new m(...S);yield*Object.entries(this._entries)}async isSameEntry(e){return this===e}async getDirectoryHandle(e,t){if(this._deleted)throw new m(...S);let r=this._entries[e];if(r){if(r instanceof R)throw new m(...He);return r}else{if(t.create)return this._entries[e]=new N(e);throw new m(...S)}}async getFileHandle(e,t){let r=this._entries[e],i=r instanceof R;if(r&&i)return r;if(r&&!i)throw new m(...He);if(!r&&!t.create)throw new m(...S);if(!r&&t.create)return this._entries[e]=new R(e)}async removeEntry(e,t){let r=this._entries[e];if(!r)throw new m(...S);await r._destroy(t.recursive),delete this._entries[e]}async _destroy(e){for(let t of Object.values(this._entries)){if(!e)throw new m(...Xe);await t._destroy(e)}this._entries={},this._deleted=!0}},Ye=new N(""),$e=()=>Ye});var ue={};z(ue,{FileHandle:()=>X,FolderHandle:()=>x,default:()=>Qe});var Je,ie,X,x,Qe,pe=g(()=>{U();({DISALLOWED:Je}=D),ie=class{constructor(e,t){this.writer=e,this.fileEntry=t}async write(e){if(typeof e=="object"){if(e.type==="write"){if(Number.isInteger(e.position)&&e.position>=0&&(this.writer.seek(e.position),this.writer.position!==e.position&&(await new Promise((t,r)=>{this.writer.onwriteend=t,this.writer.onerror=r,this.writer.truncate(e.position)}),this.writer.seek(e.position))),!("data"in e))throw new DOMException("Failed to execute 'w
//# sourceMappingURL=storage.js.map