sliccy 3.39.2 → 3.40.0

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.
Files changed (158) hide show
  1. package/dist/node-server/_shared/cdp-frame-unmask.d.ts +30 -0
  2. package/dist/node-server/_shared/cdp-frame-unmask.d.ts.map +1 -0
  3. package/dist/node-server/_shared/cdp-frame-unmask.js +82 -0
  4. package/dist/node-server/_shared/cdp-frame-unmask.js.map +1 -0
  5. package/dist/node-server/_shared/index.d.ts +2 -0
  6. package/dist/node-server/_shared/index.d.ts.map +1 -1
  7. package/dist/node-server/_shared/index.js +2 -0
  8. package/dist/node-server/_shared/index.js.map +1 -1
  9. package/dist/node-server/_shared/secrets-pipeline.d.ts +9 -0
  10. package/dist/node-server/_shared/secrets-pipeline.d.ts.map +1 -1
  11. package/dist/node-server/_shared/secrets-pipeline.js +8 -1
  12. package/dist/node-server/_shared/secrets-pipeline.js.map +1 -1
  13. package/dist/node-server/_shared/session-secret-store.d.ts +48 -0
  14. package/dist/node-server/_shared/session-secret-store.d.ts.map +1 -0
  15. package/dist/node-server/_shared/session-secret-store.js +78 -0
  16. package/dist/node-server/_shared/session-secret-store.js.map +1 -0
  17. package/dist/node-server/cdp-proxy/cdp-unmask.d.ts +48 -0
  18. package/dist/node-server/cdp-proxy/cdp-unmask.js +59 -0
  19. package/dist/node-server/cdp-proxy/session-url-tracker.d.ts +27 -0
  20. package/dist/node-server/cdp-proxy/session-url-tracker.js +153 -0
  21. package/dist/node-server/index.js +143 -4
  22. package/dist/node-server/secrets/proxy-manager.d.ts +11 -1
  23. package/dist/node-server/secrets/proxy-manager.js +15 -2
  24. package/dist/node-server/sudo/dialog-backends.d.ts +29 -0
  25. package/dist/node-server/sudo/dialog-backends.js +181 -0
  26. package/dist/node-server/sudo/electron-backend.d.ts +36 -0
  27. package/dist/node-server/sudo/electron-backend.js +76 -0
  28. package/dist/node-server/sudo/endpoint.d.ts +25 -0
  29. package/dist/node-server/sudo/endpoint.js +52 -0
  30. package/dist/node-server/sudo/select.d.ts +29 -0
  31. package/dist/node-server/sudo/select.js +59 -0
  32. package/dist/node-server/sudo/tty-backend.d.ts +17 -0
  33. package/dist/node-server/sudo/tty-backend.js +49 -0
  34. package/dist/node-server/sudo/types.d.ts +33 -0
  35. package/dist/node-server/sudo/types.js +11 -0
  36. package/dist/ui/assets/{adobe-BkKbqjN2.js → adobe-D7Bu_6Xq.js} +1 -1
  37. package/dist/ui/assets/{adobe-EVDv-oJe.js → adobe-PH-jjYjF.js} +2 -2
  38. package/dist/ui/assets/{agent-bridge-C_uLyvTI.js → agent-bridge-DDNenR2p.js} +1 -1
  39. package/dist/ui/assets/{agent-message-to-chat-CeS0fVHu.js → agent-message-to-chat-Cs1a90IF.js} +1 -1
  40. package/dist/ui/assets/anthropic-CTkdrlJN.js +39 -0
  41. package/dist/ui/assets/{anthropic-CU0B0Pm9.js → anthropic-DXRkmxDU.js} +2 -2
  42. package/dist/ui/assets/{apps-Cr7y2pou.js → apps-B2AntWKe.js} +2 -2
  43. package/dist/ui/assets/{azure-openai-BbQrZgL2.js → azure-openai-Cmc98FIq.js} +1 -1
  44. package/dist/ui/assets/{azure-openai-BkZHl52u.js → azure-openai-CwjjFN-O.js} +1 -1
  45. package/dist/ui/assets/azure-openai-responses-BLIW1xU7.js +1 -0
  46. package/dist/ui/assets/{azure-openai-responses-IwnQ3IBU.js → azure-openai-responses-CF6XLlVB.js} +1 -1
  47. package/dist/ui/assets/{biome_wasm-C3ncT0Zp.js → biome_wasm-C0WbzefQ.js} +1 -1
  48. package/dist/ui/assets/{bsh-watchdog-vMuNcim4.js → bsh-watchdog-BxX5IGxY.js} +1 -1
  49. package/dist/ui/assets/{cdp-zqWeM9Fx.js → cdp-Bd7aCDAK.js} +3 -3
  50. package/dist/ui/assets/{cdp-ws-page-bridge-BccgQ_MP.js → cdp-ws-page-bridge-DSeh5Jiw.js} +1 -1
  51. package/dist/ui/assets/{common-DZkhMfZN.js → common-DQ_jkQux.js} +1 -1
  52. package/dist/ui/assets/{connect-surface-DEau8hB2.js → connect-surface-DDDI1Dgm.js} +1 -1
  53. package/dist/ui/assets/cost-command-aIrlbZJo.js +1 -0
  54. package/dist/ui/assets/{dist-DuRiHK77.js → dist-BfqAr0aD.js} +2 -2
  55. package/dist/ui/assets/{dist-BEjMwuAO.js → dist-KZ5qYFb-.js} +1 -1
  56. package/dist/ui/assets/{dist-F3PYJWK5.js → dist-LM9XR3Ck.js} +4 -4
  57. package/dist/ui/assets/{dist-BAWk6emk.js → dist-dMDCOAqo.js} +1 -1
  58. package/dist/ui/assets/{es-C7IOSTrK.js → es-B-rb0sPs.js} +1 -1
  59. package/dist/ui/assets/{esp32-l4qNjLi8.js → esp32-CljpQAJY.js} +1 -1
  60. package/dist/ui/assets/{esp32-Bgz6pdUM.js → esp32-DFF7rglw.js} +1 -1
  61. package/dist/ui/assets/{esp32c2-BvojiH-8.js → esp32c2-BLeN-vix.js} +1 -1
  62. package/dist/ui/assets/{esp32c2-Cw-tOYX0.js → esp32c2-BmdiKjVW.js} +1 -1
  63. package/dist/ui/assets/{esp32c3-B_2bJHNk.js → esp32c3-8cCC0ir4.js} +1 -1
  64. package/dist/ui/assets/{esp32c3-DY9pxlPN.js → esp32c3-CTu-f3Xa.js} +1 -1
  65. package/dist/ui/assets/{esp32c5-D7qf04lj.js → esp32c5-DfM0P74N.js} +1 -1
  66. package/dist/ui/assets/{esp32c5-FIUNaCuV.js → esp32c5-Dmf9q2Kt.js} +1 -1
  67. package/dist/ui/assets/{esp32c6-BdBb7y38.js → esp32c6-Dalsz3Ct.js} +1 -1
  68. package/dist/ui/assets/{esp32c6-DUgdbovF.js → esp32c6-IeKAg0Kz.js} +1 -1
  69. package/dist/ui/assets/{esp32c61-DLeQhFdd.js → esp32c61-57FHL1Xw.js} +1 -1
  70. package/dist/ui/assets/{esp32c61-UDRWrpzb.js → esp32c61-BWqD6AVB.js} +1 -1
  71. package/dist/ui/assets/{esp32h2-DB3fwjOh.js → esp32h2-D7eWIDCE.js} +1 -1
  72. package/dist/ui/assets/{esp32h2-JwDRtz-6.js → esp32h2-bzsrRjL9.js} +1 -1
  73. package/dist/ui/assets/{esp32p4-BREZajQ_.js → esp32p4-CDKjbwAm.js} +1 -1
  74. package/dist/ui/assets/{esp32p4-DImm9rZq.js → esp32p4-WaZKy8n8.js} +1 -1
  75. package/dist/ui/assets/{esp32s2-BzUqmNUY.js → esp32s2-CJWWe00j.js} +1 -1
  76. package/dist/ui/assets/{esp32s2-Dl_HOpu8.js → esp32s2-g795J8Us.js} +1 -1
  77. package/dist/ui/assets/{esp32s3-CVtlgvOB.js → esp32s3-BnK1LBEK.js} +1 -1
  78. package/dist/ui/assets/{esp32s3-dQC1sCq-.js → esp32s3-Cul2n__O.js} +1 -1
  79. package/dist/ui/assets/esp8266-CERpRtkt.js +1 -0
  80. package/dist/ui/assets/esp8266-CbDmUO0X.js +1 -0
  81. package/dist/ui/assets/{esptool-operations-C_StTYge.js → esptool-operations-D1aen6ZL.js} +3 -3
  82. package/dist/ui/assets/{esptool-operations-Bqunmv8c.js → esptool-operations-DltyURXu.js} +2 -2
  83. package/dist/ui/assets/{follower-sprinkle-bridge-BAwETPVw.js → follower-sprinkle-bridge-CnPTZaZh.js} +1 -1
  84. package/dist/ui/assets/{github-D__yuYPE.js → github-C3i8pVHA.js} +1 -1
  85. package/dist/ui/assets/{github-BRvRXw7P.js → github-CMrw5zty.js} +2 -2
  86. package/dist/ui/assets/{github-copilot-CciTQvjp.js → github-copilot-BvDkdFYE.js} +1 -1
  87. package/dist/ui/assets/{github-copilot-f_yTYAGH.js → github-copilot-DQLbeHXc.js} +2 -2
  88. package/dist/ui/assets/{google-z7G7cUTg.js → google-B7W0uHWB.js} +1 -1
  89. package/dist/ui/assets/{google-DlsDPGgv.js → google-UbHq3P8Y.js} +1 -1
  90. package/dist/ui/assets/{google-shared-CHBsSinA.js → google-shared-BnvN4efk.js} +1 -1
  91. package/dist/ui/assets/{google-shared-BgAGdoyv.js → google-shared-DS-_SSGb.js} +1 -1
  92. package/dist/ui/assets/{google-vertex-BkQMSZWx.js → google-vertex-B05qyweB.js} +1 -1
  93. package/dist/ui/assets/{google-vertex-DB0-2x4F.js → google-vertex-B68biZKe.js} +1 -1
  94. package/dist/ui/assets/{hosted-config-apply-C0EMBy-k.js → hosted-config-apply-CFYBj6qv.js} +1 -1
  95. package/dist/ui/assets/{intercepted-oauth-98jE6MdJ.js → intercepted-oauth-Bq-TCYrk.js} +1 -1
  96. package/dist/ui/assets/{kernel-worker-C_bNzCH6.js → kernel-worker-CIvIwZQg.js} +1185 -1096
  97. package/dist/ui/assets/lick-ws-bridge-BHZTexU3.js +1 -0
  98. package/dist/ui/assets/{local-llm-BWbSsi3a.js → local-llm-D5crtA-T.js} +2 -2
  99. package/dist/ui/assets/{magick-wasm-Dtq-eXDu.js → magick-wasm-gsjLyST3.js} +1 -1
  100. package/dist/ui/assets/{main-D7lo-Iw7.js → main-KLdStgNy.js} +21 -21
  101. package/dist/ui/assets/{main-cherry-DA2Vwatj.js → main-cherry-B9S3KoTZ.js} +1 -1
  102. package/dist/ui/assets/{migration-run-B828fX-Z.js → migration-run--MyxIthe.js} +1 -1
  103. package/dist/ui/assets/{mistral-CDP7d9Q7.js → mistral-6QPBN4nW.js} +1 -1
  104. package/dist/ui/assets/{mistral-roBDzZtU.js → mistral-D_t9egZV.js} +2 -2
  105. package/dist/ui/assets/{nodejs-Bwix3RAJ.js → nodejs-DSUq4B29.js} +1 -1
  106. package/dist/ui/assets/{nuke-command-vh4Y9o7P.js → nuke-command-Zw-leLT5.js} +1 -1
  107. package/dist/ui/assets/{oauth-B6PLhGUg.js → oauth-MqZ4M6m-.js} +1 -1
  108. package/dist/ui/assets/{oauth-bootstrap-Cr4B6L_c.js → oauth-bootstrap-C59I_3tx.js} +2 -2
  109. package/dist/ui/assets/{oauth-service-BNaPQI8J.js → oauth-service-DA4rM4JC.js} +1 -1
  110. package/dist/ui/assets/{oauth-service-D7FIq6-6.js → oauth-service-zJNIoo1V.js} +1 -1
  111. package/dist/ui/assets/{offscreen-client-Bfe0KuPj.js → offscreen-client-GWuo9BNt.js} +1 -1
  112. package/dist/ui/assets/{onboarding-orchestrator-BYaZ0be3.js → onboarding-orchestrator-BeANj7Ul.js} +1 -1
  113. package/dist/ui/assets/{openai-codex-D1hjYfz1.js → openai-codex-Bv4yjwxV.js} +1 -1
  114. package/dist/ui/assets/{openai-codex-DHgM74Sl.js → openai-codex-k8eWFcZV.js} +1 -1
  115. package/dist/ui/assets/{openai-codex-responses-BimSBWEw.js → openai-codex-responses-C7JqE0YG.js} +1 -1
  116. package/dist/ui/assets/{openai-codex-responses-DayS7aDG.js → openai-codex-responses-Co5XyulR.js} +5 -5
  117. package/dist/ui/assets/{openai-completions-VKddpnU6.js → openai-completions-Di-lTps6.js} +3 -3
  118. package/dist/ui/assets/{openai-responses-D9HA45yW.js → openai-responses-DcNwTkEg.js} +1 -1
  119. package/dist/ui/assets/{openai-responses-aNm5t_ca.js → openai-responses-SO5bUHHa.js} +1 -1
  120. package/dist/ui/assets/{openai-responses-shared-BZFLXrgF.js → openai-responses-shared-5JtIgjw9.js} +3 -3
  121. package/dist/ui/assets/{openai-responses-shared-DzI8rQQS.js → openai-responses-shared-Bn2RwoxX.js} +1 -1
  122. package/dist/ui/assets/{openrouter-OoruFe8v.js → openrouter-DLKnm2fn.js} +1 -1
  123. package/dist/ui/assets/panel-rpc-handlers-BcjV-5BH.js +2 -0
  124. package/dist/ui/assets/{provider-BMMzCthA.js → provider-BCqaH59Q.js} +2 -2
  125. package/dist/ui/assets/{provider-Ba1IsiDR.js → provider-CjSymjn8.js} +1 -1
  126. package/dist/ui/assets/provider-store-access-DLqGKyKa.js +1 -0
  127. package/dist/ui/assets/provider-store-access-ihLsqbjK.js +1 -0
  128. package/dist/ui/assets/{proxied-fetch-Cn_CFESw.js → proxied-fetch-DM7Dn6UW.js} +1 -1
  129. package/dist/ui/assets/{pyodide-Cpi0sKef.js → pyodide-DPVxTLey.js} +2 -2
  130. package/dist/ui/assets/{remote-terminal-view-BYQH-0XJ.js → remote-terminal-view-BgzYQ6yQ.js} +3 -3
  131. package/dist/ui/assets/{remote-vfs-client-B4-lP0Zo.js → remote-vfs-client-DwVNXJtn.js} +1 -1
  132. package/dist/ui/assets/{secret-env-D39KVeV6.js → secret-env-B97hdahj.js} +1 -1
  133. package/dist/ui/assets/{slicc-editor-BWgR4Xj3.js → slicc-editor-B8iqXLRa.js} +1 -1
  134. package/dist/ui/assets/{spawn-MJ8-EjZE.js → spawn-DZ-kooaL.js} +1 -1
  135. package/dist/ui/assets/{sql-wasm-Ulc3s55p.js → sql-wasm-KvD5hCYg.js} +1 -1
  136. package/dist/ui/assets/{src-6t6EkdjL.js → src-DoxSh3Qb.js} +1 -1
  137. package/dist/ui/assets/{store-nrzYvE_Y.js → store-B65s0_qo.js} +1 -1
  138. package/dist/ui/assets/sudo-b4cnGRfs.js +4 -0
  139. package/dist/ui/assets/{tray-leave-runtime-mn_AtTiW.js → tray-leave-runtime-Cj8YRVeh.js} +1 -1
  140. package/dist/ui/assets/{typescript-6K4Vreer.js → typescript-Bjb8Ed-M.js} +1 -1
  141. package/dist/ui/assets/{upgrade-detection-rDZlWMcK.js → upgrade-detection-PZDmKvvH.js} +1 -1
  142. package/dist/ui/assets/{web-C3ecTZIA.js → web-Ck9rK35p.js} +1 -1
  143. package/dist/ui/assets/{writable-vfs-client-NlEFPGwe.js → writable-vfs-client-BaCzCT1_.js} +1 -1
  144. package/dist/ui/assets/{ws-subscribers-DAPNffxG.js → ws-subscribers-CYoDKDxH.js} +1 -1
  145. package/dist/ui/assets/{xai-grok-B9fBrwRF.js → xai-grok-CgZiPzSS.js} +1 -1
  146. package/dist/ui/assets/{xai-grok-BDnhgMfk.js → xai-grok-DvO83Y1t.js} +1 -1
  147. package/dist/ui/index.html +1 -1
  148. package/dist/ui/packages/webapp/index.html +1 -1
  149. package/package.json +1 -1
  150. package/dist/ui/assets/anthropic-BGuKxqSF.js +0 -39
  151. package/dist/ui/assets/azure-openai-responses-BLuAUdUm.js +0 -1
  152. package/dist/ui/assets/cost-command-DLq7GqKn.js +0 -1
  153. package/dist/ui/assets/esp8266-BEpoAOn2.js +0 -1
  154. package/dist/ui/assets/esp8266-CqYRyoC9.js +0 -1
  155. package/dist/ui/assets/lick-ws-bridge-BBMzHt7o.js +0 -1
  156. package/dist/ui/assets/panel-rpc-handlers-CGWZd1To.js +0 -2
  157. package/dist/ui/assets/provider-store-access-CKu7KBid.js +0 -1
  158. package/dist/ui/assets/provider-store-access-CeJAwMVA.js +0 -1
