@powerhousedao/connect 2.5.0-dev.35 → 2.5.0-dev.37
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/dist/assets/{AddDriveModal.DlEdNnr4.js → AddDriveModal.BGObz3Uw.js} +2 -2
- package/dist/assets/{AddDriveModal.DlEdNnr4.js.map → AddDriveModal.BGObz3Uw.js.map} +1 -1
- package/dist/assets/{CreateDocumentModal.DXMNn9I5.js → CreateDocumentModal.CKuBXY23.js} +2 -2
- package/dist/assets/{CreateDocumentModal.DXMNn9I5.js.map → CreateDocumentModal.CKuBXY23.js.map} +1 -1
- package/dist/assets/{DebugSettingsModal.CROW4RJZ.js → DebugSettingsModal.Boa5SBs_.js} +2 -2
- package/dist/assets/{DebugSettingsModal.CROW4RJZ.js.map → DebugSettingsModal.Boa5SBs_.js.map} +1 -1
- package/dist/assets/{SettingsModal.Ya5bLcGW.js → SettingsModal.TP9H7uK8.js} +2 -2
- package/dist/assets/{SettingsModal.Ya5bLcGW.js.map → SettingsModal.TP9H7uK8.js.map} +1 -1
- package/dist/assets/{app.BreOpFw3.js → app.4bfdL5-A.js} +5 -5
- package/dist/assets/{app.BreOpFw3.js.map → app.4bfdL5-A.js.map} +1 -1
- package/dist/assets/{atlas-import.B9SS8XC4.js → atlas-import.yYFgYIXs.js} +2 -2
- package/dist/assets/{atlas-import.B9SS8XC4.js.map → atlas-import.yYFgYIXs.js.map} +1 -1
- package/dist/assets/{connect.config.EGCg866M.js → connect.config.D7bT63h0.js} +2 -2
- package/dist/assets/{connect.config.EGCg866M.js.map → connect.config.D7bT63h0.js.map} +1 -1
- package/dist/assets/{content.LCJPoWcu.js → content.CzNQfJNg.js} +2 -2
- package/dist/assets/{content.LCJPoWcu.js.map → content.CzNQfJNg.js.map} +1 -1
- package/dist/assets/{cookie-banner.CC8ABWTP.js → cookie-banner.DsMETIAk.js} +2 -2
- package/dist/assets/{cookie-banner.CC8ABWTP.js.map → cookie-banner.DsMETIAk.js.map} +1 -1
- package/dist/assets/{home.grik_AVG.js → home.DSyXSiU5.js} +2 -2
- package/dist/assets/{home.grik_AVG.js.map → home.DSyXSiU5.js.map} +1 -1
- package/dist/assets/{index.BwGbra0U.js → index.BzzGy4zk.js} +2 -2
- package/dist/assets/{index.BwGbra0U.js.map → index.BzzGy4zk.js.map} +1 -1
- package/dist/assets/{index.fP28EbXr.js → index.DJzD4Eyh.js} +2 -2
- package/dist/assets/{index.fP28EbXr.js.map → index.DJzD4Eyh.js.map} +1 -1
- package/dist/assets/{index.Dh34HuvB.js → index.DoHX6Da_.js} +2 -2
- package/dist/assets/{index.Dh34HuvB.js.map → index.DoHX6Da_.js.map} +1 -1
- package/dist/assets/{index.CU-xaVrC.js → index.IVO_RW9x.js} +2 -2
- package/dist/assets/{index.CU-xaVrC.js.map → index.IVO_RW9x.js.map} +1 -1
- package/dist/assets/{index.BErXmCLS.js → index.lN7bgASa.js} +3 -3
- package/dist/assets/{index.BErXmCLS.js.map → index.lN7bgASa.js.map} +1 -1
- package/dist/assets/{index.Ce-0ftmg.js → index.yWKT0myF.js} +2 -2
- package/dist/assets/{index.Ce-0ftmg.js.map → index.yWKT0myF.js.map} +1 -1
- package/dist/assets/{main.B8YBc-mJ.js → main.16UUMUFw.js} +3 -3
- package/dist/assets/{main.B8YBc-mJ.js.map → main.16UUMUFw.js.map} +1 -1
- package/dist/assets/{modal.CLB30km4.js → modal.Cyno9xQv.js} +3 -3
- package/dist/assets/{modal.CLB30km4.js.map → modal.Cyno9xQv.js.map} +1 -1
- package/dist/assets/{modals.DJaCFxNO.js → modals.B2MGWVTJ.js} +2 -2
- package/dist/assets/{modals.DJaCFxNO.js.map → modals.B2MGWVTJ.js.map} +1 -1
- package/dist/assets/nodefs.D6wU1w0J.js +2 -0
- package/dist/assets/{nodefs.1xeRYPEq.js.map → nodefs.D6wU1w0J.js.map} +1 -1
- package/dist/assets/{opfs-ahp.B60qwkx_.js → opfs-ahp.DCqcnT0l.js} +2 -2
- package/dist/assets/{opfs-ahp.B60qwkx_.js.map → opfs-ahp.DCqcnT0l.js.map} +1 -1
- package/dist/assets/{registerServiceWorker.BXPwtRKK.js → registerServiceWorker.qRwAeUvA.js} +2 -2
- package/dist/assets/{registerServiceWorker.BXPwtRKK.js.map → registerServiceWorker.qRwAeUvA.js.map} +1 -1
- package/dist/assets/{root.D4PT_TEq.js → root.msYp5HC8.js} +2 -2
- package/dist/assets/{root.D4PT_TEq.js.map → root.msYp5HC8.js.map} +1 -1
- package/dist/assets/{useAcceptedCookies.CfZyodLY.js → useAcceptedCookies.CeHL3XNa.js} +2 -2
- package/dist/assets/{useAcceptedCookies.CfZyodLY.js.map → useAcceptedCookies.CeHL3XNa.js.map} +1 -1
- package/dist/assets/useConnectConfig.CCGNCy5A.js +2 -0
- package/dist/assets/{useConnectConfig.BLleDyCr.js.map → useConnectConfig.CCGNCy5A.js.map} +1 -1
- package/dist/assets/{useDefaultDocumentModelEditor.Bf9YZ-Zd.js → useDefaultDocumentModelEditor.40aSsWDg.js} +2 -2
- package/dist/assets/{useDefaultDocumentModelEditor.Bf9YZ-Zd.js.map → useDefaultDocumentModelEditor.40aSsWDg.js.map} +1 -1
- package/dist/assets/{useDocumentDriveServer.lEoTUzm6.js → useDocumentDriveServer.CaPOXIv7.js} +2 -2
- package/dist/assets/{useDocumentDriveServer.lEoTUzm6.js.map → useDocumentDriveServer.CaPOXIv7.js.map} +1 -1
- package/dist/assets/{useFeatureFlags.BsPskXWj.js → useFeatureFlags.BBeQJvdK.js} +2 -2
- package/dist/assets/{useFeatureFlags.BsPskXWj.js.map → useFeatureFlags.BBeQJvdK.js.map} +1 -1
- package/dist/assets/{user.D7WnwHkb.js → user.Car3Tptl.js} +3 -3
- package/dist/assets/{user.D7WnwHkb.js.map → user.Car3Tptl.js.map} +1 -1
- package/dist/index.html +1 -1
- package/dist/vite-envs.sh +1 -1
- package/nginx.conf +22 -0
- package/package.json +9 -9
- package/dist/assets/nodefs.1xeRYPEq.js +0 -2
- package/dist/assets/useConnectConfig.BLleDyCr.js +0 -2
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./app.
|
|
2
|
-
import{createRoot as a}from"react-dom/client";import{_ as r}from"./index.BK4XEUxp.js";import{jsxs as i,jsx as o}from"react/jsx-runtime";import{StrictMode as m,Suspense as n,lazy as t}from"react";import{A as d}from"./app-skeleton.js";import"react-dom";import"./browser.BkwNmV2Z.js";const l=t(()=>r(()=>import("./app.
|
|
3
|
-
//# sourceMappingURL=index.
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./app.4bfdL5-A.js","./useFeatureFlags.BBeQJvdK.js","./index.BK4XEUxp.js","./user.Car3Tptl.js","./connect.config.D7bT63h0.js","./browser.BkwNmV2Z.js","./useAcceptedCookies.CeHL3XNa.js","./useConnectConfig.CCGNCy5A.js","./index.CAUjMUXb.js","./registerServiceWorker.qRwAeUvA.js","./cookie-banner.DsMETIAk.js","./i18next.CqOP20KE.js","./useTranslation.BpVv6XIW.js","./modal.Cyno9xQv.js","./Trans.IZKLK9KL.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{createRoot as a}from"react-dom/client";import{_ as r}from"./index.BK4XEUxp.js";import{jsxs as i,jsx as o}from"react/jsx-runtime";import{StrictMode as m,Suspense as n,lazy as t}from"react";import{A as d}from"./app-skeleton.js";import"react-dom";import"./browser.BkwNmV2Z.js";const l=t(()=>r(()=>import("./app.4bfdL5-A.js").then(e=>e.j),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]),import.meta.url)),_=t(()=>r(()=>import("./cookie-banner.DsMETIAk.js"),__vite__mapDeps([10,6,4,2,5,11,12,13,14]),import.meta.url).then(e=>({default:e.CookieBanner}))),c=t(()=>r(()=>import("./modal.Cyno9xQv.js"),__vite__mapDeps([13,2]),import.meta.url).then(e=>({default:e.ModalManager}))),s=i(m,{children:[o(n,{fallback:o(d,{}),name:"AppLoader",children:o(l,{})}),o(n,{name:"CookieBanner",children:o(c,{children:o(_,{})})})]});function u(e){a(e).render(s)}const p=document.getElementById("app");if(!p)throw new Error("#app element not found!");u(p);
|
|
3
|
+
//# sourceMappingURL=index.lN7bgASa.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"mappings":";yRAIA,MAAMA,EAAMC,EAAK,IAAMC,EAAA,WAAO,mBAAU,OAAAC,KAAA,0DAAC,EACnCC,EAAeH,EAAK,UACtB,OAAO,6BAAoB,EAAE,oEAAW,CAAE,QAASI,EAAE,cAAe,CACxE,EAEMC,EAAeL,EAAK,UACtB,OAAO,qBAAkB,EAAE,kDAAW,CAAE,QAASI,EAAE,cAAe,CACtE,EAEaE,IACRC,EACG,WAACC,EAAAC,EAAA,CAAS,SAAWD,EAAAE,EAAA,CAAY,GAAI,KAAK,YACtC,SAACF,EAAAT,EAAA,EAAI,CACT,GACAS,EAACC,GAAS,KAAK,eACX,WAACJ,EACG,UAAAG,EAACL,EAAa,GAClB,EACJ,IACJ,ECpBJ,SAASQ,EAAUC,EAAsB,CAC1BC,EAAAD,CAAO,EAAE,OAAON,CAAS,CACxC,CAEA,MAAMQ,EAAa,SAAS,eAAe,KAAK,EAChD,GAAI,CAACA,EACK,UAAI,MAAM,yBAAyB,EAG7CH,EAAUG,CAAU","names":["App","lazy","__vitePreload","n","CookieBanner","m","ModalManager","AppLoader","StrictMode","jsx","Suspense","AppSkeleton","renderApp","element","createRoot","AppElement"],"ignoreList":[],"sources":["../../src/components/app-loader.tsx","../../src/index.ts"],"sourcesContent":["import { lazy, StrictMode, Suspense } from 'react';\nimport '../i18n';\n\nimport { AppSkeleton } from './app-skeleton.js';\nconst App = lazy(() => import('./app.js'));\nconst CookieBanner = lazy(() =>\n import('./cookie-banner.js').then(m => ({ default: m.CookieBanner })),\n);\n\nconst ModalManager = lazy(() =>\n import('./modal/modal.js').then(m => ({ default: m.ModalManager })),\n);\n\nexport const AppLoader = (\n <StrictMode>\n <Suspense fallback={<AppSkeleton />} name=\"AppLoader\">\n <App />\n </Suspense>\n <Suspense name=\"CookieBanner\">\n <ModalManager>\n <CookieBanner />\n </ModalManager>\n </Suspense>\n </StrictMode>\n);\n","import { createRoot } from 'react-dom/client';\nimport { AppLoader } from './components/app-loader.js';\n\nfunction renderApp(element: HTMLElement) {\n createRoot(element).render(AppLoader);\n}\n\nconst AppElement = document.getElementById('app');\nif (!AppElement) {\n throw new Error('#app element not found!');\n}\n\nrenderApp(AppElement);\n"],"file":"assets/index.
|
|
1
|
+
{"version":3,"mappings":";yRAIA,MAAMA,EAAMC,EAAK,IAAMC,EAAA,WAAO,mBAAU,OAAAC,KAAA,0DAAC,EACnCC,EAAeH,EAAK,UACtB,OAAO,6BAAoB,EAAE,oEAAW,CAAE,QAASI,EAAE,cAAe,CACxE,EAEMC,EAAeL,EAAK,UACtB,OAAO,qBAAkB,EAAE,kDAAW,CAAE,QAASI,EAAE,cAAe,CACtE,EAEaE,IACRC,EACG,WAACC,EAAAC,EAAA,CAAS,SAAWD,EAAAE,EAAA,CAAY,GAAI,KAAK,YACtC,SAACF,EAAAT,EAAA,EAAI,CACT,GACAS,EAACC,GAAS,KAAK,eACX,WAACJ,EACG,UAAAG,EAACL,EAAa,GAClB,EACJ,IACJ,ECpBJ,SAASQ,EAAUC,EAAsB,CAC1BC,EAAAD,CAAO,EAAE,OAAON,CAAS,CACxC,CAEA,MAAMQ,EAAa,SAAS,eAAe,KAAK,EAChD,GAAI,CAACA,EACK,UAAI,MAAM,yBAAyB,EAG7CH,EAAUG,CAAU","names":["App","lazy","__vitePreload","n","CookieBanner","m","ModalManager","AppLoader","StrictMode","jsx","Suspense","AppSkeleton","renderApp","element","createRoot","AppElement"],"ignoreList":[],"sources":["../../src/components/app-loader.tsx","../../src/index.ts"],"sourcesContent":["import { lazy, StrictMode, Suspense } from 'react';\nimport '../i18n';\n\nimport { AppSkeleton } from './app-skeleton.js';\nconst App = lazy(() => import('./app.js'));\nconst CookieBanner = lazy(() =>\n import('./cookie-banner.js').then(m => ({ default: m.CookieBanner })),\n);\n\nconst ModalManager = lazy(() =>\n import('./modal/modal.js').then(m => ({ default: m.ModalManager })),\n);\n\nexport const AppLoader = (\n <StrictMode>\n <Suspense fallback={<AppSkeleton />} name=\"AppLoader\">\n <App />\n </Suspense>\n <Suspense name=\"CookieBanner\">\n <ModalManager>\n <CookieBanner />\n </ModalManager>\n </Suspense>\n </StrictMode>\n);\n","import { createRoot } from 'react-dom/client';\nimport { AppLoader } from './components/app-loader.js';\n\nfunction renderApp(element: HTMLElement) {\n createRoot(element).render(AppLoader);\n}\n\nconst AppElement = document.getElementById('app');\nif (!AppElement) {\n throw new Error('#app element not found!');\n}\n\nrenderApp(AppElement);\n"],"file":"assets/index.lN7bgASa.js"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var m=Object.defineProperty;var y=(s,t,e)=>t in s?m(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e;var d=(s,t,e)=>y(s,typeof t!="symbol"?t+"":t,e);import{A as g,D as $}from"./app.
|
|
2
|
-
//# sourceMappingURL=index.
|
|
1
|
+
var m=Object.defineProperty;var y=(s,t,e)=>t in s?m(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e;var d=(s,t,e)=>y(s,typeof t!="symbol"?t+"":t,e);import{A as g,D as $}from"./app.4bfdL5-A.js";import{e as S,m as w}from"./index.BK4XEUxp.js";import"react/jsx-runtime";import"./useFeatureFlags.BBeQJvdK.js";import"react";import"./user.Car3Tptl.js";import"./connect.config.D7bT63h0.js";import"./browser.BkwNmV2Z.js";import"./useAcceptedCookies.CeHL3XNa.js";import"./useConnectConfig.CCGNCy5A.js";import"react-dom";import"./index.CAUjMUXb.js";import"./registerServiceWorker.qRwAeUvA.js";function A(s,t){const e=[],i=h(s,t,"state.global","global");e.push(...i);const o=e.filter(l=>l.type==="add").length,a=e.filter(l=>l.type==="remove").length,r={global:e.filter(l=>l.scope==="global")};return{totalChanges:e.length,additions:o,removals:a,changesByScope:r,changes:e}}function h(s,t,e,i){const o=[];if(Array.isArray(s)&&Array.isArray(t)){let n=0;for(;n<s.length;n++){const c=s[n];if(!t[n])o.push(...h(c,typeof c=="string"?"":null,`${e}[${n}]`,i));else{const u=h(c,t[n],`${e}[${n}]`,i);o.push(...u)}}for(;n<t.length;n++){const c=t[n];if(!s[n])o.push(...h(typeof c=="string"?"":null,c,`${e}[${n}]`,i));else{const u=h(s[n],c,`${e}[${n}]`,i);o.push(...u)}}return o}if(typeof s!="object"||typeof t!="object"||s===null||t===null){if(s!==t){if(typeof s=="string"&&typeof t=="string")return V(s,t,e,i);o.push({type:"remove",path:e,oldValue:s,scope:i}),o.push({type:"add",path:e,newValue:t,scope:i})}return o}const a=s,r=t,l=Object.keys(a),f=Object.keys(r);for(const n of l)n in r||o.push({type:"remove",path:`${e}.${n}`,oldValue:a[n],scope:i});for(const n of f)if(!(n in a))o.push({type:"add",path:`${e}.${n}`,newValue:r[n],scope:i});else if(a[n]!==r[n]){const c=h(a[n],r[n],`${e}.${n}`,i);o.push(...c)}return o}function V(s,t,e,i){const o=[],a=Math.max(s.length,t.length);for(let r=0;r<a;r++)r>=s.length?o.push({type:"add",path:`${e}[${r}]`,newValue:t[r],scope:i}):r>=t.length?o.push({type:"remove",path:`${e}[${r}]`,oldValue:s[r],scope:i}):s[r]!==t[r]&&(o.push({type:"remove",path:`${e}[${r}]`,oldValue:s[r],scope:i}),o.push({type:"add",path:`${e}[${r}]`,newValue:t[r],scope:i}));return o}class v{constructor(t,e=S(["processor","diff-analytics"])){d(this,"analyticsStore");d(this,"logger");this.analyticsStore=t,this.logger=e}async onStrands(t){if(t.length!==0)for(const e of t){if(e.operations.length===0)continue;const i=e.operations[0],o=g.fromString(`ph/${e.documentId}/${e.branch}/${e.scope}`);i.index===0&&await this.clearSource(o);const a=50;for(let r=0;r<e.operations.length;r+=a){const l=e.operations.slice(r,r+a),f=[];for(const n of l){const u=(await w(async()=>A(n.previousState,n.state))).changes.map(p=>this.generateInput(e.documentId,e.branch,e.scope,n.index,p.type,1,o,n.timestamp,p.path));for(f.push(...u);f.length>=a;){const p=f.splice(0,a);await this.analyticsStore.addSeriesValues(p)}}f.length>0&&await this.analyticsStore.addSeriesValues(f)}}}async onDisconnect(){}async clearSource(t){try{await this.analyticsStore.clearSeriesBySource(t,!0)}catch(e){this.logger.error("Failed to clear source",e)}}generateInput(t,e,i,o,a,r,l,f,n){const c={},u=n.split("[")[0].replaceAll(".","/");return c.changes=g.fromString(`changes/${a}`),c.document=g.fromString(`document/${t}/${e}/${i}/${o}`),c.path=g.fromString(`path/${u}`),{dimensions:c,metric:"Count",start:$.fromISO(f),source:l,value:r}}}const H=s=>t=>[{processor:new v(s.analyticsStore),filter:{branch:["main"],documentId:["*"],scope:["*"],documentType:["*"]}}];export{H as processorFactory};
|
|
2
|
+
//# sourceMappingURL=index.yWKT0myF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.Ce-0ftmg.js","sources":["../../../../node_modules/.pnpm/@powerhousedao+diff-analyzer@0.0.0-dev.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@powerhousedao/diff-analyzer/dist/lib/document-diff.js","../../../../node_modules/.pnpm/@powerhousedao+diff-analyzer@0.0.0-dev.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@powerhousedao/diff-analyzer/dist/processors/diff-analytics/index.js","../../../../node_modules/.pnpm/@powerhousedao+diff-analyzer@0.0.0-dev.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@powerhousedao/diff-analyzer/dist/processors/index.js"],"sourcesContent":["/**\n * Calculates the difference between two document states\n */\nexport function diffDocumentStates(doc1, doc2) {\n const changes = [];\n // Compare global state\n const globalChanges = diffStateObjects(doc1, doc2, \"state.global\", \"global\");\n changes.push(...globalChanges);\n // Count changes by type\n const additions = changes.filter((c) => c.type === \"add\").length;\n const removals = changes.filter((c) => c.type === \"remove\").length;\n // Group changes by scope\n const changesByScope = {\n global: changes.filter((c) => c.scope === \"global\"),\n };\n return {\n totalChanges: changes.length,\n additions,\n removals,\n changesByScope,\n changes,\n };\n}\n/**\n * Recursively compares two state objects and returns a list of changes\n */\nfunction diffStateObjects(obj1, obj2, path, scope) {\n const changes = [];\n // Handle arrays\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n let index = 0;\n for (; index < obj1.length; index++) {\n const element = obj1[index];\n if (!obj2[index]) {\n changes.push(...diffStateObjects(element, typeof element === \"string\" ? \"\" : null, `${path}[${index}]`, scope));\n }\n else {\n const elementChanges = diffStateObjects(element, obj2[index], `${path}[${index}]`, scope);\n changes.push(...elementChanges);\n }\n }\n for (; index < obj2.length; index++) {\n const element = obj2[index];\n if (!obj1[index]) {\n changes.push(...diffStateObjects(typeof element === \"string\" ? \"\" : null, element, `${path}[${index}]`, scope));\n }\n else {\n const elementChanges = diffStateObjects(obj1[index], element, `${path}[${index}]`, scope);\n changes.push(...elementChanges);\n }\n }\n return changes;\n }\n // Handle primitive values\n if (typeof obj1 !== \"object\" ||\n typeof obj2 !== \"object\" ||\n obj1 === null ||\n obj2 === null) {\n if (obj1 !== obj2) {\n // Special handling for strings to diff character by character\n if (typeof obj1 === \"string\" && typeof obj2 === \"string\") {\n return diffStateStrings(obj1, obj2, path, scope);\n }\n else {\n // For non-string primitives, treat a change as a remove + add\n changes.push({\n type: \"remove\",\n path,\n oldValue: obj1,\n scope,\n });\n changes.push({\n type: \"add\",\n path,\n newValue: obj2,\n scope,\n });\n }\n }\n return changes;\n }\n // Handle objects\n const obj1Record = obj1;\n const obj2Record = obj2;\n const obj1Keys = Object.keys(obj1Record);\n const obj2Keys = Object.keys(obj2Record);\n // First, check for removed keys\n for (const key of obj1Keys) {\n if (!(key in obj2Record)) {\n // Key was removed\n changes.push({\n type: \"remove\",\n path: `${path}.${key}`,\n oldValue: obj1Record[key],\n scope,\n });\n }\n }\n // Then, check for added keys and modified values\n for (const key of obj2Keys) {\n if (!(key in obj1Record)) {\n // Key was added\n changes.push({\n type: \"add\",\n path: `${path}.${key}`,\n newValue: obj2Record[key],\n scope,\n });\n }\n else if (obj1Record[key] !== obj2Record[key]) {\n // For object changes, recursively diff the objects\n const nestedChanges = diffStateObjects(obj1Record[key], obj2Record[key], `${path}.${key}`, scope);\n changes.push(...nestedChanges);\n }\n }\n return changes;\n}\n/**\n * Compares two strings character by character and returns a list of changes\n */\nfunction diffStateStrings(str1, str2, path, scope) {\n const changes = [];\n const maxLen = Math.max(str1.length, str2.length);\n for (let i = 0; i < maxLen; i++) {\n if (i >= str1.length) {\n // Addition of new character\n changes.push({\n type: \"add\",\n path: `${path}[${i}]`,\n newValue: str2[i],\n scope,\n });\n }\n else if (i >= str2.length) {\n // Removal of character\n changes.push({\n type: \"remove\",\n path: `${path}[${i}]`,\n oldValue: str1[i],\n scope,\n });\n }\n else if (str1[i] !== str2[i]) {\n // Character changed\n changes.push({\n type: \"remove\",\n path: `${path}[${i}]`,\n oldValue: str1[i],\n scope,\n });\n changes.push({\n type: \"add\",\n path: `${path}[${i}]`,\n newValue: str2[i],\n scope,\n });\n }\n }\n return changes;\n}\n/**\n * Generates analytics data from a state diff summary\n */\nexport function generateStateAnalyticsData(diff) {\n return {\n totalChanges: diff.totalChanges,\n changesByType: {\n add: diff.additions,\n remove: diff.removals,\n },\n changesByScope: {\n global: diff.changesByScope.global.length,\n },\n changePaths: diff.changes.map((c) => c.path),\n };\n}\n","import { AnalyticsPath, } from \"@powerhousedao/analytics-engine-core\";\nimport { DateTime } from \"luxon\";\nimport { diffDocumentStates } from \"../../lib/document-diff.js\";\nimport { childLogger } from \"document-drive\";\nimport { runAsapAsync } from \"document-drive/utils/misc\";\nexport class DiffAnalyticsProcessor {\n analyticsStore;\n logger;\n constructor(analyticsStore, logger = childLogger([\"processor\", \"diff-analytics\"])) {\n this.analyticsStore = analyticsStore;\n this.logger = logger;\n //\n }\n async onStrands(strands) {\n if (strands.length === 0) {\n return;\n }\n for (const strand of strands) {\n if (strand.operations.length === 0) {\n continue;\n }\n const firstOp = strand.operations[0];\n const source = AnalyticsPath.fromString(`ph/${strand.documentId}/${strand.branch}/${strand.scope}`);\n if (firstOp.index === 0) {\n await this.clearSource(source);\n }\n const CHUNK_SIZE = 50;\n for (let i = 0; i < strand.operations.length; i += CHUNK_SIZE) {\n const chunk = strand.operations.slice(i, i + CHUNK_SIZE);\n const buffer = [];\n for (const operation of chunk) {\n const diff = await runAsapAsync(async () => diffDocumentStates(operation.previousState, operation.state));\n const inputs = diff.changes.map((change) => this.generateInput(strand.documentId, strand.branch, strand.scope, operation.index, change.type, 1, source, operation.timestamp, change.path));\n buffer.push(...inputs);\n while (buffer.length >= CHUNK_SIZE) {\n const batch = buffer.splice(0, CHUNK_SIZE);\n await this.analyticsStore.addSeriesValues(batch);\n }\n }\n // Flush any remaining inputs\n if (buffer.length > 0) {\n await this.analyticsStore.addSeriesValues(buffer);\n }\n }\n }\n }\n async onDisconnect() { }\n async clearSource(source) {\n try {\n await this.analyticsStore.clearSeriesBySource(source, true);\n }\n catch (e) {\n this.logger.error(\"Failed to clear source\", e);\n }\n }\n generateInput(documentId, branch, scope, revision, type, value, source, timestamp, path) {\n const dimensions = {};\n const changePath = path.split(\"[\")[0].replaceAll(\".\", \"/\");\n dimensions.changes = AnalyticsPath.fromString(`changes/${type}`);\n dimensions.document = AnalyticsPath.fromString(`document/${documentId}/${branch}/${scope}/${revision}`);\n dimensions.path = AnalyticsPath.fromString(`path/${changePath}`);\n return {\n dimensions,\n metric: \"Count\",\n start: DateTime.fromISO(timestamp),\n source,\n value,\n };\n }\n}\n","/**\n * This is a scaffold file meant for customization.\n * Delete the file and run the code generator again to have it reset\n */\nimport { DiffAnalyticsProcessor } from \"./diff-analytics/index.js\";\nexport const processorFactory = (module) => (driveId) => {\n return [\n {\n processor: new DiffAnalyticsProcessor(module.analyticsStore),\n filter: {\n branch: [\"main\"],\n documentId: [\"*\"],\n scope: [\"*\"],\n documentType: [\"*\"],\n },\n },\n ];\n};\n"],"names":["diffDocumentStates","doc1","doc2","changes","globalChanges","diffStateObjects","additions","c","removals","changesByScope","obj1","obj2","path","scope","index","element","elementChanges","diffStateStrings","obj1Record","obj2Record","obj1Keys","obj2Keys","key","nestedChanges","str1","str2","maxLen","i","DiffAnalyticsProcessor","analyticsStore","logger","childLogger","__publicField","strands","strand","firstOp","source","AnalyticsPath","CHUNK_SIZE","chunk","buffer","operation","inputs","runAsapAsync","change","batch","documentId","branch","revision","type","value","timestamp","dimensions","changePath","DateTime","processorFactory","module","driveId"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
|
1
|
+
{"version":3,"file":"index.yWKT0myF.js","sources":["../../../../node_modules/.pnpm/@powerhousedao+diff-analyzer@0.0.0-dev.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@powerhousedao/diff-analyzer/dist/lib/document-diff.js","../../../../node_modules/.pnpm/@powerhousedao+diff-analyzer@0.0.0-dev.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@powerhousedao/diff-analyzer/dist/processors/diff-analytics/index.js","../../../../node_modules/.pnpm/@powerhousedao+diff-analyzer@0.0.0-dev.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@powerhousedao/diff-analyzer/dist/processors/index.js"],"sourcesContent":["/**\n * Calculates the difference between two document states\n */\nexport function diffDocumentStates(doc1, doc2) {\n const changes = [];\n // Compare global state\n const globalChanges = diffStateObjects(doc1, doc2, \"state.global\", \"global\");\n changes.push(...globalChanges);\n // Count changes by type\n const additions = changes.filter((c) => c.type === \"add\").length;\n const removals = changes.filter((c) => c.type === \"remove\").length;\n // Group changes by scope\n const changesByScope = {\n global: changes.filter((c) => c.scope === \"global\"),\n };\n return {\n totalChanges: changes.length,\n additions,\n removals,\n changesByScope,\n changes,\n };\n}\n/**\n * Recursively compares two state objects and returns a list of changes\n */\nfunction diffStateObjects(obj1, obj2, path, scope) {\n const changes = [];\n // Handle arrays\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n let index = 0;\n for (; index < obj1.length; index++) {\n const element = obj1[index];\n if (!obj2[index]) {\n changes.push(...diffStateObjects(element, typeof element === \"string\" ? \"\" : null, `${path}[${index}]`, scope));\n }\n else {\n const elementChanges = diffStateObjects(element, obj2[index], `${path}[${index}]`, scope);\n changes.push(...elementChanges);\n }\n }\n for (; index < obj2.length; index++) {\n const element = obj2[index];\n if (!obj1[index]) {\n changes.push(...diffStateObjects(typeof element === \"string\" ? \"\" : null, element, `${path}[${index}]`, scope));\n }\n else {\n const elementChanges = diffStateObjects(obj1[index], element, `${path}[${index}]`, scope);\n changes.push(...elementChanges);\n }\n }\n return changes;\n }\n // Handle primitive values\n if (typeof obj1 !== \"object\" ||\n typeof obj2 !== \"object\" ||\n obj1 === null ||\n obj2 === null) {\n if (obj1 !== obj2) {\n // Special handling for strings to diff character by character\n if (typeof obj1 === \"string\" && typeof obj2 === \"string\") {\n return diffStateStrings(obj1, obj2, path, scope);\n }\n else {\n // For non-string primitives, treat a change as a remove + add\n changes.push({\n type: \"remove\",\n path,\n oldValue: obj1,\n scope,\n });\n changes.push({\n type: \"add\",\n path,\n newValue: obj2,\n scope,\n });\n }\n }\n return changes;\n }\n // Handle objects\n const obj1Record = obj1;\n const obj2Record = obj2;\n const obj1Keys = Object.keys(obj1Record);\n const obj2Keys = Object.keys(obj2Record);\n // First, check for removed keys\n for (const key of obj1Keys) {\n if (!(key in obj2Record)) {\n // Key was removed\n changes.push({\n type: \"remove\",\n path: `${path}.${key}`,\n oldValue: obj1Record[key],\n scope,\n });\n }\n }\n // Then, check for added keys and modified values\n for (const key of obj2Keys) {\n if (!(key in obj1Record)) {\n // Key was added\n changes.push({\n type: \"add\",\n path: `${path}.${key}`,\n newValue: obj2Record[key],\n scope,\n });\n }\n else if (obj1Record[key] !== obj2Record[key]) {\n // For object changes, recursively diff the objects\n const nestedChanges = diffStateObjects(obj1Record[key], obj2Record[key], `${path}.${key}`, scope);\n changes.push(...nestedChanges);\n }\n }\n return changes;\n}\n/**\n * Compares two strings character by character and returns a list of changes\n */\nfunction diffStateStrings(str1, str2, path, scope) {\n const changes = [];\n const maxLen = Math.max(str1.length, str2.length);\n for (let i = 0; i < maxLen; i++) {\n if (i >= str1.length) {\n // Addition of new character\n changes.push({\n type: \"add\",\n path: `${path}[${i}]`,\n newValue: str2[i],\n scope,\n });\n }\n else if (i >= str2.length) {\n // Removal of character\n changes.push({\n type: \"remove\",\n path: `${path}[${i}]`,\n oldValue: str1[i],\n scope,\n });\n }\n else if (str1[i] !== str2[i]) {\n // Character changed\n changes.push({\n type: \"remove\",\n path: `${path}[${i}]`,\n oldValue: str1[i],\n scope,\n });\n changes.push({\n type: \"add\",\n path: `${path}[${i}]`,\n newValue: str2[i],\n scope,\n });\n }\n }\n return changes;\n}\n/**\n * Generates analytics data from a state diff summary\n */\nexport function generateStateAnalyticsData(diff) {\n return {\n totalChanges: diff.totalChanges,\n changesByType: {\n add: diff.additions,\n remove: diff.removals,\n },\n changesByScope: {\n global: diff.changesByScope.global.length,\n },\n changePaths: diff.changes.map((c) => c.path),\n };\n}\n","import { AnalyticsPath, } from \"@powerhousedao/analytics-engine-core\";\nimport { DateTime } from \"luxon\";\nimport { diffDocumentStates } from \"../../lib/document-diff.js\";\nimport { childLogger } from \"document-drive\";\nimport { runAsapAsync } from \"document-drive/utils/misc\";\nexport class DiffAnalyticsProcessor {\n analyticsStore;\n logger;\n constructor(analyticsStore, logger = childLogger([\"processor\", \"diff-analytics\"])) {\n this.analyticsStore = analyticsStore;\n this.logger = logger;\n //\n }\n async onStrands(strands) {\n if (strands.length === 0) {\n return;\n }\n for (const strand of strands) {\n if (strand.operations.length === 0) {\n continue;\n }\n const firstOp = strand.operations[0];\n const source = AnalyticsPath.fromString(`ph/${strand.documentId}/${strand.branch}/${strand.scope}`);\n if (firstOp.index === 0) {\n await this.clearSource(source);\n }\n const CHUNK_SIZE = 50;\n for (let i = 0; i < strand.operations.length; i += CHUNK_SIZE) {\n const chunk = strand.operations.slice(i, i + CHUNK_SIZE);\n const buffer = [];\n for (const operation of chunk) {\n const diff = await runAsapAsync(async () => diffDocumentStates(operation.previousState, operation.state));\n const inputs = diff.changes.map((change) => this.generateInput(strand.documentId, strand.branch, strand.scope, operation.index, change.type, 1, source, operation.timestamp, change.path));\n buffer.push(...inputs);\n while (buffer.length >= CHUNK_SIZE) {\n const batch = buffer.splice(0, CHUNK_SIZE);\n await this.analyticsStore.addSeriesValues(batch);\n }\n }\n // Flush any remaining inputs\n if (buffer.length > 0) {\n await this.analyticsStore.addSeriesValues(buffer);\n }\n }\n }\n }\n async onDisconnect() { }\n async clearSource(source) {\n try {\n await this.analyticsStore.clearSeriesBySource(source, true);\n }\n catch (e) {\n this.logger.error(\"Failed to clear source\", e);\n }\n }\n generateInput(documentId, branch, scope, revision, type, value, source, timestamp, path) {\n const dimensions = {};\n const changePath = path.split(\"[\")[0].replaceAll(\".\", \"/\");\n dimensions.changes = AnalyticsPath.fromString(`changes/${type}`);\n dimensions.document = AnalyticsPath.fromString(`document/${documentId}/${branch}/${scope}/${revision}`);\n dimensions.path = AnalyticsPath.fromString(`path/${changePath}`);\n return {\n dimensions,\n metric: \"Count\",\n start: DateTime.fromISO(timestamp),\n source,\n value,\n };\n }\n}\n","/**\n * This is a scaffold file meant for customization.\n * Delete the file and run the code generator again to have it reset\n */\nimport { DiffAnalyticsProcessor } from \"./diff-analytics/index.js\";\nexport const processorFactory = (module) => (driveId) => {\n return [\n {\n processor: new DiffAnalyticsProcessor(module.analyticsStore),\n filter: {\n branch: [\"main\"],\n documentId: [\"*\"],\n scope: [\"*\"],\n documentType: [\"*\"],\n },\n },\n ];\n};\n"],"names":["diffDocumentStates","doc1","doc2","changes","globalChanges","diffStateObjects","additions","c","removals","changesByScope","obj1","obj2","path","scope","index","element","elementChanges","diffStateStrings","obj1Record","obj2Record","obj1Keys","obj2Keys","key","nestedChanges","str1","str2","maxLen","i","DiffAnalyticsProcessor","analyticsStore","logger","childLogger","__publicField","strands","strand","firstOp","source","AnalyticsPath","CHUNK_SIZE","chunk","buffer","operation","inputs","runAsapAsync","change","batch","documentId","branch","revision","type","value","timestamp","dimensions","changePath","DateTime","processorFactory","module","driveId"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index.
|
|
2
|
-
import{_ as n}from"./index.BK4XEUxp.js";import"react";import"react/jsx-runtime";import"react-dom";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))i(e);new MutationObserver(e=>{for(const r of e)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function s(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?r.credentials="include":e.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(e){if(e.ep)return;e.ep=!0;const r=s(e);fetch(e.href,r)}})();n(()=>import("./index.
|
|
3
|
-
//# sourceMappingURL=main.
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index.lN7bgASa.js","./index.BK4XEUxp.js","./app-skeleton.js","./browser.BkwNmV2Z.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{_ as n}from"./index.BK4XEUxp.js";import"react";import"react/jsx-runtime";import"react-dom";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))i(e);new MutationObserver(e=>{for(const r of e)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function s(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?r.credentials="include":e.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(e){if(e.ep)return;e.ep=!0;const r=s(e);fetch(e.href,r)}})();n(()=>import("./index.lN7bgASa.js"),__vite__mapDeps([0,1,2,3]),import.meta.url);
|
|
3
|
+
//# sourceMappingURL=main.16UUMUFw.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"mappings":";8yBA8BA,OAAO,qBAAY","names":[],"ignoreList":[],"sources":["../../src/renderer.ts"],"sourcesContent":["/**\n * This file will automatically be loaded by vite and run in the \"renderer\" context.\n * To learn more about the differences between the \"main\" and the \"renderer\" context in\n * Electron, visit:\n *\n * https://electronjs.org/docs/tutorial/application-architecture#main-and-renderer-processes\n *\n * By default, Node.js integration in this file is disabled. When enabling Node.js integration\n * in a renderer process, please be aware of potential security implications. You can read\n * more about security risks here:\n *\n * https://electronjs.org/docs/tutorial/security\n *\n * To enable Node.js integration in this file, open up `main.js` and enable the `nodeIntegration`\n * flag:\n *\n * ```\n * // Create the browser window.\n * mainWindow = new BrowserWindow({\n * width: 800,\n * height: 600,\n * webPreferences: {\n * nodeIntegration: true\n * }\n * });\n * ```\n */\n\n// splits app code into separate chunk to avoid circular dependencies\n// eslint-disable-next-line @typescript-eslint/no-floating-promises\nimport('./index.js');\n"],"file":"assets/main.
|
|
1
|
+
{"version":3,"mappings":";8yBA8BA,OAAO,qBAAY","names":[],"ignoreList":[],"sources":["../../src/renderer.ts"],"sourcesContent":["/**\n * This file will automatically be loaded by vite and run in the \"renderer\" context.\n * To learn more about the differences between the \"main\" and the \"renderer\" context in\n * Electron, visit:\n *\n * https://electronjs.org/docs/tutorial/application-architecture#main-and-renderer-processes\n *\n * By default, Node.js integration in this file is disabled. When enabling Node.js integration\n * in a renderer process, please be aware of potential security implications. You can read\n * more about security risks here:\n *\n * https://electronjs.org/docs/tutorial/security\n *\n * To enable Node.js integration in this file, open up `main.js` and enable the `nodeIntegration`\n * flag:\n *\n * ```\n * // Create the browser window.\n * mainWindow = new BrowserWindow({\n * width: 800,\n * height: 600,\n * webPreferences: {\n * nodeIntegration: true\n * }\n * });\n * ```\n */\n\n// splits app code into separate chunk to avoid circular dependencies\n// eslint-disable-next-line @typescript-eslint/no-floating-promises\nimport('./index.js');\n"],"file":"assets/main.16UUMUFw.js"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DeleteItemModal.BKHu9UgK.js","./useTranslation.BpVv6XIW.js","./index.BK4XEUxp.js","./UpgradeDriveModal.CP_tlNtB.js","./CreateDocumentModal.
|
|
2
|
-
import{jsxs as P,jsx as m}from"react/jsx-runtime";import h,{lazy as t,useContext as A,useState as a,useCallback as n,useMemo as R,Suspense as I}from"react";import{_ as o}from"./index.BK4XEUxp.js";import"react-dom";const L={deleteItem:t(()=>o(()=>import("./DeleteItemModal.BKHu9UgK.js"),__vite__mapDeps([0,1,2]),import.meta.url).then(e=>({default:e.DeleteItemModal}))),upgradeDrive:t(()=>o(()=>import("./UpgradeDriveModal.CP_tlNtB.js"),__vite__mapDeps([3,1,2]),import.meta.url).then(e=>({default:e.UpgradeDriveModal}))),createDocument:t(()=>o(()=>import("./CreateDocumentModal.
|
|
3
|
-
//# sourceMappingURL=modal.
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DeleteItemModal.BKHu9UgK.js","./useTranslation.BpVv6XIW.js","./index.BK4XEUxp.js","./UpgradeDriveModal.CP_tlNtB.js","./CreateDocumentModal.CKuBXY23.js","./useDocumentDriveServer.CaPOXIv7.js","./user.Car3Tptl.js","./useFeatureFlags.BBeQJvdK.js","./connect.config.D7bT63h0.js","./browser.BkwNmV2Z.js","./slug.C6xW_7Wm.js","./AddDriveModal.BGObz3Uw.js","./AddLocalDriveModal.KuOendbs.js","./AddRemoteDriveModal.g8ARXRXQ.js","./DriveSettingsModal.DlqMUiTB.js","./SettingsModal.TP9H7uK8.js","./i18next.CqOP20KE.js","./useConnectConfig.CCGNCy5A.js","./index.CAUjMUXb.js","./useDefaultDocumentModelEditor.40aSsWDg.js","./ConfirmationModal.CcwujTIk.js","./DeleteDriveModal.CAgYk34c.js","./DebugSettingsModal.Boa5SBs_.js","./registerServiceWorker.qRwAeUvA.js","./DisclaimerModal.DmM4Nw0Y.js","./CookiesPolicyModal.CCCMKbip.js","./Trans.IZKLK9KL.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{jsxs as P,jsx as m}from"react/jsx-runtime";import h,{lazy as t,useContext as A,useState as a,useCallback as n,useMemo as R,Suspense as I}from"react";import{_ as o}from"./index.BK4XEUxp.js";import"react-dom";const L={deleteItem:t(()=>o(()=>import("./DeleteItemModal.BKHu9UgK.js"),__vite__mapDeps([0,1,2]),import.meta.url).then(e=>({default:e.DeleteItemModal}))),upgradeDrive:t(()=>o(()=>import("./UpgradeDriveModal.CP_tlNtB.js"),__vite__mapDeps([3,1,2]),import.meta.url).then(e=>({default:e.UpgradeDriveModal}))),createDocument:t(()=>o(()=>import("./CreateDocumentModal.CKuBXY23.js"),__vite__mapDeps([4,2,5,6,7,8,9,10]),import.meta.url).then(e=>({default:e.CreateDocumentModal}))),addDriveModal:t(()=>o(()=>import("./AddDriveModal.BGObz3Uw.js"),__vite__mapDeps([11,2,6]),import.meta.url).then(e=>({default:e.AddDriveModal}))),addLocalDrive:t(()=>o(()=>import("./AddLocalDriveModal.KuOendbs.js"),__vite__mapDeps([12,2]),import.meta.url).then(e=>({default:e.AddLocalDriveModal}))),addRemoteDrive:t(()=>o(()=>import("./AddRemoteDriveModal.g8ARXRXQ.js"),__vite__mapDeps([13,2]),import.meta.url).then(e=>({default:e.AddRemoteDriveModal}))),driveSettings:t(()=>o(()=>import("./DriveSettingsModal.DlqMUiTB.js"),__vite__mapDeps([14,2]),import.meta.url).then(e=>({default:e.DriveSettingsModal}))),settingsModal:t(()=>o(()=>import("./SettingsModal.TP9H7uK8.js"),__vite__mapDeps([15,16,8,2,9,17,1,18,5,6,7,19]),import.meta.url).then(e=>({default:e.SettingsModal}))),confirmationModal:t(()=>o(()=>import("./ConfirmationModal.CcwujTIk.js"),__vite__mapDeps([20,2]),import.meta.url).then(e=>({default:e.ConfirmationModal}))),deleteDriveModal:t(()=>o(()=>import("./DeleteDriveModal.CAgYk34c.js"),__vite__mapDeps([21,1,2]),import.meta.url).then(e=>({default:e.DeleteDriveModal}))),debugSettingsModal:t(()=>o(()=>import("./DebugSettingsModal.Boa5SBs_.js"),__vite__mapDeps([22,17,8,2,9,23,5,6,7]),import.meta.url).then(e=>({default:e.DebugSettingsModal}))),disclaimerModal:t(()=>o(()=>import("./DisclaimerModal.DmM4Nw0Y.js"),__vite__mapDeps([24,1,2]),import.meta.url).then(e=>({default:e.DisclaimerModal}))),cookiesPolicy:t(()=>o(()=>import("./CookiesPolicyModal.CCCMKbip.js"),__vite__mapDeps([25,1,26,2]),import.meta.url).then(e=>({default:e.CookiesPolicyModal})))},u=h.createContext({showModal:()=>{},closeModal:()=>{}}),C=()=>A(u),x=e=>{const{children:s}=e,[p,c]=a(),[l,M]=a(),[D,d]=a(!1),i=n((E,f)=>{d(!0),c(f),M(E)},[]),r=n(()=>{d(!1)},[]),_=l?L[l]:null,v=R(()=>({showModal:i,closeModal:r}),[r,i]);return P(u.Provider,{value:v,children:[s,m(I,{name:"ModalManager",children:_&&m(_,{...p,open:D,onClose:r})})]})};export{u as ModalContext,x as ModalManager,C as useModal};
|
|
3
|
+
//# sourceMappingURL=modal.Cyno9xQv.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"mappings":";sNAEO,MAAMA,EAAS,CAClB,WAAYC,EAAK,IACbC,EAAA,WAAO,+BAAsB,4CAAE,KAAWC,IAAA,CACtC,QAASA,EAAE,iBACb,CACN,EACA,aAAcF,EAAK,IACfC,EAAA,WAAO,iCAAwB,4CAAE,KAAWC,IAAA,CACxC,QAASA,EAAE,mBACb,CACN,EACA,eAAgBF,EAAK,IACjBC,EAAA,WAAO,mCAA0B,uDAAE,KAAWC,IAAA,CAC1C,QAASA,EAAE,qBACb,CACN,EACA,cAAeF,EAAK,IAChBC,EAAA,WAAO,6BAAoB,6CAAE,KAAWC,IAAA,CACpC,QAASA,EAAE,eACb,CACN,EACA,cAAeF,EAAK,IAChBC,EAAA,WAAO,kCAAyB,2CAAE,KAAWC,IAAA,CACzC,QAASA,EAAE,oBACb,CACN,EACA,eAAgBF,EAAK,IACjBC,EAAA,WAAO,mCAA0B,2CAAE,KAAWC,IAAA,CAC1C,QAASA,EAAE,qBACb,CACN,EACA,cAAeF,EAAK,IAChBC,EAAA,WAAO,kCAAyB,2CAAE,KAAWC,IAAA,CACzC,QAASA,EAAE,oBACb,CACN,EACA,cAAeF,EAAK,IAChBC,EAAA,WAAO,6BAAoB,mEAAE,KAAWC,IAAA,CACpC,QAASA,EAAE,eACb,CACN,EACA,kBAAmBF,EAAK,IACpBC,EAAA,WAAO,iCAAwB,2CAAE,KAAWC,IAAA,CACxC,QAASA,EAAE,mBACb,CACN,EACA,iBAAkBF,EAAK,IACnBC,EAAA,WAAO,gCAAuB,6CAAE,KAAWC,IAAA,CACvC,QAASA,EAAE,kBACb,CACN,EACA,mBAAoBF,EAAK,IACrBC,EAAA,WAAO,kCAAyB,2DAAE,KAAWC,IAAA,CACzC,QAASA,EAAE,oBACb,CACN,EACA,gBAAiBF,EAAK,IAClBC,EAAA,WAAO,+BAAsB,6CAAE,KAAWC,IAAA,CACtC,QAASA,EAAE,iBACb,CACN,EACA,cAAeF,EAAK,IAChBC,EAAA,WAAO,kCAAyB,gDAAE,KAAWC,IAAA,CACzC,QAASA,EAAE,oBACb,EAEV,ECzCaC,EAAeC,EAAM,cAAiC,CAC/D,UAAW,IAAM,CAAC,EAClB,WAAY,IAAM,EACtB,CAAC,EAEYC,EAAW,IACJC,EAAWH,CAAY,EAI9BI,EAAkEC,GAAA,CACrE,MAAE,SAAAC,GAAaD,EAEf,CAACE,EAAYC,CAAa,EAC5BC,EAAuC,EACrC,CAACC,EAAWC,CAAY,EAAIF,EAAoB,EAChD,CAACG,EAAMC,CAAO,EAAIJ,EAAS,EAAK,EAEhCK,EAA4CC,EAC9C,CAACL,EAAWL,IAAU,CAClBQ,EAAQ,EAAI,EACZL,EAAcH,CAAK,EACnBM,EAAaD,CAAS,CAC1B,EACA,EACJ,EAEMM,EAA8CD,EAAY,IAAM,CAClEF,EAAQ,EAAK,CACjB,EAAG,EAAE,EAECI,EAAiBP,EAAYd,EAAOc,CAAS,EAAI,KAEjDQ,EAAQC,EACV,KAAO,CAAE,UAAAL,EAAW,WAAAE,IACpB,CAACA,EAAYF,CAAS,CAC1B,EAEA,OACKM,EAAApB,EAAa,SAAb,CAAsB,MAAAkB,EAClB,UAAAZ,EACAe,EAAAC,EAAA,CAAS,KAAK,eACV,SACGL,GAAAI,EAACJ,EAAA,CACI,GAAIV,EACL,KAAAK,EACA,QAASI,CAAA,EAGrB,IACJ,CAER","names":["modals","lazy","__vitePreload","m","ModalContext","React","useModal","useContext","ModalManager","props","children","modalProps","setModalProps","useState","modalType","setModalType","open","setOpen","showModal","useCallback","closeModal","ModalComponent","value","useMemo","jsxs","jsx","Suspense"],"ignoreList":[],"sources":["../../src/components/modal/modals/index.ts","../../src/components/modal/modal.tsx"],"sourcesContent":["import { lazy } from 'react';\n\nexport const modals = {\n deleteItem: lazy(() =>\n import('./DeleteItemModal.js').then(m => ({\n default: m.DeleteItemModal,\n })),\n ),\n upgradeDrive: lazy(() =>\n import('./UpgradeDriveModal.js').then(m => ({\n default: m.UpgradeDriveModal,\n })),\n ),\n createDocument: lazy(() =>\n import('./CreateDocumentModal.js').then(m => ({\n default: m.CreateDocumentModal,\n })),\n ),\n addDriveModal: lazy(() =>\n import('./AddDriveModal.js').then(m => ({\n default: m.AddDriveModal,\n })),\n ),\n addLocalDrive: lazy(() =>\n import('./AddLocalDriveModal.js').then(m => ({\n default: m.AddLocalDriveModal,\n })),\n ),\n addRemoteDrive: lazy(() =>\n import('./AddRemoteDriveModal.js').then(m => ({\n default: m.AddRemoteDriveModal,\n })),\n ),\n driveSettings: lazy(() =>\n import('./DriveSettingsModal.js').then(m => ({\n default: m.DriveSettingsModal,\n })),\n ),\n settingsModal: lazy(() =>\n import('./SettingsModal.js').then(m => ({\n default: m.SettingsModal,\n })),\n ),\n confirmationModal: lazy(() =>\n import('./ConfirmationModal.js').then(m => ({\n default: m.ConfirmationModal,\n })),\n ),\n deleteDriveModal: lazy(() =>\n import('./DeleteDriveModal.js').then(m => ({\n default: m.DeleteDriveModal,\n })),\n ),\n debugSettingsModal: lazy(() =>\n import('./DebugSettingsModal.js').then(m => ({\n default: m.DebugSettingsModal,\n })),\n ),\n disclaimerModal: lazy(() =>\n import('./DisclaimerModal.js').then(m => ({\n default: m.DisclaimerModal,\n })),\n ),\n cookiesPolicy: lazy(() =>\n import('./CookiesPolicyModal.js').then(m => ({\n default: m.CookiesPolicyModal,\n })),\n ),\n} as const;\n\nexport type Modals = typeof modals;\n\nexport type ModalType = keyof Modals;\n\nexport type ModalPropsMapping = {\n [K in ModalType]: React.ComponentProps<Modals[K]>;\n};\n","import React, {\n Suspense,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from 'react';\nimport {\n type ModalPropsMapping,\n type ModalType,\n modals,\n} from './modals/index.js';\n\ntype MapModalProps<T> = {\n [K in keyof T]: Omit<T[K], 'open' | 'onClose'> & { onClose?: () => void };\n};\n\ntype ModalProps = MapModalProps<ModalPropsMapping>;\n\ninterface ModalContextValue {\n showModal: <T extends ModalType>(\n modalType: T,\n props: ModalProps[T],\n ) => void;\n closeModal: () => void;\n}\n\nexport const ModalContext = React.createContext<ModalContextValue>({\n showModal: () => {},\n closeModal: () => {},\n});\n\nexport const useModal = () => {\n const context = useContext(ModalContext);\n return context;\n};\n\nexport const ModalManager: React.FC<{ children?: React.ReactNode }> = props => {\n const { children } = props;\n\n const [modalProps, setModalProps] =\n useState<ModalProps[keyof ModalProps]>();\n const [modalType, setModalType] = useState<ModalType>();\n const [open, setOpen] = useState(false);\n\n const showModal: ModalContextValue['showModal'] = useCallback(\n (modalType, props) => {\n setOpen(true);\n setModalProps(props);\n setModalType(modalType);\n },\n [],\n );\n\n const closeModal: ModalContextValue['closeModal'] = useCallback(() => {\n setOpen(false);\n }, []);\n\n const ModalComponent = modalType ? modals[modalType] : null;\n\n const value = useMemo(\n () => ({ showModal, closeModal }),\n [closeModal, showModal],\n );\n\n return (\n <ModalContext.Provider value={value}>\n {children}\n <Suspense name=\"ModalManager\">\n {ModalComponent && (\n <ModalComponent\n {...(modalProps as any)}\n open={open}\n onClose={closeModal}\n />\n )}\n </Suspense>\n </ModalContext.Provider>\n );\n};\n"],"file":"assets/modal.
|
|
1
|
+
{"version":3,"mappings":";sNAEO,MAAMA,EAAS,CAClB,WAAYC,EAAK,IACbC,EAAA,WAAO,+BAAsB,4CAAE,KAAWC,IAAA,CACtC,QAASA,EAAE,iBACb,CACN,EACA,aAAcF,EAAK,IACfC,EAAA,WAAO,iCAAwB,4CAAE,KAAWC,IAAA,CACxC,QAASA,EAAE,mBACb,CACN,EACA,eAAgBF,EAAK,IACjBC,EAAA,WAAO,mCAA0B,uDAAE,KAAWC,IAAA,CAC1C,QAASA,EAAE,qBACb,CACN,EACA,cAAeF,EAAK,IAChBC,EAAA,WAAO,6BAAoB,6CAAE,KAAWC,IAAA,CACpC,QAASA,EAAE,eACb,CACN,EACA,cAAeF,EAAK,IAChBC,EAAA,WAAO,kCAAyB,2CAAE,KAAWC,IAAA,CACzC,QAASA,EAAE,oBACb,CACN,EACA,eAAgBF,EAAK,IACjBC,EAAA,WAAO,mCAA0B,2CAAE,KAAWC,IAAA,CAC1C,QAASA,EAAE,qBACb,CACN,EACA,cAAeF,EAAK,IAChBC,EAAA,WAAO,kCAAyB,2CAAE,KAAWC,IAAA,CACzC,QAASA,EAAE,oBACb,CACN,EACA,cAAeF,EAAK,IAChBC,EAAA,WAAO,6BAAoB,mEAAE,KAAWC,IAAA,CACpC,QAASA,EAAE,eACb,CACN,EACA,kBAAmBF,EAAK,IACpBC,EAAA,WAAO,iCAAwB,2CAAE,KAAWC,IAAA,CACxC,QAASA,EAAE,mBACb,CACN,EACA,iBAAkBF,EAAK,IACnBC,EAAA,WAAO,gCAAuB,6CAAE,KAAWC,IAAA,CACvC,QAASA,EAAE,kBACb,CACN,EACA,mBAAoBF,EAAK,IACrBC,EAAA,WAAO,kCAAyB,2DAAE,KAAWC,IAAA,CACzC,QAASA,EAAE,oBACb,CACN,EACA,gBAAiBF,EAAK,IAClBC,EAAA,WAAO,+BAAsB,6CAAE,KAAWC,IAAA,CACtC,QAASA,EAAE,iBACb,CACN,EACA,cAAeF,EAAK,IAChBC,EAAA,WAAO,kCAAyB,gDAAE,KAAWC,IAAA,CACzC,QAASA,EAAE,oBACb,EAEV,ECzCaC,EAAeC,EAAM,cAAiC,CAC/D,UAAW,IAAM,CAAC,EAClB,WAAY,IAAM,EACtB,CAAC,EAEYC,EAAW,IACJC,EAAWH,CAAY,EAI9BI,EAAkEC,GAAA,CACrE,MAAE,SAAAC,GAAaD,EAEf,CAACE,EAAYC,CAAa,EAC5BC,EAAuC,EACrC,CAACC,EAAWC,CAAY,EAAIF,EAAoB,EAChD,CAACG,EAAMC,CAAO,EAAIJ,EAAS,EAAK,EAEhCK,EAA4CC,EAC9C,CAACL,EAAWL,IAAU,CAClBQ,EAAQ,EAAI,EACZL,EAAcH,CAAK,EACnBM,EAAaD,CAAS,CAC1B,EACA,EACJ,EAEMM,EAA8CD,EAAY,IAAM,CAClEF,EAAQ,EAAK,CACjB,EAAG,EAAE,EAECI,EAAiBP,EAAYd,EAAOc,CAAS,EAAI,KAEjDQ,EAAQC,EACV,KAAO,CAAE,UAAAL,EAAW,WAAAE,IACpB,CAACA,EAAYF,CAAS,CAC1B,EAEA,OACKM,EAAApB,EAAa,SAAb,CAAsB,MAAAkB,EAClB,UAAAZ,EACAe,EAAAC,EAAA,CAAS,KAAK,eACV,SACGL,GAAAI,EAACJ,EAAA,CACI,GAAIV,EACL,KAAAK,EACA,QAASI,CAAA,EAGrB,IACJ,CAER","names":["modals","lazy","__vitePreload","m","ModalContext","React","useModal","useContext","ModalManager","props","children","modalProps","setModalProps","useState","modalType","setModalType","open","setOpen","showModal","useCallback","closeModal","ModalComponent","value","useMemo","jsxs","jsx","Suspense"],"ignoreList":[],"sources":["../../src/components/modal/modals/index.ts","../../src/components/modal/modal.tsx"],"sourcesContent":["import { lazy } from 'react';\n\nexport const modals = {\n deleteItem: lazy(() =>\n import('./DeleteItemModal.js').then(m => ({\n default: m.DeleteItemModal,\n })),\n ),\n upgradeDrive: lazy(() =>\n import('./UpgradeDriveModal.js').then(m => ({\n default: m.UpgradeDriveModal,\n })),\n ),\n createDocument: lazy(() =>\n import('./CreateDocumentModal.js').then(m => ({\n default: m.CreateDocumentModal,\n })),\n ),\n addDriveModal: lazy(() =>\n import('./AddDriveModal.js').then(m => ({\n default: m.AddDriveModal,\n })),\n ),\n addLocalDrive: lazy(() =>\n import('./AddLocalDriveModal.js').then(m => ({\n default: m.AddLocalDriveModal,\n })),\n ),\n addRemoteDrive: lazy(() =>\n import('./AddRemoteDriveModal.js').then(m => ({\n default: m.AddRemoteDriveModal,\n })),\n ),\n driveSettings: lazy(() =>\n import('./DriveSettingsModal.js').then(m => ({\n default: m.DriveSettingsModal,\n })),\n ),\n settingsModal: lazy(() =>\n import('./SettingsModal.js').then(m => ({\n default: m.SettingsModal,\n })),\n ),\n confirmationModal: lazy(() =>\n import('./ConfirmationModal.js').then(m => ({\n default: m.ConfirmationModal,\n })),\n ),\n deleteDriveModal: lazy(() =>\n import('./DeleteDriveModal.js').then(m => ({\n default: m.DeleteDriveModal,\n })),\n ),\n debugSettingsModal: lazy(() =>\n import('./DebugSettingsModal.js').then(m => ({\n default: m.DebugSettingsModal,\n })),\n ),\n disclaimerModal: lazy(() =>\n import('./DisclaimerModal.js').then(m => ({\n default: m.DisclaimerModal,\n })),\n ),\n cookiesPolicy: lazy(() =>\n import('./CookiesPolicyModal.js').then(m => ({\n default: m.CookiesPolicyModal,\n })),\n ),\n} as const;\n\nexport type Modals = typeof modals;\n\nexport type ModalType = keyof Modals;\n\nexport type ModalPropsMapping = {\n [K in ModalType]: React.ComponentProps<Modals[K]>;\n};\n","import React, {\n Suspense,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from 'react';\nimport {\n type ModalPropsMapping,\n type ModalType,\n modals,\n} from './modals/index.js';\n\ntype MapModalProps<T> = {\n [K in keyof T]: Omit<T[K], 'open' | 'onClose'> & { onClose?: () => void };\n};\n\ntype ModalProps = MapModalProps<ModalPropsMapping>;\n\ninterface ModalContextValue {\n showModal: <T extends ModalType>(\n modalType: T,\n props: ModalProps[T],\n ) => void;\n closeModal: () => void;\n}\n\nexport const ModalContext = React.createContext<ModalContextValue>({\n showModal: () => {},\n closeModal: () => {},\n});\n\nexport const useModal = () => {\n const context = useContext(ModalContext);\n return context;\n};\n\nexport const ModalManager: React.FC<{ children?: React.ReactNode }> = props => {\n const { children } = props;\n\n const [modalProps, setModalProps] =\n useState<ModalProps[keyof ModalProps]>();\n const [modalType, setModalType] = useState<ModalType>();\n const [open, setOpen] = useState(false);\n\n const showModal: ModalContextValue['showModal'] = useCallback(\n (modalType, props) => {\n setOpen(true);\n setModalProps(props);\n setModalType(modalType);\n },\n [],\n );\n\n const closeModal: ModalContextValue['closeModal'] = useCallback(() => {\n setOpen(false);\n }, []);\n\n const ModalComponent = modalType ? modals[modalType] : null;\n\n const value = useMemo(\n () => ({ showModal, closeModal }),\n [closeModal, showModal],\n );\n\n return (\n <ModalContext.Provider value={value}>\n {children}\n <Suspense name=\"ModalManager\">\n {ModalComponent && (\n <ModalComponent\n {...(modalProps as any)}\n open={open}\n onClose={closeModal}\n />\n )}\n </Suspense>\n </ModalContext.Provider>\n );\n};\n"],"file":"assets/modal.Cyno9xQv.js"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as v}from"./i18next.CqOP20KE.js";import{useCallback as y}from"react";import{u as b}from"./useDocumentDriveServer.
|
|
2
|
-
//# sourceMappingURL=modals.
|
|
1
|
+
import{t as v}from"./i18next.CqOP20KE.js";import{useCallback as y}from"react";import{u as b}from"./useDocumentDriveServer.CaPOXIv7.js";import{m as C}from"./slug.C6xW_7Wm.js";import{ai as T,ad as M,ah as N,M as D,ae as A,n as U,aj as I}from"./index.BK4XEUxp.js";import{g as F}from"./user.Car3Tptl.js";import{useModal as L}from"./modal.Cyno9xQv.js";function E(){const{getSyncStatus:c}=b();return y(async t=>{const s="readContext"in t,a=t.id,{name:d,icon:l}=t.state.global,{slug:u}=t,{sharingType:p,availableOffline:o}=s?{sharingType:T,availableOffline:!1}:t.state.local,n=p==null?void 0:p.toUpperCase(),i=n==="PRIVATE"?M:n,f=s?void 0:await c(a,i),m=f==="INITIAL_SYNC"?"SYNCING":f,S={id:a,name:d,slug:u||null,kind:N,children:[],nodeMap:{},sharingType:i,syncStatus:m,availableOffline:o,icon:l,parentFolder:null,driveId:a},w=t.state.global.nodes.map(e=>{const r={...e,slug:C(e.name),driveId:a,parentFolder:e.parentFolder||a,kind:e.kind.toUpperCase(),syncStatus:m,sharingType:i};if(r.kind===N)throw new Error("Drive nodes should not be nested");return r.kind===D?r:{...r,children:[]}});for(const e of w)S.nodeMap[e.id]=e;for await(const e of w){if(e.kind===D){const g=s?void 0:await c(e.synchronizationUnits[0].syncId,i),k=g==="INITIAL_SYNC"?"SYNCING":g;e.syncStatus=k}if(e.parentFolder===a){S.children.push(e);continue}const r=S.nodeMap[e.parentFolder];if(r.kind===D)throw new Error(`Parent node ${e.parentFolder} is a file, not a folder`);r.children.push(e),e.syncStatus!==A&&(r.syncStatus=e.syncStatus)}return S},[c])}function G(){const{showModal:c}=L(),{addDrive:h,addRemoteDrive:t}=b(),{setSelectedNode:s}=U(),a=F(),d=E(),l=y(async o=>{try{const n=a.find(m=>m.id===o.appId),i=await h({id:"",slug:"",global:{name:o.name,icon:null},local:{availableOffline:o.availableOffline,sharingType:o.sharingType.toLowerCase(),listeners:[],triggers:[]}},n==null?void 0:n.driveEditor);I(v("notifications.addDriveSuccess"),{type:"connect-success"});const f=await d(i);s(f)}catch(n){console.error(n)}},[h,d,s,v]),u=y(async o=>{try{const n=await t(o.url,{sharingType:o.sharingType,availableOffline:o.availableOffline,listeners:[{block:!0,callInfo:{data:o.url,name:"switchboard-push",transmitterType:"SwitchboardPush"},filter:{branch:["main"],documentId:["*"],documentType:["*"],scope:["global"]},label:"Switchboard Sync",listenerId:"1",system:!0}],triggers:[]});I(v("notifications.addDriveSuccess"),{type:"connect-success"});const i=await d(n);s(i)}catch(n){console.error(n)}},[t,d,s,v]);return y(()=>c("addDriveModal",{onAddLocalDrive:l,onAddRemoteDrive:u}),[l,u,c])}export{E as a,G as u};
|
|
2
|
+
//# sourceMappingURL=modals.B2MGWVTJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modals.DJaCFxNO.js","sources":["../../src/hooks/useUiNodes.ts","../../src/hooks/modals.ts"],"sourcesContent":["import { makeNodeSlugFromNodeName } from '#utils';\nimport {\n DRIVE,\n FILE,\n FOLDER,\n LOCAL,\n PUBLIC,\n type SharingType,\n SUCCESS,\n type UiDriveNode,\n type UiFileNode,\n type UiFolderNode,\n type UiNode,\n} from '@powerhousedao/design-system';\nimport { useUiNodesContext } from '@powerhousedao/reactor-browser/hooks/useUiNodesContext';\nimport { type DocumentDriveDocument, type ReadDrive } from 'document-drive';\nimport { useCallback, useMemo } from 'react';\nimport { useDocumentDriveServer } from './useDocumentDriveServer.js';\n\nexport function useMakeUiDriveNode() {\n const { getSyncStatus } = useDocumentDriveServer();\n const makeUiDriveNode = useCallback(\n async (drive: DocumentDriveDocument | ReadDrive) => {\n const isReadDrive = 'readContext' in drive;\n const id = drive.id;\n const { name, icon } = drive.state.global;\n const { slug } = drive;\n const { sharingType: _sharingType, availableOffline } = !isReadDrive\n ? drive.state.local\n : { sharingType: PUBLIC, availableOffline: false };\n const __sharingType = _sharingType?.toUpperCase();\n const sharingType = (\n __sharingType === 'PRIVATE' ? LOCAL : __sharingType\n ) as SharingType;\n const driveSyncStatus = !isReadDrive\n ? await getSyncStatus(id, sharingType)\n : undefined;\n\n // TODO: rempve this after integration in design-system\n const normalizedDriveSyncStatus =\n driveSyncStatus === 'INITIAL_SYNC'\n ? 'SYNCING'\n : driveSyncStatus;\n\n const driveNode: UiDriveNode = {\n id,\n name,\n slug: slug || null,\n kind: DRIVE,\n children: [],\n nodeMap: {},\n sharingType,\n syncStatus: normalizedDriveSyncStatus,\n availableOffline,\n icon,\n parentFolder: null,\n driveId: id,\n };\n\n const nodes = drive.state.global.nodes.map(n => {\n const node = {\n ...n,\n slug: makeNodeSlugFromNodeName(n.name),\n driveId: id,\n parentFolder: n.parentFolder || id,\n kind: n.kind.toUpperCase(),\n syncStatus: normalizedDriveSyncStatus,\n sharingType,\n };\n\n if (node.kind === DRIVE) {\n throw new Error('Drive nodes should not be nested');\n }\n\n if (node.kind === FILE) {\n return node as UiFileNode;\n }\n\n return {\n ...node,\n children: [],\n } as UiFolderNode;\n });\n\n for (const node of nodes) {\n driveNode.nodeMap[node.id] = node;\n }\n\n // eslint-disable-next-line @typescript-eslint/await-thenable\n for await (const node of nodes) {\n if (node.kind === FILE) {\n const fileSyncStatus = !isReadDrive\n ? await getSyncStatus(\n node.synchronizationUnits[0].syncId,\n sharingType,\n )\n : undefined;\n\n // TODO: rempve this after integration in design-system\n const normalizedFileSyncStatus =\n fileSyncStatus === 'INITIAL_SYNC'\n ? 'SYNCING'\n : fileSyncStatus;\n\n node.syncStatus = normalizedFileSyncStatus;\n }\n\n if (node.parentFolder === id) {\n driveNode.children.push(node);\n continue;\n }\n const parent = driveNode.nodeMap[node.parentFolder];\n\n if (parent.kind === FILE) {\n throw new Error(\n `Parent node ${node.parentFolder} is a file, not a folder`,\n );\n }\n\n parent.children.push(node);\n\n if (node.syncStatus !== SUCCESS) {\n parent.syncStatus = node.syncStatus;\n }\n }\n\n return driveNode;\n },\n [getSyncStatus],\n );\n\n return makeUiDriveNode;\n}\n\nexport function useDebugHandlers() {\n const { removeTrigger, addTrigger, registerNewPullResponderTrigger } =\n useDocumentDriveServer();\n\n const onAddTrigger = useCallback(\n async (uiNodeDriveId: string) => {\n const url = window.prompt('url') || '';\n\n const pullResponderTrigger = await registerNewPullResponderTrigger(\n uiNodeDriveId,\n url,\n { pullInterval: 6000 },\n );\n await addTrigger(uiNodeDriveId, pullResponderTrigger);\n },\n [addTrigger, registerNewPullResponderTrigger],\n );\n\n const onRemoveTrigger = useCallback(\n async (uiNodeDriveId: string) => {\n const triggerId = window.prompt('triggerId:');\n\n if (triggerId) {\n await removeTrigger(uiNodeDriveId, triggerId);\n }\n },\n [removeTrigger],\n );\n\n const onAddInvalidTrigger = useCallback(\n async (uiNodeDriveId: string) => {\n const url = window.prompt('url') || '';\n\n await addTrigger(uiNodeDriveId, {\n id: 'some-invalid-id',\n type: 'PullResponder',\n data: {\n interval: '3000',\n listenerId: 'invalid-listener-id',\n url,\n },\n });\n },\n [addTrigger],\n );\n\n return {\n onAddTrigger,\n onRemoveTrigger,\n onAddInvalidTrigger,\n };\n}\n\nexport function useUiNodes() {\n const { selectedParentNode, setSelectedNode } = useUiNodesContext();\n const { addFolder, addFile, renameNode, copyNode, moveNode } =\n useDocumentDriveServer();\n\n const onAddFile = useCallback(\n async (file: File, parentNode: UiNode | null) => {\n if (!parentNode) {\n throw new Error('Parent node is required');\n }\n if (parentNode.kind === FILE) {\n throw new Error('Cannot add file to a file');\n }\n\n const fileName = file.name.replace(/\\.zip$/gim, '');\n\n return await addFile(\n file,\n parentNode.driveId,\n fileName,\n parentNode.id,\n );\n },\n [addFile],\n );\n\n const onAddFolder = useCallback(\n async (name: string, parentNode: UiNode | null) => {\n if (!parentNode) {\n throw new Error('Parent node is required');\n }\n if (parentNode.kind === FILE) {\n throw new Error('Cannot add folder to a file');\n }\n return await addFolder(parentNode.driveId, name, parentNode.id);\n },\n [addFolder],\n );\n\n const onRenameNode = useCallback(\n async (name: string, uiNode: UiNode) => {\n if (uiNode.kind === DRIVE) {\n throw new Error(\n 'Drive can only be renamed from the drive settings modal',\n );\n }\n return await renameNode(uiNode.driveId, uiNode.id, name);\n },\n [renameNode],\n );\n\n const onCopyNode = useCallback(\n async (uiNode: UiNode, targetNode: UiNode) => {\n if (uiNode.kind === DRIVE) {\n throw new Error('Drive cannot be duplicated');\n }\n\n await copyNode(uiNode, targetNode);\n },\n [copyNode],\n );\n\n const onMoveNode = useCallback(\n async (uiNode: UiNode, targetNode: UiNode) => {\n if (uiNode.kind === DRIVE) {\n throw new Error('Drive cannot be moved');\n }\n\n await moveNode(uiNode, targetNode);\n },\n [moveNode],\n );\n\n const onDuplicateNode = useCallback(\n async (uiNode: UiNode) => {\n if (!selectedParentNode) return;\n\n if (uiNode.kind === DRIVE) {\n throw new Error('Drive cannot be duplicated');\n }\n\n await copyNode(uiNode, selectedParentNode);\n },\n [copyNode, selectedParentNode],\n );\n\n const onAddAndSelectNewFolder = useCallback(\n async (name: string) => {\n if (!name || !selectedParentNode) return;\n\n const newFolder = await onAddFolder(name, selectedParentNode);\n\n setSelectedNode({\n ...newFolder,\n kind: FOLDER,\n slug: makeNodeSlugFromNodeName(newFolder.name),\n parentFolder: selectedParentNode.id,\n syncStatus: selectedParentNode.syncStatus,\n driveId: selectedParentNode.driveId,\n sharingType: selectedParentNode.sharingType,\n children: [],\n });\n },\n [onAddFolder, selectedParentNode, setSelectedNode],\n );\n\n return useMemo(\n () => ({\n onAddFile,\n onAddFolder,\n onRenameNode,\n onCopyNode,\n onMoveNode,\n onDuplicateNode,\n onAddAndSelectNewFolder,\n }),\n [\n onAddFolder,\n onAddFile,\n onCopyNode,\n onMoveNode,\n onRenameNode,\n onDuplicateNode,\n onAddAndSelectNewFolder,\n ],\n );\n}\n\nexport type TUiNodes = ReturnType<typeof useUiNodes>;\n","import { useModal } from '#components';\nimport { useApps } from '#store';\nimport {\n toast,\n type AddLocalDriveInput,\n type AddRemoteDriveInput,\n} from '@powerhousedao/design-system';\nimport {\n FOLDER,\n useUiNodesContext,\n type SharingType,\n type UiDriveNode,\n type UiFileNode,\n type UiFolderNode,\n} from '@powerhousedao/reactor-browser';\nimport { t } from 'i18next';\nimport { useCallback } from 'react';\nimport { useDocumentDriveServer } from './useDocumentDriveServer';\nimport { useMakeUiDriveNode } from './useUiNodes';\n\nexport function useShowAddDriveModal() {\n const { showModal } = useModal();\n const { addDrive, addRemoteDrive } = useDocumentDriveServer();\n const { setSelectedNode } = useUiNodesContext();\n const apps = useApps();\n const makeUiDriveNode = useMakeUiDriveNode();\n const onAddLocalDrive = useCallback(\n async (data: AddLocalDriveInput) => {\n try {\n const app = apps.find(a => a.id === data.appId);\n const newDrive = await addDrive(\n {\n id: '',\n slug: '',\n global: {\n name: data.name,\n icon: null,\n },\n local: {\n availableOffline: data.availableOffline,\n sharingType: data.sharingType.toLowerCase(),\n listeners: [],\n triggers: [],\n },\n },\n app?.driveEditor,\n );\n\n toast(t('notifications.addDriveSuccess'), {\n type: 'connect-success',\n });\n\n const newDriveNode = await makeUiDriveNode(newDrive);\n\n setSelectedNode(newDriveNode);\n } catch (e) {\n console.error(e);\n }\n },\n [addDrive, makeUiDriveNode, setSelectedNode, t],\n );\n\n const onAddRemoteDrive = useCallback(\n async (data: AddRemoteDriveInput) => {\n try {\n const newDrive = await addRemoteDrive(data.url, {\n sharingType: data.sharingType,\n availableOffline: data.availableOffline,\n listeners: [\n {\n block: true,\n callInfo: {\n data: data.url,\n name: 'switchboard-push',\n transmitterType: 'SwitchboardPush',\n },\n filter: {\n branch: ['main'],\n documentId: ['*'],\n documentType: ['*'],\n scope: ['global'],\n },\n label: 'Switchboard Sync',\n listenerId: '1',\n system: true,\n },\n ],\n triggers: [],\n });\n\n toast(t('notifications.addDriveSuccess'), {\n type: 'connect-success',\n });\n\n const newDriveNode = await makeUiDriveNode(newDrive);\n\n setSelectedNode(newDriveNode);\n } catch (e) {\n console.error(e);\n }\n },\n [addRemoteDrive, makeUiDriveNode, setSelectedNode, t],\n );\n const showAddDriveModal = useCallback(\n () =>\n showModal('addDriveModal', {\n onAddLocalDrive,\n onAddRemoteDrive,\n }),\n [onAddLocalDrive, onAddRemoteDrive, showModal],\n );\n\n return showAddDriveModal;\n}\n\nexport function useShowDriveSettingsModal() {\n const { showModal } = useModal();\n const {\n renameDrive,\n setDriveAvailableOffline,\n setDriveSharingType,\n deleteDrive,\n } = useDocumentDriveServer();\n const { driveNodes, setSelectedNode } = useUiNodesContext();\n const onRenameDrive = useCallback(\n async (uiDriveNode: UiDriveNode, newName: string) => {\n await renameDrive(uiDriveNode.id, newName);\n },\n [renameDrive],\n );\n\n const onChangeSharingType = useCallback(\n async (uiDriveNode: UiDriveNode, newSharingType: SharingType) => {\n await setDriveSharingType(uiDriveNode.id, newSharingType);\n },\n [setDriveSharingType],\n );\n\n const onChangeAvailableOffline = useCallback(\n async (uiDriveNode: UiDriveNode, newAvailableOffline: boolean) => {\n await setDriveAvailableOffline(uiDriveNode.id, newAvailableOffline);\n },\n [setDriveAvailableOffline],\n );\n const onDeleteDrive = useCallback(\n (uiDriveNode: UiDriveNode) => {\n showModal('deleteDriveModal', {\n uiDriveNode,\n onDelete: async closeModal => {\n closeModal();\n await deleteDrive(uiDriveNode.id);\n\n setSelectedNode(driveNodes[0]);\n\n toast(t('notifications.deleteDriveSuccess'), {\n type: 'connect-deleted',\n });\n },\n });\n },\n [deleteDrive, driveNodes, setSelectedNode, showModal, t],\n );\n const showDriveSettingsModal = useCallback(\n (uiDriveNode: UiDriveNode) => {\n showModal('driveSettings', {\n uiDriveNode,\n onRenameDrive,\n onDeleteDrive,\n onChangeSharingType,\n onChangeAvailableOffline,\n });\n },\n [\n onChangeAvailableOffline,\n onChangeSharingType,\n onDeleteDrive,\n onRenameDrive,\n showModal,\n ],\n );\n\n return showDriveSettingsModal;\n}\n\nexport function useShowDeleteNodeModal() {\n const { showModal } = useModal();\n const { setSelectedNode, getParentNode } = useUiNodesContext();\n const { deleteNode } = useDocumentDriveServer();\n const showDeleteNodeModal = useCallback(\n (uiNode: UiFileNode | UiFolderNode) => {\n showModal('deleteItem', {\n uiNode,\n onDelete: async closeModal => {\n closeModal();\n\n const i18nKey =\n uiNode.kind === FOLDER\n ? 'notifications.deleteFolderSuccess'\n : 'notifications.fileDeleteSuccess';\n\n const parentNode = getParentNode(uiNode);\n\n await deleteNode(uiNode.driveId, uiNode.id);\n\n setSelectedNode(parentNode);\n\n toast(t(i18nKey), { type: 'connect-deleted' });\n },\n });\n },\n [deleteNode, getParentNode, setSelectedNode, showModal, t],\n );\n\n return showDeleteNodeModal;\n}\n"],"names":["useMakeUiDriveNode","getSyncStatus","useDocumentDriveServer","useCallback","drive","isReadDrive","id","name","icon","slug","_sharingType","availableOffline","PUBLIC","__sharingType","sharingType","LOCAL","driveSyncStatus","normalizedDriveSyncStatus","driveNode","DRIVE","nodes","n","node","makeNodeSlugFromNodeName","FILE","fileSyncStatus","normalizedFileSyncStatus","parent","SUCCESS","useShowAddDriveModal","showModal","useModal","addDrive","addRemoteDrive","setSelectedNode","useUiNodesContext","apps","useApps","makeUiDriveNode","onAddLocalDrive","data","app","a","newDrive","toast","t","newDriveNode","e","onAddRemoteDrive"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modals.B2MGWVTJ.js","sources":["../../src/hooks/useUiNodes.ts","../../src/hooks/modals.ts"],"sourcesContent":["import { makeNodeSlugFromNodeName } from '#utils';\nimport {\n DRIVE,\n FILE,\n FOLDER,\n LOCAL,\n PUBLIC,\n type SharingType,\n SUCCESS,\n type UiDriveNode,\n type UiFileNode,\n type UiFolderNode,\n type UiNode,\n} from '@powerhousedao/design-system';\nimport { useUiNodesContext } from '@powerhousedao/reactor-browser/hooks/useUiNodesContext';\nimport { type DocumentDriveDocument, type ReadDrive } from 'document-drive';\nimport { useCallback, useMemo } from 'react';\nimport { useDocumentDriveServer } from './useDocumentDriveServer.js';\n\nexport function useMakeUiDriveNode() {\n const { getSyncStatus } = useDocumentDriveServer();\n const makeUiDriveNode = useCallback(\n async (drive: DocumentDriveDocument | ReadDrive) => {\n const isReadDrive = 'readContext' in drive;\n const id = drive.id;\n const { name, icon } = drive.state.global;\n const { slug } = drive;\n const { sharingType: _sharingType, availableOffline } = !isReadDrive\n ? drive.state.local\n : { sharingType: PUBLIC, availableOffline: false };\n const __sharingType = _sharingType?.toUpperCase();\n const sharingType = (\n __sharingType === 'PRIVATE' ? LOCAL : __sharingType\n ) as SharingType;\n const driveSyncStatus = !isReadDrive\n ? await getSyncStatus(id, sharingType)\n : undefined;\n\n // TODO: rempve this after integration in design-system\n const normalizedDriveSyncStatus =\n driveSyncStatus === 'INITIAL_SYNC'\n ? 'SYNCING'\n : driveSyncStatus;\n\n const driveNode: UiDriveNode = {\n id,\n name,\n slug: slug || null,\n kind: DRIVE,\n children: [],\n nodeMap: {},\n sharingType,\n syncStatus: normalizedDriveSyncStatus,\n availableOffline,\n icon,\n parentFolder: null,\n driveId: id,\n };\n\n const nodes = drive.state.global.nodes.map(n => {\n const node = {\n ...n,\n slug: makeNodeSlugFromNodeName(n.name),\n driveId: id,\n parentFolder: n.parentFolder || id,\n kind: n.kind.toUpperCase(),\n syncStatus: normalizedDriveSyncStatus,\n sharingType,\n };\n\n if (node.kind === DRIVE) {\n throw new Error('Drive nodes should not be nested');\n }\n\n if (node.kind === FILE) {\n return node as UiFileNode;\n }\n\n return {\n ...node,\n children: [],\n } as UiFolderNode;\n });\n\n for (const node of nodes) {\n driveNode.nodeMap[node.id] = node;\n }\n\n // eslint-disable-next-line @typescript-eslint/await-thenable\n for await (const node of nodes) {\n if (node.kind === FILE) {\n const fileSyncStatus = !isReadDrive\n ? await getSyncStatus(\n node.synchronizationUnits[0].syncId,\n sharingType,\n )\n : undefined;\n\n // TODO: rempve this after integration in design-system\n const normalizedFileSyncStatus =\n fileSyncStatus === 'INITIAL_SYNC'\n ? 'SYNCING'\n : fileSyncStatus;\n\n node.syncStatus = normalizedFileSyncStatus;\n }\n\n if (node.parentFolder === id) {\n driveNode.children.push(node);\n continue;\n }\n const parent = driveNode.nodeMap[node.parentFolder];\n\n if (parent.kind === FILE) {\n throw new Error(\n `Parent node ${node.parentFolder} is a file, not a folder`,\n );\n }\n\n parent.children.push(node);\n\n if (node.syncStatus !== SUCCESS) {\n parent.syncStatus = node.syncStatus;\n }\n }\n\n return driveNode;\n },\n [getSyncStatus],\n );\n\n return makeUiDriveNode;\n}\n\nexport function useDebugHandlers() {\n const { removeTrigger, addTrigger, registerNewPullResponderTrigger } =\n useDocumentDriveServer();\n\n const onAddTrigger = useCallback(\n async (uiNodeDriveId: string) => {\n const url = window.prompt('url') || '';\n\n const pullResponderTrigger = await registerNewPullResponderTrigger(\n uiNodeDriveId,\n url,\n { pullInterval: 6000 },\n );\n await addTrigger(uiNodeDriveId, pullResponderTrigger);\n },\n [addTrigger, registerNewPullResponderTrigger],\n );\n\n const onRemoveTrigger = useCallback(\n async (uiNodeDriveId: string) => {\n const triggerId = window.prompt('triggerId:');\n\n if (triggerId) {\n await removeTrigger(uiNodeDriveId, triggerId);\n }\n },\n [removeTrigger],\n );\n\n const onAddInvalidTrigger = useCallback(\n async (uiNodeDriveId: string) => {\n const url = window.prompt('url') || '';\n\n await addTrigger(uiNodeDriveId, {\n id: 'some-invalid-id',\n type: 'PullResponder',\n data: {\n interval: '3000',\n listenerId: 'invalid-listener-id',\n url,\n },\n });\n },\n [addTrigger],\n );\n\n return {\n onAddTrigger,\n onRemoveTrigger,\n onAddInvalidTrigger,\n };\n}\n\nexport function useUiNodes() {\n const { selectedParentNode, setSelectedNode } = useUiNodesContext();\n const { addFolder, addFile, renameNode, copyNode, moveNode } =\n useDocumentDriveServer();\n\n const onAddFile = useCallback(\n async (file: File, parentNode: UiNode | null) => {\n if (!parentNode) {\n throw new Error('Parent node is required');\n }\n if (parentNode.kind === FILE) {\n throw new Error('Cannot add file to a file');\n }\n\n const fileName = file.name.replace(/\\.zip$/gim, '');\n\n return await addFile(\n file,\n parentNode.driveId,\n fileName,\n parentNode.id,\n );\n },\n [addFile],\n );\n\n const onAddFolder = useCallback(\n async (name: string, parentNode: UiNode | null) => {\n if (!parentNode) {\n throw new Error('Parent node is required');\n }\n if (parentNode.kind === FILE) {\n throw new Error('Cannot add folder to a file');\n }\n return await addFolder(parentNode.driveId, name, parentNode.id);\n },\n [addFolder],\n );\n\n const onRenameNode = useCallback(\n async (name: string, uiNode: UiNode) => {\n if (uiNode.kind === DRIVE) {\n throw new Error(\n 'Drive can only be renamed from the drive settings modal',\n );\n }\n return await renameNode(uiNode.driveId, uiNode.id, name);\n },\n [renameNode],\n );\n\n const onCopyNode = useCallback(\n async (uiNode: UiNode, targetNode: UiNode) => {\n if (uiNode.kind === DRIVE) {\n throw new Error('Drive cannot be duplicated');\n }\n\n await copyNode(uiNode, targetNode);\n },\n [copyNode],\n );\n\n const onMoveNode = useCallback(\n async (uiNode: UiNode, targetNode: UiNode) => {\n if (uiNode.kind === DRIVE) {\n throw new Error('Drive cannot be moved');\n }\n\n await moveNode(uiNode, targetNode);\n },\n [moveNode],\n );\n\n const onDuplicateNode = useCallback(\n async (uiNode: UiNode) => {\n if (!selectedParentNode) return;\n\n if (uiNode.kind === DRIVE) {\n throw new Error('Drive cannot be duplicated');\n }\n\n await copyNode(uiNode, selectedParentNode);\n },\n [copyNode, selectedParentNode],\n );\n\n const onAddAndSelectNewFolder = useCallback(\n async (name: string) => {\n if (!name || !selectedParentNode) return;\n\n const newFolder = await onAddFolder(name, selectedParentNode);\n\n setSelectedNode({\n ...newFolder,\n kind: FOLDER,\n slug: makeNodeSlugFromNodeName(newFolder.name),\n parentFolder: selectedParentNode.id,\n syncStatus: selectedParentNode.syncStatus,\n driveId: selectedParentNode.driveId,\n sharingType: selectedParentNode.sharingType,\n children: [],\n });\n },\n [onAddFolder, selectedParentNode, setSelectedNode],\n );\n\n return useMemo(\n () => ({\n onAddFile,\n onAddFolder,\n onRenameNode,\n onCopyNode,\n onMoveNode,\n onDuplicateNode,\n onAddAndSelectNewFolder,\n }),\n [\n onAddFolder,\n onAddFile,\n onCopyNode,\n onMoveNode,\n onRenameNode,\n onDuplicateNode,\n onAddAndSelectNewFolder,\n ],\n );\n}\n\nexport type TUiNodes = ReturnType<typeof useUiNodes>;\n","import { useModal } from '#components';\nimport { useApps } from '#store';\nimport {\n toast,\n type AddLocalDriveInput,\n type AddRemoteDriveInput,\n} from '@powerhousedao/design-system';\nimport {\n FOLDER,\n useUiNodesContext,\n type SharingType,\n type UiDriveNode,\n type UiFileNode,\n type UiFolderNode,\n} from '@powerhousedao/reactor-browser';\nimport { t } from 'i18next';\nimport { useCallback } from 'react';\nimport { useDocumentDriveServer } from './useDocumentDriveServer';\nimport { useMakeUiDriveNode } from './useUiNodes';\n\nexport function useShowAddDriveModal() {\n const { showModal } = useModal();\n const { addDrive, addRemoteDrive } = useDocumentDriveServer();\n const { setSelectedNode } = useUiNodesContext();\n const apps = useApps();\n const makeUiDriveNode = useMakeUiDriveNode();\n const onAddLocalDrive = useCallback(\n async (data: AddLocalDriveInput) => {\n try {\n const app = apps.find(a => a.id === data.appId);\n const newDrive = await addDrive(\n {\n id: '',\n slug: '',\n global: {\n name: data.name,\n icon: null,\n },\n local: {\n availableOffline: data.availableOffline,\n sharingType: data.sharingType.toLowerCase(),\n listeners: [],\n triggers: [],\n },\n },\n app?.driveEditor,\n );\n\n toast(t('notifications.addDriveSuccess'), {\n type: 'connect-success',\n });\n\n const newDriveNode = await makeUiDriveNode(newDrive);\n\n setSelectedNode(newDriveNode);\n } catch (e) {\n console.error(e);\n }\n },\n [addDrive, makeUiDriveNode, setSelectedNode, t],\n );\n\n const onAddRemoteDrive = useCallback(\n async (data: AddRemoteDriveInput) => {\n try {\n const newDrive = await addRemoteDrive(data.url, {\n sharingType: data.sharingType,\n availableOffline: data.availableOffline,\n listeners: [\n {\n block: true,\n callInfo: {\n data: data.url,\n name: 'switchboard-push',\n transmitterType: 'SwitchboardPush',\n },\n filter: {\n branch: ['main'],\n documentId: ['*'],\n documentType: ['*'],\n scope: ['global'],\n },\n label: 'Switchboard Sync',\n listenerId: '1',\n system: true,\n },\n ],\n triggers: [],\n });\n\n toast(t('notifications.addDriveSuccess'), {\n type: 'connect-success',\n });\n\n const newDriveNode = await makeUiDriveNode(newDrive);\n\n setSelectedNode(newDriveNode);\n } catch (e) {\n console.error(e);\n }\n },\n [addRemoteDrive, makeUiDriveNode, setSelectedNode, t],\n );\n const showAddDriveModal = useCallback(\n () =>\n showModal('addDriveModal', {\n onAddLocalDrive,\n onAddRemoteDrive,\n }),\n [onAddLocalDrive, onAddRemoteDrive, showModal],\n );\n\n return showAddDriveModal;\n}\n\nexport function useShowDriveSettingsModal() {\n const { showModal } = useModal();\n const {\n renameDrive,\n setDriveAvailableOffline,\n setDriveSharingType,\n deleteDrive,\n } = useDocumentDriveServer();\n const { driveNodes, setSelectedNode } = useUiNodesContext();\n const onRenameDrive = useCallback(\n async (uiDriveNode: UiDriveNode, newName: string) => {\n await renameDrive(uiDriveNode.id, newName);\n },\n [renameDrive],\n );\n\n const onChangeSharingType = useCallback(\n async (uiDriveNode: UiDriveNode, newSharingType: SharingType) => {\n await setDriveSharingType(uiDriveNode.id, newSharingType);\n },\n [setDriveSharingType],\n );\n\n const onChangeAvailableOffline = useCallback(\n async (uiDriveNode: UiDriveNode, newAvailableOffline: boolean) => {\n await setDriveAvailableOffline(uiDriveNode.id, newAvailableOffline);\n },\n [setDriveAvailableOffline],\n );\n const onDeleteDrive = useCallback(\n (uiDriveNode: UiDriveNode) => {\n showModal('deleteDriveModal', {\n uiDriveNode,\n onDelete: async closeModal => {\n closeModal();\n await deleteDrive(uiDriveNode.id);\n\n setSelectedNode(driveNodes[0]);\n\n toast(t('notifications.deleteDriveSuccess'), {\n type: 'connect-deleted',\n });\n },\n });\n },\n [deleteDrive, driveNodes, setSelectedNode, showModal, t],\n );\n const showDriveSettingsModal = useCallback(\n (uiDriveNode: UiDriveNode) => {\n showModal('driveSettings', {\n uiDriveNode,\n onRenameDrive,\n onDeleteDrive,\n onChangeSharingType,\n onChangeAvailableOffline,\n });\n },\n [\n onChangeAvailableOffline,\n onChangeSharingType,\n onDeleteDrive,\n onRenameDrive,\n showModal,\n ],\n );\n\n return showDriveSettingsModal;\n}\n\nexport function useShowDeleteNodeModal() {\n const { showModal } = useModal();\n const { setSelectedNode, getParentNode } = useUiNodesContext();\n const { deleteNode } = useDocumentDriveServer();\n const showDeleteNodeModal = useCallback(\n (uiNode: UiFileNode | UiFolderNode) => {\n showModal('deleteItem', {\n uiNode,\n onDelete: async closeModal => {\n closeModal();\n\n const i18nKey =\n uiNode.kind === FOLDER\n ? 'notifications.deleteFolderSuccess'\n : 'notifications.fileDeleteSuccess';\n\n const parentNode = getParentNode(uiNode);\n\n await deleteNode(uiNode.driveId, uiNode.id);\n\n setSelectedNode(parentNode);\n\n toast(t(i18nKey), { type: 'connect-deleted' });\n },\n });\n },\n [deleteNode, getParentNode, setSelectedNode, showModal, t],\n );\n\n return showDeleteNodeModal;\n}\n"],"names":["useMakeUiDriveNode","getSyncStatus","useDocumentDriveServer","useCallback","drive","isReadDrive","id","name","icon","slug","_sharingType","availableOffline","PUBLIC","__sharingType","sharingType","LOCAL","driveSyncStatus","normalizedDriveSyncStatus","driveNode","DRIVE","nodes","n","node","makeNodeSlugFromNodeName","FILE","fileSyncStatus","normalizedFileSyncStatus","parent","SUCCESS","useShowAddDriveModal","showModal","useModal","addDrive","addRemoteDrive","setSelectedNode","useUiNodesContext","apps","useApps","makeUiDriveNode","onAddLocalDrive","data","app","a","newDrive","toast","t","newDriveNode","e","onAddRemoteDrive"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{f as e,g as o,u as p}from"./app.4bfdL5-A.js";import"react/jsx-runtime";import"./useFeatureFlags.BBeQJvdK.js";import"react";import"./index.BK4XEUxp.js";import"react-dom";import"./user.Car3Tptl.js";import"./connect.config.D7bT63h0.js";import"./browser.BkwNmV2Z.js";import"./useAcceptedCookies.CeHL3XNa.js";import"./useConnectConfig.CCGNCy5A.js";import"./index.CAUjMUXb.js";import"./registerServiceWorker.qRwAeUvA.js";p();var y=class extends e{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 s=i.FS.filesystems.NODEFS;i.FS.mkdir(o),i.FS.mount(s,{root:this.rootDir},o)}]}}}async closeFs(){this.pg.Module.FS.quit()}};export{y as NodeFS};
|
|
2
|
+
//# sourceMappingURL=nodefs.D6wU1w0J.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodefs.
|
|
1
|
+
{"version":3,"file":"nodefs.D6wU1w0J.js","sources":["../../../../node_modules/.pnpm/@electric-sql+pglite@0.2.17/node_modules/@electric-sql/pglite/dist/fs/nodefs.js"],"sourcesContent":["import{d as i,e as p}from\"../chunk-WGR4JCLS.js\";import{j as n}from\"../chunk-BTBUZ646.js\";n();import*as s from\"fs\";import*as o from\"path\";var m=class extends p{constructor(t){super(t),this.rootDir=o.resolve(t),s.existsSync(o.join(this.rootDir))||s.mkdirSync(this.rootDir)}async init(t,e){return this.pg=t,{emscriptenOpts:{...e,preRun:[...e.preRun||[],r=>{let c=r.FS.filesystems.NODEFS;r.FS.mkdir(i),r.FS.mount(c,{root:this.rootDir},i)}]}}}async closeFs(){this.pg.Module.FS.quit()}};export{m as NodeFS};\n//# sourceMappingURL=nodefs.js.map"],"names":["n","m","p","o.resolve","s.existsSync","o.join","s.mkdirSync","e","r","c","i"],"mappings":"saAAyFA,EAAG,EAAgD,IAACC,EAAE,cAAcC,CAAC,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQC,SAAU,CAAC,EAAEC,SAAaC,SAAO,KAAK,OAAO,CAAC,GAAGC,SAAY,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,EAAEC,EAAE,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC,eAAe,CAAC,GAAGA,EAAE,OAAO,CAAC,GAAGA,EAAE,QAAQ,CAAE,EAACC,GAAG,CAAC,IAAIC,EAAED,EAAE,GAAG,YAAY,OAAOA,EAAE,GAAG,MAAME,CAAC,EAAEF,EAAE,GAAG,MAAMC,EAAE,CAAC,KAAK,KAAK,OAAO,EAAEC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as H,R as m,T as o,h as s,p as A,u as C,x as P,U as R}from"./app.
|
|
1
|
+
import{i as H,R as m,T as o,h as s,p as A,u as C,x as P,U as R}from"./app.4bfdL5-A.js";import"react/jsx-runtime";import"./useFeatureFlags.BBeQJvdK.js";import"react";import"./index.BK4XEUxp.js";import"react-dom";import"./user.Car3Tptl.js";import"./connect.config.D7bT63h0.js";import"./browser.BkwNmV2Z.js";import"./useAcceptedCookies.CeHL3XNa.js";import"./useConnectConfig.CCGNCy5A.js";import"./index.CAUjMUXb.js";import"./registerServiceWorker.qRwAeUvA.js";C();var B="state.txt",L="data",W={DIR:16384,FILE:32768},T,I,N,_,w,k,y,j,F,O,S,l,$,E,M,g,f,D,v,x,st=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,N),m(this,_),m(this,w),m(this,k,new Map),m(this,y,new Map),m(this,j,0),m(this,F,new Map),m(this,O,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,$).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,N).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=>{var d;let r=this.state.pool.pop();o(this,l,M).call(this,{opp:"deletePoolFile",args:[r]});let c=s(this,k).get(r);(d=s(this,y).get(r))==null||d.close(),await s(this,N).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,E).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,F).delete(t),s(this,O).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,E).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!=null&&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==null?void 0:e.mode)||W.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,v).call(this);return s(this,F).set(i,t),s(this,O).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,E).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,E).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,E).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==null||c.truncate(0),s(this,S).add(c),s(this,O).has(t)&&(s(this,F).delete(s(this,O).get(t)),s(this,O).delete(t))}this.state.pool.push(r.backingFilename)}utimes(t,e,a){o(this,l,E).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==null?void 0:a.mode)||W.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,N=new WeakMap,_=new WeakMap,w=new WeakMap,k=new WeakMap,y=new WeakMap,j=new WeakMap,F=new WeakMap,O=new WeakMap,S=new WeakMap,l=new WeakSet,$=async function(){P(this,T,await navigator.storage.getDirectory()),P(this,I,await o(this,l,x).call(this,this.dataDir,{create:!0})),P(this,N,await o(this,l,x).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
2
|
`),i=!1;try{e=JSON.parse(a[0])}catch{e={root:{type:"directory",lastModified:Date.now(),mode:W.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(b){console.warn("Error applying OPFS AHP WAL entry",n,b)}}let r=[],c=async n=>{if(n.type==="file")try{let u=await s(this,N).getFileHandle(n.backingFilename),b=await u.createSyncAccessHandle();s(this,k).set(n.backingFilename,u),s(this,y).set(n.backingFilename,b)}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 b=await s(this,N).getFileHandle(n),z=await b.createSyncAccessHandle();s(this,k).set(n,b),s(this,y).set(n,z),u()}));await Promise.all([...r,...d]),await this.maintainPool(i?this.initialPoolSize:this.maintainedPoolSize)},E=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
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,F).get(t);if(!e)throw new p("EBADF","Bad file descriptor");return e},v=function(){let t=++R(this,j)._;for(;s(this,F).has(t);)R(this,j)._++;return t},x=async function(t,e){let a=o(this,l,g).call(this,t),i=(e==null?void 0:e.from)||s(this,T);for(let h of a)i=await i.getDirectoryHandle(h,{create:e==null?void 0: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{st as OpfsAhpFS};
|
|
4
|
-
//# sourceMappingURL=opfs-ahp.
|
|
4
|
+
//# sourceMappingURL=opfs-ahp.DCqcnT0l.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opfs-ahp.B60qwkx_.js","sources":["../../../../node_modules/.pnpm/@electric-sql+pglite@0.2.17/node_modules/@electric-sql/pglite/dist/fs/opfs-ahp.js"],"sourcesContent":["import{f as B,g as z}from\"../chunk-WGR4JCLS.js\";import{e as s,f as g,g as E,h as r,i as _,j as R}from\"../chunk-BTBUZ646.js\";R();var $=\"state.txt\",G=\"data\",T={DIR:16384,FILE:32768},H,v,F,M,y,b,m,x,P,D,S,n,C,O,k,w,f,I,W,j,L=class extends B{constructor(e,{initialPoolSize:t=1e3,maintainedPoolSize:o=100,debug:i=!1}={}){super(e,{debug:i});g(this,n);g(this,H);g(this,v);g(this,F);g(this,M);g(this,y);g(this,b,new Map);g(this,m,new Map);g(this,x,0);g(this,P,new Map);g(this,D,new Map);this.lastCheckpoint=0;this.checkpointInterval=1e3*60;this.poolCounter=0;g(this,S,new Set);this.initialPoolSize=t,this.maintainedPoolSize=o}async init(e,t){return await r(this,n,C).call(this),super.init(e,t)}async syncToFs(e=!1){await this.maybeCheckpointState(),await this.maintainPool(),e||this.flush()}async closeFs(){for(let e of s(this,m).values())e.close();s(this,y).flush(),s(this,y).close(),this.pg.Module.FS.quit()}async maintainPool(e){e=e||this.maintainedPoolSize;let t=e-this.state.pool.length,o=[];for(let i=0;i<t;i++)o.push(new Promise(async c=>{++this.poolCounter;let a=`${(Date.now()-1704063600).toString(16).padStart(8,\"0\")}-${this.poolCounter.toString(16).padStart(8,\"0\")}`,h=await s(this,F).getFileHandle(a,{create:!0}),d=await h.createSyncAccessHandle();s(this,b).set(a,h),s(this,m).set(a,d),r(this,n,k).call(this,{opp:\"createPoolFile\",args:[a]}),this.state.pool.push(a),c()}));for(let i=0;i>t;i--)o.push(new Promise(async c=>{let a=this.state.pool.pop();r(this,n,k).call(this,{opp:\"deletePoolFile\",args:[a]});let h=s(this,b).get(a);s(this,m).get(a)?.close(),await s(this,F).removeEntry(h.name),s(this,b).delete(a),s(this,m).delete(a),c()}));await Promise.all(o)}_createPoolFileState(e){this.state.pool.push(e)}_deletePoolFileState(e){let t=this.state.pool.indexOf(e);t>-1&&this.state.pool.splice(t,1)}async maybeCheckpointState(){Date.now()-this.lastCheckpoint>this.checkpointInterval&&await this.checkpointState()}async checkpointState(){let e=new TextEncoder().encode(JSON.stringify(this.state));s(this,y).truncate(0),s(this,y).write(e,{at:0}),s(this,y).flush(),this.lastCheckpoint=Date.now()}flush(){for(let e of s(this,S))try{e.flush()}catch{}s(this,S).clear()}chmod(e,t){r(this,n,O).call(this,{opp:\"chmod\",args:[e,t]},()=>{this._chmodState(e,t)})}_chmodState(e,t){let o=r(this,n,f).call(this,e);o.mode=t}close(e){let t=r(this,n,I).call(this,e);s(this,P).delete(e),s(this,D).delete(t)}fstat(e){let t=r(this,n,I).call(this,e);return this.lstat(t)}lstat(e){let t=r(this,n,f).call(this,e),o=t.type===\"file\"?s(this,m).get(t.backingFilename).getSize():0,i=4096;return{dev:0,ino:0,mode:t.mode,nlink:1,uid:0,gid:0,rdev:0,size:o,blksize:i,blocks:Math.ceil(o/i),atime:t.lastModified,mtime:t.lastModified,ctime:t.lastModified}}mkdir(e,t){r(this,n,O).call(this,{opp:\"mkdir\",args:[e,t]},()=>{this._mkdirState(e,t)})}_mkdirState(e,t){let o=r(this,n,w).call(this,e),i=o.pop(),c=[],a=this.state.root;for(let d of o){if(c.push(e),!Object.prototype.hasOwnProperty.call(a.children,d))if(t?.recursive)this.mkdir(c.join(\"/\"));else throw new p(\"ENOENT\",\"No such file or directory\");if(a.children[d].type!==\"directory\")throw new p(\"ENOTDIR\",\"Not a directory\");a=a.children[d]}if(Object.prototype.hasOwnProperty.call(a.children,i))throw new p(\"EEXIST\",\"File exists\");let h={type:\"directory\",lastModified:Date.now(),mode:t?.mode||T.DIR,children:{}};a.children[i]=h}open(e,t,o){if(r(this,n,f).call(this,e).type!==\"file\")throw new p(\"EISDIR\",\"Is a directory\");let c=r(this,n,W).call(this);return s(this,P).set(c,e),s(this,D).set(e,c),c}readdir(e){let t=r(this,n,f).call(this,e);if(t.type!==\"directory\")throw new p(\"ENOTDIR\",\"Not a directory\");return Object.keys(t.children)}read(e,t,o,i,c){let a=r(this,n,I).call(this,e),h=r(this,n,f).call(this,a);if(h.type!==\"file\")throw new p(\"EISDIR\",\"Is a directory\");return s(this,m).get(h.backingFilename).read(new Uint8Array(t.buffer,o,i),{at:c})}rename(e,t){r(this,n,O).call(this,{opp:\"rename\",args:[e,t]},()=>{this._renameState(e,t,!0)})}_renameState(e,t,o=!1){let i=r(this,n,w).call(this,e),c=i.pop(),a=r(this,n,f).call(this,i.join(\"/\"));if(!Object.prototype.hasOwnProperty.call(a.children,c))throw new p(\"ENOENT\",\"No such file or directory\");let h=r(this,n,w).call(this,t),d=h.pop(),l=r(this,n,f).call(this,h.join(\"/\"));if(o&&Object.prototype.hasOwnProperty.call(l.children,d)){let u=l.children[d];s(this,m).get(u.backingFilename).truncate(0),this.state.pool.push(u.backingFilename)}l.children[d]=a.children[c],delete a.children[c]}rmdir(e){r(this,n,O).call(this,{opp:\"rmdir\",args:[e]},()=>{this._rmdirState(e)})}_rmdirState(e){let t=r(this,n,w).call(this,e),o=t.pop(),i=r(this,n,f).call(this,t.join(\"/\"));if(!Object.prototype.hasOwnProperty.call(i.children,o))throw new p(\"ENOENT\",\"No such file or directory\");let c=i.children[o];if(c.type!==\"directory\")throw new p(\"ENOTDIR\",\"Not a directory\");if(Object.keys(c.children).length>0)throw new p(\"ENOTEMPTY\",\"Directory not empty\");delete i.children[o]}truncate(e,t=0){let o=r(this,n,f).call(this,e);if(o.type!==\"file\")throw new p(\"EISDIR\",\"Is a directory\");let i=s(this,m).get(o.backingFilename);if(!i)throw new p(\"ENOENT\",\"No such file or directory\");i.truncate(t),s(this,S).add(i)}unlink(e){r(this,n,O).call(this,{opp:\"unlink\",args:[e]},()=>{this._unlinkState(e,!0)})}_unlinkState(e,t=!1){let o=r(this,n,w).call(this,e),i=o.pop(),c=r(this,n,f).call(this,o.join(\"/\"));if(!Object.prototype.hasOwnProperty.call(c.children,i))throw new p(\"ENOENT\",\"No such file or directory\");let a=c.children[i];if(a.type!==\"file\")throw new p(\"EISDIR\",\"Is a directory\");if(delete c.children[i],t){let h=s(this,m).get(a.backingFilename);h?.truncate(0),s(this,S).add(h),s(this,D).has(e)&&(s(this,P).delete(s(this,D).get(e)),s(this,D).delete(e))}this.state.pool.push(a.backingFilename)}utimes(e,t,o){r(this,n,O).call(this,{opp:\"utimes\",args:[e,t,o]},()=>{this._utimesState(e,t,o)})}_utimesState(e,t,o){let i=r(this,n,f).call(this,e);i.lastModified=o}writeFile(e,t,o){let i=r(this,n,w).call(this,e),c=i.pop(),a=r(this,n,f).call(this,i.join(\"/\"));if(Object.prototype.hasOwnProperty.call(a.children,c)){let l=a.children[c];l.lastModified=Date.now(),r(this,n,k).call(this,{opp:\"setLastModified\",args:[e,l.lastModified]})}else{if(this.state.pool.length===0)throw new Error(\"No more file handles available in the pool\");let l={type:\"file\",lastModified:Date.now(),mode:o?.mode||T.FILE,backingFilename:this.state.pool.pop()};a.children[c]=l,r(this,n,k).call(this,{opp:\"createFileNode\",args:[e,l]})}let h=a.children[c],d=s(this,m).get(h.backingFilename);t.length>0&&(d.write(typeof t==\"string\"?new TextEncoder().encode(t):new Uint8Array(t),{at:0}),e.startsWith(\"/pg_wal\")&&s(this,S).add(d))}_createFileNodeState(e,t){let o=r(this,n,w).call(this,e),i=o.pop(),c=r(this,n,f).call(this,o.join(\"/\"));c.children[i]=t;let a=this.state.pool.indexOf(t.backingFilename);return a>-1&&this.state.pool.splice(a,1),t}_setLastModifiedState(e,t){let o=r(this,n,f).call(this,e);o.lastModified=t}write(e,t,o,i,c){let a=r(this,n,I).call(this,e),h=r(this,n,f).call(this,a);if(h.type!==\"file\")throw new p(\"EISDIR\",\"Is a directory\");let d=s(this,m).get(h.backingFilename);if(!d)throw new p(\"EBADF\",\"Bad file descriptor\");let l=d.write(new Uint8Array(t,o,i),{at:c});return a.startsWith(\"/pg_wal\")&&s(this,S).add(d),l}};H=new WeakMap,v=new WeakMap,F=new WeakMap,M=new WeakMap,y=new WeakMap,b=new WeakMap,m=new WeakMap,x=new WeakMap,P=new WeakMap,D=new WeakMap,S=new WeakMap,n=new WeakSet,C=async function(){E(this,H,await navigator.storage.getDirectory()),E(this,v,await r(this,n,j).call(this,this.dataDir,{create:!0})),E(this,F,await r(this,n,j).call(this,G,{from:s(this,v),create:!0})),E(this,M,await s(this,v).getFileHandle($,{create:!0})),E(this,y,await s(this,M).createSyncAccessHandle());let e=new ArrayBuffer(s(this,y).getSize());s(this,y).read(e,{at:0});let t,o=new TextDecoder().decode(e).split(`\n`),i=!1;try{t=JSON.parse(o[0])}catch{t={root:{type:\"directory\",lastModified:Date.now(),mode:T.DIR,children:{}},pool:[]},s(this,y).truncate(0),s(this,y).write(new TextEncoder().encode(JSON.stringify(t)),{at:0}),i=!0}this.state=t;let c=o.slice(1).filter(Boolean).map(l=>JSON.parse(l));for(let l of c){let u=`_${l.opp}State`;if(typeof this[u]==\"function\")try{this[u].bind(this)(...l.args)}catch(N){console.warn(\"Error applying OPFS AHP WAL entry\",l,N)}}let a=[],h=async l=>{if(l.type===\"file\")try{let u=await s(this,F).getFileHandle(l.backingFilename),N=await u.createSyncAccessHandle();s(this,b).set(l.backingFilename,u),s(this,m).set(l.backingFilename,N)}catch(u){console.error(\"Error opening file handle for node\",l,u)}else for(let u of Object.values(l.children))a.push(h(u))};await h(this.state.root);let d=[];for(let l of this.state.pool)d.push(new Promise(async u=>{s(this,b).has(l)&&console.warn(\"File handle already exists for pool file\",l);let N=await s(this,F).getFileHandle(l),U=await N.createSyncAccessHandle();s(this,b).set(l,N),s(this,m).set(l,U),u()}));await Promise.all([...a,...d]),await this.maintainPool(i?this.initialPoolSize:this.maintainedPoolSize)},O=function(e,t){let o=r(this,n,k).call(this,e);try{t()}catch(i){throw s(this,y).truncate(o),i}},k=function(e){let t=JSON.stringify(e),o=new TextEncoder().encode(`\n${t}`),i=s(this,y).getSize();return s(this,y).write(o,{at:i}),s(this,S).add(s(this,y)),i},w=function(e){return e.split(\"/\").filter(Boolean)},f=function(e,t){let o=r(this,n,w).call(this,e),i=t||this.state.root;for(let c of o){if(i.type!==\"directory\")throw new p(\"ENOTDIR\",\"Not a directory\");if(!Object.prototype.hasOwnProperty.call(i.children,c))throw new p(\"ENOENT\",\"No such file or directory\");i=i.children[c]}return i},I=function(e){let t=s(this,P).get(e);if(!t)throw new p(\"EBADF\",\"Bad file descriptor\");return t},W=function(){let e=++_(this,x)._;for(;s(this,P).has(e);)_(this,x)._++;return e},j=async function(e,t){let o=r(this,n,w).call(this,e),i=t?.from||s(this,H);for(let c of o)i=await i.getDirectoryHandle(c,{create:t?.create});return i};var p=class extends Error{constructor(A,e){super(e),typeof A==\"number\"?this.code=A:typeof A==\"string\"&&(this.code=z[A])}};export{L as OpfsAhpFS};\n//# sourceMappingURL=opfs-ahp.js.map"],"names":["R","$","G","T","H","v","F","M","y","b","m","x","P","D","n","C","O","k","w","I","W","j","L","B","e","t","o","g","r","s","c","a","h","l","E","N","U","_","A","z"],"mappings":"ycAA4HA,EAAC,EAAM,IAACC,EAAE,YAAYC,EAAE,OAAOC,EAAE,CAAC,IAAI,MAAM,KAAK,KAAK,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAE,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAE,EAAEC,EAAEC,EAAEC,EAAEC,GAAE,cAAcC,CAAC,CAAC,YAAYC,EAAE,CAAC,gBAAgBC,EAAE,IAAI,mBAAmBC,EAAE,IAAI,MAAM,EAAE,EAAE,EAAE,CAAE,EAAC,CAAC,MAAMF,EAAE,CAAC,MAAM,CAAC,CAAC,EAAEG,EAAE,KAAKb,CAAC,EAAEa,EAAE,KAAKvB,CAAC,EAAEuB,EAAE,KAAKtB,CAAC,EAAEsB,EAAE,KAAKrB,CAAC,EAAEqB,EAAE,KAAKpB,CAAC,EAAEoB,EAAE,KAAKnB,CAAC,EAAEmB,EAAE,KAAKlB,EAAE,IAAI,GAAG,EAAEkB,EAAE,KAAKjB,EAAE,IAAI,GAAG,EAAEiB,EAAE,KAAKhB,EAAE,CAAC,EAAEgB,EAAE,KAAKf,EAAE,IAAI,GAAG,EAAEe,EAAE,KAAKd,EAAE,IAAI,GAAG,EAAE,KAAK,eAAe,EAAE,KAAK,mBAAmB,IAAI,GAAG,KAAK,YAAY,EAAEc,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,gBAAgBF,EAAE,KAAK,mBAAmBC,CAAC,CAAC,MAAM,KAAKF,EAAEC,EAAE,CAAC,OAAO,MAAMG,EAAE,KAAKd,EAAEC,CAAC,EAAE,KAAK,IAAI,EAAE,MAAM,KAAKS,EAAEC,CAAC,CAAC,CAAC,MAAM,SAASD,EAAE,GAAG,CAAC,MAAM,KAAK,qBAAsB,EAAC,MAAM,KAAK,aAAc,EAACA,GAAG,KAAK,MAAO,CAAA,CAAC,MAAM,SAAS,CAAC,QAAQA,KAAKK,EAAE,KAAKnB,CAAC,EAAE,OAAM,EAAGc,EAAE,MAAO,EAACK,EAAE,KAAKrB,CAAC,EAAE,MAAO,EAACqB,EAAE,KAAKrB,CAAC,EAAE,MAAO,EAAC,KAAK,GAAG,OAAO,GAAG,KAAI,CAAE,CAAC,MAAM,aAAagB,EAAE,CAACA,EAAEA,GAAG,KAAK,mBAAmB,IAAIC,EAAED,EAAE,KAAK,MAAM,KAAK,OAAOE,EAAE,CAAE,EAAC,QAAQ,EAAE,EAAE,EAAED,EAAE,IAAIC,EAAE,KAAK,IAAI,QAAQ,MAAMI,GAAG,CAAC,EAAE,KAAK,YAAY,IAAIC,EAAE,IAAI,KAAK,IAAK,EAAC,YAAY,SAAS,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,KAAK,YAAY,SAAS,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,GAAGC,EAAE,MAAMH,EAAE,KAAKvB,CAAC,EAAE,cAAcyB,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,MAAMC,EAAE,uBAAsB,EAAGH,EAAE,KAAKpB,CAAC,EAAE,IAAIsB,EAAEC,CAAC,EAAEH,EAAE,KAAKnB,CAAC,EAAE,IAAIqB,EAAE,CAAC,EAAEH,EAAE,KAAKd,EAAEG,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,iBAAiB,KAAK,CAACc,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,KAAK,KAAKA,CAAC,EAAED,EAAG,CAAA,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAEL,EAAE,IAAIC,EAAE,KAAK,IAAI,QAAQ,MAAMI,GAAG,OAAC,IAAIC,EAAE,KAAK,MAAM,KAAK,IAAK,EAACH,EAAE,KAAKd,EAAEG,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,iBAAiB,KAAK,CAACc,CAAC,CAAC,CAAC,EAAE,IAAIC,EAAEH,EAAE,KAAKpB,CAAC,EAAE,IAAIsB,CAAC,GAAEF,EAAAA,EAAE,KAAKnB,CAAC,EAAE,IAAIqB,CAAC,IAAfF,MAAAA,EAAkB,QAAQ,MAAMA,EAAE,KAAKvB,CAAC,EAAE,YAAY0B,EAAE,IAAI,EAAEH,EAAE,KAAKpB,CAAC,EAAE,OAAOsB,CAAC,EAAEF,EAAE,KAAKnB,CAAC,EAAE,OAAOqB,CAAC,EAAED,EAAC,CAAE,CAAC,CAAC,EAAE,MAAM,QAAQ,IAAIJ,CAAC,CAAC,CAAC,qBAAqBF,EAAE,CAAC,KAAK,MAAM,KAAK,KAAKA,CAAC,CAAC,CAAC,qBAAqBA,EAAE,CAAC,IAAIC,EAAE,KAAK,MAAM,KAAK,QAAQD,CAAC,EAAEC,EAAE,IAAI,KAAK,MAAM,KAAK,OAAOA,EAAE,CAAC,CAAC,CAAC,MAAM,sBAAsB,CAAC,KAAK,MAAM,KAAK,eAAe,KAAK,oBAAoB,MAAM,KAAK,gBAAiB,CAAA,CAAC,MAAM,iBAAiB,CAAC,IAAID,EAAE,IAAI,YAAW,EAAG,OAAO,KAAK,UAAU,KAAK,KAAK,CAAC,EAAEK,EAAE,KAAKrB,CAAC,EAAE,SAAS,CAAC,EAAEqB,EAAE,KAAKrB,CAAC,EAAE,MAAMgB,EAAE,CAAC,GAAG,CAAC,CAAC,EAAEK,EAAE,KAAKrB,CAAC,EAAE,MAAO,EAAC,KAAK,eAAe,KAAK,IAAG,CAAE,CAAC,OAAO,CAAC,QAAQgB,KAAKK,EAAE,KAAK,CAAC,EAAE,GAAG,CAACL,EAAE,MAAK,CAAE,MAAM,CAAA,CAAEK,EAAE,KAAK,CAAC,EAAE,MAAO,CAAA,CAAC,MAAML,EAAEC,EAAE,CAACG,EAAE,KAAKd,EAAEE,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,QAAQ,KAAK,CAACQ,EAAEC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,YAAYD,EAAEC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAYD,EAAEC,EAAE,CAAC,IAAIC,EAAEE,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKU,CAAC,EAAEE,EAAE,KAAKD,CAAC,CAAC,MAAMD,EAAE,CAAC,IAAIC,EAAEG,EAAE,KAAKd,EAAEK,CAAC,EAAE,KAAK,KAAKK,CAAC,EAAEK,EAAE,KAAKjB,CAAC,EAAE,OAAOY,CAAC,EAAEK,EAAE,KAAKhB,CAAC,EAAE,OAAOY,CAAC,CAAC,CAAC,MAAMD,EAAE,CAAC,IAAIC,EAAEG,EAAE,KAAKd,EAAEK,CAAC,EAAE,KAAK,KAAKK,CAAC,EAAE,OAAO,KAAK,MAAMC,CAAC,CAAC,CAAC,MAAMD,EAAE,CAAC,IAAIC,EAAEG,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKU,CAAC,EAAEE,EAAED,EAAE,OAAO,OAAOI,EAAE,KAAKnB,CAAC,EAAE,IAAIe,EAAE,eAAe,EAAE,QAAO,EAAG,EAAE,EAAE,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAKA,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAKC,EAAE,QAAQ,EAAE,OAAO,KAAK,KAAKA,EAAE,CAAC,EAAE,MAAMD,EAAE,aAAa,MAAMA,EAAE,aAAa,MAAMA,EAAE,YAAY,CAAC,CAAC,MAAMD,EAAEC,EAAE,CAACG,EAAE,KAAKd,EAAEE,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,QAAQ,KAAK,CAACQ,EAAEC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,YAAYD,EAAEC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAYD,EAAEC,EAAE,CAAC,IAAIC,EAAEE,EAAE,KAAKd,EAAEI,CAAC,EAAE,KAAK,KAAKM,CAAC,EAAE,EAAEE,EAAE,IAAK,EAACI,EAAE,CAAE,EAACC,EAAE,KAAK,MAAM,KAAK,QAAQ,KAAKL,EAAE,CAAC,GAAGI,EAAE,KAAKN,CAAC,EAAE,CAAC,OAAO,UAAU,eAAe,KAAKO,EAAE,SAAS,CAAC,EAAE,GAAGN,GAAA,MAAAA,EAAG,UAAU,KAAK,MAAMK,EAAE,KAAK,GAAG,CAAC,MAAO,OAAM,IAAI,EAAE,SAAS,2BAA2B,EAAE,GAAGC,EAAE,SAAS,CAAC,EAAE,OAAO,YAAY,MAAM,IAAI,EAAE,UAAU,iBAAiB,EAAEA,EAAEA,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,UAAU,eAAe,KAAKA,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,EAAE,SAAS,aAAa,EAAE,IAAIC,EAAE,CAAC,KAAK,YAAY,aAAa,KAAK,IAAK,EAAC,MAAKP,GAAA,YAAAA,EAAG,OAAMtB,EAAE,IAAI,SAAS,CAAA,CAAE,EAAE4B,EAAE,SAAS,CAAC,EAAEC,CAAC,CAAC,KAAKR,EAAEC,EAAEC,EAAE,CAAC,GAAGE,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKU,CAAC,EAAE,OAAO,OAAO,MAAM,IAAI,EAAE,SAAS,gBAAgB,EAAE,IAAIM,EAAEF,EAAE,KAAKd,EAAEM,CAAC,EAAE,KAAK,IAAI,EAAE,OAAOS,EAAE,KAAKjB,CAAC,EAAE,IAAIkB,EAAEN,CAAC,EAAEK,EAAE,KAAKhB,CAAC,EAAE,IAAIW,EAAEM,CAAC,EAAEA,CAAC,CAAC,QAAQN,EAAE,CAAC,IAAIC,EAAEG,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKU,CAAC,EAAE,GAAGC,EAAE,OAAO,YAAY,MAAM,IAAI,EAAE,UAAU,iBAAiB,EAAE,OAAO,OAAO,KAAKA,EAAE,QAAQ,CAAC,CAAC,KAAKD,EAAEC,EAAEC,EAAE,EAAEI,EAAE,CAAC,IAAIC,EAAEH,EAAE,KAAKd,EAAEK,CAAC,EAAE,KAAK,KAAKK,CAAC,EAAEQ,EAAEJ,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKiB,CAAC,EAAE,GAAGC,EAAE,OAAO,OAAO,MAAM,IAAI,EAAE,SAAS,gBAAgB,EAAE,OAAOH,EAAE,KAAKnB,CAAC,EAAE,IAAIsB,EAAE,eAAe,EAAE,KAAK,IAAI,WAAWP,EAAE,OAAOC,EAAE,CAAC,EAAE,CAAC,GAAGI,CAAC,CAAC,CAAC,CAAC,OAAON,EAAEC,EAAE,CAACG,EAAE,KAAKd,EAAEE,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,SAAS,KAAK,CAACQ,EAAEC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,aAAaD,EAAEC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAaD,EAAEC,EAAEC,EAAE,GAAG,CAAC,IAAI,EAAEE,EAAE,KAAKd,EAAEI,CAAC,EAAE,KAAK,KAAKM,CAAC,EAAEM,EAAE,EAAE,IAAK,EAACC,EAAEH,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,UAAU,eAAe,KAAKiB,EAAE,SAASD,CAAC,EAAE,MAAM,IAAI,EAAE,SAAS,2BAA2B,EAAE,IAAIE,EAAEJ,EAAE,KAAKd,EAAEI,CAAC,EAAE,KAAK,KAAKO,CAAC,EAAE,EAAEO,EAAE,MAAMC,EAAEL,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKkB,EAAE,KAAK,GAAG,CAAC,EAAE,GAAGN,GAAG,OAAO,UAAU,eAAe,KAAKO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAEA,EAAE,SAAS,CAAC,EAAEJ,EAAE,KAAKnB,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,KAAK,MAAM,KAAK,KAAK,EAAE,eAAe,CAAC,CAACuB,EAAE,SAAS,CAAC,EAAEF,EAAE,SAASD,CAAC,EAAE,OAAOC,EAAE,SAASD,CAAC,CAAC,CAAC,MAAMN,EAAE,CAACI,EAAE,KAAKd,EAAEE,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,QAAQ,KAAK,CAACQ,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,YAAYA,CAAC,CAAC,CAAC,CAAC,CAAC,YAAYA,EAAE,CAAC,IAAIC,EAAEG,EAAE,KAAKd,EAAEI,CAAC,EAAE,KAAK,KAAKM,CAAC,EAAEE,EAAED,EAAE,IAAK,EAAC,EAAEG,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKW,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,UAAU,eAAe,KAAK,EAAE,SAASC,CAAC,EAAE,MAAM,IAAI,EAAE,SAAS,2BAA2B,EAAE,IAAII,EAAE,EAAE,SAASJ,CAAC,EAAE,GAAGI,EAAE,OAAO,YAAY,MAAM,IAAI,EAAE,UAAU,iBAAiB,EAAE,GAAG,OAAO,KAAKA,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE,YAAY,qBAAqB,EAAE,OAAO,EAAE,SAASJ,CAAC,CAAC,CAAC,SAASF,EAAEC,EAAE,EAAE,CAAC,IAAIC,EAAEE,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKU,CAAC,EAAE,GAAGE,EAAE,OAAO,OAAO,MAAM,IAAI,EAAE,SAAS,gBAAgB,EAAE,IAAI,EAAEG,EAAE,KAAKnB,CAAC,EAAE,IAAIgB,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,MAAM,IAAI,EAAE,SAAS,2BAA2B,EAAE,EAAE,SAASD,CAAC,EAAEI,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,OAAOL,EAAE,CAACI,EAAE,KAAKd,EAAEE,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,SAAS,KAAK,CAACQ,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,aAAaA,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAaA,EAAEC,EAAE,GAAG,CAAC,IAAIC,EAAEE,EAAE,KAAKd,EAAEI,CAAC,EAAE,KAAK,KAAKM,CAAC,EAAE,EAAEE,EAAE,IAAK,EAACI,EAAEF,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKY,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,UAAU,eAAe,KAAKI,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,EAAE,SAAS,2BAA2B,EAAE,IAAIC,EAAED,EAAE,SAAS,CAAC,EAAE,GAAGC,EAAE,OAAO,OAAO,MAAM,IAAI,EAAE,SAAS,gBAAgB,EAAE,GAAG,OAAOD,EAAE,SAAS,CAAC,EAAEL,EAAE,CAAC,IAAIO,EAAEH,EAAE,KAAKnB,CAAC,EAAE,IAAIqB,EAAE,eAAe,EAAEC,GAAAA,MAAAA,EAAG,SAAS,GAAGH,EAAE,KAAK,CAAC,EAAE,IAAIG,CAAC,EAAEH,EAAE,KAAKhB,CAAC,EAAE,IAAIW,CAAC,IAAIK,EAAE,KAAKjB,CAAC,EAAE,OAAOiB,EAAE,KAAKhB,CAAC,EAAE,IAAIW,CAAC,CAAC,EAAEK,EAAE,KAAKhB,CAAC,EAAE,OAAOW,CAAC,EAAE,CAAC,KAAK,MAAM,KAAK,KAAKO,EAAE,eAAe,CAAC,CAAC,OAAOP,EAAEC,EAAEC,EAAE,CAACE,EAAE,KAAKd,EAAEE,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,SAAS,KAAK,CAACQ,EAAEC,EAAEC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,aAAaF,EAAEC,EAAEC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAaF,EAAEC,EAAEC,EAAE,CAAC,IAAI,EAAEE,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKU,CAAC,EAAE,EAAE,aAAaE,CAAC,CAAC,UAAUF,EAAEC,EAAEC,EAAE,CAAC,IAAI,EAAEE,EAAE,KAAKd,EAAEI,CAAC,EAAE,KAAK,KAAKM,CAAC,EAAEM,EAAE,EAAE,IAAG,EAAGC,EAAEH,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,OAAO,UAAU,eAAe,KAAKiB,EAAE,SAASD,CAAC,EAAE,CAAC,IAAIG,EAAEF,EAAE,SAASD,CAAC,EAAEG,EAAE,aAAa,KAAK,IAAG,EAAGL,EAAE,KAAKd,EAAEG,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,kBAAkB,KAAK,CAACO,EAAES,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,MAAM,KAAK,SAAS,EAAE,MAAM,IAAI,MAAM,4CAA4C,EAAE,IAAIA,EAAE,CAAC,KAAK,OAAO,aAAa,KAAK,IAAG,EAAG,MAAKP,GAAA,YAAAA,EAAG,OAAMvB,EAAE,KAAK,gBAAgB,KAAK,MAAM,KAAK,KAAK,EAAE4B,EAAE,SAASD,CAAC,EAAEG,EAAEL,EAAE,KAAKd,EAAEG,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,iBAAiB,KAAK,CAACO,EAAES,CAAC,CAAC,CAAC,CAAC,CAAC,IAAID,EAAED,EAAE,SAASD,CAAC,EAAE,EAAED,EAAE,KAAKnB,CAAC,EAAE,IAAIsB,EAAE,eAAe,EAAEP,EAAE,OAAO,IAAI,EAAE,MAAM,OAAOA,GAAG,SAAS,IAAI,YAAa,EAAC,OAAOA,CAAC,EAAE,IAAI,WAAWA,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAED,EAAE,WAAW,SAAS,GAAGK,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,qBAAqBL,EAAEC,EAAE,CAAC,IAAIC,EAAEE,EAAE,KAAKd,EAAEI,CAAC,EAAE,KAAK,KAAKM,CAAC,EAAE,EAAEE,EAAE,IAAK,EAACI,EAAEF,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKY,EAAE,KAAK,GAAG,CAAC,EAAEI,EAAE,SAAS,CAAC,EAAEL,EAAE,IAAIM,EAAE,KAAK,MAAM,KAAK,QAAQN,EAAE,eAAe,EAAE,OAAOM,EAAE,IAAI,KAAK,MAAM,KAAK,OAAOA,EAAE,CAAC,EAAEN,CAAC,CAAC,sBAAsBD,EAAEC,EAAE,CAAC,IAAIC,EAAEE,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKU,CAAC,EAAEE,EAAE,aAAaD,CAAC,CAAC,MAAMD,EAAEC,EAAEC,EAAE,EAAEI,EAAE,CAAC,IAAIC,EAAEH,EAAE,KAAKd,EAAEK,CAAC,EAAE,KAAK,KAAKK,CAAC,EAAEQ,EAAEJ,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKiB,CAAC,EAAE,GAAGC,EAAE,OAAO,OAAO,MAAM,IAAI,EAAE,SAAS,gBAAgB,EAAE,IAAI,EAAEH,EAAE,KAAKnB,CAAC,EAAE,IAAIsB,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,MAAM,IAAI,EAAE,QAAQ,qBAAqB,EAAE,IAAIC,EAAE,EAAE,MAAM,IAAI,WAAWR,EAAEC,EAAE,CAAC,EAAE,CAAC,GAAGI,CAAC,CAAC,EAAE,OAAOC,EAAE,WAAW,SAAS,GAAGF,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,EAAEI,CAAC,CAAC,EAAE7B,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQ,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQC,EAAE,gBAAgB,CAACmB,EAAE,KAAK9B,EAAE,MAAM,UAAU,QAAQ,aAAY,CAAE,EAAE8B,EAAE,KAAK7B,EAAE,MAAMuB,EAAE,KAAKd,EAAEO,CAAC,EAAE,KAAK,KAAK,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAEa,EAAE,KAAK5B,EAAE,MAAMsB,EAAE,KAAKd,EAAEO,CAAC,EAAE,KAAK,KAAKnB,EAAE,CAAC,KAAK2B,EAAE,KAAKxB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE6B,EAAE,KAAK3B,EAAE,MAAMsB,EAAE,KAAKxB,CAAC,EAAE,cAAcJ,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAEiC,EAAE,KAAK1B,EAAE,MAAMqB,EAAE,KAAKtB,CAAC,EAAE,uBAAwB,CAAA,EAAE,IAAIiB,EAAE,IAAI,YAAYK,EAAE,KAAKrB,CAAC,EAAE,QAAO,CAAE,EAAEqB,EAAE,KAAKrB,CAAC,EAAE,KAAKgB,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAIC,EAAEC,EAAE,IAAI,YAAW,EAAG,OAAOF,CAAC,EAAE,MAAM;AAAA,CAC3oP,EAAE,EAAE,GAAG,GAAG,CAACC,EAAE,KAAK,MAAMC,EAAE,CAAC,CAAC,CAAC,MAAM,CAACD,EAAE,CAAC,KAAK,CAAC,KAAK,YAAY,aAAa,KAAK,IAAK,EAAC,KAAKtB,EAAE,IAAI,SAAS,CAAA,CAAE,EAAE,KAAK,CAAE,CAAA,EAAE0B,EAAE,KAAKrB,CAAC,EAAE,SAAS,CAAC,EAAEqB,EAAE,KAAKrB,CAAC,EAAE,MAAM,IAAI,YAAW,EAAG,OAAO,KAAK,UAAUiB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,MAAMA,EAAE,IAAIK,EAAEJ,EAAE,MAAM,CAAC,EAAE,OAAO,OAAO,EAAE,IAAIO,GAAG,KAAK,MAAMA,CAAC,CAAC,EAAE,QAAQA,KAAKH,EAAE,CAAC,IAAI,EAAE,IAAIG,EAAE,GAAG,QAAQ,GAAG,OAAO,KAAK,CAAC,GAAG,WAAW,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE,GAAGA,EAAE,IAAI,CAAC,OAAOE,EAAE,CAAC,QAAQ,KAAK,oCAAoCF,EAAEE,CAAC,CAAC,CAAC,CAAC,IAAIJ,EAAE,CAAE,EAACC,EAAE,MAAMC,GAAG,CAAC,GAAGA,EAAE,OAAO,OAAO,GAAG,CAAC,IAAI,EAAE,MAAMJ,EAAE,KAAKvB,CAAC,EAAE,cAAc2B,EAAE,eAAe,EAAEE,EAAE,MAAM,EAAE,uBAAsB,EAAGN,EAAE,KAAKpB,CAAC,EAAE,IAAIwB,EAAE,gBAAgB,CAAC,EAAEJ,EAAE,KAAKnB,CAAC,EAAE,IAAIuB,EAAE,gBAAgBE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,MAAM,qCAAqCF,EAAE,CAAC,CAAC,KAAM,SAAQ,KAAK,OAAO,OAAOA,EAAE,QAAQ,EAAEF,EAAE,KAAKC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAMA,EAAE,KAAK,MAAM,IAAI,EAAE,IAAI,EAAE,CAAE,EAAC,QAAQC,KAAK,KAAK,MAAM,KAAK,EAAE,KAAK,IAAI,QAAQ,MAAM,GAAG,CAACJ,EAAE,KAAKpB,CAAC,EAAE,IAAIwB,CAAC,GAAG,QAAQ,KAAK,2CAA2CA,CAAC,EAAE,IAAIE,EAAE,MAAMN,EAAE,KAAKvB,CAAC,EAAE,cAAc2B,CAAC,EAAEG,EAAE,MAAMD,EAAE,uBAAwB,EAACN,EAAE,KAAKpB,CAAC,EAAE,IAAIwB,EAAEE,CAAC,EAAEN,EAAE,KAAKnB,CAAC,EAAE,IAAIuB,EAAEG,CAAC,EAAE,EAAC,CAAE,CAAC,CAAC,EAAE,MAAM,QAAQ,IAAI,CAAC,GAAGL,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,aAAa,EAAE,KAAK,gBAAgB,KAAK,kBAAkB,CAAC,EAAEf,EAAE,SAASQ,EAAEC,EAAE,CAAC,IAAIC,EAAEE,EAAE,KAAKd,EAAEG,CAAC,EAAE,KAAK,KAAKO,CAAC,EAAE,GAAG,CAACC,EAAC,CAAE,OAAO,EAAE,CAAC,MAAMI,EAAE,KAAKrB,CAAC,EAAE,SAASkB,CAAC,EAAE,CAAC,CAAC,EAAET,EAAE,SAASO,EAAE,CAAC,IAAIC,EAAE,KAAK,UAAUD,CAAC,EAAEE,EAAE,IAAI,YAAa,EAAC,OAAO;AAAA,EAChzCD,CAAC,EAAE,EAAE,EAAEI,EAAE,KAAKrB,CAAC,EAAE,UAAU,OAAOqB,EAAE,KAAKrB,CAAC,EAAE,MAAMkB,EAAE,CAAC,GAAG,CAAC,CAAC,EAAEG,EAAE,KAAK,CAAC,EAAE,IAAIA,EAAE,KAAKrB,CAAC,CAAC,EAAE,CAAC,EAAEU,EAAE,SAASM,EAAE,CAAC,OAAOA,EAAE,MAAM,GAAG,EAAE,OAAO,OAAO,CAAC,EAAE,EAAE,SAASA,EAAEC,EAAE,CAAC,IAAIC,EAAEE,EAAE,KAAKd,EAAEI,CAAC,EAAE,KAAK,KAAKM,CAAC,EAAE,EAAEC,GAAG,KAAK,MAAM,KAAK,QAAQK,KAAKJ,EAAE,CAAC,GAAG,EAAE,OAAO,YAAY,MAAM,IAAI,EAAE,UAAU,iBAAiB,EAAE,GAAG,CAAC,OAAO,UAAU,eAAe,KAAK,EAAE,SAASI,CAAC,EAAE,MAAM,IAAI,EAAE,SAAS,2BAA2B,EAAE,EAAE,EAAE,SAASA,CAAC,CAAC,CAAC,OAAO,CAAC,EAAEX,EAAE,SAASK,EAAE,CAAC,IAAIC,EAAEI,EAAE,KAAKjB,CAAC,EAAE,IAAIY,CAAC,EAAE,GAAG,CAACC,EAAE,MAAM,IAAI,EAAE,QAAQ,qBAAqB,EAAE,OAAOA,CAAC,EAAEL,EAAE,UAAU,CAAC,IAAII,EAAE,EAAEa,EAAE,KAAK1B,CAAC,EAAE,EAAE,KAAKkB,EAAE,KAAKjB,CAAC,EAAE,IAAIY,CAAC,GAAGa,EAAE,KAAK1B,CAAC,EAAE,IAAI,OAAOa,CAAC,EAAEH,EAAE,eAAeG,EAAEC,EAAE,CAAC,IAAIC,EAAEE,EAAE,KAAKd,EAAEI,CAAC,EAAE,KAAK,KAAKM,CAAC,EAAE,GAAEC,GAAA,YAAAA,EAAG,OAAMI,EAAE,KAAKzB,CAAC,EAAE,QAAQ0B,KAAKJ,EAAE,EAAE,MAAM,EAAE,mBAAmBI,EAAE,CAAC,OAAOL,GAAA,YAAAA,EAAG,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,KAAK,CAAC,YAAYa,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,OAAOA,GAAG,SAAS,KAAK,KAAKA,EAAE,OAAOA,GAAG,WAAW,KAAK,KAAKC,EAAED,CAAC,EAAE,CAAC","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"opfs-ahp.DCqcnT0l.js","sources":["../../../../node_modules/.pnpm/@electric-sql+pglite@0.2.17/node_modules/@electric-sql/pglite/dist/fs/opfs-ahp.js"],"sourcesContent":["import{f as B,g as z}from\"../chunk-WGR4JCLS.js\";import{e as s,f as g,g as E,h as r,i as _,j as R}from\"../chunk-BTBUZ646.js\";R();var $=\"state.txt\",G=\"data\",T={DIR:16384,FILE:32768},H,v,F,M,y,b,m,x,P,D,S,n,C,O,k,w,f,I,W,j,L=class extends B{constructor(e,{initialPoolSize:t=1e3,maintainedPoolSize:o=100,debug:i=!1}={}){super(e,{debug:i});g(this,n);g(this,H);g(this,v);g(this,F);g(this,M);g(this,y);g(this,b,new Map);g(this,m,new Map);g(this,x,0);g(this,P,new Map);g(this,D,new Map);this.lastCheckpoint=0;this.checkpointInterval=1e3*60;this.poolCounter=0;g(this,S,new Set);this.initialPoolSize=t,this.maintainedPoolSize=o}async init(e,t){return await r(this,n,C).call(this),super.init(e,t)}async syncToFs(e=!1){await this.maybeCheckpointState(),await this.maintainPool(),e||this.flush()}async closeFs(){for(let e of s(this,m).values())e.close();s(this,y).flush(),s(this,y).close(),this.pg.Module.FS.quit()}async maintainPool(e){e=e||this.maintainedPoolSize;let t=e-this.state.pool.length,o=[];for(let i=0;i<t;i++)o.push(new Promise(async c=>{++this.poolCounter;let a=`${(Date.now()-1704063600).toString(16).padStart(8,\"0\")}-${this.poolCounter.toString(16).padStart(8,\"0\")}`,h=await s(this,F).getFileHandle(a,{create:!0}),d=await h.createSyncAccessHandle();s(this,b).set(a,h),s(this,m).set(a,d),r(this,n,k).call(this,{opp:\"createPoolFile\",args:[a]}),this.state.pool.push(a),c()}));for(let i=0;i>t;i--)o.push(new Promise(async c=>{let a=this.state.pool.pop();r(this,n,k).call(this,{opp:\"deletePoolFile\",args:[a]});let h=s(this,b).get(a);s(this,m).get(a)?.close(),await s(this,F).removeEntry(h.name),s(this,b).delete(a),s(this,m).delete(a),c()}));await Promise.all(o)}_createPoolFileState(e){this.state.pool.push(e)}_deletePoolFileState(e){let t=this.state.pool.indexOf(e);t>-1&&this.state.pool.splice(t,1)}async maybeCheckpointState(){Date.now()-this.lastCheckpoint>this.checkpointInterval&&await this.checkpointState()}async checkpointState(){let e=new TextEncoder().encode(JSON.stringify(this.state));s(this,y).truncate(0),s(this,y).write(e,{at:0}),s(this,y).flush(),this.lastCheckpoint=Date.now()}flush(){for(let e of s(this,S))try{e.flush()}catch{}s(this,S).clear()}chmod(e,t){r(this,n,O).call(this,{opp:\"chmod\",args:[e,t]},()=>{this._chmodState(e,t)})}_chmodState(e,t){let o=r(this,n,f).call(this,e);o.mode=t}close(e){let t=r(this,n,I).call(this,e);s(this,P).delete(e),s(this,D).delete(t)}fstat(e){let t=r(this,n,I).call(this,e);return this.lstat(t)}lstat(e){let t=r(this,n,f).call(this,e),o=t.type===\"file\"?s(this,m).get(t.backingFilename).getSize():0,i=4096;return{dev:0,ino:0,mode:t.mode,nlink:1,uid:0,gid:0,rdev:0,size:o,blksize:i,blocks:Math.ceil(o/i),atime:t.lastModified,mtime:t.lastModified,ctime:t.lastModified}}mkdir(e,t){r(this,n,O).call(this,{opp:\"mkdir\",args:[e,t]},()=>{this._mkdirState(e,t)})}_mkdirState(e,t){let o=r(this,n,w).call(this,e),i=o.pop(),c=[],a=this.state.root;for(let d of o){if(c.push(e),!Object.prototype.hasOwnProperty.call(a.children,d))if(t?.recursive)this.mkdir(c.join(\"/\"));else throw new p(\"ENOENT\",\"No such file or directory\");if(a.children[d].type!==\"directory\")throw new p(\"ENOTDIR\",\"Not a directory\");a=a.children[d]}if(Object.prototype.hasOwnProperty.call(a.children,i))throw new p(\"EEXIST\",\"File exists\");let h={type:\"directory\",lastModified:Date.now(),mode:t?.mode||T.DIR,children:{}};a.children[i]=h}open(e,t,o){if(r(this,n,f).call(this,e).type!==\"file\")throw new p(\"EISDIR\",\"Is a directory\");let c=r(this,n,W).call(this);return s(this,P).set(c,e),s(this,D).set(e,c),c}readdir(e){let t=r(this,n,f).call(this,e);if(t.type!==\"directory\")throw new p(\"ENOTDIR\",\"Not a directory\");return Object.keys(t.children)}read(e,t,o,i,c){let a=r(this,n,I).call(this,e),h=r(this,n,f).call(this,a);if(h.type!==\"file\")throw new p(\"EISDIR\",\"Is a directory\");return s(this,m).get(h.backingFilename).read(new Uint8Array(t.buffer,o,i),{at:c})}rename(e,t){r(this,n,O).call(this,{opp:\"rename\",args:[e,t]},()=>{this._renameState(e,t,!0)})}_renameState(e,t,o=!1){let i=r(this,n,w).call(this,e),c=i.pop(),a=r(this,n,f).call(this,i.join(\"/\"));if(!Object.prototype.hasOwnProperty.call(a.children,c))throw new p(\"ENOENT\",\"No such file or directory\");let h=r(this,n,w).call(this,t),d=h.pop(),l=r(this,n,f).call(this,h.join(\"/\"));if(o&&Object.prototype.hasOwnProperty.call(l.children,d)){let u=l.children[d];s(this,m).get(u.backingFilename).truncate(0),this.state.pool.push(u.backingFilename)}l.children[d]=a.children[c],delete a.children[c]}rmdir(e){r(this,n,O).call(this,{opp:\"rmdir\",args:[e]},()=>{this._rmdirState(e)})}_rmdirState(e){let t=r(this,n,w).call(this,e),o=t.pop(),i=r(this,n,f).call(this,t.join(\"/\"));if(!Object.prototype.hasOwnProperty.call(i.children,o))throw new p(\"ENOENT\",\"No such file or directory\");let c=i.children[o];if(c.type!==\"directory\")throw new p(\"ENOTDIR\",\"Not a directory\");if(Object.keys(c.children).length>0)throw new p(\"ENOTEMPTY\",\"Directory not empty\");delete i.children[o]}truncate(e,t=0){let o=r(this,n,f).call(this,e);if(o.type!==\"file\")throw new p(\"EISDIR\",\"Is a directory\");let i=s(this,m).get(o.backingFilename);if(!i)throw new p(\"ENOENT\",\"No such file or directory\");i.truncate(t),s(this,S).add(i)}unlink(e){r(this,n,O).call(this,{opp:\"unlink\",args:[e]},()=>{this._unlinkState(e,!0)})}_unlinkState(e,t=!1){let o=r(this,n,w).call(this,e),i=o.pop(),c=r(this,n,f).call(this,o.join(\"/\"));if(!Object.prototype.hasOwnProperty.call(c.children,i))throw new p(\"ENOENT\",\"No such file or directory\");let a=c.children[i];if(a.type!==\"file\")throw new p(\"EISDIR\",\"Is a directory\");if(delete c.children[i],t){let h=s(this,m).get(a.backingFilename);h?.truncate(0),s(this,S).add(h),s(this,D).has(e)&&(s(this,P).delete(s(this,D).get(e)),s(this,D).delete(e))}this.state.pool.push(a.backingFilename)}utimes(e,t,o){r(this,n,O).call(this,{opp:\"utimes\",args:[e,t,o]},()=>{this._utimesState(e,t,o)})}_utimesState(e,t,o){let i=r(this,n,f).call(this,e);i.lastModified=o}writeFile(e,t,o){let i=r(this,n,w).call(this,e),c=i.pop(),a=r(this,n,f).call(this,i.join(\"/\"));if(Object.prototype.hasOwnProperty.call(a.children,c)){let l=a.children[c];l.lastModified=Date.now(),r(this,n,k).call(this,{opp:\"setLastModified\",args:[e,l.lastModified]})}else{if(this.state.pool.length===0)throw new Error(\"No more file handles available in the pool\");let l={type:\"file\",lastModified:Date.now(),mode:o?.mode||T.FILE,backingFilename:this.state.pool.pop()};a.children[c]=l,r(this,n,k).call(this,{opp:\"createFileNode\",args:[e,l]})}let h=a.children[c],d=s(this,m).get(h.backingFilename);t.length>0&&(d.write(typeof t==\"string\"?new TextEncoder().encode(t):new Uint8Array(t),{at:0}),e.startsWith(\"/pg_wal\")&&s(this,S).add(d))}_createFileNodeState(e,t){let o=r(this,n,w).call(this,e),i=o.pop(),c=r(this,n,f).call(this,o.join(\"/\"));c.children[i]=t;let a=this.state.pool.indexOf(t.backingFilename);return a>-1&&this.state.pool.splice(a,1),t}_setLastModifiedState(e,t){let o=r(this,n,f).call(this,e);o.lastModified=t}write(e,t,o,i,c){let a=r(this,n,I).call(this,e),h=r(this,n,f).call(this,a);if(h.type!==\"file\")throw new p(\"EISDIR\",\"Is a directory\");let d=s(this,m).get(h.backingFilename);if(!d)throw new p(\"EBADF\",\"Bad file descriptor\");let l=d.write(new Uint8Array(t,o,i),{at:c});return a.startsWith(\"/pg_wal\")&&s(this,S).add(d),l}};H=new WeakMap,v=new WeakMap,F=new WeakMap,M=new WeakMap,y=new WeakMap,b=new WeakMap,m=new WeakMap,x=new WeakMap,P=new WeakMap,D=new WeakMap,S=new WeakMap,n=new WeakSet,C=async function(){E(this,H,await navigator.storage.getDirectory()),E(this,v,await r(this,n,j).call(this,this.dataDir,{create:!0})),E(this,F,await r(this,n,j).call(this,G,{from:s(this,v),create:!0})),E(this,M,await s(this,v).getFileHandle($,{create:!0})),E(this,y,await s(this,M).createSyncAccessHandle());let e=new ArrayBuffer(s(this,y).getSize());s(this,y).read(e,{at:0});let t,o=new TextDecoder().decode(e).split(`\n`),i=!1;try{t=JSON.parse(o[0])}catch{t={root:{type:\"directory\",lastModified:Date.now(),mode:T.DIR,children:{}},pool:[]},s(this,y).truncate(0),s(this,y).write(new TextEncoder().encode(JSON.stringify(t)),{at:0}),i=!0}this.state=t;let c=o.slice(1).filter(Boolean).map(l=>JSON.parse(l));for(let l of c){let u=`_${l.opp}State`;if(typeof this[u]==\"function\")try{this[u].bind(this)(...l.args)}catch(N){console.warn(\"Error applying OPFS AHP WAL entry\",l,N)}}let a=[],h=async l=>{if(l.type===\"file\")try{let u=await s(this,F).getFileHandle(l.backingFilename),N=await u.createSyncAccessHandle();s(this,b).set(l.backingFilename,u),s(this,m).set(l.backingFilename,N)}catch(u){console.error(\"Error opening file handle for node\",l,u)}else for(let u of Object.values(l.children))a.push(h(u))};await h(this.state.root);let d=[];for(let l of this.state.pool)d.push(new Promise(async u=>{s(this,b).has(l)&&console.warn(\"File handle already exists for pool file\",l);let N=await s(this,F).getFileHandle(l),U=await N.createSyncAccessHandle();s(this,b).set(l,N),s(this,m).set(l,U),u()}));await Promise.all([...a,...d]),await this.maintainPool(i?this.initialPoolSize:this.maintainedPoolSize)},O=function(e,t){let o=r(this,n,k).call(this,e);try{t()}catch(i){throw s(this,y).truncate(o),i}},k=function(e){let t=JSON.stringify(e),o=new TextEncoder().encode(`\n${t}`),i=s(this,y).getSize();return s(this,y).write(o,{at:i}),s(this,S).add(s(this,y)),i},w=function(e){return e.split(\"/\").filter(Boolean)},f=function(e,t){let o=r(this,n,w).call(this,e),i=t||this.state.root;for(let c of o){if(i.type!==\"directory\")throw new p(\"ENOTDIR\",\"Not a directory\");if(!Object.prototype.hasOwnProperty.call(i.children,c))throw new p(\"ENOENT\",\"No such file or directory\");i=i.children[c]}return i},I=function(e){let t=s(this,P).get(e);if(!t)throw new p(\"EBADF\",\"Bad file descriptor\");return t},W=function(){let e=++_(this,x)._;for(;s(this,P).has(e);)_(this,x)._++;return e},j=async function(e,t){let o=r(this,n,w).call(this,e),i=t?.from||s(this,H);for(let c of o)i=await i.getDirectoryHandle(c,{create:t?.create});return i};var p=class extends Error{constructor(A,e){super(e),typeof A==\"number\"?this.code=A:typeof A==\"string\"&&(this.code=z[A])}};export{L as OpfsAhpFS};\n//# sourceMappingURL=opfs-ahp.js.map"],"names":["R","$","G","T","H","v","F","M","y","b","m","x","P","D","n","C","O","k","w","I","W","j","L","B","e","t","o","g","r","s","c","a","h","l","E","N","U","_","A","z"],"mappings":"ycAA4HA,EAAC,EAAM,IAACC,EAAE,YAAYC,EAAE,OAAOC,EAAE,CAAC,IAAI,MAAM,KAAK,KAAK,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAE,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAE,EAAEC,EAAEC,EAAEC,EAAEC,GAAE,cAAcC,CAAC,CAAC,YAAYC,EAAE,CAAC,gBAAgBC,EAAE,IAAI,mBAAmBC,EAAE,IAAI,MAAM,EAAE,EAAE,EAAE,CAAE,EAAC,CAAC,MAAMF,EAAE,CAAC,MAAM,CAAC,CAAC,EAAEG,EAAE,KAAKb,CAAC,EAAEa,EAAE,KAAKvB,CAAC,EAAEuB,EAAE,KAAKtB,CAAC,EAAEsB,EAAE,KAAKrB,CAAC,EAAEqB,EAAE,KAAKpB,CAAC,EAAEoB,EAAE,KAAKnB,CAAC,EAAEmB,EAAE,KAAKlB,EAAE,IAAI,GAAG,EAAEkB,EAAE,KAAKjB,EAAE,IAAI,GAAG,EAAEiB,EAAE,KAAKhB,EAAE,CAAC,EAAEgB,EAAE,KAAKf,EAAE,IAAI,GAAG,EAAEe,EAAE,KAAKd,EAAE,IAAI,GAAG,EAAE,KAAK,eAAe,EAAE,KAAK,mBAAmB,IAAI,GAAG,KAAK,YAAY,EAAEc,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,gBAAgBF,EAAE,KAAK,mBAAmBC,CAAC,CAAC,MAAM,KAAKF,EAAEC,EAAE,CAAC,OAAO,MAAMG,EAAE,KAAKd,EAAEC,CAAC,EAAE,KAAK,IAAI,EAAE,MAAM,KAAKS,EAAEC,CAAC,CAAC,CAAC,MAAM,SAASD,EAAE,GAAG,CAAC,MAAM,KAAK,qBAAsB,EAAC,MAAM,KAAK,aAAc,EAACA,GAAG,KAAK,MAAO,CAAA,CAAC,MAAM,SAAS,CAAC,QAAQA,KAAKK,EAAE,KAAKnB,CAAC,EAAE,OAAM,EAAGc,EAAE,MAAO,EAACK,EAAE,KAAKrB,CAAC,EAAE,MAAO,EAACqB,EAAE,KAAKrB,CAAC,EAAE,MAAO,EAAC,KAAK,GAAG,OAAO,GAAG,KAAI,CAAE,CAAC,MAAM,aAAagB,EAAE,CAACA,EAAEA,GAAG,KAAK,mBAAmB,IAAIC,EAAED,EAAE,KAAK,MAAM,KAAK,OAAOE,EAAE,CAAE,EAAC,QAAQ,EAAE,EAAE,EAAED,EAAE,IAAIC,EAAE,KAAK,IAAI,QAAQ,MAAMI,GAAG,CAAC,EAAE,KAAK,YAAY,IAAIC,EAAE,IAAI,KAAK,IAAK,EAAC,YAAY,SAAS,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,KAAK,YAAY,SAAS,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,GAAGC,EAAE,MAAMH,EAAE,KAAKvB,CAAC,EAAE,cAAcyB,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,MAAMC,EAAE,uBAAsB,EAAGH,EAAE,KAAKpB,CAAC,EAAE,IAAIsB,EAAEC,CAAC,EAAEH,EAAE,KAAKnB,CAAC,EAAE,IAAIqB,EAAE,CAAC,EAAEH,EAAE,KAAKd,EAAEG,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,iBAAiB,KAAK,CAACc,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,KAAK,KAAKA,CAAC,EAAED,EAAG,CAAA,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAEL,EAAE,IAAIC,EAAE,KAAK,IAAI,QAAQ,MAAMI,GAAG,OAAC,IAAIC,EAAE,KAAK,MAAM,KAAK,IAAK,EAACH,EAAE,KAAKd,EAAEG,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,iBAAiB,KAAK,CAACc,CAAC,CAAC,CAAC,EAAE,IAAIC,EAAEH,EAAE,KAAKpB,CAAC,EAAE,IAAIsB,CAAC,GAAEF,EAAAA,EAAE,KAAKnB,CAAC,EAAE,IAAIqB,CAAC,IAAfF,MAAAA,EAAkB,QAAQ,MAAMA,EAAE,KAAKvB,CAAC,EAAE,YAAY0B,EAAE,IAAI,EAAEH,EAAE,KAAKpB,CAAC,EAAE,OAAOsB,CAAC,EAAEF,EAAE,KAAKnB,CAAC,EAAE,OAAOqB,CAAC,EAAED,EAAC,CAAE,CAAC,CAAC,EAAE,MAAM,QAAQ,IAAIJ,CAAC,CAAC,CAAC,qBAAqBF,EAAE,CAAC,KAAK,MAAM,KAAK,KAAKA,CAAC,CAAC,CAAC,qBAAqBA,EAAE,CAAC,IAAIC,EAAE,KAAK,MAAM,KAAK,QAAQD,CAAC,EAAEC,EAAE,IAAI,KAAK,MAAM,KAAK,OAAOA,EAAE,CAAC,CAAC,CAAC,MAAM,sBAAsB,CAAC,KAAK,MAAM,KAAK,eAAe,KAAK,oBAAoB,MAAM,KAAK,gBAAiB,CAAA,CAAC,MAAM,iBAAiB,CAAC,IAAID,EAAE,IAAI,YAAW,EAAG,OAAO,KAAK,UAAU,KAAK,KAAK,CAAC,EAAEK,EAAE,KAAKrB,CAAC,EAAE,SAAS,CAAC,EAAEqB,EAAE,KAAKrB,CAAC,EAAE,MAAMgB,EAAE,CAAC,GAAG,CAAC,CAAC,EAAEK,EAAE,KAAKrB,CAAC,EAAE,MAAO,EAAC,KAAK,eAAe,KAAK,IAAG,CAAE,CAAC,OAAO,CAAC,QAAQgB,KAAKK,EAAE,KAAK,CAAC,EAAE,GAAG,CAACL,EAAE,MAAK,CAAE,MAAM,CAAA,CAAEK,EAAE,KAAK,CAAC,EAAE,MAAO,CAAA,CAAC,MAAML,EAAEC,EAAE,CAACG,EAAE,KAAKd,EAAEE,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,QAAQ,KAAK,CAACQ,EAAEC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,YAAYD,EAAEC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAYD,EAAEC,EAAE,CAAC,IAAIC,EAAEE,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKU,CAAC,EAAEE,EAAE,KAAKD,CAAC,CAAC,MAAMD,EAAE,CAAC,IAAIC,EAAEG,EAAE,KAAKd,EAAEK,CAAC,EAAE,KAAK,KAAKK,CAAC,EAAEK,EAAE,KAAKjB,CAAC,EAAE,OAAOY,CAAC,EAAEK,EAAE,KAAKhB,CAAC,EAAE,OAAOY,CAAC,CAAC,CAAC,MAAMD,EAAE,CAAC,IAAIC,EAAEG,EAAE,KAAKd,EAAEK,CAAC,EAAE,KAAK,KAAKK,CAAC,EAAE,OAAO,KAAK,MAAMC,CAAC,CAAC,CAAC,MAAMD,EAAE,CAAC,IAAIC,EAAEG,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKU,CAAC,EAAEE,EAAED,EAAE,OAAO,OAAOI,EAAE,KAAKnB,CAAC,EAAE,IAAIe,EAAE,eAAe,EAAE,QAAO,EAAG,EAAE,EAAE,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAKA,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAKC,EAAE,QAAQ,EAAE,OAAO,KAAK,KAAKA,EAAE,CAAC,EAAE,MAAMD,EAAE,aAAa,MAAMA,EAAE,aAAa,MAAMA,EAAE,YAAY,CAAC,CAAC,MAAMD,EAAEC,EAAE,CAACG,EAAE,KAAKd,EAAEE,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,QAAQ,KAAK,CAACQ,EAAEC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,YAAYD,EAAEC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAYD,EAAEC,EAAE,CAAC,IAAIC,EAAEE,EAAE,KAAKd,EAAEI,CAAC,EAAE,KAAK,KAAKM,CAAC,EAAE,EAAEE,EAAE,IAAK,EAACI,EAAE,CAAE,EAACC,EAAE,KAAK,MAAM,KAAK,QAAQ,KAAKL,EAAE,CAAC,GAAGI,EAAE,KAAKN,CAAC,EAAE,CAAC,OAAO,UAAU,eAAe,KAAKO,EAAE,SAAS,CAAC,EAAE,GAAGN,GAAA,MAAAA,EAAG,UAAU,KAAK,MAAMK,EAAE,KAAK,GAAG,CAAC,MAAO,OAAM,IAAI,EAAE,SAAS,2BAA2B,EAAE,GAAGC,EAAE,SAAS,CAAC,EAAE,OAAO,YAAY,MAAM,IAAI,EAAE,UAAU,iBAAiB,EAAEA,EAAEA,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,UAAU,eAAe,KAAKA,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,EAAE,SAAS,aAAa,EAAE,IAAIC,EAAE,CAAC,KAAK,YAAY,aAAa,KAAK,IAAK,EAAC,MAAKP,GAAA,YAAAA,EAAG,OAAMtB,EAAE,IAAI,SAAS,CAAA,CAAE,EAAE4B,EAAE,SAAS,CAAC,EAAEC,CAAC,CAAC,KAAKR,EAAEC,EAAEC,EAAE,CAAC,GAAGE,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKU,CAAC,EAAE,OAAO,OAAO,MAAM,IAAI,EAAE,SAAS,gBAAgB,EAAE,IAAIM,EAAEF,EAAE,KAAKd,EAAEM,CAAC,EAAE,KAAK,IAAI,EAAE,OAAOS,EAAE,KAAKjB,CAAC,EAAE,IAAIkB,EAAEN,CAAC,EAAEK,EAAE,KAAKhB,CAAC,EAAE,IAAIW,EAAEM,CAAC,EAAEA,CAAC,CAAC,QAAQN,EAAE,CAAC,IAAIC,EAAEG,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKU,CAAC,EAAE,GAAGC,EAAE,OAAO,YAAY,MAAM,IAAI,EAAE,UAAU,iBAAiB,EAAE,OAAO,OAAO,KAAKA,EAAE,QAAQ,CAAC,CAAC,KAAKD,EAAEC,EAAEC,EAAE,EAAEI,EAAE,CAAC,IAAIC,EAAEH,EAAE,KAAKd,EAAEK,CAAC,EAAE,KAAK,KAAKK,CAAC,EAAEQ,EAAEJ,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKiB,CAAC,EAAE,GAAGC,EAAE,OAAO,OAAO,MAAM,IAAI,EAAE,SAAS,gBAAgB,EAAE,OAAOH,EAAE,KAAKnB,CAAC,EAAE,IAAIsB,EAAE,eAAe,EAAE,KAAK,IAAI,WAAWP,EAAE,OAAOC,EAAE,CAAC,EAAE,CAAC,GAAGI,CAAC,CAAC,CAAC,CAAC,OAAON,EAAEC,EAAE,CAACG,EAAE,KAAKd,EAAEE,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,SAAS,KAAK,CAACQ,EAAEC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,aAAaD,EAAEC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAaD,EAAEC,EAAEC,EAAE,GAAG,CAAC,IAAI,EAAEE,EAAE,KAAKd,EAAEI,CAAC,EAAE,KAAK,KAAKM,CAAC,EAAEM,EAAE,EAAE,IAAK,EAACC,EAAEH,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,UAAU,eAAe,KAAKiB,EAAE,SAASD,CAAC,EAAE,MAAM,IAAI,EAAE,SAAS,2BAA2B,EAAE,IAAIE,EAAEJ,EAAE,KAAKd,EAAEI,CAAC,EAAE,KAAK,KAAKO,CAAC,EAAE,EAAEO,EAAE,MAAMC,EAAEL,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKkB,EAAE,KAAK,GAAG,CAAC,EAAE,GAAGN,GAAG,OAAO,UAAU,eAAe,KAAKO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAEA,EAAE,SAAS,CAAC,EAAEJ,EAAE,KAAKnB,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,KAAK,MAAM,KAAK,KAAK,EAAE,eAAe,CAAC,CAACuB,EAAE,SAAS,CAAC,EAAEF,EAAE,SAASD,CAAC,EAAE,OAAOC,EAAE,SAASD,CAAC,CAAC,CAAC,MAAMN,EAAE,CAACI,EAAE,KAAKd,EAAEE,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,QAAQ,KAAK,CAACQ,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,YAAYA,CAAC,CAAC,CAAC,CAAC,CAAC,YAAYA,EAAE,CAAC,IAAIC,EAAEG,EAAE,KAAKd,EAAEI,CAAC,EAAE,KAAK,KAAKM,CAAC,EAAEE,EAAED,EAAE,IAAK,EAAC,EAAEG,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKW,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,UAAU,eAAe,KAAK,EAAE,SAASC,CAAC,EAAE,MAAM,IAAI,EAAE,SAAS,2BAA2B,EAAE,IAAII,EAAE,EAAE,SAASJ,CAAC,EAAE,GAAGI,EAAE,OAAO,YAAY,MAAM,IAAI,EAAE,UAAU,iBAAiB,EAAE,GAAG,OAAO,KAAKA,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE,YAAY,qBAAqB,EAAE,OAAO,EAAE,SAASJ,CAAC,CAAC,CAAC,SAASF,EAAEC,EAAE,EAAE,CAAC,IAAIC,EAAEE,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKU,CAAC,EAAE,GAAGE,EAAE,OAAO,OAAO,MAAM,IAAI,EAAE,SAAS,gBAAgB,EAAE,IAAI,EAAEG,EAAE,KAAKnB,CAAC,EAAE,IAAIgB,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,MAAM,IAAI,EAAE,SAAS,2BAA2B,EAAE,EAAE,SAASD,CAAC,EAAEI,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,OAAOL,EAAE,CAACI,EAAE,KAAKd,EAAEE,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,SAAS,KAAK,CAACQ,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,aAAaA,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAaA,EAAEC,EAAE,GAAG,CAAC,IAAIC,EAAEE,EAAE,KAAKd,EAAEI,CAAC,EAAE,KAAK,KAAKM,CAAC,EAAE,EAAEE,EAAE,IAAK,EAACI,EAAEF,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKY,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,UAAU,eAAe,KAAKI,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,EAAE,SAAS,2BAA2B,EAAE,IAAIC,EAAED,EAAE,SAAS,CAAC,EAAE,GAAGC,EAAE,OAAO,OAAO,MAAM,IAAI,EAAE,SAAS,gBAAgB,EAAE,GAAG,OAAOD,EAAE,SAAS,CAAC,EAAEL,EAAE,CAAC,IAAIO,EAAEH,EAAE,KAAKnB,CAAC,EAAE,IAAIqB,EAAE,eAAe,EAAEC,GAAAA,MAAAA,EAAG,SAAS,GAAGH,EAAE,KAAK,CAAC,EAAE,IAAIG,CAAC,EAAEH,EAAE,KAAKhB,CAAC,EAAE,IAAIW,CAAC,IAAIK,EAAE,KAAKjB,CAAC,EAAE,OAAOiB,EAAE,KAAKhB,CAAC,EAAE,IAAIW,CAAC,CAAC,EAAEK,EAAE,KAAKhB,CAAC,EAAE,OAAOW,CAAC,EAAE,CAAC,KAAK,MAAM,KAAK,KAAKO,EAAE,eAAe,CAAC,CAAC,OAAOP,EAAEC,EAAEC,EAAE,CAACE,EAAE,KAAKd,EAAEE,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,SAAS,KAAK,CAACQ,EAAEC,EAAEC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,aAAaF,EAAEC,EAAEC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAaF,EAAEC,EAAEC,EAAE,CAAC,IAAI,EAAEE,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKU,CAAC,EAAE,EAAE,aAAaE,CAAC,CAAC,UAAUF,EAAEC,EAAEC,EAAE,CAAC,IAAI,EAAEE,EAAE,KAAKd,EAAEI,CAAC,EAAE,KAAK,KAAKM,CAAC,EAAEM,EAAE,EAAE,IAAG,EAAGC,EAAEH,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,OAAO,UAAU,eAAe,KAAKiB,EAAE,SAASD,CAAC,EAAE,CAAC,IAAIG,EAAEF,EAAE,SAASD,CAAC,EAAEG,EAAE,aAAa,KAAK,IAAG,EAAGL,EAAE,KAAKd,EAAEG,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,kBAAkB,KAAK,CAACO,EAAES,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,MAAM,KAAK,SAAS,EAAE,MAAM,IAAI,MAAM,4CAA4C,EAAE,IAAIA,EAAE,CAAC,KAAK,OAAO,aAAa,KAAK,IAAG,EAAG,MAAKP,GAAA,YAAAA,EAAG,OAAMvB,EAAE,KAAK,gBAAgB,KAAK,MAAM,KAAK,KAAK,EAAE4B,EAAE,SAASD,CAAC,EAAEG,EAAEL,EAAE,KAAKd,EAAEG,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,iBAAiB,KAAK,CAACO,EAAES,CAAC,CAAC,CAAC,CAAC,CAAC,IAAID,EAAED,EAAE,SAASD,CAAC,EAAE,EAAED,EAAE,KAAKnB,CAAC,EAAE,IAAIsB,EAAE,eAAe,EAAEP,EAAE,OAAO,IAAI,EAAE,MAAM,OAAOA,GAAG,SAAS,IAAI,YAAa,EAAC,OAAOA,CAAC,EAAE,IAAI,WAAWA,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAED,EAAE,WAAW,SAAS,GAAGK,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,qBAAqBL,EAAEC,EAAE,CAAC,IAAIC,EAAEE,EAAE,KAAKd,EAAEI,CAAC,EAAE,KAAK,KAAKM,CAAC,EAAE,EAAEE,EAAE,IAAK,EAACI,EAAEF,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKY,EAAE,KAAK,GAAG,CAAC,EAAEI,EAAE,SAAS,CAAC,EAAEL,EAAE,IAAIM,EAAE,KAAK,MAAM,KAAK,QAAQN,EAAE,eAAe,EAAE,OAAOM,EAAE,IAAI,KAAK,MAAM,KAAK,OAAOA,EAAE,CAAC,EAAEN,CAAC,CAAC,sBAAsBD,EAAEC,EAAE,CAAC,IAAIC,EAAEE,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKU,CAAC,EAAEE,EAAE,aAAaD,CAAC,CAAC,MAAMD,EAAEC,EAAEC,EAAE,EAAEI,EAAE,CAAC,IAAIC,EAAEH,EAAE,KAAKd,EAAEK,CAAC,EAAE,KAAK,KAAKK,CAAC,EAAEQ,EAAEJ,EAAE,KAAKd,EAAE,CAAC,EAAE,KAAK,KAAKiB,CAAC,EAAE,GAAGC,EAAE,OAAO,OAAO,MAAM,IAAI,EAAE,SAAS,gBAAgB,EAAE,IAAI,EAAEH,EAAE,KAAKnB,CAAC,EAAE,IAAIsB,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,MAAM,IAAI,EAAE,QAAQ,qBAAqB,EAAE,IAAIC,EAAE,EAAE,MAAM,IAAI,WAAWR,EAAEC,EAAE,CAAC,EAAE,CAAC,GAAGI,CAAC,CAAC,EAAE,OAAOC,EAAE,WAAW,SAAS,GAAGF,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,EAAEI,CAAC,CAAC,EAAE7B,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQ,EAAE,IAAI,QAAQC,EAAE,IAAI,QAAQC,EAAE,gBAAgB,CAACmB,EAAE,KAAK9B,EAAE,MAAM,UAAU,QAAQ,aAAY,CAAE,EAAE8B,EAAE,KAAK7B,EAAE,MAAMuB,EAAE,KAAKd,EAAEO,CAAC,EAAE,KAAK,KAAK,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAEa,EAAE,KAAK5B,EAAE,MAAMsB,EAAE,KAAKd,EAAEO,CAAC,EAAE,KAAK,KAAKnB,EAAE,CAAC,KAAK2B,EAAE,KAAKxB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE6B,EAAE,KAAK3B,EAAE,MAAMsB,EAAE,KAAKxB,CAAC,EAAE,cAAcJ,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAEiC,EAAE,KAAK1B,EAAE,MAAMqB,EAAE,KAAKtB,CAAC,EAAE,uBAAwB,CAAA,EAAE,IAAIiB,EAAE,IAAI,YAAYK,EAAE,KAAKrB,CAAC,EAAE,QAAO,CAAE,EAAEqB,EAAE,KAAKrB,CAAC,EAAE,KAAKgB,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAIC,EAAEC,EAAE,IAAI,YAAW,EAAG,OAAOF,CAAC,EAAE,MAAM;AAAA,CAC3oP,EAAE,EAAE,GAAG,GAAG,CAACC,EAAE,KAAK,MAAMC,EAAE,CAAC,CAAC,CAAC,MAAM,CAACD,EAAE,CAAC,KAAK,CAAC,KAAK,YAAY,aAAa,KAAK,IAAK,EAAC,KAAKtB,EAAE,IAAI,SAAS,CAAA,CAAE,EAAE,KAAK,CAAE,CAAA,EAAE0B,EAAE,KAAKrB,CAAC,EAAE,SAAS,CAAC,EAAEqB,EAAE,KAAKrB,CAAC,EAAE,MAAM,IAAI,YAAW,EAAG,OAAO,KAAK,UAAUiB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,MAAMA,EAAE,IAAIK,EAAEJ,EAAE,MAAM,CAAC,EAAE,OAAO,OAAO,EAAE,IAAIO,GAAG,KAAK,MAAMA,CAAC,CAAC,EAAE,QAAQA,KAAKH,EAAE,CAAC,IAAI,EAAE,IAAIG,EAAE,GAAG,QAAQ,GAAG,OAAO,KAAK,CAAC,GAAG,WAAW,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE,GAAGA,EAAE,IAAI,CAAC,OAAOE,EAAE,CAAC,QAAQ,KAAK,oCAAoCF,EAAEE,CAAC,CAAC,CAAC,CAAC,IAAIJ,EAAE,CAAE,EAACC,EAAE,MAAMC,GAAG,CAAC,GAAGA,EAAE,OAAO,OAAO,GAAG,CAAC,IAAI,EAAE,MAAMJ,EAAE,KAAKvB,CAAC,EAAE,cAAc2B,EAAE,eAAe,EAAEE,EAAE,MAAM,EAAE,uBAAsB,EAAGN,EAAE,KAAKpB,CAAC,EAAE,IAAIwB,EAAE,gBAAgB,CAAC,EAAEJ,EAAE,KAAKnB,CAAC,EAAE,IAAIuB,EAAE,gBAAgBE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,MAAM,qCAAqCF,EAAE,CAAC,CAAC,KAAM,SAAQ,KAAK,OAAO,OAAOA,EAAE,QAAQ,EAAEF,EAAE,KAAKC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAMA,EAAE,KAAK,MAAM,IAAI,EAAE,IAAI,EAAE,CAAE,EAAC,QAAQC,KAAK,KAAK,MAAM,KAAK,EAAE,KAAK,IAAI,QAAQ,MAAM,GAAG,CAACJ,EAAE,KAAKpB,CAAC,EAAE,IAAIwB,CAAC,GAAG,QAAQ,KAAK,2CAA2CA,CAAC,EAAE,IAAIE,EAAE,MAAMN,EAAE,KAAKvB,CAAC,EAAE,cAAc2B,CAAC,EAAEG,EAAE,MAAMD,EAAE,uBAAwB,EAACN,EAAE,KAAKpB,CAAC,EAAE,IAAIwB,EAAEE,CAAC,EAAEN,EAAE,KAAKnB,CAAC,EAAE,IAAIuB,EAAEG,CAAC,EAAE,EAAC,CAAE,CAAC,CAAC,EAAE,MAAM,QAAQ,IAAI,CAAC,GAAGL,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,aAAa,EAAE,KAAK,gBAAgB,KAAK,kBAAkB,CAAC,EAAEf,EAAE,SAASQ,EAAEC,EAAE,CAAC,IAAIC,EAAEE,EAAE,KAAKd,EAAEG,CAAC,EAAE,KAAK,KAAKO,CAAC,EAAE,GAAG,CAACC,EAAC,CAAE,OAAO,EAAE,CAAC,MAAMI,EAAE,KAAKrB,CAAC,EAAE,SAASkB,CAAC,EAAE,CAAC,CAAC,EAAET,EAAE,SAASO,EAAE,CAAC,IAAIC,EAAE,KAAK,UAAUD,CAAC,EAAEE,EAAE,IAAI,YAAa,EAAC,OAAO;AAAA,EAChzCD,CAAC,EAAE,EAAE,EAAEI,EAAE,KAAKrB,CAAC,EAAE,UAAU,OAAOqB,EAAE,KAAKrB,CAAC,EAAE,MAAMkB,EAAE,CAAC,GAAG,CAAC,CAAC,EAAEG,EAAE,KAAK,CAAC,EAAE,IAAIA,EAAE,KAAKrB,CAAC,CAAC,EAAE,CAAC,EAAEU,EAAE,SAASM,EAAE,CAAC,OAAOA,EAAE,MAAM,GAAG,EAAE,OAAO,OAAO,CAAC,EAAE,EAAE,SAASA,EAAEC,EAAE,CAAC,IAAIC,EAAEE,EAAE,KAAKd,EAAEI,CAAC,EAAE,KAAK,KAAKM,CAAC,EAAE,EAAEC,GAAG,KAAK,MAAM,KAAK,QAAQK,KAAKJ,EAAE,CAAC,GAAG,EAAE,OAAO,YAAY,MAAM,IAAI,EAAE,UAAU,iBAAiB,EAAE,GAAG,CAAC,OAAO,UAAU,eAAe,KAAK,EAAE,SAASI,CAAC,EAAE,MAAM,IAAI,EAAE,SAAS,2BAA2B,EAAE,EAAE,EAAE,SAASA,CAAC,CAAC,CAAC,OAAO,CAAC,EAAEX,EAAE,SAASK,EAAE,CAAC,IAAIC,EAAEI,EAAE,KAAKjB,CAAC,EAAE,IAAIY,CAAC,EAAE,GAAG,CAACC,EAAE,MAAM,IAAI,EAAE,QAAQ,qBAAqB,EAAE,OAAOA,CAAC,EAAEL,EAAE,UAAU,CAAC,IAAII,EAAE,EAAEa,EAAE,KAAK1B,CAAC,EAAE,EAAE,KAAKkB,EAAE,KAAKjB,CAAC,EAAE,IAAIY,CAAC,GAAGa,EAAE,KAAK1B,CAAC,EAAE,IAAI,OAAOa,CAAC,EAAEH,EAAE,eAAeG,EAAEC,EAAE,CAAC,IAAIC,EAAEE,EAAE,KAAKd,EAAEI,CAAC,EAAE,KAAK,KAAKM,CAAC,EAAE,GAAEC,GAAA,YAAAA,EAAG,OAAMI,EAAE,KAAKzB,CAAC,EAAE,QAAQ0B,KAAKJ,EAAE,EAAE,MAAM,EAAE,mBAAmBI,EAAE,CAAC,OAAOL,GAAA,YAAAA,EAAG,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,KAAK,CAAC,YAAYa,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,OAAOA,GAAG,SAAS,KAAK,KAAKA,EAAE,OAAOA,GAAG,WAAW,KAAK,KAAKC,EAAED,CAAC,EAAE,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var h=Object.defineProperty;var c=i=>{throw TypeError(i)};var u=(i,e,r)=>e in i?h(i,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):i[e]=r;var o=(i,e,r)=>u(i,typeof e!="symbol"?e+"":e,r),k=(i,e,r)=>e.has(i)||c("Cannot "+r);var d=(i,e,r)=>e.has(i)?c("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(i):e.set(i,r);var s=(i,e,r)=>(k(i,e,"access private method"),r);import{c as g}from"./connect.config.
|
|
2
|
-
//# sourceMappingURL=registerServiceWorker.
|
|
1
|
+
var h=Object.defineProperty;var c=i=>{throw TypeError(i)};var u=(i,e,r)=>e in i?h(i,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):i[e]=r;var o=(i,e,r)=>u(i,typeof e!="symbol"?e+"":e,r),k=(i,e,r)=>e.has(i)||c("Cannot "+r);var d=(i,e,r)=>e.has(i)?c("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(i):e.set(i,r);var s=(i,e,r)=>(k(i,e,"access private method"),r);import{c as g}from"./connect.config.D7bT63h0.js";const f=parseInt(window.__VITE_ENVS.PH_CONNECT_VERSION_CHECK_INTERVAL)||60*60*1e3,w=g.routerBasename,W=[w,"service-worker.js"].join("/").replace(/\/{2,}/gm,"/");var a,l,n;class E{constructor(e=!1){d(this,a);o(this,"ready",!1);o(this,"debug",!1);o(this,"registration",null);this.debug=e}setDebug(e){this.debug=e}registerServiceWorker(e=!1){if(this.debug=e,!("serviceWorker"in navigator)){console.warn("Service Worker not available");return}window.addEventListener("load",async()=>{try{const r=await navigator.serviceWorker.getRegistration();if(r)await r.update(),s(this,a,n).call(this,r);else{const t=await navigator.serviceWorker.register(W);s(this,a,n).call(this,t),t.addEventListener("updatefound",()=>{s(this,a,n).call(this,t)})}const v=setInterval(async()=>{const t=await navigator.serviceWorker.getRegistration();t?await t.update():(clearInterval(v),this.registerServiceWorker())},f)}catch(r){console.error("ServiceWorker registration failed: ",r)}})}}a=new WeakSet,l=function(e){this.debug&&console.log("ServiceWorker message: ",e);const r="type"in e.data?e:null;switch(r==null?void 0:r.data.type){case"NEW_VERSION_AVAILABLE":{if(r.data.version===g.appVersion)return;r.data.requiresHardRefresh&&(this.debug&&console.log("New version available"),window.location.reload());break}default:{console.warn("Unhandled message:",r);break}}},n=function(e){this.debug&&console.log("ServiceWorker registered: ",e),navigator.serviceWorker.addEventListener("message",s(this,a,l).bind(this)),this.registration=e,this.ready=!0};const p=new E;export{p as s};
|
|
2
|
+
//# sourceMappingURL=registerServiceWorker.qRwAeUvA.js.map
|