@powerhousedao/connect 1.0.4 → 1.0.5-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +1 -0
  3. package/dist/.env +11 -6
  4. package/dist/assets/app-CcH3qGge.css +5805 -0
  5. package/dist/assets/app-D5aQi0aY.js +80396 -0
  6. package/dist/assets/app-loader-D5SWSIlq.js +31582 -0
  7. package/dist/assets/app-loader-DGByWxSG.css +5640 -0
  8. package/dist/assets/ccip-BmvACOxw.js +170 -0
  9. package/dist/assets/connect-loader-CvOC68Ih.mp4 +0 -0
  10. package/dist/assets/content-CjM3gin6.js +3967 -0
  11. package/dist/assets/home-bg-BEhF9NuW.png +0 -0
  12. package/dist/assets/index-D60iiT4f.js +2560 -0
  13. package/dist/assets/index-DIYv2p_P.js +12 -0
  14. package/dist/assets/index-d_545vU_.js +46565 -0
  15. package/dist/assets/main.DnroXr_4.js +105 -0
  16. package/dist/assets/powerhouse-rounded-CeKGGUG4.png +0 -0
  17. package/dist/assets/renown-short-hover-BiSLBV7L.png +0 -0
  18. package/dist/assets/rwa-report-Bb0W5-ac.png +0 -0
  19. package/dist/assets/style-Ce3V83BE.css +1658 -0
  20. package/dist/external-packages.js +5 -0
  21. package/dist/hmr.js +4 -0
  22. package/dist/icon.ico +0 -0
  23. package/dist/index.html +48 -10
  24. package/dist/modules/@powerhousedao/reactor-browser/chunk-2ESYSVXG.js +48 -0
  25. package/dist/modules/@powerhousedao/reactor-browser/chunk-2ONJ2PX4.js +50 -0
  26. package/dist/modules/@powerhousedao/reactor-browser/chunk-2X2M6BYG.js +2542 -0
  27. package/dist/modules/@powerhousedao/reactor-browser/chunk-64UP3MVE.js +14171 -0
  28. package/dist/modules/@powerhousedao/reactor-browser/chunk-7OQWVUC5.js +43 -0
  29. package/dist/modules/@powerhousedao/reactor-browser/chunk-C7QRY43M.js +786 -0
  30. package/dist/modules/@powerhousedao/reactor-browser/chunk-CO2RVWYY.js +67 -0
  31. package/dist/modules/@powerhousedao/reactor-browser/chunk-DKDARAJS.js +0 -0
  32. package/dist/modules/@powerhousedao/reactor-browser/chunk-F6NNSREE.js +2513 -0
  33. package/dist/modules/@powerhousedao/reactor-browser/chunk-FQF4YAVC.js +11917 -0
  34. package/dist/modules/@powerhousedao/reactor-browser/chunk-GDP7BUIH.js +45 -0
  35. package/dist/modules/@powerhousedao/reactor-browser/chunk-IQTSFTNF.js +48 -0
  36. package/dist/modules/@powerhousedao/reactor-browser/chunk-J5TYPY7U.js +36 -0
  37. package/dist/modules/@powerhousedao/reactor-browser/chunk-LH2T6NLN.js +0 -0
  38. package/dist/modules/@powerhousedao/reactor-browser/chunk-LRNZZ3SR.js +14 -0
  39. package/dist/modules/@powerhousedao/reactor-browser/chunk-NHD6VUCD.js +53 -0
  40. package/dist/modules/@powerhousedao/reactor-browser/chunk-OVGOA2P5.js +11 -0
  41. package/dist/modules/@powerhousedao/reactor-browser/chunk-P6NJ6IAQ.js +12 -0
  42. package/dist/modules/@powerhousedao/reactor-browser/chunk-QXHTR6KF.js +0 -0
  43. package/dist/modules/@powerhousedao/reactor-browser/chunk-RGIB4DD4.js +162 -0
  44. package/dist/modules/@powerhousedao/reactor-browser/chunk-U34SEKEB.js +250 -0
  45. package/dist/modules/@powerhousedao/reactor-browser/chunk-U36SV333.js +0 -0
  46. package/dist/modules/@powerhousedao/reactor-browser/chunk-UWJGRLW3.js +82 -0
  47. package/dist/modules/@powerhousedao/reactor-browser/chunk-XBTEGV5M.js +17 -0
  48. package/dist/modules/@powerhousedao/reactor-browser/chunk-Y7NTRTMT.js +25 -0
  49. package/dist/modules/@powerhousedao/reactor-browser/chunk-YG67WAIS.js +0 -0
  50. package/dist/modules/@powerhousedao/reactor-browser/chunk-YSOX63EM.js +178 -0
  51. package/dist/modules/@powerhousedao/reactor-browser/chunk-YWKVPJNL.js +52 -0
  52. package/dist/modules/@powerhousedao/reactor-browser/chunk-ZL5IPB6D.js +0 -0
  53. package/dist/modules/@powerhousedao/reactor-browser/chunk-ZWFCVUBU.js +113 -0
  54. package/dist/modules/@powerhousedao/reactor-browser/context/index.js +16 -0
  55. package/dist/modules/@powerhousedao/reactor-browser/context/read-mode.js +15 -0
  56. package/dist/modules/@powerhousedao/reactor-browser/crypto/browser.js +7 -0
  57. package/dist/modules/@powerhousedao/reactor-browser/crypto/index.js +7 -0
  58. package/dist/modules/@powerhousedao/reactor-browser/document-model.js +10 -0
  59. package/dist/modules/@powerhousedao/reactor-browser/hooks/document-state.js +96 -0
  60. package/dist/modules/@powerhousedao/reactor-browser/hooks/index.js +98 -0
  61. package/dist/modules/@powerhousedao/reactor-browser/hooks/useAddDebouncedOperations.js +11 -0
  62. package/dist/modules/@powerhousedao/reactor-browser/hooks/useConnectCrypto.js +12 -0
  63. package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocument.js +7 -0
  64. package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocumentDispatch.js +7 -0
  65. package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocumentDrives.js +13 -0
  66. package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocumentEditor.js +20 -0
  67. package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveActions.js +9 -0
  68. package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveActionsWithUiNodes.js +14 -0
  69. package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveContext.js +9 -0
  70. package/dist/modules/@powerhousedao/reactor-browser/hooks/useUiNodesContext.js +46 -0
  71. package/dist/modules/@powerhousedao/reactor-browser/hooks/useUserPermissions.js +7 -0
  72. package/dist/modules/@powerhousedao/reactor-browser/index.js +125 -0
  73. package/dist/modules/@powerhousedao/reactor-browser/reactor.js +11 -0
  74. package/dist/modules/@powerhousedao/reactor-browser/renown/constants.js +53 -0
  75. package/dist/modules/@powerhousedao/reactor-browser/renown/types.js +1 -0
  76. package/dist/modules/@powerhousedao/reactor-browser/storage/index.js +1 -0
  77. package/dist/modules/@powerhousedao/reactor-browser/storage/types.js +1 -0
  78. package/dist/modules/@powerhousedao/reactor-browser/uiNodes/constants.js +37 -0
  79. package/dist/modules/@powerhousedao/reactor-browser/uiNodes/types.js +1 -0
  80. package/dist/modules/@powerhousedao/reactor-browser/utils/export-document.js +8 -0
  81. package/dist/modules/@powerhousedao/reactor-browser/utils/index.js +9 -0
  82. package/dist/modules/@powerhousedao/reactor-browser/utils/signature.js +10 -0
  83. package/dist/service-worker.js +46 -2
  84. package/dist/swEnv.js +9 -8
  85. package/dist/vite-envs.sh +56 -35
  86. package/nginx.conf +93 -0
  87. package/nginx.sh +10 -0
  88. package/package.json +36 -50
  89. package/dist/assets/ArrowFilledRight-blx8xu7X-D3d8PUWh.js +0 -2
  90. package/dist/assets/ArrowFilledRight-blx8xu7X-D3d8PUWh.js.map +0 -1
  91. package/dist/assets/ArrowLeft-7pYNK4eX-8ZR_YHAJ.js +0 -2
  92. package/dist/assets/ArrowLeft-7pYNK4eX-8ZR_YHAJ.js.map +0 -1
  93. package/dist/assets/ArrowUp-Bbr_dwo_-C5ppCQo4.js +0 -2
  94. package/dist/assets/ArrowUp-Bbr_dwo_-C5ppCQo4.js.map +0 -1
  95. package/dist/assets/BarChart-B0G05Nfd-CHDJ7OaJ.js +0 -2
  96. package/dist/assets/BarChart-B0G05Nfd-CHDJ7OaJ.js.map +0 -1
  97. package/dist/assets/BaseArrowLeft-DBzhFHMt-Dkbf2sWs.js +0 -2
  98. package/dist/assets/BaseArrowLeft-DBzhFHMt-Dkbf2sWs.js.map +0 -1
  99. package/dist/assets/BaseArrowRight-DYQTBWAs-CkkPllYm.js +0 -2
  100. package/dist/assets/BaseArrowRight-DYQTBWAs-CkkPllYm.js.map +0 -1
  101. package/dist/assets/Braces-N-sH2Zyc-3LcexUsR.js +0 -2
  102. package/dist/assets/Braces-N-sH2Zyc-3LcexUsR.js.map +0 -1
  103. package/dist/assets/Branch-CWdBw1_P-CmGdOXsI.js +0 -2
  104. package/dist/assets/Branch-CWdBw1_P-CmGdOXsI.js.map +0 -1
  105. package/dist/assets/BrickGlobe-67zaG6_H-DP0By6z_.js +0 -2
  106. package/dist/assets/BrickGlobe-67zaG6_H-DP0By6z_.js.map +0 -1
  107. package/dist/assets/Briefcase-CedW3KRR-DO5_k15F.js +0 -2
  108. package/dist/assets/Briefcase-CedW3KRR-DO5_k15F.js.map +0 -1
  109. package/dist/assets/Calendar-C-6HV96D-YetudWvP.js +0 -2
  110. package/dist/assets/Calendar-C-6HV96D-YetudWvP.js.map +0 -1
  111. package/dist/assets/Caret-Ep0j0fz2-By3ojfim.js +0 -2
  112. package/dist/assets/Caret-Ep0j0fz2-By3ojfim.js.map +0 -1
  113. package/dist/assets/CaretDown-3X7LFYBf-C43xdKg8.js +0 -2
  114. package/dist/assets/CaretDown-3X7LFYBf-C43xdKg8.js.map +0 -1
  115. package/dist/assets/CaretSort-BkGdLETT-DVOzEEqR.js +0 -2
  116. package/dist/assets/CaretSort-BkGdLETT-DVOzEEqR.js.map +0 -1
  117. package/dist/assets/Check-DV-U4AEq-B582NMZp.js +0 -2
  118. package/dist/assets/Check-DV-U4AEq-B582NMZp.js.map +0 -1
  119. package/dist/assets/CheckCircle-DI5fEgGd-CVF4LDhR.js +0 -2
  120. package/dist/assets/CheckCircle-DI5fEgGd-CVF4LDhR.js.map +0 -1
  121. package/dist/assets/CheckCircleFill-C-F0v5mB-BSW1YMqM.js +0 -2
  122. package/dist/assets/CheckCircleFill-C-F0v5mB-BSW1YMqM.js.map +0 -1
  123. package/dist/assets/Checkmark-BXnfChpo-CyQitGI2.js +0 -2
  124. package/dist/assets/Checkmark-BXnfChpo-CyQitGI2.js.map +0 -1
  125. package/dist/assets/ChevronDown-ouBxrU-k-eUsCPXcB.js +0 -2
  126. package/dist/assets/ChevronDown-ouBxrU-k-eUsCPXcB.js.map +0 -1
  127. package/dist/assets/Circle-n3-Wh4HS-8dOehHQf.js +0 -2
  128. package/dist/assets/Circle-n3-Wh4HS-8dOehHQf.js.map +0 -1
  129. package/dist/assets/CircleInfo-BhZY3C2Q-CZgYK1h2.js +0 -2
  130. package/dist/assets/CircleInfo-BhZY3C2Q-CZgYK1h2.js.map +0 -1
  131. package/dist/assets/ClockFill-Bd0t48q7-CcfHiJtH.js +0 -2
  132. package/dist/assets/ClockFill-Bd0t48q7-CcfHiJtH.js.map +0 -1
  133. package/dist/assets/CloudSlash-B-zJBjaD-CxVyp-Ac.js +0 -2
  134. package/dist/assets/CloudSlash-B-zJBjaD-CxVyp-Ac.js.map +0 -1
  135. package/dist/assets/Collapse-DRDB8Czs-CGcuZQgy.js +0 -2
  136. package/dist/assets/Collapse-DRDB8Czs-CGcuZQgy.js.map +0 -1
  137. package/dist/assets/Connect-Dme-qfKq-CgniLji8.js +0 -2
  138. package/dist/assets/Connect-Dme-qfKq-CgniLji8.js.map +0 -1
  139. package/dist/assets/Discord-CAS0Cj7s-CcsBWpnf.js +0 -2
  140. package/dist/assets/Discord-CAS0Cj7s-CcsBWpnf.js.map +0 -1
  141. package/dist/assets/Drive-GMcgBcIY-CzahDx9j.js +0 -2
  142. package/dist/assets/Drive-GMcgBcIY-CzahDx9j.js.map +0 -1
  143. package/dist/assets/Ellipsis-XK8AwMEC-BuVBeYhB.js +0 -2
  144. package/dist/assets/Ellipsis-XK8AwMEC-BuVBeYhB.js.map +0 -1
  145. package/dist/assets/Error-BmIZ2ZUy-CphzuMLn.js +0 -2
  146. package/dist/assets/Error-BmIZ2ZUy-CphzuMLn.js.map +0 -1
  147. package/dist/assets/Exclamation-CVsNS_QS-DLccamql.js +0 -2
  148. package/dist/assets/Exclamation-CVsNS_QS-DLccamql.js.map +0 -1
  149. package/dist/assets/FilesEarmark-CyrCQy8E-Bhut4E02.js +0 -2
  150. package/dist/assets/FilesEarmark-CyrCQy8E-Bhut4E02.js.map +0 -1
  151. package/dist/assets/FolderClose-DG_qHisc-CH6NoBuu.js +0 -2
  152. package/dist/assets/FolderClose-DG_qHisc-CH6NoBuu.js.map +0 -1
  153. package/dist/assets/FolderOpen-kDoWFkJO-Cciutkdg.js +0 -2
  154. package/dist/assets/FolderOpen-kDoWFkJO-Cciutkdg.js.map +0 -1
  155. package/dist/assets/FolderPlus-CSBSl9lZ-CifD0ek9.js +0 -2
  156. package/dist/assets/FolderPlus-CSBSl9lZ-CifD0ek9.js.map +0 -1
  157. package/dist/assets/Forum-DZ-CkLFh-BwabccAX.js +0 -2
  158. package/dist/assets/Forum-DZ-CkLFh-BwabccAX.js.map +0 -1
  159. package/dist/assets/Gear-cUlHJ4q6-B9R2l_9_.js +0 -2
  160. package/dist/assets/Gear-cUlHJ4q6-B9R2l_9_.js.map +0 -1
  161. package/dist/assets/Github-0PLiINY0-CjkZIHCO.js +0 -2
  162. package/dist/assets/Github-0PLiINY0-CjkZIHCO.js.map +0 -1
  163. package/dist/assets/Globe-CIYqVkpa-CL530H46.js +0 -2
  164. package/dist/assets/Globe-CIYqVkpa-CL530H46.js.map +0 -1
  165. package/dist/assets/GlobeWww-DN4yKujh-Ci7aa5CE.js +0 -2
  166. package/dist/assets/GlobeWww-DN4yKujh-Ci7aa5CE.js.map +0 -1
  167. package/dist/assets/Hdd-Dn_LdJIh-CJ6x9Bve.js +0 -2
  168. package/dist/assets/Hdd-Dn_LdJIh-CJ6x9Bve.js.map +0 -1
  169. package/dist/assets/History-BP4SmaS_-P4WBKyqX.js +0 -2
  170. package/dist/assets/History-BP4SmaS_-P4WBKyqX.js.map +0 -1
  171. package/dist/assets/InfoSquare-C98JaLiz-yPcGR71f.js +0 -2
  172. package/dist/assets/InfoSquare-C98JaLiz-yPcGR71f.js.map +0 -1
  173. package/dist/assets/Link-BF7aZjVu-CXIVQOz6.js +0 -2
  174. package/dist/assets/Link-BF7aZjVu-CXIVQOz6.js.map +0 -1
  175. package/dist/assets/Linkedin-DJwIkS6q-Dkb5Tp_Z.js +0 -2
  176. package/dist/assets/Linkedin-DJwIkS6q-Dkb5Tp_Z.js.map +0 -1
  177. package/dist/assets/Lock-PyaFHdNS-D_qxRTye.js +0 -2
  178. package/dist/assets/Lock-PyaFHdNS-D_qxRTye.js.map +0 -1
  179. package/dist/assets/M-DozhhPMY-DBQw97P_.js +0 -2
  180. package/dist/assets/M-DozhhPMY-DBQw97P_.js.map +0 -1
  181. package/dist/assets/Pencil-D7lvxXIP-D830iveq.js +0 -2
  182. package/dist/assets/Pencil-D7lvxXIP-D830iveq.js.map +0 -1
  183. package/dist/assets/People-CUB8LYKf-CyJmMqcw.js +0 -2
  184. package/dist/assets/People-CUB8LYKf-CyJmMqcw.js.map +0 -1
  185. package/dist/assets/Person-DuL4PQzm-ttQR0nPy.js +0 -2
  186. package/dist/assets/Person-DuL4PQzm-ttQR0nPy.js.map +0 -1
  187. package/dist/assets/Plus-DPFWGJM4-BztpK8li.js +0 -2
  188. package/dist/assets/Plus-DPFWGJM4-BztpK8li.js.map +0 -1
  189. package/dist/assets/PlusCircle-BEnWRjHa-w5zztKGx.js +0 -2
  190. package/dist/assets/PlusCircle-BEnWRjHa-w5zztKGx.js.map +0 -1
  191. package/dist/assets/PowerhouseLogoSmall-CmO95IAS-CDGLkst3.js +0 -2
  192. package/dist/assets/PowerhouseLogoSmall-CmO95IAS-CDGLkst3.js.map +0 -1
  193. package/dist/assets/Project-BlXuclr0-EsBam9d0.js +0 -2
  194. package/dist/assets/Project-BlXuclr0-EsBam9d0.js.map +0 -1
  195. package/dist/assets/RedoArrow-BJeEsiph-BbidqIFP.js +0 -2
  196. package/dist/assets/RedoArrow-BJeEsiph-BbidqIFP.js.map +0 -1
  197. package/dist/assets/Renown-6m7hx37h-CItksi2j.js +0 -2
  198. package/dist/assets/Renown-6m7hx37h-CItksi2j.js.map +0 -1
  199. package/dist/assets/RenownHover-CQ0TZHZv-cYQgnwQW.js +0 -2
  200. package/dist/assets/RenownHover-CQ0TZHZv-cYQgnwQW.js.map +0 -1
  201. package/dist/assets/Ring-DKv0gnwT-CDHLz87h.js +0 -2
  202. package/dist/assets/Ring-DKv0gnwT-CDHLz87h.js.map +0 -1
  203. package/dist/assets/Save-BBxj68pn-BkUvn89C.js +0 -2
  204. package/dist/assets/Save-BBxj68pn-BkUvn89C.js.map +0 -1
  205. package/dist/assets/Search-YUJuRBLe-CecGUkZA.js +0 -2
  206. package/dist/assets/Search-YUJuRBLe-CecGUkZA.js.map +0 -1
  207. package/dist/assets/Server-Bfkkjui1-lBan_3Dm.js +0 -2
  208. package/dist/assets/Server-Bfkkjui1-lBan_3Dm.js.map +0 -1
  209. package/dist/assets/Settings-mbbylBS5-Cca-sV-_.js +0 -2
  210. package/dist/assets/Settings-mbbylBS5-Cca-sV-_.js.map +0 -1
  211. package/dist/assets/Synced-DKJXzPiw-Cui8pDsS.js +0 -2
  212. package/dist/assets/Synced-DKJXzPiw-Cui8pDsS.js.map +0 -1
  213. package/dist/assets/Syncing-aT9WSMFf-2VhhyCcX.js +0 -2
  214. package/dist/assets/Syncing-aT9WSMFf-2VhhyCcX.js.map +0 -1
  215. package/dist/assets/Trash-CgSbHk-P-DIYkVMER.js +0 -2
  216. package/dist/assets/Trash-CgSbHk-P-DIYkVMER.js.map +0 -1
  217. package/dist/assets/TrashFill-DN50ercb-Oqx67xXN.js +0 -2
  218. package/dist/assets/TrashFill-DN50ercb-Oqx67xXN.js.map +0 -1
  219. package/dist/assets/VariantArrowLeft-CnuX59_e-6Zt_Q3tm.js +0 -2
  220. package/dist/assets/VariantArrowLeft-CnuX59_e-6Zt_Q3tm.js.map +0 -1
  221. package/dist/assets/VerticalDots-C8QYf7et-CCxZfvjq.js +0 -2
  222. package/dist/assets/VerticalDots-C8QYf7et-CCxZfvjq.js.map +0 -1
  223. package/dist/assets/WarningFill-WowAvi5P-D5XCckM6.js +0 -2
  224. package/dist/assets/WarningFill-WowAvi5P-D5XCckM6.js.map +0 -1
  225. package/dist/assets/XTwitter-k3Pt8itk-mvLk8TKx.js +0 -2
  226. package/dist/assets/XTwitter-k3Pt8itk-mvLk8TKx.js.map +0 -1
  227. package/dist/assets/Xmark-8qnJCs2Y-CZ3t0Fap.js +0 -2
  228. package/dist/assets/Xmark-8qnJCs2Y-CZ3t0Fap.js.map +0 -1
  229. package/dist/assets/XmarkLight-GHzDR5_F-CloMvuzt.js +0 -2
  230. package/dist/assets/XmarkLight-GHzDR5_F-CloMvuzt.js.map +0 -1
  231. package/dist/assets/Youtube-i8V0IXUU-Bkiwoayp.js +0 -2
  232. package/dist/assets/Youtube-i8V0IXUU-Bkiwoayp.js.map +0 -1
  233. package/dist/assets/app-BdM_bCqD.js +0 -842
  234. package/dist/assets/app-BdM_bCqD.js.map +0 -1
  235. package/dist/assets/app-loader-B7xllAoS.js +0 -3
  236. package/dist/assets/app-loader-B7xllAoS.js.map +0 -1
  237. package/dist/assets/app-loader-D5wPX62N.css +0 -1
  238. package/dist/assets/browser-CwKAjz_f.js +0 -43
  239. package/dist/assets/browser-CwKAjz_f.js.map +0 -1
  240. package/dist/assets/browser-Dmr6AWWk.js +0 -2
  241. package/dist/assets/browser-Dmr6AWWk.js.map +0 -1
  242. package/dist/assets/ccip-BoVyVgwR.js +0 -2
  243. package/dist/assets/ccip-BoVyVgwR.js.map +0 -1
  244. package/dist/assets/content-BmCNR4Pw.js +0 -6
  245. package/dist/assets/content-BmCNR4Pw.js.map +0 -1
  246. package/dist/assets/editor-Cma-7Z7k.js +0 -2
  247. package/dist/assets/editor-Cma-7Z7k.js.map +0 -1
  248. package/dist/assets/editor-IMwm8pim.js +0 -2
  249. package/dist/assets/editor-IMwm8pim.js.map +0 -1
  250. package/dist/assets/editor-vgD9wEAH.js +0 -2
  251. package/dist/assets/editor-vgD9wEAH.js.map +0 -1
  252. package/dist/assets/editors-DQC0rqOg.js +0 -347
  253. package/dist/assets/editors-DQC0rqOg.js.map +0 -1
  254. package/dist/assets/index-BP2fj1j6.js +0 -16
  255. package/dist/assets/index-BP2fj1j6.js.map +0 -1
  256. package/dist/assets/index-SwNHx8hV.js +0 -3
  257. package/dist/assets/index-SwNHx8hV.js.map +0 -1
  258. package/dist/assets/index-T6Et30Eh-CdVwpIBO.js +0 -12
  259. package/dist/assets/index-T6Et30Eh-CdVwpIBO.js.map +0 -1
  260. package/dist/assets/main.DQ-aV7Qq.js +0 -2
  261. package/dist/assets/main.DQ-aV7Qq.js.map +0 -1
  262. package/dist/assets/root-BKJF0Yl6.js +0 -12
  263. package/dist/assets/root-BKJF0Yl6.js.map +0 -1
  264. package/dist/assets/router-Hd499Vrp.js +0 -12
  265. package/dist/assets/router-Hd499Vrp.js.map +0 -1
  266. package/dist/assets/useUiNodes-Ch-W4vsB.js +0 -107
  267. package/dist/assets/useUiNodes-Ch-W4vsB.js.map +0 -1
  268. package/dist/service-worker.js.map +0 -1
  269. package/dist/studio/cli.js +0 -6
  270. package/dist/studio/helpers.d.ts +0 -2
  271. package/dist/studio/index.d.ts +0 -20
  272. package/dist/studio/index.js +0 -580
  273. package/dist/studio/server.d.ts +0 -7
  274. package/dist/studio/vite-plugin.d.ts +0 -12
