document-model 4.1.0-dev.59 → 4.1.0-dev.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +179 -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} +51 -11
- package/dist/src/core/documents.d.ts.map +1 -0
- package/dist/src/{document/utils/document-helpers.js → core/documents.js} +277 -3
- package/dist/src/core/documents.js.map +1 -0
- package/dist/src/{document/utils → core}/errors.d.ts +1 -0
- package/dist/src/core/errors.d.ts.map +1 -0
- package/dist/src/{document/utils → core}/errors.js +1 -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/{document/utils/file.js → core/files.js} +26 -2
- package/dist/src/core/files.js.map +1 -0
- package/dist/src/{document/utils → core}/header.d.ts +2 -34
- package/dist/src/core/header.d.ts.map +1 -0
- package/dist/src/{document/utils → core}/header.js +1 -1
- 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 → core}/node.d.ts +3 -2
- package/dist/src/core/node.d.ts.map +1 -0
- package/dist/src/{document/utils → core}/node.js +9 -3
- package/dist/src/core/node.js.map +1 -0
- package/dist/src/{document/actions → core}/operations.d.ts +4 -4
- package/dist/src/core/operations.d.ts.map +1 -0
- package/dist/src/{document/actions → core}/operations.js +2 -49
- package/dist/src/core/operations.js.map +1 -0
- package/dist/src/core/ph-types.d.ts +248 -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/{document → core}/reducer.d.ts +4 -1
- package/dist/src/core/reducer.d.ts.map +1 -0
- package/dist/src/{document → core}/reducer.js +65 -20
- package/dist/src/core/reducer.js.map +1 -0
- package/dist/src/{document/schema/zod.d.ts → core/schemas.d.ts} +38 -39
- package/dist/src/core/schemas.d.ts.map +1 -0
- package/dist/src/{document/schema/zod.js → core/schemas.js} +1 -10
- 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 +478 -0
- package/dist/src/core/types.d.ts.map +1 -0
- package/dist/src/{document/schema → 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/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} +34 -2
- 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 +7 -3
- package/dist/src/document-model/index.d.ts.map +1 -1
- package/dist/src/document-model/index.js +7 -3
- package/dist/src/document-model/index.js.map +1 -1
- package/dist/src/document-model/module.d.ts.map +1 -1
- package/dist/src/document-model/module.js +7 -8
- 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/{gen/schema/zod.d.ts → schemas.d.ts} +18 -18
- package/dist/src/document-model/schemas.d.ts.map +1 -0
- package/dist/src/document-model/{gen/schema/zod.js → schemas.js} +2 -2
- package/dist/src/document-model/schemas.js.map +1 -0
- package/dist/src/document-model/{gen/ph-factories.d.ts → state.d.ts} +5 -12
- package/dist/src/document-model/state.d.ts.map +1 -0
- package/dist/src/document-model/{gen/ph-factories.js → state.js} +16 -16
- package/dist/src/document-model/state.js.map +1 -0
- package/dist/src/document-model/types.d.ts +669 -2
- package/dist/src/document-model/types.d.ts.map +1 -1
- package/dist/src/document-model/types.js +1 -1
- package/dist/src/document-model/types.js.map +1 -1
- package/dist/src/document-model/{custom/utils.d.ts → validation.d.ts} +1 -1
- package/dist/src/document-model/{custom/utils.d.ts.map → validation.d.ts.map} +1 -1
- package/dist/src/document-model/{custom/utils.js → validation.js} +1 -1
- package/dist/src/document-model/{custom/utils.js.map → validation.js.map} +1 -1
- 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 +1 -1
- package/dist/test/document/crypto.test.js.map +1 -1
- package/dist/test/document/event-vs-command.test.js +1 -1
- package/dist/test/document/event-vs-command.test.js.map +1 -1
- package/dist/test/document/local.test.js +1 -1
- package/dist/test/document/local.test.js.map +1 -1
- package/dist/test/document/operation-id.test.js +1 -1
- package/dist/test/document/operation-id.test.js.map +1 -1
- package/dist/test/document/prune.test.js +2 -1
- package/dist/test/document/prune.test.js.map +1 -1
- package/dist/test/document/reducer.test.js +2 -1
- package/dist/test/document/reducer.test.js.map +1 -1
- package/dist/test/document/skip-operations.test.js +2 -1
- package/dist/test/document/skip-operations.test.js.map +1 -1
- package/dist/test/document/undo-redo.test.js +1 -1
- package/dist/test/document/undo-redo.test.js.map +1 -1
- package/dist/test/document/utils.test.js +1 -1
- package/dist/test/document/utils.test.js.map +1 -1
- package/dist/test/document-helpers/addUndo.test.js +1 -1
- package/dist/test/document-helpers/addUndo.test.js.map +1 -1
- package/dist/test/document-helpers/attachBranch.test.js +1 -1
- 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 +1 -1
- 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 +2 -2
- package/dist/test/document-helpers/groupOperationsByScope.test.js.map +1 -1
- package/dist/test/document-helpers/merge.test.js +1 -1
- 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 +1 -1
- package/dist/test/document-helpers/removeExistingOperations.test.js.map +1 -1
- package/dist/test/document-helpers/reshuffleByTimestamp.test.js +1 -1
- package/dist/test/document-helpers/reshuffleByTimestamp.test.js.map +1 -1
- package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.js +1 -1
- package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.js.map +1 -1
- package/dist/test/document-helpers/skipHeaderOperations.test.js +1 -1
- 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 +1 -1
- package/dist/test/document-helpers/split.test.js.map +1 -1
- package/dist/test/document-model/replay.test.js +1 -3
- package/dist/test/document-model/replay.test.js.map +1 -1
- package/dist/test/document-model/skip-operations.test.js +2 -1
- package/dist/test/document-model/skip-operations.test.js.map +1 -1
- package/dist/test/document-model/zip.test.js +2 -1
- package/dist/test/document-model/zip.test.js.map +1 -1
- package/dist/test/helpers.d.ts +1 -4
- package/dist/test/helpers.d.ts.map +1 -1
- package/dist/test/helpers.js +1 -1
- package/dist/test/helpers.js.map +1 -1
- package/dist/test/index.d.ts +2 -1
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/index.js +1 -1
- package/dist/test/index.js.map +1 -1
- package/dist/test/types.d.ts +6 -0
- package/dist/test/types.d.ts.map +1 -0
- package/dist/{src/document/actions → test}/types.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -9
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -5
- package/dist/index.js.map +0 -1
- package/dist/src/document/actions/constants.d.ts +0 -7
- package/dist/src/document/actions/constants.d.ts.map +0 -1
- package/dist/src/document/actions/constants.js +0 -7
- package/dist/src/document/actions/constants.js.map +0 -1
- package/dist/src/document/actions/create-action.d.ts +0 -25
- package/dist/src/document/actions/create-action.d.ts.map +0 -1
- package/dist/src/document/actions/create-action.js +0 -48
- package/dist/src/document/actions/create-action.js.map +0 -1
- package/dist/src/document/actions/creators.d.ts +0 -50
- package/dist/src/document/actions/creators.d.ts.map +0 -1
- package/dist/src/document/actions/creators.js +0 -56
- package/dist/src/document/actions/creators.js.map +0 -1
- package/dist/src/document/actions/index.d.ts +0 -5
- package/dist/src/document/actions/index.d.ts.map +0 -1
- package/dist/src/document/actions/index.js +0 -5
- package/dist/src/document/actions/index.js.map +0 -1
- 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 -27
- package/dist/src/document/actions/types.d.ts.map +0 -1
- package/dist/src/document/index.d.ts +0 -6
- package/dist/src/document/index.d.ts.map +0 -1
- package/dist/src/document/index.js +0 -6
- package/dist/src/document/index.js.map +0 -1
- package/dist/src/document/ph-factories.d.ts +0 -36
- package/dist/src/document/ph-factories.d.ts.map +0 -1
- package/dist/src/document/ph-factories.js +0 -93
- package/dist/src/document/ph-factories.js.map +0 -1
- package/dist/src/document/ph-types.d.ts +0 -76
- 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.map +0 -1
- package/dist/src/document/reducer.js.map +0 -1
- package/dist/src/document/schema/index.d.ts +0 -2
- package/dist/src/document/schema/index.d.ts.map +0 -1
- package/dist/src/document/schema/index.js +0 -2
- package/dist/src/document/schema/index.js.map +0 -1
- package/dist/src/document/schema/types.d.ts +0 -168
- 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 -309
- package/dist/src/document/types.d.ts.map +0 -1
- package/dist/src/document/types.js +0 -5
- package/dist/src/document/types.js.map +0 -1
- package/dist/src/document/utils/base.d.ts +0 -41
- package/dist/src/document/utils/base.d.ts.map +0 -1
- package/dist/src/document/utils/base.js +0 -250
- 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 -53
- 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 -75
- 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.map +0 -1
- package/dist/src/document/utils/errors.js.map +0 -1
- package/dist/src/document/utils/file.d.ts +0 -5
- package/dist/src/document/utils/file.d.ts.map +0 -1
- 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/index.d.ts +0 -11
- package/dist/src/document/utils/index.d.ts.map +0 -1
- package/dist/src/document/utils/index.js +0 -11
- package/dist/src/document/utils/index.js.map +0 -1
- package/dist/src/document/utils/node.d.ts.map +0 -1
- package/dist/src/document/utils/node.js.map +0 -1
- package/dist/src/document/utils/revisions.d.ts +0 -12
- package/dist/src/document/utils/revisions.d.ts.map +0 -1
- package/dist/src/document/utils/revisions.js +0 -42
- package/dist/src/document/utils/revisions.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/utils/zip.d.ts +0 -4
- package/dist/src/document/utils/zip.d.ts.map +0 -1
- package/dist/src/document/utils/zip.js +0 -26
- package/dist/src/document/utils/zip.js.map +0 -1
- package/dist/src/document-model/custom/index.d.ts +0 -3
- package/dist/src/document-model/custom/index.d.ts.map +0 -1
- package/dist/src/document-model/custom/index.js +0 -3
- package/dist/src/document-model/custom/index.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/index.d.ts +0 -8
- package/dist/src/document-model/custom/reducers/index.d.ts.map +0 -1
- package/dist/src/document-model/custom/reducers/index.js +0 -8
- package/dist/src/document-model/custom/reducers/index.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 -98
- 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/gen/actions.d.ts +0 -3
- package/dist/src/document-model/gen/actions.d.ts.map +0 -1
- package/dist/src/document-model/gen/actions.js +0 -2
- 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 -27
- 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 -8
- package/dist/src/document-model/gen/header/creators.d.ts.map +0 -1
- package/dist/src/document-model/gen/header/creators.js +0 -8
- package/dist/src/document-model/gen/header/creators.js.map +0 -1
- package/dist/src/document-model/gen/header/index.d.ts +0 -2
- package/dist/src/document-model/gen/header/index.d.ts.map +0 -1
- package/dist/src/document-model/gen/header/index.js +0 -2
- package/dist/src/document-model/gen/header/index.js.map +0 -1
- package/dist/src/document-model/gen/header/operations.d.ts +0 -10
- 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/header/types.d.ts +0 -3
- package/dist/src/document-model/gen/header/types.d.ts.map +0 -1
- package/dist/src/document-model/gen/header/types.js +0 -3
- package/dist/src/document-model/gen/header/types.js.map +0 -1
- package/dist/src/document-model/gen/index.d.ts +0 -12
- package/dist/src/document-model/gen/index.d.ts.map +0 -1
- package/dist/src/document-model/gen/index.js +0 -12
- package/dist/src/document-model/gen/index.js.map +0 -1
- package/dist/src/document-model/gen/module/actions.d.ts +0 -23
- 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 -7
- package/dist/src/document-model/gen/module/creators.d.ts.map +0 -1
- package/dist/src/document-model/gen/module/creators.js +0 -7
- package/dist/src/document-model/gen/module/creators.js.map +0 -1
- package/dist/src/document-model/gen/module/index.d.ts +0 -2
- package/dist/src/document-model/gen/module/index.d.ts.map +0 -1
- package/dist/src/document-model/gen/module/index.js +0 -2
- package/dist/src/document-model/gen/module/index.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/module/types.d.ts +0 -3
- package/dist/src/document-model/gen/module/types.d.ts.map +0 -1
- package/dist/src/document-model/gen/module/types.js +0 -3
- package/dist/src/document-model/gen/module/types.js.map +0 -1
- package/dist/src/document-model/gen/operation/actions.d.ts +0 -43
- 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 -12
- package/dist/src/document-model/gen/operation/creators.d.ts.map +0 -1
- package/dist/src/document-model/gen/operation/creators.js +0 -12
- package/dist/src/document-model/gen/operation/creators.js.map +0 -1
- package/dist/src/document-model/gen/operation/index.d.ts +0 -2
- package/dist/src/document-model/gen/operation/index.d.ts.map +0 -1
- package/dist/src/document-model/gen/operation/index.js +0 -2
- package/dist/src/document-model/gen/operation/index.js.map +0 -1
- package/dist/src/document-model/gen/operation/types.d.ts +0 -15
- package/dist/src/document-model/gen/operation/types.d.ts.map +0 -1
- package/dist/src/document-model/gen/operation/types.js +0 -2
- package/dist/src/document-model/gen/operation/types.js.map +0 -1
- package/dist/src/document-model/gen/operation-error/actions.d.ts +0 -31
- 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 -9
- 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 -9
- package/dist/src/document-model/gen/operation-error/creators.js.map +0 -1
- package/dist/src/document-model/gen/operation-error/index.d.ts +0 -2
- package/dist/src/document-model/gen/operation-error/index.d.ts.map +0 -1
- package/dist/src/document-model/gen/operation-error/index.js +0 -2
- package/dist/src/document-model/gen/operation-error/index.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-error/types.d.ts +0 -3
- package/dist/src/document-model/gen/operation-error/types.d.ts.map +0 -1
- package/dist/src/document-model/gen/operation-error/types.js +0 -3
- package/dist/src/document-model/gen/operation-error/types.js.map +0 -1
- package/dist/src/document-model/gen/operation-example/actions.d.ts +0 -19
- 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 -6
- 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 -6
- package/dist/src/document-model/gen/operation-example/creators.js.map +0 -1
- package/dist/src/document-model/gen/operation-example/index.d.ts +0 -2
- package/dist/src/document-model/gen/operation-example/index.d.ts.map +0 -1
- package/dist/src/document-model/gen/operation-example/index.js +0 -2
- package/dist/src/document-model/gen/operation-example/index.js.map +0 -1
- package/dist/src/document-model/gen/operation-example/operations.d.ts +0 -8
- 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/operation-example/types.d.ts +0 -3
- package/dist/src/document-model/gen/operation-example/types.d.ts.map +0 -1
- package/dist/src/document-model/gen/operation-example/types.js +0 -3
- package/dist/src/document-model/gen/operation-example/types.js.map +0 -1
- package/dist/src/document-model/gen/ph-factories.d.ts.map +0 -1
- package/dist/src/document-model/gen/ph-factories.js.map +0 -1
- package/dist/src/document-model/gen/reducer.d.ts +0 -4
- package/dist/src/document-model/gen/reducer.d.ts.map +0 -1
- package/dist/src/document-model/gen/reducer.js +0 -186
- 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 -413
- 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.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 -27
- 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 -8
- package/dist/src/document-model/gen/state/creators.d.ts.map +0 -1
- package/dist/src/document-model/gen/state/creators.js +0 -8
- package/dist/src/document-model/gen/state/creators.js.map +0 -1
- package/dist/src/document-model/gen/state/index.d.ts +0 -2
- package/dist/src/document-model/gen/state/index.d.ts.map +0 -1
- package/dist/src/document-model/gen/state/index.js +0 -2
- package/dist/src/document-model/gen/state/index.js.map +0 -1
- package/dist/src/document-model/gen/state/operations.d.ts +0 -10
- 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/state/types.d.ts +0 -3
- package/dist/src/document-model/gen/state/types.d.ts.map +0 -1
- package/dist/src/document-model/gen/state/types.js +0 -3
- package/dist/src/document-model/gen/state/types.js.map +0 -1
- package/dist/src/document-model/gen/types.d.ts +0 -10
- package/dist/src/document-model/gen/types.d.ts.map +0 -1
- package/dist/src/document-model/gen/types.js +0 -10
- package/dist/src/document-model/gen/types.js.map +0 -1
- package/dist/src/document-model/gen/utils.d.ts +0 -6
- package/dist/src/document-model/gen/utils.d.ts.map +0 -1
- package/dist/src/document-model/gen/utils.js +0 -23
- package/dist/src/document-model/gen/utils.js.map +0 -1
- package/dist/src/document-model/gen/versioning/actions.d.ts +0 -23
- 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 -7
- package/dist/src/document-model/gen/versioning/creators.d.ts.map +0 -1
- package/dist/src/document-model/gen/versioning/creators.js +0 -7
- package/dist/src/document-model/gen/versioning/creators.js.map +0 -1
- package/dist/src/document-model/gen/versioning/index.d.ts +0 -2
- package/dist/src/document-model/gen/versioning/index.d.ts.map +0 -1
- package/dist/src/document-model/gen/versioning/index.js +0 -2
- package/dist/src/document-model/gen/versioning/index.js.map +0 -1
- package/dist/src/document-model/gen/versioning/operations.d.ts +0 -9
- 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/src/document-model/gen/versioning/types.d.ts +0 -3
- package/dist/src/document-model/gen/versioning/types.d.ts.map +0 -1
- package/dist/src/document-model/gen/versioning/types.js +0 -3
- package/dist/src/document-model/gen/versioning/types.js.map +0 -1
- /package/dist/src/{document-model/gen/schema → core}/types.js +0 -0
- /package/dist/src/{document/utils → core}/validation.js +0 -0
- /package/dist/{src/document/actions → test}/types.js +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { hashDocumentStateForScope, loadState, nextSkipNumber, noop, replayOperations, sortOperations, } from "document-model";
|
|
2
1
|
import { castDraft, create } from "mutative";
|
|
2
|
+
import { noop } from "./actions.js";
|
|
3
|
+
import { nextSkipNumber, sortOperations } from "./documents.js";
|
|
3
4
|
// updates the name of the document
|
|
4
5
|
export function setNameOperation(document, name) {
|
|
5
6
|
return { ...document, header: { ...document.header, name } };
|
|
@@ -73,54 +74,6 @@ export function redoOperation(document, action, skip) {
|
|
|
73
74
|
});
|
|
74
75
|
});
|
|
75
76
|
}
|
|
76
|
-
export function pruneOperation(document, input, wrappedReducer) {
|
|
77
|
-
const operations = document.operations.global;
|
|
78
|
-
let { start, end } = input;
|
|
79
|
-
start = start || 0;
|
|
80
|
-
end = end || operations.length;
|
|
81
|
-
const actionsToPrune = operations.slice(start, end);
|
|
82
|
-
const actionsToKeepStart = operations.slice(0, start);
|
|
83
|
-
const actionsToKeepEnd = operations.slice(end);
|
|
84
|
-
// runs all operations from the initial state to
|
|
85
|
-
// the end of prune to get name and data
|
|
86
|
-
const newDocument = replayOperations(document.initialState, {
|
|
87
|
-
...document.operations,
|
|
88
|
-
global: actionsToKeepStart.concat(actionsToPrune),
|
|
89
|
-
}, wrappedReducer);
|
|
90
|
-
const newState = newDocument.state;
|
|
91
|
-
const name = newDocument.header.name;
|
|
92
|
-
// the new operation has the index of the first pruned operation
|
|
93
|
-
const loadStateIndex = actionsToKeepStart.length;
|
|
94
|
-
// if and operation is pruned then reuses the timestamp of the last operation
|
|
95
|
-
// if not then assigns the timestamp of the following unpruned operation
|
|
96
|
-
const loadStateTimestamp = actionsToKeepStart.length
|
|
97
|
-
? actionsToKeepStart[actionsToKeepStart.length - 1].timestampUtcMs
|
|
98
|
-
: actionsToKeepEnd.length
|
|
99
|
-
? actionsToKeepEnd[0].timestampUtcMs
|
|
100
|
-
: new Date().toISOString();
|
|
101
|
-
const action = loadState({ name, ...newState }, actionsToPrune.length);
|
|
102
|
-
// replaces pruned operations with LOAD_STATE
|
|
103
|
-
return replayOperations(document.initialState, {
|
|
104
|
-
...document.operations,
|
|
105
|
-
global: [
|
|
106
|
-
...actionsToKeepStart,
|
|
107
|
-
{
|
|
108
|
-
skip: 0,
|
|
109
|
-
...action,
|
|
110
|
-
action,
|
|
111
|
-
timestampUtcMs: loadStateTimestamp,
|
|
112
|
-
index: loadStateIndex,
|
|
113
|
-
hash: hashDocumentStateForScope({ state: newState }, "global"),
|
|
114
|
-
},
|
|
115
|
-
...actionsToKeepEnd
|
|
116
|
-
// updates the index for all the following operations
|
|
117
|
-
.map((action, index) => ({
|
|
118
|
-
...action,
|
|
119
|
-
index: loadStateIndex + index + 1,
|
|
120
|
-
})),
|
|
121
|
-
],
|
|
122
|
-
}, wrappedReducer);
|
|
123
|
-
}
|
|
124
77
|
export function loadStateOperation(document, action) {
|
|
125
78
|
return {
|
|
126
79
|
...document,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../src/core/operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import type { AttachmentInput } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Information to verify the document creator.
|
|
4
|
+
*/
|
|
5
|
+
export type PHDocumentSignatureInfo = {
|
|
6
|
+
/**
|
|
7
|
+
* The public key of the document creator.
|
|
8
|
+
**/
|
|
9
|
+
publicKey: JsonWebKey;
|
|
10
|
+
/** The nonce that was appended to the message to create the signature. */
|
|
11
|
+
nonce: string;
|
|
12
|
+
};
|
|
13
|
+
/** Meta information about the document. */
|
|
14
|
+
export type PHDocumentMeta = {
|
|
15
|
+
/** The preferred editor for the document. */
|
|
16
|
+
preferredEditor?: string;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* The header of a document.
|
|
20
|
+
*/
|
|
21
|
+
export type PHDocumentHeader = {
|
|
22
|
+
/**
|
|
23
|
+
* The id of the document.
|
|
24
|
+
*
|
|
25
|
+
* This is a Ed25519 signature and is immutable.
|
|
26
|
+
**/
|
|
27
|
+
id: string;
|
|
28
|
+
/**
|
|
29
|
+
* Information to verify the document creator.
|
|
30
|
+
*
|
|
31
|
+
* This is immutable.
|
|
32
|
+
**/
|
|
33
|
+
sig: PHDocumentSignatureInfo;
|
|
34
|
+
/**
|
|
35
|
+
* The type of the document.
|
|
36
|
+
*
|
|
37
|
+
* This is used as part of the signature payload and thus, cannot be changed
|
|
38
|
+
* after the document header has been created.
|
|
39
|
+
**/
|
|
40
|
+
documentType: string;
|
|
41
|
+
/**
|
|
42
|
+
* The timestamp of the creation date of the document, in UTC ISO format.
|
|
43
|
+
*
|
|
44
|
+
* This is used as part of the signature payload and thus, cannot be changed
|
|
45
|
+
* after the document header has been created.
|
|
46
|
+
**/
|
|
47
|
+
createdAtUtcIso: string;
|
|
48
|
+
/** The slug of the document. */
|
|
49
|
+
slug: string;
|
|
50
|
+
/** The name of the document. */
|
|
51
|
+
name: string;
|
|
52
|
+
/** The branch of this document. */
|
|
53
|
+
branch: string;
|
|
54
|
+
/**
|
|
55
|
+
* The revision of each scope of the document. This object is updated every
|
|
56
|
+
* time any _other_ scope is updated.
|
|
57
|
+
*/
|
|
58
|
+
revision: {
|
|
59
|
+
[scope: string]: number;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* The timestamp of the last change in the document, in UTC ISO format.
|
|
63
|
+
**/
|
|
64
|
+
lastModifiedAtUtcIso: string;
|
|
65
|
+
/** Meta information about the document. */
|
|
66
|
+
meta?: PHDocumentMeta;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* The authentication state of the document.
|
|
70
|
+
*
|
|
71
|
+
* This has yet to be implemented.
|
|
72
|
+
*/
|
|
73
|
+
export type PHAuthState = {};
|
|
74
|
+
export declare const HASH_ALGORITHM_SHA1 = "sha1";
|
|
75
|
+
export declare const HASH_ALGORITHM_SHA256 = "sha256";
|
|
76
|
+
export declare const HASH_ALGORITHM_SHA512 = "sha512";
|
|
77
|
+
export declare const HASH_ENCODING_BASE64 = "base64";
|
|
78
|
+
export declare const HASH_ENCODING_HEX = "hex";
|
|
79
|
+
/**
|
|
80
|
+
* Configuration for hashing document state in operations.
|
|
81
|
+
*/
|
|
82
|
+
export type HashConfig = {
|
|
83
|
+
/** The hashing algorithm to use (e.g., "sha1", "sha256") */
|
|
84
|
+
algorithm: string;
|
|
85
|
+
/** The encoding format for the hash output (e.g., "base64", "hex") */
|
|
86
|
+
encoding: string;
|
|
87
|
+
/** Optional algorithm-specific parameters */
|
|
88
|
+
params?: Record<string, unknown>;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* The document state of the document.
|
|
92
|
+
*/
|
|
93
|
+
export type PHDocumentState = {
|
|
94
|
+
/** The current version of the document. */
|
|
95
|
+
version: string;
|
|
96
|
+
/** Hash configuration for operation state verification */
|
|
97
|
+
hash: HashConfig;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* The base state of the document.
|
|
101
|
+
*/
|
|
102
|
+
export type PHBaseState = {
|
|
103
|
+
/** Carries authentication information. */
|
|
104
|
+
auth: PHAuthState;
|
|
105
|
+
/** Carries information about the document. */
|
|
106
|
+
document: PHDocumentState;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* A signature of an action.
|
|
110
|
+
*
|
|
111
|
+
* This will be refactored in a future release.
|
|
112
|
+
*/
|
|
113
|
+
export type Signature = [string, string, string, string, string];
|
|
114
|
+
/**
|
|
115
|
+
* A user action signer.
|
|
116
|
+
*/
|
|
117
|
+
export type UserActionSigner = {
|
|
118
|
+
address: string;
|
|
119
|
+
networkId: string;
|
|
120
|
+
chainId: number;
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* An app action signer.
|
|
124
|
+
*/
|
|
125
|
+
export type AppActionSigner = {
|
|
126
|
+
name: string;
|
|
127
|
+
key: string;
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* An action signer.
|
|
131
|
+
*/
|
|
132
|
+
export type ActionSigner = {
|
|
133
|
+
user: UserActionSigner;
|
|
134
|
+
app: AppActionSigner;
|
|
135
|
+
signatures: Signature[];
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* The context of an action.
|
|
139
|
+
*/
|
|
140
|
+
export type ActionContext = {
|
|
141
|
+
/** The index of the previous operation, showing intended ordering. */
|
|
142
|
+
prevOpIndex?: number;
|
|
143
|
+
/** The hash of the previous operation, showing intended state. */
|
|
144
|
+
prevOpHash?: string;
|
|
145
|
+
/** A nonce, to cover specific signing attacks and to prevent replay attacks from no-ops. */
|
|
146
|
+
nonce?: string;
|
|
147
|
+
/** The signer of the action. */
|
|
148
|
+
signer?: ActionSigner;
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* String type representing an attachment in a Document.
|
|
152
|
+
*
|
|
153
|
+
* @remarks
|
|
154
|
+
* Attachment string is formatted as `attachment://<filename>`.
|
|
155
|
+
*/
|
|
156
|
+
export type AttachmentRef = string;
|
|
157
|
+
/**
|
|
158
|
+
* Defines the basic structure of an action.
|
|
159
|
+
*/
|
|
160
|
+
export type Action = {
|
|
161
|
+
/** The id of the action. This is distinct from the operation id. */
|
|
162
|
+
id: string;
|
|
163
|
+
/** The name of the action. */
|
|
164
|
+
type: string;
|
|
165
|
+
/** The timestamp of the action. */
|
|
166
|
+
timestampUtcMs: string;
|
|
167
|
+
/** The payload of the action. */
|
|
168
|
+
input: unknown;
|
|
169
|
+
/** The scope of the action */
|
|
170
|
+
scope: string;
|
|
171
|
+
/**
|
|
172
|
+
* The attachments included in the action.
|
|
173
|
+
*
|
|
174
|
+
* This will be refactored in a future release.
|
|
175
|
+
*/
|
|
176
|
+
attachments?: AttachmentInput[];
|
|
177
|
+
/** The context of the action. */
|
|
178
|
+
context?: ActionContext;
|
|
179
|
+
};
|
|
180
|
+
/**
|
|
181
|
+
* An operation that was applied to a {@link BaseDocument}.
|
|
182
|
+
*
|
|
183
|
+
* @remarks
|
|
184
|
+
* Wraps an action with an index, to be added to the operations history of a Document.
|
|
185
|
+
* The `index` field is used to keep all operations in order and enable replaying the
|
|
186
|
+
* document's history from the beginning.
|
|
187
|
+
*
|
|
188
|
+
* @typeParam A - The type of the action.
|
|
189
|
+
*/
|
|
190
|
+
export type Operation = {
|
|
191
|
+
/** Position of the operation in the history */
|
|
192
|
+
index: number;
|
|
193
|
+
/** Timestamp of when the operation was added */
|
|
194
|
+
timestampUtcMs: string;
|
|
195
|
+
/** Hash of the resulting document data after the operation */
|
|
196
|
+
hash: string;
|
|
197
|
+
/** The number of operations skipped with this Operation */
|
|
198
|
+
skip: number;
|
|
199
|
+
/** Error message for a failed action */
|
|
200
|
+
error?: string;
|
|
201
|
+
/** The resulting state after the operation */
|
|
202
|
+
resultingState?: string;
|
|
203
|
+
/** Unique operation id. This is distinct from the action id and can be undefined and assigned later. */
|
|
204
|
+
id?: string;
|
|
205
|
+
/**
|
|
206
|
+
* The action that was applied to the document to produce this operation.
|
|
207
|
+
*/
|
|
208
|
+
action: Action;
|
|
209
|
+
};
|
|
210
|
+
/**
|
|
211
|
+
* The operations history of the document by scope.
|
|
212
|
+
*
|
|
213
|
+
* This will be removed in a future release.
|
|
214
|
+
*/
|
|
215
|
+
export type DocumentOperations = Record<string, Operation[]>;
|
|
216
|
+
/**
|
|
217
|
+
* The base type of a document model.
|
|
218
|
+
*
|
|
219
|
+
* @remarks
|
|
220
|
+
* This type is extended by all Document models.
|
|
221
|
+
*
|
|
222
|
+
* @typeParam TState - The type of the document state.
|
|
223
|
+
*/
|
|
224
|
+
export type PHDocument<TState extends PHBaseState = PHBaseState> = {
|
|
225
|
+
/** The header of the document. */
|
|
226
|
+
header: PHDocumentHeader;
|
|
227
|
+
/** The document model specific state. */
|
|
228
|
+
state: TState;
|
|
229
|
+
/**
|
|
230
|
+
* The initial state of the document, enabling replaying operations.
|
|
231
|
+
*
|
|
232
|
+
* This will be removed in a future release.
|
|
233
|
+
*/
|
|
234
|
+
initialState: TState;
|
|
235
|
+
/**
|
|
236
|
+
* The operations history of the document.
|
|
237
|
+
*
|
|
238
|
+
* This will be removed in a future release.
|
|
239
|
+
*/
|
|
240
|
+
operations: DocumentOperations;
|
|
241
|
+
/**
|
|
242
|
+
* A list of undone operations
|
|
243
|
+
*
|
|
244
|
+
* This will be removed in a future release.
|
|
245
|
+
*/
|
|
246
|
+
clipboard: Operation[];
|
|
247
|
+
};
|
|
248
|
+
//# sourceMappingURL=ph-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ph-types.d.ts","sourceRoot":"","sources":["../../../src/core/ph-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
2
|
+
// These are "Reactor V2" types, that have passed through the on-going reactor
|
|
3
|
+
// refactor.
|
|
4
|
+
//
|
|
5
|
+
// Please do not add types to this file that have not been spec'd out in the
|
|
6
|
+
// docs/planning folder in the reactor/ package.
|
|
7
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
8
|
+
// Known hash algorithms (can be extended without breaking changes)
|
|
9
|
+
export const HASH_ALGORITHM_SHA1 = "sha1";
|
|
10
|
+
export const HASH_ALGORITHM_SHA256 = "sha256";
|
|
11
|
+
export const HASH_ALGORITHM_SHA512 = "sha512";
|
|
12
|
+
// Known encodings (can be extended without breaking changes)
|
|
13
|
+
export const HASH_ENCODING_BASE64 = "base64";
|
|
14
|
+
export const HASH_ENCODING_HEX = "hex";
|
|
15
|
+
//# sourceMappingURL=ph-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ph-types.js","sourceRoot":"","sources":["../../../src/core/ph-types.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,8EAA8E;AAC9E,YAAY;AACZ,EAAE;AACF,4EAA4E;AAC5E,gDAAgD;AAChD,+EAA+E;AA0F/E,mEAAmE;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAC1C,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAC9C,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAE9C,6DAA6D;AAC7D,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import type { Action, Operation, PHBaseState, PHDocument,
|
|
1
|
+
import type { Action, DocumentOperations, Operation, PHBaseState, PHDocument, PHDocumentHeader } from "./ph-types.js";
|
|
2
|
+
import type { PruneActionInput, Reducer, ReducerOptions, ReplayDocumentOptions, SignalDispatch, SkipHeaderOperations, StateReducer } from "./types.js";
|
|
3
|
+
export declare function replayOperations<TState extends PHBaseState = PHBaseState>(initialState: TState, clearedOperations: DocumentOperations, stateReducer: StateReducer<TState>, dispatch?: SignalDispatch, header?: PHDocumentHeader, documentReducer?: typeof baseReducer, skipHeaderOperations?: SkipHeaderOperations, options?: ReplayDocumentOptions): PHDocument<TState>;
|
|
2
4
|
/**
|
|
3
5
|
* Updates the document state based on the provided action.
|
|
4
6
|
*
|
|
@@ -55,4 +57,5 @@ export declare function baseReducer<TState extends PHBaseState = PHBaseState>(do
|
|
|
55
57
|
* @returns The new reducer.
|
|
56
58
|
*/
|
|
57
59
|
export declare function createReducer<TState extends PHBaseState = PHBaseState>(stateReducer: StateReducer<TState>, documentReducer?: typeof baseReducer): Reducer<TState>;
|
|
60
|
+
export declare function pruneOperation<TState extends PHBaseState = PHBaseState>(document: PHDocument<TState>, input: PruneActionInput, wrappedReducer: StateReducer<TState>): PHDocument<TState>;
|
|
58
61
|
//# sourceMappingURL=reducer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../../../src/core/reducer.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EACV,MAAM,EACN,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,UAAU,EACV,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EACV,gBAAgB,EAChB,OAAO,EACP,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB,wBAAgB,gBAAgB,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,EACvE,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,kBAAkB,EACrC,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,EAClC,QAAQ,CAAC,EAAE,cAAc,EACzB,MAAM,CAAC,EAAE,gBAAgB,EACzB,eAAe,qBAAc,EAC7B,oBAAoB,GAAE,oBAAyB,EAC/C,OAAO,CAAC,EAAE,qBAAqB,GAC9B,UAAU,CAAC,MAAM,CAAC,CAcpB;AA8ED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,SAAS,SAAS,UAAU,EACzD,QAAQ,EAAE,SAAS,EACnB,MAAM,EAAE,MAAM,EACd,uBAAuB,UAAQ,EAC/B,IAAI,SAAI,EACR,SAAS,CAAC,EAAE,SAAS,GACpB,SAAS,CAsBX;AA8BD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,EACtE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX;IACD,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB,EAAE,OAAO,CAAC;CAClC,CASA;AAsGD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,EAClE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAC5B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,YAAY,CAAC,MAAM,CAAC,EACnC,QAAQ,CAAC,EAAE,cAAc,EACzB,OAAO,GAAE,cAAmB,GAC3B,UAAU,CAAC,MAAM,CAAC,CAyKpB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,EACpE,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,EAClC,eAAe,qBAAc,GAC5B,OAAO,CAAC,MAAM,CAAC,CAUjB;AAED,wBAAgB,cAAc,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,EACrE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAC5B,KAAK,EAAE,gBAAgB,EACvB,cAAc,EAAE,YAAY,CAAC,MAAM,CAAC,GACnC,UAAU,CAAC,MAAM,CAAC,CA+DpB"}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
import { actionFromAction, diffOperations, DocumentActionSchema, garbageCollect, garbageCollectDocumentOperations, hashDocumentStateForScope, isDocumentAction, isUndo, isUndoRedo, loadStateOperation, operationFromAction, operationFromOperation, parseResultingState, pruneOperation, redoOperation, replayOperations, setNameOperation, skipHeaderOperations, sortOperations, undoOperation, updateHeaderRevision, } from "document-model";
|
|
2
1
|
import { castDraft, create, unsafe } from "mutative";
|
|
3
|
-
import {
|
|
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);
|
|
12
|
+
}
|
|
4
13
|
/**
|
|
5
14
|
* Updates the operations history of the document based on the provided action.
|
|
6
15
|
*
|
|
@@ -87,11 +96,11 @@ function _baseReducer(document, action, wrappedReducer) {
|
|
|
87
96
|
// throws if action is not valid base action
|
|
88
97
|
const parsedAction = DocumentActionSchema().parse(action);
|
|
89
98
|
switch (parsedAction.type) {
|
|
90
|
-
case SET_NAME:
|
|
99
|
+
case "SET_NAME":
|
|
91
100
|
return setNameOperation(document, parsedAction.input);
|
|
92
|
-
case PRUNE:
|
|
101
|
+
case "PRUNE":
|
|
93
102
|
return pruneOperation(document, parsedAction.input, wrappedReducer);
|
|
94
|
-
case LOAD_STATE:
|
|
103
|
+
case "LOAD_STATE":
|
|
95
104
|
return loadStateOperation(document, parsedAction.input);
|
|
96
105
|
default:
|
|
97
106
|
return document;
|
|
@@ -107,9 +116,9 @@ function _baseReducer(document, action, wrappedReducer) {
|
|
|
107
116
|
*/
|
|
108
117
|
export function processUndoRedo(document, action, skip) {
|
|
109
118
|
switch (action.type) {
|
|
110
|
-
case UNDO:
|
|
119
|
+
case "UNDO":
|
|
111
120
|
return undoOperation(document, action, skip);
|
|
112
|
-
case REDO:
|
|
121
|
+
case "REDO":
|
|
113
122
|
return redoOperation(document, action, skip);
|
|
114
123
|
default:
|
|
115
124
|
return { document, action, skip, reuseLastOperationIndex: false };
|
|
@@ -275,7 +284,7 @@ export function baseReducer(document, action, customReducer, dispatch, options =
|
|
|
275
284
|
});
|
|
276
285
|
// updates the document history
|
|
277
286
|
// meta operations are not added to the operations history
|
|
278
|
-
if ([UNDO, REDO, PRUNE].includes(_action.type)) {
|
|
287
|
+
if (["UNDO", "REDO", "PRUNE"].includes(_action.type)) {
|
|
279
288
|
return newDocument;
|
|
280
289
|
}
|
|
281
290
|
// if reuseHash is true, checks if the action has
|
|
@@ -293,18 +302,6 @@ export function baseReducer(document, action, customReducer, dispatch, options =
|
|
|
293
302
|
if (reuseOperationResultingState) {
|
|
294
303
|
lastOperation.resultingState = JSON.stringify(newDocument.state[scope]);
|
|
295
304
|
}
|
|
296
|
-
// if the action has attachments then adds them to the document
|
|
297
|
-
if (!isDocumentAction(_action) && _action.attachments) {
|
|
298
|
-
_action.attachments.forEach((attachment) => {
|
|
299
|
-
const { hash, ...file } = attachment;
|
|
300
|
-
if (!newDocument.attachments) {
|
|
301
|
-
newDocument.attachments = {};
|
|
302
|
-
}
|
|
303
|
-
newDocument.attachments[hash] = {
|
|
304
|
-
...file,
|
|
305
|
-
};
|
|
306
|
-
});
|
|
307
|
-
}
|
|
308
305
|
}
|
|
309
306
|
return newDocument;
|
|
310
307
|
}
|
|
@@ -332,4 +329,52 @@ export function createReducer(stateReducer, documentReducer = baseReducer) {
|
|
|
332
329
|
};
|
|
333
330
|
return reducer;
|
|
334
331
|
}
|
|
332
|
+
export function pruneOperation(document, input, wrappedReducer) {
|
|
333
|
+
const operations = document.operations.global;
|
|
334
|
+
let { start, end } = input;
|
|
335
|
+
start = start || 0;
|
|
336
|
+
end = end || operations.length;
|
|
337
|
+
const actionsToPrune = operations.slice(start, end);
|
|
338
|
+
const actionsToKeepStart = operations.slice(0, start);
|
|
339
|
+
const actionsToKeepEnd = operations.slice(end);
|
|
340
|
+
// runs all operations from the initial state to
|
|
341
|
+
// the end of prune to get name and data
|
|
342
|
+
const newDocument = replayOperations(document.initialState, {
|
|
343
|
+
...document.operations,
|
|
344
|
+
global: actionsToKeepStart.concat(actionsToPrune),
|
|
345
|
+
}, wrappedReducer);
|
|
346
|
+
const newState = newDocument.state;
|
|
347
|
+
const name = newDocument.header.name;
|
|
348
|
+
// the new operation has the index of the first pruned operation
|
|
349
|
+
const loadStateIndex = actionsToKeepStart.length;
|
|
350
|
+
// if and operation is pruned then reuses the timestamp of the last operation
|
|
351
|
+
// if not then assigns the timestamp of the following unpruned operation
|
|
352
|
+
const loadStateTimestamp = actionsToKeepStart.length
|
|
353
|
+
? actionsToKeepStart[actionsToKeepStart.length - 1].timestampUtcMs
|
|
354
|
+
: actionsToKeepEnd.length
|
|
355
|
+
? actionsToKeepEnd[0].timestampUtcMs
|
|
356
|
+
: new Date().toISOString();
|
|
357
|
+
const action = loadState({ name, ...newState }, actionsToPrune.length);
|
|
358
|
+
// replaces pruned operations with LOAD_STATE
|
|
359
|
+
return replayOperations(document.initialState, {
|
|
360
|
+
...document.operations,
|
|
361
|
+
global: [
|
|
362
|
+
...actionsToKeepStart,
|
|
363
|
+
{
|
|
364
|
+
skip: 0,
|
|
365
|
+
...action,
|
|
366
|
+
action,
|
|
367
|
+
timestampUtcMs: loadStateTimestamp,
|
|
368
|
+
index: loadStateIndex,
|
|
369
|
+
hash: hashDocumentStateForScope({ state: newState }, "global"),
|
|
370
|
+
},
|
|
371
|
+
...actionsToKeepEnd
|
|
372
|
+
// updates the index for all the following operations
|
|
373
|
+
.map((action, index) => ({
|
|
374
|
+
...action,
|
|
375
|
+
index: loadStateIndex + index + 1,
|
|
376
|
+
})),
|
|
377
|
+
],
|
|
378
|
+
}, wrappedReducer);
|
|
379
|
+
}
|
|
335
380
|
//# 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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"}
|