@@ -1,2 +1,2 @@
1
- import{C as e,D as t,E as n,O as r,S as i,T as a,_ as o,a as s,b as c,c as l,d as u,f as d,g as f,h as p,i as m,k as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,u as C,w,x as T}from"./dist-F3PYJWK5.js";function E(e){switch(e.name){case`TypeMismatchError`:return`EPERM`;case`IndexSizeError`:case`HierarchyRequestError`:case`InvalidCharacterError`:case`InvalidStateError`:case`SyntaxError`:case`NamespaceError`:case`ConstraintError`:case`VersionError`:case`URLMismatchError`:case`InvalidNodeTypeError`:return`EINVAL`;case`WrongDocumentError`:return`EXDEV`;case`NoModificationAllowedError`:case`InvalidModificationError`:case`InvalidAccessError`:case`SecurityError`:case`NotAllowedError`:return`EACCES`;case`NotFoundError`:return`ENOENT`;case`NotSupportedError`:return`ENOTSUP`;case`InUseAttributeError`:return`EBUSY`;case`NetworkError`:return`ENETDOWN`;case`AbortError`:return`EINTR`;case`QuotaExceededError`:return`ENOSPC`;case`TimeoutError`:return`ETIMEDOUT`;case`ReadOnlyError`:return`EROFS`;default:return`EIO`}}function D(e,t){if(e instanceof a)return e;let n=new a(e instanceof DOMException?w[E(e)]:w.EIO,e.message);return n.stack=e.stack,Error.captureStackTrace?.(n,D),n.cause=e.cause,n}function O(e){return typeof e==`object`&&!!e&&e.constructor.name==`SharedArrayBuffer`}function k(e){return e instanceof ArrayBuffer?e.resizable:O(e)?e.growable:!1}function A(e,t){return e.kind==t}var j=class extends x(m){async _loadHandles(e,t){for await(let[n,r]of t.entries()){let t=_(e,n);this._handles.set(t,r),A(r,`directory`)&&await this._loadHandles(t,r)}}async _loadMetadata(e){if(this._handles.set(`/`,this.root),await this._loadHandles(`/`,this.root),e){let t=await(await(await this.get(`file`,e)).getFile()).text(),n=JSON.parse(t);this.index.fromJSON(n);return}for(let[e,t]of this._handles){if(A(t,`file`)){let{lastModified:n,size:r}=await t.getFile();this.index.set(e,new C({mode:420|o,size:r,mtimeMs:n}));continue}if(!A(t,`directory`))throw n(`EIO`,`Invalid handle`);this.index.set(e,new C({mode:511|p,size:0}))}}constructor(e,t=!1){super(2003133025,`webaccessfs`),this.root=e,this.disableHandleCache=t,this._handles=new Map,this._sync=s.create({label:`accessfs-cache`}),this.attributes.set(`no_buffer_resize`,!0),t&&this.attributes.set(`no_handle_cache`,!0)}async stat(e){try{return await super.stat(e)}catch(t){if(t.code!=`ENOENT`)throw t;let n=await this.get(null,e),r=new C;if(A(n,`file`)){let e=await n.getFile();r.update({mode:420|o,size:e.size,mtimeMs:e.lastModified})}else r.update({mode:p|511,size:0});return this.index.set(e,r),r}}async readdir(e){let t=await this.get(`directory`,e);return await Array.fromAsync(t.keys())}async remove(e){let t=await this.get(`directory`,b(e));for(let t of this._handles.keys())b(t)==e&&this._handles.delete(t);this._handles.delete(e),await t.removeEntry(d(e),{recursive:!0}).catch(t=>h(D(t,e)))}removeSync(){throw T(n(`ENOSYS`))}async read(e,t,r,i){if(i<=r)return;let a=await(await(await this.get(`file`,e)).getFile()).arrayBuffer();if(a.byteLength<i-r)throw c(n(`EIO`,[`Unexpected mismatch in file data size. This should not happen.`,`tried to read ${i-r} bytes but the file is ${a.byteLength} bytes.`,`path: ${e}`].join(`
1
+ import{C as e,D as t,E as n,O as r,S as i,T as a,_ as o,a as s,b as c,c as l,d as u,f as d,g as f,h as p,i as m,k as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,u as C,w,x as T}from"./dist-LM9XR3Ck.js";function E(e){switch(e.name){case`TypeMismatchError`:return`EPERM`;case`IndexSizeError`:case`HierarchyRequestError`:case`InvalidCharacterError`:case`InvalidStateError`:case`SyntaxError`:case`NamespaceError`:case`ConstraintError`:case`VersionError`:case`URLMismatchError`:case`InvalidNodeTypeError`:return`EINVAL`;case`WrongDocumentError`:return`EXDEV`;case`NoModificationAllowedError`:case`InvalidModificationError`:case`InvalidAccessError`:case`SecurityError`:case`NotAllowedError`:return`EACCES`;case`NotFoundError`:return`ENOENT`;case`NotSupportedError`:return`ENOTSUP`;case`InUseAttributeError`:return`EBUSY`;case`NetworkError`:return`ENETDOWN`;case`AbortError`:return`EINTR`;case`QuotaExceededError`:return`ENOSPC`;case`TimeoutError`:return`ETIMEDOUT`;case`ReadOnlyError`:return`EROFS`;default:return`EIO`}}function D(e,t){if(e instanceof a)return e;let n=new a(e instanceof DOMException?w[E(e)]:w.EIO,e.message);return n.stack=e.stack,Error.captureStackTrace?.(n,D),n.cause=e.cause,n}function O(e){return typeof e==`object`&&!!e&&e.constructor.name==`SharedArrayBuffer`}function k(e){return e instanceof ArrayBuffer?e.resizable:O(e)?e.growable:!1}function A(e,t){return e.kind==t}var j=class extends x(m){async _loadHandles(e,t){for await(let[n,r]of t.entries()){let t=_(e,n);this._handles.set(t,r),A(r,`directory`)&&await this._loadHandles(t,r)}}async _loadMetadata(e){if(this._handles.set(`/`,this.root),await this._loadHandles(`/`,this.root),e){let t=await(await(await this.get(`file`,e)).getFile()).text(),n=JSON.parse(t);this.index.fromJSON(n);return}for(let[e,t]of this._handles){if(A(t,`file`)){let{lastModified:n,size:r}=await t.getFile();this.index.set(e,new C({mode:420|o,size:r,mtimeMs:n}));continue}if(!A(t,`directory`))throw n(`EIO`,`Invalid handle`);this.index.set(e,new C({mode:511|p,size:0}))}}constructor(e,t=!1){super(2003133025,`webaccessfs`),this.root=e,this.disableHandleCache=t,this._handles=new Map,this._sync=s.create({label:`accessfs-cache`}),this.attributes.set(`no_buffer_resize`,!0),t&&this.attributes.set(`no_handle_cache`,!0)}async stat(e){try{return await super.stat(e)}catch(t){if(t.code!=`ENOENT`)throw t;let n=await this.get(null,e),r=new C;if(A(n,`file`)){let e=await n.getFile();r.update({mode:420|o,size:e.size,mtimeMs:e.lastModified})}else r.update({mode:p|511,size:0});return this.index.set(e,r),r}}async readdir(e){let t=await this.get(`directory`,e);return await Array.fromAsync(t.keys())}async remove(e){let t=await this.get(`directory`,b(e));for(let t of this._handles.keys())b(t)==e&&this._handles.delete(t);this._handles.delete(e),await t.removeEntry(d(e),{recursive:!0}).catch(t=>h(D(t,e)))}removeSync(){throw T(n(`ENOSYS`))}async read(e,t,r,i){if(i<=r)return;let a=await(await(await this.get(`file`,e)).getFile()).arrayBuffer();if(a.byteLength<i-r)throw c(n(`EIO`,[`Unexpected mismatch in file data size. This should not happen.`,`tried to read ${i-r} bytes but the file is ${a.byteLength} bytes.`,`path: ${e}`].join(`
2
2
  `+` `.repeat(24))));t.set(new Uint8Array(a,r,i-r))}async write(e,t,r){if(k(t.buffer)||O(t.buffer)){let e=new Uint8Array(new ArrayBuffer(t.byteLength),t.byteOffset,t.byteLength);e.set(t),t=e}let i=this.index.get(e);if(!i)throw n(`ENOENT`);let a=(i.mode&f)==p,o;try{o=await this.get(a?`directory`:`file`,e)}catch{o=await(await this.get(`directory`,b(e)))[a?`getDirectoryHandle`:`getFileHandle`](d(e),{create:!0}).catch(t=>h(D(t,e))),this.disableHandleCache||this._handles.set(e,o)}if(a)return;if(A(o,`directory`)){T(n(`EIO`,`Mismatch in entry kind on write`));return}let s=await o.createWritable({keepExistingData:!0});try{r<i.size&&await s.seek(r)}catch{await s.write({type:`seek`,position:r})}await s.write(t),await s.close();let{size:c,lastModified:l}=await o.getFile();i.update({size:c,mtimeMs:l}),this.index.set(e,i)}async writeFile(e,t){return this.write(e,t,0)}async _mkdir(e){let t=await(await this.get(`directory`,b(e))).getDirectoryHandle(d(e),{create:!0}).catch(t=>h(D(t,e)));this.disableHandleCache||this._handles.set(e,t)}async get(e=null,t){let r=this._handles.get(t);if(!this.disableHandleCache&&r){if(e&&!A(r,e))throw n(e==`directory`?`ENOTDIR`:`EISDIR`);return r}if(t==`/`)return this.root;let i=t.slice(1).split(`/`),a=this.root;for(let e=0;e<i.length-1;++e)a=await a.getDirectoryHandle(i[e]).catch(e=>h(D(e,t)));try{let n=await a[e==`file`?`getFileHandle`:`getDirectoryHandle`](i.at(-1));return this.disableHandleCache||this._handles.set(t,n),n}catch(r){if(r.name!=`TypeMismatchError`)throw D(r,t);if(e===null){let e=await a.getFileHandle(i.at(-1)).catch(e=>h(D(e,t)));return this.disableHandleCache||this._handles.set(t,e),e}else throw n(e==`file`?`EISDIR`:`ENOTDIR`)}}},M={name:`WebAccess`,options:{handle:{type:`object`,required:!0},metadata:{type:`string`,required:!1},disableHandleCache:{type:`boolean`,required:!1}},async create(e){let t=new j(e.handle,e.disableHandleCache);return await t._loadMetadata(e.metadata),t}};function N(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=t=>{t.preventDefault(),n(D(e.error))}})}var P=class extends l{async(e){this.asyncDone=this.asyncDone.then(()=>e)}constructor(e,t){super(t),this.tx=e,this.store=t,this.asyncDone=Promise.resolve(),this._idb=e.objectStore(t.name)}async keys(){return(await N(this._idb.getAllKeys())).map(Number)}async get(e){let t=await N(this._idb.get(e));return t&&this.store.cache.set(e,new Uint8Array(t)),t}getSync(e,t,n){if(!this.store.cache.has(e))return;let r=new Uint8Array(this.store.cache.get(e));return n??=r.byteLength,r.subarray(t,n)}async set(e,t){this.store.cache.set(e,new Uint8Array(t)),await N(this._idb.put(t,e))}setSync(e,t){this.async(this.set(e,t))}remove(e){return this.store.cache.delete(e),N(this._idb.delete(e))}removeSync(e){this.store.cache.delete(e),this.async(this.remove(e))}async commit(){await this.asyncDone;let{promise:e,resolve:t,reject:n}=Promise.withResolvers();return this.tx.oncomplete=()=>t(),this.tx.onerror=()=>n(D(this.tx.error)),this.tx.commit(),e}async abort(){await this.asyncDone;let{promise:e,resolve:t,reject:n}=Promise.withResolvers();return this.tx.onabort=()=>t(),this.tx.onerror=()=>n(D(this.tx.error)),this.tx.abort(),e}};async function F(t,n=globalThis.indexedDB){let r=n.open(t);return r.onupgradeneeded=()=>{let n=r.result;n.objectStoreNames.contains(t)&&(e(`Found unexpected object store: `+t),n.deleteObjectStore(t)),n.createObjectStore(t)},await N(r)}var I=class{constructor(e){this.db=e,this.cache=new Map}sync(){return Promise.resolve()}get name(){return this.db.name}transaction(){return new P(this.db.transaction(this.name,`readwrite`),this)}},L=new WeakMap;async function R(e){if(!(e instanceof IDBFactory))return!1;try{return(await N(e.open(`__zenfs_test`))).close(),!0}catch{return!1}finally{e?.deleteDatabase(`__zenfs_test`)}}var z={name:`IndexedDB`,options:{storeName:{type:`string`,required:!1},idbFactory:{type:`object`,required:!1}},async isAvailable({idbFactory:e=globalThis.indexedDB}){if(L.has(e))return L.get(e);let t=R(e);return L.set(e,t),t},async create(e){let t=new I(await F(e.storeName||`zenfs`,e.idbFactory)),n=new S(t);if(e?.disableAsyncCache)return i(`Async preloading disabled for IndexedDB`),n;let r=t.transaction();for(let e of await r.keys())await r.get(e);return n}},B=class{get name(){return V.name}constructor(e){this.storage=e}clear(){this.storage.clear()}clearSync(){this.storage.clear()}async sync(){}transaction(){return new y(this)}keys(){return Object.keys(this.storage).map(e=>Number(e))}get(e){let t=this.storage.getItem(e.toString());if(typeof t==`string`)return r(t)}set(e,r){try{this.storage.setItem(e.toString(),t(r))}catch{throw n(`ENOSPC`)}}delete(e){try{this.storage.removeItem(e.toString())}catch(t){throw n(`EIO`,`Unable to delete '${e}': ${t}`)}}},V={name:`WebStorage`,options:{storage:{type:`object`,required:!1}},isAvailable(e){return(e?.storage??globalThis.localStorage)instanceof globalThis.Storage},create({storage:e=globalThis.localStorage}){return new S(new B(e))}};function H(e){let t={};for(let n of u){let r=e.getAttribute(n);r!=null&&(t[n]=parseInt(r,16))}return new C(t)}function U(e,t){for(let n of Object.keys(t))!(n in u)||t[n]===void 0||e.setAttribute(n,t[n].toString(16))}function W(e,t=!1){let n;try{let r=t?e.textContent:e.getAttribute(`paths`);n=JSON.parse(r||`[]`)}catch{n=[]}return n}var G=class extends v(g){constructor(e=new DOMParser().parseFromString(`<fs></fs>`,`application/xml`).documentElement){super(544763244,`xmltmpfs`),this.root=e;try{this.mkdirSync(`/`,{uid:0,gid:0,mode:511})}catch(e){let t=e;if(t.code!=`EEXIST`)throw t}}renameSync(e,t){let n=this.get(`rename`,e);this.remove(`rename`,n,e),this.add(`rename`,n,t)}statSync(e){return H(this.get(`stat`,e))}createFileSync(e,t){let n=this.statSync(b(e)),r=new C({mode:t.mode|o,uid:n.mode&2048?n.uid:t.uid,gid:n.mode&1024?n.gid:t.gid});return this.create(`createFile`,e,r),r}unlinkSync(e){let t=this.get(`unlink`,e);if(H(t).mode&16384)throw n(`EISDIR`);this.remove(`unlink`,t,e)}rmdirSync(e){let t=this.get(`rmdir`,e);if(t.textContent?.length)throw n(`ENOTEMPTY`);if(!(H(t).mode&16384))throw n(`ENOTDIR`);this.remove(`rmdir`,t,e)}mkdirSync(e,t){let n=this.statSync(b(e)),r=new C({mode:t.mode|p,uid:n.mode&2048?n.uid:t.uid,gid:n.mode&1024?n.gid:t.gid});return this.create(`mkdir`,e,r).textContent=`[]`,r}readdirSync(e){let t=this.get(`readdir`,e);if(!(H(t).mode&16384))throw n(`ENOTDIR`);try{return JSON.parse(t.textContent)}catch(e){throw n(`EIO`,`Invalid directory listing: `+e)}}linkSync(e,t){let n=this.get(`link`,e);this.add(`link`,n,t)}touchSync(e,t){U(this.get(`touch`,e),t)}syncSync(){}readSync(e,t,n,i){let a=r(this.get(`read`,e).textContent.slice(n,i));t.set(a)}writeSync(e,n,r){let i=this.get(`write`,e),a=t(n),o=i.textContent.slice(r+a.length);i.textContent=i.textContent.slice(0,r)+a+o}toString(){return new XMLSerializer().serializeToString(this.root)}get(e,t){let r=this.root.children;if(!r)throw n(`EIO`);for(let e=0;e<r.length;e++)if(W(r[e]).includes(t))return r[e];throw n(`ENOENT`)}create(e,t,r){if(this.existsSync(t))throw n(`EEXIST`);let i=document.createElement(`file`);return this.add(e,i,t),U(i,new C({...r,uid:r.mode})),this.root.append(i),i}add(e,t,n,r=!1){let i=W(t,r);if(i.push(n),r){t.textContent=JSON.stringify(i);return}if(t.setAttribute(`paths`,JSON.stringify(i)),t.setAttribute(`nlink`,i.length.toString(16)),n!=`/`){let t=this.get(e,b(n));this.add(e,t,d(n),!0)}}remove(e,t,n,r=!1){let i=W(t,r),a=i.indexOf(n);if(a!=-1){if(i.splice(a,1),r){t.textContent=JSON.stringify(i);return}if(i.length?(t.setAttribute(`paths`,JSON.stringify(i)),t.setAttribute(`nlink`,i.length.toString(16))):t.remove(),n!=`/`){let t=this.get(e,b(n));this.remove(e,t,d(n),!0)}}}},K={name:`XML`,options:{root:{type:`object`,required:!1}},isAvailable(){return!0},create(e){return new G(e.root)}};export{z as IndexedDB,I as IndexedDBStore,P as IndexedDBTransaction,M as WebAccess,j as WebAccessFS,V as WebStorage,B as WebStorageStore,K as XML,G as XMLFS};