@@ -0,0 +1,82 @@
1
+ import {
2
+ useDriveActions
3
+ } from "./chunk-ZWFCVUBU.js";
4
+ import {
5
+ useDriveContext
6
+ } from "./chunk-XBTEGV5M.js";
7
+ import {
8
+ useUiNodesContext
9
+ } from "./chunk-RGIB4DD4.js";
10
+ import {
11
+ FILE
12
+ } from "./chunk-7OQWVUC5.js";
13
+
14
+ // ../../packages/reactor-browser/dist/src/hooks/useDriveActionsWithUiNodes.js
15
+ import { useMemo } from "react";
16
+ function toNode(uiNode) {
17
+ if (uiNode.kind === "DRIVE") {
18
+ throw new Error("Cannot convert drive node to regular node");
19
+ }
20
+ const { id, name, parentFolder, kind } = uiNode;
21
+ if (kind === "FOLDER") {
22
+ return { id, name, parentFolder, kind: "folder" };
23
+ } else {
24
+ const fileNode = uiNode;
25
+ return {
26
+ id,
27
+ name,
28
+ parentFolder,
29
+ kind: "file",
30
+ documentType: fileNode.documentType,
31
+ synchronizationUnits: fileNode.synchronizationUnits
32
+ };
33
+ }
34
+ }
35
+ function createUiNodeAdapter(driveActions) {
36
+ return {
37
+ ...driveActions,
38
+ addFile: (file, parentNode) => driveActions.addFile(file, parentNode?.id),
39
+ addFolder: (name, parentFolder = void 0) => driveActions.addFolder(name, parentFolder),
40
+ renameNode: (name, node) => {
41
+ const converted = toNode(node);
42
+ return driveActions.renameNode(converted.id, name);
43
+ },
44
+ deleteNode: (node) => {
45
+ const converted = toNode(node);
46
+ return driveActions.deleteNode(converted.id);
47
+ },
48
+ moveNode: async (src, target) => {
49
+ if (target.kind === FILE || src.parentFolder === target.id)
50
+ return;
51
+ const srcNode = toNode(src);
52
+ const targetNode = toNode(target);
53
+ return driveActions.moveNode(srcNode.id, targetNode.id);
54
+ },
55
+ copyNode: (src, target) => {
56
+ return driveActions.copyNode(src.id, target.id);
57
+ },
58
+ duplicateNode: (node) => {
59
+ const converted = toNode(node);
60
+ return driveActions.duplicateNode(converted.id);
61
+ }
62
+ };
63
+ }
64
+ function useDriveActionsWithUiNodes(document, dispatch) {
65
+ const { selectedNode, selectedDriveNode, setSelectedNode, getNodeById } = useUiNodesContext();
66
+ const _driveContext = useDriveContext();
67
+ const driveContext = useMemo(() => ({
68
+ ..._driveContext,
69
+ selectedNode,
70
+ onSelectNode: (node) => {
71
+ _driveContext.selectNode(node);
72
+ setSelectedNode(getNodeById(node.id));
73
+ }
74
+ }), [selectedNode, selectedDriveNode?.driveId, setSelectedNode, getNodeById]);
75
+ const driveActions = useDriveActions(document, dispatch, driveContext);
76
+ const uiNodeActions = useMemo(() => createUiNodeAdapter(driveActions), [driveActions]);
77
+ return uiNodeActions;
78
+ }
79
+
80
+ export {
81
+ useDriveActionsWithUiNodes
82
+ };
@@ -0,0 +1,17 @@
1
+ // ../../packages/reactor-browser/dist/src/hooks/useDriveContext.js
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { createContext, useContext } from "react";
4
+ var DriveContext = createContext(void 0);
5
+ var DriveContextProvider = ({ value, children }) => _jsx(DriveContext.Provider, { value, children });
6
+ function useDriveContext() {
7
+ const context = useContext(DriveContext);
8
+ if (!context) {
9
+ throw new Error("useDriveContext must be used within a DriveContextProvider");
10
+ }
11
+ return context;
12
+ }
13
+
14
+ export {
15
+ DriveContextProvider,
16
+ useDriveContext
17
+ };
@@ -0,0 +1,25 @@
1
+ import {
2
+ createZip
3
+ } from "./chunk-FQF4YAVC.js";
4
+
5
+ // ../../packages/reactor-browser/dist/src/utils/export-document.js
6
+ var exportDocument = async (document, name, extension) => {
7
+ const zip = createZip(document);
8
+ const ext = extension ? `.${extension.replace(/^\./, "")}` : "";
9
+ try {
10
+ const blob = await zip.generateAsync({ type: "blob" });
11
+ const link = window.document.createElement("a");
12
+ link.style.display = "none";
13
+ link.href = URL.createObjectURL(blob);
14
+ link.download = `${name || document.name || "Untitled"}${ext}.zip`;
15
+ window.document.body.appendChild(link);
16
+ link.click();
17
+ window.document.body.removeChild(link);
18
+ } catch (error) {
19
+ console.error(error);
20
+ }
21
+ };
22
+
23
+ export {
24
+ exportDocument
25
+ };
@@ -0,0 +1,178 @@
1
+ import {
2
+ useUserPermissions
3
+ } from "./chunk-OVGOA2P5.js";
4
+ import {
5
+ drivesToHash
6
+ } from "./chunk-P6NJ6IAQ.js";
7
+ import {
8
+ ReadDriveNotFoundError
9
+ } from "./chunk-64UP3MVE.js";
10
+
11
+ // ../../packages/reactor-browser/dist/src/context/read-mode.js
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { createContext, useContext, useEffect, useMemo, useState } from "react";
14
+ var __decorate = function(decorators, target, key, desc) {
15
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
19
+ };
20
+ var logger = {
21
+ error: console.error
22
+ };
23
+ function checkServer(target, propertyKey, descriptor) {
24
+ const originalMethod = descriptor.value;
25
+ descriptor.value = function(...args) {
26
+ if (!this.server) {
27
+ throw new Error("Read mode document drive not initialized.");
28
+ }
29
+ return originalMethod.apply(this, args);
30
+ };
31
+ }
32
+ function bindClassMethods(instance) {
33
+ const prototype = Object.getPrototypeOf(instance);
34
+ const propertyNames = Object.getOwnPropertyNames(prototype);
35
+ propertyNames.forEach((name) => {
36
+ const descriptor = Object.getOwnPropertyDescriptor(prototype, name);
37
+ if (descriptor && typeof descriptor.value === "function" && name !== "constructor") {
38
+ instance[name] = instance[name].bind(instance);
39
+ }
40
+ });
41
+ }
42
+ var ReadModeContextImpl = class {
43
+ server;
44
+ constructor(documentDrive) {
45
+ bindClassMethods(this);
46
+ this.server = documentDrive;
47
+ }
48
+ getServer() {
49
+ return this.server;
50
+ }
51
+ setDocumentDrive(documentDrive) {
52
+ this.server = documentDrive;
53
+ }
54
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
55
+ migrateReadDrive(id, options) {
56
+ return this.server.migrateReadDrive(id, options);
57
+ }
58
+ addReadDrive(url, options) {
59
+ return this.server.addReadDrive(url, options);
60
+ }
61
+ getReadDrives() {
62
+ return this.server.getReadDrives();
63
+ }
64
+ getReadDriveBySlug(slug) {
65
+ return this.server.getReadDriveBySlug(slug);
66
+ }
67
+ getReadDrive(id) {
68
+ return this.server.getReadDrive(id);
69
+ }
70
+ getReadDriveContext(id) {
71
+ return this.server.getReadDriveContext(id);
72
+ }
73
+ fetchDrive(id) {
74
+ return this.server.fetchDrive(id);
75
+ }
76
+ fetchDocument(driveId, documentId, documentType) {
77
+ return this.server.fetchDocument(driveId, documentId, documentType);
78
+ }
79
+ deleteReadDrive(id) {
80
+ return this.server.deleteReadDrive(id);
81
+ }
82
+ onReadDrivesUpdate(listener) {
83
+ return this.server.onReadDrivesUpdate(listener);
84
+ }
85
+ };
86
+ __decorate([
87
+ checkServer
88
+ ], ReadModeContextImpl.prototype, "migrateReadDrive", null);
89
+ __decorate([
90
+ checkServer
91
+ ], ReadModeContextImpl.prototype, "addReadDrive", null);
92
+ __decorate([
93
+ checkServer
94
+ ], ReadModeContextImpl.prototype, "getReadDrives", null);
95
+ __decorate([
96
+ checkServer
97
+ ], ReadModeContextImpl.prototype, "getReadDriveBySlug", null);
98
+ __decorate([
99
+ checkServer
100
+ ], ReadModeContextImpl.prototype, "getReadDrive", null);
101
+ __decorate([
102
+ checkServer
103
+ ], ReadModeContextImpl.prototype, "getReadDriveContext", null);
104
+ __decorate([
105
+ checkServer
106
+ ], ReadModeContextImpl.prototype, "fetchDrive", null);
107
+ __decorate([
108
+ checkServer
109
+ ], ReadModeContextImpl.prototype, "fetchDocument", null);
110
+ __decorate([
111
+ checkServer
112
+ ], ReadModeContextImpl.prototype, "deleteReadDrive", null);
113
+ __decorate([
114
+ checkServer
115
+ ], ReadModeContextImpl.prototype, "onReadDrivesUpdate", null);
116
+ var ReadModeInstance = new ReadModeContextImpl();
117
+ var ReadModeContext = createContext({
118
+ ...ReadModeInstance,
119
+ readDrives: []
120
+ });
121
+ async function getReadDrives(instance) {
122
+ const driveIds = await instance.getReadDrives();
123
+ const drives = await Promise.all(driveIds.map((id) => instance.getReadDrive(id)));
124
+ return drives.filter((drive) => !(drive instanceof ReadDriveNotFoundError));
125
+ }
126
+ var ReadModeContextProvider = (props) => {
127
+ const { reactorPromise, ...restProps } = props;
128
+ const [readDrives, setReadDrives] = useState([]);
129
+ const userPermissions = useUserPermissions();
130
+ const [ready, setReady] = useState(false);
131
+ useEffect(() => {
132
+ reactorPromise.then((reactor) => {
133
+ ReadModeInstance.setDocumentDrive(reactor);
134
+ setReady(true);
135
+ }).catch(logger.error);
136
+ }, [reactorPromise]);
137
+ const readMode = userPermissions === void 0 ? void 0 : !(userPermissions.isAllowedToCreateDocuments || userPermissions.isAllowedToEditDocuments);
138
+ useMemo(() => {
139
+ if (!ready || readMode === void 0) {
140
+ return;
141
+ }
142
+ const accessLevel = readMode ? "READ" : "WRITE";
143
+ const server = ReadModeInstance.getServer();
144
+ if (server && typeof server.setAllDefaultDrivesAccessLevel === "function") {
145
+ server.setAllDefaultDrivesAccessLevel(accessLevel).catch(logger.error);
146
+ }
147
+ }, [readMode, ready]);
148
+ useEffect(() => {
149
+ if (!ready) {
150
+ return;
151
+ }
152
+ getReadDrives(ReadModeInstance).then((drives) => setReadDrives(drives)).catch(logger.error);
153
+ const unsubscribe = ReadModeInstance.onReadDrivesUpdate((newDrives) => {
154
+ setReadDrives((readDrives2) => readDrives2.length !== newDrives.length || drivesToHash(readDrives2) !== drivesToHash(newDrives) ? newDrives : readDrives2);
155
+ }).catch(logger.error);
156
+ return () => {
157
+ unsubscribe.then((unsub) => {
158
+ if (typeof unsub === "function") {
159
+ unsub();
160
+ }
161
+ }).catch(logger.error);
162
+ };
163
+ }, [ready]);
164
+ const context = useMemo(() => {
165
+ return {
166
+ ...ReadModeInstance,
167
+ readDrives
168
+ };
169
+ }, [readDrives]);
170
+ return _jsx(ReadModeContext.Provider, { ...restProps, value: context });
171
+ };
172
+ var useReadModeContext = () => useContext(ReadModeContext);
173
+
174
+ export {
175
+ ReadModeContext,
176
+ ReadModeContextProvider,
177
+ useReadModeContext
178
+ };
@@ -0,0 +1,52 @@
1
+ // ../../packages/reactor-browser/dist/src/crypto/browser.js
2
+ var BrowserKeyStorage = class _BrowserKeyStorage {
3
+ static #DB_NAME = "browserKeyDB";
4
+ static #STORE_NAME = "keyPairs";
5
+ static #KEY = "keyPair";
6
+ #db;
7
+ constructor() {
8
+ this.#db = new Promise((resolve, reject) => {
9
+ const req = indexedDB.open(_BrowserKeyStorage.#DB_NAME, 1);
10
+ req.onupgradeneeded = () => {
11
+ req.result.createObjectStore(_BrowserKeyStorage.#STORE_NAME);
12
+ };
13
+ req.onsuccess = () => resolve(req.result);
14
+ req.onerror = () => reject(req.error);
15
+ });
16
+ }
17
+ async #useStore(mode = "readwrite") {
18
+ const database = await this.#db;
19
+ const transaction = database.transaction(_BrowserKeyStorage.#STORE_NAME, mode);
20
+ const store = transaction.objectStore(_BrowserKeyStorage.#STORE_NAME);
21
+ return store;
22
+ }
23
+ async saveKeyPair(keyPair) {
24
+ const store = await this.#useStore();
25
+ const request = store.put(keyPair, _BrowserKeyStorage.#KEY);
26
+ return new Promise((resolve, reject) => {
27
+ request.onsuccess = () => {
28
+ resolve();
29
+ };
30
+ request.onerror = () => {
31
+ reject(new Error("Failed to save key pair"));
32
+ };
33
+ });
34
+ }
35
+ async loadKeyPair() {
36
+ const store = await this.#useStore("readonly");
37
+ const request = store.getAll();
38
+ return new Promise((resolve, reject) => {
39
+ request.onsuccess = () => {
40
+ const keyPair = request.result.length ? request.result[0] : void 0;
41
+ resolve(keyPair);
42
+ };
43
+ request.onerror = () => {
44
+ reject(new Error("Failed to load key pair"));
45
+ };
46
+ });
47
+ }
48
+ };
49
+
50
+ export {
51
+ BrowserKeyStorage
52
+ };
@@ -0,0 +1,113 @@
1
+ import {
2
+ addFolder,
3
+ copyNode,
4
+ deleteNode,
5
+ generateAddNodeAction,
6
+ generateNodesCopy,
7
+ isFileNode,
8
+ isFolderNode,
9
+ moveNode,
10
+ updateNode
11
+ } from "./chunk-64UP3MVE.js";
12
+ import {
13
+ generateId
14
+ } from "./chunk-FQF4YAVC.js";
15
+
16
+ // ../../packages/reactor-browser/dist/src/hooks/useDriveActions.js
17
+ import { useMemo } from "react";
18
+ var generateId2 = () => generateId().toString();
19
+ function getNode(id, drive) {
20
+ return drive.state.global.nodes.find((node) => node.id === id);
21
+ }
22
+ function createDriveActions(document, dispatch, context) {
23
+ const drive = document;
24
+ const { id: driveId } = drive.state.global;
25
+ const { selectedNode } = context;
26
+ const handleAddFolder = async (name, parentFolder, id = generateId2()) => {
27
+ dispatch(addFolder({
28
+ id,
29
+ name,
30
+ parentFolder: parentFolder ?? null
31
+ }));
32
+ };
33
+ const addDocument = async (name, documentType, document2, parentFolder, id = generateId2()) => {
34
+ const action = generateAddNodeAction(drive.state.global, {
35
+ id,
36
+ name,
37
+ parentFolder: parentFolder ?? null,
38
+ documentType,
39
+ document: document2
40
+ }, ["global"]);
41
+ dispatch(action);
42
+ };
43
+ const addFile = async (file, parentFolder = selectedNode && isFileNode(selectedNode) ? void 0 : selectedNode?.id, name = file.name.replace(/\.zip$/gim, "")) => {
44
+ const folder = parentFolder ? getNode(parentFolder, drive) : void 0;
45
+ if (parentFolder && !folder) {
46
+ throw new Error(`Parent folder with id "${parentFolder}" not found`);
47
+ }
48
+ if (folder && !isFolderNode(folder)) {
49
+ throw new Error(`Parent folder with id "${parentFolder}" is not a folder`);
50
+ }
51
+ await context.addFile(file, driveId, name, parentFolder);
52
+ };
53
+ const handleDeleteNode = async (id) => {
54
+ dispatch(deleteNode({ id }));
55
+ };
56
+ const renameNode = async (id, name) => {
57
+ dispatch(updateNode({ id, name }));
58
+ };
59
+ const handleMoveNode = async (sourceId, targetId) => {
60
+ dispatch(moveNode({
61
+ srcFolder: sourceId,
62
+ targetParentFolder: targetId
63
+ }));
64
+ };
65
+ const handleCopyNode = async (sourceId, targetFolderId) => {
66
+ const target = targetFolderId ? getNode(targetFolderId, drive) : void 0;
67
+ if (targetFolderId && !target) {
68
+ throw new Error(`Target node with id "${targetFolderId}" not found`);
69
+ }
70
+ if (target && !isFolderNode(target)) {
71
+ throw new Error(`Target node with id "${targetFolderId}" is not a folder`);
72
+ }
73
+ const source = getNode(sourceId, drive);
74
+ if (!source) {
75
+ throw new Error(`Source node with id "${sourceId}" not found`);
76
+ }
77
+ const copyNodesInput = generateNodesCopy({
78
+ srcId: sourceId,
79
+ targetParentFolder: target?.id,
80
+ targetName: source.name
81
+ }, generateId2, drive.state.global.nodes);
82
+ const copyActions = copyNodesInput.map((copyNodeInput) => copyNode(copyNodeInput));
83
+ for (const copyAction of copyActions) {
84
+ dispatch(copyAction);
85
+ }
86
+ };
87
+ const duplicateNode = async (sourceId) => {
88
+ const node = getNode(sourceId, drive);
89
+ if (!node) {
90
+ throw new Error(`Node with id "${sourceId}" not found`);
91
+ }
92
+ await handleCopyNode(node.id, node.parentFolder || void 0);
93
+ };
94
+ return {
95
+ context,
96
+ selectNode: context.selectNode,
97
+ addFolder: handleAddFolder,
98
+ addFile,
99
+ addDocument,
100
+ deleteNode: handleDeleteNode,
101
+ renameNode,
102
+ moveNode: handleMoveNode,
103
+ copyNode: handleCopyNode,
104
+ duplicateNode
105
+ };
106
+ }
107
+ function useDriveActions(document, dispatch, context) {
108
+ return useMemo(() => createDriveActions(document, dispatch, context), [document, dispatch, context]);
109
+ }
110
+
111
+ export {
112
+ useDriveActions
113
+ };
@@ -0,0 +1,16 @@
1
+ import "../chunk-U36SV333.js";
2
+ import {
3
+ ReadModeContext,
4
+ ReadModeContextProvider,
5
+ useReadModeContext
6
+ } from "../chunk-YSOX63EM.js";
7
+ import "../chunk-OVGOA2P5.js";
8
+ import "../chunk-P6NJ6IAQ.js";
9
+ import "../chunk-64UP3MVE.js";
10
+ import "../chunk-FQF4YAVC.js";
11
+ import "../chunk-2ESYSVXG.js";
12
+ export {
13
+ ReadModeContext,
14
+ ReadModeContextProvider,
15
+ useReadModeContext
16
+ };
@@ -0,0 +1,15 @@
1
+ import {
2
+ ReadModeContext,
3
+ ReadModeContextProvider,
4
+ useReadModeContext
5
+ } from "../chunk-YSOX63EM.js";
6
+ import "../chunk-OVGOA2P5.js";
7
+ import "../chunk-P6NJ6IAQ.js";
8
+ import "../chunk-64UP3MVE.js";
9
+ import "../chunk-FQF4YAVC.js";
10
+ import "../chunk-2ESYSVXG.js";
11
+ export {
12
+ ReadModeContext,
13
+ ReadModeContextProvider,
14
+ useReadModeContext
15
+ };
@@ -0,0 +1,7 @@
1
+ import {
2
+ BrowserKeyStorage
3
+ } from "../chunk-YWKVPJNL.js";
4
+ import "../chunk-2ESYSVXG.js";
5
+ export {
6
+ BrowserKeyStorage
7
+ };
@@ -0,0 +1,7 @@
1
+ import {
2
+ ConnectCrypto
3
+ } from "../chunk-2X2M6BYG.js";
4
+ import "../chunk-2ESYSVXG.js";
5
+ export {
6
+ ConnectCrypto
7
+ };
@@ -0,0 +1,10 @@
1
+ import {
2
+ baseDocumentModels,
3
+ baseDocumentModelsMap
4
+ } from "./chunk-LRNZZ3SR.js";
5
+ import "./chunk-FQF4YAVC.js";
6
+ import "./chunk-2ESYSVXG.js";
7
+ export {
8
+ baseDocumentModels,
9
+ baseDocumentModelsMap
10
+ };
@@ -0,0 +1,96 @@
1
+ import "../chunk-2ESYSVXG.js";
2
+
3
+ // ../../packages/reactor-browser/dist/src/hooks/document-state.js
4
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
5
+ function useDocumentsState(args) {
6
+ const { reactor, driveId, documentIds, options } = args;
7
+ const [statesByDocumentId, setStatesByDocumentId] = useState({});
8
+ const isInitialized = useRef(false);
9
+ const isSubscribed = useRef(false);
10
+ useEffect(() => {
11
+ async function initialize() {
12
+ if (isInitialized.current)
13
+ return;
14
+ if (!reactor || !driveId)
15
+ return;
16
+ isInitialized.current = true;
17
+ const ids = documentIds ?? await reactor.getDocuments(driveId);
18
+ const statesByDocumentId2 = {};
19
+ for (const id of ids) {
20
+ const document = await reactor.getDocument(driveId, id, options);
21
+ statesByDocumentId2[id] = {
22
+ ...document.state,
23
+ documentType: document.documentType,
24
+ revision: document.revision,
25
+ created: document.created,
26
+ lastModified: document.lastModified
27
+ };
28
+ }
29
+ setStatesByDocumentId(statesByDocumentId2);
30
+ }
31
+ void initialize();
32
+ }, [reactor, driveId, options]);
33
+ useEffect(() => {
34
+ if (!reactor || !driveId)
35
+ return;
36
+ if (isSubscribed.current)
37
+ return;
38
+ isSubscribed.current = true;
39
+ const unsubscribe = reactor.on("strandUpdate", async (update) => {
40
+ if (update.driveId !== driveId || documentIds && !documentIds.includes(update.documentId))
41
+ return;
42
+ const updatedDocument = await reactor.getDocument(driveId, update.documentId, options);
43
+ setStatesByDocumentId((prev) => {
44
+ const newStatesByDocumentId = { ...prev };
45
+ newStatesByDocumentId[update.documentId] = {
46
+ ...updatedDocument.state,
47
+ documentType: updatedDocument.documentType,
48
+ revision: updatedDocument.revision,
49
+ created: updatedDocument.created,
50
+ lastModified: updatedDocument.lastModified
51
+ };
52
+ return newStatesByDocumentId;
53
+ });
54
+ });
55
+ return unsubscribe;
56
+ }, [reactor, driveId, options]);
57
+ return useMemo(() => statesByDocumentId, [statesByDocumentId]);
58
+ }
59
+ function makeDriveDocumentStatesHook(reactor) {
60
+ const useDriveDocumentStates = useCallback((args) => {
61
+ const { driveId, documentIds, options } = args;
62
+ return useDocumentsState({
63
+ reactor,
64
+ driveId,
65
+ documentIds,
66
+ options
67
+ });
68
+ }, [reactor]);
69
+ return useDriveDocumentStates;
70
+ }
71
+ function makeDriveDocumentStateHook(reactor) {
72
+ const useDriveDocumentState = useCallback((args) => {
73
+ const { driveId, documentId } = args;
74
+ return useDocumentState({
75
+ reactor,
76
+ driveId,
77
+ documentId
78
+ });
79
+ }, [reactor]);
80
+ return useDriveDocumentState;
81
+ }
82
+ function useDocumentState(args) {
83
+ const { reactor, driveId, documentId } = args;
84
+ const state = useDocumentsState({
85
+ reactor,
86
+ driveId,
87
+ documentIds: [documentId]
88
+ });
89
+ return useMemo(() => state[documentId], [state, documentId]);
90
+ }
91
+ export {
92
+ makeDriveDocumentStateHook,
93
+ makeDriveDocumentStatesHook,
94
+ useDocumentState,
95
+ useDocumentsState
96
+ };