@powerhousedao/shared 6.2.3-dev.5 → 6.2.3-dev.51

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 (282) hide show
  1. package/dist/analytics/index.d.ts +4 -4
  2. package/dist/analytics/index.d.ts.map +1 -1
  3. package/dist/analytics/index.js +25 -24
  4. package/dist/analytics/index.js.map +1 -1
  5. package/dist/clis/args/{access-token-To5LaIfL.mjs → access-token-3Hqv_U8I.mjs} +2 -2
  6. package/dist/clis/args/{access-token-To5LaIfL.mjs.map → access-token-3Hqv_U8I.mjs.map} +1 -1
  7. package/dist/clis/args/access-token-C5sKsH2O.d.mts +16 -0
  8. package/dist/clis/args/access-token-C5sKsH2O.d.mts.map +1 -0
  9. package/dist/clis/args/access-token.d.mts +3 -2
  10. package/dist/clis/args/access-token.mjs +1 -1
  11. package/dist/clis/args/{common-CcYbXrBx.mjs → common-BXabdhiO.mjs} +30 -7
  12. package/dist/clis/args/common-BXabdhiO.mjs.map +1 -0
  13. package/dist/clis/args/common-Bnm859xU.d.mts +186 -0
  14. package/dist/clis/args/common-Bnm859xU.d.mts.map +1 -0
  15. package/dist/clis/args/common.d.mts +3 -2
  16. package/dist/clis/args/common.mjs +1 -1
  17. package/dist/clis/args/{connect-BVVvCmL9.mjs → connect-BG3HkYBk.mjs} +8 -3
  18. package/dist/clis/args/connect-BG3HkYBk.mjs.map +1 -0
  19. package/dist/clis/args/connect-DjeiqXus.d.mts +450 -0
  20. package/dist/clis/args/connect-DjeiqXus.d.mts.map +1 -0
  21. package/dist/clis/args/connect.d.mts +3 -2
  22. package/dist/clis/args/connect.mjs +1 -1
  23. package/dist/clis/args/dist-CorQTQL-.mjs +1533 -0
  24. package/dist/clis/args/dist-CorQTQL-.mjs.map +1 -0
  25. package/dist/clis/args/{generate-CA916Fvj.mjs → generate-BOItUNvP.mjs} +40 -2
  26. package/dist/clis/args/generate-BOItUNvP.mjs.map +1 -0
  27. package/dist/clis/args/generate-BPBBLeUD.d.mts +103 -0
  28. package/dist/clis/args/generate-BPBBLeUD.d.mts.map +1 -0
  29. package/dist/clis/args/generate.d.mts +3 -2
  30. package/dist/clis/args/generate.mjs +1 -1
  31. package/dist/clis/args/{help-Bqbgbalu.mjs → help-DS1NlcJQ.mjs} +15 -15
  32. package/dist/clis/args/{help-Bqbgbalu.mjs.map → help-DS1NlcJQ.mjs.map} +1 -1
  33. package/dist/clis/args/help-DVPTARGn.d.mts +190 -0
  34. package/dist/clis/args/help-DVPTARGn.d.mts.map +1 -0
  35. package/dist/clis/args/help.d.mts +3 -2
  36. package/dist/clis/args/help.mjs +1 -1
  37. package/dist/clis/args/index.d.mts +20 -19
  38. package/dist/clis/args/index.mjs +18 -18
  39. package/dist/clis/args/init-CFeTq4Cq.d.mts +52 -0
  40. package/dist/clis/args/init-CFeTq4Cq.d.mts.map +1 -0
  41. package/dist/clis/args/{init-rz9Ei7nq.mjs → init-Dvb42Y87.mjs} +2 -2
  42. package/dist/clis/args/{init-rz9Ei7nq.mjs.map → init-Dvb42Y87.mjs.map} +1 -1
  43. package/dist/clis/args/init.d.mts +3 -2
  44. package/dist/clis/args/init.mjs +1 -1
  45. package/dist/clis/args/inspect-BjRmtB86.d.mts +13 -0
  46. package/dist/clis/args/inspect-BjRmtB86.d.mts.map +1 -0
  47. package/dist/clis/args/{inspect-tckH8mSw.mjs → inspect-UNQgtuR0.mjs} +2 -2
  48. package/dist/clis/args/{inspect-tckH8mSw.mjs.map → inspect-UNQgtuR0.mjs.map} +1 -1
  49. package/dist/clis/args/inspect.d.mts +3 -2
  50. package/dist/clis/args/inspect.mjs +1 -1
  51. package/dist/clis/args/install-B0tMyUMw.d.mts +37 -0
  52. package/dist/clis/args/install-B0tMyUMw.d.mts.map +1 -0
  53. package/dist/clis/args/{install-Sz2DlCHh.mjs → install-F-27kF6m.mjs} +2 -2
  54. package/dist/clis/args/{install-Sz2DlCHh.mjs.map → install-F-27kF6m.mjs.map} +1 -1
  55. package/dist/clis/args/install.d.mts +3 -2
  56. package/dist/clis/args/install.mjs +1 -1
  57. package/dist/clis/args/{list-DM2d6f1m.mjs → list-Bkfn8Yuo.mjs} +2 -2
  58. package/dist/clis/args/{list-DM2d6f1m.mjs.map → list-Bkfn8Yuo.mjs.map} +1 -1
  59. package/dist/clis/args/list-DrbxA7JJ.d.mts +10 -0
  60. package/dist/clis/args/list-DrbxA7JJ.d.mts.map +1 -0
  61. package/dist/clis/args/list.d.mts +3 -2
  62. package/dist/clis/args/list.mjs +1 -1
  63. package/dist/clis/args/{login-DiKT5Jfu.mjs → login-CIFkQExi.mjs} +2 -2
  64. package/dist/clis/args/{login-DiKT5Jfu.mjs.map → login-CIFkQExi.mjs.map} +1 -1
  65. package/dist/clis/args/login-CXRJXg71.d.mts +25 -0
  66. package/dist/clis/args/login-CXRJXg71.d.mts.map +1 -0
  67. package/dist/clis/args/login.d.mts +3 -2
  68. package/dist/clis/args/login.mjs +1 -1
  69. package/dist/clis/args/migrate-DkCQRL2D.d.mts +19 -0
  70. package/dist/clis/args/migrate-DkCQRL2D.d.mts.map +1 -0
  71. package/dist/clis/args/{migrate-CG_gWc4k.mjs → migrate-DwJGhc2d.mjs} +2 -2
  72. package/dist/clis/args/{migrate-CG_gWc4k.mjs.map → migrate-DwJGhc2d.mjs.map} +1 -1
  73. package/dist/clis/args/migrate.d.mts +3 -2
  74. package/dist/clis/args/migrate.mjs +1 -1
  75. package/dist/clis/args/publish-CeW4bOrl.d.mts +16 -0
  76. package/dist/clis/args/publish-CeW4bOrl.d.mts.map +1 -0
  77. package/dist/clis/args/{publish-DDZYsUfV.mjs → publish-DHqlGWmL.mjs} +2 -2
  78. package/dist/clis/args/{publish-DDZYsUfV.mjs.map → publish-DHqlGWmL.mjs.map} +1 -1
  79. package/dist/clis/args/publish.d.mts +3 -2
  80. package/dist/clis/args/publish.mjs +1 -1
  81. package/dist/clis/args/{registry-C_OVFQmI.mjs → registry-DIwES3l2.mjs} +2 -2
  82. package/dist/clis/args/{registry-C_OVFQmI.mjs.map → registry-DIwES3l2.mjs.map} +1 -1
  83. package/dist/clis/args/registry-DNH8xuaE.d.mts +17 -0
  84. package/dist/clis/args/registry-DNH8xuaE.d.mts.map +1 -0
  85. package/dist/clis/args/registry.d.mts +3 -2
  86. package/dist/clis/args/registry.mjs +1 -1
  87. package/dist/clis/args/service-CHjY5epu.d.mts +27 -0
  88. package/dist/clis/args/service-CHjY5epu.d.mts.map +1 -0
  89. package/dist/clis/args/{service-CHOOr0Gg.mjs → service-Cpjlyeu5.mjs} +2 -2
  90. package/dist/clis/args/{service-CHOOr0Gg.mjs.map → service-Cpjlyeu5.mjs.map} +1 -1
  91. package/dist/clis/args/service.d.mts +3 -2
  92. package/dist/clis/args/service.mjs +1 -1
  93. package/dist/clis/args/{switchboard-Dsp7nosi.mjs → switchboard-CCaAtU56.mjs} +2 -2
  94. package/dist/clis/args/{switchboard-Dsp7nosi.mjs.map → switchboard-CCaAtU56.mjs.map} +1 -1
  95. package/dist/clis/args/switchboard-RrNb1fUH.d.mts +70 -0
  96. package/dist/clis/args/switchboard-RrNb1fUH.d.mts.map +1 -0
  97. package/dist/clis/args/switchboard.d.mts +3 -2
  98. package/dist/clis/args/switchboard.mjs +1 -1
  99. package/dist/clis/args/{uninstall-CTwTX0u_.mjs → uninstall-3U0B8g5c.mjs} +2 -2
  100. package/dist/clis/args/{uninstall-CTwTX0u_.mjs.map → uninstall-3U0B8g5c.mjs.map} +1 -1
  101. package/dist/clis/args/uninstall-CDx7lwxn.d.mts +28 -0
  102. package/dist/clis/args/uninstall-CDx7lwxn.d.mts.map +1 -0
  103. package/dist/clis/args/uninstall.d.mts +3 -2
  104. package/dist/clis/args/uninstall.mjs +1 -1
  105. package/dist/clis/args/unpublish-CEDsk6uv.d.mts +22 -0
  106. package/dist/clis/args/unpublish-CEDsk6uv.d.mts.map +1 -0
  107. package/dist/clis/args/{unpublish-BPMkGEg5.mjs → unpublish-s9zUh6Gw.mjs} +2 -2
  108. package/dist/clis/args/{unpublish-BPMkGEg5.mjs.map → unpublish-s9zUh6Gw.mjs.map} +1 -1
  109. package/dist/clis/args/unpublish.d.mts +3 -2
  110. package/dist/clis/args/unpublish.mjs +1 -1
  111. package/dist/clis/args/{vetra-b4KUu1Ax.mjs → vetra-BUNlAAPp.mjs} +2 -2
  112. package/dist/clis/args/{vetra-b4KUu1Ax.mjs.map → vetra-BUNlAAPp.mjs.map} +1 -1
  113. package/dist/clis/args/vetra-DkDaWFPi.d.mts +111 -0
  114. package/dist/clis/args/vetra-DkDaWFPi.d.mts.map +1 -0
  115. package/dist/clis/args/vetra-ports.test.d.mts +2 -1
  116. package/dist/clis/args/vetra-ports.test.mjs +7366 -5728
  117. package/dist/clis/args/vetra-ports.test.mjs.map +1 -1
  118. package/dist/clis/args/vetra.d.mts +3 -2
  119. package/dist/clis/args/vetra.mjs +1 -1
  120. package/dist/clis/build-config-HbYUSZS1.mjs +252 -0
  121. package/dist/clis/build-config-HbYUSZS1.mjs.map +1 -0
  122. package/dist/clis/build-config.d.mts +52 -10616
  123. package/dist/clis/build-config.d.mts.map +1 -1
  124. package/dist/clis/build-config.mjs +2 -88
  125. package/dist/clis/build-pieces.d.mts +160 -0
  126. package/dist/clis/build-pieces.d.mts.map +1 -0
  127. package/dist/clis/build-pieces.mjs +549 -0
  128. package/dist/clis/build-pieces.mjs.map +1 -0
  129. package/dist/clis/command-names.d.mts +2 -2
  130. package/dist/clis/command-names.d.mts.map +1 -1
  131. package/dist/clis/command-names.mjs.map +1 -1
  132. package/dist/clis/constants.d.mts +3 -462
  133. package/dist/clis/constants.mjs +27 -11
  134. package/dist/clis/constants.mjs.map +1 -1
  135. package/dist/clis/index-6CZwrmQi.d.mts +11154 -0
  136. package/dist/clis/index-6CZwrmQi.d.mts.map +1 -0
  137. package/dist/clis/index.d.mts +1393 -1225
  138. package/dist/clis/index.d.mts.map +1 -1
  139. package/dist/clis/index.mjs +265 -75
  140. package/dist/clis/index.mjs.map +1 -1
  141. package/dist/clis/project-env.d.mts +4 -4
  142. package/dist/clis/project-env.d.mts.map +1 -1
  143. package/dist/clis/project-env.mjs.map +1 -1
  144. package/dist/clis/project-ports.d.mts +5 -5
  145. package/dist/clis/project-ports.d.mts.map +1 -1
  146. package/dist/clis/project-ports.mjs +1 -1
  147. package/dist/clis/project-ports.mjs.map +1 -1
  148. package/dist/clis/services/telemetry.d.mts +7 -7
  149. package/dist/clis/services/telemetry.d.mts.map +1 -1
  150. package/dist/clis/services/telemetry.mjs.map +1 -1
  151. package/dist/clis/types-DB_YPc3t.d.mts +543 -0
  152. package/dist/clis/types-DB_YPc3t.d.mts.map +1 -0
  153. package/dist/clis/utils.d.mts +4 -4
  154. package/dist/clis/utils.d.mts.map +1 -1
  155. package/dist/clis/utils.mjs.map +1 -1
  156. package/dist/{config-loader-B845Hidf.js → config-loader-DpeoExZO.js} +35 -9
  157. package/dist/config-loader-DpeoExZO.js.map +1 -0
  158. package/dist/connect/config-loader.d.ts +15 -8
  159. package/dist/connect/config-loader.d.ts.map +1 -1
  160. package/dist/connect/config-loader.js +2 -2
  161. package/dist/connect/index.d.ts +203 -57
  162. package/dist/connect/index.d.ts.map +1 -1
  163. package/dist/connect/index.js +318 -31
  164. package/dist/connect/index.js.map +1 -1
  165. package/dist/connect/json-adapter.d.ts +3 -4
  166. package/dist/connect/json-adapter.d.ts.map +1 -1
  167. package/dist/connect/json-adapter.js.map +1 -1
  168. package/dist/constants-C6ket9Bn.d.ts +9 -0
  169. package/dist/constants-C6ket9Bn.d.ts.map +1 -0
  170. package/dist/constants.d.ts +3 -2
  171. package/dist/constants.js +11 -5
  172. package/dist/constants.js.map +1 -1
  173. package/dist/document-drive/index.d.ts +131 -105
  174. package/dist/document-drive/index.d.ts.map +1 -1
  175. package/dist/document-drive/index.js +116 -54
  176. package/dist/document-drive/index.js.map +1 -1
  177. package/dist/document-model/errors.d.ts +3 -0
  178. package/dist/document-model/errors.js +152 -0
  179. package/dist/document-model/errors.js.map +1 -0
  180. package/dist/document-model/index.d.ts +5 -4
  181. package/dist/document-model/index.js +296 -390
  182. package/dist/document-model/index.js.map +1 -1
  183. package/dist/document-model/mock.d.ts +2 -3
  184. package/dist/document-model/mock.d.ts.map +1 -1
  185. package/dist/document-model/mock.js +2 -1
  186. package/dist/document-model/mock.js.map +1 -1
  187. package/dist/document-model/utils.d.ts +3 -2
  188. package/dist/document-model/utils.js +1 -1
  189. package/dist/document-model/version.d.ts +3 -0
  190. package/dist/document-model/version.js +8 -0
  191. package/dist/document-model/version.js.map +1 -0
  192. package/dist/index-C3fD6cad.d.ts +36 -0
  193. package/dist/index-C3fD6cad.d.ts.map +1 -0
  194. package/dist/index.d.ts +7 -6
  195. package/dist/index.js.map +1 -1
  196. package/dist/processors/index.d.ts +3 -2
  197. package/dist/processors/index.js +63 -4
  198. package/dist/processors/index.js.map +1 -1
  199. package/dist/purge-v06m_oGz.js +381 -0
  200. package/dist/purge-v06m_oGz.js.map +1 -0
  201. package/dist/registry/index.d.ts +15 -15
  202. package/dist/registry/index.d.ts.map +1 -1
  203. package/dist/registry/index.js +24 -6
  204. package/dist/registry/index.js.map +1 -1
  205. package/dist/registry/manifest-slim.d.ts +4 -3
  206. package/dist/registry/manifest-slim.d.ts.map +1 -1
  207. package/dist/registry/manifest-slim.js +21 -0
  208. package/dist/registry/manifest-slim.js.map +1 -1
  209. package/dist/registry/updates.d.ts +3 -3
  210. package/dist/registry/updates.d.ts.map +1 -1
  211. package/dist/registry/updates.js.map +1 -1
  212. package/dist/registry/urls.d.ts +2 -2
  213. package/dist/registry/urls.d.ts.map +1 -1
  214. package/dist/registry/urls.js.map +1 -1
  215. package/dist/{types-C1in4fl3.d.ts → types-Bsp8VL2y.d.ts} +2 -2
  216. package/dist/types-Bsp8VL2y.d.ts.map +1 -0
  217. package/dist/{types-YqLqb0Zb.d.ts → types-CywupGpk.d.ts} +39 -43
  218. package/dist/types-CywupGpk.d.ts.map +1 -0
  219. package/dist/{types-CpnWmiFY.d.ts → types-DDH6v2BE.d.ts} +2010 -821
  220. package/dist/types-DDH6v2BE.d.ts.map +1 -0
  221. package/dist/{utils-DP122OSS.d.ts → utils-BrKxCmKx.d.ts} +2 -2
  222. package/dist/utils-BrKxCmKx.d.ts.map +1 -0
  223. package/dist/{utils-aaTmfxFW.js → utils-CSF716ux.js} +10 -3
  224. package/dist/utils-CSF716ux.js.map +1 -0
  225. package/dist/version-BxLITo9P.d.ts +6 -0
  226. package/dist/version-BxLITo9P.d.ts.map +1 -0
  227. package/package.json +11 -6
  228. package/dist/clis/args/access-token--9H57y8J.d.mts +0 -18
  229. package/dist/clis/args/access-token--9H57y8J.d.mts.map +0 -1
  230. package/dist/clis/args/common-CcYbXrBx.mjs.map +0 -1
  231. package/dist/clis/args/common-Y8yh4ax1.d.mts +0 -183
  232. package/dist/clis/args/common-Y8yh4ax1.d.mts.map +0 -1
  233. package/dist/clis/args/connect-BUwHSfdh.d.mts +0 -443
  234. package/dist/clis/args/connect-BUwHSfdh.d.mts.map +0 -1
  235. package/dist/clis/args/connect-BVVvCmL9.mjs.map +0 -1
  236. package/dist/clis/args/generate-CA916Fvj.mjs.map +0 -1
  237. package/dist/clis/args/generate-DnV-bfXt.d.mts +0 -87
  238. package/dist/clis/args/generate-DnV-bfXt.d.mts.map +0 -1
  239. package/dist/clis/args/help-CjAsudUn.d.mts +0 -193
  240. package/dist/clis/args/help-CjAsudUn.d.mts.map +0 -1
  241. package/dist/clis/args/init-CUXyfquF.d.mts +0 -55
  242. package/dist/clis/args/init-CUXyfquF.d.mts.map +0 -1
  243. package/dist/clis/args/inspect-DtZeoA5c.d.mts +0 -15
  244. package/dist/clis/args/inspect-DtZeoA5c.d.mts.map +0 -1
  245. package/dist/clis/args/install-CkP8zcHb.d.mts +0 -40
  246. package/dist/clis/args/install-CkP8zcHb.d.mts.map +0 -1
  247. package/dist/clis/args/list-BGf8s_gj.d.mts +0 -12
  248. package/dist/clis/args/list-BGf8s_gj.d.mts.map +0 -1
  249. package/dist/clis/args/login-DNsHwvqk.d.mts +0 -27
  250. package/dist/clis/args/login-DNsHwvqk.d.mts.map +0 -1
  251. package/dist/clis/args/magic-string.es-h_0HDQBQ.mjs +0 -1013
  252. package/dist/clis/args/magic-string.es-h_0HDQBQ.mjs.map +0 -1
  253. package/dist/clis/args/migrate-sixkWhxm.d.mts +0 -21
  254. package/dist/clis/args/migrate-sixkWhxm.d.mts.map +0 -1
  255. package/dist/clis/args/publish-Dqe5DUst.d.mts +0 -18
  256. package/dist/clis/args/publish-Dqe5DUst.d.mts.map +0 -1
  257. package/dist/clis/args/registry-C_RfTsKB.d.mts +0 -19
  258. package/dist/clis/args/registry-C_RfTsKB.d.mts.map +0 -1
  259. package/dist/clis/args/service-DhIkf8-O.d.mts +0 -22
  260. package/dist/clis/args/service-DhIkf8-O.d.mts.map +0 -1
  261. package/dist/clis/args/switchboard-BlPaq2at.d.mts +0 -72
  262. package/dist/clis/args/switchboard-BlPaq2at.d.mts.map +0 -1
  263. package/dist/clis/args/uninstall-BpA3YYbw.d.mts +0 -31
  264. package/dist/clis/args/uninstall-BpA3YYbw.d.mts.map +0 -1
  265. package/dist/clis/args/unpublish-CvwaIimG.d.mts +0 -24
  266. package/dist/clis/args/unpublish-CvwaIimG.d.mts.map +0 -1
  267. package/dist/clis/args/vetra-DUhIB7Zk.d.mts +0 -113
  268. package/dist/clis/args/vetra-DUhIB7Zk.d.mts.map +0 -1
  269. package/dist/clis/build-config.mjs.map +0 -1
  270. package/dist/clis/constants.d.mts.map +0 -1
  271. package/dist/config-loader-B845Hidf.js.map +0 -1
  272. package/dist/constants-BP_gjn8g.d.ts +0 -8
  273. package/dist/constants-BP_gjn8g.d.ts.map +0 -1
  274. package/dist/index-C_iVZe7f.d.ts +0 -7
  275. package/dist/index-C_iVZe7f.d.ts.map +0 -1
  276. package/dist/index-DyYIJtVy.d.ts +0 -836
  277. package/dist/index-DyYIJtVy.d.ts.map +0 -1
  278. package/dist/types-C1in4fl3.d.ts.map +0 -1
  279. package/dist/types-CpnWmiFY.d.ts.map +0 -1
  280. package/dist/types-YqLqb0Zb.d.ts.map +0 -1
  281. package/dist/utils-DP122OSS.d.ts.map +0 -1
  282. package/dist/utils-aaTmfxFW.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["createState"],"sources":["../../document-drive/constants.ts","../../document-drive/gen/schema/zod.ts","../../document-drive/gen/node/creators.ts","../../document-drive/gen/drive/creators.ts","../../document-drive/gen/creators.ts","../../document-drive/gen/document-model.ts","../../document-drive/gen/document-type.ts","../../document-drive/gen/document-schema.ts","../../document-drive/gen/ph-factories.ts","../../document-drive/src/reducers/drive.ts","../../document-drive/src/utils.ts","../../document-drive/src/reducers/node.ts","../../document-drive/gen/reducer.ts","../../document-drive/gen/utils.ts","../../document-drive/module.ts"],"sourcesContent":["export const driveDocumentFileExtension = \"phdd\";\n","import type {\n AddFileInput,\n AddFolderInput,\n AddListenerInput,\n AddTriggerInput,\n CopyNodeInput,\n DeleteNodeInput,\n DocumentDriveGlobalState,\n DocumentDriveLocalState,\n FileNode,\n FolderNode,\n Listener,\n ListenerCallInfo,\n ListenerCallInfoInput,\n ListenerFilter,\n ListenerFilterInput,\n ListenerInput,\n MoveNodeInput,\n PullResponderTriggerData,\n PullResponderTriggerDataInput,\n RemoveListenerInput,\n RemoveTriggerInput,\n SetAvailableOfflineInput,\n SetDriveIconInput,\n SetDriveNameInput,\n SetSharingTypeInput,\n Trigger,\n TriggerInput,\n UpdateFileInput,\n UpdateNodeInput,\n} from \"./types.js\";\nimport { z } from \"zod\";\n\ntype Properties<T> = Required<{\n [K in keyof T]: z.ZodType<T[K], T[K]>;\n}>;\n\ntype definedNonNullAny = {};\n\nexport const isDefinedNonNullAny = (v: any): v is definedNonNullAny =>\n v !== undefined && v !== null;\n\nexport const definedNonNullAnySchema = z\n .any()\n .refine((v) => isDefinedNonNullAny(v));\n\nexport const TransmitterTypeSchema = z.enum([\n \"Internal\",\n \"MatrixConnect\",\n \"PullResponder\",\n \"RESTWebhook\",\n \"SecureConnect\",\n \"SwitchboardPush\",\n]);\n\nexport const TriggerTypeSchema = z.enum([\"PullResponder\"]);\n\nexport function AddFileInputSchema(): z.ZodObject<Properties<AddFileInput>> {\n return z.object({\n documentType: z.string(),\n id: z.string(),\n name: z.string(),\n parentFolder: z.string().nullish(),\n });\n}\n\nexport function AddFolderInputSchema(): z.ZodObject<\n Properties<AddFolderInput>\n> {\n return z.object({\n id: z.string(),\n name: z.string(),\n parentFolder: z.string().nullish(),\n });\n}\n\nexport function AddListenerInputSchema(): z.ZodObject<\n Properties<AddListenerInput>\n> {\n return z.object({\n listener: ListenerInputSchema(),\n });\n}\n\nexport function AddTriggerInputSchema(): z.ZodObject<\n Properties<AddTriggerInput>\n> {\n return z.object({\n trigger: TriggerInputSchema(),\n });\n}\n\nexport function CopyNodeInputSchema(): z.ZodObject<Properties<CopyNodeInput>> {\n return z.object({\n srcId: z.string(),\n targetId: z.string(),\n targetName: z.string().nullish(),\n targetParentFolder: z.string().nullish(),\n });\n}\n\nexport function DeleteNodeInputSchema(): z.ZodObject<\n Properties<DeleteNodeInput>\n> {\n return z.object({\n id: z.string(),\n });\n}\n\nexport function DocumentDriveLocalStateSchema(): z.ZodObject<\n Properties<DocumentDriveLocalState>\n> {\n return z.object({\n __typename: z.literal(\"DocumentDriveLocalState\").optional(),\n availableOffline: z.boolean(),\n listeners: z.array(ListenerSchema()),\n sharingType: z.string().nullable(),\n triggers: z.array(TriggerSchema()),\n });\n}\n\nexport function DocumentDriveStateSchema(): z.ZodObject<\n Properties<DocumentDriveGlobalState>\n> {\n return z.object({\n __typename: z.literal(\"DocumentDriveState\").optional(),\n icon: z.string().nullable(),\n name: z.string(),\n nodes: z.array(NodeSchema()),\n });\n}\n\nexport function FileNodeSchema(): z.ZodObject<Properties<FileNode>> {\n return z.object({\n __typename: z.literal(\"FileNode\").optional(),\n documentType: z.string(),\n id: z.string(),\n kind: z.string(),\n name: z.string(),\n parentFolder: z.string().nullable(),\n });\n}\n\nexport function FolderNodeSchema(): z.ZodObject<Properties<FolderNode>> {\n return z.object({\n __typename: z.literal(\"FolderNode\").optional(),\n id: z.string(),\n kind: z.string(),\n name: z.string(),\n parentFolder: z.string().nullable(),\n });\n}\n\nexport function ListenerSchema(): z.ZodObject<Properties<Listener>> {\n return z.object({\n __typename: z.literal(\"Listener\").optional(),\n block: z.boolean(),\n callInfo: ListenerCallInfoSchema().nullable(),\n filter: ListenerFilterSchema(),\n label: z.string().nullable(),\n listenerId: z.string(),\n system: z.boolean(),\n });\n}\n\nexport function ListenerInputSchema(): z.ZodObject<Properties<ListenerInput>> {\n return z.object({\n block: z.boolean(),\n callInfo: ListenerCallInfoInputSchema().nullish(),\n filter: ListenerFilterInputSchema(),\n label: z.string().nullish(),\n listenerId: z.string(),\n system: z.boolean(),\n });\n}\n\nexport function ListenerCallInfoSchema(): z.ZodObject<\n Properties<ListenerCallInfo>\n> {\n return z.object({\n __typename: z.literal(\"ListenerCallInfo\").optional(),\n data: z.string().nullable(),\n name: z.string().nullable(),\n transmitterType: TransmitterTypeSchema.nullable(),\n });\n}\n\nexport function ListenerCallInfoInputSchema(): z.ZodObject<\n Properties<ListenerCallInfoInput>\n> {\n return z.object({\n data: z.string().nullish(),\n name: z.string().nullish(),\n transmitterType: TransmitterTypeSchema.nullish(),\n });\n}\n\nexport function ListenerFilterSchema(): z.ZodObject<\n Properties<ListenerFilter>\n> {\n return z.object({\n __typename: z.literal(\"ListenerFilter\").optional(),\n branch: z.array(z.string()).nullable(),\n documentId: z.array(z.string()).nullable(),\n documentType: z.array(z.string()),\n scope: z.array(z.string()).nullable(),\n });\n}\n\nexport function ListenerFilterInputSchema(): z.ZodObject<\n Properties<ListenerFilterInput>\n> {\n return z.object({\n branch: z.array(z.string()).nullish(),\n documentId: z.array(z.string()).nullish(),\n documentType: z.array(z.string()).nullish(),\n scope: z.array(z.string()).nullish(),\n });\n}\n\nexport function MoveNodeInputSchema(): z.ZodObject<Properties<MoveNodeInput>> {\n return z.object({\n srcFolder: z.string(),\n targetParentFolder: z.string().nullish(),\n });\n}\n\nexport function NodeSchema() {\n return z.union([FileNodeSchema(), FolderNodeSchema()]);\n}\n\nexport function PullResponderTriggerDataSchema(): z.ZodObject<\n Properties<PullResponderTriggerData>\n> {\n return z.object({\n __typename: z.literal(\"PullResponderTriggerData\").optional(),\n interval: z.string(),\n listenerId: z.string(),\n url: z.string(),\n });\n}\n\nexport function PullResponderTriggerDataInputSchema(): z.ZodObject<\n Properties<PullResponderTriggerDataInput>\n> {\n return z.object({\n interval: z.string(),\n listenerId: z.string(),\n url: z.string(),\n });\n}\n\nexport function RemoveListenerInputSchema(): z.ZodObject<\n Properties<RemoveListenerInput>\n> {\n return z.object({\n listenerId: z.string(),\n });\n}\n\nexport function RemoveTriggerInputSchema(): z.ZodObject<\n Properties<RemoveTriggerInput>\n> {\n return z.object({\n triggerId: z.string(),\n });\n}\n\nexport function SetAvailableOfflineInputSchema(): z.ZodObject<\n Properties<SetAvailableOfflineInput>\n> {\n return z.object({\n availableOffline: z.boolean(),\n });\n}\n\nexport function SetDriveIconInputSchema(): z.ZodObject<\n Properties<SetDriveIconInput>\n> {\n return z.object({\n icon: z.string().nullish(),\n });\n}\n\nexport function SetDriveNameInputSchema(): z.ZodObject<\n Properties<SetDriveNameInput>\n> {\n return z.object({\n name: z.string(),\n });\n}\n\nexport function SetSharingTypeInputSchema(): z.ZodObject<\n Properties<SetSharingTypeInput>\n> {\n return z.object({\n type: z.string(),\n });\n}\n\nexport function TriggerSchema(): z.ZodObject<Properties<Trigger>> {\n return z.object({\n __typename: z.literal(\"Trigger\").optional(),\n data: TriggerDataSchema().nullable(),\n id: z.string(),\n type: TriggerTypeSchema,\n });\n}\n\nexport function TriggerInputSchema(): z.ZodObject<Properties<TriggerInput>> {\n return z.object({\n data: PullResponderTriggerDataInputSchema().nullish(),\n id: z.string(),\n type: TriggerTypeSchema,\n });\n}\n\nexport function TriggerDataSchema() {\n return PullResponderTriggerDataSchema();\n}\n\nexport function UpdateFileInputSchema(): z.ZodObject<\n Properties<UpdateFileInput>\n> {\n return z.object({\n documentType: z.string().nullish(),\n id: z.string(),\n name: z.string().nullish(),\n parentFolder: z.string().nullish(),\n });\n}\n\nexport function UpdateNodeInputSchema(): z.ZodObject<\n Properties<UpdateNodeInput>\n> {\n return z.object({\n id: z.string(),\n name: z.string().nullish(),\n parentFolder: z.string().nullish(),\n });\n}\n","import type {\n AddFileInput,\n AddFolderInput,\n CopyNodeInput,\n DeleteNodeInput,\n MoveNodeInput,\n UpdateFileInput,\n UpdateNodeInput,\n} from \"../schema/types.js\";\nimport type { LegacyAddFileAction, LegacyAddFileInput } from \"../types.js\";\nimport type {\n AddFileAction,\n AddFolderAction,\n CopyNodeAction,\n DeleteNodeAction,\n MoveNodeAction,\n UpdateFileAction,\n UpdateNodeAction,\n} from \"./actions.js\";\nimport { createAction } from \"document-model\";\nimport {\n AddFileInputSchema,\n AddFolderInputSchema,\n CopyNodeInputSchema,\n DeleteNodeInputSchema,\n MoveNodeInputSchema,\n UpdateFileInputSchema,\n UpdateNodeInputSchema,\n} from \"../schema/zod.js\";\n\n/**\n * @deprecated Use addFile with {@link AddFileInput} instead. This overload will be removed in the future.\n */\nexport function addFile(input: LegacyAddFileInput): LegacyAddFileAction;\nexport function addFile(input: AddFileInput): AddFileAction;\nexport function addFile(\n input: LegacyAddFileInput | AddFileInput,\n): typeof input extends LegacyAddFileInput\n ? LegacyAddFileAction\n : AddFileAction {\n if (input && typeof input === \"object\" && \"synchronizationUnits\" in input) {\n // Legacy overload\n return createAction<AddFileAction>(\n \"ADD_FILE\",\n { ...input },\n undefined,\n undefined,\n \"global\",\n );\n }\n // Standard overload\n return createAction<AddFileAction>(\n \"ADD_FILE\",\n { ...input },\n undefined,\n AddFileInputSchema,\n \"global\",\n );\n}\n\nexport const addFolder = (input: AddFolderInput) =>\n createAction<AddFolderAction>(\n \"ADD_FOLDER\",\n { ...input },\n undefined,\n AddFolderInputSchema,\n \"global\",\n );\n\nexport const deleteNode = (input: DeleteNodeInput) =>\n createAction<DeleteNodeAction>(\n \"DELETE_NODE\",\n { ...input },\n undefined,\n DeleteNodeInputSchema,\n \"global\",\n );\n\nexport const updateFile = (input: UpdateFileInput) =>\n createAction<UpdateFileAction>(\n \"UPDATE_FILE\",\n { ...input },\n undefined,\n UpdateFileInputSchema,\n \"global\",\n );\n\nexport const updateNode = (input: UpdateNodeInput) =>\n createAction<UpdateNodeAction>(\n \"UPDATE_NODE\",\n { ...input },\n undefined,\n UpdateNodeInputSchema,\n \"global\",\n );\n\nexport const copyNode = (input: CopyNodeInput) =>\n createAction<CopyNodeAction>(\n \"COPY_NODE\",\n { ...input },\n undefined,\n CopyNodeInputSchema,\n \"global\",\n );\n\nexport const moveNode = (input: MoveNodeInput) =>\n createAction<MoveNodeAction>(\n \"MOVE_NODE\",\n { ...input },\n undefined,\n MoveNodeInputSchema,\n \"global\",\n );\n","import type {\n AddListenerInput,\n AddTriggerInput,\n RemoveListenerInput,\n RemoveTriggerInput,\n SetAvailableOfflineInput,\n SetDriveIconInput,\n SetDriveNameInput,\n SetSharingTypeInput,\n} from \"../schema/types.js\";\nimport type {\n AddListenerAction,\n AddTriggerAction,\n RemoveListenerAction,\n RemoveTriggerAction,\n SetAvailableOfflineAction,\n SetDriveIconAction,\n SetDriveNameAction,\n SetSharingTypeAction,\n} from \"./actions.js\";\nimport { createAction } from \"document-model\";\nimport {\n AddListenerInputSchema,\n AddTriggerInputSchema,\n RemoveListenerInputSchema,\n RemoveTriggerInputSchema,\n SetAvailableOfflineInputSchema,\n SetDriveIconInputSchema,\n SetDriveNameInputSchema,\n SetSharingTypeInputSchema,\n} from \"../schema/zod.js\";\n\nexport const setDriveName = (input: SetDriveNameInput) =>\n createAction<SetDriveNameAction>(\n \"SET_DRIVE_NAME\",\n { ...input },\n undefined,\n SetDriveNameInputSchema,\n \"global\",\n );\n\nexport const setDriveIcon = (input: SetDriveIconInput) =>\n createAction<SetDriveIconAction>(\n \"SET_DRIVE_ICON\",\n { ...input },\n undefined,\n SetDriveIconInputSchema,\n \"global\",\n );\n\nexport const setSharingType = (input: SetSharingTypeInput) =>\n createAction<SetSharingTypeAction>(\n \"SET_SHARING_TYPE\",\n { ...input },\n undefined,\n SetSharingTypeInputSchema,\n \"local\",\n );\n\nexport const setAvailableOffline = (input: SetAvailableOfflineInput) =>\n createAction<SetAvailableOfflineAction>(\n \"SET_AVAILABLE_OFFLINE\",\n { ...input },\n undefined,\n SetAvailableOfflineInputSchema,\n \"local\",\n );\n\nexport const addListener = (input: AddListenerInput) =>\n createAction<AddListenerAction>(\n \"ADD_LISTENER\",\n { ...input },\n undefined,\n AddListenerInputSchema,\n \"local\",\n );\n\nexport const removeListener = (input: RemoveListenerInput) =>\n createAction<RemoveListenerAction>(\n \"REMOVE_LISTENER\",\n { ...input },\n undefined,\n RemoveListenerInputSchema,\n \"local\",\n );\n\nexport const addTrigger = (input: AddTriggerInput) =>\n createAction<AddTriggerAction>(\n \"ADD_TRIGGER\",\n { ...input },\n undefined,\n AddTriggerInputSchema,\n \"local\",\n );\n\nexport const removeTrigger = (input: RemoveTriggerInput) =>\n createAction<RemoveTriggerAction>(\n \"REMOVE_TRIGGER\",\n { ...input },\n undefined,\n RemoveTriggerInputSchema,\n \"local\",\n );\n","export * from \"./node/creators.js\";\nexport * from \"./drive/creators.js\";\n","import type { DocumentModelGlobalState } from \"../../document-model/types.js\";\n\nexport const driveDocumentModel: DocumentModelGlobalState = {\n id: \"powerhouse/document-drive\",\n name: \"DocumentDrive\",\n extension: \"phdd\",\n description: \"\",\n author: {\n name: \"Powerhouse Inc\",\n website: \"https://www.powerhouse.inc/\",\n },\n specifications: [\n {\n version: 1,\n changeLog: [],\n state: {\n global: {\n schema:\n \"type FolderNode {\\n id: String!\\n name: String!\\n kind: String!\\n parentFolder: String\\n}\\n\\ntype FileNode {\\n id: String!\\n name: String!\\n kind: String!\\n documentType: String!\\n parentFolder: String\\n}\\n\\nunion Node = FolderNode | FileNode\\n\\ntype DocumentDriveState {\\n name: String!\\n nodes: [Node!]!\\n icon: String\\n}\",\n initialValue: '\"{\\\\\"name\\\\\":\\\\\"\\\\\",\\\\\"nodes\\\\\":[],\\\\\"icon\\\\\":null}\"',\n examples: [],\n },\n local: {\n schema:\n \"type ListenerFilter {\\n documentType: [String!]!\\n documentId: [ID!]\\n scope: [String!]\\n branch: [String!]\\n}\\n\\nenum TransmitterType {\\n Internal,\\n SwitchboardPush,\\n PullResponder,\\n SecureConnect, \\n MatrixConnect,\\n RESTWebhook\\n}\\n\\ntype ListenerCallInfo {\\n transmitterType: TransmitterType\\n name: String\\n data: String\\n}\\n\\ntype Listener {\\n listenerId: ID!\\n label: String\\n block: Boolean!\\n system: Boolean!\\n filter: ListenerFilter!\\n callInfo: ListenerCallInfo\\n}\\n\\nenum TriggerType {\\n PullResponder\\n}\\n\\ntype PullResponderTriggerData {\\n listenerId: ID!\\n url: String!\\n interval: String!\\n}\\n\\nunion TriggerData = PullResponderTriggerData\\n\\ntype Trigger {\\n id: ID!\\n type: TriggerType!\\n data: TriggerData\\n}\\n\\ntype DocumentDriveLocalState{\\n sharingType: String\\n listeners: [Listener!]!\\n triggers: [Trigger!]!\\n availableOffline: Boolean!\\n}\",\n initialValue:\n '\"{ \\\\\"listeners\\\\\": [], \\\\\"triggers\\\\\": [], \\\\\"sharingType\\\\\": \\\\\"private\\\\\", \\\\\"availableOffline\\\\\": false}\"',\n examples: [],\n },\n },\n modules: [\n {\n id: \"GRzuvv78tBvmB6ciitokLfonNHA=\",\n name: \"Node\",\n description: \"\",\n operations: [\n {\n id: \"7xiTdxonc9yEASR8sfV/KnbSV10=\",\n name: \"ADD_FILE\",\n description: \"\",\n schema:\n \"input AddFileInput {\\n id: ID!\\n name: String!\\n documentType: String!\\n parentFolder: ID\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"global\",\n },\n {\n id: \"4lzNMMKKdIAtEU6i12xLgi9hp+U=\",\n name: \"ADD_FOLDER\",\n description: \"\",\n schema:\n \"input AddFolderInput {\\n id: ID!\\n name: String!\\n parentFolder: ID\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"global\",\n },\n {\n id: \"53jH2/3TWTTcgCJiv2C+BmuC6i0=\",\n name: \"DELETE_NODE\",\n description: \"\",\n schema: \"input DeleteNodeInput {\\n id: ID!\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"global\",\n },\n {\n id: \"pNn+Y1/HVq/GNMk7t0u3g3gtMLE=\",\n name: \"UPDATE_FILE\",\n description: \"\",\n schema:\n \"input UpdateFileInput {\\n id: ID!\\n parentFolder: ID\\n name: String\\n documentType: String\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"global\",\n },\n {\n id: \"P0x1M8Mnt+Q/+9nggkwgVbfybsc=\",\n name: \"UPDATE_NODE\",\n description: \"\",\n schema:\n \"input UpdateNodeInput {\\n id: ID!\\n parentFolder: ID\\n name: String\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"global\",\n },\n {\n id: \"vnQ7OB5b3wGLgjhbgJqAIpA+JLE=\",\n name: \"COPY_NODE\",\n description: \"\",\n schema:\n \"input CopyNodeInput {\\n srcId: ID!\\n targetId: ID!\\n targetName: String\\n targetParentFolder: ID\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"global\",\n },\n {\n id: \"VNyiD/sNGzk6k9A1Qe7s8dmrJxA=\",\n name: \"MOVE_NODE\",\n description: \"\",\n schema:\n \"input MoveNodeInput {\\n srcFolder: ID!\\n targetParentFolder: ID\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"global\",\n },\n ],\n },\n {\n id: \"0dHwHlxOM9x0vMZ+gLnKxf2qTEo=\",\n name: \"Drive\",\n description: \"\",\n operations: [\n {\n id: \"qGCiPGpTt/cyz3HzyrBn92z1dsU=\",\n name: \"SET_DRIVE_NAME\",\n description: \"\",\n schema: \"input SetDriveNameInput {\\n name: String!\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"global\",\n },\n {\n id: \"qGCiPGpTt/cyz3HzyrBn92z30dsU=\",\n name: \"SET_DRIVE_ICON\",\n description: \"\",\n schema: \"input SetDriveIconInput {\\n icon: String\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"global\",\n },\n {\n id: \"qGCiPGpTt/cyz3HzyrBn92z2dsU=\",\n name: \"SET_SHARING_TYPE\",\n description: \"\",\n schema: \"input SetSharingTypeInput {\\n type: String!\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"local\",\n },\n {\n id: \"qGCiPGpTt/cyz3HzyrBn92z3dsU=\",\n name: \"SET_AVAILABLE_OFFLINE\",\n description: \"\",\n schema:\n \"input SetAvailableOfflineInput {\\n availableOffline: Boolean!\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"local\",\n },\n {\n id: \"qGCiPGpTt/cyz3HzyrBn92z9dsU=\",\n name: \"ADD_LISTENER\",\n description: \"\",\n schema:\n \"input ListenerFilterInput {\\n documentType: [String!]\\n documentId: [ID!]\\n scope: [String!]\\n branch: [String!]\\n}\\n\\ninput ListenerCallInfoInput {\\n transmitterType: TransmitterType\\n name: String\\n data: String\\n}\\n\\ninput ListenerInput {\\n listenerId: ID!\\n label: String\\n block: Boolean!\\n system: Boolean!\\n filter: ListenerFilterInput!\\n callInfo: ListenerCallInfoInput\\n}\\n\\ninput AddListenerInput {\\n listener: ListenerInput!\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"local\",\n },\n {\n id: \"qGCiPGpTt/cyz3HzyrBn92z10dsU=\",\n name: \"REMOVE_LISTENER\",\n description: \"\",\n schema: \"input RemoveListenerInput {\\n listenerId: String!\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"local\",\n },\n {\n id: \"qGCiPGpTt/cyz3HzyrBn92z20dsU=\",\n name: \"ADD_TRIGGER\",\n description: \"\",\n schema:\n \"input PullResponderTriggerDataInput {\\n listenerId: ID!\\n url: String!\\n interval: String!\\n}\\n\\ninput TriggerInput {\\n id: ID!\\n type: TriggerType!\\n data: PullResponderTriggerDataInput\\n}\\n\\ninput AddTriggerInput {\\n trigger: TriggerInput!\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"local\",\n },\n {\n id: \"qGCiPGpTt/cyz3HzyrBn92z30dsU=\",\n name: \"REMOVE_TRIGGER\",\n description: \"\",\n schema: \"input RemoveTriggerInput {\\n triggerId: String!\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"local\",\n },\n ],\n },\n ],\n },\n ],\n};\n","export const driveDocumentType = \"powerhouse/document-drive\";\n","import { z } from \"zod\";\nimport {\n BaseDocumentHeaderSchema,\n BaseDocumentStateSchema,\n} from \"../../document-model/document-schema.js\";\nimport { driveDocumentType } from \"./document-type.js\";\nimport {\n DocumentDriveLocalStateSchema,\n DocumentDriveStateSchema,\n} from \"./schema/zod.js\";\nimport type { DocumentDriveDocument, DocumentDrivePHState } from \"./types.js\";\n\n/** Schema for validating the header object of a Drive document */\nexport const DriveDocumentHeaderSchema = BaseDocumentHeaderSchema.extend({\n documentType: z.literal(driveDocumentType),\n});\n\n/** Schema for validating the state object of a Drive document */\nexport const DrivePHStateSchema = BaseDocumentStateSchema.extend({\n global: DocumentDriveStateSchema(),\n local: DocumentDriveLocalStateSchema(),\n});\n\nexport const DriveDocumentSchema = z.object({\n header: DriveDocumentHeaderSchema,\n state: DrivePHStateSchema,\n initialState: DrivePHStateSchema,\n});\n\n/** Simple helper function to check if a state object is a Drive document state object */\nexport function isDriveState(state: unknown): state is DocumentDrivePHState {\n return DrivePHStateSchema.safeParse(state).success;\n}\n\n/** Simple helper function to assert that a document state object is a Drive document state object */\nexport function assertIsDriveState(\n state: unknown,\n): asserts state is DocumentDrivePHState {\n DrivePHStateSchema.parse(state);\n}\n\n/** Simple helper function to check if a document is a Drive document */\nexport function isDriveDocument(\n document: unknown,\n): document is DocumentDriveDocument {\n return DriveDocumentSchema.safeParse(document).success;\n}\n\n/** Simple helper function to assert that a document is a Drive document */\nexport function assertIsDriveDocument(\n document: unknown,\n): asserts document is DocumentDriveDocument {\n DriveDocumentSchema.parse(document);\n}\n","/**\n * Factory methods for creating DocumentDriveDocument instances\n */\n\nimport {\n createBaseState,\n defaultBaseState,\n type PHBaseState,\n} from \"../../document-model/state.js\";\nimport type {\n DocumentDriveGlobalState,\n DocumentDriveLocalState,\n DocumentDrivePHState,\n} from \"./types.js\";\n\nexport function defaultGlobalState(): DocumentDriveGlobalState {\n return {\n icon: null,\n name: \"\",\n nodes: [],\n };\n}\n\nexport function defaultLocalState(): DocumentDriveLocalState {\n return {\n availableOffline: false,\n listeners: [],\n sharingType: null,\n triggers: [],\n };\n}\n\nexport function defaultPHState(): DocumentDrivePHState {\n return {\n ...defaultBaseState(),\n global: defaultGlobalState(),\n local: defaultLocalState(),\n };\n}\n\nexport function createGlobalState(\n state?: Partial<DocumentDriveGlobalState>,\n): DocumentDriveGlobalState {\n return {\n ...defaultGlobalState(),\n ...(state || {}),\n } as DocumentDriveGlobalState;\n}\n\nexport function createLocalState(\n state?: Partial<DocumentDriveLocalState>,\n): DocumentDriveLocalState {\n return {\n ...defaultLocalState(),\n ...(state || {}),\n } as DocumentDriveLocalState;\n}\n\nexport function createState(\n baseState?: Partial<PHBaseState>,\n globalState?: Partial<DocumentDriveGlobalState>,\n localState?: Partial<DocumentDriveLocalState>,\n): DocumentDrivePHState {\n return {\n ...createBaseState(baseState?.auth, baseState?.document),\n global: createGlobalState(globalState),\n local: createLocalState(localState),\n };\n}\n","/**\n * This is a scaffold file meant for customization:\n * - modify it by implementing the reducer functions\n * - delete the file and run the code generator again to have it reset\n */\n\nimport type { Listener, Trigger } from \"../../gen/schema/types.js\";\nimport type { DocumentDriveDriveOperations } from \"../../gen/drive/actions.js\";\n\nexport const driveReducer: DocumentDriveDriveOperations = {\n setDriveNameOperation(state, action, dispatch) {\n state.name = action.input.name;\n },\n setDriveIconOperation(state, action, dispatch) {\n state.icon = action.input.icon ?? null;\n },\n setSharingTypeOperation(state, action, dispatch) {\n state.sharingType = action.input.type;\n },\n setAvailableOfflineOperation(state, action, dispatch) {\n state.availableOffline = action.input.availableOffline;\n },\n addListenerOperation(state, action, dispatch) {\n const { listener: input } = action.input;\n if (state.listeners.find((l) => l.listenerId === input.listenerId)) {\n throw new Error(`A listener with Id: ${input.listenerId} already exists`);\n }\n // Convert InputMaybe (undefined | null | T) to Maybe (null | T)\n const listener: Listener = {\n listenerId: input.listenerId,\n label: input.label ?? null,\n block: input.block,\n system: input.system,\n filter: {\n documentType: input.filter.documentType ?? null,\n documentId: input.filter.documentId ?? null,\n scope: input.filter.scope ?? null,\n branch: input.filter.branch ?? null,\n },\n callInfo: input.callInfo\n ? {\n transmitterType: input.callInfo.transmitterType ?? null,\n name: input.callInfo.name ?? null,\n data: input.callInfo.data ?? null,\n }\n : null,\n };\n state.listeners.push(listener);\n },\n removeListenerOperation(state, action, dispatch) {\n state.listeners = state.listeners.filter(\n (listener) => listener.listenerId !== action.input.listenerId,\n );\n },\n addTriggerOperation(state, action, dispatch) {\n const { trigger: input } = action.input;\n if (state.triggers.find((t) => t.id === input.id)) {\n throw new Error(`A trigger with Id: ${input.id} already exists`);\n }\n // Convert InputMaybe to Maybe - PullResponderTriggerData has all required fields so spread works\n const trigger: Trigger = {\n id: input.id,\n type: input.type,\n data: input.data ? { ...input.data } : null,\n };\n state.triggers.push(trigger);\n },\n removeTriggerOperation(state, action, dispatch) {\n state.triggers = state.triggers.filter(\n (trigger) => trigger.id !== action.input.triggerId,\n );\n },\n};\n","import type {\n CopyNodeInput,\n FileNode,\n FolderNode,\n Node,\n} from \"../gen/schema/types.js\";\nimport type {\n GenerateNodesCopyIdGenerator,\n GenerateNodesCopySrc,\n} from \"./types.js\";\nimport { isDraft, original } from \"mutative\";\n\nexport function isFileNode(node: Node): node is FileNode {\n return node.kind === \"file\";\n}\n\nexport function isFolderNode(node: Node): node is FolderNode {\n return node.kind === \"folder\";\n}\n\nexport function getAncestors(node: Node, allNodes: Node[]): Node[] {\n if (!node.parentFolder) {\n return [];\n } else {\n const parentNode = allNodes.find((_node) => _node.id === node.parentFolder);\n if (!parentNode) {\n throw new Error(`Parent node with id ${node.parentFolder} not found`);\n }\n return [parentNode, ...getAncestors(parentNode, allNodes)];\n }\n}\n\nexport function getDescendants(node: Node, allNodes: Node[]): Node[] {\n const children = allNodes.filter((_node) => _node.parentFolder === node.id);\n const descendants = children.map((child) => getDescendants(child, allNodes));\n return [...children, ...descendants.flat()];\n}\n\n/**\n * Generates a copy of nodes based on the provided source and target information.\n * @param src - The source information for generating the copy.\n * @param idGenerator - The function used to generate new IDs for the copied nodes.\n * @param nodes - The array of nodes to copy from.\n * @returns An array of copied nodes with updated IDs and parent folders.\n * @throws Error if the root node with the specified ID is not found.\n */\nexport function generateNodesCopy(\n src: GenerateNodesCopySrc,\n idGenerator: GenerateNodesCopyIdGenerator,\n nodes: Node[],\n): CopyNodeInput[] {\n const rootNode = nodes.find((node) => node.id === src.srcId);\n\n if (!rootNode) {\n throw new Error(`Node with id ${src.srcId} not found`);\n }\n\n const nodesToCopy = [\n {\n ...rootNode,\n name: src.targetName || rootNode.name,\n parentFolder: src.targetParentFolder || null,\n },\n ...getDescendants(rootNode, nodes),\n ];\n\n const ids: Record<string, string | undefined> = {};\n\n // Add targetParentFolder to ids so that is not replaced by a new id\n if (src.targetParentFolder) {\n ids[src.targetParentFolder] = src.targetParentFolder;\n }\n\n const getNewNodeId = (node: Node): string => {\n let newId = ids[node.id];\n\n if (!newId) {\n const oldId = node.id;\n newId = idGenerator(node);\n ids[oldId] = newId;\n }\n\n return newId;\n };\n\n const copyNodesInput = nodesToCopy.map<CopyNodeInput>((node) => ({\n srcId: node.id,\n targetId: getNewNodeId(node),\n targetName: node.name,\n targetParentFolder: node.parentFolder ? ids[node.parentFolder] : null,\n }));\n\n return copyNodesInput;\n}\n\nexport function getNextCopyNumber(\n files: string[],\n baseFilename: string,\n): number {\n let maxNumber = 0; // Start by assuming no copies exist\n\n // Regex to find files that match the base filename followed by \" (copy)\" and possibly a number\n const regex = new RegExp(\n `^${escapeRegExp(baseFilename)} \\\\(copy\\\\)(?: (\\\\d+))?$`,\n );\n\n for (const file of files) {\n const match = file.match(regex);\n if (match) {\n const number = match[1] ? parseInt(match[1], 10) : 1;\n if (number > maxNumber) {\n maxNumber = number;\n }\n }\n }\n\n return maxNumber + 1;\n}\n\nexport function escapeRegExp(string: string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n\n/**\n * The node list as plain objects for read-only scans. Inside a mutative draft\n * this returns the untouched base list, so a find or filter over it does not\n * create a child draft per element it visits. Callers must read before they\n * write: the base list does not see mutations made earlier in the same action.\n */\nexport function readNodes(state: { nodes: Node[] }): Node[] {\n return isDraft(state) ? original(state).nodes : state.nodes;\n}\n\n/**\n * The node list with a node added, ordered by id. The list is built and sorted\n * as plain objects, so inside a mutative draft the comparator never reads an\n * element through the draft proxy. Pass the list read with readNodes to get\n * that benefit; passing the draft's own list is correct but slow.\n */\nexport function insertNodeSorted(nodes: readonly Node[], node: Node): Node[] {\n return [...nodes, node].sort((a, b) => a.id.localeCompare(b.id));\n}\n\nexport function handleTargetNameCollisions(params: {\n nodes: Node[];\n targetParentFolder: string | null;\n srcName: string;\n srcKind: \"file\" | \"folder\";\n}) {\n const { nodes, targetParentFolder, srcName, srcKind } = params;\n\n const targetNodeChildrenNames = nodes\n .filter((node) =>\n targetParentFolder === \"\"\n ? node.parentFolder === null\n : node.parentFolder === targetParentFolder,\n )\n .filter((node) => node.kind === srcKind)\n .map((node) => node.name);\n\n const targetHasNodesWithSameName = targetNodeChildrenNames.includes(srcName);\n\n const targetName = targetHasNodesWithSameName\n ? `${srcName} (copy) ${getNextCopyNumber(targetNodeChildrenNames, srcName)}`\n : srcName;\n\n return targetName;\n}\n\nexport const isValidName = (name: string) => {\n // Names are display labels (URLs use a slugified id), so allow any unicode;\n // reject only empty/whitespace-only names and control characters.\n // eslint-disable-next-line no-control-regex\n return name.trim().length > 0 && !/[\\u0000-\\u001F\\u007F]/.test(name);\n};\n","/**\n * This is a scaffold file meant for customization:\n * - modify it by implementing the reducer functions\n * - delete the file and run the code generator again to have it reset\n */\n\nimport type { FileNode } from \"../../gen/schema/types.js\";\nimport type { DocumentDriveNodeOperations } from \"../../gen/node/actions.js\";\nimport {\n getDescendants,\n handleTargetNameCollisions,\n insertNodeSorted,\n isFileNode,\n isFolderNode,\n isValidName,\n readNodes,\n} from \"../utils.js\";\n\nexport const nodeReducer: DocumentDriveNodeOperations = {\n addFileOperation(state, action, dispatch) {\n const nodes = readNodes(state);\n if (nodes.find((node) => node.id === action.input.id)) {\n throw new Error(`Node with id ${action.input.id} already exists!`);\n }\n\n if (!isValidName(action.input.name)) {\n throw new Error(\n `Invalid name: '${action.input.name}'. Names must not be empty or contain control characters.`,\n );\n }\n\n const name = handleTargetNameCollisions({\n nodes,\n srcName: action.input.name,\n srcKind: \"file\",\n targetParentFolder: action.input.parentFolder || null,\n });\n\n const fileNode: FileNode = {\n id: action.input.id,\n name,\n kind: \"file\",\n parentFolder: action.input.parentFolder ?? null,\n documentType: action.input.documentType,\n };\n state.nodes = insertNodeSorted(nodes, fileNode);\n\n dispatch?.({\n type: \"CREATE_CHILD_DOCUMENT\",\n input: {\n id: action.input.id,\n documentType: action.input.documentType,\n },\n });\n },\n addFolderOperation(state, action) {\n const nodes = readNodes(state);\n if (nodes.find((node) => node.id === action.input.id)) {\n throw new Error(`Node with id ${action.input.id} already exists!`);\n }\n\n if (!isValidName(action.input.name)) {\n throw new Error(\n `Invalid name: '${action.input.name}'. Names must not be empty or contain control characters.`,\n );\n }\n\n const name = handleTargetNameCollisions({\n nodes,\n srcName: action.input.name,\n srcKind: \"folder\",\n targetParentFolder: action.input.parentFolder || null,\n });\n\n state.nodes = insertNodeSorted(nodes, {\n ...action.input,\n name,\n kind: \"folder\",\n parentFolder: action.input.parentFolder ?? null,\n });\n },\n deleteNodeOperation(state, action, dispatch) {\n const node = state.nodes.find((node) => node.id === action.input.id);\n if (!node) {\n throw new Error(`Node with id ${action.input.id} not found`);\n }\n const descendants = getDescendants(node, state.nodes);\n state.nodes = state.nodes.filter(\n (node) =>\n node.id !== action.input.id &&\n !descendants.find((descendant) => descendant.id === node.id),\n );\n\n [node, ...descendants]\n .filter((node) => isFileNode(node))\n .forEach((node) => {\n dispatch?.({\n type: \"DELETE_CHILD_DOCUMENT\",\n input: {\n id: node.id,\n },\n });\n });\n },\n updateFileOperation(state, action) {\n if (action.input.name && !isValidName(action.input.name)) {\n throw new Error(\n `Invalid name: '${action.input.name}'. Names must not be empty or contain control characters.`,\n );\n }\n\n state.nodes = state.nodes.map((node) =>\n node.id === action.input.id\n ? {\n ...node,\n ...{\n name: handleTargetNameCollisions({\n nodes: state.nodes.filter((n) => n.id !== action.input.id),\n srcName: action.input.name ?? node.name,\n srcKind: \"file\",\n targetParentFolder:\n action.input.parentFolder ?? node.parentFolder,\n }),\n documentType:\n action.input.documentType ?? (node as FileNode).documentType,\n },\n }\n : node,\n );\n\n // deterministically sort nodes by id\n state.nodes.sort((a, b) => a.id.localeCompare(b.id));\n },\n updateNodeOperation(state, action) {\n if (action.input.name && !isValidName(action.input.name)) {\n throw new Error(\n `Invalid name: '${action.input.name}'. Names must not be empty or contain control characters.`,\n );\n }\n\n state.nodes = state.nodes.map((node) =>\n node.id === action.input.id\n ? {\n ...node,\n ...{\n name: handleTargetNameCollisions({\n nodes: state.nodes.filter((n) => n.id !== action.input.id),\n srcName: action.input.name ?? node.name,\n srcKind: node.kind === \"file\" ? \"file\" : \"folder\",\n targetParentFolder:\n action.input.parentFolder ?? node.parentFolder,\n }),\n parentFolder:\n action.input.parentFolder === null ? null : node.parentFolder,\n },\n }\n : node,\n );\n\n // deterministically sort nodes by id\n state.nodes.sort((a, b) => a.id.localeCompare(b.id));\n },\n copyNodeOperation(state, action, dispatch) {\n const node = state.nodes.find((node) => node.id === action.input.srcId);\n\n if (!node) {\n throw new Error(`Node with id ${action.input.srcId} not found`);\n }\n\n const duplicatedNode = state.nodes.find(\n (node) => node.id === action.input.targetId,\n );\n\n if (duplicatedNode) {\n throw new Error(`Node with id ${action.input.targetId} already exists`);\n }\n\n const name = handleTargetNameCollisions({\n nodes: state.nodes,\n srcName: action.input.targetName || node.name,\n srcKind: node.kind === \"file\" ? \"file\" : \"folder\",\n targetParentFolder: action.input.targetParentFolder || null,\n });\n\n const newNode = {\n ...node,\n id: action.input.targetId,\n slug: action.input.targetId,\n name,\n parentFolder: action.input.targetParentFolder || null,\n };\n\n state.nodes.push(newNode);\n\n // deterministically sort nodes by id\n state.nodes.sort((a, b) => a.id.localeCompare(b.id));\n\n const isFile = isFileNode(newNode);\n if (isFile) {\n dispatch?.({\n type: \"COPY_CHILD_DOCUMENT\",\n input: {\n id: action.input.srcId,\n newId: action.input.targetId,\n },\n });\n }\n },\n moveNodeOperation(state, action) {\n if (action.input.srcFolder === action.input.targetParentFolder) {\n throw new Error(\n \"Circular Reference Error: Attempting to move a node to its current parent folder\",\n );\n }\n\n const node = state.nodes.find((node) => node.id === action.input.srcFolder);\n\n if (!node) {\n throw new Error(`Node with id ${action.input.srcFolder} not found`);\n }\n\n const name = handleTargetNameCollisions({\n nodes: state.nodes,\n srcName: node.name,\n srcKind: node.kind === \"file\" ? \"file\" : \"folder\",\n targetParentFolder: action.input.targetParentFolder || null,\n });\n\n if (isFolderNode(node)) {\n const descendants = getDescendants(node, state.nodes);\n // throw error if moving a folder to one of its descendants\n if (\n descendants.find(\n (descendant) => descendant.id === action.input.targetParentFolder,\n )\n ) {\n throw new Error(\n \"Circular Reference Error: Cannot move a folder to one of its descendants\",\n );\n }\n }\n\n state.nodes = state.nodes.map((node) => {\n if (node.id === action.input.srcFolder) {\n return {\n ...node,\n name,\n parentFolder: action.input.targetParentFolder || null,\n };\n }\n\n return node;\n });\n\n // deterministically sort nodes by id\n state.nodes.sort((a, b) => a.id.localeCompare(b.id));\n },\n};\n","import { isDocumentAction } from \"../../document-model/documents.js\";\nimport { createReducer } from \"../../document-model/reducer.js\";\nimport type { Reducer, StateReducer } from \"../../document-model/types.js\";\nimport { driveReducer } from \"../src/reducers/drive.js\";\nimport { nodeReducer } from \"../src/reducers/node.js\";\nimport {\n AddFileInputSchema,\n AddFolderInputSchema,\n AddListenerInputSchema,\n AddTriggerInputSchema,\n CopyNodeInputSchema,\n DeleteNodeInputSchema,\n MoveNodeInputSchema,\n RemoveListenerInputSchema,\n RemoveTriggerInputSchema,\n SetAvailableOfflineInputSchema,\n SetDriveIconInputSchema,\n SetDriveNameInputSchema,\n SetSharingTypeInputSchema,\n UpdateFileInputSchema,\n UpdateNodeInputSchema,\n} from \"./schema/zod.js\";\nimport type { DocumentDrivePHState } from \"./types.js\";\n\nconst driveStateReducer: StateReducer<DocumentDrivePHState> = (\n state,\n action,\n dispatch,\n) => {\n if (isDocumentAction(action)) {\n return state;\n }\n\n const typedAction = action as any;\n switch (typedAction.type) {\n case \"ADD_FILE\":\n AddFileInputSchema().parse(typedAction.input);\n nodeReducer.addFileOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"ADD_FOLDER\":\n AddFolderInputSchema().parse(typedAction.input);\n nodeReducer.addFolderOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"DELETE_NODE\":\n DeleteNodeInputSchema().parse(typedAction.input);\n nodeReducer.deleteNodeOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"UPDATE_FILE\":\n UpdateFileInputSchema().parse(typedAction.input);\n nodeReducer.updateFileOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"UPDATE_NODE\":\n UpdateNodeInputSchema().parse(typedAction.input);\n nodeReducer.updateNodeOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"COPY_NODE\":\n CopyNodeInputSchema().parse(typedAction.input);\n nodeReducer.copyNodeOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"MOVE_NODE\":\n MoveNodeInputSchema().parse(typedAction.input);\n nodeReducer.moveNodeOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"SET_DRIVE_NAME\":\n SetDriveNameInputSchema().parse(typedAction.input);\n driveReducer.setDriveNameOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"SET_DRIVE_ICON\":\n SetDriveIconInputSchema().parse(typedAction.input);\n driveReducer.setDriveIconOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"SET_SHARING_TYPE\":\n SetSharingTypeInputSchema().parse(typedAction.input);\n driveReducer.setSharingTypeOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"SET_AVAILABLE_OFFLINE\":\n SetAvailableOfflineInputSchema().parse(typedAction.input);\n driveReducer.setAvailableOfflineOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"ADD_LISTENER\":\n AddListenerInputSchema().parse(typedAction.input);\n driveReducer.addListenerOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"REMOVE_LISTENER\":\n RemoveListenerInputSchema().parse(typedAction.input);\n driveReducer.removeListenerOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"ADD_TRIGGER\":\n AddTriggerInputSchema().parse(typedAction.input);\n driveReducer.addTriggerOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"REMOVE_TRIGGER\":\n RemoveTriggerInputSchema().parse(typedAction.input);\n driveReducer.removeTriggerOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n default:\n return state;\n }\n};\n\nexport const driveDocumentReducer: Reducer<DocumentDrivePHState> =\n createReducer<DocumentDrivePHState>(driveStateReducer);\n","import type {\n DocumentDriveGlobalState,\n DocumentDriveLocalState,\n} from \"./schema/types.js\";\nimport type { DocumentDrivePHState } from \"./types.js\";\nimport type {\n AssertIsDocumentOfType,\n AssertIsStateOfType,\n CreateDocument,\n CreateState,\n IsDocumentOfType,\n IsStateOfType,\n LoadFromInput,\n SaveToFileHandle,\n} from \"document-model\";\nimport {\n baseCreateDocument,\n baseLoadFromInput,\n baseSaveToFileHandle,\n defaultBaseState,\n} from \"document-model\";\nimport {\n assertIsDriveDocument,\n assertIsDriveState,\n isDriveDocument,\n isDriveState,\n} from \"./document-schema.js\";\nimport { driveDocumentType } from \"./document-type.js\";\nimport { driveDocumentReducer } from \"./reducer.js\";\n\nexport const initialGlobalState: DocumentDriveGlobalState = {\n name: \"\",\n nodes: [],\n icon: null,\n};\nexport const initialLocalState: DocumentDriveLocalState = {\n listeners: [],\n triggers: [],\n sharingType: \"private\",\n availableOffline: false,\n};\n\nexport const driveCreateState: CreateState<DocumentDrivePHState> = (\n state: Partial<DocumentDrivePHState> | undefined,\n) => {\n return {\n ...defaultBaseState(),\n global: { ...initialGlobalState, ...state?.global },\n local: { ...initialLocalState, ...state?.local },\n };\n};\n\nexport const driveCreateDocument: CreateDocument<DocumentDrivePHState> = (\n state,\n) => {\n return baseCreateDocument(driveCreateState, state, driveDocumentType);\n};\n\nexport const driveSaveToFileHandle: SaveToFileHandle = (document, input) => {\n return baseSaveToFileHandle(document, input);\n};\n\nexport const driveLoadFromInput: LoadFromInput<DocumentDrivePHState> = (\n input,\n) => {\n return baseLoadFromInput(input, driveDocumentReducer);\n};\n\nexport const isStateOfType: IsStateOfType<DocumentDrivePHState> = (state) => {\n return isDriveState(state);\n};\n\nexport const assertIsStateOfType: AssertIsStateOfType<DocumentDrivePHState> = (\n state,\n) => {\n assertIsDriveState(state);\n};\n\nexport const isDocumentOfType: IsDocumentOfType<DocumentDrivePHState> = (\n document,\n) => {\n return isDriveDocument(document);\n};\n\nexport const assertIsDocumentOfType: AssertIsDocumentOfType<\n DocumentDrivePHState\n> = (document) => {\n assertIsDriveDocument(document);\n};\n","import { createState, defaultBaseState } from \"../document-model/state.js\";\nimport { driveDocumentFileExtension } from \"./constants.js\";\nimport * as actions from \"./gen/creators.js\";\nimport { driveDocumentModel } from \"./gen/document-model.js\";\nimport { driveDocumentReducer } from \"./gen/reducer.js\";\nimport {\n assertIsDocumentOfType,\n assertIsStateOfType,\n driveCreateDocument,\n driveCreateState,\n driveLoadFromInput,\n driveSaveToFileHandle,\n isDocumentOfType,\n isStateOfType,\n} from \"./gen/utils.js\";\nimport type { DriveDocumentModelModule } from \"./types.js\";\nexport const driveDocumentModelModule: DriveDocumentModelModule = {\n actions,\n reducer: driveDocumentReducer,\n documentModel: createState(defaultBaseState(), driveDocumentModel),\n utils: {\n fileExtension: driveDocumentFileExtension,\n createState: driveCreateState,\n createDocument: driveCreateDocument,\n loadFromInput: driveLoadFromInput,\n saveToFileHandle: driveSaveToFileHandle,\n isStateOfType,\n assertIsStateOfType,\n isDocumentOfType,\n assertIsDocumentOfType,\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["createState"],"sources":["../../document-drive/constants.ts","../../document-drive/gen/schema/zod.ts","../../document-drive/gen/node/creators.ts","../../document-drive/gen/drive/creators.ts","../../document-drive/gen/creators.ts","../../document-drive/gen/document-model.ts","../../document-drive/gen/document-type.ts","../../document-drive/gen/document-schema.ts","../../document-drive/gen/ph-factories.ts","../../document-drive/src/reducers/drive.ts","../../document-drive/src/utils.ts","../../document-drive/src/reducers/node.ts","../../document-drive/gen/reducer.ts","../../document-drive/gen/utils.ts","../../document-drive/module.ts"],"sourcesContent":["export const driveDocumentFileExtension = \"phdd\";\n","import type {\n AddFileInput,\n AddFolderInput,\n AddListenerInput,\n AddTriggerInput,\n CopyNodeInput,\n DeleteNodeInput,\n DocumentDriveGlobalState,\n DocumentDriveLocalState,\n FileNode,\n FolderNode,\n Listener,\n ListenerCallInfo,\n ListenerCallInfoInput,\n ListenerFilter,\n ListenerFilterInput,\n ListenerInput,\n MoveNodeInput,\n PullResponderTriggerData,\n PullResponderTriggerDataInput,\n RemoveListenerInput,\n RemoveTriggerInput,\n SetAvailableOfflineInput,\n SetDriveIconInput,\n SetDriveNameInput,\n SetSharingTypeInput,\n Trigger,\n TriggerInput,\n UpdateFileInput,\n UpdateNodeInput,\n} from \"./types.js\";\nimport { z } from \"zod\";\n\ntype Properties<T> = Required<{\n [K in keyof T]: z.ZodType<T[K], T[K]>;\n}>;\n\ntype definedNonNullAny = {};\n\nexport const isDefinedNonNullAny = (v: any): v is definedNonNullAny =>\n v !== undefined && v !== null;\n\nexport const definedNonNullAnySchema = z\n .any()\n .refine((v) => isDefinedNonNullAny(v));\n\nexport const TransmitterTypeSchema = z.enum([\n \"Internal\",\n \"MatrixConnect\",\n \"PullResponder\",\n \"RESTWebhook\",\n \"SecureConnect\",\n \"SwitchboardPush\",\n]);\n\nexport const TriggerTypeSchema = z.enum([\"PullResponder\"]);\n\nexport function AddFileInputSchema(): z.ZodObject<Properties<AddFileInput>> {\n return z.object({\n documentType: z.string(),\n id: z.string(),\n name: z.string(),\n parentFolder: z.string().nullish(),\n });\n}\n\nexport function AddFolderInputSchema(): z.ZodObject<\n Properties<AddFolderInput>\n> {\n return z.object({\n id: z.string(),\n name: z.string(),\n parentFolder: z.string().nullish(),\n });\n}\n\nexport function AddListenerInputSchema(): z.ZodObject<\n Properties<AddListenerInput>\n> {\n return z.object({\n listener: ListenerInputSchema(),\n });\n}\n\nexport function AddTriggerInputSchema(): z.ZodObject<\n Properties<AddTriggerInput>\n> {\n return z.object({\n trigger: TriggerInputSchema(),\n });\n}\n\nexport function CopyNodeInputSchema(): z.ZodObject<Properties<CopyNodeInput>> {\n return z.object({\n srcId: z.string(),\n targetId: z.string(),\n targetName: z.string().nullish(),\n targetParentFolder: z.string().nullish(),\n });\n}\n\nexport function DeleteNodeInputSchema(): z.ZodObject<\n Properties<DeleteNodeInput>\n> {\n return z.object({\n id: z.string(),\n });\n}\n\nexport function DocumentDriveLocalStateSchema(): z.ZodObject<\n Properties<DocumentDriveLocalState>\n> {\n return z.object({\n __typename: z.literal(\"DocumentDriveLocalState\").optional(),\n availableOffline: z.boolean(),\n listeners: z.array(ListenerSchema()),\n sharingType: z.string().nullable(),\n triggers: z.array(TriggerSchema()),\n });\n}\n\nexport function DocumentDriveStateSchema(): z.ZodObject<\n Properties<DocumentDriveGlobalState>\n> {\n return z.object({\n __typename: z.literal(\"DocumentDriveState\").optional(),\n icon: z.string().nullable(),\n name: z.string(),\n nodes: z.array(NodeSchema()),\n });\n}\n\nexport function FileNodeSchema(): z.ZodObject<Properties<FileNode>> {\n return z.object({\n __typename: z.literal(\"FileNode\").optional(),\n documentType: z.string(),\n id: z.string(),\n kind: z.string(),\n name: z.string(),\n parentFolder: z.string().nullable(),\n });\n}\n\nexport function FolderNodeSchema(): z.ZodObject<Properties<FolderNode>> {\n return z.object({\n __typename: z.literal(\"FolderNode\").optional(),\n id: z.string(),\n kind: z.string(),\n name: z.string(),\n parentFolder: z.string().nullable(),\n });\n}\n\nexport function ListenerSchema(): z.ZodObject<Properties<Listener>> {\n return z.object({\n __typename: z.literal(\"Listener\").optional(),\n block: z.boolean(),\n callInfo: ListenerCallInfoSchema().nullable(),\n filter: ListenerFilterSchema(),\n label: z.string().nullable(),\n listenerId: z.string(),\n system: z.boolean(),\n });\n}\n\nexport function ListenerInputSchema(): z.ZodObject<Properties<ListenerInput>> {\n return z.object({\n block: z.boolean(),\n callInfo: ListenerCallInfoInputSchema().nullish(),\n filter: ListenerFilterInputSchema(),\n label: z.string().nullish(),\n listenerId: z.string(),\n system: z.boolean(),\n });\n}\n\nexport function ListenerCallInfoSchema(): z.ZodObject<\n Properties<ListenerCallInfo>\n> {\n return z.object({\n __typename: z.literal(\"ListenerCallInfo\").optional(),\n data: z.string().nullable(),\n name: z.string().nullable(),\n transmitterType: TransmitterTypeSchema.nullable(),\n });\n}\n\nexport function ListenerCallInfoInputSchema(): z.ZodObject<\n Properties<ListenerCallInfoInput>\n> {\n return z.object({\n data: z.string().nullish(),\n name: z.string().nullish(),\n transmitterType: TransmitterTypeSchema.nullish(),\n });\n}\n\nexport function ListenerFilterSchema(): z.ZodObject<\n Properties<ListenerFilter>\n> {\n return z.object({\n __typename: z.literal(\"ListenerFilter\").optional(),\n branch: z.array(z.string()).nullable(),\n documentId: z.array(z.string()).nullable(),\n documentType: z.array(z.string()),\n scope: z.array(z.string()).nullable(),\n });\n}\n\nexport function ListenerFilterInputSchema(): z.ZodObject<\n Properties<ListenerFilterInput>\n> {\n return z.object({\n branch: z.array(z.string()).nullish(),\n documentId: z.array(z.string()).nullish(),\n documentType: z.array(z.string()).nullish(),\n scope: z.array(z.string()).nullish(),\n });\n}\n\nexport function MoveNodeInputSchema(): z.ZodObject<Properties<MoveNodeInput>> {\n return z.object({\n srcFolder: z.string(),\n targetParentFolder: z.string().nullish(),\n });\n}\n\nexport function NodeSchema() {\n return z.union([FileNodeSchema(), FolderNodeSchema()]);\n}\n\nexport function PullResponderTriggerDataSchema(): z.ZodObject<\n Properties<PullResponderTriggerData>\n> {\n return z.object({\n __typename: z.literal(\"PullResponderTriggerData\").optional(),\n interval: z.string(),\n listenerId: z.string(),\n url: z.string(),\n });\n}\n\nexport function PullResponderTriggerDataInputSchema(): z.ZodObject<\n Properties<PullResponderTriggerDataInput>\n> {\n return z.object({\n interval: z.string(),\n listenerId: z.string(),\n url: z.string(),\n });\n}\n\nexport function RemoveListenerInputSchema(): z.ZodObject<\n Properties<RemoveListenerInput>\n> {\n return z.object({\n listenerId: z.string(),\n });\n}\n\nexport function RemoveTriggerInputSchema(): z.ZodObject<\n Properties<RemoveTriggerInput>\n> {\n return z.object({\n triggerId: z.string(),\n });\n}\n\nexport function SetAvailableOfflineInputSchema(): z.ZodObject<\n Properties<SetAvailableOfflineInput>\n> {\n return z.object({\n availableOffline: z.boolean(),\n });\n}\n\nexport function SetDriveIconInputSchema(): z.ZodObject<\n Properties<SetDriveIconInput>\n> {\n return z.object({\n icon: z.string().nullish(),\n });\n}\n\nexport function SetDriveNameInputSchema(): z.ZodObject<\n Properties<SetDriveNameInput>\n> {\n return z.object({\n name: z.string(),\n });\n}\n\nexport function SetSharingTypeInputSchema(): z.ZodObject<\n Properties<SetSharingTypeInput>\n> {\n return z.object({\n type: z.string(),\n });\n}\n\nexport function TriggerSchema(): z.ZodObject<Properties<Trigger>> {\n return z.object({\n __typename: z.literal(\"Trigger\").optional(),\n data: TriggerDataSchema().nullable(),\n id: z.string(),\n type: TriggerTypeSchema,\n });\n}\n\nexport function TriggerInputSchema(): z.ZodObject<Properties<TriggerInput>> {\n return z.object({\n data: PullResponderTriggerDataInputSchema().nullish(),\n id: z.string(),\n type: TriggerTypeSchema,\n });\n}\n\nexport function TriggerDataSchema() {\n return PullResponderTriggerDataSchema();\n}\n\nexport function UpdateFileInputSchema(): z.ZodObject<\n Properties<UpdateFileInput>\n> {\n return z.object({\n documentType: z.string().nullish(),\n id: z.string(),\n name: z.string().nullish(),\n parentFolder: z.string().nullish(),\n });\n}\n\nexport function UpdateNodeInputSchema(): z.ZodObject<\n Properties<UpdateNodeInput>\n> {\n return z.object({\n id: z.string(),\n name: z.string().nullish(),\n parentFolder: z.string().nullish(),\n });\n}\n","import type {\n AddFileInput,\n AddFolderInput,\n CopyNodeInput,\n DeleteNodeInput,\n MoveNodeInput,\n UpdateFileInput,\n UpdateNodeInput,\n} from \"../schema/types.js\";\nimport type { LegacyAddFileAction, LegacyAddFileInput } from \"../types.js\";\nimport type {\n AddFileAction,\n AddFolderAction,\n CopyNodeAction,\n DeleteNodeAction,\n MoveNodeAction,\n UpdateFileAction,\n UpdateNodeAction,\n} from \"./actions.js\";\nimport { createAction } from \"document-model\";\nimport {\n AddFileInputSchema,\n AddFolderInputSchema,\n CopyNodeInputSchema,\n DeleteNodeInputSchema,\n MoveNodeInputSchema,\n UpdateFileInputSchema,\n UpdateNodeInputSchema,\n} from \"../schema/zod.js\";\n\n/**\n * @deprecated Use addFile with {@link AddFileInput} instead. This overload will be removed in the future.\n */\nexport function addFile(input: LegacyAddFileInput): LegacyAddFileAction;\nexport function addFile(input: AddFileInput): AddFileAction;\nexport function addFile(\n input: LegacyAddFileInput | AddFileInput,\n): typeof input extends LegacyAddFileInput\n ? LegacyAddFileAction\n : AddFileAction {\n if (input && typeof input === \"object\" && \"synchronizationUnits\" in input) {\n // Legacy overload\n return createAction<AddFileAction>(\n \"ADD_FILE\",\n { ...input },\n undefined,\n undefined,\n \"global\",\n );\n }\n // Standard overload\n return createAction<AddFileAction>(\n \"ADD_FILE\",\n { ...input },\n undefined,\n AddFileInputSchema,\n \"global\",\n );\n}\n\nexport const addFolder = (input: AddFolderInput) =>\n createAction<AddFolderAction>(\n \"ADD_FOLDER\",\n { ...input },\n undefined,\n AddFolderInputSchema,\n \"global\",\n );\n\nexport const deleteNode = (input: DeleteNodeInput) =>\n createAction<DeleteNodeAction>(\n \"DELETE_NODE\",\n { ...input },\n undefined,\n DeleteNodeInputSchema,\n \"global\",\n );\n\nexport const updateFile = (input: UpdateFileInput) =>\n createAction<UpdateFileAction>(\n \"UPDATE_FILE\",\n { ...input },\n undefined,\n UpdateFileInputSchema,\n \"global\",\n );\n\nexport const updateNode = (input: UpdateNodeInput) =>\n createAction<UpdateNodeAction>(\n \"UPDATE_NODE\",\n { ...input },\n undefined,\n UpdateNodeInputSchema,\n \"global\",\n );\n\nexport const copyNode = (input: CopyNodeInput) =>\n createAction<CopyNodeAction>(\n \"COPY_NODE\",\n { ...input },\n undefined,\n CopyNodeInputSchema,\n \"global\",\n );\n\nexport const moveNode = (input: MoveNodeInput) =>\n createAction<MoveNodeAction>(\n \"MOVE_NODE\",\n { ...input },\n undefined,\n MoveNodeInputSchema,\n \"global\",\n );\n","import type {\n AddListenerInput,\n AddTriggerInput,\n RemoveListenerInput,\n RemoveTriggerInput,\n SetAvailableOfflineInput,\n SetDriveIconInput,\n SetDriveNameInput,\n SetSharingTypeInput,\n} from \"../schema/types.js\";\nimport type {\n AddListenerAction,\n AddTriggerAction,\n RemoveListenerAction,\n RemoveTriggerAction,\n SetAvailableOfflineAction,\n SetDriveIconAction,\n SetDriveNameAction,\n SetSharingTypeAction,\n} from \"./actions.js\";\nimport { createAction } from \"document-model\";\nimport {\n AddListenerInputSchema,\n AddTriggerInputSchema,\n RemoveListenerInputSchema,\n RemoveTriggerInputSchema,\n SetAvailableOfflineInputSchema,\n SetDriveIconInputSchema,\n SetDriveNameInputSchema,\n SetSharingTypeInputSchema,\n} from \"../schema/zod.js\";\n\nexport const setDriveName = (input: SetDriveNameInput) =>\n createAction<SetDriveNameAction>(\n \"SET_DRIVE_NAME\",\n { ...input },\n undefined,\n SetDriveNameInputSchema,\n \"global\",\n );\n\nexport const setDriveIcon = (input: SetDriveIconInput) =>\n createAction<SetDriveIconAction>(\n \"SET_DRIVE_ICON\",\n { ...input },\n undefined,\n SetDriveIconInputSchema,\n \"global\",\n );\n\nexport const setSharingType = (input: SetSharingTypeInput) =>\n createAction<SetSharingTypeAction>(\n \"SET_SHARING_TYPE\",\n { ...input },\n undefined,\n SetSharingTypeInputSchema,\n \"local\",\n );\n\nexport const setAvailableOffline = (input: SetAvailableOfflineInput) =>\n createAction<SetAvailableOfflineAction>(\n \"SET_AVAILABLE_OFFLINE\",\n { ...input },\n undefined,\n SetAvailableOfflineInputSchema,\n \"local\",\n );\n\nexport const addListener = (input: AddListenerInput) =>\n createAction<AddListenerAction>(\n \"ADD_LISTENER\",\n { ...input },\n undefined,\n AddListenerInputSchema,\n \"local\",\n );\n\nexport const removeListener = (input: RemoveListenerInput) =>\n createAction<RemoveListenerAction>(\n \"REMOVE_LISTENER\",\n { ...input },\n undefined,\n RemoveListenerInputSchema,\n \"local\",\n );\n\nexport const addTrigger = (input: AddTriggerInput) =>\n createAction<AddTriggerAction>(\n \"ADD_TRIGGER\",\n { ...input },\n undefined,\n AddTriggerInputSchema,\n \"local\",\n );\n\nexport const removeTrigger = (input: RemoveTriggerInput) =>\n createAction<RemoveTriggerAction>(\n \"REMOVE_TRIGGER\",\n { ...input },\n undefined,\n RemoveTriggerInputSchema,\n \"local\",\n );\n","export * from \"./node/creators.js\";\nexport * from \"./drive/creators.js\";\n","import type { DocumentModelGlobalState } from \"../../document-model/types.js\";\n\nexport const driveDocumentModel: DocumentModelGlobalState = {\n id: \"powerhouse/document-drive\",\n name: \"DocumentDrive\",\n extension: \"phdd\",\n description: \"\",\n author: {\n name: \"Powerhouse Inc\",\n website: \"https://www.powerhouse.inc/\",\n },\n specifications: [\n {\n version: 1,\n changeLog: [],\n state: {\n global: {\n schema:\n \"type FolderNode {\\n id: String!\\n name: String!\\n kind: String!\\n parentFolder: String\\n}\\n\\ntype FileNode {\\n id: String!\\n name: String!\\n kind: String!\\n documentType: String!\\n parentFolder: String\\n}\\n\\nunion Node = FolderNode | FileNode\\n\\ntype DocumentDriveState {\\n name: String!\\n nodes: [Node!]!\\n icon: String\\n}\",\n initialValue: '\"{\\\\\"name\\\\\":\\\\\"\\\\\",\\\\\"nodes\\\\\":[],\\\\\"icon\\\\\":null}\"',\n examples: [],\n },\n local: {\n schema:\n \"type ListenerFilter {\\n documentType: [String!]!\\n documentId: [ID!]\\n scope: [String!]\\n branch: [String!]\\n}\\n\\nenum TransmitterType {\\n Internal,\\n SwitchboardPush,\\n PullResponder,\\n SecureConnect, \\n MatrixConnect,\\n RESTWebhook\\n}\\n\\ntype ListenerCallInfo {\\n transmitterType: TransmitterType\\n name: String\\n data: String\\n}\\n\\ntype Listener {\\n listenerId: ID!\\n label: String\\n block: Boolean!\\n system: Boolean!\\n filter: ListenerFilter!\\n callInfo: ListenerCallInfo\\n}\\n\\nenum TriggerType {\\n PullResponder\\n}\\n\\ntype PullResponderTriggerData {\\n listenerId: ID!\\n url: String!\\n interval: String!\\n}\\n\\nunion TriggerData = PullResponderTriggerData\\n\\ntype Trigger {\\n id: ID!\\n type: TriggerType!\\n data: TriggerData\\n}\\n\\ntype DocumentDriveLocalState{\\n sharingType: String\\n listeners: [Listener!]!\\n triggers: [Trigger!]!\\n availableOffline: Boolean!\\n}\",\n initialValue:\n '\"{ \\\\\"listeners\\\\\": [], \\\\\"triggers\\\\\": [], \\\\\"sharingType\\\\\": \\\\\"private\\\\\", \\\\\"availableOffline\\\\\": false}\"',\n examples: [],\n },\n },\n modules: [\n {\n id: \"GRzuvv78tBvmB6ciitokLfonNHA=\",\n name: \"Node\",\n description: \"\",\n operations: [\n {\n id: \"7xiTdxonc9yEASR8sfV/KnbSV10=\",\n name: \"ADD_FILE\",\n description: \"\",\n schema:\n \"input AddFileInput {\\n id: ID!\\n name: String!\\n documentType: String!\\n parentFolder: ID\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"global\",\n },\n {\n id: \"4lzNMMKKdIAtEU6i12xLgi9hp+U=\",\n name: \"ADD_FOLDER\",\n description: \"\",\n schema:\n \"input AddFolderInput {\\n id: ID!\\n name: String!\\n parentFolder: ID\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"global\",\n },\n {\n id: \"53jH2/3TWTTcgCJiv2C+BmuC6i0=\",\n name: \"DELETE_NODE\",\n description: \"\",\n schema: \"input DeleteNodeInput {\\n id: ID!\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"global\",\n },\n {\n id: \"pNn+Y1/HVq/GNMk7t0u3g3gtMLE=\",\n name: \"UPDATE_FILE\",\n description: \"\",\n schema:\n \"input UpdateFileInput {\\n id: ID!\\n parentFolder: ID\\n name: String\\n documentType: String\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"global\",\n },\n {\n id: \"P0x1M8Mnt+Q/+9nggkwgVbfybsc=\",\n name: \"UPDATE_NODE\",\n description: \"\",\n schema:\n \"input UpdateNodeInput {\\n id: ID!\\n parentFolder: ID\\n name: String\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"global\",\n },\n {\n id: \"vnQ7OB5b3wGLgjhbgJqAIpA+JLE=\",\n name: \"COPY_NODE\",\n description: \"\",\n schema:\n \"input CopyNodeInput {\\n srcId: ID!\\n targetId: ID!\\n targetName: String\\n targetParentFolder: ID\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"global\",\n },\n {\n id: \"VNyiD/sNGzk6k9A1Qe7s8dmrJxA=\",\n name: \"MOVE_NODE\",\n description: \"\",\n schema:\n \"input MoveNodeInput {\\n srcFolder: ID!\\n targetParentFolder: ID\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"global\",\n },\n ],\n },\n {\n id: \"0dHwHlxOM9x0vMZ+gLnKxf2qTEo=\",\n name: \"Drive\",\n description: \"\",\n operations: [\n {\n id: \"qGCiPGpTt/cyz3HzyrBn92z1dsU=\",\n name: \"SET_DRIVE_NAME\",\n description: \"\",\n schema: \"input SetDriveNameInput {\\n name: String!\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"global\",\n },\n {\n id: \"qGCiPGpTt/cyz3HzyrBn92z30dsU=\",\n name: \"SET_DRIVE_ICON\",\n description: \"\",\n schema: \"input SetDriveIconInput {\\n icon: String\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"global\",\n },\n {\n id: \"qGCiPGpTt/cyz3HzyrBn92z2dsU=\",\n name: \"SET_SHARING_TYPE\",\n description: \"\",\n schema: \"input SetSharingTypeInput {\\n type: String!\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"local\",\n },\n {\n id: \"qGCiPGpTt/cyz3HzyrBn92z3dsU=\",\n name: \"SET_AVAILABLE_OFFLINE\",\n description: \"\",\n schema:\n \"input SetAvailableOfflineInput {\\n availableOffline: Boolean!\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"local\",\n },\n {\n id: \"qGCiPGpTt/cyz3HzyrBn92z9dsU=\",\n name: \"ADD_LISTENER\",\n description: \"\",\n schema:\n \"input ListenerFilterInput {\\n documentType: [String!]\\n documentId: [ID!]\\n scope: [String!]\\n branch: [String!]\\n}\\n\\ninput ListenerCallInfoInput {\\n transmitterType: TransmitterType\\n name: String\\n data: String\\n}\\n\\ninput ListenerInput {\\n listenerId: ID!\\n label: String\\n block: Boolean!\\n system: Boolean!\\n filter: ListenerFilterInput!\\n callInfo: ListenerCallInfoInput\\n}\\n\\ninput AddListenerInput {\\n listener: ListenerInput!\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"local\",\n },\n {\n id: \"qGCiPGpTt/cyz3HzyrBn92z10dsU=\",\n name: \"REMOVE_LISTENER\",\n description: \"\",\n schema: \"input RemoveListenerInput {\\n listenerId: String!\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"local\",\n },\n {\n id: \"qGCiPGpTt/cyz3HzyrBn92z20dsU=\",\n name: \"ADD_TRIGGER\",\n description: \"\",\n schema:\n \"input PullResponderTriggerDataInput {\\n listenerId: ID!\\n url: String!\\n interval: String!\\n}\\n\\ninput TriggerInput {\\n id: ID!\\n type: TriggerType!\\n data: PullResponderTriggerDataInput\\n}\\n\\ninput AddTriggerInput {\\n trigger: TriggerInput!\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"local\",\n },\n {\n id: \"qGCiPGpTt/cyz3HzyrBn92z30dsU=\",\n name: \"REMOVE_TRIGGER\",\n description: \"\",\n schema: \"input RemoveTriggerInput {\\n triggerId: String!\\n}\",\n template: \"\",\n reducer: \"\",\n errors: [],\n examples: [],\n scope: \"local\",\n },\n ],\n },\n ],\n },\n ],\n};\n","export const driveDocumentType = \"powerhouse/document-drive\";\n","import { z } from \"zod\";\nimport {\n BaseDocumentHeaderSchema,\n BaseDocumentStateSchema,\n} from \"../../document-model/document-schema.js\";\nimport { driveDocumentType } from \"./document-type.js\";\nimport {\n DocumentDriveLocalStateSchema,\n DocumentDriveStateSchema,\n} from \"./schema/zod.js\";\nimport type { DocumentDriveDocument, DocumentDrivePHState } from \"./types.js\";\n\n/** Schema for validating the header object of a Drive document */\nexport const DriveDocumentHeaderSchema = BaseDocumentHeaderSchema.extend({\n documentType: z.literal(driveDocumentType),\n});\n\n/** Schema for validating the state object of a Drive document */\nexport const DrivePHStateSchema = BaseDocumentStateSchema.extend({\n global: DocumentDriveStateSchema(),\n local: DocumentDriveLocalStateSchema(),\n});\n\nexport const DriveDocumentSchema = z.object({\n header: DriveDocumentHeaderSchema,\n state: DrivePHStateSchema,\n initialState: DrivePHStateSchema,\n});\n\n/** Simple helper function to check if a state object is a Drive document state object */\nexport function isDriveState(state: unknown): state is DocumentDrivePHState {\n return DrivePHStateSchema.safeParse(state).success;\n}\n\n/** Simple helper function to assert that a document state object is a Drive document state object */\nexport function assertIsDriveState(\n state: unknown,\n): asserts state is DocumentDrivePHState {\n DrivePHStateSchema.parse(state);\n}\n\n/** Simple helper function to check if a document is a Drive document */\nexport function isDriveDocument(\n document: unknown,\n): document is DocumentDriveDocument {\n return DriveDocumentSchema.safeParse(document).success;\n}\n\n/** Simple helper function to assert that a document is a Drive document */\nexport function assertIsDriveDocument(\n document: unknown,\n): asserts document is DocumentDriveDocument {\n DriveDocumentSchema.parse(document);\n}\n","/**\n * Factory methods for creating DocumentDriveDocument instances\n */\n\nimport {\n createBaseState,\n defaultBaseState,\n type PHBaseState,\n} from \"../../document-model/state.js\";\nimport type {\n DocumentDriveGlobalState,\n DocumentDriveLocalState,\n DocumentDrivePHState,\n} from \"./types.js\";\n\nexport function defaultGlobalState(): DocumentDriveGlobalState {\n return {\n icon: null,\n name: \"\",\n nodes: [],\n };\n}\n\nexport function defaultLocalState(): DocumentDriveLocalState {\n return {\n availableOffline: false,\n listeners: [],\n sharingType: null,\n triggers: [],\n };\n}\n\nexport function defaultPHState(): DocumentDrivePHState {\n return {\n ...defaultBaseState(),\n global: defaultGlobalState(),\n local: defaultLocalState(),\n };\n}\n\nexport function createGlobalState(\n state?: Partial<DocumentDriveGlobalState>,\n): DocumentDriveGlobalState {\n return {\n ...defaultGlobalState(),\n ...(state || {}),\n } as DocumentDriveGlobalState;\n}\n\nexport function createLocalState(\n state?: Partial<DocumentDriveLocalState>,\n): DocumentDriveLocalState {\n return {\n ...defaultLocalState(),\n ...(state || {}),\n } as DocumentDriveLocalState;\n}\n\nexport function createState(\n baseState?: Partial<PHBaseState>,\n globalState?: Partial<DocumentDriveGlobalState>,\n localState?: Partial<DocumentDriveLocalState>,\n): DocumentDrivePHState {\n return {\n ...createBaseState(baseState?.auth, baseState?.document),\n global: createGlobalState(globalState),\n local: createLocalState(localState),\n };\n}\n","/**\n * This is a scaffold file meant for customization:\n * - modify it by implementing the reducer functions\n * - delete the file and run the code generator again to have it reset\n */\n\nimport type { Listener, Trigger } from \"../../gen/schema/types.js\";\nimport type { DocumentDriveDriveOperations } from \"../../gen/drive/actions.js\";\nimport { isDraft, original } from \"mutative\";\n\n/**\n * The untouched base of a mutative draft, or the value itself when it is not a\n * draft. Build replacement lists from it and freeze them before assigning, as\n * the node reducer does, so finalize skips the walk over the assigned list.\n */\nfunction readBase<T extends object>(value: T): T {\n return isDraft(value) ? original(value) : value;\n}\n\nexport const driveReducer: DocumentDriveDriveOperations = {\n setDriveNameOperation(state, action, dispatch) {\n state.name = action.input.name;\n },\n setDriveIconOperation(state, action, dispatch) {\n state.icon = action.input.icon ?? null;\n },\n setSharingTypeOperation(state, action, dispatch) {\n state.sharingType = action.input.type;\n },\n setAvailableOfflineOperation(state, action, dispatch) {\n state.availableOffline = action.input.availableOffline;\n },\n addListenerOperation(state, action, dispatch) {\n const { listener: input } = action.input;\n if (state.listeners.find((l) => l.listenerId === input.listenerId)) {\n throw new Error(`A listener with Id: ${input.listenerId} already exists`);\n }\n // Convert InputMaybe (undefined | null | T) to Maybe (null | T)\n const listener: Listener = {\n listenerId: input.listenerId,\n label: input.label ?? null,\n block: input.block,\n system: input.system,\n filter: {\n documentType: input.filter.documentType ?? null,\n documentId: input.filter.documentId ?? null,\n scope: input.filter.scope ?? null,\n branch: input.filter.branch ?? null,\n },\n callInfo: input.callInfo\n ? {\n transmitterType: input.callInfo.transmitterType ?? null,\n name: input.callInfo.name ?? null,\n data: input.callInfo.data ?? null,\n }\n : null,\n };\n state.listeners.push(listener);\n },\n removeListenerOperation(state, action, dispatch) {\n const listeners = readBase(state).listeners.filter(\n (listener) => listener.listenerId !== action.input.listenerId,\n );\n state.listeners = Object.freeze(listeners) as Listener[];\n },\n addTriggerOperation(state, action, dispatch) {\n const { trigger: input } = action.input;\n if (state.triggers.find((t) => t.id === input.id)) {\n throw new Error(`A trigger with Id: ${input.id} already exists`);\n }\n // Convert InputMaybe to Maybe - PullResponderTriggerData has all required fields so spread works\n const trigger: Trigger = {\n id: input.id,\n type: input.type,\n data: input.data ? { ...input.data } : null,\n };\n state.triggers.push(trigger);\n },\n removeTriggerOperation(state, action, dispatch) {\n const triggers = readBase(state).triggers.filter(\n (trigger) => trigger.id !== action.input.triggerId,\n );\n state.triggers = Object.freeze(triggers) as Trigger[];\n },\n};\n","import type {\n CopyNodeInput,\n FileNode,\n FolderNode,\n Node,\n} from \"../gen/schema/types.js\";\nimport type {\n GenerateNodesCopyIdGenerator,\n GenerateNodesCopySrc,\n} from \"./types.js\";\nimport { isDraft, original } from \"mutative\";\n\nexport function isFileNode(node: Node): node is FileNode {\n return node.kind === \"file\";\n}\n\nexport function isFolderNode(node: Node): node is FolderNode {\n return node.kind === \"folder\";\n}\n\nexport function getAncestors(node: Node, allNodes: Node[]): Node[] {\n if (!node.parentFolder) {\n return [];\n } else {\n const parentNode = allNodes.find((_node) => _node.id === node.parentFolder);\n if (!parentNode) {\n throw new Error(`Parent node with id ${node.parentFolder} not found`);\n }\n return [parentNode, ...getAncestors(parentNode, allNodes)];\n }\n}\n\nexport function getDescendants(node: Node, allNodes: Node[]): Node[] {\n const children = allNodes.filter((_node) => _node.parentFolder === node.id);\n const descendants = children.map((child) => getDescendants(child, allNodes));\n return [...children, ...descendants.flat()];\n}\n\n/**\n * Generates a copy of nodes based on the provided source and target information.\n * @param src - The source information for generating the copy.\n * @param idGenerator - The function used to generate new IDs for the copied nodes.\n * @param nodes - The array of nodes to copy from.\n * @returns An array of copied nodes with updated IDs and parent folders.\n * @throws Error if the root node with the specified ID is not found.\n */\nexport function generateNodesCopy(\n src: GenerateNodesCopySrc,\n idGenerator: GenerateNodesCopyIdGenerator,\n nodes: Node[],\n): CopyNodeInput[] {\n const rootNode = nodes.find((node) => node.id === src.srcId);\n\n if (!rootNode) {\n throw new Error(`Node with id ${src.srcId} not found`);\n }\n\n const nodesToCopy = [\n {\n ...rootNode,\n name: src.targetName || rootNode.name,\n parentFolder: src.targetParentFolder || null,\n },\n ...getDescendants(rootNode, nodes),\n ];\n\n const ids: Record<string, string | undefined> = {};\n\n // Add targetParentFolder to ids so that is not replaced by a new id\n if (src.targetParentFolder) {\n ids[src.targetParentFolder] = src.targetParentFolder;\n }\n\n const getNewNodeId = (node: Node): string => {\n let newId = ids[node.id];\n\n if (!newId) {\n const oldId = node.id;\n newId = idGenerator(node);\n ids[oldId] = newId;\n }\n\n return newId;\n };\n\n const copyNodesInput = nodesToCopy.map<CopyNodeInput>((node) => ({\n srcId: node.id,\n targetId: getNewNodeId(node),\n targetName: node.name,\n targetParentFolder: node.parentFolder ? ids[node.parentFolder] : null,\n }));\n\n return copyNodesInput;\n}\n\nexport function getNextCopyNumber(\n files: string[],\n baseFilename: string,\n): number {\n let maxNumber = 0; // Start by assuming no copies exist\n\n // Regex to find files that match the base filename followed by \" (copy)\" and possibly a number\n const regex = new RegExp(\n `^${escapeRegExp(baseFilename)} \\\\(copy\\\\)(?: (\\\\d+))?$`,\n );\n\n for (const file of files) {\n const match = file.match(regex);\n if (match) {\n const number = match[1] ? parseInt(match[1], 10) : 1;\n if (number > maxNumber) {\n maxNumber = number;\n }\n }\n }\n\n return maxNumber + 1;\n}\n\nexport function escapeRegExp(string: string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n\n/**\n * A plain, unfrozen copy of the node list for read-only scans. Inside a\n * mutative draft the copy is taken from the untouched base list, so a find or\n * filter over it does not create a child draft per element it visits, and it is\n * a copy because the stored list is frozen and V8 scans a frozen array several\n * times slower than a normal one. Callers must read before they write: the base\n * list does not see mutations made earlier in the same action.\n */\nexport function readNodes(state: { nodes: Node[] }): Node[] {\n return [...(isDraft(state) ? original(state).nodes : state.nodes)];\n}\n\n/**\n * The given array sorted by id and frozen, in place -- it takes ownership of\n * the array it is handed, which is why it is private to this module and only\n * ever given a list built at the call site. The freeze is what makes assigning\n * the list to a mutative draft cheap: assigning a draftable value to a draft\n * property queues a finalize pass that walks every element of the assigned\n * value, and the walk exits at its Object.isFrozen check instead. Elements must\n * be plain nodes -- an element that is still a draft would never be replaced by\n * its final value, because the walk that does that replacement is the one being\n * skipped.\n */\nfunction freezeSortedById(nodes: Node[]): readonly Node[] {\n nodes.sort((a, b) => a.id.localeCompare(b.id));\n return Object.freeze(nodes);\n}\n\n/**\n * A copy of the given list, sorted by id and frozen, which is the shape the\n * node reducer assigns. Read the list with readNodes, build the new list from\n * it, and pass what this returns to assignNodes. The copy is what keeps the\n * freeze off the caller's array.\n */\nexport function sortNodesById(nodes: readonly Node[]): readonly Node[] {\n return freezeSortedById([...nodes]);\n}\n\n/**\n * The node list with a node added, ordered by id and frozen, in the same shape\n * sortNodesById returns. The list is built and sorted as plain objects, so\n * inside a mutative draft the comparator never reads an element through the\n * draft proxy. Pass the list read with readNodes: the draft's own list would\n * put child drafts in the result, which the freeze then keeps mutative from\n * resolving.\n */\nexport function insertNodeSorted(\n nodes: readonly Node[],\n node: Node,\n): readonly Node[] {\n return freezeSortedById([...nodes, node]);\n}\n\n/**\n * Installs a node list as state.nodes. Every assignment the node reducer makes\n * goes through here, and this is the one place a frozen array crosses into\n * state: the generated DocumentDriveGlobalState types nodes as a mutable\n * Node[], so the cast below is where that gap is paid rather than spread over\n * the reducer. Consumers must treat drive.state.global.nodes as read-only --\n * mutating it in place (push, sort, splice) throws in strict mode; copy it\n * first, as readNodes does. Note that UPGRADE_DOCUMENT's initialState and\n * imported documents replace a whole scope and can install a list this\n * function never saw.\n */\nexport function assignNodes(\n state: { nodes: Node[] },\n nodes: readonly Node[],\n): void {\n state.nodes = nodes as Node[];\n}\n\nexport function handleTargetNameCollisions(params: {\n nodes: Node[];\n targetParentFolder: string | null;\n srcName: string;\n srcKind: \"file\" | \"folder\";\n}) {\n const { nodes, targetParentFolder, srcName, srcKind } = params;\n\n const targetNodeChildrenNames = nodes\n .filter((node) =>\n targetParentFolder === \"\"\n ? node.parentFolder === null\n : node.parentFolder === targetParentFolder,\n )\n .filter((node) => node.kind === srcKind)\n .map((node) => node.name);\n\n const targetHasNodesWithSameName = targetNodeChildrenNames.includes(srcName);\n\n const targetName = targetHasNodesWithSameName\n ? `${srcName} (copy) ${getNextCopyNumber(targetNodeChildrenNames, srcName)}`\n : srcName;\n\n return targetName;\n}\n\nexport const isValidName = (name: string) => {\n // Names are display labels (URLs use a slugified id), so allow any unicode;\n // reject only empty/whitespace-only names and control characters.\n // eslint-disable-next-line no-control-regex\n return name.trim().length > 0 && !/[\\u0000-\\u001F\\u007F]/.test(name);\n};\n","/**\n * This is a scaffold file meant for customization:\n * - modify it by implementing the reducer functions\n * - delete the file and run the code generator again to have it reset\n */\n\nimport type { FileNode } from \"../../gen/schema/types.js\";\nimport type { DocumentDriveNodeOperations } from \"../../gen/node/actions.js\";\nimport {\n assignNodes,\n getDescendants,\n handleTargetNameCollisions,\n insertNodeSorted,\n isFileNode,\n isFolderNode,\n isValidName,\n readNodes,\n sortNodesById,\n} from \"../utils.js\";\n\nexport const nodeReducer: DocumentDriveNodeOperations = {\n addFileOperation(state, action, dispatch) {\n const nodes = readNodes(state);\n if (nodes.find((node) => node.id === action.input.id)) {\n throw new Error(`Node with id ${action.input.id} already exists!`);\n }\n\n if (!isValidName(action.input.name)) {\n throw new Error(\n `Invalid name: '${action.input.name}'. Names must not be empty or contain control characters.`,\n );\n }\n\n const name = handleTargetNameCollisions({\n nodes,\n srcName: action.input.name,\n srcKind: \"file\",\n targetParentFolder: action.input.parentFolder || null,\n });\n\n const fileNode: FileNode = {\n id: action.input.id,\n name,\n kind: \"file\",\n parentFolder: action.input.parentFolder ?? null,\n documentType: action.input.documentType,\n };\n assignNodes(state, insertNodeSorted(nodes, fileNode));\n\n dispatch?.({\n type: \"CREATE_CHILD_DOCUMENT\",\n input: {\n id: action.input.id,\n documentType: action.input.documentType,\n },\n });\n },\n addFolderOperation(state, action) {\n const nodes = readNodes(state);\n if (nodes.find((node) => node.id === action.input.id)) {\n throw new Error(`Node with id ${action.input.id} already exists!`);\n }\n\n if (!isValidName(action.input.name)) {\n throw new Error(\n `Invalid name: '${action.input.name}'. Names must not be empty or contain control characters.`,\n );\n }\n\n const name = handleTargetNameCollisions({\n nodes,\n srcName: action.input.name,\n srcKind: \"folder\",\n targetParentFolder: action.input.parentFolder || null,\n });\n\n assignNodes(\n state,\n insertNodeSorted(nodes, {\n ...action.input,\n name,\n kind: \"folder\",\n parentFolder: action.input.parentFolder ?? null,\n }),\n );\n },\n deleteNodeOperation(state, action, dispatch) {\n const nodes = readNodes(state);\n const node = nodes.find((node) => node.id === action.input.id);\n if (!node) {\n throw new Error(`Node with id ${action.input.id} not found`);\n }\n const descendants = getDescendants(node, nodes);\n assignNodes(\n state,\n sortNodesById(\n nodes.filter(\n (node) =>\n node.id !== action.input.id &&\n !descendants.find((descendant) => descendant.id === node.id),\n ),\n ),\n );\n\n [node, ...descendants]\n .filter((node) => isFileNode(node))\n .forEach((node) => {\n dispatch?.({\n type: \"DELETE_CHILD_DOCUMENT\",\n input: {\n id: node.id,\n },\n });\n });\n },\n updateFileOperation(state, action) {\n if (action.input.name && !isValidName(action.input.name)) {\n throw new Error(\n `Invalid name: '${action.input.name}'. Names must not be empty or contain control characters.`,\n );\n }\n\n const nodes = readNodes(state);\n assignNodes(\n state,\n sortNodesById(\n nodes.map((node) =>\n node.id === action.input.id\n ? {\n ...node,\n ...{\n name: handleTargetNameCollisions({\n nodes: nodes.filter((n) => n.id !== action.input.id),\n srcName: action.input.name ?? node.name,\n srcKind: \"file\",\n targetParentFolder:\n action.input.parentFolder ?? node.parentFolder,\n }),\n documentType:\n action.input.documentType ??\n (node as FileNode).documentType,\n },\n }\n : node,\n ),\n ),\n );\n },\n updateNodeOperation(state, action) {\n if (action.input.name && !isValidName(action.input.name)) {\n throw new Error(\n `Invalid name: '${action.input.name}'. Names must not be empty or contain control characters.`,\n );\n }\n\n const nodes = readNodes(state);\n assignNodes(\n state,\n sortNodesById(\n nodes.map((node) =>\n node.id === action.input.id\n ? {\n ...node,\n ...{\n name: handleTargetNameCollisions({\n nodes: nodes.filter((n) => n.id !== action.input.id),\n srcName: action.input.name ?? node.name,\n srcKind: node.kind === \"file\" ? \"file\" : \"folder\",\n targetParentFolder:\n action.input.parentFolder ?? node.parentFolder,\n }),\n parentFolder:\n action.input.parentFolder === null\n ? null\n : node.parentFolder,\n },\n }\n : node,\n ),\n ),\n );\n },\n copyNodeOperation(state, action, dispatch) {\n const nodes = readNodes(state);\n const node = nodes.find((node) => node.id === action.input.srcId);\n\n if (!node) {\n throw new Error(`Node with id ${action.input.srcId} not found`);\n }\n\n const duplicatedNode = nodes.find(\n (node) => node.id === action.input.targetId,\n );\n\n if (duplicatedNode) {\n throw new Error(`Node with id ${action.input.targetId} already exists`);\n }\n\n const name = handleTargetNameCollisions({\n nodes,\n srcName: action.input.targetName || node.name,\n srcKind: node.kind === \"file\" ? \"file\" : \"folder\",\n targetParentFolder: action.input.targetParentFolder || null,\n });\n\n const newNode = {\n ...node,\n id: action.input.targetId,\n slug: action.input.targetId,\n name,\n parentFolder: action.input.targetParentFolder || null,\n };\n\n assignNodes(state, insertNodeSorted(nodes, newNode));\n\n const isFile = isFileNode(newNode);\n if (isFile) {\n dispatch?.({\n type: \"COPY_CHILD_DOCUMENT\",\n input: {\n id: action.input.srcId,\n newId: action.input.targetId,\n },\n });\n }\n },\n moveNodeOperation(state, action) {\n if (action.input.srcFolder === action.input.targetParentFolder) {\n throw new Error(\n \"Circular Reference Error: Attempting to move a node to its current parent folder\",\n );\n }\n\n const nodes = readNodes(state);\n const node = nodes.find((node) => node.id === action.input.srcFolder);\n\n if (!node) {\n throw new Error(`Node with id ${action.input.srcFolder} not found`);\n }\n\n const name = handleTargetNameCollisions({\n nodes,\n srcName: node.name,\n srcKind: node.kind === \"file\" ? \"file\" : \"folder\",\n targetParentFolder: action.input.targetParentFolder || null,\n });\n\n if (isFolderNode(node)) {\n const descendants = getDescendants(node, nodes);\n // throw error if moving a folder to one of its descendants\n if (\n descendants.find(\n (descendant) => descendant.id === action.input.targetParentFolder,\n )\n ) {\n throw new Error(\n \"Circular Reference Error: Cannot move a folder to one of its descendants\",\n );\n }\n }\n\n assignNodes(\n state,\n sortNodesById(\n nodes.map((node) => {\n if (node.id === action.input.srcFolder) {\n return {\n ...node,\n name,\n parentFolder: action.input.targetParentFolder || null,\n };\n }\n\n return node;\n }),\n ),\n );\n },\n};\n","import { isDocumentAction } from \"../../document-model/documents.js\";\nimport { createReducer } from \"../../document-model/reducer.js\";\nimport type { Reducer, StateReducer } from \"../../document-model/types.js\";\nimport { driveReducer } from \"../src/reducers/drive.js\";\nimport { nodeReducer } from \"../src/reducers/node.js\";\nimport {\n AddFileInputSchema,\n AddFolderInputSchema,\n AddListenerInputSchema,\n AddTriggerInputSchema,\n CopyNodeInputSchema,\n DeleteNodeInputSchema,\n MoveNodeInputSchema,\n RemoveListenerInputSchema,\n RemoveTriggerInputSchema,\n SetAvailableOfflineInputSchema,\n SetDriveIconInputSchema,\n SetDriveNameInputSchema,\n SetSharingTypeInputSchema,\n UpdateFileInputSchema,\n UpdateNodeInputSchema,\n} from \"./schema/zod.js\";\nimport type { DocumentDrivePHState } from \"./types.js\";\n\nconst schemaMemo = new Map<() => unknown, unknown>();\n\nfunction memoizedSchema<T>(makeSchema: () => T): T {\n let schema = schemaMemo.get(makeSchema) as T | undefined;\n if (schema === undefined) {\n schema = makeSchema();\n schemaMemo.set(makeSchema, schema);\n }\n return schema;\n}\n\nconst driveStateReducer: StateReducer<DocumentDrivePHState> = (\n state,\n action,\n dispatch,\n) => {\n if (isDocumentAction(action)) {\n return state;\n }\n\n const typedAction = action as any;\n switch (typedAction.type) {\n case \"ADD_FILE\":\n memoizedSchema(AddFileInputSchema).parse(typedAction.input);\n nodeReducer.addFileOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"ADD_FOLDER\":\n memoizedSchema(AddFolderInputSchema).parse(typedAction.input);\n nodeReducer.addFolderOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"DELETE_NODE\":\n memoizedSchema(DeleteNodeInputSchema).parse(typedAction.input);\n nodeReducer.deleteNodeOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"UPDATE_FILE\":\n memoizedSchema(UpdateFileInputSchema).parse(typedAction.input);\n nodeReducer.updateFileOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"UPDATE_NODE\":\n memoizedSchema(UpdateNodeInputSchema).parse(typedAction.input);\n nodeReducer.updateNodeOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"COPY_NODE\":\n memoizedSchema(CopyNodeInputSchema).parse(typedAction.input);\n nodeReducer.copyNodeOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"MOVE_NODE\":\n memoizedSchema(MoveNodeInputSchema).parse(typedAction.input);\n nodeReducer.moveNodeOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"SET_DRIVE_NAME\":\n memoizedSchema(SetDriveNameInputSchema).parse(typedAction.input);\n driveReducer.setDriveNameOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"SET_DRIVE_ICON\":\n memoizedSchema(SetDriveIconInputSchema).parse(typedAction.input);\n driveReducer.setDriveIconOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"SET_SHARING_TYPE\":\n memoizedSchema(SetSharingTypeInputSchema).parse(typedAction.input);\n driveReducer.setSharingTypeOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"SET_AVAILABLE_OFFLINE\":\n memoizedSchema(SetAvailableOfflineInputSchema).parse(typedAction.input);\n driveReducer.setAvailableOfflineOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"ADD_LISTENER\":\n memoizedSchema(AddListenerInputSchema).parse(typedAction.input);\n driveReducer.addListenerOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"REMOVE_LISTENER\":\n memoizedSchema(RemoveListenerInputSchema).parse(typedAction.input);\n driveReducer.removeListenerOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"ADD_TRIGGER\":\n memoizedSchema(AddTriggerInputSchema).parse(typedAction.input);\n driveReducer.addTriggerOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n case \"REMOVE_TRIGGER\":\n memoizedSchema(RemoveTriggerInputSchema).parse(typedAction.input);\n driveReducer.removeTriggerOperation(\n (state as any)[typedAction.scope],\n action as any,\n dispatch,\n );\n break;\n\n default:\n return state;\n }\n};\n\nexport const driveDocumentReducer: Reducer<DocumentDrivePHState> =\n createReducer<DocumentDrivePHState>(driveStateReducer);\n","import type {\n DocumentDriveGlobalState,\n DocumentDriveLocalState,\n} from \"./schema/types.js\";\nimport type { DocumentDrivePHState } from \"./types.js\";\nimport type {\n AssertIsDocumentOfType,\n AssertIsStateOfType,\n CreateDocument,\n CreateState,\n IsDocumentOfType,\n IsStateOfType,\n LoadFromInput,\n SaveToFileHandle,\n} from \"document-model\";\nimport {\n baseCreateDocument,\n baseLoadFromInput,\n baseSaveToFileHandle,\n defaultBaseState,\n} from \"document-model\";\nimport {\n assertIsDriveDocument,\n assertIsDriveState,\n isDriveDocument,\n isDriveState,\n} from \"./document-schema.js\";\nimport { driveDocumentType } from \"./document-type.js\";\nimport { driveDocumentReducer } from \"./reducer.js\";\n\nexport const initialGlobalState: DocumentDriveGlobalState = {\n name: \"\",\n nodes: [],\n icon: null,\n};\nexport const initialLocalState: DocumentDriveLocalState = {\n listeners: [],\n triggers: [],\n sharingType: \"private\",\n availableOffline: false,\n};\n\nexport const driveCreateState: CreateState<DocumentDrivePHState> = (\n state: Partial<DocumentDrivePHState> | undefined,\n) => {\n return {\n ...defaultBaseState(),\n global: { ...initialGlobalState, ...state?.global },\n local: { ...initialLocalState, ...state?.local },\n };\n};\n\nexport const driveCreateDocument: CreateDocument<DocumentDrivePHState> = (\n state,\n) => {\n return baseCreateDocument(driveCreateState, state, driveDocumentType);\n};\n\nexport const driveSaveToFileHandle: SaveToFileHandle = (document, input) => {\n return baseSaveToFileHandle(document, input);\n};\n\nexport const driveLoadFromInput: LoadFromInput<DocumentDrivePHState> = (\n input,\n) => {\n return baseLoadFromInput(input, driveDocumentReducer);\n};\n\nexport const isStateOfType: IsStateOfType<DocumentDrivePHState> = (state) => {\n return isDriveState(state);\n};\n\nexport const assertIsStateOfType: AssertIsStateOfType<DocumentDrivePHState> = (\n state,\n) => {\n assertIsDriveState(state);\n};\n\nexport const isDocumentOfType: IsDocumentOfType<DocumentDrivePHState> = (\n document,\n) => {\n return isDriveDocument(document);\n};\n\nexport const assertIsDocumentOfType: AssertIsDocumentOfType<\n DocumentDrivePHState\n> = (document) => {\n assertIsDriveDocument(document);\n};\n","import { createState, defaultBaseState } from \"../document-model/state.js\";\nimport { driveDocumentFileExtension } from \"./constants.js\";\nimport * as actions from \"./gen/creators.js\";\nimport { driveDocumentModel } from \"./gen/document-model.js\";\nimport { driveDocumentReducer } from \"./gen/reducer.js\";\nimport {\n assertIsDocumentOfType,\n assertIsStateOfType,\n driveCreateDocument,\n driveCreateState,\n driveLoadFromInput,\n driveSaveToFileHandle,\n isDocumentOfType,\n isStateOfType,\n} from \"./gen/utils.js\";\nimport type { DriveDocumentModelModule } from \"./types.js\";\nexport const driveDocumentModelModule: DriveDocumentModelModule = {\n actions,\n reducer: driveDocumentReducer,\n documentModel: createState(defaultBaseState(), driveDocumentModel),\n utils: {\n fileExtension: driveDocumentFileExtension,\n createState: driveCreateState,\n createDocument: driveCreateDocument,\n loadFromInput: driveLoadFromInput,\n saveToFileHandle: driveSaveToFileHandle,\n isStateOfType,\n assertIsStateOfType,\n isDocumentOfType,\n assertIsDocumentOfType,\n },\n};\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { _u as UnsupportedDocumentModelVersionError, cu as AuthInitializerNotCreatorError, du as FileSystemError, fu as GrantNotFoundError, gu as InvalidAuthVersionError, hu as InvalidActionInputZodError, lu as AuthPolicyNotPreservedError, mu as InvalidActionInputError, ou as AuthActionNotAllowedError, pu as HashMismatchError, su as AuthAlreadyInitializedError, uu as DowngradeNotSupportedError } from "../types-DDH6v2BE.js";
2
+ export { AuthActionNotAllowedError, AuthAlreadyInitializedError, AuthInitializerNotCreatorError, AuthPolicyNotPreservedError, DowngradeNotSupportedError, FileSystemError, GrantNotFoundError, HashMismatchError, InvalidActionInputError, InvalidActionInputZodError, InvalidAuthVersionError, UnsupportedDocumentModelVersionError };
3
+ export {};
@@ -0,0 +1,152 @@
1
+ //#region document-model/errors.ts
2
+ const FileSystemError = /* @__PURE__ */ new Error("File system not available.");
3
+ var InvalidActionInputError = class extends Error {
4
+ data;
5
+ constructor(data) {
6
+ super();
7
+ this.name = "InvalidActionInputError";
8
+ this.data = data;
9
+ this.message = this.message || `Invalid action input: ${JSON.stringify(data, null, 2)}`;
10
+ }
11
+ };
12
+ var InvalidActionInputZodError = class extends InvalidActionInputError {
13
+ issues;
14
+ constructor(issues) {
15
+ super(issues);
16
+ this.issues = issues;
17
+ this.name = "InvalidActionInputZodError";
18
+ }
19
+ };
20
+ /**
21
+ * Error thrown when attempting to downgrade a document version.
22
+ */
23
+ var DowngradeNotSupportedError = class extends Error {
24
+ documentType;
25
+ fromVersion;
26
+ toVersion;
27
+ constructor(documentType, fromVersion, toVersion) {
28
+ super(`Downgrade not supported for ${documentType}: cannot upgrade from version ${fromVersion} to ${toVersion}`);
29
+ this.name = "DowngradeNotSupportedError";
30
+ this.documentType = documentType;
31
+ this.fromVersion = fromVersion;
32
+ this.toVersion = toVersion;
33
+ }
34
+ };
35
+ /**
36
+ * Thrown when INITIALIZE_AUTH is applied to an already-initialized auth scope.
37
+ * The genesis action is valid only at auth revision zero.
38
+ */
39
+ var AuthAlreadyInitializedError = class extends Error {
40
+ documentId;
41
+ constructor(documentId) {
42
+ super(`Auth scope already initialized for document ${documentId}: INITIALIZE_AUTH is valid only at auth revision zero`);
43
+ this.name = "AuthAlreadyInitializedError";
44
+ this.documentId = documentId;
45
+ }
46
+ };
47
+ /**
48
+ * Thrown when INITIALIZE_AUTH is not signed by the document creator (its signer
49
+ * does not match `header.sig.publicKey`), so it cannot set the auth policy.
50
+ */
51
+ var AuthInitializerNotCreatorError = class extends Error {
52
+ documentId;
53
+ constructor(documentId) {
54
+ super(`INITIALIZE_AUTH for document ${documentId} must be signed by the document creator`);
55
+ this.name = "AuthInitializerNotCreatorError";
56
+ this.documentId = documentId;
57
+ }
58
+ };
59
+ /**
60
+ * Thrown when INITIALIZE_AUTH carries a version below 1. Version 0 is reserved
61
+ * for the uninitialized auth scope.
62
+ */
63
+ var InvalidAuthVersionError = class extends Error {
64
+ documentId;
65
+ version;
66
+ constructor(documentId, version) {
67
+ super(`Invalid auth policy version ${version} for document ${documentId}: INITIALIZE_AUTH requires an integer version >= 1`);
68
+ this.name = "InvalidAuthVersionError";
69
+ this.documentId = documentId;
70
+ this.version = version;
71
+ }
72
+ };
73
+ /** Thrown when a duplicate would lose the source policy's version or creator binding. */
74
+ var AuthPolicyNotPreservedError = class extends Error {
75
+ documentId;
76
+ constructor(documentId) {
77
+ super(`Duplicating document ${documentId} would not preserve its auth policy: the copy loses the policy version or its creator binding`);
78
+ this.name = "AuthPolicyNotPreservedError";
79
+ this.documentId = documentId;
80
+ }
81
+ };
82
+ /**
83
+ * Thrown when a grant referenced by REMOVE_GRANT or MOVE_GRANT does not exist.
84
+ */
85
+ var GrantNotFoundError = class extends Error {
86
+ grantId;
87
+ constructor(grantId) {
88
+ super(`Grant not found in auth scope: ${grantId}`);
89
+ this.name = "GrantNotFoundError";
90
+ this.grantId = grantId;
91
+ }
92
+ };
93
+ /**
94
+ * Thrown when a disallowed action (UNDO, REDO) targets the auth scope.
95
+ */
96
+ var AuthActionNotAllowedError = class extends Error {
97
+ actionType;
98
+ constructor(actionType) {
99
+ super(`${actionType} is not permitted on the auth scope`);
100
+ this.name = "AuthActionNotAllowedError";
101
+ this.actionType = actionType;
102
+ }
103
+ };
104
+ var HashMismatchError = class extends Error {
105
+ _scope;
106
+ _document;
107
+ _operation;
108
+ constructor(scope, document, operation) {
109
+ super();
110
+ this.name = "HashMismatchError";
111
+ this._document = document;
112
+ this._scope = scope;
113
+ this._operation = operation;
114
+ this.message = JSON.stringify({
115
+ error: `Hash mismatch on document ${document.header.id}, scope ${scope}, index ${operation.index}`,
116
+ document,
117
+ operation
118
+ }, null, 1);
119
+ }
120
+ get document() {
121
+ return this._document;
122
+ }
123
+ get scope() {
124
+ return this._scope;
125
+ }
126
+ get operation() {
127
+ return this._operation;
128
+ }
129
+ };
130
+ /**
131
+ * Thrown when replay or import requires a document model version that is not
132
+ * registered. Carries the data the UI needs to explain the mismatch.
133
+ */
134
+ var UnsupportedDocumentModelVersionError = class extends Error {
135
+ documentType;
136
+ requiredVersion;
137
+ availableVersions;
138
+ constructor(documentType, requiredVersion, availableVersions) {
139
+ super(`No reducer registered for document version ${requiredVersion}. Available versions: ${availableVersions.join(", ")}`);
140
+ this.name = "UnsupportedDocumentModelVersionError";
141
+ this.documentType = documentType;
142
+ this.requiredVersion = requiredVersion;
143
+ this.availableVersions = availableVersions;
144
+ }
145
+ static isError(error) {
146
+ return Error.isError(error) && error.name === "UnsupportedDocumentModelVersionError";
147
+ }
148
+ };
149
+ //#endregion
150
+ export { AuthActionNotAllowedError, AuthAlreadyInitializedError, AuthInitializerNotCreatorError, AuthPolicyNotPreservedError, DowngradeNotSupportedError, FileSystemError, GrantNotFoundError, HashMismatchError, InvalidActionInputError, InvalidActionInputZodError, InvalidAuthVersionError, UnsupportedDocumentModelVersionError };
151
+
152
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","names":[],"sources":["../../document-model/errors.ts"],"sourcesContent":["import type { ZodIssue } from \"zod\";\nimport type { PHDocument } from \"./documents.js\";\nimport type { Operation } from \"./operations.js\";\n\nexport const FileSystemError = new Error(\"File system not available.\");\n\nexport class InvalidActionInputError extends Error {\n public data: unknown;\n constructor(data: unknown) {\n super();\n this.name = \"InvalidActionInputError\";\n this.data = data;\n this.message =\n this.message || `Invalid action input: ${JSON.stringify(data, null, 2)}`;\n }\n}\n\nexport class InvalidActionInputZodError extends InvalidActionInputError {\n public issues: ZodIssue[];\n\n constructor(issues: ZodIssue[]) {\n super(issues);\n this.issues = issues;\n this.name = \"InvalidActionInputZodError\";\n }\n}\n\n/**\n * Error thrown when attempting to downgrade a document version.\n */\nexport class DowngradeNotSupportedError extends Error {\n public readonly documentType: string;\n public readonly fromVersion: number;\n public readonly toVersion: number;\n\n constructor(documentType: string, fromVersion: number, toVersion: number) {\n super(\n `Downgrade not supported for ${documentType}: cannot upgrade from version ${fromVersion} to ${toVersion}`,\n );\n this.name = \"DowngradeNotSupportedError\";\n this.documentType = documentType;\n this.fromVersion = fromVersion;\n this.toVersion = toVersion;\n }\n}\n\n/**\n * Thrown when INITIALIZE_AUTH is applied to an already-initialized auth scope.\n * The genesis action is valid only at auth revision zero.\n */\nexport class AuthAlreadyInitializedError extends Error {\n public readonly documentId: string;\n\n constructor(documentId: string) {\n super(\n `Auth scope already initialized for document ${documentId}: INITIALIZE_AUTH is valid only at auth revision zero`,\n );\n this.name = \"AuthAlreadyInitializedError\";\n this.documentId = documentId;\n }\n}\n\n/**\n * Thrown when INITIALIZE_AUTH is not signed by the document creator (its signer\n * does not match `header.sig.publicKey`), so it cannot set the auth policy.\n */\nexport class AuthInitializerNotCreatorError extends Error {\n public readonly documentId: string;\n\n constructor(documentId: string) {\n super(\n `INITIALIZE_AUTH for document ${documentId} must be signed by the document creator`,\n );\n this.name = \"AuthInitializerNotCreatorError\";\n this.documentId = documentId;\n }\n}\n\n/**\n * Thrown when INITIALIZE_AUTH carries a version below 1. Version 0 is reserved\n * for the uninitialized auth scope.\n */\nexport class InvalidAuthVersionError extends Error {\n public readonly documentId: string;\n public readonly version: number;\n\n constructor(documentId: string, version: number) {\n super(\n `Invalid auth policy version ${version} for document ${documentId}: INITIALIZE_AUTH requires an integer version >= 1`,\n );\n this.name = \"InvalidAuthVersionError\";\n this.documentId = documentId;\n this.version = version;\n }\n}\n\n/** Thrown when a duplicate would lose the source policy's version or creator binding. */\nexport class AuthPolicyNotPreservedError extends Error {\n public readonly documentId: string;\n\n constructor(documentId: string) {\n super(\n `Duplicating document ${documentId} would not preserve its auth policy: the copy loses the policy version or its creator binding`,\n );\n this.name = \"AuthPolicyNotPreservedError\";\n this.documentId = documentId;\n }\n}\n\n/**\n * Thrown when a grant referenced by REMOVE_GRANT or MOVE_GRANT does not exist.\n */\nexport class GrantNotFoundError extends Error {\n public readonly grantId: string;\n\n constructor(grantId: string) {\n super(`Grant not found in auth scope: ${grantId}`);\n this.name = \"GrantNotFoundError\";\n this.grantId = grantId;\n }\n}\n\n/**\n * Thrown when a disallowed action (UNDO, REDO) targets the auth scope.\n */\nexport class AuthActionNotAllowedError extends Error {\n public readonly actionType: string;\n\n constructor(actionType: string) {\n super(`${actionType} is not permitted on the auth scope`);\n this.name = \"AuthActionNotAllowedError\";\n this.actionType = actionType;\n }\n}\n\nexport class HashMismatchError extends Error {\n protected _scope: string;\n protected _document: PHDocument;\n protected _operation: Operation;\n\n constructor(scope: string, document: PHDocument, operation: Operation) {\n super();\n this.name = \"HashMismatchError\";\n this._document = document;\n this._scope = scope;\n this._operation = operation;\n\n this.message = JSON.stringify(\n {\n error: `Hash mismatch on document ${document.header.id}, scope ${scope}, index ${operation.index}`,\n document,\n operation,\n },\n null,\n 1,\n );\n }\n\n get document() {\n return this._document;\n }\n\n get scope() {\n return this._scope;\n }\n\n get operation() {\n return this._operation;\n }\n}\n\n/**\n * Thrown when replay or import requires a document model version that is not\n * registered. Carries the data the UI needs to explain the mismatch.\n */\nexport class UnsupportedDocumentModelVersionError extends Error {\n public readonly documentType: string;\n public readonly requiredVersion: number;\n public readonly availableVersions: number[];\n\n constructor(\n documentType: string,\n requiredVersion: number,\n availableVersions: number[],\n ) {\n super(\n `No reducer registered for document version ${requiredVersion}. Available versions: ${availableVersions.join(\", \")}`,\n );\n this.name = \"UnsupportedDocumentModelVersionError\";\n this.documentType = documentType;\n this.requiredVersion = requiredVersion;\n this.availableVersions = availableVersions;\n }\n\n static isError(\n error: unknown,\n ): error is UnsupportedDocumentModelVersionError {\n return (\n Error.isError(error) &&\n error.name === \"UnsupportedDocumentModelVersionError\"\n );\n }\n}\n"],"mappings":";AAIA,MAAa,kCAAkB,IAAI,MAAM,4BAA4B;AAErE,IAAa,0BAAb,cAA6C,MAAM;CACjD;CACA,YAAY,MAAe;EACzB,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,OAAO;EACZ,KAAK,UACH,KAAK,WAAW,yBAAyB,KAAK,UAAU,MAAM,MAAM,CAAC;CACzE;AACF;AAEA,IAAa,6BAAb,cAAgD,wBAAwB;CACtE;CAEA,YAAY,QAAoB;EAC9B,MAAM,MAAM;EACZ,KAAK,SAAS;EACd,KAAK,OAAO;CACd;AACF;;;;AAKA,IAAa,6BAAb,cAAgD,MAAM;CACpD;CACA;CACA;CAEA,YAAY,cAAsB,aAAqB,WAAmB;EACxE,MACE,+BAA+B,aAAa,gCAAgC,YAAY,MAAM,WAChG;EACA,KAAK,OAAO;EACZ,KAAK,eAAe;EACpB,KAAK,cAAc;EACnB,KAAK,YAAY;CACnB;AACF;;;;;AAMA,IAAa,8BAAb,cAAiD,MAAM;CACrD;CAEA,YAAY,YAAoB;EAC9B,MACE,+CAA+C,WAAW,sDAC5D;EACA,KAAK,OAAO;EACZ,KAAK,aAAa;CACpB;AACF;;;;;AAMA,IAAa,iCAAb,cAAoD,MAAM;CACxD;CAEA,YAAY,YAAoB;EAC9B,MACE,gCAAgC,WAAW,wCAC7C;EACA,KAAK,OAAO;EACZ,KAAK,aAAa;CACpB;AACF;;;;;AAMA,IAAa,0BAAb,cAA6C,MAAM;CACjD;CACA;CAEA,YAAY,YAAoB,SAAiB;EAC/C,MACE,+BAA+B,QAAQ,gBAAgB,WAAW,mDACpE;EACA,KAAK,OAAO;EACZ,KAAK,aAAa;EAClB,KAAK,UAAU;CACjB;AACF;;AAGA,IAAa,8BAAb,cAAiD,MAAM;CACrD;CAEA,YAAY,YAAoB;EAC9B,MACE,wBAAwB,WAAW,8FACrC;EACA,KAAK,OAAO;EACZ,KAAK,aAAa;CACpB;AACF;;;;AAKA,IAAa,qBAAb,cAAwC,MAAM;CAC5C;CAEA,YAAY,SAAiB;EAC3B,MAAM,kCAAkC,SAAS;EACjD,KAAK,OAAO;EACZ,KAAK,UAAU;CACjB;AACF;;;;AAKA,IAAa,4BAAb,cAA+C,MAAM;CACnD;CAEA,YAAY,YAAoB;EAC9B,MAAM,GAAG,WAAW,oCAAoC;EACxD,KAAK,OAAO;EACZ,KAAK,aAAa;CACpB;AACF;AAEA,IAAa,oBAAb,cAAuC,MAAM;CAC3C;CACA;CACA;CAEA,YAAY,OAAe,UAAsB,WAAsB;EACrE,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,YAAY;EACjB,KAAK,SAAS;EACd,KAAK,aAAa;EAElB,KAAK,UAAU,KAAK,UAClB;GACE,OAAO,6BAA6B,SAAS,OAAO,GAAG,UAAU,MAAM,UAAU,UAAU;GAC3F;GACA;EACF,GACA,MACA,CACF;CACF;CAEA,IAAI,WAAW;EACb,OAAO,KAAK;CACd;CAEA,IAAI,QAAQ;EACV,OAAO,KAAK;CACd;CAEA,IAAI,YAAY;EACd,OAAO,KAAK;CACd;AACF;;;;;AAMA,IAAa,uCAAb,cAA0D,MAAM;CAC9D;CACA;CACA;CAEA,YACE,cACA,iBACA,mBACA;EACA,MACE,8CAA8C,gBAAgB,wBAAwB,kBAAkB,KAAK,IAAI,GACnH;EACA,KAAK,OAAO;EACZ,KAAK,eAAe;EACpB,KAAK,kBAAkB;EACvB,KAAK,oBAAoB;CAC3B;CAEA,OAAO,QACL,OAC+C;EAC/C,OACE,MAAM,QAAQ,KAAK,KACnB,MAAM,SAAS;CAEnB;AACF"}