3 lines
30 KiB
JavaScript
3 lines
30 KiB
JavaScript
![]() |
var ye=Object.defineProperty;var De=(o,e,t)=>e in o?ye(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var y=(o,e)=>()=>(o&&(e=o(o=0)),e);var H=(o,e)=>{for(var t in e)ye(o,t,{get:e[t],enumerable:!0})};var w=(o,e,t)=>(De(o,typeof e!="symbol"?e+"":e,t),t);var Ie,D,G=y(()=>{Ie={ReadableStream:globalThis.ReadableStream,WritableStream:globalThis.WritableStream,TransformStream:globalThis.TransformStream,DOMException:globalThis.DOMException,Blob:globalThis.Blob,File:globalThis.File},D=Ie});var $={};H($,{FileHandle:()=>_,FolderHandle:()=>A,Sink:()=>V,default:()=>je});var z,Be,p,We,g,ve,Re,ie,yr,Oe,V,_,A,Ne,je,X=y(()=>{M();G();({File:z,Blob:Be,DOMException:p}=D),{INVALID:We,GONE:g,MISMATCH:ve,MOD_ERR:Re,SYNTAX:ie,SECURITY:yr,DISALLOWED:Oe}=T,V=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 z([this.file,new ArrayBuffer(e.position-this.size)],this.file.name,this.file))),!("data"in e))throw new p(...ie("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 p(...We);this.position=e.position;return}else throw new p(...ie("seek requires a position argument"));else if(e.type==="truncate")if(Number.isInteger(e.size)&&e.size>=0){t=e.size<this.size?new z([t.slice(0,e.size)],t.name,t):new z([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 p(...ie("truncate requires a size argument"))}e=new Be([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 z([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 p(...g);this.fileHandle._file=this.file,this.file=this.position=this.size=null,this.fileHandle.onclose&&this.fileHandle.onclose(this.fileHandle)}},_=class{constructor(e="",t=new z([],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 p(...g);return this._file}async createWritable(e){if(!this.writable)throw new p(...Oe);if(this._deleted)throw new p(...g);let t=e.keepExistingData?await this.getFile():new z([],this.name);return new V(this,t)}async isSameEntry(e){return this===e}async _destroy(){this._deleted=!0,this._file=null}},A=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 p(...g);yield*Object.entries(this._entries)}async isSameEntry(e){return this===e}async getDirectoryHandle(e,t){if(this._deleted)throw new p(...g);let r=this._entries[e];if(r){if(r instanceof _)throw new p(...ve);return r}else{if(t.create)return this._entries[e]=new A(e);throw new p(...g)}}async getFileHandle(e,t){let r=this._entries[e],i=r instanceof _;if(r&&i)return r;if(r&&!i)throw new p(...ve);if(!r&&!t.create)throw new p(...g);if(!r&&t.create)return this._entries[e]=new _(e)}async removeEntry(e,t){let r=this._entries[e];if(!r)throw new p(...g);await r._destroy(t.recursive),delete this._entries[e]}async _destroy(e){for(let t of Object.values(this._entries)){if(!e)throw new p(...Re);await t._destroy(e)}this._entries={},this._deleted=!0}},Ne=new A(""),je=()=>Ne});var ne={};H(ne,{FileHandle:()=>O,FolderHandle:()=>v,default:()=>qe});var Ue,Y,O,v,qe,ae=y(()=>{M();({DISALLOWED:Ue}=T),Y=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 'write' on
|
||
|
//# sourceMappingURL=storage.js.map
|