@powerhousedao/shared 6.2.3-dev.3 → 6.2.3-dev.31
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/{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/{magic-string.es-h_0HDQBQ.mjs → magic-string.es-BWtG0AyA.mjs} +33 -27
- package/dist/clis/args/magic-string.es-BWtG0AyA.mjs.map +1 -0
- 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-BBx5GDTc.d.mts +27 -0
- package/dist/clis/args/service-BBx5GDTc.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 +285 -180
- 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-CmdMi_wu.mjs +230 -0
- package/dist/clis/build-config-CmdMi_wu.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 +25 -8
- 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 +1335 -1221
- package/dist/clis/index.d.mts.map +1 -1
- package/dist/clis/index.mjs +181 -64
- 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-CMFHKrgv.d.mts +528 -0
- package/dist/clis/types-CMFHKrgv.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-CWQxMERh.js} +22 -8
- package/dist/config-loader-CWQxMERh.js.map +1 -0
- package/dist/connect/config-loader.d.ts +14 -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 +158 -56
- package/dist/connect/index.d.ts.map +1 -1
- package/dist/connect/index.js +271 -30
- 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-BP_gjn8g.d.ts → constants-DO4IYxuR.d.ts} +2 -1
- package/dist/constants-DO4IYxuR.d.ts.map +1 -0
- package/dist/constants.d.ts +3 -2
- package/dist/constants.js.map +1 -1
- package/dist/document-drive/index.d.ts +134 -100
- package/dist/document-drive/index.d.ts.map +1 -1
- package/dist/document-drive/index.js +120 -52
- package/dist/document-drive/index.js.map +1 -1
- package/dist/document-model/index.d.ts +5 -4
- package/dist/document-model/index.js +449 -227
- 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/{index-DyYIJtVy.d.ts → index-CDDyUSHE.d.ts} +40 -28
- package/dist/index-CDDyUSHE.d.ts.map +1 -0
- package/dist/index-D0JljlgO.d.ts +36 -0
- package/dist/index-D0JljlgO.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 +5 -1
- package/dist/processors/index.js.map +1 -1
- package/dist/registry/index.d.ts +15 -15
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +14 -5
- 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-C1in4fl3.d.ts → types-Bsp8VL2y.d.ts} +2 -2
- package/dist/types-Bsp8VL2y.d.ts.map +1 -0
- package/dist/{types-YqLqb0Zb.d.ts → types-VDHUeQnm.d.ts} +23 -35
- package/dist/types-VDHUeQnm.d.ts.map +1 -0
- package/dist/{types-CpnWmiFY.d.ts → types-xLPOHE23.d.ts} +593 -437
- package/dist/types-xLPOHE23.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-XotexSsQ.js} +3 -2
- package/dist/{utils-aaTmfxFW.js.map → utils-XotexSsQ.js.map} +1 -1
- package/package.json +10 -5
- 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-Dsf1vpHV.d.mts +0 -183
- package/dist/clis/args/common-Dsf1vpHV.d.mts.map +0 -1
- package/dist/clis/args/connect-BVVvCmL9.mjs.map +0 -1
- package/dist/clis/args/connect-DetTnI8g.d.mts +0 -443
- package/dist/clis/args/connect-DetTnI8g.d.mts.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.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-DLQ6lhLl.d.mts +0 -113
- package/dist/clis/args/vetra-DLQ6lhLl.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.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.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
|
@@ -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,13 +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);
|
|
712
|
+
}
|
|
713
|
+
/**
|
|
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.
|
|
729
|
+
*/
|
|
730
|
+
function insertNodeSorted(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;
|
|
685
746
|
}
|
|
686
747
|
function handleTargetNameCollisions(params) {
|
|
687
748
|
const { nodes, targetParentFolder, srcName, srcKind } = params;
|
|
@@ -704,15 +765,13 @@ const nodeReducer = {
|
|
|
704
765
|
srcKind: "file",
|
|
705
766
|
targetParentFolder: action.input.parentFolder || null
|
|
706
767
|
});
|
|
707
|
-
|
|
768
|
+
assignNodes(state, insertNodeSorted(nodes, {
|
|
708
769
|
id: action.input.id,
|
|
709
770
|
name,
|
|
710
771
|
kind: "file",
|
|
711
772
|
parentFolder: action.input.parentFolder ?? null,
|
|
712
773
|
documentType: action.input.documentType
|
|
713
|
-
};
|
|
714
|
-
state.nodes.push(fileNode);
|
|
715
|
-
state.nodes.sort((a, b) => a.id.localeCompare(b.id));
|
|
774
|
+
}));
|
|
716
775
|
dispatch?.({
|
|
717
776
|
type: "CREATE_CHILD_DOCUMENT",
|
|
718
777
|
input: {
|
|
@@ -731,19 +790,19 @@ const nodeReducer = {
|
|
|
731
790
|
srcKind: "folder",
|
|
732
791
|
targetParentFolder: action.input.parentFolder || null
|
|
733
792
|
});
|
|
734
|
-
state
|
|
793
|
+
assignNodes(state, insertNodeSorted(nodes, {
|
|
735
794
|
...action.input,
|
|
736
795
|
name,
|
|
737
796
|
kind: "folder",
|
|
738
797
|
parentFolder: action.input.parentFolder ?? null
|
|
739
|
-
});
|
|
740
|
-
state.nodes.sort((a, b) => a.id.localeCompare(b.id));
|
|
798
|
+
}));
|
|
741
799
|
},
|
|
742
800
|
deleteNodeOperation(state, action, dispatch) {
|
|
743
|
-
const
|
|
801
|
+
const nodes = readNodes(state);
|
|
802
|
+
const node = nodes.find((node) => node.id === action.input.id);
|
|
744
803
|
if (!node) throw new Error(`Node with id ${action.input.id} not found`);
|
|
745
|
-
const descendants = getDescendants(node,
|
|
746
|
-
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))));
|
|
747
806
|
[node, ...descendants].filter((node) => isFileNode(node)).forEach((node) => {
|
|
748
807
|
dispatch?.({
|
|
749
808
|
type: "DELETE_CHILD_DOCUMENT",
|
|
@@ -753,38 +812,39 @@ const nodeReducer = {
|
|
|
753
812
|
},
|
|
754
813
|
updateFileOperation(state, action) {
|
|
755
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.`);
|
|
756
|
-
|
|
815
|
+
const nodes = readNodes(state);
|
|
816
|
+
assignNodes(state, sortNodesById(nodes.map((node) => node.id === action.input.id ? {
|
|
757
817
|
...node,
|
|
758
818
|
name: handleTargetNameCollisions({
|
|
759
|
-
nodes:
|
|
819
|
+
nodes: nodes.filter((n) => n.id !== action.input.id),
|
|
760
820
|
srcName: action.input.name ?? node.name,
|
|
761
821
|
srcKind: "file",
|
|
762
822
|
targetParentFolder: action.input.parentFolder ?? node.parentFolder
|
|
763
823
|
}),
|
|
764
824
|
documentType: action.input.documentType ?? node.documentType
|
|
765
|
-
} : node);
|
|
766
|
-
state.nodes.sort((a, b) => a.id.localeCompare(b.id));
|
|
825
|
+
} : node)));
|
|
767
826
|
},
|
|
768
827
|
updateNodeOperation(state, action) {
|
|
769
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.`);
|
|
770
|
-
|
|
829
|
+
const nodes = readNodes(state);
|
|
830
|
+
assignNodes(state, sortNodesById(nodes.map((node) => node.id === action.input.id ? {
|
|
771
831
|
...node,
|
|
772
832
|
name: handleTargetNameCollisions({
|
|
773
|
-
nodes:
|
|
833
|
+
nodes: nodes.filter((n) => n.id !== action.input.id),
|
|
774
834
|
srcName: action.input.name ?? node.name,
|
|
775
835
|
srcKind: node.kind === "file" ? "file" : "folder",
|
|
776
836
|
targetParentFolder: action.input.parentFolder ?? node.parentFolder
|
|
777
837
|
}),
|
|
778
838
|
parentFolder: action.input.parentFolder === null ? null : node.parentFolder
|
|
779
|
-
} : node);
|
|
780
|
-
state.nodes.sort((a, b) => a.id.localeCompare(b.id));
|
|
839
|
+
} : node)));
|
|
781
840
|
},
|
|
782
841
|
copyNodeOperation(state, action, dispatch) {
|
|
783
|
-
const
|
|
842
|
+
const nodes = readNodes(state);
|
|
843
|
+
const node = nodes.find((node) => node.id === action.input.srcId);
|
|
784
844
|
if (!node) throw new Error(`Node with id ${action.input.srcId} not found`);
|
|
785
|
-
if (
|
|
845
|
+
if (nodes.find((node) => node.id === action.input.targetId)) throw new Error(`Node with id ${action.input.targetId} already exists`);
|
|
786
846
|
const name = handleTargetNameCollisions({
|
|
787
|
-
nodes
|
|
847
|
+
nodes,
|
|
788
848
|
srcName: action.input.targetName || node.name,
|
|
789
849
|
srcKind: node.kind === "file" ? "file" : "folder",
|
|
790
850
|
targetParentFolder: action.input.targetParentFolder || null
|
|
@@ -796,8 +856,7 @@ const nodeReducer = {
|
|
|
796
856
|
name,
|
|
797
857
|
parentFolder: action.input.targetParentFolder || null
|
|
798
858
|
};
|
|
799
|
-
state
|
|
800
|
-
state.nodes.sort((a, b) => a.id.localeCompare(b.id));
|
|
859
|
+
assignNodes(state, insertNodeSorted(nodes, newNode));
|
|
801
860
|
if (isFileNode(newNode)) dispatch?.({
|
|
802
861
|
type: "COPY_CHILD_DOCUMENT",
|
|
803
862
|
input: {
|
|
@@ -808,92 +867,101 @@ const nodeReducer = {
|
|
|
808
867
|
},
|
|
809
868
|
moveNodeOperation(state, action) {
|
|
810
869
|
if (action.input.srcFolder === action.input.targetParentFolder) throw new Error("Circular Reference Error: Attempting to move a node to its current parent folder");
|
|
811
|
-
const
|
|
870
|
+
const nodes = readNodes(state);
|
|
871
|
+
const node = nodes.find((node) => node.id === action.input.srcFolder);
|
|
812
872
|
if (!node) throw new Error(`Node with id ${action.input.srcFolder} not found`);
|
|
813
873
|
const name = handleTargetNameCollisions({
|
|
814
|
-
nodes
|
|
874
|
+
nodes,
|
|
815
875
|
srcName: node.name,
|
|
816
876
|
srcKind: node.kind === "file" ? "file" : "folder",
|
|
817
877
|
targetParentFolder: action.input.targetParentFolder || null
|
|
818
878
|
});
|
|
819
879
|
if (isFolderNode(node)) {
|
|
820
|
-
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");
|
|
821
881
|
}
|
|
822
|
-
state
|
|
882
|
+
assignNodes(state, sortNodesById(nodes.map((node) => {
|
|
823
883
|
if (node.id === action.input.srcFolder) return {
|
|
824
884
|
...node,
|
|
825
885
|
name,
|
|
826
886
|
parentFolder: action.input.targetParentFolder || null
|
|
827
887
|
};
|
|
828
888
|
return node;
|
|
829
|
-
});
|
|
830
|
-
state.nodes.sort((a, b) => a.id.localeCompare(b.id));
|
|
889
|
+
})));
|
|
831
890
|
}
|
|
832
891
|
};
|
|
833
892
|
//#endregion
|
|
834
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
|
+
}
|
|
835
903
|
const driveStateReducer = (state, action, dispatch) => {
|
|
836
904
|
if (isDocumentAction(action)) return state;
|
|
837
905
|
const typedAction = action;
|
|
838
906
|
switch (typedAction.type) {
|
|
839
907
|
case "ADD_FILE":
|
|
840
|
-
AddFileInputSchema
|
|
908
|
+
memoizedSchema(AddFileInputSchema).parse(typedAction.input);
|
|
841
909
|
nodeReducer.addFileOperation(state[typedAction.scope], action, dispatch);
|
|
842
910
|
break;
|
|
843
911
|
case "ADD_FOLDER":
|
|
844
|
-
AddFolderInputSchema
|
|
912
|
+
memoizedSchema(AddFolderInputSchema).parse(typedAction.input);
|
|
845
913
|
nodeReducer.addFolderOperation(state[typedAction.scope], action, dispatch);
|
|
846
914
|
break;
|
|
847
915
|
case "DELETE_NODE":
|
|
848
|
-
DeleteNodeInputSchema
|
|
916
|
+
memoizedSchema(DeleteNodeInputSchema).parse(typedAction.input);
|
|
849
917
|
nodeReducer.deleteNodeOperation(state[typedAction.scope], action, dispatch);
|
|
850
918
|
break;
|
|
851
919
|
case "UPDATE_FILE":
|
|
852
|
-
UpdateFileInputSchema
|
|
920
|
+
memoizedSchema(UpdateFileInputSchema).parse(typedAction.input);
|
|
853
921
|
nodeReducer.updateFileOperation(state[typedAction.scope], action, dispatch);
|
|
854
922
|
break;
|
|
855
923
|
case "UPDATE_NODE":
|
|
856
|
-
UpdateNodeInputSchema
|
|
924
|
+
memoizedSchema(UpdateNodeInputSchema).parse(typedAction.input);
|
|
857
925
|
nodeReducer.updateNodeOperation(state[typedAction.scope], action, dispatch);
|
|
858
926
|
break;
|
|
859
927
|
case "COPY_NODE":
|
|
860
|
-
CopyNodeInputSchema
|
|
928
|
+
memoizedSchema(CopyNodeInputSchema).parse(typedAction.input);
|
|
861
929
|
nodeReducer.copyNodeOperation(state[typedAction.scope], action, dispatch);
|
|
862
930
|
break;
|
|
863
931
|
case "MOVE_NODE":
|
|
864
|
-
MoveNodeInputSchema
|
|
932
|
+
memoizedSchema(MoveNodeInputSchema).parse(typedAction.input);
|
|
865
933
|
nodeReducer.moveNodeOperation(state[typedAction.scope], action, dispatch);
|
|
866
934
|
break;
|
|
867
935
|
case "SET_DRIVE_NAME":
|
|
868
|
-
SetDriveNameInputSchema
|
|
936
|
+
memoizedSchema(SetDriveNameInputSchema).parse(typedAction.input);
|
|
869
937
|
driveReducer.setDriveNameOperation(state[typedAction.scope], action, dispatch);
|
|
870
938
|
break;
|
|
871
939
|
case "SET_DRIVE_ICON":
|
|
872
|
-
SetDriveIconInputSchema
|
|
940
|
+
memoizedSchema(SetDriveIconInputSchema).parse(typedAction.input);
|
|
873
941
|
driveReducer.setDriveIconOperation(state[typedAction.scope], action, dispatch);
|
|
874
942
|
break;
|
|
875
943
|
case "SET_SHARING_TYPE":
|
|
876
|
-
SetSharingTypeInputSchema
|
|
944
|
+
memoizedSchema(SetSharingTypeInputSchema).parse(typedAction.input);
|
|
877
945
|
driveReducer.setSharingTypeOperation(state[typedAction.scope], action, dispatch);
|
|
878
946
|
break;
|
|
879
947
|
case "SET_AVAILABLE_OFFLINE":
|
|
880
|
-
SetAvailableOfflineInputSchema
|
|
948
|
+
memoizedSchema(SetAvailableOfflineInputSchema).parse(typedAction.input);
|
|
881
949
|
driveReducer.setAvailableOfflineOperation(state[typedAction.scope], action, dispatch);
|
|
882
950
|
break;
|
|
883
951
|
case "ADD_LISTENER":
|
|
884
|
-
AddListenerInputSchema
|
|
952
|
+
memoizedSchema(AddListenerInputSchema).parse(typedAction.input);
|
|
885
953
|
driveReducer.addListenerOperation(state[typedAction.scope], action, dispatch);
|
|
886
954
|
break;
|
|
887
955
|
case "REMOVE_LISTENER":
|
|
888
|
-
RemoveListenerInputSchema
|
|
956
|
+
memoizedSchema(RemoveListenerInputSchema).parse(typedAction.input);
|
|
889
957
|
driveReducer.removeListenerOperation(state[typedAction.scope], action, dispatch);
|
|
890
958
|
break;
|
|
891
959
|
case "ADD_TRIGGER":
|
|
892
|
-
AddTriggerInputSchema
|
|
960
|
+
memoizedSchema(AddTriggerInputSchema).parse(typedAction.input);
|
|
893
961
|
driveReducer.addTriggerOperation(state[typedAction.scope], action, dispatch);
|
|
894
962
|
break;
|
|
895
963
|
case "REMOVE_TRIGGER":
|
|
896
|
-
RemoveTriggerInputSchema
|
|
964
|
+
memoizedSchema(RemoveTriggerInputSchema).parse(typedAction.input);
|
|
897
965
|
driveReducer.removeTriggerOperation(state[typedAction.scope], action, dispatch);
|
|
898
966
|
break;
|
|
899
967
|
default: return state;
|
|
@@ -966,6 +1034,6 @@ const driveDocumentModelModule = {
|
|
|
966
1034
|
}
|
|
967
1035
|
};
|
|
968
1036
|
//#endregion
|
|
969
|
-
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, 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 };
|
|
970
1038
|
|
|
971
1039
|
//# sourceMappingURL=index.js.map
|