@powerhousedao/connect 3.2.0-dev.1 → 3.2.0-dev.3
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/README.md +26 -6
- package/dist/assets/AddDriveModal.S5JSMmVF.js +2 -0
- package/dist/assets/{AddDriveModal.BLTmseCa.js.map → AddDriveModal.S5JSMmVF.js.map} +1 -1
- package/dist/assets/{AddLocalDriveModal.BmWt-zqx.js → AddLocalDriveModal.n1mqr4Ur.js} +2 -2
- package/dist/assets/{AddLocalDriveModal.BmWt-zqx.js.map → AddLocalDriveModal.n1mqr4Ur.js.map} +1 -1
- package/dist/assets/{AddRemoteDriveModal.B2dLszvc.js → AddRemoteDriveModal.wFq1V4ak.js} +2 -2
- package/dist/assets/{AddRemoteDriveModal.B2dLszvc.js.map → AddRemoteDriveModal.wFq1V4ak.js.map} +1 -1
- package/dist/assets/{ConfirmationModal.BeBmQkT4.js → ConfirmationModal.C8RDHYs4.js} +2 -2
- package/dist/assets/{ConfirmationModal.BeBmQkT4.js.map → ConfirmationModal.C8RDHYs4.js.map} +1 -1
- package/dist/assets/{CookiesPolicyModal.Da5Eremm.js → CookiesPolicyModal.A--L98Lz.js} +2 -2
- package/dist/assets/{CookiesPolicyModal.Da5Eremm.js.map → CookiesPolicyModal.A--L98Lz.js.map} +1 -1
- package/dist/assets/{CreateDocumentModal.CoVOMt_0.js → CreateDocumentModal.CnSb_jQl.js} +2 -2
- package/dist/assets/{CreateDocumentModal.CoVOMt_0.js.map → CreateDocumentModal.CnSb_jQl.js.map} +1 -1
- package/dist/assets/{DebugSettingsModal.BcDdYXbp.js → DebugSettingsModal.G7uoivFk.js} +2 -2
- package/dist/assets/{DebugSettingsModal.BcDdYXbp.js.map → DebugSettingsModal.G7uoivFk.js.map} +1 -1
- package/dist/assets/{DeleteDriveModal.CTBCQ3Gm.js → DeleteDriveModal.ChVVlip-.js} +2 -2
- package/dist/assets/{DeleteDriveModal.CTBCQ3Gm.js.map → DeleteDriveModal.ChVVlip-.js.map} +1 -1
- package/dist/assets/{DeleteItemModal.iAY-B9YV.js → DeleteItemModal.DITFrzCI.js} +2 -2
- package/dist/assets/{DeleteItemModal.iAY-B9YV.js.map → DeleteItemModal.DITFrzCI.js.map} +1 -1
- package/dist/assets/{DisclaimerModal.5nyrmZzU.js → DisclaimerModal.COSJ5Mb3.js} +2 -2
- package/dist/assets/{DisclaimerModal.5nyrmZzU.js.map → DisclaimerModal.COSJ5Mb3.js.map} +1 -1
- package/dist/assets/{DriveSettingsModal.BswCtDqR.js → DriveSettingsModal._ieV-khA.js} +2 -2
- package/dist/assets/{DriveSettingsModal.BswCtDqR.js.map → DriveSettingsModal._ieV-khA.js.map} +1 -1
- package/dist/assets/{SettingsModal.HlCE_fW4.js → SettingsModal.CLz_Pwjg.js} +2 -2
- package/dist/assets/{SettingsModal.HlCE_fW4.js.map → SettingsModal.CLz_Pwjg.js.map} +1 -1
- package/dist/assets/{Trans.kFe2S0Wk.js → Trans.DPLArfzj.js} +2 -2
- package/dist/assets/{Trans.kFe2S0Wk.js.map → Trans.DPLArfzj.js.map} +1 -1
- package/dist/assets/{UpgradeDriveModal.B7mUnNcD.js → UpgradeDriveModal.BQJxekDN.js} +2 -2
- package/dist/assets/{UpgradeDriveModal.B7mUnNcD.js.map → UpgradeDriveModal.BQJxekDN.js.map} +1 -1
- package/dist/assets/app-skeleton.js +1 -1
- package/dist/assets/{app.DDM1o5sK.js → app.qUOoOKql.js} +6 -6
- package/dist/assets/{app.DDM1o5sK.js.map → app.qUOoOKql.js.map} +1 -1
- package/dist/assets/{atlas-import.CM7YAl-a.js → atlas-import.DFyx2ULx.js} +2 -2
- package/dist/assets/{atlas-import.CM7YAl-a.js.map → atlas-import.DFyx2ULx.js.map} +1 -1
- package/dist/assets/connect.config.BIAWWw4c.js +2 -0
- package/dist/assets/{connect.config.BX_VBjjD.js.map → connect.config.BIAWWw4c.js.map} +1 -1
- package/dist/assets/{content.DO7Rb1MC.js → content.D5x8bb-b.js} +3 -3
- package/dist/assets/{content.DO7Rb1MC.js.map → content.D5x8bb-b.js.map} +1 -1
- package/dist/assets/{cookie-banner.CjS0sCnO.js → cookie-banner.DY7qoG0W.js} +2 -2
- package/dist/assets/{cookie-banner.CjS0sCnO.js.map → cookie-banner.DY7qoG0W.js.map} +1 -1
- package/dist/assets/{home.DAJGzOQI.js → home.10bnjd9x.js} +2 -2
- package/dist/assets/{home.DAJGzOQI.js.map → home.10bnjd9x.js.map} +1 -1
- package/dist/assets/{index.CrEQYIWo.js → index.B1X7VkO2.js} +2 -2
- package/dist/assets/{index.CrEQYIWo.js.map → index.B1X7VkO2.js.map} +1 -1
- package/dist/assets/index.BpiSpZ8T.js +3 -0
- package/dist/assets/{index.CMuj8VGl.js.map → index.BpiSpZ8T.js.map} +1 -1
- package/dist/assets/{index.dUn3hcfa.js → index.BrOLYS47.js} +3 -3
- package/dist/assets/{index.dUn3hcfa.js.map → index.BrOLYS47.js.map} +1 -1
- package/dist/assets/{index.DlyZ17HN.js → index.CEQRMIAY.js} +2 -2
- package/dist/assets/{index.DlyZ17HN.js.map → index.CEQRMIAY.js.map} +1 -1
- package/dist/assets/{index.BjA7Jq2g.js → index.DK_8MvB2.js} +13 -13
- package/dist/assets/{index.BjA7Jq2g.js.map → index.DK_8MvB2.js.map} +1 -1
- package/dist/assets/{index.DxrAJM8l.js → index.Dc5HlSvp.js} +2 -2
- package/dist/assets/{index.DxrAJM8l.js.map → index.Dc5HlSvp.js.map} +1 -1
- package/dist/assets/{index.Dt5syCVo.js → index.Do5xnOI9.js} +2 -2
- package/dist/assets/{index.Dt5syCVo.js.map → index.Do5xnOI9.js.map} +1 -1
- package/dist/assets/{index.D_JmCUwW.js → index.tFj_U6SH.js} +2 -2
- package/dist/assets/{index.D_JmCUwW.js.map → index.tFj_U6SH.js.map} +1 -1
- package/dist/assets/{main.xXrCT4AZ.js → main.BDioUTOa.js} +3 -3
- package/dist/assets/{main.xXrCT4AZ.js.map → main.BDioUTOa.js.map} +1 -1
- package/dist/assets/modal.DMmzVWT5.js +3 -0
- package/dist/assets/{modal.DMO71brU.js.map → modal.DMmzVWT5.js.map} +1 -1
- package/dist/assets/{modals.CwNNDSU0.js → modals.Bvtd5okT.js} +2 -2
- package/dist/assets/{modals.CwNNDSU0.js.map → modals.Bvtd5okT.js.map} +1 -1
- package/dist/assets/nodefs.BOz_9Cu2.js +2 -0
- package/dist/assets/{nodefs.7zM7E9uX.js.map → nodefs.BOz_9Cu2.js.map} +1 -1
- package/dist/assets/{opfs-ahp.CrrBaIH9.js → opfs-ahp.EyJwDrf5.js} +2 -2
- package/dist/assets/{opfs-ahp.CrrBaIH9.js.map → opfs-ahp.EyJwDrf5.js.map} +1 -1
- package/dist/assets/{react-error-boundary.esm.DcWSXRDX.js → react-error-boundary.esm.uEuLAO53.js} +2 -2
- package/dist/assets/{react-error-boundary.esm.DcWSXRDX.js.map → react-error-boundary.esm.uEuLAO53.js.map} +1 -1
- package/dist/assets/{registerServiceWorker.Dxs_6knN.js → registerServiceWorker.D0bvv5hZ.js} +2 -2
- package/dist/assets/{registerServiceWorker.Dxs_6knN.js.map → registerServiceWorker.D0bvv5hZ.js.map} +1 -1
- package/dist/assets/{root.DBI5tO_9.js → root.C3hMJJ71.js} +3 -3
- package/dist/assets/{root.DBI5tO_9.js.map → root.C3hMJJ71.js.map} +1 -1
- package/dist/assets/{toast.Dw86T5dF.js → toast.Dz6iiaGE.js} +2 -2
- package/dist/assets/{toast.Dw86T5dF.js.map → toast.Dz6iiaGE.js.map} +1 -1
- package/dist/assets/{useAcceptedCookies.DduZlbUw.js → useAcceptedCookies.DCKq2Qw9.js} +2 -2
- package/dist/assets/{useAcceptedCookies.DduZlbUw.js.map → useAcceptedCookies.DCKq2Qw9.js.map} +1 -1
- package/dist/assets/useConnectConfig.DnsUzXBZ.js +2 -0
- package/dist/assets/{useConnectConfig.BWdUwe5N.js.map → useConnectConfig.DnsUzXBZ.js.map} +1 -1
- package/dist/assets/useDefaultDocumentModelEditor.Cxs9BMEu.js +2 -0
- package/dist/assets/{useDefaultDocumentModelEditor.BOE2b52Y.js.map → useDefaultDocumentModelEditor.Cxs9BMEu.js.map} +1 -1
- package/dist/assets/useDocumentDriveServer.ByAzntgK.js +2 -0
- package/dist/assets/{useDocumentDriveServer.CEjU49s1.js.map → useDocumentDriveServer.ByAzntgK.js.map} +1 -1
- package/dist/assets/{useFeatureFlags.B3BoOzef.js → useFeatureFlags.HTSEqgkg.js} +2 -2
- package/dist/assets/useFeatureFlags.HTSEqgkg.js.map +1 -0
- package/dist/assets/{user.BoRGXkj9.js → user.YHDZ_9fW.js} +5 -5
- package/dist/assets/user.YHDZ_9fW.js.map +1 -0
- package/dist/external-packages.js +1 -2
- package/dist/index.html +1 -1
- package/dist/vite-envs.sh +1 -1
- package/nginx.conf +22 -1
- package/package.json +12 -10
- package/dist/assets/AddDriveModal.BLTmseCa.js +0 -2
- package/dist/assets/connect.config.BX_VBjjD.js +0 -2
- package/dist/assets/index.CMuj8VGl.js +0 -3
- package/dist/assets/modal.DMO71brU.js +0 -3
- package/dist/assets/nodefs.7zM7E9uX.js +0 -2
- package/dist/assets/useConnectConfig.BWdUwe5N.js +0 -2
- package/dist/assets/useDefaultDocumentModelEditor.BOE2b52Y.js +0 -2
- package/dist/assets/useDocumentDriveServer.CEjU49s1.js +0 -2
- package/dist/assets/useFeatureFlags.B3BoOzef.js.map +0 -1
- package/dist/assets/user.BoRGXkj9.js.map +0 -1
- package/dist/external-packages.js.map +0 -1
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=external-packages.js.map
|
|
1
|
+
export default [];
|
package/dist/index.html
CHANGED
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"react-dom": "https://esm.sh/react-dom@18.3.1&deps=scheduler@0.23.2",
|
|
68
68
|
"react-dom/": "https://esm.sh/react-dom@18.3.1&deps=scheduler@0.23.2/"
|
|
69
69
|
}
|
|
70
|
-
}</script><script async="" type="module" crossorigin="" src="./assets/main.xXrCT4AZ.js"></script><link rel="modulepreload" crossorigin="" href="./assets/index.DxrAJM8l.js"><link rel="stylesheet" crossorigin="" href="./assets/main-DZwbCGA5.css"></head><body><div id="app"><div class="flex h-screen"><div class="group flex h-full flex-col bg-slate-50 animate-pulse" style="width:58px"><div class="no-scrollbar flex-1 overflow-auto text-gray-900 transition-shadow"><div class="shrink-0 flex justify-center gap-4 border-b border-gray-300 py-4"><button aria-label="Home" class="cursor-wait" type="button"><svg class="text-gray-600" style="width:24px;height:24px" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M11.0306 3.68615C11.2854 3.68614 11.492 3.47932 11.4921 3.2242L11.4921 9.03413e-06C8.29133 0.132881 5.41451 1.52048 3.33928 3.68633L11.0306 3.68615ZM14.2609 8.42821C14.2609 8.68334 14.0543 8.89016 13.7994 8.89016L0.406086 8.89043C0.81778 7.34998 1.52777 5.93103 2.46931 4.70043L13.7995 4.70024C14.0544 4.70023 14.261 4.90707 14.261 5.16221L14.2609 8.42821ZM20.6591 20.3137C18.5847 22.4787 15.7079 23.8663 12.5062 24L12.5063 20.7758C12.5063 20.5207 12.7129 20.3139 12.9678 20.3139L20.6591 20.3137ZM11.4924 23.9992C8.29157 23.8665 5.41401 22.4782 3.33969 20.3133L11.0309 20.3131C11.2858 20.3131 11.4924 20.52 11.4924 20.7751L11.4924 23.9992ZM17.5946 15.5703C17.5947 15.3152 17.8013 15.1083 18.0561 15.1083L23.5923 15.108C23.1806 16.6484 22.4714 18.0666 21.5291 19.298L18.0561 19.2983C17.8012 19.2983 17.5946 19.0914 17.5946 18.8363L17.5946 15.5703ZM8.84765 10.3544C8.85393 10.1039 9.05863 9.90407 9.30899 9.90407L23.8175 9.90396C23.9373 10.584 24 11.2842 24 11.9989C24 12.7136 23.9372 13.4138 23.8174 14.0939L9.31089 14.0933C9.06005 14.0932 8.85517 13.8927 8.84957 13.6416L8.80986 11.8617L8.84765 10.3544ZM16.7389 18.8372C16.7389 19.0923 16.5323 19.2991 16.2774 19.2991L2.46978 19.2992C1.52749 18.0679 0.818373 16.6498 0.406752 15.1093L16.2775 15.1092C16.5324 15.1092 16.739 15.316 16.739 15.5712L16.7389 18.8372ZM0.182552 9.90452L7.3636 9.90412C7.61849 9.90411 7.82511 10.1109 7.82511 10.3661L7.82503 13.6321C7.82503 13.8872 7.61842 14.0941 7.36355 14.0941L0.182447 14.0945C0.062664 13.4144 -1.71661e-05 12.7142 0 11.9995C1.71661e-05 11.2848 0.0627384 10.5846 0.182552 9.90452ZM15.2756 5.16214C15.2757 4.90701 15.4823 4.70019 15.7371 4.70019L21.5294 4.69998C22.4717 5.93135 23.1808 7.34943 23.5924 8.88987L15.7371 8.89013C15.4822 8.89014 15.2756 8.6833 15.2756 8.42816L15.2756 5.16214ZM12.5068 0C15.7076 0.132721 18.5852 1.52098 20.6595 3.68592L12.9682 3.6861C12.7133 3.6861 12.5067 3.47927 12.5067 3.22413L12.5068 0Z" fill="#9EA0A1"></path></svg></button></div><div class="flex flex-col"></div></div><div class="shrink-0 flex flex-col gap-2 border-t border-gray-300 px-2 py-4"><div><button type="button" aria-label="Open Account" class="cursor-pointer" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-:R1h:" data-state="closed"><div class="group/sidebar-footer flex w-full items-baseline justify-start text-sm font-semibold leading-10 text-gray-600 cursor-wait"><img width="42" height="42" loading="lazy" class="group-hover/sidebar-footer:hidden" src="data:image/png;base64,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" alt="Renown Login"/><img width="42" height="42" loading="lazy" class="hidden group-hover/sidebar-footer:block" src="./assets/renown-short-hover-BiSLBV7L.png" alt="Renown Login Hover"/></div></button></div><button aria-label="Settings" type="button" class="mt-3 flex w-full items-center justify-center outline-none cursor-wait"><svg class="text-gray-600" style="width:24px;height:24px" viewBox="0 0 24 24" fill="currentcolor"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.5 2C13.1894 2 13.8136 2.27905 14.2659 2.73036C14.2834 2.74784 14.3007 2.76559 14.3177 2.78358C14.7174 3.20678 14.971 3.76953 14.9977 4.39107L14.9985 4.41205C14.9995 4.44124 15 4.47056 15 4.5L15 4.51426C15 4.55491 15.0247 4.59145 15.0623 4.60702C15.0998 4.62261 15.1431 4.61423 15.1719 4.58546L15.182 4.57538C15.2028 4.55456 15.2239 4.53419 15.2452 4.51426L15.2607 4.5C15.719 4.07934 16.2962 3.86073 16.8782 3.84417C16.9029 3.84346 16.9277 3.84312 16.9524 3.84315C17.5913 3.84382 18.23 4.0879 18.7175 4.57538L19.4246 5.28249C19.9121 5.76997 20.1562 6.40868 20.1569 7.0476C20.1569 7.07234 20.1565 7.09709 20.1558 7.12182C20.1393 7.70375 19.9207 8.281 19.5 8.73935L19.4857 8.75476C19.4658 8.77611 19.4454 8.7972 19.4246 8.81802L19.4145 8.82811C19.3858 8.85687 19.3774 8.90017 19.393 8.93775C19.4085 8.97529 19.4451 9 19.4857 9L19.5 9C19.5294 9 19.5588 9.00051 19.5879 9.00152L19.6089 9.00233C20.2305 9.02898 20.7932 9.28257 21.2164 9.68233C21.2344 9.69933 21.2522 9.71659 21.2696 9.73411C21.721 10.1864 22 10.8106 22 11.5L22 12.5C22 13.1894 21.721 13.8136 21.2696 14.2659C21.2522 14.2834 21.2344 14.3007 21.2164 14.3177C20.7932 14.7174 20.2305 14.971 19.6089 14.9977L19.5879 14.9985C19.5588 14.9995 19.5294 15 19.5 15L19.4857 15C19.4451 15 19.4085 15.0247 19.393 15.0623C19.3774 15.0998 19.3858 15.1431 19.4145 15.1719L19.4246 15.182C19.4454 15.2028 19.4658 15.2239 19.4857 15.2452L19.5 15.2607C19.9207 15.719 20.1393 16.2962 20.1558 16.8782C20.1565 16.9029 20.1569 16.9277 20.1569 16.9524C20.1562 17.5913 19.9121 18.23 19.4246 18.7175L18.7175 19.4246C18.23 19.9121 17.5913 20.1562 16.9524 20.1568C16.9277 20.1569 16.9029 20.1565 16.8782 20.1558C16.2963 20.1393 15.719 19.9207 15.2607 19.5L15.2452 19.4857C15.2239 19.4658 15.2028 19.4454 15.182 19.4246L15.1719 19.4145C15.1431 19.3858 15.0998 19.3774 15.0623 19.393C15.0247 19.4085 15 19.4451 15 19.4857L15 19.5C15 19.5294 14.9995 19.5588 14.9985 19.5879L14.9977 19.6089C14.971 20.2305 14.7174 20.7932 14.3177 21.2164C14.3007 21.2344 14.2834 21.2522 14.2659 21.2696C13.8136 21.7209 13.1894 22 12.5 22L11.5 22C10.8106 22 10.1864 21.7209 9.73411 21.2696C9.71659 21.2522 9.69933 21.2344 9.68233 21.2164C9.28257 20.7932 9.02898 20.2305 9.00233 19.6089L9.00152 19.5879C9.00051 19.5588 9 19.5294 9 19.5L9 19.4857C9 19.4451 8.97529 19.4085 8.93774 19.393C8.90017 19.3774 8.85687 19.3858 8.8281 19.4145L8.81802 19.4246C8.7972 19.4454 8.77611 19.4658 8.75475 19.4857L8.73934 19.5C8.281 19.9207 7.70375 20.1393 7.12182 20.1558C7.09708 20.1565 7.07234 20.1569 7.0476 20.1568C6.40868 20.1562 5.76997 19.9121 5.28249 19.4246L4.57538 18.7175C4.0879 18.23 3.84382 17.5913 3.84315 16.9524C3.84312 16.9277 3.84346 16.9029 3.84417 16.8782C3.86073 16.2962 4.07934 15.719 4.5 15.2607L4.51426 15.2452C4.53419 15.2239 4.55456 15.2028 4.57538 15.182L4.58546 15.1719C4.61423 15.1431 4.62261 15.0998 4.60702 15.0623C4.59145 15.0247 4.55491 15 4.51426 15L4.5 15C4.47056 15 4.44125 14.9995 4.41205 14.9985L4.39107 14.9977C3.76953 14.971 3.20678 14.7174 2.78358 14.3177C2.76558 14.3007 2.74784 14.2834 2.73036 14.2659C2.27905 13.8136 2 13.1894 2 12.5L2 11.5C2 10.8106 2.27905 10.1864 2.73036 9.73411C2.74784 9.71659 2.76558 9.69933 2.78358 9.68233C3.20678 9.28257 3.76953 9.02898 4.39107 9.00233L4.41205 9.00152C4.44125 9.00051 4.47056 9 4.5 9L4.51426 9C4.55491 9 4.59145 8.97529 4.60702 8.93775C4.62261 8.90017 4.61423 8.85687 4.58546 8.82811L4.57538 8.81802C4.55456 8.7972 4.53419 8.77611 4.51426 8.75476L4.5 8.73935C4.07934 8.281 3.86073 7.70375 3.84417 7.12182C3.84346 7.09709 3.84312 7.07234 3.84315 7.0476C3.84382 6.40868 4.0879 5.76997 4.57538 5.28249L5.28249 4.57538C5.76997 4.0879 6.40868 3.84382 7.0476 3.84315C7.07234 3.84312 7.09709 3.84346 7.12182 3.84417C7.70375 3.86073 8.281 4.07934 8.73934 4.5L8.75476 4.51426C8.77611 4.53419 8.7972 4.55456 8.81802 4.57538L8.8281 4.58546C8.85687 4.61423 8.90017 4.62261 8.93775 4.60702C8.97529 4.59145 9 4.55491 9 4.51426L9 4.5C9 4.47056 9.00051 4.44124 9.00152 4.41205L9.00233 4.39107C9.02898 3.76953 9.28257 3.20678 9.68233 2.78358C9.69933 2.76559 9.71659 2.74784 9.73411 2.73036C10.1864 2.27905 10.8106 2 11.5 2L12.5 2ZM11 19.5C11 19.7761 11.2239 20 11.5 20L12.5 20C12.7761 20 13 19.7761 13 19.5L13 19.4857C13 18.6262 13.5212 17.8669 14.2962 17.5455C15.0727 17.2235 15.9787 17.3929 16.5861 18.0003L16.5962 18.0104C16.7915 18.2057 17.108 18.2057 17.3033 18.0104L18.0104 17.3033C18.2057 17.108 18.2057 16.7915 18.0104 16.5962L18.0003 16.5861C17.3929 15.9787 17.2235 15.0727 17.5455 14.2961C17.8669 13.5212 18.6262 13 19.4857 13L19.5 13C19.7761 13 20 12.7761 20 12.5L20 11.5C20 11.2239 19.7761 11 19.5 11L19.4857 11C18.6262 11 17.8669 10.4788 17.5455 9.70385C17.2235 8.92727 17.3929 8.02132 18.0003 7.41389L18.0104 7.40381C18.2057 7.20854 18.2057 6.89196 18.0104 6.6967L17.3033 5.98959C17.108 5.79433 16.7915 5.79433 16.5962 5.98959L16.5861 5.99968C15.9787 6.60711 15.0727 6.77651 14.2962 6.45448C13.5212 6.13311 13 5.37381 13 4.51426L13 4.5C13 4.22386 12.7761 4 12.5 4L11.5 4C11.2239 4 11 4.22386 11 4.5L11 4.51426C11 5.37381 10.4788 6.13311 9.70384 6.45448C8.92725 6.77651 8.02132 6.60711 7.41389 5.99968L7.40381 5.98959C7.20854 5.79433 6.89196 5.79433 6.6967 5.98959L5.98959 6.6967C5.79433 6.89196 5.79433 7.20854 5.98959 7.40381L5.99967 7.41389C6.60711 8.02132 6.77651 8.92727 6.45448 9.70385C6.13311 10.4788 5.37382 11 4.51426 11L4.5 11C4.22386 11 4 11.2239 4 11.5L4 12.5C4 12.7761 4.22386 13 4.5 13L4.51426 13C5.37382 13 6.13311 13.5212 6.45447 14.2961C6.77651 15.0727 6.60711 15.9787 5.99968 16.5861L5.98959 16.5962C5.79433 16.7915 5.79433 17.108 5.98959 17.3033L6.6967 18.0104C6.89196 18.2057 7.20854 18.2057 7.4038 18.0104L7.41389 18.0003C8.02132 17.3929 8.92726 17.2235 9.70384 17.5455C10.4788 17.8669 11 18.6262 11 19.4857L11 19.5Z"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M12 14C13.1046 14 14 13.1046 14 12C14 10.8954 13.1046 10 12 10C10.8954 10 10 10.8954 10 12C10 13.1046 10.8954 14 12 14ZM12 16C14.2091 16 16 14.2091 16 12C16 9.79086 14.2091 8 12 8C9.79086 8 8 9.79086 8 12C8 14.2091 9.79086 16 12 16Z"></path></svg><span class="hidden text-sm font-semibold leading-6 text-gray-800">Settings</span></button></div></div><div class="container relative mx-auto h-full flex-col hidden home-screen"><div class="m-8 flex flex-wrap justify-center gap-4 pt-12"><picture class="pointer-events-none absolute inset-8 z-0 size-[calc(100%-32px)] object-contain"><source srcSet="./assets/home-bg-BRYzhkhi.avif" type="image/avif"/><img src="./assets/home-bg-BEhF9NuW.png" alt="background" class="object-contain"/></picture></div></div><script>
|
|
70
|
+
}</script><script async="" type="module" crossorigin="" src="./assets/main.BDioUTOa.js"></script><link rel="modulepreload" crossorigin="" href="./assets/index.Dc5HlSvp.js"><link rel="stylesheet" crossorigin="" href="./assets/main-DZwbCGA5.css"></head><body><div id="app"><div class="flex h-screen"><div class="group flex h-full flex-col bg-slate-50 animate-pulse" style="width:58px"><div class="no-scrollbar flex-1 overflow-auto text-gray-900 transition-shadow"><div class="shrink-0 flex justify-center gap-4 border-b border-gray-300 py-4"><button aria-label="Home" class="cursor-wait" type="button"><svg class="text-gray-600" style="width:24px;height:24px" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M11.0306 3.68615C11.2854 3.68614 11.492 3.47932 11.4921 3.2242L11.4921 9.03413e-06C8.29133 0.132881 5.41451 1.52048 3.33928 3.68633L11.0306 3.68615ZM14.2609 8.42821C14.2609 8.68334 14.0543 8.89016 13.7994 8.89016L0.406086 8.89043C0.81778 7.34998 1.52777 5.93103 2.46931 4.70043L13.7995 4.70024C14.0544 4.70023 14.261 4.90707 14.261 5.16221L14.2609 8.42821ZM20.6591 20.3137C18.5847 22.4787 15.7079 23.8663 12.5062 24L12.5063 20.7758C12.5063 20.5207 12.7129 20.3139 12.9678 20.3139L20.6591 20.3137ZM11.4924 23.9992C8.29157 23.8665 5.41401 22.4782 3.33969 20.3133L11.0309 20.3131C11.2858 20.3131 11.4924 20.52 11.4924 20.7751L11.4924 23.9992ZM17.5946 15.5703C17.5947 15.3152 17.8013 15.1083 18.0561 15.1083L23.5923 15.108C23.1806 16.6484 22.4714 18.0666 21.5291 19.298L18.0561 19.2983C17.8012 19.2983 17.5946 19.0914 17.5946 18.8363L17.5946 15.5703ZM8.84765 10.3544C8.85393 10.1039 9.05863 9.90407 9.30899 9.90407L23.8175 9.90396C23.9373 10.584 24 11.2842 24 11.9989C24 12.7136 23.9372 13.4138 23.8174 14.0939L9.31089 14.0933C9.06005 14.0932 8.85517 13.8927 8.84957 13.6416L8.80986 11.8617L8.84765 10.3544ZM16.7389 18.8372C16.7389 19.0923 16.5323 19.2991 16.2774 19.2991L2.46978 19.2992C1.52749 18.0679 0.818373 16.6498 0.406752 15.1093L16.2775 15.1092C16.5324 15.1092 16.739 15.316 16.739 15.5712L16.7389 18.8372ZM0.182552 9.90452L7.3636 9.90412C7.61849 9.90411 7.82511 10.1109 7.82511 10.3661L7.82503 13.6321C7.82503 13.8872 7.61842 14.0941 7.36355 14.0941L0.182447 14.0945C0.062664 13.4144 -1.71661e-05 12.7142 0 11.9995C1.71661e-05 11.2848 0.0627384 10.5846 0.182552 9.90452ZM15.2756 5.16214C15.2757 4.90701 15.4823 4.70019 15.7371 4.70019L21.5294 4.69998C22.4717 5.93135 23.1808 7.34943 23.5924 8.88987L15.7371 8.89013C15.4822 8.89014 15.2756 8.6833 15.2756 8.42816L15.2756 5.16214ZM12.5068 0C15.7076 0.132721 18.5852 1.52098 20.6595 3.68592L12.9682 3.6861C12.7133 3.6861 12.5067 3.47927 12.5067 3.22413L12.5068 0Z" fill="#9EA0A1"></path></svg></button></div><div class="flex flex-col"></div></div><div class="shrink-0 flex flex-col gap-2 border-t border-gray-300 px-2 py-4"><div><button type="button" aria-label="Open Account" class="cursor-pointer" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-:R1h:" data-state="closed"><div class="group/sidebar-footer flex w-full items-baseline justify-start text-sm font-semibold leading-10 text-gray-600 cursor-wait"><img width="42" height="42" loading="lazy" class="group-hover/sidebar-footer:hidden" src="data:image/png;base64,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" alt="Renown Login"/><img width="42" height="42" loading="lazy" class="hidden group-hover/sidebar-footer:block" src="./assets/renown-short-hover-BiSLBV7L.png" alt="Renown Login Hover"/></div></button></div><button aria-label="Settings" type="button" class="mt-3 flex w-full items-center justify-center outline-none cursor-wait"><svg class="text-gray-600" style="width:24px;height:24px" viewBox="0 0 24 24" fill="currentcolor"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.5 2C13.1894 2 13.8136 2.27905 14.2659 2.73036C14.2834 2.74784 14.3007 2.76559 14.3177 2.78358C14.7174 3.20678 14.971 3.76953 14.9977 4.39107L14.9985 4.41205C14.9995 4.44124 15 4.47056 15 4.5L15 4.51426C15 4.55491 15.0247 4.59145 15.0623 4.60702C15.0998 4.62261 15.1431 4.61423 15.1719 4.58546L15.182 4.57538C15.2028 4.55456 15.2239 4.53419 15.2452 4.51426L15.2607 4.5C15.719 4.07934 16.2962 3.86073 16.8782 3.84417C16.9029 3.84346 16.9277 3.84312 16.9524 3.84315C17.5913 3.84382 18.23 4.0879 18.7175 4.57538L19.4246 5.28249C19.9121 5.76997 20.1562 6.40868 20.1569 7.0476C20.1569 7.07234 20.1565 7.09709 20.1558 7.12182C20.1393 7.70375 19.9207 8.281 19.5 8.73935L19.4857 8.75476C19.4658 8.77611 19.4454 8.7972 19.4246 8.81802L19.4145 8.82811C19.3858 8.85687 19.3774 8.90017 19.393 8.93775C19.4085 8.97529 19.4451 9 19.4857 9L19.5 9C19.5294 9 19.5588 9.00051 19.5879 9.00152L19.6089 9.00233C20.2305 9.02898 20.7932 9.28257 21.2164 9.68233C21.2344 9.69933 21.2522 9.71659 21.2696 9.73411C21.721 10.1864 22 10.8106 22 11.5L22 12.5C22 13.1894 21.721 13.8136 21.2696 14.2659C21.2522 14.2834 21.2344 14.3007 21.2164 14.3177C20.7932 14.7174 20.2305 14.971 19.6089 14.9977L19.5879 14.9985C19.5588 14.9995 19.5294 15 19.5 15L19.4857 15C19.4451 15 19.4085 15.0247 19.393 15.0623C19.3774 15.0998 19.3858 15.1431 19.4145 15.1719L19.4246 15.182C19.4454 15.2028 19.4658 15.2239 19.4857 15.2452L19.5 15.2607C19.9207 15.719 20.1393 16.2962 20.1558 16.8782C20.1565 16.9029 20.1569 16.9277 20.1569 16.9524C20.1562 17.5913 19.9121 18.23 19.4246 18.7175L18.7175 19.4246C18.23 19.9121 17.5913 20.1562 16.9524 20.1568C16.9277 20.1569 16.9029 20.1565 16.8782 20.1558C16.2963 20.1393 15.719 19.9207 15.2607 19.5L15.2452 19.4857C15.2239 19.4658 15.2028 19.4454 15.182 19.4246L15.1719 19.4145C15.1431 19.3858 15.0998 19.3774 15.0623 19.393C15.0247 19.4085 15 19.4451 15 19.4857L15 19.5C15 19.5294 14.9995 19.5588 14.9985 19.5879L14.9977 19.6089C14.971 20.2305 14.7174 20.7932 14.3177 21.2164C14.3007 21.2344 14.2834 21.2522 14.2659 21.2696C13.8136 21.7209 13.1894 22 12.5 22L11.5 22C10.8106 22 10.1864 21.7209 9.73411 21.2696C9.71659 21.2522 9.69933 21.2344 9.68233 21.2164C9.28257 20.7932 9.02898 20.2305 9.00233 19.6089L9.00152 19.5879C9.00051 19.5588 9 19.5294 9 19.5L9 19.4857C9 19.4451 8.97529 19.4085 8.93774 19.393C8.90017 19.3774 8.85687 19.3858 8.8281 19.4145L8.81802 19.4246C8.7972 19.4454 8.77611 19.4658 8.75475 19.4857L8.73934 19.5C8.281 19.9207 7.70375 20.1393 7.12182 20.1558C7.09708 20.1565 7.07234 20.1569 7.0476 20.1568C6.40868 20.1562 5.76997 19.9121 5.28249 19.4246L4.57538 18.7175C4.0879 18.23 3.84382 17.5913 3.84315 16.9524C3.84312 16.9277 3.84346 16.9029 3.84417 16.8782C3.86073 16.2962 4.07934 15.719 4.5 15.2607L4.51426 15.2452C4.53419 15.2239 4.55456 15.2028 4.57538 15.182L4.58546 15.1719C4.61423 15.1431 4.62261 15.0998 4.60702 15.0623C4.59145 15.0247 4.55491 15 4.51426 15L4.5 15C4.47056 15 4.44125 14.9995 4.41205 14.9985L4.39107 14.9977C3.76953 14.971 3.20678 14.7174 2.78358 14.3177C2.76558 14.3007 2.74784 14.2834 2.73036 14.2659C2.27905 13.8136 2 13.1894 2 12.5L2 11.5C2 10.8106 2.27905 10.1864 2.73036 9.73411C2.74784 9.71659 2.76558 9.69933 2.78358 9.68233C3.20678 9.28257 3.76953 9.02898 4.39107 9.00233L4.41205 9.00152C4.44125 9.00051 4.47056 9 4.5 9L4.51426 9C4.55491 9 4.59145 8.97529 4.60702 8.93775C4.62261 8.90017 4.61423 8.85687 4.58546 8.82811L4.57538 8.81802C4.55456 8.7972 4.53419 8.77611 4.51426 8.75476L4.5 8.73935C4.07934 8.281 3.86073 7.70375 3.84417 7.12182C3.84346 7.09709 3.84312 7.07234 3.84315 7.0476C3.84382 6.40868 4.0879 5.76997 4.57538 5.28249L5.28249 4.57538C5.76997 4.0879 6.40868 3.84382 7.0476 3.84315C7.07234 3.84312 7.09709 3.84346 7.12182 3.84417C7.70375 3.86073 8.281 4.07934 8.73934 4.5L8.75476 4.51426C8.77611 4.53419 8.7972 4.55456 8.81802 4.57538L8.8281 4.58546C8.85687 4.61423 8.90017 4.62261 8.93775 4.60702C8.97529 4.59145 9 4.55491 9 4.51426L9 4.5C9 4.47056 9.00051 4.44124 9.00152 4.41205L9.00233 4.39107C9.02898 3.76953 9.28257 3.20678 9.68233 2.78358C9.69933 2.76559 9.71659 2.74784 9.73411 2.73036C10.1864 2.27905 10.8106 2 11.5 2L12.5 2ZM11 19.5C11 19.7761 11.2239 20 11.5 20L12.5 20C12.7761 20 13 19.7761 13 19.5L13 19.4857C13 18.6262 13.5212 17.8669 14.2962 17.5455C15.0727 17.2235 15.9787 17.3929 16.5861 18.0003L16.5962 18.0104C16.7915 18.2057 17.108 18.2057 17.3033 18.0104L18.0104 17.3033C18.2057 17.108 18.2057 16.7915 18.0104 16.5962L18.0003 16.5861C17.3929 15.9787 17.2235 15.0727 17.5455 14.2961C17.8669 13.5212 18.6262 13 19.4857 13L19.5 13C19.7761 13 20 12.7761 20 12.5L20 11.5C20 11.2239 19.7761 11 19.5 11L19.4857 11C18.6262 11 17.8669 10.4788 17.5455 9.70385C17.2235 8.92727 17.3929 8.02132 18.0003 7.41389L18.0104 7.40381C18.2057 7.20854 18.2057 6.89196 18.0104 6.6967L17.3033 5.98959C17.108 5.79433 16.7915 5.79433 16.5962 5.98959L16.5861 5.99968C15.9787 6.60711 15.0727 6.77651 14.2962 6.45448C13.5212 6.13311 13 5.37381 13 4.51426L13 4.5C13 4.22386 12.7761 4 12.5 4L11.5 4C11.2239 4 11 4.22386 11 4.5L11 4.51426C11 5.37381 10.4788 6.13311 9.70384 6.45448C8.92725 6.77651 8.02132 6.60711 7.41389 5.99968L7.40381 5.98959C7.20854 5.79433 6.89196 5.79433 6.6967 5.98959L5.98959 6.6967C5.79433 6.89196 5.79433 7.20854 5.98959 7.40381L5.99967 7.41389C6.60711 8.02132 6.77651 8.92727 6.45448 9.70385C6.13311 10.4788 5.37382 11 4.51426 11L4.5 11C4.22386 11 4 11.2239 4 11.5L4 12.5C4 12.7761 4.22386 13 4.5 13L4.51426 13C5.37382 13 6.13311 13.5212 6.45447 14.2961C6.77651 15.0727 6.60711 15.9787 5.99968 16.5861L5.98959 16.5962C5.79433 16.7915 5.79433 17.108 5.98959 17.3033L6.6967 18.0104C6.89196 18.2057 7.20854 18.2057 7.4038 18.0104L7.41389 18.0003C8.02132 17.3929 8.92726 17.2235 9.70384 17.5455C10.4788 17.8669 11 18.6262 11 19.4857L11 19.5Z"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M12 14C13.1046 14 14 13.1046 14 12C14 10.8954 13.1046 10 12 10C10.8954 10 10 10.8954 10 12C10 13.1046 10.8954 14 12 14ZM12 16C14.2091 16 16 14.2091 16 12C16 9.79086 14.2091 8 12 8C9.79086 8 8 9.79086 8 12C8 14.2091 9.79086 16 12 16Z"></path></svg><span class="hidden text-sm font-semibold leading-6 text-gray-800">Settings</span></button></div></div><div class="container relative mx-auto h-full flex-col hidden home-screen"><div class="m-8 flex flex-wrap justify-center gap-4 pt-12"><picture class="pointer-events-none absolute inset-8 z-0 size-[calc(100%-32px)] object-contain"><source srcSet="./assets/home-bg-BRYzhkhi.avif" type="image/avif"/><img src="./assets/home-bg-BEhF9NuW.png" alt="background" class="object-contain"/></picture></div></div><script>
|
|
71
71
|
const baseEl = document.querySelector('base');
|
|
72
72
|
const href = baseEl.getAttribute('href');
|
|
73
73
|
const basePath = href || '/';
|
package/dist/vite-envs.sh
CHANGED
|
@@ -11,7 +11,7 @@ replaceAll() {
|
|
|
11
11
|
}'
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
html=$(echo "PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGNoYXJzZXQ9IlVURi04Ij48bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSI+PG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkNvbm5lY3QgaXMgYSBodWIgZm9yIHlvdXIgbW9zdCBpbXBvcnRhbnQgZG9jdW1lbnRzIGFuZCBwcm9jZXNzZXMsIHRyYW5zbGF0ZWQgaW50byBzb2Z0d2FyZS4gRWFzaWx5IGNhcHR1cmUgZGF0YSBpbiBhIHN0cnVjdHVyZWQgd2F5IHdpdGggZGVkaWNhdGVkIGJ1c2luZXNzIHByb2Nlc3MgcGFja2FnZXMuIENvbGxhYm9yYXRlIG9uIHNoYXJlZCBkb2N1bWVudHMgd2l0aCBlYXNlIHdoaWxlIHVzaW5nIHlvdXIgcHJlZmVycmVkIHN0b3JhZ2Ugc29sdXRpb24gKGRlY2VudHJhbGl6ZWQsIGNlbnRyYWxpemVkLCBvciBsb2NhbCkuIj48dGl0bGU+UG93ZXJob3VzZSBDb25uZWN0PC90aXRsZT48bGluayByZWw9Imljb24iIGhyZWY9Ii4vaWNvbi5pY28iPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSIgY3Jvc3NvcmlnaW49IiI+PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2VzbS5zaCIgY3Jvc3NvcmlnaW49IiI+PCEtLSB2aXRlLWVudnMgc2NyaXB0IHBsYWNlaG9sZGVyIHhLc1BtTHMzMHN3S3NkSXNWeCAtLT48c2NyaXB0IHR5cGU9ImltcG9ydG1hcCI+ewogICJpbXBvcnRzIjogewogICAgInJlYWN0IjogImh0dHBzOi8vZXNtLnNoL3JlYWN0QDE4LjMuMSIsCiAgICAicmVhY3QvIjogImh0dHBzOi8vZXNtLnNoL3JlYWN0QDE4LjMuMS8iLAogICAgInJlYWN0LWRvbSI6ICJodHRwczovL2VzbS5zaC9yZWFjdC1kb21AMTguMy4xJmRlcHM9c2NoZWR1bGVyQDAuMjMuMiIsCiAgICAicmVhY3QtZG9tLyI6ICJodHRwczovL2VzbS5zaC9yZWFjdC1kb21AMTguMy4xJmRlcHM9c2NoZWR1bGVyQDAuMjMuMi8iCiAgfQp9PC9zY3JpcHQ+
|
|
14
|
+
html=$(echo "PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGNoYXJzZXQ9IlVURi04Ij48bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSI+PG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkNvbm5lY3QgaXMgYSBodWIgZm9yIHlvdXIgbW9zdCBpbXBvcnRhbnQgZG9jdW1lbnRzIGFuZCBwcm9jZXNzZXMsIHRyYW5zbGF0ZWQgaW50byBzb2Z0d2FyZS4gRWFzaWx5IGNhcHR1cmUgZGF0YSBpbiBhIHN0cnVjdHVyZWQgd2F5IHdpdGggZGVkaWNhdGVkIGJ1c2luZXNzIHByb2Nlc3MgcGFja2FnZXMuIENvbGxhYm9yYXRlIG9uIHNoYXJlZCBkb2N1bWVudHMgd2l0aCBlYXNlIHdoaWxlIHVzaW5nIHlvdXIgcHJlZmVycmVkIHN0b3JhZ2Ugc29sdXRpb24gKGRlY2VudHJhbGl6ZWQsIGNlbnRyYWxpemVkLCBvciBsb2NhbCkuIj48dGl0bGU+UG93ZXJob3VzZSBDb25uZWN0PC90aXRsZT48bGluayByZWw9Imljb24iIGhyZWY9Ii4vaWNvbi5pY28iPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSIgY3Jvc3NvcmlnaW49IiI+PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2VzbS5zaCIgY3Jvc3NvcmlnaW49IiI+PCEtLSB2aXRlLWVudnMgc2NyaXB0IHBsYWNlaG9sZGVyIHhLc1BtTHMzMHN3S3NkSXNWeCAtLT48c2NyaXB0IHR5cGU9ImltcG9ydG1hcCI+ewogICJpbXBvcnRzIjogewogICAgInJlYWN0IjogImh0dHBzOi8vZXNtLnNoL3JlYWN0QDE4LjMuMSIsCiAgICAicmVhY3QvIjogImh0dHBzOi8vZXNtLnNoL3JlYWN0QDE4LjMuMS8iLAogICAgInJlYWN0LWRvbSI6ICJodHRwczovL2VzbS5zaC9yZWFjdC1kb21AMTguMy4xJmRlcHM9c2NoZWR1bGVyQDAuMjMuMiIsCiAgICAicmVhY3QtZG9tLyI6ICJodHRwczovL2VzbS5zaC9yZWFjdC1kb21AMTguMy4xJmRlcHM9c2NoZWR1bGVyQDAuMjMuMi8iCiAgfQp9PC9zY3JpcHQ+PHNjcmlwdCBhc3luYz0iIiB0eXBlPSJtb2R1bGUiIGNyb3Nzb3JpZ2luPSIiIHNyYz0iLi9hc3NldHMvbWFpbi5CRGlvVVRPYS5qcyI+PC9zY3JpcHQ+PGxpbmsgcmVsPSJtb2R1bGVwcmVsb2FkIiBjcm9zc29yaWdpbj0iIiBocmVmPSIuL2Fzc2V0cy9pbmRleC5EYzVIbFN2cC5qcyI+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBjcm9zc29yaWdpbj0iIiBocmVmPSIuL2Fzc2V0cy9tYWluLURad2JDR0E1LmNzcyI+PC9oZWFkPjxib2R5PjxkaXYgaWQ9ImFwcCI+PC9kaXY+PC9ib2R5PjwvaHRtbD4=" | base64 -d)
|
|
15
15
|
|
|
16
16
|
BASE_URL_base64="eEFwV2RSclg5OWtQclZnZ0UiLi8iCg=="
|
|
17
17
|
BASE_URL=$(echo "Li8K" | base64 -d)
|
package/nginx.conf
CHANGED
|
@@ -38,6 +38,7 @@ http {
|
|
|
38
38
|
alias /var/www/html/project/assets/;
|
|
39
39
|
access_log off;
|
|
40
40
|
log_not_found off;
|
|
41
|
+
etag off;
|
|
41
42
|
expires max;
|
|
42
43
|
add_header Cache-Control "public, max-age=31536000, immutable";
|
|
43
44
|
}
|
|
@@ -50,9 +51,29 @@ http {
|
|
|
50
51
|
add_header Cache-Control "public, max-age=31536000, immutable";
|
|
51
52
|
}
|
|
52
53
|
|
|
54
|
+
location = ${PH_CONNECT_BASE_PATH}/service-worker.js {
|
|
55
|
+
alias /var/www/html/project/service-worker.js;
|
|
56
|
+
|
|
57
|
+
access_log off;
|
|
58
|
+
log_not_found off;
|
|
59
|
+
etag off;
|
|
60
|
+
|
|
61
|
+
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
|
62
|
+
add_header Pragma "no-cache";
|
|
63
|
+
add_header Expires "0";
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
# match any file in the root folder, except index.html
|
|
67
|
+
location ~ ${PH_CONNECT_BASE_PATH}/(?!index\.html$)([^/]+\.[a-z0-9]+)$ {
|
|
68
|
+
alias /var/www/html/project/$1;
|
|
69
|
+
access_log off;
|
|
70
|
+
log_not_found off;
|
|
71
|
+
etag on;
|
|
72
|
+
add_header Cache-Control "public, must-revalidate";
|
|
73
|
+
}
|
|
74
|
+
|
|
53
75
|
location ${PH_CONNECT_BASE_PATH} {
|
|
54
76
|
try_files $uri $uri/ /index.html;
|
|
55
77
|
}
|
|
56
|
-
|
|
57
78
|
}
|
|
58
79
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powerhousedao/connect",
|
|
3
3
|
"productName": "Powerhouse-Connect",
|
|
4
|
-
"version": "3.2.0-dev.
|
|
4
|
+
"version": "3.2.0-dev.3",
|
|
5
5
|
"description": "Powerhouse Connect",
|
|
6
6
|
"main": "./dist/index.html",
|
|
7
7
|
"type": "module",
|
|
@@ -87,14 +87,14 @@
|
|
|
87
87
|
"vite-plugin-svgr": "^4.3.0",
|
|
88
88
|
"vite-tsconfig-paths": "^5.1.4",
|
|
89
89
|
"xvfb-maybe": "^0.2.1",
|
|
90
|
-
"@powerhousedao/
|
|
91
|
-
"@powerhousedao/config": "3.2.0-dev.
|
|
92
|
-
"@powerhousedao/
|
|
93
|
-
"@powerhousedao/
|
|
94
|
-
"@powerhousedao/
|
|
95
|
-
"
|
|
96
|
-
"document-
|
|
97
|
-
"
|
|
90
|
+
"@powerhousedao/builder-tools": "3.2.0-dev.3",
|
|
91
|
+
"@powerhousedao/config": "3.2.0-dev.3",
|
|
92
|
+
"@powerhousedao/reactor-browser": "3.2.0-dev.3",
|
|
93
|
+
"@powerhousedao/common": "3.2.0-dev.3",
|
|
94
|
+
"@powerhousedao/design-system": "3.2.0-dev.3",
|
|
95
|
+
"document-drive": "3.2.0-dev.3",
|
|
96
|
+
"document-model": "3.2.0-dev.3",
|
|
97
|
+
"@renown/sdk": "3.2.0-dev.3"
|
|
98
98
|
},
|
|
99
99
|
"optionalDependencies": {
|
|
100
100
|
"@esbuild/linux-x64": "^0.21.4",
|
|
@@ -122,6 +122,8 @@
|
|
|
122
122
|
"cy:open": "cypress open",
|
|
123
123
|
"build:service-worker": "tsc --build ./tsconfig.sw.json",
|
|
124
124
|
"clean": "rimraf dist",
|
|
125
|
-
"clean:node_modules": "rimraf node_modules"
|
|
125
|
+
"clean:node_modules": "rimraf node_modules",
|
|
126
|
+
"docker:build": "docker build -f ./Dockerfile --tag connect-test-dev --build-arg TAG=dev .",
|
|
127
|
+
"docker:run": "docker run -it -p 4000:4000 -v $(realpath ../../../monorepo):/monorepo -v $(pwd)/nginx.conf:/etc/nginx/nginx.conf.template -e PH_USE_LOCAL=true -e PH_CONNECT_BASE_PATH=/develop/powerhouse/connect -e PORT=4000 connect-test-dev"
|
|
126
128
|
}
|
|
127
129
|
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsx as D}from"react/jsx-runtime";import{aD as v,aE as a}from"./index.DxrAJM8l.js";import{b as f,g as h,d as l}from"./user.BoRGXkj9.js";import"react";import"react-dom";function k(i){const{open:s,onAddLocalDrive:d,onAddRemoteDrive:c,onClose:r}=i,e=f(),p=h(),{getBearerToken:n}=l();async function u(o){await d(o),r()}async function m(o){await c(o),r()}return D(v,{open:s,onAddLocalDrive:u,onAddRemoteDrive:m,requestPublicDrive:async o=>{try{const t=await n(o,e==null?void 0:e.address);return a(o,{Authorization:`Bearer ${t}`})}catch(t){console.error(t);const A=await n(o,e==null?void 0:e.address,!0);return a(o,{Authorization:`Bearer ${A}`})}},onOpenChange:o=>{if(!o)return r()},appOptions:p})}export{k as AddDriveModal};
|
|
2
|
-
//# sourceMappingURL=AddDriveModal.BLTmseCa.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{aY as o,l as _,ac as t,ah as n,aZ as s,a_ as r}from"./index.DxrAJM8l.js";import{g as E}from"./browser.BkwNmV2Z.js";const i="@powerhousedao/connect",c="Powerhouse-Connect",a="3.2.0-dev.1",l="Powerhouse Connect",d="./dist/index.html",N="module",w={node:">=22.0.0"},C=["dist","nginx.conf","nginx.sh","scripts"],D="AGPL-3.0-only",p="acaldas@powerhouse.inc",u={type:"git",url:"https://github.com/powerhouse-inc/powerhouse"},S={url:"https://github.com/powerhouse-inc/powerhouse/issues"},T="https://github.com/powerhouse-inc/powerhouse#readme",I={"build:tsc":"tsc --build",start:"electron-forge start",package:"electron-forge package",make:"PH_CONNECT_BASE_HREF=./ electron-forge make","make:mac":"PH_CONNECT_BASE_HREF=./ electron-forge make -p darwin","make:linux":"PH_CONNECT_BASE_HREF=./ electron-forge make -p linux","make:windows":"PH_CONNECT_BASE_HREF=./ electron-forge make -p win32","publish:electron":"electron-forge publish",prepublishOnly:"npm run build",lint:"eslint .","lint:fix":"eslint --fix .","lint:nx":"eslint --quiet --fix .",format:'prettier --write "**/*.+(js|ts|jsx|tsx|json)"',dev:"vite -c vite.renderer.config.mts","dev:nocache":"rm -rf node_modules/.vite && rm -rf node_modules/.cache && npm run dev",prebuild:"npm run clean && tsc --build --noEmit",build:"NODE_OPTIONS=--max-old-space-size=6144 vite build -c vite.renderer.config.mts",preview:"vite preview -c vite.renderer.config.mts",e2e:"playwright test","cy:open":"cypress open","build:service-worker":"tsc --build ./tsconfig.sw.json",clean:"rimraf dist","clean:node_modules":"rimraf node_modules"},A={"@didtools/key-webcrypto":"^0.2.0","@electric-sql/pglite":"^0.2.17","@electron-forge/cli":"^6.1.1","@electron-forge/maker-deb":"^6.1.1","@electron-forge/maker-rpm":"^6.1.1","@electron-forge/maker-squirrel":"^6.1.1","@electron-forge/maker-zip":"^6.1.1","@electron-forge/plugin-vite":"^6.1.1","@electron-forge/publisher-electron-release-server":"^6.2.1","@electron-forge/publisher-github":"^7.2.0","@electron-forge/shared-types":"^7.7.0","@playwright/test":"^1.41.2","@powerhousedao/builder-tools":"workspace:*","@powerhousedao/common":"workspace:*","@powerhousedao/config":"workspace:*","@powerhousedao/design-system":"workspace:*","@powerhousedao/diff-analyzer":"^0.0.0-dev.7","@powerhousedao/reactor-browser":"workspace:*","@renown/sdk":"workspace:*","@rollup/plugin-node-resolve":"^15.2.3","@sentry/browser":"^9.1.0","@sentry/react":"^7.109.0","@sentry/vite-plugin":"^2.23.0","@tailwindcss/vite":"^4.1.4","@tanstack/react-virtual":"^3.8.1","@types/node":"^22.15.17","@types/react":"^18.2.79","@types/react-dom":"^18.2.18","@types/uuid":"^9.0.7","@types/wicg-file-system-access":"^2020.9.6","@vitejs/plugin-basic-ssl":"^2.0.0","@vitejs/plugin-react":"^4.4.1",asar:"^3.2.0","did-jwt":"^8.0.14","did-jwt-vc":"^4.0.12","did-key-creator":"^1.2.0","document-drive":"workspace:*","document-model":"workspace:*",electron:"30.0.0","electron-is-dev":"^3.0.1","electron-playwright-helpers":"^1.7.1","electron-squirrel-startup":"^1.0.0","electron-store":"^8.1.0",esbuild:"^0.24.0",graphql:"^16.11.0","graphql-request":"^6.1.0",i18next:"^23.7.6",jotai:"^2.1.0","jotai-effect":"^1.1.6",localforage:"^1.10.0",playwright:"^1.41.2","playwright-core":"^1.41.2",react:"^18.3.1","react-dom":"^18.3.1","react-error-boundary":"^4.0.11","react-hotkeys-hook":"^4.5.0","react-i18next":"^13.5.0","react-router-dom":"^6.11.2","tailwind-merge":"^3.0.2",tailwindcss:"^4.1.4",uint8arrays:"^5.1.0",uuid:"^9.0.1",viem:"^2.8.13",vite:"^6.3.3","vite-envs":"^4.6.0","vite-plugin-html":"^3.2.2","vite-plugin-node-polyfills":"^0.23.0","vite-plugin-svgr":"^4.3.0","vite-tsconfig-paths":"^5.1.4","xvfb-maybe":"^0.2.1"},L={"@esbuild/linux-x64":"^0.21.4","@rollup/rollup-linux-x64-musl":"4.14.3"},V={name:i,productName:c,version:a,description:l,main:d,type:N,engines:w,files:C,license:D,author:p,repository:u,bugs:S,homepage:T,scripts:I,devDependencies:A,optionalDependencies:L},O=V.version,g=window.__VITE_ENVS.APP_VERSION||O,m=window.__VITE_ENVS.PH_CONNECT_WARN_OUTDATED_APP||"false",v=window.__VITE_ENVS.PH_CONNECT_STUDIO_MODE||"false",f=window.__VITE_ENVS.PH_CONNECT_DISABLE_ADD_DRIVE||"false",h=window.__VITE_ENVS.PH_CONNECT_DISABLE_ADD_PUBLIC_DRIVES||void 0,P=window.__VITE_ENVS.PH_CONNECT_DISABLE_ADD_CLOUD_DRIVES||void 0,R=window.__VITE_ENVS.PH_CONNECT_DISABLE_ADD_LOCAL_DRIVES||void 0,B=window.__VITE_ENVS.PH_CONNECT_DISABLE_DELETE_PUBLIC_DRIVES||void 0,H=window.__VITE_ENVS.PH_CONNECT_DISABLE_DELETE_CLOUD_DRIVES||void 0,b=window.__VITE_ENVS.PH_CONNECT_DISABLE_DELETE_LOCAL_DRIVES||void 0,y=window.__VITE_ENVS.PH_CONNECT_LOCAL_DRIVES_ENABLED||void 0,k=window.__VITE_ENVS.PH_CONNECT_CLOUD_DRIVES_ENABLED||void 0,U=window.__VITE_ENVS.PH_CONNECT_PUBLIC_DRIVES_ENABLED||void 0,x=window.__VITE_ENVS.PH_CONNECT_SEARCH_BAR_ENABLED||void 0,G=window.__VITE_ENVS.PH_CONNECT_HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS||"false",e=E()||"/",M=window.__VITE_ENVS.PH_CONNECT_SENTRY_DSN||"",Y=window.__VITE_ENVS.PH_CONNECT_SENTRY_ENV||"dev",j=window.__VITE_ENVS.PH_CONNECT_SENTRY_TRACING_ENABLED||"false",q=window.__VITE_ENVS.PH_CONNECT_GA_TRACKING_ID,W=window.__VITE_ENVS.PH_CONNECT_CLI_VERSION||void 0,F=window.__VITE_ENVS.PH_CONNECT_ANALYTICS_DATABASE_NAME||`${e.replace(/\//g,"")}:analytics`,K=window.__VITE_ENVS.PH_CONNECT_ANALYTICS_DATABASE_WORKER_DISABLED||"false",z=r(window.__VITE_ENVS.LOG_LEVEL)?window.__VITE_ENVS.LOG_LEVEL:"info";o(z);_.debug(`Setting log level to ${window.__VITE_ENVS.LOG_LEVEL}.`);const Z={appVersion:g,studioMode:v.toString()==="true",warnOutdatedApp:m==="true",routerBasename:e,analytics:{databaseName:F,useWorker:K!=="true"},sentry:{dsn:M,env:Y,tracing:j==="true"},content:{showSearchBar:x!=="false",showDocumentModelSelectionSetting:G!=="true"},drives:{addDriveEnabled:f!=="true",sections:{[t]:{enabled:y!=="false",allowAdd:R!=="true",allowDelete:b!=="true"},[s]:{enabled:k!=="false",allowAdd:P!=="true",allowDelete:H!=="true"},[n]:{enabled:U!=="false",allowAdd:h!=="true",allowDelete:B!=="true"}}},gaTrackingId:q,phCliVersion:W};export{Z as c,V as p};
|
|
2
|
-
//# sourceMappingURL=connect.config.BX_VBjjD.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./app.DDM1o5sK.js","./useFeatureFlags.B3BoOzef.js","./index.DxrAJM8l.js","./user.BoRGXkj9.js","./connect.config.BX_VBjjD.js","./browser.BkwNmV2Z.js","./useAcceptedCookies.DduZlbUw.js","./useConnectConfig.BWdUwe5N.js","./index.CAUjMUXb.js","./registerServiceWorker.Dxs_6knN.js","./cookie-banner.CjS0sCnO.js","./i18next.CqOP20KE.js","./useTranslation.BpVv6XIW.js","./modal.DMO71brU.js","./Trans.kFe2S0Wk.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{createRoot as a}from"react-dom/client";import{_ as r}from"./index.DxrAJM8l.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.DDM1o5sK.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.CjS0sCnO.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.DMO71brU.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.CMuj8VGl.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DeleteItemModal.iAY-B9YV.js","./useTranslation.BpVv6XIW.js","./index.DxrAJM8l.js","./UpgradeDriveModal.B7mUnNcD.js","./CreateDocumentModal.CoVOMt_0.js","./useDocumentDriveServer.CEjU49s1.js","./user.BoRGXkj9.js","./useFeatureFlags.B3BoOzef.js","./connect.config.BX_VBjjD.js","./browser.BkwNmV2Z.js","./slug.C6xW_7Wm.js","./AddDriveModal.BLTmseCa.js","./AddLocalDriveModal.BmWt-zqx.js","./AddRemoteDriveModal.B2dLszvc.js","./DriveSettingsModal.BswCtDqR.js","./SettingsModal.HlCE_fW4.js","./i18next.CqOP20KE.js","./useConnectConfig.BWdUwe5N.js","./index.CAUjMUXb.js","./useDefaultDocumentModelEditor.BOE2b52Y.js","./ConfirmationModal.BeBmQkT4.js","./DeleteDriveModal.CTBCQ3Gm.js","./DebugSettingsModal.BcDdYXbp.js","./registerServiceWorker.Dxs_6knN.js","./DisclaimerModal.5nyrmZzU.js","./CookiesPolicyModal.Da5Eremm.js","./Trans.kFe2S0Wk.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.DxrAJM8l.js";import"react-dom";const L={deleteItem:t(()=>o(()=>import("./DeleteItemModal.iAY-B9YV.js"),__vite__mapDeps([0,1,2]),import.meta.url).then(e=>({default:e.DeleteItemModal}))),upgradeDrive:t(()=>o(()=>import("./UpgradeDriveModal.B7mUnNcD.js"),__vite__mapDeps([3,1,2]),import.meta.url).then(e=>({default:e.UpgradeDriveModal}))),createDocument:t(()=>o(()=>import("./CreateDocumentModal.CoVOMt_0.js"),__vite__mapDeps([4,2,5,6,7,8,9,10]),import.meta.url).then(e=>({default:e.CreateDocumentModal}))),addDriveModal:t(()=>o(()=>import("./AddDriveModal.BLTmseCa.js"),__vite__mapDeps([11,2,6]),import.meta.url).then(e=>({default:e.AddDriveModal}))),addLocalDrive:t(()=>o(()=>import("./AddLocalDriveModal.BmWt-zqx.js"),__vite__mapDeps([12,2]),import.meta.url).then(e=>({default:e.AddLocalDriveModal}))),addRemoteDrive:t(()=>o(()=>import("./AddRemoteDriveModal.B2dLszvc.js"),__vite__mapDeps([13,2]),import.meta.url).then(e=>({default:e.AddRemoteDriveModal}))),driveSettings:t(()=>o(()=>import("./DriveSettingsModal.BswCtDqR.js"),__vite__mapDeps([14,2]),import.meta.url).then(e=>({default:e.DriveSettingsModal}))),settingsModal:t(()=>o(()=>import("./SettingsModal.HlCE_fW4.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.BeBmQkT4.js"),__vite__mapDeps([20,2]),import.meta.url).then(e=>({default:e.ConfirmationModal}))),deleteDriveModal:t(()=>o(()=>import("./DeleteDriveModal.CTBCQ3Gm.js"),__vite__mapDeps([21,1,2]),import.meta.url).then(e=>({default:e.DeleteDriveModal}))),debugSettingsModal:t(()=>o(()=>import("./DebugSettingsModal.BcDdYXbp.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.5nyrmZzU.js"),__vite__mapDeps([24,1,2]),import.meta.url).then(e=>({default:e.DisclaimerModal}))),cookiesPolicy:t(()=>o(()=>import("./CookiesPolicyModal.Da5Eremm.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.DMO71brU.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{f as e,g as o,u as p}from"./app.DDM1o5sK.js";import"react/jsx-runtime";import"./useFeatureFlags.B3BoOzef.js";import"react";import"./index.DxrAJM8l.js";import"react-dom";import"./user.BoRGXkj9.js";import"./connect.config.BX_VBjjD.js";import"./browser.BkwNmV2Z.js";import"./useAcceptedCookies.DduZlbUw.js";import"./useConnectConfig.BWdUwe5N.js";import"./index.CAUjMUXb.js";import"./registerServiceWorker.Dxs_6knN.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.7zM7E9uX.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{e as se,b0 as ce,b1 as le,b2 as we,l as ie,b3 as ue,b4 as W,b5 as fe,f as U,b6 as pe,b7 as ee,b8 as he,b9 as me,ba as ge,bb as ye,bc as De,M as te,bd as Ee,be as ve,bf as be,bg as Se,bh as Te,bi as $e,bj as Fe,ac as oe,bk as re,af as ne,bl as Ne,bm as Ue,bn as Re}from"./index.DxrAJM8l.js";import{useState as ae,useEffect as Oe,useCallback as c,useMemo as Ae}from"react";import{b as Ie,c as Le,d as Me}from"./user.BoRGXkj9.js";import{a as Pe,h as Ce,n as xe,f as _e,i as He}from"./useFeatureFlags.B3BoOzef.js";const R=se(["utils/document-model",Math.floor(Math.random()*999).toString()]),je=parseInt(window.__VITE_ENVS.FILE_UPLOAD_OPERATIONS_CHUNK_SIZE||"50");function Be(a,n,w=R.error){const[f,g]=ae(n),[y,t]=ae(),D=u=>{t(u),w(u)};return Oe(()=>{g(n),t(void 0)},[n]),[f,(u,p,v)=>{t(void 0),g(T=>{if(!a||!T)return T;try{const S=a(T,u),O=u.scope??"global",l=S.operations[O],$=l[l.length-1];if($.error){const F=new Error($.error);D(F),v==null||v(F)}return p==null||p($,{prevState:{...T},newState:{...S}}),S}catch(S){return D(S),v==null||v(S),T}})},y]}async function ze(a,n,w,f,g,y){const t=(y==null?void 0:y.operationsLimit)||je;R.verbose(`uploadDocumentOperations(drive: ${a}, documentId:${n}, ops: ${Object.keys(w.operations).join(",")}, limit:${t})`);for(const D of Object.values(w.operations))for(let b=0;b<D.length;b+=t){R.verbose(`uploadDocumentOperations:for(i:${b}, ops:${D.length}, limit:${t}): START`);const u=D.slice(b,b+t),p=u.at(-1);if(!p)break;const{scope:v}=p;await g(a,n,u),R.verbose(`uploadDocumentOperations:for:waitForUpdate(${n}:${v} rev ${p.index}): NEXT`)}R.verbose(`uploadDocumentOperations:for:waitForUpdate(${n}): END`)}const ke=async a=>{we(a).generateAsync({type:"blob"}).then(w=>{const f=window.document.createElement("a");f.style.display="none",f.href=URL.createObjectURL(w),f.download=`${a.name||"Untitled"}.zip`,window.document.body.appendChild(f),f.click(),window.document.body.removeChild(f)}).catch(ie.error)};async function Je(a,n){var g,y;const w=n(a.documentType);if(!w)throw new Error(`Document model not supported: ${a.documentType}`);const f=w.documentModel.extension;if(!window.showSaveFilePicker){await ke(a);return}try{const t=await window.showSaveFilePicker({suggestedName:`${a.name||((g=a.state.global)==null?void 0:g.name)||"Untitled"}.${f?`${f}.`:""}zip`});await le(a,t);const D=(await t.getFile()).path;return typeof window<"u"&&((y=window.electronAPI)==null||y.fileSaved(a,D)),D}catch(t){if(!(t instanceof DOMException&&t.name==="AbortError"))throw t}}async function qe(a,n){const w=await ce(a,g=>g,{checkHashes:!0}),f=n(w.documentType);if(!f)throw new Error(`Document "${w.documentType}" is not supported`);return f.utils.loadFromInput(a)}async function Ze(a,n,w,f,g,y){if(!y||!a.context||!a.context.signer)return a;if(!g)return ie.error(`Document model '${f.documentType}' does not have a reducer`),a;const t={documentId:w,signer:a.context.signer};return await ue(a,g,f,t,n)}function Ke(a,n,w){return w?{context:{signer:{app:{name:"Connect",key:n||""},user:{address:w.address,networkId:w.networkId,chainId:w.chainId},signatures:[]}},...a}:a}function Qe(){const a=se(["useDocumentDriveServer",Math.floor(Math.random()*999).toString()]),{isAllowedToCreateDocuments:n,isAllowedToEditDocuments:w}=Pe()||{isAllowedToCreateDocuments:!1,isAllowedToEditDocuments:!1},f=Ie()||void 0,g=Le(),{sign:y}=Me(),t=Ce(),D=xe(),b=_e(),[u,p,,v]=He(),T=!!t,S=c(async(e,o,r)=>{if(!t)throw new Error("Reactor is not loaded");const d=await t.getDocument(e,o,r);if(!d)throw new Error(`There was an error opening file with id ${o} on drive ${e}`);return d},[t]),O=c(async e=>{if(!t)throw new Error("Reactor is not loaded");return await t.getDocuments(e)},[t]),l=c(async(e,o)=>{if(!t)throw new Error("Reactor is not loaded");let r=u.find(m=>m.id===e);if(!r)throw new Error(`Drive with id ${e} not found`);const d={...r};r=W(r,Ke(o,g,f));const s=o.scope??"global",h=r.operations[s].findLast(m=>m.type===o.type);if(!h)throw new Error("There was an error applying the operation");const E=await Ze(h,y,e,d,W,f);try{const m=await t.queueDriveOperation(e,E);if(m.status!=="SUCCESS"&&a.error(m.error),m.operations.length&&await p(),m.document&&!fe(m.document))throw new Error("Received document is not a Document Drive");return m.document}catch(m){return a.error(m),r}},[u,p,t,y,f,g]),$=c(async(e,o,r,d,s)=>{if(!n)throw new Error("User is not allowed to create documents");let i=u.find(N=>N.id===e);if(!i)throw new Error(`Drive with id ${e} not found`);const h=U(),E=pe(i.state.global,{id:h,name:o,parentFolder:d??null,documentType:r,document:s},["global"]);i=await l(e,E);const m=i==null?void 0:i.state.global.nodes.find(N=>N.id===h);if(!m||!ee(m))throw new Error("There was an error adding document");return m},[l,u,n]),F=c(async(e,o,r)=>{if(!w)throw new Error("User is not allowed to edit documents");if(!t)throw new Error("Reactor is not loaded");if(!u.find(i=>i.id===e))throw new Error(`Drive with id ${e} not found`);const s=o!==void 0?await t.queueOperations(e,o,r):await t.queueDriveOperations(e,r);return s.operations.length&&await p(),p().catch(a.error),s.document},[u,w,t]),A=c(async(e,o,r,d)=>{if(a.verbose(`addFile(drive: ${o}, name: ${r}, folder: ${d})`),!t)throw new Error("Reactor is not loaded");if(!n)throw new Error("User is not allowed to create files");const s=await qe(e,b),i={...s.initialState,initialState:s.initialState,operations:{global:[],local:[]},clipboard:[]},h=await $(o,r||(typeof e=="string"?s.name:e.name),s.documentType,d,i);u.find(E=>E.id===o),ze(o,h.id,s,t,F,{}).catch(E=>{throw E})},[$,F,b,n,t]),I=c(async(e,o,r,d,s)=>{if(!n)throw new Error("User is not allowed to update files");const i=await l(e,he({id:o,name:d||void 0,parentFolder:s,documentType:r})),h=i==null?void 0:i.state.global.nodes.find(E=>E.id===o);if(!h||!ee(h))throw new Error("There was an error updating document");return h},[l,n]),L=c(async(e,o,r)=>{if(!n)throw new Error("User is not allowed to create folders");const d=U(),s=await l(e,me({id:d,name:o,parentFolder:r})),i=s==null?void 0:s.state.global.nodes.find(h=>h.id===d);if(!i||!ge(i))throw new Error("There was an error adding folder");return i},[l,n]),M=c(async(e,o)=>{if(!n)throw new Error("User is not allowed to delete documents");await l(e,ye({id:o}))},[l,n]),P=c(async(e,o,r)=>{if(!n)throw new Error("User is not allowed to rename documents");const d=await l(e,De({id:o,name:r})),s=d==null?void 0:d.state.global.nodes.find(i=>i.id===o);if(!s)throw new Error("There was an error renaming node");return s},[l,n]),C=c(async(e,o)=>{if(!n)throw new Error("User is not allowed to move documents");o.kind===te||e.parentFolder===o.id||await l(o.driveId,Ee({srcFolder:e.id,targetParentFolder:o.id}))},[l,n]),x=c(async(e,o)=>{if(!t)throw new Error("Reactor is not loaded");if(!n)throw new Error("User is not allowed to copy documents");if(o.kind===te)return;const r=u.find(h=>h.id===e.driveId);if(!r)return;const s=ve({srcId:e.id,targetParentFolder:o.id,targetName:e.name},()=>U(),r.state.global.nodes).map(h=>be(h)),i=await t.addDriveActions(e.driveId,s);i.operations.length?await p():i.status!=="SUCCESS"&&a.error(`Error copying files: ${i.status}`,i.error)},[u,n,p,t]),_=c(async(e,o,r)=>{if(!w)throw new Error("User is not allowed to edit documents");if(!t)throw new Error("Reactor is not loaded");if(!u.find(i=>i.id===e))throw new Error(`Drive with id ${e} not found`);return(await t.addOperation(e,o,r)).document},[u,w,t]),H=c(async(e,o)=>{if(!t)throw new Error("Reactor is not loaded");if(!n)throw new Error("User is not allowed to create drives");const r=e.id||U();e=Se(e);const d=await t.addDrive({global:e.global,local:e.local,id:r},o);return await p(),d},[n,p,t]),j=c(async(e,o)=>{if(!t)throw new Error("Reactor is not loaded");const r=await t.addRemoteDrive(e,o);return await p(),r},[p,t]),z=c(async e=>{if(!n)throw new Error("User is not allowed to delete drives");if(!t)throw new Error("Reactor is not loaded");if(!u.find(r=>r.id===e))throw new Error(`Drive with id ${e} not found`);return await t.deleteDrive(e),p()},[u,n,p,t]),k=c(async(e,o)=>{if(!n)throw new Error("User is not allowed to rename drives");return l(e,Te({name:o}))},[l,n]),q=c(async(e,o)=>{if(!n)throw new Error("User is not allowed to change drive availability");return l(e,$e({availableOffline:o}))},[l,n]),Z=c(async(e,o)=>{if(!n)throw new Error("User is not allowed to change drive availability");return l(e,Fe({type:o}))},[l,n]),K=c(async(e,o)=>{if(o!==oe){if(!t)throw new Error("Reactor is not loaded");try{const r=t.getSyncStatus(e);return r instanceof re?"INITIAL_SYNC":r}catch(r){return console.error(r),ne}}},[t]),V=c((e,o)=>{if(o!==oe){if(!t)throw new Error("Reactor is not loaded");try{const r=t.getSyncStatus(e);return r instanceof re?"INITIAL_SYNC":r}catch(r){return console.error(r),ne}}},[t]),Y=c(e=>{if(!t)throw new Error("Reactor is not loaded");return t.on("strandUpdate",e)},[t]),G=c(e=>{if(!t)throw new Error("Reactor is not loaded");return t.on("syncStatus",e)},[t]),X=c(async()=>{t&&(await D.clear(),await p())},[p,t,D]),B=c(async(e,o)=>{const r=await l(e,Ne({triggerId:o}));if(r==null?void 0:r.state.local.triggers.find(s=>s.id===o))throw new Error(`There was an error removing trigger ${o}`)},[l]),J=c(async(e,o,r)=>{var h,E,m,N;if(!t)throw new Error("Reactor is not loaded");const d=U(),s={driveId:e,listenerId:d,block:!1,filter:{branch:((h=r.pullFilter)==null?void 0:h.branch)??[],documentId:((E=r.pullFilter)==null?void 0:E.documentId)??[],documentType:((m=r.pullFilter)==null?void 0:m.documentType)??[],scope:((N=r.pullFilter)==null?void 0:N.scope)??[]},system:!1,label:`Pullresponder #${d}`,callInfo:{data:"",name:"PullResponder",transmitterType:"PullResponder"}},i=t.listeners;s.transmitter=new Ue(s,i);try{await i.setListener(e,s)}catch(de){throw new Error(`Listener couldn't be registered: ${de}`)}return{driveId:e,filter:s.filter,data:{interval:`${r.pullInterval}`||"1000",listenerId:d,url:o},id:d,type:"PullResponder"}},[t]),Q=c(async(e,o)=>{const r=await l(e,Re({trigger:o}));if(!(r==null?void 0:r.state.local.triggers.find(s=>s.id===s.id)))throw new Error(`There was an error adding the trigger ${o.id}`)},[l]);return Ae(()=>({reactorLoaded:T,documentDrives:u,documentDrivesStatus:v,addDocument:$,openFile:S,addFile:A,updateFile:I,addFolder:L,deleteNode:M,renameNode:P,moveNode:C,copyNode:x,addOperation:_,addOperations:F,addDrive:H,addRemoteDrive:j,deleteDrive:z,renameDrive:k,setDriveAvailableOffline:q,setDriveSharingType:Z,getSyncStatus:K,getSyncStatusSync:V,onStrandUpdate:Y,onSyncStatus:G,clearStorage:X,removeTrigger:B,addTrigger:Q,registerNewPullResponderTrigger:J,getDocumentsIds:O}),[T,$,H,A,L,_,F,j,Q,X,x,z,M,u,v,K,V,C,Y,G,S,J,B,k,P,q,Z,I,O])}export{Be as a,Ke as b,Je as e,Ze as s,Qe as u};
|
|
2
|
-
//# sourceMappingURL=useDocumentDriveServer.CEjU49s1.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useFeatureFlags.B3BoOzef.js","sources":["../../src/store/utils.ts","../../../../node_modules/.pnpm/jotai-effect@1.1.6_jotai@2.12.4_@types+react@18.3.22_react@18.3.1_/node_modules/jotai-effect/dist/atomEffect.js","../../../../node_modules/.pnpm/jotai-effect@1.1.6_jotai@2.12.4_@types+react@18.3.22_react@18.3.1_/node_modules/jotai-effect/dist/observe.js","../../src/services/renown/constants.ts","../../src/store/document-model.ts","../../src/utils/reactor.ts","../../src/store/reactor.tsx","../../src/store/index.ts","../../src/hooks/useDocumentDrives.ts","../../src/hooks/useLogin.ts","../../src/hooks/useAllowList.ts","../../src/hooks/useUserPermissions.ts","../../src/hooks/useFeatureFlags/default-config.ts","../../src/hooks/useFeatureFlags/atom.ts","../../src/hooks/useFeatureFlags/useFeatureFlags.ts"],"sourcesContent":["import connectConfig from '#connect-config';\n\nimport { atomWithStorage as _atomWithStorage } from 'jotai/utils';\nimport type { SyncStorage } from 'jotai/vanilla/utils/atomWithStorage';\n\nconst namespace = connectConfig.routerBasename;\n\nexport const atomWithStorage = <T>(\n key: string,\n initialValue: T,\n storage?: SyncStorage<T>,\n options?: {\n getOnInit?: boolean;\n },\n) =>\n _atomWithStorage<T>(\n `${namespace}:${key}`,\n initialValue,\n storage ? storage : undefined,\n options,\n );\n\nexport const atomWithStorageCallback = <T>(\n key: string,\n initialValue: T,\n callback: (value: T) => void,\n) =>\n _atomWithStorage<T>(key, initialValue, {\n getItem(key, initialValue) {\n const value = localStorage.getItem(`${namespace}:${key}`);\n return value ? (JSON.parse(value) as T) : initialValue;\n },\n setItem(key, value) {\n localStorage.setItem(`${namespace}:${key}`, JSON.stringify(value));\n callback(value);\n },\n removeItem(key) {\n localStorage.removeItem(`${namespace}:${key}`);\n },\n subscribe(key, callback) {\n if (typeof window.addEventListener === 'undefined') {\n return () => null;\n }\n\n function listener(e: StorageEvent) {\n if (\n e.storageArea === localStorage &&\n e.key === `${namespace}:${key}`\n ) {\n callback((e.newValue ?? '') as T);\n }\n }\n window.addEventListener('storage', listener);\n\n return () => window.removeEventListener('storage', listener);\n },\n });\n","import { atom } from 'jotai/vanilla';\nexport function atomEffect(effect) {\n const refreshAtom = atom(0);\n const refAtom = atom(() => ({ i: 0 }), (get, set) => {\n const ref = get(refAtom);\n Object.assign(ref, { m: true, peek: get, set });\n set(refreshAtom, (c) => c + 1);\n return () => {\n ref.m = false;\n cleanup(ref);\n throwPendingError(ref);\n };\n });\n refAtom.onMount = (mount) => mount();\n const baseAtom = atom((get) => {\n get(refreshAtom);\n const ref = get(refAtom);\n if (!ref.m || ref.irc || (ref.i && !ref.irf)) {\n return ref.p;\n }\n throwPendingError(ref);\n const currDeps = new Map();\n const getter = (a) => {\n const value = get(a);\n currDeps.set(a, value);\n return value;\n };\n getter.peek = ref.peek;\n const setter = (...args) => {\n try {\n ++ref.i;\n return ref.set(...args);\n }\n finally {\n Array.from(currDeps.keys(), get);\n --ref.i;\n }\n };\n setter.recurse = (anAtom, ...args) => {\n if (ref.fc) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error('set.recurse is not allowed in cleanup');\n }\n return undefined;\n }\n try {\n ref.irc = true;\n return ref.set(anAtom, ...args);\n }\n finally {\n ref.irc = false;\n const depsChanged = Array.from(currDeps).some(areDifferent);\n if (depsChanged) {\n refresh(ref);\n }\n }\n };\n function areDifferent([a, v]) {\n return get(a) !== v;\n }\n ++ref.i;\n function runEffect() {\n try {\n ref.irf = false;\n if (!ref.m)\n return;\n cleanup(ref);\n ref.c = effectAtom.effect(getter, setter);\n }\n catch (error) {\n ref.e = error;\n refresh(ref);\n }\n finally {\n ref.p = undefined;\n --ref.i;\n }\n }\n return ref.irf ? runEffect() : (ref.p = Promise.resolve().then(runEffect));\n });\n if (process.env.NODE_ENV !== 'production') {\n function setLabel(atom, label) {\n Object.defineProperty(atom, 'debugLabel', {\n get: () => `${effectAtom.debugLabel ?? 'effect'}:${label}`,\n });\n atom.debugPrivate = true;\n }\n setLabel(refreshAtom, 'refresh');\n setLabel(refAtom, 'ref');\n setLabel(baseAtom, 'base');\n }\n const effectAtom = atom((get) => void get(baseAtom));\n effectAtom.effect = effect;\n return effectAtom;\n function refresh(ref) {\n try {\n ref.irf = true;\n ref.set(refreshAtom, (c) => c + 1);\n }\n finally {\n ref.irf = false;\n }\n }\n function cleanup(ref) {\n if (typeof ref.c !== 'function')\n return;\n try {\n ref.fc = true;\n ref.c();\n }\n finally {\n ref.fc = false;\n ref.c = undefined;\n }\n }\n function throwPendingError(ref) {\n if ('e' in ref) {\n const error = ref.e;\n delete ref.e;\n throw error;\n }\n }\n}\n//# sourceMappingURL=atomEffect.js.map","import { getDefaultStore } from 'jotai/vanilla';\nimport { atomEffect } from './atomEffect.js';\nconst storeEffects = new WeakMap();\nexport function observe(effect, store = getDefaultStore()) {\n if (!storeEffects.has(store)) {\n storeEffects.set(store, new Map());\n }\n const effectSubscriptions = storeEffects.get(store);\n let unobserve = effectSubscriptions.get(effect);\n if (!unobserve) {\n const effectAtom = atomEffect(effect);\n let unsubscribe = store.sub(effectAtom, () => { });\n unobserve = () => {\n if (unsubscribe) {\n effectSubscriptions.delete(effect);\n if (effectSubscriptions.size === 0) {\n storeEffects.delete(store);\n }\n unsubscribe = void unsubscribe();\n }\n };\n effectSubscriptions.set(effect, unobserve);\n }\n return unobserve;\n}\n//# sourceMappingURL=observe.js.map","export const RENOWN_URL =\n import.meta.env.PH_CONNECT_RENOWN_URL || 'https://www.renown.id';\nexport const RENOWN_NETWORK_ID =\n import.meta.env.PH_CONNECT_RENOWN_NETWORK_ID || 'eip155';\nexport const RENOWN_CHAIN_ID =\n import.meta.env.PH_CONNECT_RENOWN_CHAIN_ID || '1';\n\nexport const DOMAIN_TYPE = [\n { name: 'name', type: 'string' },\n { name: 'version', type: 'string' },\n { name: 'chainId', type: 'uint256' },\n { name: 'verifyingContract', type: 'address' },\n] as const;\n\nexport const VERIFIABLE_CREDENTIAL_EIP712_TYPE = [\n { name: '@context', type: 'string[]' },\n { name: 'type', type: 'string[]' },\n { name: 'id', type: 'string' },\n { name: 'issuer', type: 'Issuer' },\n { name: 'credentialSubject', type: 'CredentialSubject' },\n { name: 'credentialSchema', type: 'CredentialSchema' },\n { name: 'issuanceDate', type: 'string' },\n { name: 'expirationDate', type: 'string' },\n] as const;\n\nexport const CREDENTIAL_SCHEMA_EIP712_TYPE = [\n { name: 'id', type: 'string' },\n { name: 'type', type: 'string' },\n] as const;\n\nexport const CREDENTIAL_SUBJECT_TYPE = [\n { name: 'app', type: 'string' },\n { name: 'id', type: 'string' },\n { name: 'name', type: 'string' },\n] as const;\n\nexport const ISSUER_TYPE = [\n { name: 'id', type: 'string' },\n { name: 'ethereumAddress', type: 'string' },\n] as const;\n\nexport const CREDENTIAL_TYPES = {\n EIP712Domain: DOMAIN_TYPE,\n VerifiableCredential: VERIFIABLE_CREDENTIAL_EIP712_TYPE,\n CredentialSchema: CREDENTIAL_SCHEMA_EIP712_TYPE,\n CredentialSubject: CREDENTIAL_SUBJECT_TYPE,\n Issuer: ISSUER_TYPE,\n} as const;\n","import { useFeatureFlag } from '#hooks';\nimport { driveDocumentModelModule } from 'document-drive';\nimport {\n documentModelDocumentModelModule,\n type DocumentModelLib,\n type DocumentModelModule,\n type PHDocument,\n} from 'document-model';\nimport { atom, useAtomValue } from 'jotai';\nimport { observe } from 'jotai-effect';\nimport { unwrap } from 'jotai/utils';\nimport { externalPackagesAtom } from './external-packages.js';\nimport { atomStore } from './index.js';\n\nexport const baseDocumentModels = [\n driveDocumentModelModule,\n documentModelDocumentModelModule,\n] as DocumentModelModule[];\n\n// removes document models with the same id, keeping the one that appears later\nfunction getUniqueDocumentModels(\n ...documentModels: DocumentModelModule[]\n): DocumentModelModule[] {\n const uniqueModels = new Map<string, DocumentModelModule>();\n\n for (const model of documentModels) {\n uniqueModels.set(model.documentModel.id, model);\n }\n\n return Array.from(uniqueModels.values());\n}\n\nfunction getDocumentModelsFromModules(modules: DocumentModelLib[]) {\n return modules\n .map(module => module.documentModels)\n .reduce((acc, val) => acc.concat(val), []);\n}\n\nexport const documentModelsAtom = atom(async get => {\n const externalModules = (await get(\n externalPackagesAtom,\n )) as DocumentModelLib[];\n const externalDocumentModels =\n getDocumentModelsFromModules(externalModules);\n\n const result = getUniqueDocumentModels(\n ...baseDocumentModels,\n ...externalDocumentModels,\n );\n return result;\n});\n\n// blocks rendering until document models are loaded.\nexport const useDocumentModels = () => useAtomValue(documentModelsAtom);\n\nconst unrappedDocumentModelsAtom = unwrap(documentModelsAtom);\n\n// will return undefined until document models are initialized. Does not block rendering.\nexport const useUnwrappedDocumentModelModules = () =>\n useAtomValue(unrappedDocumentModelsAtom);\n\nexport const subscribeDocumentModels = function (\n listener: (documentModels: DocumentModelModule[]) => void,\n) {\n // activate the effect on the default store\n const unobserve = observe(get => {\n const documentModels = get(documentModelsAtom);\n documentModels.then(listener).catch(e => {\n throw e;\n });\n }, atomStore);\n\n // Clean up the effect\n return () => unobserve();\n};\n\nfunction getDocumentModelModule<TDocument extends PHDocument>(\n documentType: string,\n documentModels: DocumentModelModule[] | undefined,\n) {\n return documentModels?.find(d => d.documentModel.id === documentType) as\n | DocumentModelModule<TDocument>\n | undefined;\n}\n\nexport function useDocumentModelModule<TDocument extends PHDocument>(\n documentType: string,\n) {\n const documentModelModules = useUnwrappedDocumentModelModules();\n return getDocumentModelModule<TDocument>(\n documentType,\n documentModelModules,\n );\n}\n\nexport const useGetDocumentModelModule = <TDocument extends PHDocument>() => {\n const documentModelModules = useUnwrappedDocumentModelModules();\n return (documentType: string) =>\n getDocumentModelModule<TDocument>(documentType, documentModelModules);\n};\n\n/**\n * Returns an array of filtered document models based on the enabled and disabled editors (feature flag).\n * If enabledEditors is set to '*', returns all document models.\n * If disabledEditors is set to '*', returns an empty array.\n * If disabledEditors is an array, filters out document models whose IDs are included in the disabledEditors array.\n * If enabledEditors is an array, filters document models whose IDs are included in the enabledEditors array.\n * @returns {Array<DocumentModel>} The filtered document models.\n */\nexport const useFilteredDocumentModels = () => {\n const documentModels = useUnwrappedDocumentModelModules();\n const { config } = useFeatureFlag();\n const { enabledEditors, disabledEditors } = config.editors;\n\n if (!documentModels) {\n return undefined;\n }\n\n const filteredDocumentModels = documentModels.filter(\n model => model.documentModel.id !== 'powerhouse/document-drive',\n );\n\n if (enabledEditors === '*') {\n return documentModels;\n }\n\n if (disabledEditors === '*') {\n return [];\n }\n\n if (disabledEditors) {\n return filteredDocumentModels.filter(\n d => !disabledEditors.includes(d.documentModel.id),\n );\n }\n\n if (enabledEditors) {\n return filteredDocumentModels.filter(d =>\n enabledEditors.includes(d.documentModel.id),\n );\n }\n\n return filteredDocumentModels;\n};\n","import {\n BaseQueueManager,\n type DefaultRemoteDriveInput,\n type DocumentDriveServerOptions,\n type IDocumentDriveServer,\n InMemoryCache,\n ReactorBuilder,\n} from 'document-drive';\nimport { BrowserStorage } from 'document-drive/storage/browser';\nimport {\n IDocumentAdminStorage,\n IDocumentOperationStorage,\n IDocumentStorage,\n IDriveOperationStorage,\n} from 'document-drive/storage/types';\nimport { type DocumentModelModule } from 'document-model';\n\nconst DEFAULT_DRIVES_URL =\n (import.meta.env.PH_CONNECT_DEFAULT_DRIVES_URL as string | undefined) ||\n undefined;\nconst defaultDrivesUrl = DEFAULT_DRIVES_URL\n ? DEFAULT_DRIVES_URL.split(',')\n : [];\n\nexport const getReactorDefaultDrivesConfig = (): Pick<\n DocumentDriveServerOptions,\n 'defaultDrives'\n> => {\n const remoteDrives: DefaultRemoteDriveInput[] = defaultDrivesUrl.map(\n driveUrl => ({\n url: driveUrl,\n options: {\n sharingType: 'PUBLIC',\n availableOffline: true,\n listeners: [\n {\n block: true,\n callInfo: {\n data: driveUrl,\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 );\n\n return {\n defaultDrives: {\n remoteDrives,\n removeOldRemoteDrives:\n defaultDrivesUrl.length > 0\n ? {\n strategy: 'preserve-by-url-and-detach',\n urls: defaultDrivesUrl,\n }\n : { strategy: 'preserve-all' },\n },\n };\n};\n\nexport function createBrowserStorage(\n routerBasename: string,\n): IDriveOperationStorage &\n IDocumentOperationStorage &\n IDocumentStorage &\n IDocumentAdminStorage {\n return new BrowserStorage(routerBasename);\n}\n\nexport function createBrowserDocumentDriveServer(\n documentModels: DocumentModelModule[],\n storage: IDriveOperationStorage,\n): IDocumentDriveServer {\n return new ReactorBuilder(documentModels)\n .withStorage(storage)\n .withCache(new InMemoryCache())\n .withQueueManager(new BaseQueueManager(1, 10))\n .withOptions({ ...getReactorDefaultDrivesConfig() })\n .build();\n}\n","import connectConfig from '#connect-config';\nimport { createBrowserDocumentDriveServer, createBrowserStorage } from '#utils';\nimport { type IDocumentDriveServer, logger } from 'document-drive';\nimport {\n type IDocumentAdminStorage,\n type IDocumentOperationStorage,\n type IDocumentStorage,\n type IDriveOperationStorage,\n} from 'document-drive/storage/types';\nimport { generateId } from 'document-model';\nimport { atom, useAtomValue } from 'jotai';\nimport { observe } from 'jotai-effect';\nimport { atomWithLazy, unwrap } from 'jotai/utils';\nimport { getConnectCrypto } from '../hooks/useConnectCrypto.js';\nimport { renownAtom, renownStatusAtom } from '../hooks/useRenown.js';\nimport {\n documentModelsAtom,\n subscribeDocumentModels,\n} from './document-model.js';\nimport { atomStore } from './index.js';\n\nasync function initReactor(reactor: IDocumentDriveServer) {\n await initJwtHandler(reactor);\n\n const errors = await reactor.initialize();\n const error = errors?.at(0);\n if (error) {\n throw error;\n }\n\n const drives = await reactor.getDrives();\n if (!drives.length && connectConfig.drives.sections.LOCAL.enabled) {\n return reactor\n .addDrive({\n id: generateId(),\n slug: 'my-local-drive',\n global: {\n name: 'My Local Drive',\n icon: null,\n },\n local: {\n availableOffline: false,\n sharingType: 'private',\n listeners: [],\n triggers: [],\n },\n })\n .catch(logger.error);\n }\n}\n\nasync function initJwtHandler(server: IDocumentDriveServer) {\n const renown = await atomStore.get(renownAtom);\n const user = await renown?.user();\n const crypto = await getConnectCrypto();\n\n if (user?.address) {\n server.setGenerateJwtHandler(async driveUrl => {\n return crypto.getBearerToken(driveUrl, user.address);\n });\n }\n}\n\n// Helper function to wait for renown to be initialized\nasync function waitForRenown(): Promise<void> {\n let unsubscribe: (() => void) | undefined;\n\n // Wait for renown status to be 'finished'\n return Promise.race([\n new Promise<void>((resolve, reject) => {\n unsubscribe = observe(get => {\n try {\n const status = get(renownStatusAtom);\n if (status === 'finished' || status === 'error') {\n resolve();\n }\n } catch (err) {\n // In case of any error during the observation, proceed with reactor initialization\n reject(\n new Error(\n `Error observing renown status: ${\n err instanceof Error\n ? err.message\n : 'Unknown error'\n }`,\n ),\n );\n }\n }, atomStore);\n return () => unsubscribe?.();\n }),\n new Promise<void>((_, reject) => {\n // Set a maximum timeout (5 seconds) to avoid blocking indefinitely\n setTimeout(() => {\n unsubscribe?.();\n reject(new Error('Timed out waiting for renown to initialize'));\n }, 5000);\n }),\n ]).catch((error: unknown) => {\n unsubscribe?.();\n logger.warn(error);\n });\n}\n\nasync function createReactor() {\n await waitForRenown();\n // get storage\n const storage = atomStore.get(storageAtom);\n\n // waits for document models to be loaded\n const documentModels = await atomStore.get(documentModelsAtom);\n const server =\n (window.electronAPI?.documentDrive as\n | IDocumentDriveServer\n | undefined) ??\n createBrowserDocumentDriveServer(documentModels, storage);\n await initReactor(server);\n return server;\n}\n\nexport const storageAtom = atom<\n IDriveOperationStorage &\n IDocumentOperationStorage &\n IDocumentStorage &\n IDocumentAdminStorage\n>(createBrowserStorage(connectConfig.routerBasename));\nexport const reactorAtom = atomWithLazy<Promise<IDocumentDriveServer>>(() =>\n createReactor(),\n);\nexport const unwrappedReactor = unwrap(reactorAtom);\n\n// blocks rendering until reactor is initialized.\nexport const useReactor = (): IDocumentDriveServer | undefined =>\n useAtomValue(reactorAtom);\n\nexport const useDocumentAdminStorage = (): IDocumentAdminStorage =>\n useAtomValue(storageAtom);\n\n// will return undefined until reactor is initialized. Does not block rendering.\nexport const useUnwrappedReactor = (): IDocumentDriveServer | undefined =>\n useAtomValue(unwrappedReactor);\n\n// will return undefined until reactor is initialized. Does not block rendering or trigger the reactor to be initialized.\nexport const useAsyncReactor = (): IDocumentDriveServer | undefined =>\n useAtomValue(reactorAsyncAtom);\n\nconst reactorAsyncAtom = atom<IDocumentDriveServer | undefined>(undefined);\nreactorAsyncAtom.onMount = setAtom => {\n subscribeReactor(setAtom);\n};\n\n// updates the reactor when the available document models change\nlet documentModelsSubscripion: (() => void) | undefined;\nreactorAtom.onMount = setAtom => {\n if (documentModelsSubscripion) return;\n setAtom(async prevReactor => {\n const reactor = await prevReactor;\n\n if (!documentModelsSubscripion) {\n documentModelsSubscripion = subscribeDocumentModels(\n documentModels => {\n reactor.setDocumentModelModules(documentModels);\n },\n );\n }\n return reactor;\n });\n};\n\nexport const subscribeReactor = function (\n listener: (reactor: IDocumentDriveServer) => void,\n) {\n // activate the effect on the default store\n const unobserve = observe(get => {\n const reactor = get(reactorAtom);\n reactor.then(listener).catch(e => {\n throw e;\n });\n }, atomStore);\n\n // Clean up the effect\n return () => unobserve();\n};\n","import { atom, createStore } from 'jotai';\nimport { themeAtom } from './theme.js';\n\nexport type Store = ReturnType<typeof createStore>;\n\nexport const atomStore: Store = createStore();\n\nexport const sidebarDisableHoverStyles = atom(false);\n\nexport const atoms = {\n themeAtom,\n};\n\nexport * from './document-drive.js';\nexport * from './document-model.js';\nexport * from './editor.js';\nexport * from './external-packages.js';\nexport * from './reactor.js';\nexport * from './theme.js';\nexport * from './user.js';\nexport * from './utils.js';\n\n","import { useUnwrappedReactor } from '#store';\nimport type { IDocumentDriveServer } from 'document-drive';\nimport { type DocumentDriveDocument, logger } from 'document-drive';\nimport { type OperationScope, type PHDocument } from 'document-model';\nimport { atom, useAtom } from 'jotai';\nimport { atomFamily } from 'jotai/utils';\nimport { useCallback, useMemo } from 'react';\nimport { type ClientErrorHandler } from './useClientErrorHandler.js';\n\n// map of DocumentDriveServer objects and their Document Drives\nconst documentDrivesAtom = atom(\n new Map<IDocumentDriveServer, DocumentDriveDocument[]>(),\n);\n\nexport function documentToHash(drive: PHDocument): string {\n return Object.keys(drive.operations)\n .map(\n key =>\n `${key}:${drive.operations[key as OperationScope].length}:${drive.operations[key as OperationScope].at(-1)?.hash}`,\n )\n .join(':');\n}\n\nexport function drivesToHash(drives: DocumentDriveDocument[]): string {\n return drives.map(documentToHash).join('&');\n}\n\n// creates a derived atom that encapsulates the Map of Document Drives\nconst readWriteDocumentDrivesAtom = (server?: IDocumentDriveServer) => () =>\n atom(\n get => (server ? (get(documentDrivesAtom).get(server) ?? []) : []),\n (_get, set, newDrives: DocumentDriveDocument[]) => {\n set(documentDrivesAtom, map => {\n if (!server) {\n return new Map();\n }\n const currentDrives = map.get(server) ?? [];\n if (\n currentDrives.length !== newDrives.length ||\n drivesToHash(currentDrives) !== drivesToHash(newDrives)\n ) {\n return new Map(map).set(server, newDrives);\n } else {\n return map;\n }\n });\n },\n );\n// keeps track of document drives that have been initialized\nexport type IDrivesState = 'INITIAL' | 'LOADING' | 'LOADED' | 'ERROR';\nexport const documentDrivesInitializedMapAtomFamily = atomFamily(() =>\n atom<IDrivesState>('INITIAL'),\n);\n\n// returns an array with the document drives of a\n// server and a method to fetch the document drives\nexport function useDocumentDrives() {\n const reactor = useUnwrappedReactor();\n const [documentDrives, setDocumentDrives] = useAtom(\n useMemo(readWriteDocumentDrivesAtom(reactor), [reactor]),\n );\n\n const refreshDocumentDrives = useCallback(async () => {\n if (!reactor) {\n return;\n }\n\n const documentDrives: DocumentDriveDocument[] = [];\n try {\n const driveIds = await reactor.getDrives();\n for (const id of driveIds) {\n try {\n const drive = await reactor.getDrive(id);\n documentDrives.push(drive);\n } catch (error) {\n logger.error(error);\n }\n }\n } catch (error) {\n logger.error(error);\n } finally {\n setDocumentDrives(documentDrives);\n }\n }, [reactor]);\n\n // if the server has not been initialized then\n // fetches the drives for the first time\n const [status, setStatus] = useAtom(\n documentDrivesInitializedMapAtomFamily(reactor),\n );\n\n if (status === 'INITIAL' && reactor) {\n setStatus('LOADING');\n refreshDocumentDrives()\n .then(() => setStatus('LOADED'))\n .catch(() => setStatus('ERROR'));\n }\n\n const serverSubscribeUpdates = useCallback(\n (clientErrorhandler: ClientErrorHandler) => {\n if (!reactor) {\n return;\n }\n const unsub1 = reactor.on(\n 'syncStatus',\n async (_event, _status, error) => {\n if (error) {\n logger.error(error);\n }\n await refreshDocumentDrives();\n },\n );\n const unsub2 = reactor.on('strandUpdate', () =>\n refreshDocumentDrives(),\n );\n const unsubOnSyncError = reactor.on(\n 'clientStrandsError',\n clientErrorhandler.strandsErrorHandler,\n );\n\n const unsub3 = reactor.on('defaultRemoteDrive', () =>\n refreshDocumentDrives(),\n );\n\n return () => {\n unsub1();\n unsub2();\n unsubOnSyncError();\n unsub3();\n };\n },\n [reactor, refreshDocumentDrives],\n );\n\n return useMemo(\n () =>\n [\n documentDrives,\n refreshDocumentDrives,\n serverSubscribeUpdates,\n status,\n ] as const,\n [documentDrives, status],\n );\n}\n","import { RENOWN_CHAIN_ID, RENOWN_NETWORK_ID, RENOWN_URL } from '#services';\nimport { atomStore, reactorAtom, useUser } from '#store';\nimport { logger } from 'document-drive';\nimport { atom, useAtom } from 'jotai';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport { useConnectCrypto } from './useConnectCrypto.js';\nimport { useRenown } from './useRenown.js';\n\ntype LoginStatus = 'initial' | 'checking' | 'not-authorized' | 'authorized';\n\nconst loginStatusAtom = atom<LoginStatus>('initial');\n\nexport const useLogin = () => {\n const [status, setStatus] = useAtom(loginStatusAtom);\n const user = useUser();\n const renown = useRenown();\n const { did, getBearerToken } = useConnectCrypto();\n\n const openRenown = useCallback(async () => {\n const connectId = await did();\n const url = new URL(RENOWN_URL);\n url.searchParams.set('connect', connectId);\n url.searchParams.set('network', RENOWN_NETWORK_ID);\n url.searchParams.set('chain', RENOWN_CHAIN_ID);\n\n if (window.electronAPI) {\n const protocol = await window.electronAPI.protocol();\n url.searchParams.set('deeplink', protocol);\n await window.electronAPI.openURL(url.toString());\n } else {\n const returnUrl = new URL(\n window.location.pathname,\n window.location.origin,\n );\n url.searchParams.set('returnUrl', returnUrl.toJSON());\n window.open(url, '_self')?.focus();\n }\n }, [did]);\n\n const login = useCallback(\n async (userDid: string) => {\n if (!renown) {\n return;\n }\n try {\n setStatus('checking');\n const user = await renown.user();\n\n if (user?.did === userDid) {\n setStatus('authorized');\n return user;\n }\n const newUser = await renown.login(userDid);\n if (newUser) {\n setStatus('authorized');\n\n atomStore\n .get(reactorAtom)\n .then(reactor => {\n reactor.setGenerateJwtHandler(async driveUrl =>\n getBearerToken(driveUrl, newUser.address),\n );\n })\n .catch(err => console.error(err));\n\n return newUser;\n } else {\n setStatus('not-authorized');\n }\n } catch (error) {\n setStatus('not-authorized');\n logger.error(error);\n }\n },\n [renown],\n );\n\n useEffect(() => {\n if (user && status !== 'authorized') {\n setStatus('authorized');\n }\n }, [user, status]);\n\n const logout = useCallback(async () => {\n setStatus('initial');\n await renown?.logout();\n atomStore\n .get(reactorAtom)\n .then(reactor => {\n reactor.removeJwtHandler();\n })\n .catch(err => console.error(err));\n }, [renown]);\n\n return useMemo(\n () =>\n ({\n openRenown,\n user,\n status: user ? 'authorized' : status,\n login: renown ? login : undefined,\n logout,\n }) as const,\n [renown, openRenown, user, status, login, logout],\n );\n};\n","import { useLogin } from './useLogin.js';\n\ntype AllowListType = 'arbitrum' | 'rwa' | 'none';\nexport function useAllowList():\n | {\n isAllowed: boolean;\n allowListType: AllowListType;\n }\n | undefined {\n const { user, status } = useLogin();\n\n const arbitrumAllowListEnvString = import.meta.env\n .PH_CONNECT_ARBITRUM_ALLOW_LIST;\n const rwaAllowListEnvString = import.meta.env.PH_CONNECT_RWA_ALLOW_LIST;\n\n const arbitrumAllowListIsDefined =\n !!arbitrumAllowListEnvString && arbitrumAllowListEnvString !== '';\n const rwaAllowListIsDefined =\n !!rwaAllowListEnvString && rwaAllowListEnvString !== '';\n\n if (arbitrumAllowListIsDefined && rwaAllowListIsDefined) {\n throw new Error(\n 'Both Arbitrum and RWA allow lists are defined. Please only define one.',\n );\n }\n\n // if none of the lists are defined then allow all\n if (!arbitrumAllowListIsDefined && !rwaAllowListIsDefined) {\n return {\n isAllowed: true,\n allowListType: 'none',\n };\n }\n\n // if the user is not yet loaded then wait\n if (user === undefined) {\n return undefined;\n }\n\n if (arbitrumAllowListIsDefined) {\n const arbitrumAllowList = arbitrumAllowListEnvString.split(',');\n\n if (status !== 'authorized' || !user)\n return {\n isAllowed: false,\n allowListType: 'arbitrum',\n };\n\n const userAddressIsOnAllowList = arbitrumAllowList.includes(\n user.address,\n );\n\n if (userAddressIsOnAllowList)\n return {\n isAllowed: true,\n allowListType: 'arbitrum',\n };\n\n return {\n isAllowed: false,\n allowListType: 'arbitrum',\n };\n }\n\n if (rwaAllowListIsDefined) {\n const rwaAllowList = rwaAllowListEnvString.split(',');\n\n if (status !== 'authorized' || !user)\n return {\n isAllowed: false,\n allowListType: 'rwa',\n };\n\n const userAddressIsOnAllowList = rwaAllowList.includes(user.address);\n\n if (userAddressIsOnAllowList)\n return {\n isAllowed: true,\n allowListType: 'rwa',\n };\n\n return {\n isAllowed: false,\n allowListType: 'rwa',\n };\n }\n\n return {\n isAllowed: true,\n allowListType: 'none',\n };\n}\n","import { useAllowList } from './useAllowList.js';\n\nexport function useUserPermissions() {\n const allowList = useAllowList();\n\n if (!allowList) {\n return undefined;\n }\n\n const { allowListType, isAllowed } = allowList;\n\n if (allowListType === 'arbitrum') {\n return {\n isAllowedToCreateDocuments: isAllowed,\n isAllowedToEditDocuments: true,\n };\n }\n\n if (allowListType === 'rwa') {\n return {\n isAllowedToCreateDocuments: isAllowed,\n isAllowedToEditDocuments: isAllowed,\n };\n }\n\n return {\n isAllowedToCreateDocuments: true,\n isAllowedToEditDocuments: true,\n };\n}\n","export const FEATURE_FLAG_KEY_STORAGE = 'feature-flags-config';\n\nconst ENABLED_EDITORS = import.meta.env.PH_CONNECT_ENABLED_EDITORS || undefined;\nconst enabledEditors = ENABLED_EDITORS?.split(',');\n\nconst DISABLED_EDITORS =\n import.meta.env.PH_CONNECT_DISABLED_EDITORS || 'powerhouse/document-drive';\nconst disabledEditors = DISABLED_EDITORS?.split(',');\n\nexport interface FeatureFlag {\n editors: {\n enabledEditors?: '*' | string[];\n disabledEditors?: '*' | string[];\n };\n}\n\nconst defaultConfig: FeatureFlag = {\n editors: {\n enabledEditors: ENABLED_EDITORS === '*' ? '*' : enabledEditors,\n disabledEditors: DISABLED_EDITORS === '*' ? '*' : disabledEditors,\n },\n};\n\nexport default defaultConfig;\n","import { atomWithStorage } from '#store';\nimport defaultConfig, {\n FEATURE_FLAG_KEY_STORAGE,\n type FeatureFlag,\n} from './default-config.js';\n\nexport const featureFlagAtom = atomWithStorage<FeatureFlag>(\n FEATURE_FLAG_KEY_STORAGE,\n defaultConfig,\n);\n","import { useAtom } from 'jotai';\nimport { featureFlagAtom } from './atom.js';\nimport defaultConfig from './default-config.js';\n\nexport const useFeatureFlag = () => {\n const [config, setConfig] = useAtom(featureFlagAtom);\n\n return {\n config: {\n ...defaultConfig,\n ...config,\n },\n setConfig,\n };\n};\n"],"names":["namespace","connectConfig","atomWithStorage","key","initialValue","storage","options","_atomWithStorage","atomWithStorageCallback","callback","value","listener","e","atomEffect","effect","refreshAtom","atom","refAtom","get","set","ref","c","cleanup","throwPendingError","mount","baseAtom","currDeps","getter","a","setter","args","anAtom","areDifferent","refresh","v","runEffect","effectAtom","error","storeEffects","observe","store","getDefaultStore","effectSubscriptions","unobserve","unsubscribe","RENOWN_URL","RENOWN_NETWORK_ID","RENOWN_CHAIN_ID","baseDocumentModels","driveDocumentModelModule","documentModelDocumentModelModule","getUniqueDocumentModels","documentModels","uniqueModels","model","getDocumentModelsFromModules","modules","module","acc","val","documentModelsAtom","externalModules","externalPackagesAtom","externalDocumentModels","unrappedDocumentModelsAtom","unwrap","useUnwrappedDocumentModelModules","useAtomValue","subscribeDocumentModels","atomStore","getDocumentModelModule","documentType","d","useGetDocumentModelModule","documentModelModules","useFilteredDocumentModels","config","useFeatureFlag","enabledEditors","disabledEditors","filteredDocumentModels","DEFAULT_DRIVES_URL","defaultDrivesUrl","getReactorDefaultDrivesConfig","driveUrl","createBrowserStorage","routerBasename","BrowserStorage","createBrowserDocumentDriveServer","ReactorBuilder","InMemoryCache","BaseQueueManager","initReactor","reactor","initJwtHandler","errors","generateId","logger","server","renown","renownAtom","user","crypto","getConnectCrypto","waitForRenown","resolve","reject","status","renownStatusAtom","err","_","createReactor","storageAtom","_a","reactorAtom","atomWithLazy","unwrappedReactor","useDocumentAdminStorage","useUnwrappedReactor","useAsyncReactor","reactorAsyncAtom","setAtom","subscribeReactor","documentModelsSubscripion","prevReactor","createStore","documentDrivesAtom","documentToHash","drive","drivesToHash","drives","readWriteDocumentDrivesAtom","_get","newDrives","map","currentDrives","documentDrivesInitializedMapAtomFamily","atomFamily","useDocumentDrives","documentDrives","setDocumentDrives","useAtom","useMemo","refreshDocumentDrives","useCallback","driveIds","id","setStatus","serverSubscribeUpdates","clientErrorhandler","unsub1","_event","_status","unsub2","unsubOnSyncError","unsub3","loginStatusAtom","useLogin","useUser","useRenown","did","getBearerToken","useConnectCrypto","openRenown","connectId","url","protocol","returnUrl","login","userDid","newUser","useEffect","logout","useAllowList","arbitrumAllowListEnvString","rwaAllowListEnvString","arbitrumAllowListIsDefined","rwaAllowListIsDefined","arbitrumAllowList","rwaAllowList","useUserPermissions","allowList","allowListType","isAllowed","FEATURE_FLAG_KEY_STORAGE","ENABLED_EDITORS","DISABLED_EDITORS","defaultConfig","featureFlagAtom","setConfig"],"mappings":"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","x_google_ignoreList":[1,2]}
|