@powerhousedao/shared 6.2.3-dev.6 → 6.2.3-dev.60

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 (293) 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-BfAqpYvC.mjs} +43 -16
  32. package/dist/clis/args/help-BfAqpYvC.mjs.map +1 -0
  33. package/dist/clis/args/help-KuqI-EEG.d.mts +203 -0
  34. package/dist/clis/args/help-KuqI-EEG.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-CTaK80wE.d.mts +55 -0
  40. package/dist/clis/args/init-CTaK80wE.d.mts.map +1 -0
  41. package/dist/clis/args/{init-rz9Ei7nq.mjs → init-xlCNZ8Oe.mjs} +7 -2
  42. package/dist/clis/args/{init-rz9Ei7nq.mjs.map → init-xlCNZ8Oe.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/run-CYp5t1xU.mjs +28 -0
  88. package/dist/clis/args/run-CYp5t1xU.mjs.map +1 -0
  89. package/dist/clis/args/run.d.mts +18 -0
  90. package/dist/clis/args/run.d.mts.map +1 -0
  91. package/dist/clis/args/run.mjs +2 -0
  92. package/dist/clis/args/service-CHjY5epu.d.mts +27 -0
  93. package/dist/clis/args/service-CHjY5epu.d.mts.map +1 -0
  94. package/dist/clis/args/{service-CHOOr0Gg.mjs → service-Cpjlyeu5.mjs} +2 -2
  95. package/dist/clis/args/{service-CHOOr0Gg.mjs.map → service-Cpjlyeu5.mjs.map} +1 -1
  96. package/dist/clis/args/service.d.mts +3 -2
  97. package/dist/clis/args/service.mjs +1 -1
  98. package/dist/clis/args/{switchboard-Dsp7nosi.mjs → switchboard-CCaAtU56.mjs} +2 -2
  99. package/dist/clis/args/{switchboard-Dsp7nosi.mjs.map → switchboard-CCaAtU56.mjs.map} +1 -1
  100. package/dist/clis/args/switchboard-RrNb1fUH.d.mts +70 -0
  101. package/dist/clis/args/switchboard-RrNb1fUH.d.mts.map +1 -0
  102. package/dist/clis/args/switchboard.d.mts +3 -2
  103. package/dist/clis/args/switchboard.mjs +1 -1
  104. package/dist/clis/args/{uninstall-CTwTX0u_.mjs → uninstall-3U0B8g5c.mjs} +2 -2
  105. package/dist/clis/args/{uninstall-CTwTX0u_.mjs.map → uninstall-3U0B8g5c.mjs.map} +1 -1
  106. package/dist/clis/args/uninstall-CDx7lwxn.d.mts +28 -0
  107. package/dist/clis/args/uninstall-CDx7lwxn.d.mts.map +1 -0
  108. package/dist/clis/args/uninstall.d.mts +3 -2
  109. package/dist/clis/args/uninstall.mjs +1 -1
  110. package/dist/clis/args/unpublish-CEDsk6uv.d.mts +22 -0
  111. package/dist/clis/args/unpublish-CEDsk6uv.d.mts.map +1 -0
  112. package/dist/clis/args/{unpublish-BPMkGEg5.mjs → unpublish-s9zUh6Gw.mjs} +2 -2
  113. package/dist/clis/args/{unpublish-BPMkGEg5.mjs.map → unpublish-s9zUh6Gw.mjs.map} +1 -1
  114. package/dist/clis/args/unpublish.d.mts +3 -2
  115. package/dist/clis/args/unpublish.mjs +1 -1
  116. package/dist/clis/args/{vetra-b4KUu1Ax.mjs → vetra-BUNlAAPp.mjs} +2 -2
  117. package/dist/clis/args/{vetra-b4KUu1Ax.mjs.map → vetra-BUNlAAPp.mjs.map} +1 -1
  118. package/dist/clis/args/vetra-DkDaWFPi.d.mts +111 -0
  119. package/dist/clis/args/vetra-DkDaWFPi.d.mts.map +1 -0
  120. package/dist/clis/args/vetra-ports.test.d.mts +2 -1
  121. package/dist/clis/args/vetra-ports.test.mjs +7366 -5728
  122. package/dist/clis/args/vetra-ports.test.mjs.map +1 -1
  123. package/dist/clis/args/vetra.d.mts +3 -2
  124. package/dist/clis/args/vetra.mjs +1 -1
  125. package/dist/clis/build-config-HbYUSZS1.mjs +252 -0
  126. package/dist/clis/build-config-HbYUSZS1.mjs.map +1 -0
  127. package/dist/clis/build-config.d.mts +52 -10616
  128. package/dist/clis/build-config.d.mts.map +1 -1
  129. package/dist/clis/build-config.mjs +2 -88
  130. package/dist/clis/build-pieces.d.mts +160 -0
  131. package/dist/clis/build-pieces.d.mts.map +1 -0
  132. package/dist/clis/build-pieces.mjs +549 -0
  133. package/dist/clis/build-pieces.mjs.map +1 -0
  134. package/dist/clis/command-names.d.mts +2 -2
  135. package/dist/clis/command-names.d.mts.map +1 -1
  136. package/dist/clis/command-names.mjs +1 -0
  137. package/dist/clis/command-names.mjs.map +1 -1
  138. package/dist/clis/constants.d.mts +3 -462
  139. package/dist/clis/constants.mjs +43 -12
  140. package/dist/clis/constants.mjs.map +1 -1
  141. package/dist/clis/feature-flags.d.mts +17 -0
  142. package/dist/clis/feature-flags.d.mts.map +1 -0
  143. package/dist/clis/feature-flags.mjs +21 -0
  144. package/dist/clis/feature-flags.mjs.map +1 -0
  145. package/dist/clis/index-6CZwrmQi.d.mts +11154 -0
  146. package/dist/clis/index-6CZwrmQi.d.mts.map +1 -0
  147. package/dist/clis/index.d.mts +1448 -1225
  148. package/dist/clis/index.d.mts.map +1 -1
  149. package/dist/clis/index.mjs +665 -352
  150. package/dist/clis/index.mjs.map +1 -1
  151. package/dist/clis/project-env.d.mts +4 -4
  152. package/dist/clis/project-env.d.mts.map +1 -1
  153. package/dist/clis/project-env.mjs.map +1 -1
  154. package/dist/clis/project-ports.d.mts +5 -5
  155. package/dist/clis/project-ports.d.mts.map +1 -1
  156. package/dist/clis/project-ports.mjs +1 -1
  157. package/dist/clis/project-ports.mjs.map +1 -1
  158. package/dist/clis/services/telemetry.d.mts +7 -7
  159. package/dist/clis/services/telemetry.d.mts.map +1 -1
  160. package/dist/clis/services/telemetry.mjs.map +1 -1
  161. package/dist/clis/types-DvsXtkR2.d.mts +582 -0
  162. package/dist/clis/types-DvsXtkR2.d.mts.map +1 -0
  163. package/dist/clis/utils.d.mts +4 -4
  164. package/dist/clis/utils.d.mts.map +1 -1
  165. package/dist/clis/utils.mjs.map +1 -1
  166. package/dist/{config-loader-B845Hidf.js → config-loader-DBJolZd0.js} +43 -9
  167. package/dist/config-loader-DBJolZd0.js.map +1 -0
  168. package/dist/connect/config-loader.d.ts +21 -8
  169. package/dist/connect/config-loader.d.ts.map +1 -1
  170. package/dist/connect/config-loader.js +2 -2
  171. package/dist/connect/index.d.ts +203 -57
  172. package/dist/connect/index.d.ts.map +1 -1
  173. package/dist/connect/index.js +318 -31
  174. package/dist/connect/index.js.map +1 -1
  175. package/dist/connect/json-adapter.d.ts +3 -4
  176. package/dist/connect/json-adapter.d.ts.map +1 -1
  177. package/dist/connect/json-adapter.js.map +1 -1
  178. package/dist/constants-DVJon33y.d.ts +9 -0
  179. package/dist/constants-DVJon33y.d.ts.map +1 -0
  180. package/dist/constants.d.ts +3 -2
  181. package/dist/constants.js +14 -5
  182. package/dist/constants.js.map +1 -1
  183. package/dist/document-drive/index.d.ts +131 -105
  184. package/dist/document-drive/index.d.ts.map +1 -1
  185. package/dist/document-drive/index.js +116 -54
  186. package/dist/document-drive/index.js.map +1 -1
  187. package/dist/document-model/errors.d.ts +3 -0
  188. package/dist/document-model/errors.js +152 -0
  189. package/dist/document-model/errors.js.map +1 -0
  190. package/dist/document-model/index.d.ts +5 -4
  191. package/dist/document-model/index.js +296 -390
  192. package/dist/document-model/index.js.map +1 -1
  193. package/dist/document-model/mock.d.ts +2 -3
  194. package/dist/document-model/mock.d.ts.map +1 -1
  195. package/dist/document-model/mock.js +2 -1
  196. package/dist/document-model/mock.js.map +1 -1
  197. package/dist/document-model/utils.d.ts +3 -2
  198. package/dist/document-model/utils.js +1 -1
  199. package/dist/document-model/version.d.ts +3 -0
  200. package/dist/document-model/version.js +8 -0
  201. package/dist/document-model/version.js.map +1 -0
  202. package/dist/index-bx0vYtFw.d.ts +36 -0
  203. package/dist/index-bx0vYtFw.d.ts.map +1 -0
  204. package/dist/index.d.ts +7 -6
  205. package/dist/index.js.map +1 -1
  206. package/dist/processors/index.d.ts +3 -2
  207. package/dist/processors/index.js +63 -4
  208. package/dist/processors/index.js.map +1 -1
  209. package/dist/purge-v06m_oGz.js +381 -0
  210. package/dist/purge-v06m_oGz.js.map +1 -0
  211. package/dist/registry/index.d.ts +15 -15
  212. package/dist/registry/index.d.ts.map +1 -1
  213. package/dist/registry/index.js +24 -6
  214. package/dist/registry/index.js.map +1 -1
  215. package/dist/registry/manifest-slim.d.ts +4 -3
  216. package/dist/registry/manifest-slim.d.ts.map +1 -1
  217. package/dist/registry/manifest-slim.js +21 -0
  218. package/dist/registry/manifest-slim.js.map +1 -1
  219. package/dist/registry/updates.d.ts +3 -3
  220. package/dist/registry/updates.d.ts.map +1 -1
  221. package/dist/registry/updates.js.map +1 -1
  222. package/dist/registry/urls.d.ts +2 -2
  223. package/dist/registry/urls.d.ts.map +1 -1
  224. package/dist/registry/urls.js.map +1 -1
  225. package/dist/{types-C1in4fl3.d.ts → types-Bsp8VL2y.d.ts} +2 -2
  226. package/dist/types-Bsp8VL2y.d.ts.map +1 -0
  227. package/dist/{types-YqLqb0Zb.d.ts → types-CfU91XFU.d.ts} +39 -43
  228. package/dist/types-CfU91XFU.d.ts.map +1 -0
  229. package/dist/{types-CpnWmiFY.d.ts → types-DzleLgA8.d.ts} +2038 -822
  230. package/dist/types-DzleLgA8.d.ts.map +1 -0
  231. package/dist/{utils-DP122OSS.d.ts → utils-BrKxCmKx.d.ts} +2 -2
  232. package/dist/utils-BrKxCmKx.d.ts.map +1 -0
  233. package/dist/{utils-aaTmfxFW.js → utils-CSF716ux.js} +10 -3
  234. package/dist/utils-CSF716ux.js.map +1 -0
  235. package/dist/version-BxLITo9P.d.ts +6 -0
  236. package/dist/version-BxLITo9P.d.ts.map +1 -0
  237. package/package.json +15 -6
  238. package/dist/clis/args/access-token--9H57y8J.d.mts +0 -18
  239. package/dist/clis/args/access-token--9H57y8J.d.mts.map +0 -1
  240. package/dist/clis/args/common-CcYbXrBx.mjs.map +0 -1
  241. package/dist/clis/args/common-Dsf1vpHV.d.mts +0 -183
  242. package/dist/clis/args/common-Dsf1vpHV.d.mts.map +0 -1
  243. package/dist/clis/args/connect-BVVvCmL9.mjs.map +0 -1
  244. package/dist/clis/args/connect-DetTnI8g.d.mts +0 -443
  245. package/dist/clis/args/connect-DetTnI8g.d.mts.map +0 -1
  246. package/dist/clis/args/generate-CA916Fvj.mjs.map +0 -1
  247. package/dist/clis/args/generate-DnV-bfXt.d.mts +0 -87
  248. package/dist/clis/args/generate-DnV-bfXt.d.mts.map +0 -1
  249. package/dist/clis/args/help-Bqbgbalu.mjs.map +0 -1
  250. package/dist/clis/args/help-CjAsudUn.d.mts +0 -193
  251. package/dist/clis/args/help-CjAsudUn.d.mts.map +0 -1
  252. package/dist/clis/args/init-CUXyfquF.d.mts +0 -55
  253. package/dist/clis/args/init-CUXyfquF.d.mts.map +0 -1
  254. package/dist/clis/args/inspect-DtZeoA5c.d.mts +0 -15
  255. package/dist/clis/args/inspect-DtZeoA5c.d.mts.map +0 -1
  256. package/dist/clis/args/install-CkP8zcHb.d.mts +0 -40
  257. package/dist/clis/args/install-CkP8zcHb.d.mts.map +0 -1
  258. package/dist/clis/args/list-BGf8s_gj.d.mts +0 -12
  259. package/dist/clis/args/list-BGf8s_gj.d.mts.map +0 -1
  260. package/dist/clis/args/login-DNsHwvqk.d.mts +0 -27
  261. package/dist/clis/args/login-DNsHwvqk.d.mts.map +0 -1
  262. package/dist/clis/args/magic-string.es-h_0HDQBQ.mjs +0 -1013
  263. package/dist/clis/args/magic-string.es-h_0HDQBQ.mjs.map +0 -1
  264. package/dist/clis/args/migrate-sixkWhxm.d.mts +0 -21
  265. package/dist/clis/args/migrate-sixkWhxm.d.mts.map +0 -1
  266. package/dist/clis/args/publish-Dqe5DUst.d.mts +0 -18
  267. package/dist/clis/args/publish-Dqe5DUst.d.mts.map +0 -1
  268. package/dist/clis/args/registry-C_RfTsKB.d.mts +0 -19
  269. package/dist/clis/args/registry-C_RfTsKB.d.mts.map +0 -1
  270. package/dist/clis/args/service-DhIkf8-O.d.mts +0 -22
  271. package/dist/clis/args/service-DhIkf8-O.d.mts.map +0 -1
  272. package/dist/clis/args/switchboard-BlPaq2at.d.mts +0 -72
  273. package/dist/clis/args/switchboard-BlPaq2at.d.mts.map +0 -1
  274. package/dist/clis/args/uninstall-BpA3YYbw.d.mts +0 -31
  275. package/dist/clis/args/uninstall-BpA3YYbw.d.mts.map +0 -1
  276. package/dist/clis/args/unpublish-CvwaIimG.d.mts +0 -24
  277. package/dist/clis/args/unpublish-CvwaIimG.d.mts.map +0 -1
  278. package/dist/clis/args/vetra-DLQ6lhLl.d.mts +0 -113
  279. package/dist/clis/args/vetra-DLQ6lhLl.d.mts.map +0 -1
  280. package/dist/clis/build-config.mjs.map +0 -1
  281. package/dist/clis/constants.d.mts.map +0 -1
  282. package/dist/config-loader-B845Hidf.js.map +0 -1
  283. package/dist/constants-BP_gjn8g.d.ts +0 -8
  284. package/dist/constants-BP_gjn8g.d.ts.map +0 -1
  285. package/dist/index-C_iVZe7f.d.ts +0 -7
  286. package/dist/index-C_iVZe7f.d.ts.map +0 -1
  287. package/dist/index-DyYIJtVy.d.ts +0 -836
  288. package/dist/index-DyYIJtVy.d.ts.map +0 -1
  289. package/dist/types-C1in4fl3.d.ts.map +0 -1
  290. package/dist/types-CpnWmiFY.d.ts.map +0 -1
  291. package/dist/types-YqLqb0Zb.d.ts.map +0 -1
  292. package/dist/utils-DP122OSS.d.ts.map +0 -1
  293. package/dist/utils-aaTmfxFW.js.map +0 -1
@@ -552,6 +552,14 @@ function createState(baseState, globalState, localState) {
552
552
  }
553
553
  //#endregion
554
554
  //#region document-drive/src/reducers/drive.ts
555
+ /**
556
+ * The untouched base of a mutative draft, or the value itself when it is not a
557
+ * draft. Build replacement lists from it and freeze them before assigning, as
558
+ * the node reducer does, so finalize skips the walk over the assigned list.
559
+ */
560
+ function readBase(value) {
561
+ return isDraft(value) ? original(value) : value;
562
+ }
555
563
  const driveReducer = {
556
564
  setDriveNameOperation(state, action, dispatch) {
557
565
  state.name = action.input.name;
@@ -588,7 +596,8 @@ const driveReducer = {
588
596
  state.listeners.push(listener);
589
597
  },
590
598
  removeListenerOperation(state, action, dispatch) {
591
- state.listeners = state.listeners.filter((listener) => listener.listenerId !== action.input.listenerId);
599
+ const listeners = readBase(state).listeners.filter((listener) => listener.listenerId !== action.input.listenerId);
600
+ state.listeners = Object.freeze(listeners);
592
601
  },
593
602
  addTriggerOperation(state, action, dispatch) {
594
603
  const { trigger: input } = action.input;
@@ -601,7 +610,8 @@ const driveReducer = {
601
610
  state.triggers.push(trigger);
602
611
  },
603
612
  removeTriggerOperation(state, action, dispatch) {
604
- state.triggers = state.triggers.filter((trigger) => trigger.id !== action.input.triggerId);
613
+ const triggers = readBase(state).triggers.filter((trigger) => trigger.id !== action.input.triggerId);
614
+ state.triggers = Object.freeze(triggers);
605
615
  }
606
616
  };
607
617
  //#endregion
@@ -675,22 +685,64 @@ function escapeRegExp(string) {
675
685
  return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
676
686
  }
677
687
  /**
678
- * The node list as plain objects for read-only scans. Inside a mutative draft
679
- * this returns the untouched base list, so a find or filter over it does not
680
- * create a child draft per element it visits. Callers must read before they
681
- * write: the base list does not see mutations made earlier in the same action.
688
+ * A plain, unfrozen copy of the node list for read-only scans. Inside a
689
+ * mutative draft the copy is taken from the untouched base list, so a find or
690
+ * filter over it does not create a child draft per element it visits, and it is
691
+ * a copy because the stored list is frozen and V8 scans a frozen array several
692
+ * times slower than a normal one. Callers must read before they write: the base
693
+ * list does not see mutations made earlier in the same action.
682
694
  */
683
695
  function readNodes(state) {
684
- return isDraft(state) ? original(state).nodes : state.nodes;
696
+ return [...isDraft(state) ? original(state).nodes : state.nodes];
697
+ }
698
+ /**
699
+ * The given array sorted by id and frozen, in place -- it takes ownership of
700
+ * the array it is handed, which is why it is private to this module and only
701
+ * ever given a list built at the call site. The freeze is what makes assigning
702
+ * the list to a mutative draft cheap: assigning a draftable value to a draft
703
+ * property queues a finalize pass that walks every element of the assigned
704
+ * value, and the walk exits at its Object.isFrozen check instead. Elements must
705
+ * be plain nodes -- an element that is still a draft would never be replaced by
706
+ * its final value, because the walk that does that replacement is the one being
707
+ * skipped.
708
+ */
709
+ function freezeSortedById(nodes) {
710
+ nodes.sort((a, b) => a.id.localeCompare(b.id));
711
+ return Object.freeze(nodes);
685
712
  }
686
713
  /**
687
- * The node list with a node added, ordered by id. The list is built and sorted
688
- * as plain objects, so inside a mutative draft the comparator never reads an
689
- * element through the draft proxy. Pass the list read with readNodes to get
690
- * that benefit; passing the draft's own list is correct but slow.
714
+ * A copy of the given list, sorted by id and frozen, which is the shape the
715
+ * node reducer assigns. Read the list with readNodes, build the new list from
716
+ * it, and pass what this returns to assignNodes. The copy is what keeps the
717
+ * freeze off the caller's array.
718
+ */
719
+ function sortNodesById(nodes) {
720
+ return freezeSortedById([...nodes]);
721
+ }
722
+ /**
723
+ * The node list with a node added, ordered by id and frozen, in the same shape
724
+ * sortNodesById returns. The list is built and sorted as plain objects, so
725
+ * inside a mutative draft the comparator never reads an element through the
726
+ * draft proxy. Pass the list read with readNodes: the draft's own list would
727
+ * put child drafts in the result, which the freeze then keeps mutative from
728
+ * resolving.
691
729
  */
692
730
  function insertNodeSorted(nodes, node) {
693
- return [...nodes, node].sort((a, b) => a.id.localeCompare(b.id));
731
+ return freezeSortedById([...nodes, node]);
732
+ }
733
+ /**
734
+ * Installs a node list as state.nodes. Every assignment the node reducer makes
735
+ * goes through here, and this is the one place a frozen array crosses into
736
+ * state: the generated DocumentDriveGlobalState types nodes as a mutable
737
+ * Node[], so the cast below is where that gap is paid rather than spread over
738
+ * the reducer. Consumers must treat drive.state.global.nodes as read-only --
739
+ * mutating it in place (push, sort, splice) throws in strict mode; copy it
740
+ * first, as readNodes does. Note that UPGRADE_DOCUMENT's initialState and
741
+ * imported documents replace a whole scope and can install a list this
742
+ * function never saw.
743
+ */
744
+ function assignNodes(state, nodes) {
745
+ state.nodes = nodes;
694
746
  }
695
747
  function handleTargetNameCollisions(params) {
696
748
  const { nodes, targetParentFolder, srcName, srcKind } = params;
@@ -713,13 +765,13 @@ const nodeReducer = {
713
765
  srcKind: "file",
714
766
  targetParentFolder: action.input.parentFolder || null
715
767
  });
716
- state.nodes = insertNodeSorted(nodes, {
768
+ assignNodes(state, insertNodeSorted(nodes, {
717
769
  id: action.input.id,
718
770
  name,
719
771
  kind: "file",
720
772
  parentFolder: action.input.parentFolder ?? null,
721
773
  documentType: action.input.documentType
722
- });
774
+ }));
723
775
  dispatch?.({
724
776
  type: "CREATE_CHILD_DOCUMENT",
725
777
  input: {
@@ -738,18 +790,19 @@ const nodeReducer = {
738
790
  srcKind: "folder",
739
791
  targetParentFolder: action.input.parentFolder || null
740
792
  });
741
- state.nodes = insertNodeSorted(nodes, {
793
+ assignNodes(state, insertNodeSorted(nodes, {
742
794
  ...action.input,
743
795
  name,
744
796
  kind: "folder",
745
797
  parentFolder: action.input.parentFolder ?? null
746
- });
798
+ }));
747
799
  },
748
800
  deleteNodeOperation(state, action, dispatch) {
749
- const node = state.nodes.find((node) => node.id === action.input.id);
801
+ const nodes = readNodes(state);
802
+ const node = nodes.find((node) => node.id === action.input.id);
750
803
  if (!node) throw new Error(`Node with id ${action.input.id} not found`);
751
- const descendants = getDescendants(node, state.nodes);
752
- state.nodes = state.nodes.filter((node) => node.id !== action.input.id && !descendants.find((descendant) => descendant.id === node.id));
804
+ const descendants = getDescendants(node, nodes);
805
+ assignNodes(state, sortNodesById(nodes.filter((node) => node.id !== action.input.id && !descendants.find((descendant) => descendant.id === node.id))));
753
806
  [node, ...descendants].filter((node) => isFileNode(node)).forEach((node) => {
754
807
  dispatch?.({
755
808
  type: "DELETE_CHILD_DOCUMENT",
@@ -759,38 +812,39 @@ const nodeReducer = {
759
812
  },
760
813
  updateFileOperation(state, action) {
761
814
  if (action.input.name && !isValidName(action.input.name)) throw new Error(`Invalid name: '${action.input.name}'. Names must not be empty or contain control characters.`);
762
- state.nodes = state.nodes.map((node) => node.id === action.input.id ? {
815
+ const nodes = readNodes(state);
816
+ assignNodes(state, sortNodesById(nodes.map((node) => node.id === action.input.id ? {
763
817
  ...node,
764
818
  name: handleTargetNameCollisions({
765
- nodes: state.nodes.filter((n) => n.id !== action.input.id),
819
+ nodes: nodes.filter((n) => n.id !== action.input.id),
766
820
  srcName: action.input.name ?? node.name,
767
821
  srcKind: "file",
768
822
  targetParentFolder: action.input.parentFolder ?? node.parentFolder
769
823
  }),
770
824
  documentType: action.input.documentType ?? node.documentType
771
- } : node);
772
- state.nodes.sort((a, b) => a.id.localeCompare(b.id));
825
+ } : node)));
773
826
  },
774
827
  updateNodeOperation(state, action) {
775
828
  if (action.input.name && !isValidName(action.input.name)) throw new Error(`Invalid name: '${action.input.name}'. Names must not be empty or contain control characters.`);
776
- state.nodes = state.nodes.map((node) => node.id === action.input.id ? {
829
+ const nodes = readNodes(state);
830
+ assignNodes(state, sortNodesById(nodes.map((node) => node.id === action.input.id ? {
777
831
  ...node,
778
832
  name: handleTargetNameCollisions({
779
- nodes: state.nodes.filter((n) => n.id !== action.input.id),
833
+ nodes: nodes.filter((n) => n.id !== action.input.id),
780
834
  srcName: action.input.name ?? node.name,
781
835
  srcKind: node.kind === "file" ? "file" : "folder",
782
836
  targetParentFolder: action.input.parentFolder ?? node.parentFolder
783
837
  }),
784
838
  parentFolder: action.input.parentFolder === null ? null : node.parentFolder
785
- } : node);
786
- state.nodes.sort((a, b) => a.id.localeCompare(b.id));
839
+ } : node)));
787
840
  },
788
841
  copyNodeOperation(state, action, dispatch) {
789
- const node = state.nodes.find((node) => node.id === action.input.srcId);
842
+ const nodes = readNodes(state);
843
+ const node = nodes.find((node) => node.id === action.input.srcId);
790
844
  if (!node) throw new Error(`Node with id ${action.input.srcId} not found`);
791
- if (state.nodes.find((node) => node.id === action.input.targetId)) throw new Error(`Node with id ${action.input.targetId} already exists`);
845
+ if (nodes.find((node) => node.id === action.input.targetId)) throw new Error(`Node with id ${action.input.targetId} already exists`);
792
846
  const name = handleTargetNameCollisions({
793
- nodes: state.nodes,
847
+ nodes,
794
848
  srcName: action.input.targetName || node.name,
795
849
  srcKind: node.kind === "file" ? "file" : "folder",
796
850
  targetParentFolder: action.input.targetParentFolder || null
@@ -802,8 +856,7 @@ const nodeReducer = {
802
856
  name,
803
857
  parentFolder: action.input.targetParentFolder || null
804
858
  };
805
- state.nodes.push(newNode);
806
- state.nodes.sort((a, b) => a.id.localeCompare(b.id));
859
+ assignNodes(state, insertNodeSorted(nodes, newNode));
807
860
  if (isFileNode(newNode)) dispatch?.({
808
861
  type: "COPY_CHILD_DOCUMENT",
809
862
  input: {
@@ -814,92 +867,101 @@ const nodeReducer = {
814
867
  },
815
868
  moveNodeOperation(state, action) {
816
869
  if (action.input.srcFolder === action.input.targetParentFolder) throw new Error("Circular Reference Error: Attempting to move a node to its current parent folder");
817
- const node = state.nodes.find((node) => node.id === action.input.srcFolder);
870
+ const nodes = readNodes(state);
871
+ const node = nodes.find((node) => node.id === action.input.srcFolder);
818
872
  if (!node) throw new Error(`Node with id ${action.input.srcFolder} not found`);
819
873
  const name = handleTargetNameCollisions({
820
- nodes: state.nodes,
874
+ nodes,
821
875
  srcName: node.name,
822
876
  srcKind: node.kind === "file" ? "file" : "folder",
823
877
  targetParentFolder: action.input.targetParentFolder || null
824
878
  });
825
879
  if (isFolderNode(node)) {
826
- if (getDescendants(node, state.nodes).find((descendant) => descendant.id === action.input.targetParentFolder)) throw new Error("Circular Reference Error: Cannot move a folder to one of its descendants");
880
+ if (getDescendants(node, nodes).find((descendant) => descendant.id === action.input.targetParentFolder)) throw new Error("Circular Reference Error: Cannot move a folder to one of its descendants");
827
881
  }
828
- state.nodes = state.nodes.map((node) => {
882
+ assignNodes(state, sortNodesById(nodes.map((node) => {
829
883
  if (node.id === action.input.srcFolder) return {
830
884
  ...node,
831
885
  name,
832
886
  parentFolder: action.input.targetParentFolder || null
833
887
  };
834
888
  return node;
835
- });
836
- state.nodes.sort((a, b) => a.id.localeCompare(b.id));
889
+ })));
837
890
  }
838
891
  };
839
892
  //#endregion
840
893
  //#region document-drive/gen/reducer.ts
894
+ const schemaMemo = /* @__PURE__ */ new Map();
895
+ function memoizedSchema(makeSchema) {
896
+ let schema = schemaMemo.get(makeSchema);
897
+ if (schema === void 0) {
898
+ schema = makeSchema();
899
+ schemaMemo.set(makeSchema, schema);
900
+ }
901
+ return schema;
902
+ }
841
903
  const driveStateReducer = (state, action, dispatch) => {
842
904
  if (isDocumentAction(action)) return state;
843
905
  const typedAction = action;
844
906
  switch (typedAction.type) {
845
907
  case "ADD_FILE":
846
- AddFileInputSchema().parse(typedAction.input);
908
+ memoizedSchema(AddFileInputSchema).parse(typedAction.input);
847
909
  nodeReducer.addFileOperation(state[typedAction.scope], action, dispatch);
848
910
  break;
849
911
  case "ADD_FOLDER":
850
- AddFolderInputSchema().parse(typedAction.input);
912
+ memoizedSchema(AddFolderInputSchema).parse(typedAction.input);
851
913
  nodeReducer.addFolderOperation(state[typedAction.scope], action, dispatch);
852
914
  break;
853
915
  case "DELETE_NODE":
854
- DeleteNodeInputSchema().parse(typedAction.input);
916
+ memoizedSchema(DeleteNodeInputSchema).parse(typedAction.input);
855
917
  nodeReducer.deleteNodeOperation(state[typedAction.scope], action, dispatch);
856
918
  break;
857
919
  case "UPDATE_FILE":
858
- UpdateFileInputSchema().parse(typedAction.input);
920
+ memoizedSchema(UpdateFileInputSchema).parse(typedAction.input);
859
921
  nodeReducer.updateFileOperation(state[typedAction.scope], action, dispatch);
860
922
  break;
861
923
  case "UPDATE_NODE":
862
- UpdateNodeInputSchema().parse(typedAction.input);
924
+ memoizedSchema(UpdateNodeInputSchema).parse(typedAction.input);
863
925
  nodeReducer.updateNodeOperation(state[typedAction.scope], action, dispatch);
864
926
  break;
865
927
  case "COPY_NODE":
866
- CopyNodeInputSchema().parse(typedAction.input);
928
+ memoizedSchema(CopyNodeInputSchema).parse(typedAction.input);
867
929
  nodeReducer.copyNodeOperation(state[typedAction.scope], action, dispatch);
868
930
  break;
869
931
  case "MOVE_NODE":
870
- MoveNodeInputSchema().parse(typedAction.input);
932
+ memoizedSchema(MoveNodeInputSchema).parse(typedAction.input);
871
933
  nodeReducer.moveNodeOperation(state[typedAction.scope], action, dispatch);
872
934
  break;
873
935
  case "SET_DRIVE_NAME":
874
- SetDriveNameInputSchema().parse(typedAction.input);
936
+ memoizedSchema(SetDriveNameInputSchema).parse(typedAction.input);
875
937
  driveReducer.setDriveNameOperation(state[typedAction.scope], action, dispatch);
876
938
  break;
877
939
  case "SET_DRIVE_ICON":
878
- SetDriveIconInputSchema().parse(typedAction.input);
940
+ memoizedSchema(SetDriveIconInputSchema).parse(typedAction.input);
879
941
  driveReducer.setDriveIconOperation(state[typedAction.scope], action, dispatch);
880
942
  break;
881
943
  case "SET_SHARING_TYPE":
882
- SetSharingTypeInputSchema().parse(typedAction.input);
944
+ memoizedSchema(SetSharingTypeInputSchema).parse(typedAction.input);
883
945
  driveReducer.setSharingTypeOperation(state[typedAction.scope], action, dispatch);
884
946
  break;
885
947
  case "SET_AVAILABLE_OFFLINE":
886
- SetAvailableOfflineInputSchema().parse(typedAction.input);
948
+ memoizedSchema(SetAvailableOfflineInputSchema).parse(typedAction.input);
887
949
  driveReducer.setAvailableOfflineOperation(state[typedAction.scope], action, dispatch);
888
950
  break;
889
951
  case "ADD_LISTENER":
890
- AddListenerInputSchema().parse(typedAction.input);
952
+ memoizedSchema(AddListenerInputSchema).parse(typedAction.input);
891
953
  driveReducer.addListenerOperation(state[typedAction.scope], action, dispatch);
892
954
  break;
893
955
  case "REMOVE_LISTENER":
894
- RemoveListenerInputSchema().parse(typedAction.input);
956
+ memoizedSchema(RemoveListenerInputSchema).parse(typedAction.input);
895
957
  driveReducer.removeListenerOperation(state[typedAction.scope], action, dispatch);
896
958
  break;
897
959
  case "ADD_TRIGGER":
898
- AddTriggerInputSchema().parse(typedAction.input);
960
+ memoizedSchema(AddTriggerInputSchema).parse(typedAction.input);
899
961
  driveReducer.addTriggerOperation(state[typedAction.scope], action, dispatch);
900
962
  break;
901
963
  case "REMOVE_TRIGGER":
902
- RemoveTriggerInputSchema().parse(typedAction.input);
964
+ memoizedSchema(RemoveTriggerInputSchema).parse(typedAction.input);
903
965
  driveReducer.removeTriggerOperation(state[typedAction.scope], action, dispatch);
904
966
  break;
905
967
  default: return state;
@@ -972,6 +1034,6 @@ const driveDocumentModelModule = {
972
1034
  }
973
1035
  };
974
1036
  //#endregion
975
- export { AddFileInputSchema, AddFolderInputSchema, AddListenerInputSchema, AddTriggerInputSchema, CopyNodeInputSchema, DeleteNodeInputSchema, DocumentDriveLocalStateSchema, DocumentDriveStateSchema, DriveDocumentHeaderSchema, DriveDocumentSchema, DrivePHStateSchema, FileNodeSchema, FolderNodeSchema, ListenerCallInfoInputSchema, ListenerCallInfoSchema, ListenerFilterInputSchema, ListenerFilterSchema, ListenerInputSchema, ListenerSchema, MoveNodeInputSchema, NodeSchema, PullResponderTriggerDataInputSchema, PullResponderTriggerDataSchema, RemoveListenerInputSchema, RemoveTriggerInputSchema, SetAvailableOfflineInputSchema, SetDriveIconInputSchema, SetDriveNameInputSchema, SetSharingTypeInputSchema, TransmitterTypeSchema, TriggerDataSchema, TriggerInputSchema, TriggerSchema, TriggerTypeSchema, UpdateFileInputSchema, UpdateNodeInputSchema, addFile, addFolder, addListener, addTrigger, assertIsDocumentOfType, assertIsDriveDocument, assertIsDriveState, assertIsStateOfType, copyNode, createGlobalState, createLocalState, createState, defaultGlobalState, defaultLocalState, defaultPHState, definedNonNullAnySchema, deleteNode, driveCreateDocument, driveCreateState, driveDocumentFileExtension, driveDocumentModel, driveDocumentModelModule, driveDocumentReducer, driveDocumentType, driveLoadFromInput, driveReducer, driveSaveToFileHandle, escapeRegExp, generateNodesCopy, getAncestors, getDescendants, getNextCopyNumber, handleTargetNameCollisions, initialGlobalState, initialLocalState, insertNodeSorted, isDefinedNonNullAny, isDocumentOfType, isDriveDocument, isDriveState, isFileNode, isFolderNode, isStateOfType, isValidName, moveNode, nodeReducer, readNodes, removeListener, removeTrigger, setAvailableOffline, setDriveIcon, setDriveName, setSharingType, updateFile, updateNode };
1037
+ export { AddFileInputSchema, AddFolderInputSchema, AddListenerInputSchema, AddTriggerInputSchema, CopyNodeInputSchema, DeleteNodeInputSchema, DocumentDriveLocalStateSchema, DocumentDriveStateSchema, DriveDocumentHeaderSchema, DriveDocumentSchema, DrivePHStateSchema, FileNodeSchema, FolderNodeSchema, ListenerCallInfoInputSchema, ListenerCallInfoSchema, ListenerFilterInputSchema, ListenerFilterSchema, ListenerInputSchema, ListenerSchema, MoveNodeInputSchema, NodeSchema, PullResponderTriggerDataInputSchema, PullResponderTriggerDataSchema, RemoveListenerInputSchema, RemoveTriggerInputSchema, SetAvailableOfflineInputSchema, SetDriveIconInputSchema, SetDriveNameInputSchema, SetSharingTypeInputSchema, TransmitterTypeSchema, TriggerDataSchema, TriggerInputSchema, TriggerSchema, TriggerTypeSchema, UpdateFileInputSchema, UpdateNodeInputSchema, addFile, addFolder, addListener, addTrigger, assertIsDocumentOfType, assertIsDriveDocument, assertIsDriveState, assertIsStateOfType, assignNodes, copyNode, createGlobalState, createLocalState, createState, defaultGlobalState, defaultLocalState, defaultPHState, definedNonNullAnySchema, deleteNode, driveCreateDocument, driveCreateState, driveDocumentFileExtension, driveDocumentModel, driveDocumentModelModule, driveDocumentReducer, driveDocumentType, driveLoadFromInput, driveReducer, driveSaveToFileHandle, escapeRegExp, generateNodesCopy, getAncestors, getDescendants, getNextCopyNumber, handleTargetNameCollisions, initialGlobalState, initialLocalState, insertNodeSorted, isDefinedNonNullAny, isDocumentOfType, isDriveDocument, isDriveState, isFileNode, isFolderNode, isStateOfType, isValidName, moveNode, nodeReducer, readNodes, removeListener, removeTrigger, setAvailableOffline, setDriveIcon, setDriveName, setSharingType, sortNodesById, updateFile, updateNode };
976
1038
 
977
1039
  //# sourceMappingURL=index.js.map