@powerhousedao/shared 6.2.3-dev.5 → 6.2.3-dev.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analytics/index.d.ts +4 -4
- package/dist/analytics/index.d.ts.map +1 -1
- package/dist/analytics/index.js +25 -24
- package/dist/analytics/index.js.map +1 -1
- package/dist/clis/args/{access-token-To5LaIfL.mjs → access-token-3Hqv_U8I.mjs} +2 -2
- package/dist/clis/args/{access-token-To5LaIfL.mjs.map → access-token-3Hqv_U8I.mjs.map} +1 -1
- package/dist/clis/args/access-token-C5sKsH2O.d.mts +16 -0
- package/dist/clis/args/access-token-C5sKsH2O.d.mts.map +1 -0
- package/dist/clis/args/access-token.d.mts +3 -2
- package/dist/clis/args/access-token.mjs +1 -1
- package/dist/clis/args/{common-CcYbXrBx.mjs → common-BXabdhiO.mjs} +30 -7
- package/dist/clis/args/common-BXabdhiO.mjs.map +1 -0
- package/dist/clis/args/common-Bnm859xU.d.mts +186 -0
- package/dist/clis/args/common-Bnm859xU.d.mts.map +1 -0
- package/dist/clis/args/common.d.mts +3 -2
- package/dist/clis/args/common.mjs +1 -1
- package/dist/clis/args/{connect-BVVvCmL9.mjs → connect-BG3HkYBk.mjs} +8 -3
- package/dist/clis/args/connect-BG3HkYBk.mjs.map +1 -0
- package/dist/clis/args/connect-DjeiqXus.d.mts +450 -0
- package/dist/clis/args/connect-DjeiqXus.d.mts.map +1 -0
- package/dist/clis/args/connect.d.mts +3 -2
- package/dist/clis/args/connect.mjs +1 -1
- package/dist/clis/args/dist-CorQTQL-.mjs +1533 -0
- package/dist/clis/args/dist-CorQTQL-.mjs.map +1 -0
- package/dist/clis/args/{generate-CA916Fvj.mjs → generate-BOItUNvP.mjs} +40 -2
- package/dist/clis/args/generate-BOItUNvP.mjs.map +1 -0
- package/dist/clis/args/generate-BPBBLeUD.d.mts +103 -0
- package/dist/clis/args/generate-BPBBLeUD.d.mts.map +1 -0
- package/dist/clis/args/generate.d.mts +3 -2
- package/dist/clis/args/generate.mjs +1 -1
- package/dist/clis/args/{help-Bqbgbalu.mjs → help-DS1NlcJQ.mjs} +15 -15
- package/dist/clis/args/{help-Bqbgbalu.mjs.map → help-DS1NlcJQ.mjs.map} +1 -1
- package/dist/clis/args/help-DVPTARGn.d.mts +190 -0
- package/dist/clis/args/help-DVPTARGn.d.mts.map +1 -0
- package/dist/clis/args/help.d.mts +3 -2
- package/dist/clis/args/help.mjs +1 -1
- package/dist/clis/args/index.d.mts +20 -19
- package/dist/clis/args/index.mjs +18 -18
- package/dist/clis/args/init-CFeTq4Cq.d.mts +52 -0
- package/dist/clis/args/init-CFeTq4Cq.d.mts.map +1 -0
- package/dist/clis/args/{init-rz9Ei7nq.mjs → init-Dvb42Y87.mjs} +2 -2
- package/dist/clis/args/{init-rz9Ei7nq.mjs.map → init-Dvb42Y87.mjs.map} +1 -1
- package/dist/clis/args/init.d.mts +3 -2
- package/dist/clis/args/init.mjs +1 -1
- package/dist/clis/args/inspect-BjRmtB86.d.mts +13 -0
- package/dist/clis/args/inspect-BjRmtB86.d.mts.map +1 -0
- package/dist/clis/args/{inspect-tckH8mSw.mjs → inspect-UNQgtuR0.mjs} +2 -2
- package/dist/clis/args/{inspect-tckH8mSw.mjs.map → inspect-UNQgtuR0.mjs.map} +1 -1
- package/dist/clis/args/inspect.d.mts +3 -2
- package/dist/clis/args/inspect.mjs +1 -1
- package/dist/clis/args/install-B0tMyUMw.d.mts +37 -0
- package/dist/clis/args/install-B0tMyUMw.d.mts.map +1 -0
- package/dist/clis/args/{install-Sz2DlCHh.mjs → install-F-27kF6m.mjs} +2 -2
- package/dist/clis/args/{install-Sz2DlCHh.mjs.map → install-F-27kF6m.mjs.map} +1 -1
- package/dist/clis/args/install.d.mts +3 -2
- package/dist/clis/args/install.mjs +1 -1
- package/dist/clis/args/{list-DM2d6f1m.mjs → list-Bkfn8Yuo.mjs} +2 -2
- package/dist/clis/args/{list-DM2d6f1m.mjs.map → list-Bkfn8Yuo.mjs.map} +1 -1
- package/dist/clis/args/list-DrbxA7JJ.d.mts +10 -0
- package/dist/clis/args/list-DrbxA7JJ.d.mts.map +1 -0
- package/dist/clis/args/list.d.mts +3 -2
- package/dist/clis/args/list.mjs +1 -1
- package/dist/clis/args/{login-DiKT5Jfu.mjs → login-CIFkQExi.mjs} +2 -2
- package/dist/clis/args/{login-DiKT5Jfu.mjs.map → login-CIFkQExi.mjs.map} +1 -1
- package/dist/clis/args/login-CXRJXg71.d.mts +25 -0
- package/dist/clis/args/login-CXRJXg71.d.mts.map +1 -0
- package/dist/clis/args/login.d.mts +3 -2
- package/dist/clis/args/login.mjs +1 -1
- package/dist/clis/args/migrate-DkCQRL2D.d.mts +19 -0
- package/dist/clis/args/migrate-DkCQRL2D.d.mts.map +1 -0
- package/dist/clis/args/{migrate-CG_gWc4k.mjs → migrate-DwJGhc2d.mjs} +2 -2
- package/dist/clis/args/{migrate-CG_gWc4k.mjs.map → migrate-DwJGhc2d.mjs.map} +1 -1
- package/dist/clis/args/migrate.d.mts +3 -2
- package/dist/clis/args/migrate.mjs +1 -1
- package/dist/clis/args/publish-CeW4bOrl.d.mts +16 -0
- package/dist/clis/args/publish-CeW4bOrl.d.mts.map +1 -0
- package/dist/clis/args/{publish-DDZYsUfV.mjs → publish-DHqlGWmL.mjs} +2 -2
- package/dist/clis/args/{publish-DDZYsUfV.mjs.map → publish-DHqlGWmL.mjs.map} +1 -1
- package/dist/clis/args/publish.d.mts +3 -2
- package/dist/clis/args/publish.mjs +1 -1
- package/dist/clis/args/{registry-C_OVFQmI.mjs → registry-DIwES3l2.mjs} +2 -2
- package/dist/clis/args/{registry-C_OVFQmI.mjs.map → registry-DIwES3l2.mjs.map} +1 -1
- package/dist/clis/args/registry-DNH8xuaE.d.mts +17 -0
- package/dist/clis/args/registry-DNH8xuaE.d.mts.map +1 -0
- package/dist/clis/args/registry.d.mts +3 -2
- package/dist/clis/args/registry.mjs +1 -1
- package/dist/clis/args/service-CHjY5epu.d.mts +27 -0
- package/dist/clis/args/service-CHjY5epu.d.mts.map +1 -0
- package/dist/clis/args/{service-CHOOr0Gg.mjs → service-Cpjlyeu5.mjs} +2 -2
- package/dist/clis/args/{service-CHOOr0Gg.mjs.map → service-Cpjlyeu5.mjs.map} +1 -1
- package/dist/clis/args/service.d.mts +3 -2
- package/dist/clis/args/service.mjs +1 -1
- package/dist/clis/args/{switchboard-Dsp7nosi.mjs → switchboard-CCaAtU56.mjs} +2 -2
- package/dist/clis/args/{switchboard-Dsp7nosi.mjs.map → switchboard-CCaAtU56.mjs.map} +1 -1
- package/dist/clis/args/switchboard-RrNb1fUH.d.mts +70 -0
- package/dist/clis/args/switchboard-RrNb1fUH.d.mts.map +1 -0
- package/dist/clis/args/switchboard.d.mts +3 -2
- package/dist/clis/args/switchboard.mjs +1 -1
- package/dist/clis/args/{uninstall-CTwTX0u_.mjs → uninstall-3U0B8g5c.mjs} +2 -2
- package/dist/clis/args/{uninstall-CTwTX0u_.mjs.map → uninstall-3U0B8g5c.mjs.map} +1 -1
- package/dist/clis/args/uninstall-CDx7lwxn.d.mts +28 -0
- package/dist/clis/args/uninstall-CDx7lwxn.d.mts.map +1 -0
- package/dist/clis/args/uninstall.d.mts +3 -2
- package/dist/clis/args/uninstall.mjs +1 -1
- package/dist/clis/args/unpublish-CEDsk6uv.d.mts +22 -0
- package/dist/clis/args/unpublish-CEDsk6uv.d.mts.map +1 -0
- package/dist/clis/args/{unpublish-BPMkGEg5.mjs → unpublish-s9zUh6Gw.mjs} +2 -2
- package/dist/clis/args/{unpublish-BPMkGEg5.mjs.map → unpublish-s9zUh6Gw.mjs.map} +1 -1
- package/dist/clis/args/unpublish.d.mts +3 -2
- package/dist/clis/args/unpublish.mjs +1 -1
- package/dist/clis/args/{vetra-b4KUu1Ax.mjs → vetra-BUNlAAPp.mjs} +2 -2
- package/dist/clis/args/{vetra-b4KUu1Ax.mjs.map → vetra-BUNlAAPp.mjs.map} +1 -1
- package/dist/clis/args/vetra-DkDaWFPi.d.mts +111 -0
- package/dist/clis/args/vetra-DkDaWFPi.d.mts.map +1 -0
- package/dist/clis/args/vetra-ports.test.d.mts +2 -1
- package/dist/clis/args/vetra-ports.test.mjs +7366 -5728
- package/dist/clis/args/vetra-ports.test.mjs.map +1 -1
- package/dist/clis/args/vetra.d.mts +3 -2
- package/dist/clis/args/vetra.mjs +1 -1
- package/dist/clis/build-config-CR5lvv_A.mjs +231 -0
- package/dist/clis/build-config-CR5lvv_A.mjs.map +1 -0
- package/dist/clis/build-config.d.mts +44 -10614
- package/dist/clis/build-config.d.mts.map +1 -1
- package/dist/clis/build-config.mjs +2 -88
- package/dist/clis/build-pieces.d.mts +100 -0
- package/dist/clis/build-pieces.d.mts.map +1 -0
- package/dist/clis/build-pieces.mjs +371 -0
- package/dist/clis/build-pieces.mjs.map +1 -0
- package/dist/clis/command-names.d.mts +2 -2
- package/dist/clis/command-names.d.mts.map +1 -1
- package/dist/clis/command-names.mjs.map +1 -1
- package/dist/clis/constants.d.mts +3 -462
- package/dist/clis/constants.mjs +27 -10
- package/dist/clis/constants.mjs.map +1 -1
- package/dist/clis/index-6CZwrmQi.d.mts +11154 -0
- package/dist/clis/index-6CZwrmQi.d.mts.map +1 -0
- package/dist/clis/index.d.mts +1385 -1224
- package/dist/clis/index.d.mts.map +1 -1
- package/dist/clis/index.mjs +259 -74
- package/dist/clis/index.mjs.map +1 -1
- package/dist/clis/project-env.d.mts +4 -4
- package/dist/clis/project-env.d.mts.map +1 -1
- package/dist/clis/project-env.mjs.map +1 -1
- package/dist/clis/project-ports.d.mts +5 -5
- package/dist/clis/project-ports.d.mts.map +1 -1
- package/dist/clis/project-ports.mjs +1 -1
- package/dist/clis/project-ports.mjs.map +1 -1
- package/dist/clis/services/telemetry.d.mts +7 -7
- package/dist/clis/services/telemetry.d.mts.map +1 -1
- package/dist/clis/services/telemetry.mjs.map +1 -1
- package/dist/clis/types-Cc_rB0Yx.d.mts +541 -0
- package/dist/clis/types-Cc_rB0Yx.d.mts.map +1 -0
- package/dist/clis/utils.d.mts +4 -4
- package/dist/clis/utils.d.mts.map +1 -1
- package/dist/clis/utils.mjs.map +1 -1
- package/dist/{config-loader-B845Hidf.js → config-loader-CXhzL512.js} +33 -8
- package/dist/config-loader-CXhzL512.js.map +1 -0
- package/dist/connect/config-loader.d.ts +15 -8
- package/dist/connect/config-loader.d.ts.map +1 -1
- package/dist/connect/config-loader.js +2 -2
- package/dist/connect/index.d.ts +198 -57
- package/dist/connect/index.d.ts.map +1 -1
- package/dist/connect/index.js +313 -31
- package/dist/connect/index.js.map +1 -1
- package/dist/connect/json-adapter.d.ts +3 -4
- package/dist/connect/json-adapter.d.ts.map +1 -1
- package/dist/connect/json-adapter.js.map +1 -1
- package/dist/constants-C2K-m7pp.d.ts +9 -0
- package/dist/constants-C2K-m7pp.d.ts.map +1 -0
- package/dist/constants.d.ts +3 -2
- package/dist/constants.js +10 -5
- package/dist/constants.js.map +1 -1
- package/dist/document-drive/index.d.ts +131 -105
- package/dist/document-drive/index.d.ts.map +1 -1
- package/dist/document-drive/index.js +116 -54
- package/dist/document-drive/index.js.map +1 -1
- package/dist/document-model/errors.d.ts +3 -0
- package/dist/document-model/errors.js +152 -0
- package/dist/document-model/errors.js.map +1 -0
- package/dist/document-model/index.d.ts +5 -4
- package/dist/document-model/index.js +295 -390
- package/dist/document-model/index.js.map +1 -1
- package/dist/document-model/mock.d.ts +2 -3
- package/dist/document-model/mock.d.ts.map +1 -1
- package/dist/document-model/mock.js +2 -1
- package/dist/document-model/mock.js.map +1 -1
- package/dist/document-model/utils.d.ts +3 -2
- package/dist/document-model/utils.js +1 -1
- package/dist/document-model/version.d.ts +3 -0
- package/dist/document-model/version.js +8 -0
- package/dist/document-model/version.js.map +1 -0
- package/dist/index-BhqNGLu9.d.ts +36 -0
- package/dist/index-BhqNGLu9.d.ts.map +1 -0
- package/dist/index.d.ts +7 -6
- package/dist/index.js.map +1 -1
- package/dist/processors/index.d.ts +3 -2
- package/dist/processors/index.js +63 -4
- package/dist/processors/index.js.map +1 -1
- package/dist/purge-v06m_oGz.js +381 -0
- package/dist/purge-v06m_oGz.js.map +1 -0
- package/dist/registry/index.d.ts +15 -15
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +24 -6
- package/dist/registry/index.js.map +1 -1
- package/dist/registry/manifest-slim.d.ts +4 -3
- package/dist/registry/manifest-slim.d.ts.map +1 -1
- package/dist/registry/manifest-slim.js +21 -0
- package/dist/registry/manifest-slim.js.map +1 -1
- package/dist/registry/updates.d.ts +3 -3
- package/dist/registry/updates.d.ts.map +1 -1
- package/dist/registry/updates.js.map +1 -1
- package/dist/registry/urls.d.ts +2 -2
- package/dist/registry/urls.d.ts.map +1 -1
- package/dist/registry/urls.js.map +1 -1
- package/dist/{types-CpnWmiFY.d.ts → types-BRJfX8ck.d.ts} +2003 -821
- package/dist/types-BRJfX8ck.d.ts.map +1 -0
- package/dist/{types-YqLqb0Zb.d.ts → types-BTfv_ZzS.d.ts} +39 -43
- package/dist/types-BTfv_ZzS.d.ts.map +1 -0
- package/dist/{types-C1in4fl3.d.ts → types-Bsp8VL2y.d.ts} +2 -2
- package/dist/types-Bsp8VL2y.d.ts.map +1 -0
- package/dist/{utils-DP122OSS.d.ts → utils-BrKxCmKx.d.ts} +2 -2
- package/dist/utils-BrKxCmKx.d.ts.map +1 -0
- package/dist/{utils-aaTmfxFW.js → utils-CSF716ux.js} +10 -3
- package/dist/utils-CSF716ux.js.map +1 -0
- package/dist/version-BxLITo9P.d.ts +6 -0
- package/dist/version-BxLITo9P.d.ts.map +1 -0
- package/package.json +11 -6
- package/dist/clis/args/access-token--9H57y8J.d.mts +0 -18
- package/dist/clis/args/access-token--9H57y8J.d.mts.map +0 -1
- package/dist/clis/args/common-CcYbXrBx.mjs.map +0 -1
- package/dist/clis/args/common-Y8yh4ax1.d.mts +0 -183
- package/dist/clis/args/common-Y8yh4ax1.d.mts.map +0 -1
- package/dist/clis/args/connect-BUwHSfdh.d.mts +0 -443
- package/dist/clis/args/connect-BUwHSfdh.d.mts.map +0 -1
- package/dist/clis/args/connect-BVVvCmL9.mjs.map +0 -1
- package/dist/clis/args/generate-CA916Fvj.mjs.map +0 -1
- package/dist/clis/args/generate-DnV-bfXt.d.mts +0 -87
- package/dist/clis/args/generate-DnV-bfXt.d.mts.map +0 -1
- package/dist/clis/args/help-CjAsudUn.d.mts +0 -193
- package/dist/clis/args/help-CjAsudUn.d.mts.map +0 -1
- package/dist/clis/args/init-CUXyfquF.d.mts +0 -55
- package/dist/clis/args/init-CUXyfquF.d.mts.map +0 -1
- package/dist/clis/args/inspect-DtZeoA5c.d.mts +0 -15
- package/dist/clis/args/inspect-DtZeoA5c.d.mts.map +0 -1
- package/dist/clis/args/install-CkP8zcHb.d.mts +0 -40
- package/dist/clis/args/install-CkP8zcHb.d.mts.map +0 -1
- package/dist/clis/args/list-BGf8s_gj.d.mts +0 -12
- package/dist/clis/args/list-BGf8s_gj.d.mts.map +0 -1
- package/dist/clis/args/login-DNsHwvqk.d.mts +0 -27
- package/dist/clis/args/login-DNsHwvqk.d.mts.map +0 -1
- package/dist/clis/args/magic-string.es-h_0HDQBQ.mjs +0 -1013
- package/dist/clis/args/magic-string.es-h_0HDQBQ.mjs.map +0 -1
- package/dist/clis/args/migrate-sixkWhxm.d.mts +0 -21
- package/dist/clis/args/migrate-sixkWhxm.d.mts.map +0 -1
- package/dist/clis/args/publish-Dqe5DUst.d.mts +0 -18
- package/dist/clis/args/publish-Dqe5DUst.d.mts.map +0 -1
- package/dist/clis/args/registry-C_RfTsKB.d.mts +0 -19
- package/dist/clis/args/registry-C_RfTsKB.d.mts.map +0 -1
- package/dist/clis/args/service-DhIkf8-O.d.mts +0 -22
- package/dist/clis/args/service-DhIkf8-O.d.mts.map +0 -1
- package/dist/clis/args/switchboard-BlPaq2at.d.mts +0 -72
- package/dist/clis/args/switchboard-BlPaq2at.d.mts.map +0 -1
- package/dist/clis/args/uninstall-BpA3YYbw.d.mts +0 -31
- package/dist/clis/args/uninstall-BpA3YYbw.d.mts.map +0 -1
- package/dist/clis/args/unpublish-CvwaIimG.d.mts +0 -24
- package/dist/clis/args/unpublish-CvwaIimG.d.mts.map +0 -1
- package/dist/clis/args/vetra-DUhIB7Zk.d.mts +0 -113
- package/dist/clis/args/vetra-DUhIB7Zk.d.mts.map +0 -1
- package/dist/clis/build-config.mjs.map +0 -1
- package/dist/clis/constants.d.mts.map +0 -1
- package/dist/config-loader-B845Hidf.js.map +0 -1
- package/dist/constants-BP_gjn8g.d.ts +0 -8
- package/dist/constants-BP_gjn8g.d.ts.map +0 -1
- package/dist/index-C_iVZe7f.d.ts +0 -7
- package/dist/index-C_iVZe7f.d.ts.map +0 -1
- package/dist/index-DyYIJtVy.d.ts +0 -836
- package/dist/index-DyYIJtVy.d.ts.map +0 -1
- package/dist/types-C1in4fl3.d.ts.map +0 -1
- package/dist/types-CpnWmiFY.d.ts.map +0 -1
- package/dist/types-YqLqb0Zb.d.ts.map +0 -1
- package/dist/utils-DP122OSS.d.ts.map +0 -1
- 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
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
679
|
-
*
|
|
680
|
-
* create a child draft per element it visits
|
|
681
|
-
*
|
|
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
|
-
*
|
|
688
|
-
*
|
|
689
|
-
*
|
|
690
|
-
*
|
|
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]
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
752
|
-
state
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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:
|
|
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
|
|
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 (
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|