document-model 4.1.0-dev.8 → 4.1.0-dev.80
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 -21
- 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 +197 -131
- 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 +490 -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 +39 -61
- 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-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 -325
- 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 -80
- 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,99 +1,66 @@
|
|
|
1
1
|
import { castDraft, create, unsafe } from "mutative";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
* @param operation The action being applied to the document.
|
|
13
|
-
* @returns The next revision number.
|
|
14
|
-
*/
|
|
15
|
-
function getNextRevision(document, operation) {
|
|
16
|
-
let latestOperationIndex;
|
|
17
|
-
if ("index" in operation) {
|
|
18
|
-
latestOperationIndex = operation.index;
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
latestOperationIndex =
|
|
22
|
-
document.operations[operation.scope].at(-1)?.index ?? -1;
|
|
23
|
-
}
|
|
24
|
-
return (latestOperationIndex ?? -1) + 1;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Updates the document header with the latest revision number and
|
|
28
|
-
* date of last modification.
|
|
29
|
-
*
|
|
30
|
-
* @param state The current state of the document.
|
|
31
|
-
* @param operation The action being applied to the document.
|
|
32
|
-
* @returns The updated document state.
|
|
33
|
-
*/
|
|
34
|
-
export function updateHeader(document, action) {
|
|
35
|
-
const header = {
|
|
36
|
-
...document.header,
|
|
37
|
-
revision: {
|
|
38
|
-
...document.header.revision,
|
|
39
|
-
[action.scope]: getNextRevision(document, action),
|
|
40
|
-
},
|
|
41
|
-
lastModifiedAtUtcIso: getDocumentLastModified(document),
|
|
42
|
-
};
|
|
43
|
-
return {
|
|
44
|
-
...document,
|
|
45
|
-
header,
|
|
46
|
-
};
|
|
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);
|
|
47
12
|
}
|
|
48
13
|
/**
|
|
49
14
|
* Updates the operations history of the document based on the provided action.
|
|
50
15
|
*
|
|
51
16
|
* @param state The current state of the document.
|
|
52
|
-
* @param
|
|
17
|
+
* @param action The action being applied to the document.
|
|
18
|
+
* @param index The index of the operation to update.
|
|
53
19
|
* @param skip The number of operations to skip before applying the action.
|
|
54
20
|
* @param reuseLastOperationIndex Whether to reuse the last operation index (used when a an UNDO operation is performed after an existing one).
|
|
55
21
|
* @returns The updated document state.
|
|
56
22
|
*/
|
|
57
|
-
function
|
|
23
|
+
function updateOperationsForAction(document, action, reuseLastOperationIndex = false, skip = 0) {
|
|
58
24
|
// UNDO, REDO and PRUNE are meta operations
|
|
59
25
|
// that alter the operations history themselves
|
|
60
|
-
if ("
|
|
61
|
-
[UNDO, REDO, PRUNE].includes(actionOrOperation.type)) {
|
|
26
|
+
if (["UNDO", "REDO", "PRUNE"].includes(action.type)) {
|
|
62
27
|
return document;
|
|
63
28
|
}
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
|
|
29
|
+
const scope = action.scope;
|
|
30
|
+
let operations = [];
|
|
31
|
+
if (document.operations[scope]) {
|
|
32
|
+
operations = document.operations[scope].slice();
|
|
33
|
+
}
|
|
67
34
|
const latestOperation = operations.sort((a, b) => a.index - b.index).at(-1);
|
|
68
35
|
const lastOperationIndex = latestOperation?.index ?? -1;
|
|
69
|
-
|
|
36
|
+
const index = reuseLastOperationIndex
|
|
70
37
|
? lastOperationIndex
|
|
71
38
|
: lastOperationIndex + 1;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
39
|
+
const newOperation = operationFromAction(action, index, skip);
|
|
40
|
+
operations.push(newOperation);
|
|
41
|
+
// adds the action to the operations history with
|
|
42
|
+
// the latest index and current timestamp
|
|
43
|
+
return {
|
|
44
|
+
...document,
|
|
45
|
+
operations: { ...document.operations, [scope]: operations },
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function updateOperationsForOperation(document, operation, reuseLastOperationIndex = false, skip = 0) {
|
|
49
|
+
const scope = operation.action.scope;
|
|
50
|
+
const scopeOperations = document.operations[scope];
|
|
51
|
+
const operations = scopeOperations
|
|
52
|
+
? scopeOperations.slice()
|
|
53
|
+
: [];
|
|
54
|
+
const latestOperation = operations.sort((a, b) => a.index - b.index).at(-1);
|
|
55
|
+
const lastOperationIndex = latestOperation?.index ?? -1;
|
|
56
|
+
const nextIndex = reuseLastOperationIndex
|
|
57
|
+
? lastOperationIndex
|
|
58
|
+
: lastOperationIndex + 1;
|
|
59
|
+
if (operation.index - skip > nextIndex) {
|
|
60
|
+
throw new Error(`Missing operations: expected ${nextIndex} with skip 0 or equivalent, got index ${operation.index} with skip ${skip}`);
|
|
86
61
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
id: operationId,
|
|
90
|
-
index: nextIndex,
|
|
91
|
-
timestamp,
|
|
92
|
-
hash: "",
|
|
93
|
-
scope,
|
|
94
|
-
skip,
|
|
95
|
-
error: undefined,
|
|
96
|
-
});
|
|
62
|
+
const newOperation = operationFromOperation(operation, skip);
|
|
63
|
+
operations.push(newOperation);
|
|
97
64
|
// adds the action to the operations history with
|
|
98
65
|
// the latest index and current timestamp
|
|
99
66
|
return {
|
|
@@ -110,9 +77,17 @@ function updateOperations(document, actionOrOperation, skip = 0, reuseLastOperat
|
|
|
110
77
|
* @param reuseLastOperationIndex Whether to reuse the last operation index (used when a an UNDO operation is performed after an existing one).
|
|
111
78
|
* @returns The updated document state.
|
|
112
79
|
*/
|
|
113
|
-
export function updateDocument(document, action,
|
|
114
|
-
let newDocument
|
|
115
|
-
|
|
80
|
+
export function updateDocument(document, action, reuseLastOperationIndex = false, skip = 0, operation) {
|
|
81
|
+
let newDocument;
|
|
82
|
+
if (operation) {
|
|
83
|
+
// operation
|
|
84
|
+
newDocument = updateOperationsForOperation(document, operation, reuseLastOperationIndex, skip);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
// action
|
|
88
|
+
newDocument = updateOperationsForAction(document, action, reuseLastOperationIndex, skip);
|
|
89
|
+
}
|
|
90
|
+
newDocument = updateHeaderRevision(newDocument, action.scope);
|
|
116
91
|
return newDocument;
|
|
117
92
|
}
|
|
118
93
|
/**
|
|
@@ -127,12 +102,12 @@ function _baseReducer(document, action, wrappedReducer) {
|
|
|
127
102
|
// throws if action is not valid base action
|
|
128
103
|
const parsedAction = DocumentActionSchema().parse(action);
|
|
129
104
|
switch (parsedAction.type) {
|
|
130
|
-
case SET_NAME:
|
|
105
|
+
case "SET_NAME":
|
|
131
106
|
return setNameOperation(document, parsedAction.input);
|
|
132
|
-
case PRUNE:
|
|
107
|
+
case "PRUNE":
|
|
133
108
|
return pruneOperation(document, parsedAction.input, wrappedReducer);
|
|
134
|
-
case LOAD_STATE:
|
|
135
|
-
return loadStateOperation(document, parsedAction.input
|
|
109
|
+
case "LOAD_STATE":
|
|
110
|
+
return loadStateOperation(document, parsedAction.input);
|
|
136
111
|
default:
|
|
137
112
|
return document;
|
|
138
113
|
}
|
|
@@ -147,9 +122,9 @@ function _baseReducer(document, action, wrappedReducer) {
|
|
|
147
122
|
*/
|
|
148
123
|
export function processUndoRedo(document, action, skip) {
|
|
149
124
|
switch (action.type) {
|
|
150
|
-
case UNDO:
|
|
125
|
+
case "UNDO":
|
|
151
126
|
return undoOperation(document, action, skip);
|
|
152
|
-
case REDO:
|
|
127
|
+
case "REDO":
|
|
153
128
|
return redoOperation(document, action, skip);
|
|
154
129
|
default:
|
|
155
130
|
return { document, action, skip, reuseLastOperationIndex: false };
|
|
@@ -157,15 +132,20 @@ export function processUndoRedo(document, action, skip) {
|
|
|
157
132
|
}
|
|
158
133
|
function processSkipOperation(document, action, customReducer, skipValue, reuseOperationResultingState = false, resultingStateParser = parseResultingState) {
|
|
159
134
|
const scope = action.scope;
|
|
160
|
-
const
|
|
135
|
+
const scopeOperations = document.operations[scope];
|
|
136
|
+
if (!scopeOperations) {
|
|
137
|
+
return document;
|
|
138
|
+
}
|
|
139
|
+
const latestOperation = scopeOperations.at(-1);
|
|
161
140
|
if (!latestOperation)
|
|
162
141
|
return document;
|
|
163
142
|
const documentOperations = garbageCollectDocumentOperations({
|
|
164
143
|
...document.operations,
|
|
165
|
-
[scope]: skipHeaderOperations(
|
|
144
|
+
[scope]: skipHeaderOperations(scopeOperations, latestOperation),
|
|
166
145
|
});
|
|
167
146
|
let scopeState = undefined;
|
|
168
|
-
const
|
|
147
|
+
const documentScopeOps = documentOperations[scope];
|
|
148
|
+
const lastRemainingOperation = documentScopeOps?.at(-1);
|
|
169
149
|
// if the last operation has the resulting state and
|
|
170
150
|
// reuseOperationResultingState is true then reuses it
|
|
171
151
|
// instead of replaying the operations from the beginning
|
|
@@ -174,11 +154,9 @@ function processSkipOperation(document, action, customReducer, skipValue, reuseO
|
|
|
174
154
|
}
|
|
175
155
|
else {
|
|
176
156
|
const { state } = replayOperations(document.initialState, documentOperations, customReducer, undefined, undefined, undefined, undefined, {
|
|
177
|
-
reuseHash: true,
|
|
178
157
|
reuseOperationResultingState,
|
|
179
158
|
operationResultingStateParser: resultingStateParser,
|
|
180
159
|
});
|
|
181
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
182
160
|
scopeState = state[scope];
|
|
183
161
|
}
|
|
184
162
|
return {
|
|
@@ -193,20 +171,27 @@ function processSkipOperation(document, action, customReducer, skipValue, reuseO
|
|
|
193
171
|
};
|
|
194
172
|
}
|
|
195
173
|
function processUndoOperation(document, scope, customReducer, reuseOperationResultingState = false, resultingStateParser = parseResultingState) {
|
|
196
|
-
const
|
|
174
|
+
const scopeOperations = document.operations[scope];
|
|
175
|
+
if (!scopeOperations) {
|
|
176
|
+
return document;
|
|
177
|
+
}
|
|
178
|
+
const operations = [...scopeOperations];
|
|
197
179
|
const sortedOperations = sortOperations(operations);
|
|
198
180
|
sortedOperations.pop();
|
|
199
181
|
const documentOperations = garbageCollectDocumentOperations({
|
|
200
182
|
...document.operations,
|
|
201
183
|
});
|
|
202
|
-
const
|
|
184
|
+
const documentScopeOps = documentOperations[scope];
|
|
185
|
+
if (!documentScopeOps) {
|
|
186
|
+
return document;
|
|
187
|
+
}
|
|
188
|
+
const clearedOperations = [...documentScopeOps];
|
|
203
189
|
const diff = diffOperations(garbageCollect(sortedOperations), clearedOperations);
|
|
204
190
|
const doc = replayOperations(document.initialState, documentOperations, customReducer, undefined, undefined, undefined, undefined, {
|
|
205
|
-
reuseHash: true,
|
|
206
191
|
reuseOperationResultingState,
|
|
207
192
|
operationResultingStateParser: resultingStateParser,
|
|
208
193
|
});
|
|
209
|
-
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();
|
|
210
195
|
return { ...doc, clipboard };
|
|
211
196
|
}
|
|
212
197
|
/**
|
|
@@ -222,19 +207,14 @@ function processUndoOperation(document, scope, customReducer, reuseOperationResu
|
|
|
222
207
|
* @returns The new state of the document.
|
|
223
208
|
*/
|
|
224
209
|
export function baseReducer(document, action, customReducer, dispatch, options = {}) {
|
|
225
|
-
const { skip, ignoreSkipOperations = false,
|
|
226
|
-
let _action =
|
|
227
|
-
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;
|
|
228
213
|
let newDocument = {
|
|
229
214
|
...document,
|
|
230
215
|
};
|
|
231
216
|
let reuseLastOperationIndex = false;
|
|
232
|
-
const shouldProcessSkipOperation = !ignoreSkipOperations &&
|
|
233
|
-
(skipValue > 0 ||
|
|
234
|
-
("index" in _action &&
|
|
235
|
-
"skip" in _action &&
|
|
236
|
-
typeof _action.skip === "number" &&
|
|
237
|
-
_action.skip > 0));
|
|
217
|
+
const shouldProcessSkipOperation = !ignoreSkipOperations && skipValue > 0;
|
|
238
218
|
if (isUndoRedo(_action)) {
|
|
239
219
|
const { skip: calculatedSkip, action: transformedAction, document: processedDocument, reuseLastOperationIndex: reuseIndex, } = processUndoRedo(document, _action, skipValue);
|
|
240
220
|
_action = transformedAction;
|
|
@@ -255,14 +235,24 @@ export function baseReducer(document, action, customReducer, dispatch, options =
|
|
|
255
235
|
}
|
|
256
236
|
// updates the document revision number, last modified date
|
|
257
237
|
// and operation history
|
|
258
|
-
newDocument = updateDocument(newDocument, _action, skipValue,
|
|
238
|
+
newDocument = updateDocument(newDocument, _action, reuseLastOperationIndex, skipValue, options.replayOptions?.operation);
|
|
259
239
|
const isUndoAction = isUndo(action);
|
|
260
240
|
if (isUndoAction) {
|
|
261
241
|
const result = processUndoOperation(newDocument, action.scope, customReducer);
|
|
262
242
|
return result;
|
|
263
243
|
}
|
|
264
244
|
if (shouldProcessSkipOperation) {
|
|
265
|
-
|
|
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
|
+
}
|
|
266
256
|
}
|
|
267
257
|
// wraps the custom reducer with Mutative to avoid
|
|
268
258
|
// mutation bugs and allow writing reducers with
|
|
@@ -292,19 +282,31 @@ export function baseReducer(document, action, customReducer, dispatch, options =
|
|
|
292
282
|
catch (error) {
|
|
293
283
|
// if the reducer throws an error then we should keep the previous state (before replayOperations)
|
|
294
284
|
// and remove skip number from action/operation
|
|
295
|
-
const
|
|
296
|
-
|
|
297
|
-
|
|
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;
|
|
298
296
|
if (shouldProcessSkipOperation) {
|
|
299
297
|
draft.state = castDraft({
|
|
300
298
|
...document.state,
|
|
301
299
|
});
|
|
300
|
+
const documentScopeOps = document.operations[_action.scope];
|
|
301
|
+
if (!documentScopeOps) {
|
|
302
|
+
throw new Error(`No operations found for scope: ${_action.scope}`);
|
|
303
|
+
}
|
|
302
304
|
draft.operations = castDraft({
|
|
303
305
|
...document.operations,
|
|
304
306
|
[_action.scope]: [
|
|
305
|
-
...
|
|
307
|
+
...documentScopeOps,
|
|
306
308
|
{
|
|
307
|
-
...
|
|
309
|
+
...draftScopeOps[lastOperationIndex],
|
|
308
310
|
},
|
|
309
311
|
],
|
|
310
312
|
});
|
|
@@ -313,37 +315,101 @@ export function baseReducer(document, action, customReducer, dispatch, options =
|
|
|
313
315
|
});
|
|
314
316
|
// updates the document history
|
|
315
317
|
// meta operations are not added to the operations history
|
|
316
|
-
if ([UNDO, REDO, PRUNE].includes(_action.type)) {
|
|
318
|
+
if (["UNDO", "REDO", "PRUNE"].includes(_action.type)) {
|
|
317
319
|
return newDocument;
|
|
318
320
|
}
|
|
319
321
|
// if reuseHash is true, checks if the action has
|
|
320
322
|
// an hash and uses it instead of generating it
|
|
321
323
|
const scope = _action.scope || "global";
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
324
|
+
let hash = hashDocumentStateForScope(newDocument, scope);
|
|
325
|
+
if (options.replayOptions?.operation.hash &&
|
|
326
|
+
options.replayOptions.operation.hash !== "") {
|
|
327
|
+
hash = options.replayOptions.operation.hash;
|
|
328
|
+
}
|
|
325
329
|
// updates the last operation with the hash of the resulting state
|
|
326
|
-
const
|
|
330
|
+
const scopeOperations = newDocument.operations[scope];
|
|
331
|
+
const lastOperation = scopeOperations?.at(-1);
|
|
327
332
|
if (lastOperation) {
|
|
328
333
|
lastOperation.hash = hash;
|
|
329
334
|
if (reuseOperationResultingState) {
|
|
330
|
-
lastOperation.resultingState = JSON.stringify(
|
|
331
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
332
|
-
newDocument.state[scope]);
|
|
333
|
-
}
|
|
334
|
-
// if the action has attachments then adds them to the document
|
|
335
|
-
if (!isDocumentAction(_action) && _action.attachments) {
|
|
336
|
-
_action.attachments.forEach((attachment) => {
|
|
337
|
-
const { hash, ...file } = attachment;
|
|
338
|
-
if (!newDocument.attachments) {
|
|
339
|
-
newDocument.attachments = {};
|
|
340
|
-
}
|
|
341
|
-
newDocument.attachments[hash] = {
|
|
342
|
-
...file,
|
|
343
|
-
};
|
|
344
|
-
});
|
|
335
|
+
lastOperation.resultingState = JSON.stringify(newDocument.state[scope]);
|
|
345
336
|
}
|
|
346
337
|
}
|
|
347
338
|
return newDocument;
|
|
348
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
|
+
}
|
|
349
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;;;;;;;QA8DW,sCACrC;oBAEN,wCACA;;;;;QAJ2C,sCACrC;oBAEN,wCACA;;;;;;;;;;;QA+BuB,sCAAkB;oBAC7B,wCACd;;;;;QAFyB,sCAAkB;oBAC7B,wCACd;;;;;;;;;;;QAagD,sCAAkB;oBACnD,wCACA;WACA,mCAAe;;;;QAHkB,sCAAkB;oBACnD,wCACA;WACA,mCAAe;;;;;;;;;;QAMrB,sCAAkB;oBAA6B,wCAAoB;WAAoB,sCAAkB;;;;QAAzG,sCAAkB;oBAA6B,wCAAoB;WAAoB,sCAAkB;;;;;;;;;;QAA0Y,sCAAkB;oBAA6B,wCAAoB;WAAoB,mCAAe;;;;QAAtG,sCAAkB;oBAA6B,wCAAoB;WAAoB,mCAAe;;;KAjHnmB;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"}
|