@powerhousedao/connect 5.1.0 → 5.2.0-staging.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env +1 -0
- package/dist/assets/AddDriveModal-2J4OkOKe.js +1 -0
- package/dist/assets/ClearStorageModal-D-Trm4Bv.js +1 -0
- package/dist/assets/CookiesPolicyModal-TR7WVoSA.js +1 -0
- package/dist/assets/CreateDocumentModal-Cs-4k9rW.js +1 -0
- package/dist/assets/{DebugSettingsModal-CooFY-Go.js → DebugSettingsModal-Bp_xYviw.js} +1 -1
- package/dist/assets/{DeleteDriveModal-BOdu1bg5.js → DeleteDriveModal-CeCAWL_i.js} +1 -1
- package/dist/assets/DeleteItemModal-BLqrxHHr.js +1 -0
- package/dist/assets/DisclaimerModal-DV4OXJI1.js +1 -0
- package/dist/assets/DriveSettingsModal-BJJf_xXi.js +1 -0
- package/dist/assets/{ExportDocumentWithErrorsModal-BzgGSmxg.js → ExportDocumentWithErrorsModal-tuPYLvIE.js} +1 -1
- package/dist/assets/SettingsModal-CU5Mio6y.js +1 -0
- package/dist/assets/UpgradeDriveModal-CpKl7cbN.js +1 -0
- package/dist/assets/{design_system-DGYPpUGa.js → design_system-WuKyHXQN.js} +1 -1
- package/dist/assets/design_system_connect-DKWQSjBv.js +45 -0
- package/dist/assets/design_system_ui-DvlEeqfu.js +1 -0
- package/dist/assets/{document_drive-BEIKnuGM.js → document_drive-BuVpBb4l.js} +25 -14
- package/dist/assets/{document_engineering-B49PhCDR.js → document_engineering-C2PWdZDH.js} +1 -1
- package/dist/assets/{document_model-DXcLJEjZ.js → document_model-DB4SzBSe.js} +3 -3
- package/dist/assets/document_model_editor-Dxf_uko8.js +23 -0
- package/dist/assets/{drive_explorer-d0kn77Nx.js → drive_explorer-iLZp-dwy.js} +2 -2
- package/dist/assets/{graphql-editor-CSkqTexL.js → graphql-editor-BycuWm1l.js} +2 -2
- package/dist/assets/{hooks-D4Uas2SG.js → hooks-BdgCwg49.js} +1 -1
- package/dist/assets/index-BilHslhO.css +1 -0
- package/dist/assets/index-CS9DBC13.js +20 -0
- package/dist/assets/index-VIbDz3Cl.js +25 -0
- package/dist/assets/json-editor-BjVnk0-0.js +1 -0
- package/dist/assets/nodefs-Dk4wkJJa.js +1 -0
- package/dist/assets/opfs-ahp-BSB41eck.js +3 -0
- package/dist/assets/pg_dump-CW0pN9tG.wasm +0 -0
- package/dist/assets/postgres-CkP7QCDB.data +0 -0
- package/dist/assets/postgres-CyuUVpXN.wasm +0 -0
- package/dist/assets/reactor_browser-CmbGGv54.js +127 -0
- package/dist/assets/state-schemas-DS3WhvAN.js +2 -0
- package/dist/assets/zod-BpTyxkjy.js +20 -0
- package/dist/index.html +11 -11
- package/heroku/Dockerfile +4 -1
- package/lib/package.copy.json +14 -8
- package/lib/src/components/app-skeleton.js +1 -1
- package/lib/src/components/app-skeleton.js.map +1 -1
- package/lib/src/components/modal/modals/AddDriveModal.d.ts.map +1 -1
- package/lib/src/components/modal/modals/AddDriveModal.js +35 -27
- package/lib/src/components/modal/modals/AddDriveModal.js.map +1 -1
- package/lib/src/components/modal/modals/InspectorModal/InspectorModal.d.ts +2 -0
- package/lib/src/components/modal/modals/InspectorModal/InspectorModal.d.ts.map +1 -0
- package/lib/src/components/modal/modals/InspectorModal/InspectorModal.js +26 -0
- package/lib/src/components/modal/modals/InspectorModal/InspectorModal.js.map +1 -0
- package/lib/src/components/modal/modals/InspectorModal/index.d.ts +2 -0
- package/lib/src/components/modal/modals/InspectorModal/index.d.ts.map +1 -0
- package/lib/src/components/modal/modals/InspectorModal/index.js +2 -0
- package/lib/src/components/modal/modals/InspectorModal/index.js.map +1 -0
- package/lib/src/components/modal/modals/InspectorModal/useDbExplorer.d.ts +32 -0
- package/lib/src/components/modal/modals/InspectorModal/useDbExplorer.d.ts.map +1 -0
- package/lib/src/components/modal/modals/InspectorModal/useDbExplorer.js +108 -0
- package/lib/src/components/modal/modals/InspectorModal/useDbExplorer.js.map +1 -0
- package/lib/src/components/modal/modals/InspectorModal/useRemotesInspector.d.ts +4 -0
- package/lib/src/components/modal/modals/InspectorModal/useRemotesInspector.d.ts.map +1 -0
- package/lib/src/components/modal/modals/InspectorModal/useRemotesInspector.js +12 -0
- package/lib/src/components/modal/modals/InspectorModal/useRemotesInspector.js.map +1 -0
- package/lib/src/components/modal/modals-container.d.ts.map +1 -1
- package/lib/src/components/modal/modals-container.js +4 -0
- package/lib/src/components/modal/modals-container.js.map +1 -1
- package/lib/src/components/root.js +1 -1
- package/lib/src/components/root.js.map +1 -1
- package/lib/src/components/sidebar.d.ts.map +1 -1
- package/lib/src/components/sidebar.js +6 -2
- package/lib/src/components/sidebar.js.map +1 -1
- package/lib/src/connect.config.d.ts +2 -0
- package/lib/src/connect.config.d.ts.map +1 -1
- package/lib/src/connect.config.js +1 -0
- package/lib/src/connect.config.js.map +1 -1
- package/lib/src/feature-flags.d.ts +22 -3
- package/lib/src/feature-flags.d.ts.map +1 -1
- package/lib/src/feature-flags.js +48 -3
- package/lib/src/feature-flags.js.map +1 -1
- package/lib/src/hooks/useClientErrorHandler.d.ts.map +1 -1
- package/lib/src/hooks/useClientErrorHandler.js +13 -2
- package/lib/src/hooks/useClientErrorHandler.js.map +1 -1
- package/lib/src/pages/demo/atlas-import.js +2 -2
- package/lib/src/pages/demo/atlas-import.js.map +1 -1
- package/lib/src/store/reactor.d.ts.map +1 -1
- package/lib/src/store/reactor.js +102 -51
- package/lib/src/store/reactor.js.map +1 -1
- package/lib/src/utils/reactor.d.ts +7 -0
- package/lib/src/utils/reactor.d.ts.map +1 -1
- package/lib/src/utils/reactor.js +35 -2
- package/lib/src/utils/reactor.js.map +1 -1
- package/lib/src/utils/signer.d.ts +18 -0
- package/lib/src/utils/signer.d.ts.map +1 -0
- package/lib/src/utils/signer.js +215 -0
- package/lib/src/utils/signer.js.map +1 -0
- package/lib/test/utils/signer.test.d.ts +2 -0
- package/lib/test/utils/signer.test.d.ts.map +1 -0
- package/lib/test/utils/signer.test.js +319 -0
- package/lib/test/utils/signer.test.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/vite.config.d.ts.map +1 -1
- package/lib/vite.config.js +4 -0
- package/lib/vite.config.js.map +1 -1
- package/lib/vitest.config.d.ts +3 -0
- package/lib/vitest.config.d.ts.map +1 -0
- package/lib/vitest.config.js +8 -0
- package/lib/vitest.config.js.map +1 -0
- package/nginx.conf +7 -0
- package/package.copy.json +14 -8
- package/package.json +21 -15
- package/dist/assets/AddDriveModal-_XSf2ZlN.js +0 -1
- package/dist/assets/ClearStorageModal-CbfJTlAo.js +0 -1
- package/dist/assets/CookiesPolicyModal-DTRuUeM_.js +0 -1
- package/dist/assets/CreateDocumentModal-DUTbfZYr.js +0 -1
- package/dist/assets/DeleteItemModal-D8MlQS3W.js +0 -1
- package/dist/assets/DisclaimerModal-RBBaiKyO.js +0 -1
- package/dist/assets/DriveSettingsModal-BHBZfzaY.js +0 -1
- package/dist/assets/SettingsModal-BXDXscnR.js +0 -1
- package/dist/assets/UpgradeDriveModal-15TBzq11.js +0 -1
- package/dist/assets/design_system_connect-Vb8XBnLs.js +0 -45
- package/dist/assets/design_system_ui-Dnwc_Xm9.js +0 -1
- package/dist/assets/document_model_editor-lmHQ6HZy.js +0 -23
- package/dist/assets/index-Br7E7qjt.css +0 -1
- package/dist/assets/index-CK2Jk_ho.js +0 -18
- package/dist/assets/json-editor-CQKAVxat.js +0 -1
- package/dist/assets/reactor_browser-BGn_P-dn.js +0 -25
- package/dist/assets/state-schemas-36mF-wEI.js +0 -2
- package/dist/assets/zod-C6yxFxyo.js +0 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/reactor_browser-CmbGGv54.js","assets/document_model-DB4SzBSe.js","assets/zod-BpTyxkjy.js","assets/react-DQSxOgtG.js","assets/document_drive-BuVpBb4l.js","assets/graphql-BS4Brs_E.js","assets/config-CU-aFfVJ.js","assets/drive_explorer-iLZp-dwy.js","assets/sentry_react-cODD7zWc.js","assets/sentry_browser-B4YoBIIG.js","assets/document_model_editor-Dxf_uko8.js","assets/react/jsx-runtime-DldvXD6N.js","assets/design_system-WuKyHXQN.js","assets/tailwind_merge-Dr4f9Rms.js","assets/react-dom-D6zQJsh6.js","assets/design_system_connect-DKWQSjBv.js","assets/design_system_ui-DvlEeqfu.js","assets/react-dom/client-BVPiT_FE.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{j as v}from"./document_model_editor-Dxf_uko8.js";import{_ as I}from"./drive_explorer-iLZp-dwy.js";import{p as E}from"./react-DQSxOgtG.js";import{aZ as R,a_ as O,a$ as w,b0 as T,Z as C,aH as M}from"./reactor_browser-CmbGGv54.js";import{r as g}from"./sentry_react-cODD7zWc.js";import{L as N}from"./design_system_connect-DKWQSjBv.js";import"./graphql-BS4Brs_E.js";import"./react/jsx-runtime-DldvXD6N.js";import"./document_model-DB4SzBSe.js";import"./zod-BpTyxkjy.js";import"./design_system-WuKyHXQN.js";import"./tailwind_merge-Dr4f9Rms.js";import"./react-dom-D6zQJsh6.js";import"./document_drive-BuVpBb4l.js";import"./config-CU-aFfVJ.js";import"./sentry_browser-B4YoBIIG.js";import"./design_system_ui-DvlEeqfu.js";import"./react-dom/client-BVPiT_FE.js";var k=class extends Error{constructor(t){super(`Exit with code ${t}`),this.code=t}},$=class{appendFileSync(t,e,i={}){throw new Error("appendFileSync not implemented")}fsyncSync(t){throw new Error("fsyncSync not implemented")}linkSync(t,e){throw new Error("linkSync not implemented")}mkdirSync(t,e={}){throw new Error("mkdirSync not implemented")}readdirSync(t,e={}){throw new Error("readdirSync not implemented")}readFileSync(t,e={}){throw new Error("readFileSync not implemented")}readlinkSync(t,e={}){throw new Error("readlinkSync not implemented")}renameSync(t,e){throw new Error("renameSync not implemented")}rmdirSync(t,e={}){throw new Error("rmdirSync not implemented")}setFlagsSync(t,e){throw new Error("setFlagsSync not implemented")}statSync(t,e={}){throw new Error("statSync not implemented")}symlinkSync(t,e,i="file"){throw new Error("symlinkSync not implemented")}truncateSync(t,e=0){throw new Error("truncateSync not implemented")}unlinkSync(t){throw new Error("unlinkSync not implemented")}utimesSync(t,e,i){throw new Error("utimesSync not implemented")}writeFileSync(t,e,i={}){throw new Error("writeFileSync not implemented")}},L=class{constructor(t={}){if(this.args=t.args||[],this.env=t.env||{},this.fs=t.fs||new $,!this.fs)throw new Error("File system implementation required");this.fds=new Map([[0,{type:"stdio"}],[1,{type:"stdio"}],[2,{type:"stdio"}],[3,{type:"directory",preopenPath:"/"}]]),this.nextFd=this.fds.size,this.textDecoder=new TextDecoder,this.textEncoder=new TextEncoder,this.args_get=this.args_get.bind(this),this.args_sizes_get=this.args_sizes_get.bind(this),this.environ_get=this.environ_get.bind(this),this.environ_sizes_get=this.environ_sizes_get.bind(this),this.clock_res_get=this.clock_res_get.bind(this),this.clock_time_get=this.clock_time_get.bind(this),this.fd_close=this.fd_close.bind(this),this.fd_seek=this.fd_seek.bind(this),this.fd_write=this.fd_write.bind(this),this.fd_read=this.fd_read.bind(this),this.fd_fdstat_get=this.fd_fdstat_get.bind(this),this.fd_fdstat_set_flags=this.fd_fdstat_set_flags.bind(this),this.fd_prestat_get=this.fd_prestat_get.bind(this),this.fd_prestat_dir_name=this.fd_prestat_dir_name.bind(this),this.path_open=this.path_open.bind(this),this.path_filestat_get=this.path_filestat_get.bind(this),this.proc_exit=this.proc_exit.bind(this),this.fd_advise=this.fd_advise.bind(this),this.fd_allocate=this.fd_allocate.bind(this),this.fd_datasync=this.fd_datasync.bind(this),this.fd_filestat_get=this.fd_filestat_get.bind(this),this.fd_filestat_set_size=this.fd_filestat_set_size.bind(this),this.fd_filestat_set_times=this.fd_filestat_set_times.bind(this),this.fd_pread=this.fd_pread.bind(this),this.fd_pwrite=this.fd_pwrite.bind(this),this.fd_readdir=this.fd_readdir.bind(this),this.fd_renumber=this.fd_renumber.bind(this),this.fd_sync=this.fd_sync.bind(this),this.fd_tell=this.fd_tell.bind(this),this.path_create_directory=this.path_create_directory.bind(this),this.path_filestat_set_times=this.path_filestat_set_times.bind(this),this.path_link=this.path_link.bind(this),this.path_readlink=this.path_readlink.bind(this),this.path_remove_directory=this.path_remove_directory.bind(this),this.path_rename=this.path_rename.bind(this),this.path_symlink=this.path_symlink.bind(this),this.path_unlink_file=this.path_unlink_file.bind(this),this.poll_oneoff=this.poll_oneoff.bind(this),this.sock_accept=this.sock_accept.bind(this),this.sock_recv=this.sock_recv.bind(this),this.sock_send=this.sock_send.bind(this),this.sock_shutdown=this.sock_shutdown.bind(this),this.random_get=this.random_get.bind(this),this.sched_yield=this.sched_yield.bind(this)}setup(t){this.wasm=t}start(t){this.setup(t);try{return t._start&&t._start(),0}catch(e){if(e instanceof k)return e.code;throw e}}stdin(){return new Uint8Array}stdout(t){let e=this.textDecoder.decode(t).replace(/\n$/g,"");e&&console.log(e)}stderr(t){let e=this.textDecoder.decode(t).replace(/\n$/g,"");e&&console.error(e)}args_get(t,e){let i=new DataView(this.wasm.memory.buffer),s=new Uint8Array(this.wasm.memory.buffer);for(let r of this.args){i.setUint32(t,e,!0),t+=4;let n=this.textEncoder.encode(r);s.set(n,e),s[e+n.length]=0,e+=n.length+1}return 0}args_sizes_get(t,e){let i=new DataView(this.wasm.memory.buffer);i.setUint32(t,this.args.length,!0);let s=this.args.reduce((r,n)=>r+n.length+1,0);return i.setUint32(e,s,!0),0}environ_get(t,e){let i=new DataView(this.wasm.memory.buffer),s=new Uint8Array(this.wasm.memory.buffer);for(let[r,n]of Object.entries(this.env)){i.setUint32(t,e,!0),t+=4;let c=`${r}=${n}\0`,a=this.textEncoder.encode(c);s.set(a,e),e+=a.length}return 0}environ_sizes_get(t,e){let i=new DataView(this.wasm.memory.buffer),s=Object.keys(this.env).length;i.setUint32(t,s,!0);let r=Object.entries(this.env).reduce((n,[c,a])=>n+c.length+a.length+2,0);return i.setUint32(e,r,!0),0}clock_res_get(t,e){let i=new DataView(this.wasm.memory.buffer),s;switch(t){case 0:s=1000000n;break;case 1:s=1000n;break;default:return 28}return i.setBigUint64(e,s,!0),0}clock_time_get(t,e,i){let s=new DataView(this.wasm.memory.buffer),r;switch(t){case 0:{let n=Date.now();r=BigInt(n)*1000000n;break}case 1:{r=BigInt(Math.round(performance.now()*1e6));break}default:return 28}return s.setBigUint64(i,r,!0),0}fd_close(t){return this.fds.get(t)?(this.fds.delete(t),0):8}fd_seek(t,e,i,s){let r=this.fds.get(t);if(!r)return 8;if(r.type==="stdio")return 70;var n=null;let c=0,a=Number(e);try{n=this.fs.statSync(r.handle.path)}catch{return 29}switch(i){case 0:c=a;break;case 1:c=Number(r.handle.position)+a;break;case 2:c=Number(n.size)+a;break;default:return console.error("fd_seek invalid mode",i),28}return r.handle.position=c,new DataView(this.wasm.memory.buffer).setBigUint64(s,BigInt(c),!0),0}fd_write(t,e,i,s){let r=0,n=[],c=new DataView(this.wasm.memory.buffer),a=new Uint8Array(this.wasm.memory.buffer);for(let o=0;o<i;o++){let l=e+o*8,f=c.getUint32(l,!0),d=c.getUint32(l+4,!0);n.push(new Uint8Array(a.buffer,f,d)),r+=d}let h;if(n.length===1)h=n[0];else{h=new Uint8Array(r);let o=0;for(let l of n)h.set(l,o),o+=l.length}if(t===1)this.stdout(h);else if(t===2)this.stderr(h);else{let o=this.fds.get(t);if(!o)return 8;o.handle.position+=r;try{this.fs.writeFileSync(o.handle.path,h)}catch{return 29}}return c.setUint32(s,r,!0),0}fd_read(t,e,i,s){let r=this.fds.get(t);if(!r)return 8;let n=0,c=new DataView(this.wasm.memory.buffer),a=new Uint8Array(this.wasm.memory.buffer);try{let h;t===0?h=this.stdin():h=this.fs.readFileSync(r.handle.path);for(let o=0;o<i;o++){let l=e+o*8,f=c.getUint32(l,!0),d=c.getUint32(l+4,!0),m=r.handle.position,u=Math.min(m+d,h.length),p=u-m;if(p<=0||(a.set(new Uint8Array(h.slice(m,u)),f),n+=p,r.handle.position+=p,p<d))break}return c.setUint32(s,n,!0),0}catch{return 29}}path_open(t,e,i,s,r,n,c,a,h){var o=this.fds.get(t);if(!o)return 8;let l=new Uint8Array(this.wasm.memory.buffer).slice(i,i+s),f=this.textDecoder.decode(l),d=f;var m=0;let u=new DataView(this.wasm.memory.buffer);o.preopenPath&&(f.startsWith("/")&&(d=f.slice(1)),d=o.preopenPath+(o.preopenPath.endsWith("/")?"":"/")+d);var p=!1,_=null;let y=(r&4)==4,b=(r&8)==8;try{_=this.fs.statSync(d),p=!0}catch{}if((y||b)&&y&&p)return u.setUint32(h,m,!0),20;let B={path:d,position:0},P="file";m=this.nextFd++;let F={type:P,handle:B,fd:m};return this.fds.set(m,F),o=this.fds.get(m),o.handle.position=0,b&&(o.handle.size=0),u.setUint32(h,m,!0),0}proc_exit(t){throw new k(t)}fd_fdstat_get(t,e){let i=this.fds.get(t);if(!i)return 8;let s=new DataView(this.wasm.memory.buffer),r;switch(i.type){case"stdio":r=2;break;case"directory":r=3;break;case"file":r=4;break;default:r=0}s.setUint8(e,r);let n=0;i.append&&(n|=1),s.setUint16(e+2,n,!0);let c=0n;i.type==="file"?c=2097254:i.type==="directory"&&(c=100688384);let a=BigInt(c);return s.setBigUint64(e+8,a,!0),s.setBigUint64(e+16,a,!0),0}fd_fdstat_set_flags(t,e){let i=this.fds.get(t);if(!i)return 8;if(e&-32)return 28;if(i.type==="stdio")return 58;try{return i.append=!!(e&1),i.handle&&typeof this.fs.setFlagsSync=="function"&&this.fs.setFlagsSync(i.handle,e),0}catch{return 29}}fd_prestat_get(t,e){let i=this.fds.get(t);if(!i||i.type!=="directory"||!i.preopenPath)return 8;let s=new DataView(this.wasm.memory.buffer);s.setUint8(e,0);let r=i.preopenPath.length;return s.setUint32(e+4,r,!0),0}fd_prestat_dir_name(t,e,i){let s=this.fds.get(t);if(!s||s.type!=="directory"||!s.preopenPath)return 8;if(i<s.preopenPath.length)return 37;let r=new Uint8Array(this.wasm.memory.buffer),n=this.textEncoder.encode(s.preopenPath);return r.set(n,e),0}path_filestat_get(t,e,i,s,r){let n=this.fds.get(t);if(!n)return 8;let c=new Uint8Array(this.wasm.memory.buffer),a=new Uint8Array(c.buffer,i,s),h=this.textDecoder.decode(a);try{let o=h;n.preopenPath&&(h.startsWith("/")&&(o=h.slice(1)),o=n.preopenPath+(n.preopenPath.endsWith("/")?"":"/")+o);let l=this.fs.statSync(o,{followSymlinks:(e&void 0)!==0}),f=new DataView(this.wasm.memory.buffer);f.setBigUint64(r,BigInt(l.dev||0),!0),f.setBigUint64(r+8,BigInt(l.ino||0),!0);let d=0;return l.isFile()?d=4:l.isDirectory()?d=3:l.isSymbolicLink()?d=7:l.isCharacterDevice()?d=2:l.isBlockDevice()?d=1:l.isFIFO()&&(d=6),f.setUint8(r+16,d),f.setBigUint64(r+24,BigInt(l.nlink||1),!0),f.setBigUint64(r+32,BigInt(l.size||0),!0),f.setBigUint64(r+40,BigInt(l.atimeMs*1e6),!0),f.setBigUint64(r+48,BigInt(l.mtimeMs*1e6),!0),f.setBigUint64(r+56,BigInt(l.ctimeMs*1e6),!0),0}catch(o){return o.code==="ENOENT"?44:o.code==="EACCES"?2:29}}fd_advise(t,e,i,s){let r=this.fds.get(t);return r?r.type!=="file"?8:0:8}fd_allocate(t,e,i){let s=this.fds.get(t);if(!s||s.type!=="file")return 8;try{let r=this.fs.statSync(s.handle.path),n=Number(e)+Number(i);if(n>r.size){let c=new Uint8Array(n-r.size);this.fs.appendFileSync(s.handle.path,c)}return 0}catch{return 29}}fd_datasync(t){let e=this.fds.get(t);if(!e||e.type!=="file")return 8;try{return typeof this.fs.fsyncSync=="function"&&this.fs.fsyncSync(e.handle.path),0}catch{return 29}}fd_filestat_get(t,e){let i=this.fds.get(t);if(!i||!i.handle)return 8;let s=new DataView(this.wasm.memory.buffer),r=this.fs.statSync(i.handle.path);return s.setBigUint64(e,BigInt(r.dev),!0),s.setBigUint64(e+8,BigInt(r.ino),!0),s.setUint8(e+16,r.filetype),s.setBigUint64(e+24,BigInt(r.nlink),!0),s.setBigUint64(e+32,BigInt(r.size),!0),s.setBigUint64(e+38,BigInt(r.atime),!0),s.setBigUint64(e+46,BigInt(r.mtime),!0),s.setBigUint64(e+52,BigInt(r.ctime),!0),0}fd_filestat_set_size(t,e){let i=this.fds.get(t);if(!i||i.type!=="file")return 8;try{return this.fs.truncateSync(i.handle.path,Number(e)),0}catch{return 29}}fd_filestat_set_times(t,e,i,s){let r=this.fds.get(t);if(!r||r.type!=="file")return 8;try{let n={atime:Number(e)/1e9,mtime:Number(i)/1e9};return this.fs.utimesSync(r.handle.path,n.atime,n.mtime),0}catch{return 29}}fd_pread(t,e,i,s,r){let n=this.fds.get(t);if(!n||n.type!=="file")return 8;try{let c=this.fs.readFileSync(n.handle.path),a=0,h=new DataView(this.wasm.memory.buffer),o=new Uint8Array(this.wasm.memory.buffer),l=Number(s);for(let f=0;f<i;f++){let d=e+f*8,m=h.getUint32(d,!0),u=h.getUint32(d+4,!0),p=l+a,_=Math.min(p+u,c.length),y=_-p;if(y<=0||(o.set(new Uint8Array(c.slice(p,_)),m),a+=y,y<u))break}return h.setUint32(r,a,!0),0}catch{return 29}}fd_pwrite(t,e,i,s,r){let n=this.fds.get(t);if(!n||n.type!=="file")return 8;try{let c=0,a=[],h=new DataView(this.wasm.memory.buffer),o=new Uint8Array(this.wasm.memory.buffer);for(let m=0;m<i;m++){let u=e+m*8,p=h.getUint32(u,!0),_=h.getUint32(u+4,!0);a.push(new Uint8Array(o.buffer,p,_)),c+=_}let l;if(a.length===1)l=a[0];else{l=new Uint8Array(c);let m=0;for(let u of a)l.set(u,m),m+=u.length}let f=this.fs.readFileSync(n.handle.path),d=new Uint8Array(Math.max(Number(s)+l.length,f.length));return d.set(f),d.set(l,Number(s)),this.fs.writeFileSync(n.handle.path,d),h.setUint32(r,c,!0),0}catch{return 29}}fd_readdir(t,e,i,s,r){let n=this.fds.get(t);if(!n)return 8;if(n.type!=="directory")return 54;try{let c=this.fs.readdirSync(n.handle.path,{withFileTypes:!0}),a=new DataView(this.wasm.memory.buffer),h=new Uint8Array(this.wasm.memory.buffer),o=0,l=0,f=Number(s);for(let d=f;d<c.length;d++){let m=c[d],u=m.name,p=this.textEncoder.encode(u),_=24+p.length;if(o+_>i)break;a.setBigUint64(e+o,BigInt(d+1),!0),a.setBigUint64(e+o+8,0n,!0),a.setUint32(e+o+16,p.length,!0);let y=0;m.isFile()?y=4:m.isDirectory()&&(y=3),a.setUint8(e+o+20,y),h.set(p,e+o+24),o+=_,l++}return a.setUint32(r,o,!0),0}catch{return 29}}fd_renumber(t,e){let i=this.fds.get(t);return i?(this.fds.delete(e),this.fds.set(e,i),this.fds.delete(t),0):8}fd_sync(t){let e=this.fds.get(t);if(!e||e.type!=="file")return 8;try{return typeof this.fs.fsyncSync=="function"&&this.fs.fsyncSync(e.handle.path),0}catch{return 29}}fd_tell(t,e){let i=this.fds.get(t);return i?i.type!=="file"?8:(new DataView(this.wasm.memory.buffer).setBigUint64(e,BigInt(i.handle.position),!0),0):8}path_create_directory(t,e,i){let s=this.fds.get(t);if(!s)return 8;let r=this.textDecoder.decode(new Uint8Array(this.wasm.memory.buffer,e,i));try{let n=r;return s.preopenPath&&(r.startsWith("/")&&(n=r.slice(1)),n=s.preopenPath+"/"+n),this.fs.mkdirSync(n),0}catch{return 29}}path_filestat_set_times(t,e,i,s,r,n,c){let a=this.fds.get(t);if(!a)return 8;let h=this.textDecoder.decode(new Uint8Array(this.wasm.memory.buffer,i,s));try{let o=h;a.preopenPath&&(h.startsWith("/")&&(o=h.slice(1)),o=a.preopenPath+"/"+o);let l={atime:Number(r)/1e9,mtime:Number(n)/1e9};return this.fs.utimesSync(o,l.atime,l.mtime),0}catch{return 29}}path_link(t,e,i,s,r,n,c){let a=this.fds.get(t),h=this.fds.get(r);if(!a||!h)return 8;let o=this.textDecoder.decode(new Uint8Array(this.wasm.memory.buffer,i,s)),l=this.textDecoder.decode(new Uint8Array(this.wasm.memory.buffer,n,c));try{let f=o,d=l;return a.preopenPath&&(o.startsWith("/")&&(f=o.slice(1)),f=a.preopenPath+"/"+f),h.preopenPath&&(l.startsWith("/")&&(d=l.slice(1)),d=h.preopenPath+"/"+d),this.fs.linkSync(f,d),0}catch{return 29}}path_readlink(t,e,i,s,r,n){let c=this.fds.get(t);if(!c)return 8;let a=this.textDecoder.decode(new Uint8Array(this.wasm.memory.buffer,e,i));try{let h=a;c.preopenPath&&(a.startsWith("/")&&(h=a.slice(1)),h=c.preopenPath+"/"+h);let o=this.fs.readlinkSync(h),l=this.textEncoder.encode(o);return l.length>r?61:(new Uint8Array(this.wasm.memory.buffer).set(l,s),new DataView(this.wasm.memory.buffer).setUint32(n,l.length,!0),0)}catch{return 29}}path_remove_directory(t,e,i){let s=this.fds.get(t);if(!s)return 8;let r=this.textDecoder.decode(new Uint8Array(this.wasm.memory.buffer,e,i));try{let n=r;return s.preopenPath&&(r.startsWith("/")&&(n=r.slice(1)),n=s.preopenPath+"/"+n),this.fs.rmdirSync(n),0}catch{return 29}}path_rename(t,e,i,s,r,n){let c=this.fds.get(t),a=this.fds.get(s);if(!c||!a)return 8;let h=this.textDecoder.decode(new Uint8Array(this.wasm.memory.buffer,e,i)),o=this.textDecoder.decode(new Uint8Array(this.wasm.memory.buffer,r,n));try{let l=h,f=o;return c.preopenPath&&(h.startsWith("/")&&(l=h.slice(1)),l=c.preopenPath+"/"+l),a.preopenPath&&(o.startsWith("/")&&(f=o.slice(1)),f=a.preopenPath+"/"+f),this.fs.renameSync(l,f),0}catch{return 29}}path_symlink(t,e,i,s,r){let n=this.fds.get(i);if(!n)return 8;let c=this.textDecoder.decode(new Uint8Array(this.wasm.memory.buffer,t,e)),a=this.textDecoder.decode(new Uint8Array(this.wasm.memory.buffer,s,r));try{let h=a;return n.preopenPath&&(a.startsWith("/")&&(h=a.slice(1)),h=n.preopenPath+"/"+h),this.fs.symlinkSync(c,h),0}catch{return 29}}path_unlink_file(t,e,i){let s=this.fds.get(t);if(!s)return 8;let r=this.textDecoder.decode(new Uint8Array(this.wasm.memory.buffer,e,i));try{let n=r;return s.preopenPath&&(r.startsWith("/")&&(n=r.slice(1)),n=s.preopenPath+"/"+n),this.fs.unlinkSync(n),0}catch{return 29}}poll_oneoff(t,e,i,s){let r=new DataView(this.wasm.memory.buffer),n=0;for(let c=0;c<i;c++){let a=t+c*48,h=r.getBigUint64(a,!0),o=r.getUint8(a+8),l=e+n*32;r.setBigUint64(l,h,!0),r.setUint8(l+8,o),r.setUint8(l+9,1),r.setUint16(l+10,0,!0),n++}return r.setUint32(s,n,!0),0}random_get(t,e){let i=new Uint8Array(this.wasm.memory.buffer,t,e);return crypto.getRandomValues(i),0}sched_yield(){return os.sched_yield(),0}sock_accept(t,e){return 52}sock_recv(t,e,i){return 52}sock_send(t,e,i){return 52}sock_shutdown(t,e){return 52}};console.log("easywasi");var V=typeof E=="object"&&typeof E.versions=="object"&&typeof E.versions.node=="string";function W(t,e){return{...t,...Object.fromEntries(["appendFileSync","fsyncSync","linkSync","setFlagsSync","mkdirSync","readdirSync","readFileSync","readlinkSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","unlinkSync","utimesSync","writeFileSync"].map(i=>{let s=i.slice(0,i.length-4);return s in t?[i,(...r)=>(i==="writeFileSync"&&r[0]==="/tmp/out.sql"&&e.push(r[1]),t[s](...r))]:[i,()=>{throw new Error(`${s} not implemented.`)}]}).filter(i=>i!==void 0))}}async function z({pg:t,args:e}){let i=new URL("/assets/pg_dump-CW0pN9tG.wasm",import.meta.url),s=[],r=W(t.Module.FS,s),n=new L({fs:r,args:["pg_dump",...e],env:{PWD:"/"}});n.stdout=l=>{};let c=new TextDecoder,a="";n.stderr=l=>{let f=c.decode(l);f&&(a+=f)},n.sched_yield=()=>{let l="/tmp/pglite/base/.s.PGSQL.5432.in",f="/tmp/pglite/base/.s.PGSQL.5432.out";if(r.analyzePath(l).exists){let d=r.readFileSync(l);if(r.unlinkSync(l),d[0]===0){let u=new Uint8Array([...H,...Z,...q]);return r.writeFileSync(f,u),0}let m=t.execProtocolRawSync(d);r.writeFileSync(f,m)}return 0},await r.writeFile("/pg_dump","\0",{mode:18});let h;if(V){let l=await(await I(async()=>{const{readFile:f}=await import("./reactor_browser-CmbGGv54.js").then(d=>d.bb);return{readFile:f}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]))).readFile(i.toString().slice(7));h=await WebAssembly.instantiate(l,{wasi_snapshot_preview1:n})}else h=await WebAssembly.instantiateStreaming(fetch(i),{wasi_snapshot_preview1:n});let o;return await t.runExclusive(async()=>{o=n.start(h.instance.exports)}),[o,s,a]}async function j({pg:t,args:e,fileName:i="dump.sql"}){let s=(await t.query("SHOW SEARCH_PATH;")).rows[0].search_path,r="/tmp/out.sql",n=["-U","postgres","--inserts","-j","1","-f",r,"postgres"],[c,a,h]=await z({pg:t,args:[...e??[],...n]});if(t.exec(`DEALLOCATE ALL; SET SEARCH_PATH = ${s}`),c!==0)throw new Error(`pg_dump failed with exit code ${c}.
|
|
3
|
+
Error message: ${h}`);let o=new File(a,i,{type:"text/plain"});return t.Module.FS.unlink(r),o}function U(t){return t.charCodeAt(0)}function S(t){let e=new ArrayBuffer(4);return new DataView(e).setInt32(0,t,!1),new Uint8Array(e)}function A(t){let e=new TextEncoder().encode(t);return new Uint8Array([...e,0])}var H=new Uint8Array([U("R"),...S(8),...S(0)]),q=new Uint8Array([U("Z"),...S(5),U("I")]),D=A("server_version"),x=A("16.3 (PGlite 0.2.0)"),G=4+D.length+x.length,Z=new Uint8Array([U("S"),...S(G),...D,...x]);function Q(){const t=R(),e=O(),i=g.useCallback(async()=>{if(!t)return[];const c=await w`
|
|
4
|
+
SELECT
|
|
5
|
+
c.table_name,
|
|
6
|
+
c.column_name,
|
|
7
|
+
c.data_type,
|
|
8
|
+
c.is_nullable
|
|
9
|
+
FROM information_schema.columns c
|
|
10
|
+
INNER JOIN information_schema.tables t
|
|
11
|
+
ON c.table_name = t.table_name
|
|
12
|
+
AND c.table_schema = t.table_schema
|
|
13
|
+
WHERE c.table_schema = 'public'
|
|
14
|
+
AND t.table_type = 'BASE TABLE'
|
|
15
|
+
ORDER BY c.table_name, c.ordinal_position
|
|
16
|
+
`.execute(t),a=new Map;for(const h of c.rows)a.has(h.table_name)||a.set(h.table_name,[]),a.get(h.table_name).push({name:h.column_name,dataType:h.data_type,isNullable:h.is_nullable==="YES"});return Array.from(a).map(([h,o])=>({name:h,columns:o}))},[t]),s=g.useCallback(async(c,a)=>{if(!t)return{columns:[],rows:[],total:null};const{limit:h,offset:o,sort:l}=a,f=w.raw(`public."${c}"`);let d;if(l){const y=w.raw(`"${l.column}"`),b=l.direction==="desc"?w`DESC`:w`ASC`;d=w`
|
|
17
|
+
SELECT * FROM ${f}
|
|
18
|
+
ORDER BY ${y} ${b}
|
|
19
|
+
LIMIT ${h} OFFSET ${o}
|
|
20
|
+
`}else d=w`
|
|
21
|
+
SELECT * FROM ${f}
|
|
22
|
+
LIMIT ${h} OFFSET ${o}
|
|
23
|
+
`;const m=await d.execute(t),u=await w`
|
|
24
|
+
SELECT COUNT(*) as count FROM ${f}
|
|
25
|
+
`.execute(t),p=u.rows[0]?parseInt(u.rows[0].count,10):null;return{columns:m.rows.length>0?Object.keys(m.rows[0]):[],rows:m.rows,total:p}},[t]),r=g.useCallback(async()=>{if(!e)return;const a=await(await j({pg:e})).text(),h=new Blob([a],{type:"text/sql"}),o=URL.createObjectURL(h),l=document.createElement("a");l.href=o,l.download=`database-export-${Date.now()}.sql`,l.click(),URL.revokeObjectURL(o)},[e]),n=g.useCallback(async c=>{e&&await e.transaction(async a=>{await a.exec("DROP SCHEMA public CASCADE"),await a.exec("CREATE SCHEMA public"),await a.exec(c),await a.exec("SET search_path TO public")})},[e]);return{getTables:i,getTableRows:s,onExportDb:r,onImportDb:n}}function Y(){const t=T();return{getRemotes:g.useCallback(()=>Promise.resolve(t?.list()??[]),[t])}}const J=25,yt=()=>{const e=C()?.type==="inspector",{getTables:i,getTableRows:s,onExportDb:r,onImportDb:n}=Q(),{getRemotes:c}=Y();return v.jsx(N,{open:e,onOpenChange:a=>{a||M()},dbExplorerProps:{schema:"public",getTables:i,getTableRows:s,pageSize:J,onExportDb:r,onImportDb:n},remotesInspectorProps:{getRemotes:c}})};export{yt as InspectorModal};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as l}from"./document_model_editor-Dxf_uko8.js";import{b as g,s as f,t,L as R,i as y,f as T,x as m,c as h,a as S,u as b,E as k,g as u,h as j,k as C,j as E,l as x,m as $,n as N,o as V,p as Z,q as w,r as W,v as X,w as Y}from"./hooks-BdgCwg49.js";import{r as Q}from"./sentry_react-cODD7zWc.js";import"./graphql-BS4Brs_E.js";import"./drive_explorer-iLZp-dwy.js";import"./react/jsx-runtime-DldvXD6N.js";import"./document_model-DB4SzBSe.js";import"./zod-BpTyxkjy.js";import"./react-DQSxOgtG.js";import"./design_system-WuKyHXQN.js";import"./tailwind_merge-Dr4f9Rms.js";import"./reactor_browser-CmbGGv54.js";import"./document_drive-BuVpBb4l.js";import"./config-CU-aFfVJ.js";import"./react-dom-D6zQJsh6.js";import"./design_system_connect-DKWQSjBv.js";import"./design_system_ui-DvlEeqfu.js";import"./react-dom/client-BVPiT_FE.js";import"./sentry_browser-B4YoBIIG.js";const L=f({String:t.string,Number:t.number,"True False":t.bool,PropertyName:t.propertyName,Null:t.null,", :":t.separator,"[ ]":t.squareBracket,"{ }":t.brace}),H=g.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"⚠ JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[L],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0}),q=()=>a=>{try{JSON.parse(a.state.doc.toString())}catch(r){if(!(r instanceof SyntaxError))throw r;const e=v(r,a.state.doc);return[{from:e,message:r.message,severity:"error",to:e}]}return[]};function v(a,r){let e;return(e=a.message.match(/at position (\d+)/))?Math.min(+e[1],r.length):(e=a.message.match(/at line (\d+) column (\d+)/))?Math.min(r.line(+e[1]).from+ +e[2]-1,r.length):0}const d=R.define({name:"json",parser:H.configure({props:[y.add({Object:m({except:/^\s*\}/}),Array:m({except:/^\s*\]/})}),T.add({"Object Array":h})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function G(){return new S(d)}const ie=Q.memo(function(r){const{doc:e,readonly:o=!1,updateDocumentInModel:n}=r,{editorRef:i,viewRef:O,updateListenerCompartment:c,focusHandlerCompartment:p,pasteHandlerCompartment:P,timeoutRef:s}=b();return Q.useEffect(()=>{O.current||(O.current=new k({state:u.create({doc:e,extensions:[...j,C.of($),E,d,G(),x(q()),c.current.of(N(o,s,n)),p.current.of(V(o,s,n)),P.current.of(Z(o,s,n)),u.readOnly.of(o)]}),parent:i.current}),w(O.current))},[]),W(O),X(O.current,o,s,n,{updateListener:c.current,focusHandler:p.current,pasteHandler:P.current}),Y(O.current,e),l.jsx("div",{ref:i})});export{ie as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b1 as m,b2 as o,b3 as s}from"./reactor_browser-CmbGGv54.js";import"./document_model-DB4SzBSe.js";import"./zod-BpTyxkjy.js";import"./react-DQSxOgtG.js";import"./document_drive-BuVpBb4l.js";import"./graphql-BS4Brs_E.js";import"./config-CU-aFfVJ.js";import"./drive_explorer-iLZp-dwy.js";import"./sentry_react-cODD7zWc.js";import"./sentry_browser-B4YoBIIG.js";import"./document_model_editor-Dxf_uko8.js";import"./react/jsx-runtime-DldvXD6N.js";import"./design_system-WuKyHXQN.js";import"./tailwind_merge-Dr4f9Rms.js";import"./react-dom-D6zQJsh6.js";import"./design_system_connect-DKWQSjBv.js";import"./design_system_ui-DvlEeqfu.js";import"./react-dom/client-BVPiT_FE.js";s();var R=class extends m{constructor(t){super(t),this.rootDir=(void 0)(t),(void 0)((void 0)(this.rootDir))||(void 0)(this.rootDir)}async init(t,r){return this.pg=t,{emscriptenOpts:{...r,preRun:[...r.preRun||[],i=>{let p=i.FS.filesystems.NODEFS;i.FS.mkdir(o),i.FS.mount(p,{root:this.rootDir},o)}]}}}async closeFs(){this.pg.Module.FS.quit()}};export{R as NodeFS};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{b4 as H,b5 as m,b6 as o,b7 as s,b8 as A,b3 as C,b9 as P,ba as x}from"./reactor_browser-CmbGGv54.js";import"./document_model-DB4SzBSe.js";import"./zod-BpTyxkjy.js";import"./react-DQSxOgtG.js";import"./document_drive-BuVpBb4l.js";import"./graphql-BS4Brs_E.js";import"./config-CU-aFfVJ.js";import"./drive_explorer-iLZp-dwy.js";import"./sentry_react-cODD7zWc.js";import"./sentry_browser-B4YoBIIG.js";import"./document_model_editor-Dxf_uko8.js";import"./react/jsx-runtime-DldvXD6N.js";import"./design_system-WuKyHXQN.js";import"./tailwind_merge-Dr4f9Rms.js";import"./react-dom-D6zQJsh6.js";import"./design_system_connect-DKWQSjBv.js";import"./design_system_ui-DvlEeqfu.js";import"./react-dom/client-BVPiT_FE.js";C();var B="state.txt",L="data",$={DIR:16384,FILE:32768},T,I,E,_,w,k,y,j,N,b,S,l,v,O,M,g,f,D,R,W,ht=class extends H{constructor(t,{initialPoolSize:e=1e3,maintainedPoolSize:a=100,debug:i=!1}={}){super(t,{debug:i}),m(this,l),m(this,T),m(this,I),m(this,E),m(this,_),m(this,w),m(this,k,new Map),m(this,y,new Map),m(this,j,0),m(this,N,new Map),m(this,b,new Map),this.lastCheckpoint=0,this.checkpointInterval=1e3*60,this.poolCounter=0,m(this,S,new Set),this.initialPoolSize=e,this.maintainedPoolSize=a}async init(t,e){return await o(this,l,v).call(this),super.init(t,e)}async syncToFs(t=!1){await this.maybeCheckpointState(),await this.maintainPool(),t||this.flush()}async closeFs(){for(let t of s(this,y).values())t.close();s(this,w).flush(),s(this,w).close(),this.pg.Module.FS.quit()}async maintainPool(t){t=t||this.maintainedPoolSize;let e=t-this.state.pool.length,a=[];for(let i=0;i<e;i++)a.push(new Promise(async h=>{++this.poolCounter;let r=`${(Date.now()-1704063600).toString(16).padStart(8,"0")}-${this.poolCounter.toString(16).padStart(8,"0")}`,c=await s(this,E).getFileHandle(r,{create:!0}),d=await c.createSyncAccessHandle();s(this,k).set(r,c),s(this,y).set(r,d),o(this,l,M).call(this,{opp:"createPoolFile",args:[r]}),this.state.pool.push(r),h()}));for(let i=0;i>e;i--)a.push(new Promise(async h=>{let r=this.state.pool.pop();o(this,l,M).call(this,{opp:"deletePoolFile",args:[r]});let c=s(this,k).get(r);s(this,y).get(r)?.close(),await s(this,E).removeEntry(c.name),s(this,k).delete(r),s(this,y).delete(r),h()}));await Promise.all(a)}_createPoolFileState(t){this.state.pool.push(t)}_deletePoolFileState(t){let e=this.state.pool.indexOf(t);e>-1&&this.state.pool.splice(e,1)}async maybeCheckpointState(){Date.now()-this.lastCheckpoint>this.checkpointInterval&&await this.checkpointState()}async checkpointState(){let t=new TextEncoder().encode(JSON.stringify(this.state));s(this,w).truncate(0),s(this,w).write(t,{at:0}),s(this,w).flush(),this.lastCheckpoint=Date.now()}flush(){for(let t of s(this,S))try{t.flush()}catch{}s(this,S).clear()}chmod(t,e){o(this,l,O).call(this,{opp:"chmod",args:[t,e]},()=>{this._chmodState(t,e)})}_chmodState(t,e){let a=o(this,l,f).call(this,t);a.mode=e}close(t){let e=o(this,l,D).call(this,t);s(this,N).delete(t),s(this,b).delete(e)}fstat(t){let e=o(this,l,D).call(this,t);return this.lstat(e)}lstat(t){let e=o(this,l,f).call(this,t),a=e.type==="file"?s(this,y).get(e.backingFilename).getSize():0,i=4096;return{dev:0,ino:0,mode:e.mode,nlink:1,uid:0,gid:0,rdev:0,size:a,blksize:i,blocks:Math.ceil(a/i),atime:e.lastModified,mtime:e.lastModified,ctime:e.lastModified}}mkdir(t,e){o(this,l,O).call(this,{opp:"mkdir",args:[t,e]},()=>{this._mkdirState(t,e)})}_mkdirState(t,e){let a=o(this,l,g).call(this,t),i=a.pop(),h=[],r=this.state.root;for(let d of a){if(h.push(t),!Object.prototype.hasOwnProperty.call(r.children,d))if(e?.recursive)this.mkdir(h.join("/"));else throw new p("ENOENT","No such file or directory");if(r.children[d].type!=="directory")throw new p("ENOTDIR","Not a directory");r=r.children[d]}if(Object.prototype.hasOwnProperty.call(r.children,i))throw new p("EEXIST","File exists");let c={type:"directory",lastModified:Date.now(),mode:e?.mode||$.DIR,children:{}};r.children[i]=c}open(t,e,a){if(o(this,l,f).call(this,t).type!=="file")throw new p("EISDIR","Is a directory");let i=o(this,l,R).call(this);return s(this,N).set(i,t),s(this,b).set(t,i),i}readdir(t){let e=o(this,l,f).call(this,t);if(e.type!=="directory")throw new p("ENOTDIR","Not a directory");return Object.keys(e.children)}read(t,e,a,i,h){let r=o(this,l,D).call(this,t),c=o(this,l,f).call(this,r);if(c.type!=="file")throw new p("EISDIR","Is a directory");return s(this,y).get(c.backingFilename).read(new Uint8Array(e.buffer,a,i),{at:h})}rename(t,e){o(this,l,O).call(this,{opp:"rename",args:[t,e]},()=>{this._renameState(t,e,!0)})}_renameState(t,e,a=!1){let i=o(this,l,g).call(this,t),h=i.pop(),r=o(this,l,f).call(this,i.join("/"));if(!Object.prototype.hasOwnProperty.call(r.children,h))throw new p("ENOENT","No such file or directory");let c=o(this,l,g).call(this,e),d=c.pop(),n=o(this,l,f).call(this,c.join("/"));if(a&&Object.prototype.hasOwnProperty.call(n.children,d)){let u=n.children[d];s(this,y).get(u.backingFilename).truncate(0),this.state.pool.push(u.backingFilename)}n.children[d]=r.children[h],delete r.children[h]}rmdir(t){o(this,l,O).call(this,{opp:"rmdir",args:[t]},()=>{this._rmdirState(t)})}_rmdirState(t){let e=o(this,l,g).call(this,t),a=e.pop(),i=o(this,l,f).call(this,e.join("/"));if(!Object.prototype.hasOwnProperty.call(i.children,a))throw new p("ENOENT","No such file or directory");let h=i.children[a];if(h.type!=="directory")throw new p("ENOTDIR","Not a directory");if(Object.keys(h.children).length>0)throw new p("ENOTEMPTY","Directory not empty");delete i.children[a]}truncate(t,e=0){let a=o(this,l,f).call(this,t);if(a.type!=="file")throw new p("EISDIR","Is a directory");let i=s(this,y).get(a.backingFilename);if(!i)throw new p("ENOENT","No such file or directory");i.truncate(e),s(this,S).add(i)}unlink(t){o(this,l,O).call(this,{opp:"unlink",args:[t]},()=>{this._unlinkState(t,!0)})}_unlinkState(t,e=!1){let a=o(this,l,g).call(this,t),i=a.pop(),h=o(this,l,f).call(this,a.join("/"));if(!Object.prototype.hasOwnProperty.call(h.children,i))throw new p("ENOENT","No such file or directory");let r=h.children[i];if(r.type!=="file")throw new p("EISDIR","Is a directory");if(delete h.children[i],e){let c=s(this,y).get(r.backingFilename);c?.truncate(0),s(this,S).add(c),s(this,b).has(t)&&(s(this,N).delete(s(this,b).get(t)),s(this,b).delete(t))}this.state.pool.push(r.backingFilename)}utimes(t,e,a){o(this,l,O).call(this,{opp:"utimes",args:[t,e,a]},()=>{this._utimesState(t,e,a)})}_utimesState(t,e,a){let i=o(this,l,f).call(this,t);i.lastModified=a}writeFile(t,e,a){let i=o(this,l,g).call(this,t),h=i.pop(),r=o(this,l,f).call(this,i.join("/"));if(Object.prototype.hasOwnProperty.call(r.children,h)){let n=r.children[h];n.lastModified=Date.now(),o(this,l,M).call(this,{opp:"setLastModified",args:[t,n.lastModified]})}else{if(this.state.pool.length===0)throw new Error("No more file handles available in the pool");let n={type:"file",lastModified:Date.now(),mode:a?.mode||$.FILE,backingFilename:this.state.pool.pop()};r.children[h]=n,o(this,l,M).call(this,{opp:"createFileNode",args:[t,n]})}let c=r.children[h],d=s(this,y).get(c.backingFilename);e.length>0&&(d.write(typeof e=="string"?new TextEncoder().encode(e):new Uint8Array(e),{at:0}),t.startsWith("/pg_wal")&&s(this,S).add(d))}_createFileNodeState(t,e){let a=o(this,l,g).call(this,t),i=a.pop(),h=o(this,l,f).call(this,a.join("/"));h.children[i]=e;let r=this.state.pool.indexOf(e.backingFilename);return r>-1&&this.state.pool.splice(r,1),e}_setLastModifiedState(t,e){let a=o(this,l,f).call(this,t);a.lastModified=e}write(t,e,a,i,h){let r=o(this,l,D).call(this,t),c=o(this,l,f).call(this,r);if(c.type!=="file")throw new p("EISDIR","Is a directory");let d=s(this,y).get(c.backingFilename);if(!d)throw new p("EBADF","Bad file descriptor");let n=d.write(new Uint8Array(e,a,i),{at:h});return r.startsWith("/pg_wal")&&s(this,S).add(d),n}};T=new WeakMap,I=new WeakMap,E=new WeakMap,_=new WeakMap,w=new WeakMap,k=new WeakMap,y=new WeakMap,j=new WeakMap,N=new WeakMap,b=new WeakMap,S=new WeakMap,l=new WeakSet,v=async function(){P(this,T,await navigator.storage.getDirectory()),P(this,I,await o(this,l,W).call(this,this.dataDir,{create:!0})),P(this,E,await o(this,l,W).call(this,L,{from:s(this,I),create:!0})),P(this,_,await s(this,I).getFileHandle(B,{create:!0})),P(this,w,await s(this,_).createSyncAccessHandle());let t=new ArrayBuffer(s(this,w).getSize());s(this,w).read(t,{at:0});let e,a=new TextDecoder().decode(t).split(`
|
|
2
|
+
`),i=!1;try{e=JSON.parse(a[0])}catch{e={root:{type:"directory",lastModified:Date.now(),mode:$.DIR,children:{}},pool:[]},s(this,w).truncate(0),s(this,w).write(new TextEncoder().encode(JSON.stringify(e)),{at:0}),i=!0}this.state=e;let h=a.slice(1).filter(Boolean).map(n=>JSON.parse(n));for(let n of h){let u=`_${n.opp}State`;if(typeof this[u]=="function")try{this[u].bind(this)(...n.args)}catch(F){console.warn("Error applying OPFS AHP WAL entry",n,F)}}let r=[],c=async n=>{if(n.type==="file")try{let u=await s(this,E).getFileHandle(n.backingFilename),F=await u.createSyncAccessHandle();s(this,k).set(n.backingFilename,u),s(this,y).set(n.backingFilename,F)}catch(u){console.error("Error opening file handle for node",n,u)}else for(let u of Object.values(n.children))r.push(c(u))};await c(this.state.root);let d=[];for(let n of this.state.pool)d.push(new Promise(async u=>{s(this,k).has(n)&&console.warn("File handle already exists for pool file",n);let F=await s(this,E).getFileHandle(n),z=await F.createSyncAccessHandle();s(this,k).set(n,F),s(this,y).set(n,z),u()}));await Promise.all([...r,...d]),await this.maintainPool(i?this.initialPoolSize:this.maintainedPoolSize)},O=function(t,e){let a=o(this,l,M).call(this,t);try{e()}catch(i){throw s(this,w).truncate(a),i}},M=function(t){let e=JSON.stringify(t),a=new TextEncoder().encode(`
|
|
3
|
+
${e}`),i=s(this,w).getSize();return s(this,w).write(a,{at:i}),s(this,S).add(s(this,w)),i},g=function(t){return t.split("/").filter(Boolean)},f=function(t,e){let a=o(this,l,g).call(this,t),i=e||this.state.root;for(let h of a){if(i.type!=="directory")throw new p("ENOTDIR","Not a directory");if(!Object.prototype.hasOwnProperty.call(i.children,h))throw new p("ENOENT","No such file or directory");i=i.children[h]}return i},D=function(t){let e=s(this,N).get(t);if(!e)throw new p("EBADF","Bad file descriptor");return e},R=function(){let t=++x(this,j)._;for(;s(this,N).has(t);)x(this,j)._++;return t},W=async function(t,e){let a=o(this,l,g).call(this,t),i=e?.from||s(this,T);for(let h of a)i=await i.getDirectoryHandle(h,{create:e?.create});return i};var p=class extends Error{constructor(t,e){super(e),typeof t=="number"?this.code=t:typeof t=="string"&&(this.code=A[t])}};export{ht as OpfsAhpFS};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|