document-model 4.1.0-dev.9 → 4.1.0-dev.90
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/README.md +24 -24
- package/dist/src/core/actions.d.ts +79 -0
- package/dist/src/core/actions.d.ts.map +1 -0
- package/dist/src/core/actions.js +183 -0
- package/dist/src/core/actions.js.map +1 -0
- package/dist/src/core/crypto.d.ts +17 -0
- package/dist/src/core/crypto.d.ts.map +1 -0
- package/dist/src/core/crypto.js +87 -0
- package/dist/src/core/crypto.js.map +1 -0
- package/dist/src/{document/utils/document-helpers.d.ts → core/documents.d.ts} +57 -22
- package/dist/src/core/documents.d.ts.map +1 -0
- package/dist/src/{document/utils/document-helpers.js → core/documents.js} +364 -26
- package/dist/src/core/documents.js.map +1 -0
- package/dist/src/core/errors.d.ts +21 -0
- package/dist/src/core/errors.d.ts.map +1 -0
- package/dist/src/core/errors.js +47 -0
- package/dist/src/core/errors.js.map +1 -0
- package/dist/src/core/files.d.ts +14 -0
- package/dist/src/core/files.d.ts.map +1 -0
- package/dist/src/core/files.js +74 -0
- package/dist/src/core/files.js.map +1 -0
- package/dist/src/{document/utils → core}/header.d.ts +3 -35
- package/dist/src/core/header.d.ts.map +1 -0
- package/dist/src/{document/utils → core}/header.js +6 -19
- package/dist/src/core/header.js.map +1 -0
- package/dist/src/core/index.d.ts +12 -0
- package/dist/src/core/index.d.ts.map +1 -0
- package/dist/src/core/index.js +12 -0
- package/dist/src/core/index.js.map +1 -0
- package/dist/src/{document/utils/file.d.ts → core/node.d.ts} +40 -29
- package/dist/src/core/node.d.ts.map +1 -0
- package/dist/src/core/node.js +149 -0
- package/dist/src/core/node.js.map +1 -0
- package/dist/src/core/operations.d.ts +32 -0
- package/dist/src/core/operations.d.ts.map +1 -0
- package/dist/src/{document/actions → core}/operations.js +11 -59
- package/dist/src/core/operations.js.map +1 -0
- package/dist/src/core/ph-types.d.ts +259 -0
- package/dist/src/core/ph-types.d.ts.map +1 -0
- package/dist/src/core/ph-types.js +15 -0
- package/dist/src/core/ph-types.js.map +1 -0
- package/dist/src/core/reducer.d.ts +61 -0
- package/dist/src/core/reducer.d.ts.map +1 -0
- package/dist/src/{document → core}/reducer.js +165 -103
- package/dist/src/core/reducer.js.map +1 -0
- package/dist/src/{document/schema/zod.d.ts → core/schemas.d.ts} +37 -10
- package/dist/src/core/schemas.d.ts.map +1 -0
- package/dist/src/{document/schema/zod.js → core/schemas.js} +23 -26
- package/dist/src/core/schemas.js.map +1 -0
- package/dist/src/core/state.d.ts +26 -0
- package/dist/src/core/state.d.ts.map +1 -0
- package/dist/src/core/state.js +56 -0
- package/dist/src/core/state.js.map +1 -0
- package/dist/src/core/types.d.ts +481 -0
- package/dist/src/core/types.d.ts.map +1 -0
- package/dist/src/{document → core}/types.js.map +1 -1
- package/dist/src/core/validation.d.ts +4 -0
- package/dist/src/core/validation.d.ts.map +1 -0
- package/dist/src/{document/utils → core}/validation.js +6 -2
- package/dist/src/core/validation.js.map +1 -0
- package/dist/src/document-model/actions.d.ts +158 -0
- package/dist/src/document-model/actions.d.ts.map +1 -0
- package/dist/src/document-model/actions.js +109 -0
- package/dist/src/document-model/actions.js.map +1 -0
- package/dist/src/document-model/constants.d.ts +7 -0
- package/dist/src/document-model/constants.d.ts.map +1 -0
- package/dist/src/document-model/{gen/document-model.js → constants.js} +35 -3
- package/dist/src/document-model/constants.js.map +1 -0
- package/dist/src/document-model/files.d.ts +5 -0
- package/dist/src/document-model/files.d.ts.map +1 -0
- package/dist/src/document-model/files.js +9 -0
- package/dist/src/document-model/files.js.map +1 -0
- package/dist/src/document-model/index.d.ts +9 -0
- package/dist/src/document-model/index.d.ts.map +1 -0
- package/dist/src/document-model/index.js +9 -0
- package/dist/src/document-model/index.js.map +1 -0
- package/dist/src/document-model/module.d.ts +1 -1
- package/dist/src/document-model/module.d.ts.map +1 -1
- package/dist/src/document-model/module.js +17 -10
- package/dist/src/document-model/module.js.map +1 -1
- package/dist/src/document-model/reducers.d.ts +11 -0
- package/dist/src/document-model/reducers.d.ts.map +1 -0
- package/dist/src/document-model/reducers.js +588 -0
- package/dist/src/document-model/reducers.js.map +1 -0
- package/dist/src/document-model/schemas.d.ts +449 -0
- package/dist/src/document-model/schemas.d.ts.map +1 -0
- package/dist/src/document-model/{gen/schema/zod.js → schemas.js} +9 -15
- package/dist/src/document-model/schemas.js.map +1 -0
- package/dist/src/document-model/state.d.ts +11 -0
- package/dist/src/document-model/state.d.ts.map +1 -0
- package/dist/src/document-model/state.js +61 -0
- package/dist/src/document-model/state.js.map +1 -0
- package/dist/src/document-model/types.d.ts +671 -3
- package/dist/src/document-model/types.d.ts.map +1 -1
- package/dist/src/document-model/validation.d.ts +7 -0
- package/dist/src/document-model/validation.d.ts.map +1 -0
- package/dist/src/document-model/{custom/utils.js → validation.js} +1 -1
- package/dist/src/document-model/validation.js.map +1 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -0
- package/dist/test/document/crypto.test.js +27 -54
- package/dist/test/document/crypto.test.js.map +1 -1
- package/dist/test/document/event-vs-command.test.js +81 -51
- package/dist/test/document/event-vs-command.test.js.map +1 -1
- package/dist/test/document/local.test.js +27 -45
- package/dist/test/document/local.test.js.map +1 -1
- package/dist/test/document/operation-id.test.js +4 -7
- package/dist/test/document/operation-id.test.js.map +1 -1
- package/dist/test/document/prune.test.js +23 -36
- package/dist/test/document/prune.test.js.map +1 -1
- package/dist/test/document/reducer.test.js +101 -81
- package/dist/test/document/reducer.test.js.map +1 -1
- package/dist/test/document/skip-operations.test.js +67 -87
- package/dist/test/document/skip-operations.test.js.map +1 -1
- package/dist/test/document/undo-redo.test.js +60 -36
- package/dist/test/document/undo-redo.test.js.map +1 -1
- package/dist/test/document/utils.test.js +51 -41
- package/dist/test/document/utils.test.js.map +1 -1
- package/dist/test/document-helpers/addUndo.test.js +2 -2
- package/dist/test/document-helpers/addUndo.test.js.map +1 -1
- package/dist/test/document-helpers/attachBranch.test.js +21 -21
- package/dist/test/document-helpers/attachBranch.test.js.map +1 -1
- package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.js +1 -1
- package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.js.map +1 -1
- package/dist/test/document-helpers/conflictResolution.test.js +11 -11
- package/dist/test/document-helpers/conflictResolution.test.js.map +1 -1
- package/dist/test/document-helpers/filterDuplicatedOperations.test.js +1 -1
- package/dist/test/document-helpers/filterDuplicatedOperations.test.js.map +1 -1
- package/dist/test/document-helpers/garbageCollect.test.js +1 -1
- package/dist/test/document-helpers/garbageCollect.test.js.map +1 -1
- package/dist/test/document-helpers/groupOperationsByScope.test.js +71 -71
- package/dist/test/document-helpers/groupOperationsByScope.test.js.map +1 -1
- package/dist/test/document-helpers/merge.test.js +126 -126
- package/dist/test/document-helpers/merge.test.js.map +1 -1
- package/dist/test/document-helpers/nextSkipNumber.test.js +1 -1
- package/dist/test/document-helpers/nextSkipNumber.test.js.map +1 -1
- package/dist/test/document-helpers/prepareOperations.test.js +1 -1
- package/dist/test/document-helpers/prepareOperations.test.js.map +1 -1
- package/dist/test/document-helpers/removeExistingOperations.test.js +38 -26
- package/dist/test/document-helpers/removeExistingOperations.test.js.map +1 -1
- package/dist/test/document-helpers/reshuffleByTimestamp.test.js +16 -16
- package/dist/test/document-helpers/reshuffleByTimestamp.test.js.map +1 -1
- package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.js +22 -22
- package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.js.map +1 -1
- package/dist/test/document-helpers/skipHeaderOperations.test.js +34 -41
- package/dist/test/document-helpers/skipHeaderOperations.test.js.map +1 -1
- package/dist/test/document-helpers/sortOperations.test.js +1 -1
- package/dist/test/document-helpers/sortOperations.test.js.map +1 -1
- package/dist/test/document-helpers/split.test.js +3 -3
- package/dist/test/document-helpers/split.test.js.map +1 -1
- package/dist/test/document-helpers/utils.d.ts +2 -1
- package/dist/test/document-helpers/utils.d.ts.map +1 -1
- package/dist/test/document-helpers/utils.js +13 -8
- package/dist/test/document-helpers/utils.js.map +1 -1
- package/dist/test/document-model/replay.test.js +21 -25
- package/dist/test/document-model/replay.test.js.map +1 -1
- package/dist/test/document-model/skip-operations.test.js +93 -96
- package/dist/test/document-model/skip-operations.test.js.map +1 -1
- package/dist/test/document-model/validation.test.js +10 -13
- package/dist/test/document-model/validation.test.js.map +1 -1
- package/dist/test/document-model/zip.test.js +20 -21
- package/dist/test/document-model/zip.test.js.map +1 -1
- package/dist/test/helpers.d.ts +42 -8
- package/dist/test/helpers.d.ts.map +1 -1
- package/dist/test/helpers.js +55 -8
- package/dist/test/helpers.js.map +1 -1
- package/dist/test/index.d.ts +4 -0
- package/dist/test/index.d.ts.map +1 -0
- package/dist/test/index.js +3 -0
- package/dist/test/index.js.map +1 -0
- package/dist/test/types.d.ts +6 -0
- package/dist/test/types.d.ts.map +1 -0
- package/dist/{src/document/schema → test}/types.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/vitest.config.d.ts +1 -1
- package/dist/vitest.config.d.ts.map +1 -1
- package/dist/vitest.config.js +2 -8
- package/dist/vitest.config.js.map +1 -1
- package/package.json +26 -23
- package/dist/index.d.ts +0 -20
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -14
- package/dist/index.js.map +0 -1
- package/dist/src/document/actions/creators.d.ts +0 -51
- package/dist/src/document/actions/creators.d.ts.map +0 -1
- package/dist/src/document/actions/creators.js +0 -57
- package/dist/src/document/actions/creators.js.map +0 -1
- package/dist/src/document/actions/operations.d.ts +0 -36
- package/dist/src/document/actions/operations.d.ts.map +0 -1
- package/dist/src/document/actions/operations.js.map +0 -1
- package/dist/src/document/actions/types.d.ts +0 -34
- package/dist/src/document/actions/types.d.ts.map +0 -1
- package/dist/src/document/actions/types.js +0 -7
- package/dist/src/document/actions/types.js.map +0 -1
- package/dist/src/document/object.d.ts +0 -124
- package/dist/src/document/object.d.ts.map +0 -1
- package/dist/src/document/object.js +0 -183
- package/dist/src/document/object.js.map +0 -1
- package/dist/src/document/ph-factories.d.ts +0 -6
- package/dist/src/document/ph-factories.d.ts.map +0 -1
- package/dist/src/document/ph-factories.js +0 -62
- package/dist/src/document/ph-factories.js.map +0 -1
- package/dist/src/document/ph-types.d.ts +0 -68
- package/dist/src/document/ph-types.d.ts.map +0 -1
- package/dist/src/document/ph-types.js +0 -2
- package/dist/src/document/ph-types.js.map +0 -1
- package/dist/src/document/reducer.d.ts +0 -49
- package/dist/src/document/reducer.d.ts.map +0 -1
- package/dist/src/document/reducer.js.map +0 -1
- package/dist/src/document/schema/types.d.ts +0 -176
- package/dist/src/document/schema/types.d.ts.map +0 -1
- package/dist/src/document/schema/types.js +0 -2
- package/dist/src/document/schema/zod.d.ts.map +0 -1
- package/dist/src/document/schema/zod.js.map +0 -1
- package/dist/src/document/signal.d.ts +0 -36
- package/dist/src/document/signal.d.ts.map +0 -1
- package/dist/src/document/signal.js +0 -2
- package/dist/src/document/signal.js.map +0 -1
- package/dist/src/document/types.d.ts +0 -339
- package/dist/src/document/types.d.ts.map +0 -1
- package/dist/src/document/types.js +0 -2
- package/dist/src/document/utils/base.d.ts +0 -88
- package/dist/src/document/utils/base.d.ts.map +0 -1
- package/dist/src/document/utils/base.js +0 -335
- package/dist/src/document/utils/base.js.map +0 -1
- package/dist/src/document/utils/browser.d.ts +0 -18
- package/dist/src/document/utils/browser.d.ts.map +0 -1
- package/dist/src/document/utils/browser.js +0 -54
- package/dist/src/document/utils/browser.js.map +0 -1
- package/dist/src/document/utils/crypto.d.ts +0 -11
- package/dist/src/document/utils/crypto.d.ts.map +0 -1
- package/dist/src/document/utils/crypto.js +0 -71
- package/dist/src/document/utils/crypto.js.map +0 -1
- package/dist/src/document/utils/document-helpers.d.ts.map +0 -1
- package/dist/src/document/utils/document-helpers.js.map +0 -1
- package/dist/src/document/utils/errors.d.ts +0 -10
- package/dist/src/document/utils/errors.d.ts.map +0 -1
- package/dist/src/document/utils/errors.js +0 -19
- package/dist/src/document/utils/errors.js.map +0 -1
- package/dist/src/document/utils/file.d.ts.map +0 -1
- package/dist/src/document/utils/file.js +0 -152
- package/dist/src/document/utils/file.js.map +0 -1
- package/dist/src/document/utils/header.d.ts.map +0 -1
- package/dist/src/document/utils/header.js.map +0 -1
- package/dist/src/document/utils/node.d.ts +0 -18
- package/dist/src/document/utils/node.d.ts.map +0 -1
- package/dist/src/document/utils/node.js +0 -62
- package/dist/src/document/utils/node.js.map +0 -1
- package/dist/src/document/utils/validation.d.ts +0 -3
- package/dist/src/document/utils/validation.d.ts.map +0 -1
- package/dist/src/document/utils/validation.js.map +0 -1
- package/dist/src/document-model/custom/reducers/header.d.ts +0 -3
- package/dist/src/document-model/custom/reducers/header.d.ts.map +0 -1
- package/dist/src/document-model/custom/reducers/header.js +0 -23
- package/dist/src/document-model/custom/reducers/header.js.map +0 -1
- package/dist/src/document-model/custom/reducers/module.d.ts +0 -3
- package/dist/src/document-model/custom/reducers/module.d.ts.map +0 -1
- package/dist/src/document-model/custom/reducers/module.js +0 -41
- package/dist/src/document-model/custom/reducers/module.js.map +0 -1
- package/dist/src/document-model/custom/reducers/operation-error.d.ts +0 -3
- package/dist/src/document-model/custom/reducers/operation-error.d.ts.map +0 -1
- package/dist/src/document-model/custom/reducers/operation-error.js +0 -94
- package/dist/src/document-model/custom/reducers/operation-error.js.map +0 -1
- package/dist/src/document-model/custom/reducers/operation-example.d.ts +0 -3
- package/dist/src/document-model/custom/reducers/operation-example.d.ts.map +0 -1
- package/dist/src/document-model/custom/reducers/operation-example.js +0 -53
- package/dist/src/document-model/custom/reducers/operation-example.js.map +0 -1
- package/dist/src/document-model/custom/reducers/operation.d.ts +0 -3
- package/dist/src/document-model/custom/reducers/operation.d.ts.map +0 -1
- package/dist/src/document-model/custom/reducers/operation.js +0 -125
- package/dist/src/document-model/custom/reducers/operation.js.map +0 -1
- package/dist/src/document-model/custom/reducers/state.d.ts +0 -3
- package/dist/src/document-model/custom/reducers/state.d.ts.map +0 -1
- package/dist/src/document-model/custom/reducers/state.js +0 -71
- package/dist/src/document-model/custom/reducers/state.js.map +0 -1
- package/dist/src/document-model/custom/reducers/versioning.d.ts +0 -8
- package/dist/src/document-model/custom/reducers/versioning.d.ts.map +0 -1
- package/dist/src/document-model/custom/reducers/versioning.js +0 -23
- package/dist/src/document-model/custom/reducers/versioning.js.map +0 -1
- package/dist/src/document-model/custom/utils.d.ts +0 -8
- package/dist/src/document-model/custom/utils.d.ts.map +0 -1
- package/dist/src/document-model/custom/utils.js.map +0 -1
- package/dist/src/document-model/gen/actions.d.ts +0 -16
- package/dist/src/document-model/gen/actions.d.ts.map +0 -1
- package/dist/src/document-model/gen/actions.js +0 -8
- package/dist/src/document-model/gen/actions.js.map +0 -1
- package/dist/src/document-model/gen/constants.d.ts +0 -7
- package/dist/src/document-model/gen/constants.d.ts.map +0 -1
- package/dist/src/document-model/gen/constants.js +0 -34
- package/dist/src/document-model/gen/constants.js.map +0 -1
- package/dist/src/document-model/gen/creators.d.ts +0 -8
- package/dist/src/document-model/gen/creators.d.ts.map +0 -1
- package/dist/src/document-model/gen/creators.js +0 -8
- package/dist/src/document-model/gen/creators.js.map +0 -1
- package/dist/src/document-model/gen/document-model.d.ts +0 -3
- package/dist/src/document-model/gen/document-model.d.ts.map +0 -1
- package/dist/src/document-model/gen/document-model.js.map +0 -1
- package/dist/src/document-model/gen/header/actions.d.ts +0 -28
- package/dist/src/document-model/gen/header/actions.d.ts.map +0 -1
- package/dist/src/document-model/gen/header/actions.js +0 -2
- package/dist/src/document-model/gen/header/actions.js.map +0 -1
- package/dist/src/document-model/gen/header/creators.d.ts +0 -9
- package/dist/src/document-model/gen/header/creators.d.ts.map +0 -1
- package/dist/src/document-model/gen/header/creators.js +0 -9
- package/dist/src/document-model/gen/header/creators.js.map +0 -1
- package/dist/src/document-model/gen/header/object.d.ts +0 -13
- package/dist/src/document-model/gen/header/object.d.ts.map +0 -1
- package/dist/src/document-model/gen/header/object.js +0 -23
- package/dist/src/document-model/gen/header/object.js.map +0 -1
- package/dist/src/document-model/gen/header/operations.d.ts +0 -11
- package/dist/src/document-model/gen/header/operations.d.ts.map +0 -1
- package/dist/src/document-model/gen/header/operations.js +0 -2
- package/dist/src/document-model/gen/header/operations.js.map +0 -1
- package/dist/src/document-model/gen/module/actions.d.ts +0 -24
- package/dist/src/document-model/gen/module/actions.d.ts.map +0 -1
- package/dist/src/document-model/gen/module/actions.js +0 -2
- package/dist/src/document-model/gen/module/actions.js.map +0 -1
- package/dist/src/document-model/gen/module/creators.d.ts +0 -8
- package/dist/src/document-model/gen/module/creators.d.ts.map +0 -1
- package/dist/src/document-model/gen/module/creators.js +0 -8
- package/dist/src/document-model/gen/module/creators.js.map +0 -1
- package/dist/src/document-model/gen/module/object.d.ts +0 -12
- package/dist/src/document-model/gen/module/object.d.ts.map +0 -1
- package/dist/src/document-model/gen/module/object.js +0 -20
- package/dist/src/document-model/gen/module/object.js.map +0 -1
- package/dist/src/document-model/gen/module/operations.d.ts +0 -10
- package/dist/src/document-model/gen/module/operations.d.ts.map +0 -1
- package/dist/src/document-model/gen/module/operations.js +0 -2
- package/dist/src/document-model/gen/module/operations.js.map +0 -1
- package/dist/src/document-model/gen/object.d.ts +0 -29
- package/dist/src/document-model/gen/object.d.ts.map +0 -1
- package/dist/src/document-model/gen/object.js +0 -46
- package/dist/src/document-model/gen/object.js.map +0 -1
- package/dist/src/document-model/gen/operation/actions.d.ts +0 -44
- package/dist/src/document-model/gen/operation/actions.d.ts.map +0 -1
- package/dist/src/document-model/gen/operation/actions.js +0 -2
- package/dist/src/document-model/gen/operation/actions.js.map +0 -1
- package/dist/src/document-model/gen/operation/creators.d.ts +0 -13
- package/dist/src/document-model/gen/operation/creators.d.ts.map +0 -1
- package/dist/src/document-model/gen/operation/creators.js +0 -13
- package/dist/src/document-model/gen/operation/creators.js.map +0 -1
- package/dist/src/document-model/gen/operation/object.d.ts +0 -18
- package/dist/src/document-model/gen/operation/object.d.ts.map +0 -1
- package/dist/src/document-model/gen/operation/object.js +0 -35
- package/dist/src/document-model/gen/operation/object.js.map +0 -1
- package/dist/src/document-model/gen/operation/operations.d.ts +0 -15
- package/dist/src/document-model/gen/operation/operations.d.ts.map +0 -1
- package/dist/src/document-model/gen/operation/operations.js +0 -2
- package/dist/src/document-model/gen/operation/operations.js.map +0 -1
- package/dist/src/document-model/gen/operation-error/actions.d.ts +0 -32
- package/dist/src/document-model/gen/operation-error/actions.d.ts.map +0 -1
- package/dist/src/document-model/gen/operation-error/actions.js +0 -2
- package/dist/src/document-model/gen/operation-error/actions.js.map +0 -1
- package/dist/src/document-model/gen/operation-error/creators.d.ts +0 -10
- package/dist/src/document-model/gen/operation-error/creators.d.ts.map +0 -1
- package/dist/src/document-model/gen/operation-error/creators.js +0 -10
- package/dist/src/document-model/gen/operation-error/creators.js.map +0 -1
- package/dist/src/document-model/gen/operation-error/object.d.ts +0 -15
- package/dist/src/document-model/gen/operation-error/object.d.ts.map +0 -1
- package/dist/src/document-model/gen/operation-error/object.js +0 -26
- package/dist/src/document-model/gen/operation-error/object.js.map +0 -1
- package/dist/src/document-model/gen/operation-error/operations.d.ts +0 -12
- package/dist/src/document-model/gen/operation-error/operations.d.ts.map +0 -1
- package/dist/src/document-model/gen/operation-error/operations.js +0 -2
- package/dist/src/document-model/gen/operation-error/operations.js.map +0 -1
- package/dist/src/document-model/gen/operation-example/actions.d.ts +0 -20
- package/dist/src/document-model/gen/operation-example/actions.d.ts.map +0 -1
- package/dist/src/document-model/gen/operation-example/actions.js +0 -2
- package/dist/src/document-model/gen/operation-example/actions.js.map +0 -1
- package/dist/src/document-model/gen/operation-example/creators.d.ts +0 -7
- package/dist/src/document-model/gen/operation-example/creators.d.ts.map +0 -1
- package/dist/src/document-model/gen/operation-example/creators.js +0 -7
- package/dist/src/document-model/gen/operation-example/creators.js.map +0 -1
- package/dist/src/document-model/gen/operation-example/object.d.ts +0 -12
- package/dist/src/document-model/gen/operation-example/object.d.ts.map +0 -1
- package/dist/src/document-model/gen/operation-example/object.js +0 -17
- package/dist/src/document-model/gen/operation-example/object.js.map +0 -1
- package/dist/src/document-model/gen/operation-example/operations.d.ts +0 -9
- package/dist/src/document-model/gen/operation-example/operations.d.ts.map +0 -1
- package/dist/src/document-model/gen/operation-example/operations.js +0 -2
- package/dist/src/document-model/gen/operation-example/operations.js.map +0 -1
- package/dist/src/document-model/gen/reducer.d.ts +0 -5
- package/dist/src/document-model/gen/reducer.d.ts.map +0 -1
- package/dist/src/document-model/gen/reducer.js +0 -193
- package/dist/src/document-model/gen/reducer.js.map +0 -1
- package/dist/src/document-model/gen/schema/index.d.ts +0 -3
- package/dist/src/document-model/gen/schema/index.d.ts.map +0 -1
- package/dist/src/document-model/gen/schema/index.js +0 -3
- package/dist/src/document-model/gen/schema/index.js.map +0 -1
- package/dist/src/document-model/gen/schema/types.d.ts +0 -457
- package/dist/src/document-model/gen/schema/types.d.ts.map +0 -1
- package/dist/src/document-model/gen/schema/types.js.map +0 -1
- package/dist/src/document-model/gen/schema/zod.d.ts +0 -453
- package/dist/src/document-model/gen/schema/zod.d.ts.map +0 -1
- package/dist/src/document-model/gen/schema/zod.js.map +0 -1
- package/dist/src/document-model/gen/state/actions.d.ts +0 -28
- package/dist/src/document-model/gen/state/actions.d.ts.map +0 -1
- package/dist/src/document-model/gen/state/actions.js +0 -2
- package/dist/src/document-model/gen/state/actions.js.map +0 -1
- package/dist/src/document-model/gen/state/creators.d.ts +0 -9
- package/dist/src/document-model/gen/state/creators.d.ts.map +0 -1
- package/dist/src/document-model/gen/state/creators.js +0 -9
- package/dist/src/document-model/gen/state/creators.js.map +0 -1
- package/dist/src/document-model/gen/state/object.d.ts +0 -13
- package/dist/src/document-model/gen/state/object.d.ts.map +0 -1
- package/dist/src/document-model/gen/state/object.js +0 -23
- package/dist/src/document-model/gen/state/object.js.map +0 -1
- package/dist/src/document-model/gen/state/operations.d.ts +0 -11
- package/dist/src/document-model/gen/state/operations.d.ts.map +0 -1
- package/dist/src/document-model/gen/state/operations.js +0 -2
- package/dist/src/document-model/gen/state/operations.js.map +0 -1
- package/dist/src/document-model/gen/types.d.ts +0 -7
- package/dist/src/document-model/gen/types.d.ts.map +0 -1
- package/dist/src/document-model/gen/types.js.map +0 -1
- package/dist/src/document-model/gen/utils.d.ts +0 -11
- package/dist/src/document-model/gen/utils.d.ts.map +0 -1
- package/dist/src/document-model/gen/utils.js +0 -33
- package/dist/src/document-model/gen/utils.js.map +0 -1
- package/dist/src/document-model/gen/versioning/actions.d.ts +0 -24
- package/dist/src/document-model/gen/versioning/actions.d.ts.map +0 -1
- package/dist/src/document-model/gen/versioning/actions.js +0 -2
- package/dist/src/document-model/gen/versioning/actions.js.map +0 -1
- package/dist/src/document-model/gen/versioning/creators.d.ts +0 -8
- package/dist/src/document-model/gen/versioning/creators.d.ts.map +0 -1
- package/dist/src/document-model/gen/versioning/creators.js +0 -8
- package/dist/src/document-model/gen/versioning/creators.js.map +0 -1
- package/dist/src/document-model/gen/versioning/object.d.ts +0 -13
- package/dist/src/document-model/gen/versioning/object.d.ts.map +0 -1
- package/dist/src/document-model/gen/versioning/object.js +0 -20
- package/dist/src/document-model/gen/versioning/object.js.map +0 -1
- package/dist/src/document-model/gen/versioning/operations.d.ts +0 -10
- package/dist/src/document-model/gen/versioning/operations.d.ts.map +0 -1
- package/dist/src/document-model/gen/versioning/operations.js +0 -2
- package/dist/src/document-model/gen/versioning/operations.js.map +0 -1
- package/dist/test/document/object.test.d.ts +0 -2
- package/dist/test/document/object.test.d.ts.map +0 -1
- package/dist/test/document/object.test.js +0 -13
- package/dist/test/document/object.test.js.map +0 -1
- package/dist/test/document-model/object.test.d.ts +0 -2
- package/dist/test/document-model/object.test.d.ts.map +0 -1
- package/dist/test/document-model/object.test.js +0 -243
- package/dist/test/document-model/object.test.js.map +0 -1
- /package/dist/src/{document-model/gen/schema → core}/types.js +0 -0
- /package/dist/{src/document-model/gen → test}/types.js +0 -0
|
@@ -1,42 +1,14 @@
|
|
|
1
1
|
import { castDraft, create, unsafe } from "mutative";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { DocumentActionSchema } from "./
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
* @param scope The scope of the operation.
|
|
13
|
-
* @returns The next revision number.
|
|
14
|
-
*/
|
|
15
|
-
function getNextRevision(document, scope) {
|
|
16
|
-
const latestOperationIndex = document.operations[scope].at(-1)?.index ?? -1;
|
|
17
|
-
return (latestOperationIndex ?? -1) + 1;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Updates the document header with the latest revision number and
|
|
21
|
-
* date of last modification.
|
|
22
|
-
*
|
|
23
|
-
* @param state The current state of the document.
|
|
24
|
-
* @param operation The action being applied to the document.
|
|
25
|
-
* @returns The updated document state.
|
|
26
|
-
*/
|
|
27
|
-
export function updateHeaderRevision(document, scope) {
|
|
28
|
-
const header = {
|
|
29
|
-
...document.header,
|
|
30
|
-
revision: {
|
|
31
|
-
...document.header.revision,
|
|
32
|
-
[scope]: getNextRevision(document, scope),
|
|
33
|
-
},
|
|
34
|
-
lastModifiedAtUtcIso: getDocumentLastModified(document),
|
|
35
|
-
};
|
|
36
|
-
return {
|
|
37
|
-
...document,
|
|
38
|
-
header,
|
|
39
|
-
};
|
|
2
|
+
import { actionFromAction, loadState, operationFromAction, operationFromOperation, } from "./actions.js";
|
|
3
|
+
import { diffOperations, garbageCollect, garbageCollectDocumentOperations, hashDocumentStateForScope, isDocumentAction, isUndo, isUndoRedo, parseResultingState, replayDocument, skipHeaderOperations, sortOperations, updateHeaderRevision, } from "./documents.js";
|
|
4
|
+
import { loadStateOperation, redoOperation, setNameOperation, undoOperation, } from "./operations.js";
|
|
5
|
+
import { DocumentActionSchema } from "./schemas.js";
|
|
6
|
+
// This rebuilds the document according to the provided actions.
|
|
7
|
+
export function replayOperations(initialState, clearedOperations, stateReducer, dispatch, header, documentReducer = baseReducer, skipHeaderOperations = {}, options) {
|
|
8
|
+
// wraps the provided custom reducer with the
|
|
9
|
+
// base document reducer
|
|
10
|
+
const wrappedReducer = createReducer(stateReducer, documentReducer);
|
|
11
|
+
return replayDocument(initialState, clearedOperations, wrappedReducer, dispatch, header, skipHeaderOperations, options);
|
|
40
12
|
}
|
|
41
13
|
/**
|
|
42
14
|
* Updates the operations history of the document based on the provided action.
|
|
@@ -51,11 +23,14 @@ export function updateHeaderRevision(document, scope) {
|
|
|
51
23
|
function updateOperationsForAction(document, action, reuseLastOperationIndex = false, skip = 0) {
|
|
52
24
|
// UNDO, REDO and PRUNE are meta operations
|
|
53
25
|
// that alter the operations history themselves
|
|
54
|
-
if ([UNDO, REDO, PRUNE].includes(action.type)) {
|
|
26
|
+
if (["UNDO", "REDO", "PRUNE"].includes(action.type)) {
|
|
55
27
|
return document;
|
|
56
28
|
}
|
|
57
29
|
const scope = action.scope;
|
|
58
|
-
|
|
30
|
+
let operations = [];
|
|
31
|
+
if (document.operations[scope]) {
|
|
32
|
+
operations = document.operations[scope].slice();
|
|
33
|
+
}
|
|
59
34
|
const latestOperation = operations.sort((a, b) => a.index - b.index).at(-1);
|
|
60
35
|
const lastOperationIndex = latestOperation?.index ?? -1;
|
|
61
36
|
const index = reuseLastOperationIndex
|
|
@@ -71,13 +46,11 @@ function updateOperationsForAction(document, action, reuseLastOperationIndex = f
|
|
|
71
46
|
};
|
|
72
47
|
}
|
|
73
48
|
function updateOperationsForOperation(document, operation, reuseLastOperationIndex = false, skip = 0) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
const scope = operation.scope;
|
|
80
|
-
const operations = document.operations[scope].slice();
|
|
49
|
+
const scope = operation.action.scope;
|
|
50
|
+
const scopeOperations = document.operations[scope];
|
|
51
|
+
const operations = scopeOperations
|
|
52
|
+
? scopeOperations.slice()
|
|
53
|
+
: [];
|
|
81
54
|
const latestOperation = operations.sort((a, b) => a.index - b.index).at(-1);
|
|
82
55
|
const lastOperationIndex = latestOperation?.index ?? -1;
|
|
83
56
|
const nextIndex = reuseLastOperationIndex
|
|
@@ -104,13 +77,11 @@ function updateOperationsForOperation(document, operation, reuseLastOperationInd
|
|
|
104
77
|
* @param reuseLastOperationIndex Whether to reuse the last operation index (used when a an UNDO operation is performed after an existing one).
|
|
105
78
|
* @returns The updated document state.
|
|
106
79
|
*/
|
|
107
|
-
export function updateDocument(document, action,
|
|
108
|
-
// duck type -- this determines if it's an operation or an action
|
|
109
|
-
// TEMPORARY
|
|
80
|
+
export function updateDocument(document, action, reuseLastOperationIndex = false, skip = 0, operation) {
|
|
110
81
|
let newDocument;
|
|
111
|
-
if (
|
|
82
|
+
if (operation) {
|
|
112
83
|
// operation
|
|
113
|
-
newDocument = updateOperationsForOperation(document,
|
|
84
|
+
newDocument = updateOperationsForOperation(document, operation, reuseLastOperationIndex, skip);
|
|
114
85
|
}
|
|
115
86
|
else {
|
|
116
87
|
// action
|
|
@@ -131,12 +102,12 @@ function _baseReducer(document, action, wrappedReducer) {
|
|
|
131
102
|
// throws if action is not valid base action
|
|
132
103
|
const parsedAction = DocumentActionSchema().parse(action);
|
|
133
104
|
switch (parsedAction.type) {
|
|
134
|
-
case SET_NAME:
|
|
105
|
+
case "SET_NAME":
|
|
135
106
|
return setNameOperation(document, parsedAction.input);
|
|
136
|
-
case PRUNE:
|
|
107
|
+
case "PRUNE":
|
|
137
108
|
return pruneOperation(document, parsedAction.input, wrappedReducer);
|
|
138
|
-
case LOAD_STATE:
|
|
139
|
-
return loadStateOperation(document, parsedAction.input
|
|
109
|
+
case "LOAD_STATE":
|
|
110
|
+
return loadStateOperation(document, parsedAction.input);
|
|
140
111
|
default:
|
|
141
112
|
return document;
|
|
142
113
|
}
|
|
@@ -151,9 +122,9 @@ function _baseReducer(document, action, wrappedReducer) {
|
|
|
151
122
|
*/
|
|
152
123
|
export function processUndoRedo(document, action, skip) {
|
|
153
124
|
switch (action.type) {
|
|
154
|
-
case UNDO:
|
|
125
|
+
case "UNDO":
|
|
155
126
|
return undoOperation(document, action, skip);
|
|
156
|
-
case REDO:
|
|
127
|
+
case "REDO":
|
|
157
128
|
return redoOperation(document, action, skip);
|
|
158
129
|
default:
|
|
159
130
|
return { document, action, skip, reuseLastOperationIndex: false };
|
|
@@ -161,15 +132,20 @@ export function processUndoRedo(document, action, skip) {
|
|
|
161
132
|
}
|
|
162
133
|
function processSkipOperation(document, action, customReducer, skipValue, reuseOperationResultingState = false, resultingStateParser = parseResultingState) {
|
|
163
134
|
const scope = action.scope;
|
|
164
|
-
const
|
|
135
|
+
const scopeOperations = document.operations[scope];
|
|
136
|
+
if (!scopeOperations) {
|
|
137
|
+
return document;
|
|
138
|
+
}
|
|
139
|
+
const latestOperation = scopeOperations.at(-1);
|
|
165
140
|
if (!latestOperation)
|
|
166
141
|
return document;
|
|
167
142
|
const documentOperations = garbageCollectDocumentOperations({
|
|
168
143
|
...document.operations,
|
|
169
|
-
[scope]: skipHeaderOperations(
|
|
144
|
+
[scope]: skipHeaderOperations(scopeOperations, latestOperation),
|
|
170
145
|
});
|
|
171
146
|
let scopeState = undefined;
|
|
172
|
-
const
|
|
147
|
+
const documentScopeOps = documentOperations[scope];
|
|
148
|
+
const lastRemainingOperation = documentScopeOps?.at(-1);
|
|
173
149
|
// if the last operation has the resulting state and
|
|
174
150
|
// reuseOperationResultingState is true then reuses it
|
|
175
151
|
// instead of replaying the operations from the beginning
|
|
@@ -178,11 +154,9 @@ function processSkipOperation(document, action, customReducer, skipValue, reuseO
|
|
|
178
154
|
}
|
|
179
155
|
else {
|
|
180
156
|
const { state } = replayOperations(document.initialState, documentOperations, customReducer, undefined, undefined, undefined, undefined, {
|
|
181
|
-
reuseHash: true,
|
|
182
157
|
reuseOperationResultingState,
|
|
183
158
|
operationResultingStateParser: resultingStateParser,
|
|
184
159
|
});
|
|
185
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
186
160
|
scopeState = state[scope];
|
|
187
161
|
}
|
|
188
162
|
return {
|
|
@@ -197,20 +171,27 @@ function processSkipOperation(document, action, customReducer, skipValue, reuseO
|
|
|
197
171
|
};
|
|
198
172
|
}
|
|
199
173
|
function processUndoOperation(document, scope, customReducer, reuseOperationResultingState = false, resultingStateParser = parseResultingState) {
|
|
200
|
-
const
|
|
174
|
+
const scopeOperations = document.operations[scope];
|
|
175
|
+
if (!scopeOperations) {
|
|
176
|
+
return document;
|
|
177
|
+
}
|
|
178
|
+
const operations = [...scopeOperations];
|
|
201
179
|
const sortedOperations = sortOperations(operations);
|
|
202
180
|
sortedOperations.pop();
|
|
203
181
|
const documentOperations = garbageCollectDocumentOperations({
|
|
204
182
|
...document.operations,
|
|
205
183
|
});
|
|
206
|
-
const
|
|
184
|
+
const documentScopeOps = documentOperations[scope];
|
|
185
|
+
if (!documentScopeOps) {
|
|
186
|
+
return document;
|
|
187
|
+
}
|
|
188
|
+
const clearedOperations = [...documentScopeOps];
|
|
207
189
|
const diff = diffOperations(garbageCollect(sortedOperations), clearedOperations);
|
|
208
190
|
const doc = replayOperations(document.initialState, documentOperations, customReducer, undefined, undefined, undefined, undefined, {
|
|
209
|
-
reuseHash: true,
|
|
210
191
|
reuseOperationResultingState,
|
|
211
192
|
operationResultingStateParser: resultingStateParser,
|
|
212
193
|
});
|
|
213
|
-
const clipboard = sortOperations([...document.clipboard, ...diff].filter((op) => op.type !== "NOOP")).reverse();
|
|
194
|
+
const clipboard = sortOperations([...document.clipboard, ...diff].filter((op) => op.action.type !== "NOOP")).reverse();
|
|
214
195
|
return { ...doc, clipboard };
|
|
215
196
|
}
|
|
216
197
|
/**
|
|
@@ -226,19 +207,14 @@ function processUndoOperation(document, scope, customReducer, reuseOperationResu
|
|
|
226
207
|
* @returns The new state of the document.
|
|
227
208
|
*/
|
|
228
209
|
export function baseReducer(document, action, customReducer, dispatch, options = {}) {
|
|
229
|
-
const { skip, ignoreSkipOperations = false,
|
|
230
|
-
let _action =
|
|
231
|
-
let skipValue = skip
|
|
210
|
+
const { skip, ignoreSkipOperations = false, reuseOperationResultingState = false, operationResultingStateParser, pruneOnSkip = true, } = options;
|
|
211
|
+
let _action = actionFromAction(action);
|
|
212
|
+
let skipValue = skip ?? options.replayOptions?.operation.skip ?? 0;
|
|
232
213
|
let newDocument = {
|
|
233
214
|
...document,
|
|
234
215
|
};
|
|
235
216
|
let reuseLastOperationIndex = false;
|
|
236
|
-
const shouldProcessSkipOperation = !ignoreSkipOperations &&
|
|
237
|
-
(skipValue > 0 ||
|
|
238
|
-
("index" in _action &&
|
|
239
|
-
"skip" in _action &&
|
|
240
|
-
typeof _action.skip === "number" &&
|
|
241
|
-
_action.skip > 0));
|
|
217
|
+
const shouldProcessSkipOperation = !ignoreSkipOperations && skipValue > 0;
|
|
242
218
|
if (isUndoRedo(_action)) {
|
|
243
219
|
const { skip: calculatedSkip, action: transformedAction, document: processedDocument, reuseLastOperationIndex: reuseIndex, } = processUndoRedo(document, _action, skipValue);
|
|
244
220
|
_action = transformedAction;
|
|
@@ -259,14 +235,24 @@ export function baseReducer(document, action, customReducer, dispatch, options =
|
|
|
259
235
|
}
|
|
260
236
|
// updates the document revision number, last modified date
|
|
261
237
|
// and operation history
|
|
262
|
-
newDocument = updateDocument(newDocument, _action, skipValue,
|
|
238
|
+
newDocument = updateDocument(newDocument, _action, reuseLastOperationIndex, skipValue, options.replayOptions?.operation);
|
|
263
239
|
const isUndoAction = isUndo(action);
|
|
264
240
|
if (isUndoAction) {
|
|
265
241
|
const result = processUndoOperation(newDocument, action.scope, customReducer);
|
|
266
242
|
return result;
|
|
267
243
|
}
|
|
268
244
|
if (shouldProcessSkipOperation) {
|
|
269
|
-
|
|
245
|
+
const processed = processSkipOperation(newDocument, _action, customReducer, skipValue, reuseOperationResultingState, operationResultingStateParser);
|
|
246
|
+
// Preserve operations when pruneOnSkip is false
|
|
247
|
+
if (!pruneOnSkip) {
|
|
248
|
+
newDocument = {
|
|
249
|
+
...processed,
|
|
250
|
+
operations: newDocument.operations,
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
newDocument = processed;
|
|
255
|
+
}
|
|
270
256
|
}
|
|
271
257
|
// wraps the custom reducer with Mutative to avoid
|
|
272
258
|
// mutation bugs and allow writing reducers with
|
|
@@ -296,19 +282,31 @@ export function baseReducer(document, action, customReducer, dispatch, options =
|
|
|
296
282
|
catch (error) {
|
|
297
283
|
// if the reducer throws an error then we should keep the previous state (before replayOperations)
|
|
298
284
|
// and remove skip number from action/operation
|
|
299
|
-
const
|
|
300
|
-
|
|
301
|
-
|
|
285
|
+
const actionScopeOps = newDocument.operations[_action.scope];
|
|
286
|
+
if (!actionScopeOps) {
|
|
287
|
+
throw new Error(`No operations found for scope: ${_action.scope}`);
|
|
288
|
+
}
|
|
289
|
+
const lastOperationIndex = actionScopeOps.length - 1;
|
|
290
|
+
const draftScopeOps = draft.operations[_action.scope];
|
|
291
|
+
if (!draftScopeOps) {
|
|
292
|
+
throw new Error(`No operations found in draft for scope: ${_action.scope}`);
|
|
293
|
+
}
|
|
294
|
+
draftScopeOps[lastOperationIndex].error = error.message;
|
|
295
|
+
draftScopeOps[lastOperationIndex].skip = 0;
|
|
302
296
|
if (shouldProcessSkipOperation) {
|
|
303
297
|
draft.state = castDraft({
|
|
304
298
|
...document.state,
|
|
305
299
|
});
|
|
300
|
+
const documentScopeOps = document.operations[_action.scope];
|
|
301
|
+
if (!documentScopeOps) {
|
|
302
|
+
throw new Error(`No operations found for scope: ${_action.scope}`);
|
|
303
|
+
}
|
|
306
304
|
draft.operations = castDraft({
|
|
307
305
|
...document.operations,
|
|
308
306
|
[_action.scope]: [
|
|
309
|
-
...
|
|
307
|
+
...documentScopeOps,
|
|
310
308
|
{
|
|
311
|
-
...
|
|
309
|
+
...draftScopeOps[lastOperationIndex],
|
|
312
310
|
},
|
|
313
311
|
],
|
|
314
312
|
});
|
|
@@ -317,37 +315,101 @@ export function baseReducer(document, action, customReducer, dispatch, options =
|
|
|
317
315
|
});
|
|
318
316
|
// updates the document history
|
|
319
317
|
// meta operations are not added to the operations history
|
|
320
|
-
if ([UNDO, REDO, PRUNE].includes(_action.type)) {
|
|
318
|
+
if (["UNDO", "REDO", "PRUNE"].includes(_action.type)) {
|
|
321
319
|
return newDocument;
|
|
322
320
|
}
|
|
323
321
|
// if reuseHash is true, checks if the action has
|
|
324
322
|
// an hash and uses it instead of generating it
|
|
325
323
|
const scope = _action.scope || "global";
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
324
|
+
let hash = hashDocumentStateForScope(newDocument, scope);
|
|
325
|
+
if (options.replayOptions?.operation.hash &&
|
|
326
|
+
options.replayOptions.operation.hash !== "") {
|
|
327
|
+
hash = options.replayOptions.operation.hash;
|
|
328
|
+
}
|
|
329
329
|
// updates the last operation with the hash of the resulting state
|
|
330
|
-
const
|
|
330
|
+
const scopeOperations = newDocument.operations[scope];
|
|
331
|
+
const lastOperation = scopeOperations?.at(-1);
|
|
331
332
|
if (lastOperation) {
|
|
332
333
|
lastOperation.hash = hash;
|
|
333
334
|
if (reuseOperationResultingState) {
|
|
334
|
-
lastOperation.resultingState = JSON.stringify(
|
|
335
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
336
|
-
newDocument.state[scope]);
|
|
337
|
-
}
|
|
338
|
-
// if the action has attachments then adds them to the document
|
|
339
|
-
if (!isDocumentAction(_action) && _action.attachments) {
|
|
340
|
-
_action.attachments.forEach((attachment) => {
|
|
341
|
-
const { hash, ...file } = attachment;
|
|
342
|
-
if (!newDocument.attachments) {
|
|
343
|
-
newDocument.attachments = {};
|
|
344
|
-
}
|
|
345
|
-
newDocument.attachments[hash] = {
|
|
346
|
-
...file,
|
|
347
|
-
};
|
|
348
|
-
});
|
|
335
|
+
lastOperation.resultingState = JSON.stringify(newDocument.state[scope]);
|
|
349
336
|
}
|
|
350
337
|
}
|
|
351
338
|
return newDocument;
|
|
352
339
|
}
|
|
340
|
+
/**
|
|
341
|
+
* Helper function to create a document model reducer.
|
|
342
|
+
*
|
|
343
|
+
* @remarks
|
|
344
|
+
* This function creates a new reducer that wraps the provided `reducer` with
|
|
345
|
+
* `documentReducer`, adding support for document actions:
|
|
346
|
+
* - `SET_NAME`
|
|
347
|
+
* - `UNDO`
|
|
348
|
+
* - `REDO`
|
|
349
|
+
* - `PRUNE`
|
|
350
|
+
*
|
|
351
|
+
* It also updates the document-related attributes on every operation.
|
|
352
|
+
*
|
|
353
|
+
* @param reducer - The custom reducer to wrap.
|
|
354
|
+
* @param documentReducer - The document reducer to use.
|
|
355
|
+
*
|
|
356
|
+
* @returns The new reducer.
|
|
357
|
+
*/
|
|
358
|
+
export function createReducer(stateReducer, documentReducer = baseReducer) {
|
|
359
|
+
const reducer = (document, action, dispatch, options) => {
|
|
360
|
+
return documentReducer(document, action, stateReducer, dispatch, options);
|
|
361
|
+
};
|
|
362
|
+
return reducer;
|
|
363
|
+
}
|
|
364
|
+
export function pruneOperation(document, input, wrappedReducer) {
|
|
365
|
+
const operations = document.operations.global;
|
|
366
|
+
if (!operations) {
|
|
367
|
+
throw new Error("No global operations found");
|
|
368
|
+
}
|
|
369
|
+
let { start, end } = input;
|
|
370
|
+
start = start || 0;
|
|
371
|
+
end = end || operations.length;
|
|
372
|
+
const actionsToPrune = operations.slice(start, end);
|
|
373
|
+
const actionsToKeepStart = operations.slice(0, start);
|
|
374
|
+
const actionsToKeepEnd = operations.slice(end);
|
|
375
|
+
// runs all operations from the initial state to
|
|
376
|
+
// the end of prune to get name and data
|
|
377
|
+
const newDocument = replayOperations(document.initialState, {
|
|
378
|
+
...document.operations,
|
|
379
|
+
global: actionsToKeepStart.concat(actionsToPrune),
|
|
380
|
+
}, wrappedReducer);
|
|
381
|
+
const newState = newDocument.state;
|
|
382
|
+
const name = newDocument.header.name;
|
|
383
|
+
// the new operation has the index of the first pruned operation
|
|
384
|
+
const loadStateIndex = actionsToKeepStart.length;
|
|
385
|
+
// if and operation is pruned then reuses the timestamp of the last operation
|
|
386
|
+
// if not then assigns the timestamp of the following unpruned operation
|
|
387
|
+
const loadStateTimestamp = actionsToKeepStart.length
|
|
388
|
+
? actionsToKeepStart[actionsToKeepStart.length - 1].timestampUtcMs
|
|
389
|
+
: actionsToKeepEnd.length
|
|
390
|
+
? actionsToKeepEnd[0].timestampUtcMs
|
|
391
|
+
: new Date().toISOString();
|
|
392
|
+
const action = loadState({ name, ...newState }, actionsToPrune.length);
|
|
393
|
+
// replaces pruned operations with LOAD_STATE
|
|
394
|
+
return replayOperations(document.initialState, {
|
|
395
|
+
...document.operations,
|
|
396
|
+
global: [
|
|
397
|
+
...actionsToKeepStart,
|
|
398
|
+
{
|
|
399
|
+
skip: 0,
|
|
400
|
+
...action,
|
|
401
|
+
action,
|
|
402
|
+
timestampUtcMs: loadStateTimestamp,
|
|
403
|
+
index: loadStateIndex,
|
|
404
|
+
hash: hashDocumentStateForScope({ state: newState }, "global"),
|
|
405
|
+
},
|
|
406
|
+
...actionsToKeepEnd
|
|
407
|
+
// updates the index for all the following operations
|
|
408
|
+
.map((action, index) => ({
|
|
409
|
+
...action,
|
|
410
|
+
index: loadStateIndex + index + 1,
|
|
411
|
+
})),
|
|
412
|
+
],
|
|
413
|
+
}, wrappedReducer);
|
|
414
|
+
}
|
|
353
415
|
//# sourceMappingURL=reducer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../../src/core/reducer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import
|
|
2
|
+
import type { DocumentFile, LoadStateActionInput, LoadStateActionStateInput, PruneActionInput, SchemaLoadStateAction, SchemaPruneAction, SchemaRedoAction, SchemaSetNameAction, SchemaUndoAction } from "./types.js";
|
|
3
3
|
type Properties<T> = Required<{
|
|
4
4
|
[K in keyof T]: z.ZodType<T[K], any, T[K]>;
|
|
5
5
|
}>;
|
|
@@ -11,88 +11,115 @@ export declare const PruneSchema: z.ZodEnum<["PRUNE"]>;
|
|
|
11
11
|
export declare const RedoSchema: z.ZodEnum<["REDO"]>;
|
|
12
12
|
export declare const Set_NameSchema: z.ZodEnum<["SET_NAME"]>;
|
|
13
13
|
export declare const UndoSchema: z.ZodEnum<["UNDO"]>;
|
|
14
|
-
export declare function ActionSchema(): z.ZodObject<Properties<Action>>;
|
|
15
14
|
export declare function OperationScopeSchema(): z.ZodString;
|
|
16
15
|
export declare function DocumentActionSchema(): z.ZodUnion<[z.ZodObject<Required<{
|
|
16
|
+
id: z.ZodType<string, any, string>;
|
|
17
|
+
timestampUtcMs: z.ZodType<string, any, string>;
|
|
17
18
|
input: z.ZodType<LoadStateActionInput, any, LoadStateActionInput>;
|
|
18
19
|
type: z.ZodType<"LOAD_STATE", any, "LOAD_STATE">;
|
|
19
20
|
scope: z.ZodType<string, any, string>;
|
|
20
21
|
}>, z.UnknownKeysParam, z.ZodTypeAny, {
|
|
22
|
+
id: import("./types.js").Scalars["String"]["output"];
|
|
23
|
+
timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
|
|
21
24
|
input: LoadStateActionInput;
|
|
22
25
|
type: import("./types.js").Load_State;
|
|
23
26
|
scope: string;
|
|
24
27
|
}, {
|
|
28
|
+
id: import("./types.js").Scalars["String"]["output"];
|
|
29
|
+
timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
|
|
25
30
|
input: LoadStateActionInput;
|
|
26
31
|
type: import("./types.js").Load_State;
|
|
27
32
|
scope: string;
|
|
28
33
|
}>, z.ZodObject<Required<{
|
|
34
|
+
id: z.ZodType<string, any, string>;
|
|
35
|
+
timestampUtcMs: z.ZodType<string, any, string>;
|
|
29
36
|
input: z.ZodType<PruneActionInput, any, PruneActionInput>;
|
|
30
37
|
type: z.ZodType<"PRUNE", any, "PRUNE">;
|
|
31
38
|
scope: z.ZodType<string, any, string>;
|
|
32
39
|
}>, z.UnknownKeysParam, z.ZodTypeAny, {
|
|
40
|
+
id: import("./types.js").Scalars["String"]["output"];
|
|
41
|
+
timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
|
|
33
42
|
input: PruneActionInput;
|
|
34
43
|
type: import("./types.js").Prune;
|
|
35
44
|
scope: string;
|
|
36
45
|
}, {
|
|
46
|
+
id: import("./types.js").Scalars["String"]["output"];
|
|
47
|
+
timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
|
|
37
48
|
input: PruneActionInput;
|
|
38
49
|
type: import("./types.js").Prune;
|
|
39
50
|
scope: string;
|
|
40
51
|
}>, z.ZodObject<Required<{
|
|
52
|
+
id: z.ZodType<string, any, string>;
|
|
53
|
+
timestampUtcMs: z.ZodType<string, any, string>;
|
|
41
54
|
input: z.ZodType<number, any, number>;
|
|
42
55
|
type: z.ZodType<"REDO", any, "REDO">;
|
|
43
56
|
scope: z.ZodType<string, any, string>;
|
|
44
57
|
}>, z.UnknownKeysParam, z.ZodTypeAny, {
|
|
58
|
+
id: import("./types.js").Scalars["String"]["output"];
|
|
59
|
+
timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
|
|
45
60
|
input: import("./types.js").Scalars["Int"]["input"];
|
|
46
61
|
type: import("./types.js").Redo;
|
|
47
62
|
scope: string;
|
|
48
63
|
}, {
|
|
64
|
+
id: import("./types.js").Scalars["String"]["output"];
|
|
65
|
+
timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
|
|
49
66
|
input: import("./types.js").Scalars["Int"]["input"];
|
|
50
67
|
type: import("./types.js").Redo;
|
|
51
68
|
scope: string;
|
|
52
69
|
}>, z.ZodObject<Required<{
|
|
70
|
+
id: z.ZodType<string, any, string>;
|
|
71
|
+
timestampUtcMs: z.ZodType<string, any, string>;
|
|
53
72
|
input: z.ZodType<string, any, string>;
|
|
54
73
|
type: z.ZodType<"SET_NAME", any, "SET_NAME">;
|
|
55
74
|
scope: z.ZodType<"global", any, "global">;
|
|
56
75
|
}>, z.UnknownKeysParam, z.ZodTypeAny, {
|
|
76
|
+
id: import("./types.js").Scalars["String"]["output"];
|
|
77
|
+
timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
|
|
57
78
|
input: import("./types.js").Scalars["String"]["input"];
|
|
58
79
|
type: import("./types.js").Set_Name;
|
|
59
80
|
scope: "global";
|
|
60
81
|
}, {
|
|
82
|
+
id: import("./types.js").Scalars["String"]["output"];
|
|
83
|
+
timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
|
|
61
84
|
input: import("./types.js").Scalars["String"]["input"];
|
|
62
85
|
type: import("./types.js").Set_Name;
|
|
63
86
|
scope: "global";
|
|
64
87
|
}>, z.ZodObject<Required<{
|
|
88
|
+
id: z.ZodType<string, any, string>;
|
|
89
|
+
timestampUtcMs: z.ZodType<string, any, string>;
|
|
65
90
|
input: z.ZodType<number, any, number>;
|
|
66
91
|
type: z.ZodType<"UNDO", any, "UNDO">;
|
|
67
92
|
scope: z.ZodType<string, any, string>;
|
|
68
93
|
}>, z.UnknownKeysParam, z.ZodTypeAny, {
|
|
94
|
+
id: import("./types.js").Scalars["String"]["output"];
|
|
95
|
+
timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
|
|
69
96
|
input: import("./types.js").Scalars["Int"]["input"];
|
|
70
97
|
type: import("./types.js").Undo;
|
|
71
98
|
scope: string;
|
|
72
99
|
}, {
|
|
100
|
+
id: import("./types.js").Scalars["String"]["output"];
|
|
101
|
+
timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
|
|
73
102
|
input: import("./types.js").Scalars["Int"]["input"];
|
|
74
103
|
type: import("./types.js").Undo;
|
|
75
104
|
scope: string;
|
|
76
105
|
}>]>;
|
|
77
106
|
export declare function DocumentFileSchema(): z.ZodObject<Properties<DocumentFile>>;
|
|
78
|
-
export declare function LoadStateActionSchema(): z.ZodObject<Properties<
|
|
107
|
+
export declare function LoadStateActionSchema(): z.ZodObject<Properties<SchemaLoadStateAction>>;
|
|
79
108
|
export declare function LoadStateActionInputSchema(): z.ZodObject<Properties<LoadStateActionInput>>;
|
|
80
109
|
export declare function LoadStateActionStateInputSchema(): z.ZodObject<Properties<LoadStateActionStateInput>>;
|
|
81
|
-
export declare function
|
|
82
|
-
export declare function PruneActionSchema(): z.ZodObject<Properties<PruneAction>>;
|
|
110
|
+
export declare function PruneActionSchema(): z.ZodObject<Properties<SchemaPruneAction>>;
|
|
83
111
|
export declare function PruneActionInputSchema(): z.ZodObject<Properties<PruneActionInput>>;
|
|
84
112
|
export declare const RedoActionInputSchema: (params?: z.RawCreateParams & {
|
|
85
113
|
coerce?: boolean;
|
|
86
114
|
}) => z.ZodNumber;
|
|
87
|
-
export declare function RedoActionSchema(): z.ZodObject<Properties<
|
|
115
|
+
export declare function RedoActionSchema(): z.ZodObject<Properties<SchemaRedoAction>>;
|
|
88
116
|
export declare const SetNameActionInputSchema: (params?: z.RawCreateParams & {
|
|
89
117
|
coerce?: true;
|
|
90
118
|
}) => z.ZodString;
|
|
91
|
-
export declare function SetNameActionSchema(): z.ZodObject<Properties<
|
|
92
|
-
export declare function SetNameOperationSchema(): z.ZodObject<Properties<SetNameOperation>>;
|
|
119
|
+
export declare function SetNameActionSchema(): z.ZodObject<Properties<SchemaSetNameAction>>;
|
|
93
120
|
export declare const UndoActionInputSchema: (params?: z.RawCreateParams & {
|
|
94
121
|
coerce?: boolean;
|
|
95
122
|
}) => z.ZodNumber;
|
|
96
|
-
export declare function UndoActionSchema(): z.ZodObject<Properties<
|
|
123
|
+
export declare function UndoActionSchema(): z.ZodObject<Properties<SchemaUndoAction>>;
|
|
97
124
|
export {};
|
|
98
|
-
//# sourceMappingURL=
|
|
125
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/core/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,yBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,KAAK,UAAU,CAAC,CAAC,IAAI,QAAQ,CAAC;KAC3B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3C,CAAC,CAAC;AAEH,KAAK,iBAAiB,GAAG,EAAE,CAAC;AAE5B,eAAO,MAAM,mBAAmB,GAAI,GAAG,GAAG,KAAG,CAAC,IAAI,iBACnB,CAAC;AAEhC,eAAO,MAAM,uBAAuB,gDAEI,CAAC;AAEzC,eAAO,MAAM,gBAAgB,2BAAyB,CAAC;AAEvD,eAAO,MAAM,WAAW,sBAAoB,CAAC;AAE7C,eAAO,MAAM,UAAU,qBAAmB,CAAC;AAE3C,eAAO,MAAM,cAAc,yBAAuB,CAAC;AAEnD,eAAO,MAAM,UAAU,qBAAmB,CAAC;AAE3C,wBAAgB,oBAAoB,IAAI,CAAC,CAAC,SAAS,CAElD;AAED,wBAAgB,oBAAoB;;;;;;;QA+DjC,sCAAkB;oBAEN,wCACA;;;;;QAHZ,sCAAkB;oBAEN,wCACA;;;;;;;;;;;QA+BuB,sCAAkB;oBAC7B,wCAErB;;;;;QAHgC,sCAAkB;oBAC7B,wCAErB;;;;;;;;;;;QAYuD,sCAAkB;oBAEvE,wCACA;WAAoB,mCAC5B;;;;QAJ6D,sCAAkB;oBAEvE,wCACA;WAAoB,mCAC5B;;;;;;;;;;QAKsB,sCAAkB;oBAA6B,wCAAoB;WAAoB,sCAAkB;;;;QAAzG,sCAAkB;oBAA6B,wCAAoB;WAAoB,sCAAkB;;;;;;;;;;QAA0Y,sCAAkB;oBAA6B,wCAAoB;WAAoB,mCAAe;;;;QAAtG,sCAAkB;oBAA6B,wCAAoB;WAAoB,mCAAe;;;KAjH9mB;AAED,wBAAgB,kBAAkB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAQ1E;AAED,wBAAgB,qBAAqB,IAAI,CAAC,CAAC,SAAS,CAClD,UAAU,CAAC,qBAAqB,CAAC,CAClC,CAQA;AAED,wBAAgB,0BAA0B,IAAI,CAAC,CAAC,SAAS,CACvD,UAAU,CAAC,oBAAoB,CAAC,CACjC,CAKA;AAED,wBAAgB,+BAA+B,IAAI,CAAC,CAAC,SAAS,CAC5D,UAAU,CAAC,yBAAyB,CAAC,CACtC,CAKA;AAED,wBAAgB,iBAAiB,IAAI,CAAC,CAAC,SAAS,CAC9C,UAAU,CAAC,iBAAiB,CAAC,CAC9B,CAQA;AAED,wBAAgB,sBAAsB,IAAI,CAAC,CAAC,SAAS,CACnD,UAAU,CAAC,gBAAgB,CAAC,CAC7B,CAKA;AAED,eAAO,MAAM,qBAAqB;UAkD8v0C,CAAC;iBAlDpv0C,CAAC;AAE9C,wBAAgB,gBAAgB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAQ5E;AAED,eAAO,MAAM,wBAAwB;UAsC+p0C,CAAC;iBAtCrp0C,CAAC;AAEjD,wBAAgB,mBAAmB,IAAI,CAAC,CAAC,SAAS,CAChD,UAAU,CAAC,mBAAmB,CAAC,CAChC,CAQA;AAeD,eAAO,MAAM,qBAAqB;UAW8v0C,CAAC;iBAXpv0C,CAAC;AAE9C,wBAAgB,gBAAgB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAQ5E"}
|