document-model 1.0.54 → 1.1.0-debug.1
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/CHANGELOG.md +19 -0
- package/dist/browser/cjs/_virtual/_commonjsHelpers.js +7 -0
- package/dist/browser/cjs/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/browser/cjs/_virtual/browser.js +35 -0
- package/dist/browser/cjs/_virtual/browser.js.map +1 -0
- package/dist/browser/cjs/_virtual/index.js +5 -0
- package/dist/browser/cjs/_virtual/index.js.map +1 -0
- package/dist/browser/cjs/_virtual/index2.js +5 -0
- package/dist/browser/cjs/_virtual/index2.js.map +1 -0
- package/dist/browser/cjs/_virtual/index3.js +5 -0
- package/dist/browser/cjs/_virtual/index3.js.map +1 -0
- package/dist/browser/cjs/_virtual/index4.js +5 -0
- package/dist/browser/cjs/_virtual/index4.js.map +1 -0
- package/dist/browser/cjs/_virtual/index5.js +5 -0
- package/dist/browser/cjs/_virtual/index5.js.map +1 -0
- package/dist/browser/cjs/_virtual/inherits_browser.js +5 -0
- package/dist/browser/cjs/_virtual/inherits_browser.js.map +1 -0
- package/dist/browser/cjs/document-model.js +41 -1
- package/dist/browser/cjs/document-model.js.map +1 -0
- package/dist/browser/cjs/document.js +15 -1
- package/dist/browser/cjs/document.js.map +1 -0
- package/dist/browser/cjs/index.js +14 -1
- package/dist/browser/cjs/index.js.map +1 -0
- package/dist/browser/cjs/src/document/actions/creators.js +46 -0
- package/dist/browser/cjs/src/document/actions/creators.js.map +1 -0
- package/dist/browser/cjs/src/document/actions/index.js +173 -0
- package/dist/browser/cjs/src/document/actions/index.js.map +1 -0
- package/dist/browser/cjs/src/document/actions/types.js +15 -0
- package/dist/browser/cjs/src/document/actions/types.js.map +1 -0
- package/dist/browser/cjs/src/document/object.js +190 -0
- package/dist/browser/cjs/src/document/object.js.map +1 -0
- package/dist/browser/cjs/src/document/reducer.js +192 -0
- package/dist/browser/cjs/src/document/reducer.js.map +1 -0
- package/dist/browser/cjs/src/document/schema/zod.js +137 -0
- package/dist/browser/cjs/src/document/schema/zod.js.map +1 -0
- package/dist/browser/cjs/src/document/utils/base.js +220 -0
- package/dist/browser/cjs/src/document/utils/base.js.map +1 -0
- package/dist/browser/cjs/src/document/utils/document-helpers.js +324 -0
- package/dist/browser/cjs/src/document/utils/document-helpers.js.map +1 -0
- package/dist/browser/cjs/src/document/utils/file.js +135 -0
- package/dist/browser/cjs/src/document/utils/file.js.map +1 -0
- package/dist/browser/cjs/src/document/utils/index.js +33 -0
- package/dist/browser/cjs/src/document/utils/index.js.map +1 -0
- package/dist/browser/cjs/src/document/utils/validation.js +24 -0
- package/dist/browser/cjs/src/document/utils/validation.js.map +1 -0
- package/dist/browser/cjs/src/document-model/custom/reducers/header.js +26 -0
- package/dist/browser/cjs/src/document-model/custom/reducers/header.js.map +1 -0
- package/dist/browser/cjs/src/document-model/custom/reducers/module.js +46 -0
- package/dist/browser/cjs/src/document-model/custom/reducers/module.js.map +1 -0
- package/dist/browser/cjs/src/document-model/custom/reducers/operation-error.js +95 -0
- package/dist/browser/cjs/src/document-model/custom/reducers/operation-error.js.map +1 -0
- package/dist/browser/cjs/src/document-model/custom/reducers/operation-example.js +58 -0
- package/dist/browser/cjs/src/document-model/custom/reducers/operation-example.js.map +1 -0
- package/dist/browser/cjs/src/document-model/custom/reducers/operation.js +123 -0
- package/dist/browser/cjs/src/document-model/custom/reducers/operation.js.map +1 -0
- package/dist/browser/cjs/src/document-model/custom/reducers/state.js +66 -0
- package/dist/browser/cjs/src/document-model/custom/reducers/state.js.map +1 -0
- package/dist/browser/cjs/src/document-model/custom/reducers/versioning.js +31 -0
- package/dist/browser/cjs/src/document-model/custom/reducers/versioning.js.map +1 -0
- package/dist/browser/cjs/src/document-model/custom/utils.js +117 -0
- package/dist/browser/cjs/src/document-model/custom/utils.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/creators.js +53 -0
- package/dist/browser/cjs/src/document-model/gen/creators.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/document-model.js +545 -0
- package/dist/browser/cjs/src/document-model/gen/document-model.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/header/creators.js +39 -0
- package/dist/browser/cjs/src/document-model/gen/header/creators.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/header/object.js +26 -0
- package/dist/browser/cjs/src/document-model/gen/header/object.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/module/creators.js +34 -0
- package/dist/browser/cjs/src/document-model/gen/module/creators.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/module/object.js +23 -0
- package/dist/browser/cjs/src/document-model/gen/module/object.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/object.js +47 -0
- package/dist/browser/cjs/src/document-model/gen/object.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/operation/creators.js +59 -0
- package/dist/browser/cjs/src/document-model/gen/operation/creators.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/operation/object.js +38 -0
- package/dist/browser/cjs/src/document-model/gen/operation/object.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/operation-error/creators.js +44 -0
- package/dist/browser/cjs/src/document-model/gen/operation-error/creators.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/operation-error/object.js +29 -0
- package/dist/browser/cjs/src/document-model/gen/operation-error/object.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/operation-example/creators.js +29 -0
- package/dist/browser/cjs/src/document-model/gen/operation-example/creators.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/operation-example/object.js +20 -0
- package/dist/browser/cjs/src/document-model/gen/operation-example/object.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/reducer.js +255 -0
- package/dist/browser/cjs/src/document-model/gen/reducer.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/schema/zod.js +449 -0
- package/dist/browser/cjs/src/document-model/gen/schema/zod.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/state/creators.js +39 -0
- package/dist/browser/cjs/src/document-model/gen/state/creators.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/state/object.js +26 -0
- package/dist/browser/cjs/src/document-model/gen/state/object.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/utils.js +75 -0
- package/dist/browser/cjs/src/document-model/gen/utils.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/versioning/creators.js +33 -0
- package/dist/browser/cjs/src/document-model/gen/versioning/creators.js.map +1 -0
- package/dist/browser/cjs/src/document-model/gen/versioning/object.js +23 -0
- package/dist/browser/cjs/src/document-model/gen/versioning/object.js.map +1 -0
- package/dist/browser/es/_virtual/_commonjsHelpers.js +7 -0
- package/dist/browser/es/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/browser/es/_virtual/browser.js +35 -0
- package/dist/browser/es/_virtual/browser.js.map +1 -0
- package/dist/browser/es/_virtual/index.js +5 -0
- package/dist/browser/es/_virtual/index.js.map +1 -0
- package/dist/browser/es/_virtual/index2.js +5 -0
- package/dist/browser/es/_virtual/index2.js.map +1 -0
- package/dist/browser/es/_virtual/index3.js +5 -0
- package/dist/browser/es/_virtual/index3.js.map +1 -0
- package/dist/browser/es/_virtual/index4.js +5 -0
- package/dist/browser/es/_virtual/index4.js.map +1 -0
- package/dist/browser/es/_virtual/index5.js +5 -0
- package/dist/browser/es/_virtual/index5.js.map +1 -0
- package/dist/browser/es/_virtual/inherits_browser.js +5 -0
- package/dist/browser/es/_virtual/inherits_browser.js.map +1 -0
- package/dist/browser/es/document-model.js +38 -16
- package/dist/browser/es/document-model.js.map +1 -0
- package/dist/browser/es/document.js +13 -12
- package/dist/browser/es/document.js.map +1 -0
- package/dist/browser/es/index.js +12 -14
- package/dist/browser/es/index.js.map +1 -0
- package/dist/browser/es/src/document/actions/creators.js +46 -0
- package/dist/browser/es/src/document/actions/creators.js.map +1 -0
- package/dist/browser/es/src/document/actions/index.js +174 -0
- package/dist/browser/es/src/document/actions/index.js.map +1 -0
- package/dist/browser/es/src/document/actions/types.js +15 -0
- package/dist/browser/es/src/document/actions/types.js.map +1 -0
- package/dist/browser/es/src/document/object.js +190 -0
- package/dist/browser/es/src/document/object.js.map +1 -0
- package/dist/browser/es/src/document/reducer.js +192 -0
- package/dist/browser/es/src/document/reducer.js.map +1 -0
- package/dist/browser/es/src/document/schema/zod.js +137 -0
- package/dist/browser/es/src/document/schema/zod.js.map +1 -0
- package/dist/browser/es/src/document/utils/base.js +220 -0
- package/dist/browser/es/src/document/utils/base.js.map +1 -0
- package/dist/browser/es/src/document/utils/document-helpers.js +324 -0
- package/dist/browser/es/src/document/utils/document-helpers.js.map +1 -0
- package/dist/browser/es/src/document/utils/file.js +135 -0
- package/dist/browser/es/src/document/utils/file.js.map +1 -0
- package/dist/browser/es/src/document/utils/index.js +33 -0
- package/dist/browser/es/src/document/utils/index.js.map +1 -0
- package/dist/browser/es/src/document/utils/validation.js +24 -0
- package/dist/browser/es/src/document/utils/validation.js.map +1 -0
- package/dist/browser/es/src/document-model/custom/reducers/header.js +26 -0
- package/dist/browser/es/src/document-model/custom/reducers/header.js.map +1 -0
- package/dist/browser/es/src/document-model/custom/reducers/module.js +46 -0
- package/dist/browser/es/src/document-model/custom/reducers/module.js.map +1 -0
- package/dist/browser/es/src/document-model/custom/reducers/operation-error.js +95 -0
- package/dist/browser/es/src/document-model/custom/reducers/operation-error.js.map +1 -0
- package/dist/browser/es/src/document-model/custom/reducers/operation-example.js +58 -0
- package/dist/browser/es/src/document-model/custom/reducers/operation-example.js.map +1 -0
- package/dist/browser/es/src/document-model/custom/reducers/operation.js +123 -0
- package/dist/browser/es/src/document-model/custom/reducers/operation.js.map +1 -0
- package/dist/browser/es/src/document-model/custom/reducers/state.js +66 -0
- package/dist/browser/es/src/document-model/custom/reducers/state.js.map +1 -0
- package/dist/browser/es/src/document-model/custom/reducers/versioning.js +31 -0
- package/dist/browser/es/src/document-model/custom/reducers/versioning.js.map +1 -0
- package/dist/browser/es/src/document-model/custom/utils.js +117 -0
- package/dist/browser/es/src/document-model/custom/utils.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/creators.js +53 -0
- package/dist/browser/es/src/document-model/gen/creators.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/document-model.js +545 -0
- package/dist/browser/es/src/document-model/gen/document-model.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/header/creators.js +39 -0
- package/dist/browser/es/src/document-model/gen/header/creators.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/header/object.js +26 -0
- package/dist/browser/es/src/document-model/gen/header/object.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/module/creators.js +34 -0
- package/dist/browser/es/src/document-model/gen/module/creators.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/module/object.js +23 -0
- package/dist/browser/es/src/document-model/gen/module/object.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/object.js +47 -0
- package/dist/browser/es/src/document-model/gen/object.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/operation/creators.js +59 -0
- package/dist/browser/es/src/document-model/gen/operation/creators.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/operation/object.js +38 -0
- package/dist/browser/es/src/document-model/gen/operation/object.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/operation-error/creators.js +44 -0
- package/dist/browser/es/src/document-model/gen/operation-error/creators.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/operation-error/object.js +29 -0
- package/dist/browser/es/src/document-model/gen/operation-error/object.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/operation-example/creators.js +29 -0
- package/dist/browser/es/src/document-model/gen/operation-example/creators.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/operation-example/object.js +20 -0
- package/dist/browser/es/src/document-model/gen/operation-example/object.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/reducer.js +255 -0
- package/dist/browser/es/src/document-model/gen/reducer.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/schema/zod.js +449 -0
- package/dist/browser/es/src/document-model/gen/schema/zod.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/state/creators.js +39 -0
- package/dist/browser/es/src/document-model/gen/state/creators.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/state/object.js +26 -0
- package/dist/browser/es/src/document-model/gen/state/object.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/utils.js +75 -0
- package/dist/browser/es/src/document-model/gen/utils.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/versioning/creators.js +33 -0
- package/dist/browser/es/src/document-model/gen/versioning/creators.js.map +1 -0
- package/dist/browser/es/src/document-model/gen/versioning/object.js +23 -0
- package/dist/browser/es/src/document-model/gen/versioning/object.js.map +1 -0
- package/dist/browser/src/document/reducer.d.ts +13 -2
- package/dist/browser/src/document/utils/base.d.ts +1 -1
- package/dist/browser/src/document/utils/document-helpers.d.ts +53 -0
- package/dist/browser/src/document/utils/index.d.ts +1 -0
- package/dist/node/cjs/_virtual/_commonjsHelpers.js +7 -0
- package/dist/node/cjs/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/node/cjs/_virtual/index.js +5 -0
- package/dist/node/cjs/_virtual/index.js.map +1 -0
- package/dist/node/cjs/document-model.js +43 -1
- package/dist/node/cjs/document-model.js.map +1 -0
- package/dist/node/cjs/document.js +15 -1
- package/dist/node/cjs/document.js.map +1 -0
- package/dist/node/cjs/index.js +14 -1
- package/dist/node/cjs/index.js.map +1 -0
- package/dist/node/cjs/src/document/actions/creators.js +46 -0
- package/dist/node/cjs/src/document/actions/creators.js.map +1 -0
- package/dist/node/cjs/src/document/actions/index.js +173 -0
- package/dist/node/cjs/src/document/actions/index.js.map +1 -0
- package/dist/node/cjs/src/document/actions/types.js +15 -0
- package/dist/node/cjs/src/document/actions/types.js.map +1 -0
- package/dist/node/cjs/src/document/object.js +190 -0
- package/dist/node/cjs/src/document/object.js.map +1 -0
- package/dist/node/cjs/src/document/reducer.js +194 -0
- package/dist/node/cjs/src/document/reducer.js.map +1 -0
- package/dist/node/cjs/src/document/schema/zod.js +137 -0
- package/dist/node/cjs/src/document/schema/zod.js.map +1 -0
- package/dist/node/cjs/src/document/utils/base.js +220 -0
- package/dist/node/cjs/src/document/utils/base.js.map +1 -0
- package/dist/node/cjs/src/document/utils/document-helpers.js +324 -0
- package/dist/node/cjs/src/document/utils/document-helpers.js.map +1 -0
- package/dist/node/cjs/src/document/utils/file.js +136 -0
- package/dist/node/cjs/src/document/utils/file.js.map +1 -0
- package/dist/node/cjs/src/document/utils/index.js +33 -0
- package/dist/node/cjs/src/document/utils/index.js.map +1 -0
- package/dist/node/cjs/src/document/utils/node.js +54 -0
- package/dist/node/cjs/src/document/utils/node.js.map +1 -0
- package/dist/node/cjs/src/document/utils/validation.js +24 -0
- package/dist/node/cjs/src/document/utils/validation.js.map +1 -0
- package/dist/node/cjs/src/document-model/custom/reducers/header.js +26 -0
- package/dist/node/cjs/src/document-model/custom/reducers/header.js.map +1 -0
- package/dist/node/cjs/src/document-model/custom/reducers/module.js +46 -0
- package/dist/node/cjs/src/document-model/custom/reducers/module.js.map +1 -0
- package/dist/node/cjs/src/document-model/custom/reducers/operation-error.js +95 -0
- package/dist/node/cjs/src/document-model/custom/reducers/operation-error.js.map +1 -0
- package/dist/node/cjs/src/document-model/custom/reducers/operation-example.js +58 -0
- package/dist/node/cjs/src/document-model/custom/reducers/operation-example.js.map +1 -0
- package/dist/node/cjs/src/document-model/custom/reducers/operation.js +123 -0
- package/dist/node/cjs/src/document-model/custom/reducers/operation.js.map +1 -0
- package/dist/node/cjs/src/document-model/custom/reducers/state.js +66 -0
- package/dist/node/cjs/src/document-model/custom/reducers/state.js.map +1 -0
- package/dist/node/cjs/src/document-model/custom/reducers/versioning.js +31 -0
- package/dist/node/cjs/src/document-model/custom/reducers/versioning.js.map +1 -0
- package/dist/node/cjs/src/document-model/custom/utils.js +117 -0
- package/dist/node/cjs/src/document-model/custom/utils.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/creators.js +53 -0
- package/dist/node/cjs/src/document-model/gen/creators.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/document-model.js +545 -0
- package/dist/node/cjs/src/document-model/gen/document-model.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/header/creators.js +41 -0
- package/dist/node/cjs/src/document-model/gen/header/creators.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/header/object.js +26 -0
- package/dist/node/cjs/src/document-model/gen/header/object.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/module/creators.js +36 -0
- package/dist/node/cjs/src/document-model/gen/module/creators.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/module/object.js +23 -0
- package/dist/node/cjs/src/document-model/gen/module/object.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/object.js +47 -0
- package/dist/node/cjs/src/document-model/gen/object.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/operation/creators.js +61 -0
- package/dist/node/cjs/src/document-model/gen/operation/creators.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/operation/object.js +38 -0
- package/dist/node/cjs/src/document-model/gen/operation/object.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/operation-error/creators.js +46 -0
- package/dist/node/cjs/src/document-model/gen/operation-error/creators.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/operation-error/object.js +29 -0
- package/dist/node/cjs/src/document-model/gen/operation-error/object.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/operation-example/creators.js +31 -0
- package/dist/node/cjs/src/document-model/gen/operation-example/creators.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/operation-example/object.js +20 -0
- package/dist/node/cjs/src/document-model/gen/operation-example/object.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/reducer.js +257 -0
- package/dist/node/cjs/src/document-model/gen/reducer.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/schema/zod.js +449 -0
- package/dist/node/cjs/src/document-model/gen/schema/zod.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/state/creators.js +41 -0
- package/dist/node/cjs/src/document-model/gen/state/creators.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/state/object.js +26 -0
- package/dist/node/cjs/src/document-model/gen/state/object.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/utils.js +75 -0
- package/dist/node/cjs/src/document-model/gen/utils.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/versioning/creators.js +35 -0
- package/dist/node/cjs/src/document-model/gen/versioning/creators.js.map +1 -0
- package/dist/node/cjs/src/document-model/gen/versioning/object.js +23 -0
- package/dist/node/cjs/src/document-model/gen/versioning/object.js.map +1 -0
- package/dist/node/es/_virtual/_commonjsHelpers.js +7 -0
- package/dist/node/es/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/node/es/_virtual/index.js +5 -0
- package/dist/node/es/_virtual/index.js.map +1 -0
- package/dist/node/es/document-model.js +37 -17
- package/dist/node/es/document-model.js.map +1 -0
- package/dist/node/es/document.js +13 -16
- package/dist/node/es/document.js.map +1 -0
- package/dist/node/es/index.js +12 -18
- package/dist/node/es/index.js.map +1 -0
- package/dist/node/es/src/document/actions/creators.js +46 -0
- package/dist/node/es/src/document/actions/creators.js.map +1 -0
- package/dist/node/es/src/document/actions/index.js +174 -0
- package/dist/node/es/src/document/actions/index.js.map +1 -0
- package/dist/node/es/src/document/actions/types.js +15 -0
- package/dist/node/es/src/document/actions/types.js.map +1 -0
- package/dist/node/es/src/document/object.js +190 -0
- package/dist/node/es/src/document/object.js.map +1 -0
- package/dist/node/es/src/document/reducer.js +194 -0
- package/dist/node/es/src/document/reducer.js.map +1 -0
- package/dist/node/es/src/document/schema/zod.js +137 -0
- package/dist/node/es/src/document/schema/zod.js.map +1 -0
- package/dist/node/es/src/document/utils/base.js +220 -0
- package/dist/node/es/src/document/utils/base.js.map +1 -0
- package/dist/node/es/src/document/utils/document-helpers.js +324 -0
- package/dist/node/es/src/document/utils/document-helpers.js.map +1 -0
- package/dist/node/es/src/document/utils/file.js +136 -0
- package/dist/node/es/src/document/utils/file.js.map +1 -0
- package/dist/node/es/src/document/utils/index.js +33 -0
- package/dist/node/es/src/document/utils/index.js.map +1 -0
- package/dist/node/es/src/document/utils/node.js +54 -0
- package/dist/node/es/src/document/utils/node.js.map +1 -0
- package/dist/node/es/src/document/utils/validation.js +24 -0
- package/dist/node/es/src/document/utils/validation.js.map +1 -0
- package/dist/node/es/src/document-model/custom/reducers/header.js +26 -0
- package/dist/node/es/src/document-model/custom/reducers/header.js.map +1 -0
- package/dist/node/es/src/document-model/custom/reducers/module.js +46 -0
- package/dist/node/es/src/document-model/custom/reducers/module.js.map +1 -0
- package/dist/node/es/src/document-model/custom/reducers/operation-error.js +95 -0
- package/dist/node/es/src/document-model/custom/reducers/operation-error.js.map +1 -0
- package/dist/node/es/src/document-model/custom/reducers/operation-example.js +58 -0
- package/dist/node/es/src/document-model/custom/reducers/operation-example.js.map +1 -0
- package/dist/node/es/src/document-model/custom/reducers/operation.js +123 -0
- package/dist/node/es/src/document-model/custom/reducers/operation.js.map +1 -0
- package/dist/node/es/src/document-model/custom/reducers/state.js +66 -0
- package/dist/node/es/src/document-model/custom/reducers/state.js.map +1 -0
- package/dist/node/es/src/document-model/custom/reducers/versioning.js +31 -0
- package/dist/node/es/src/document-model/custom/reducers/versioning.js.map +1 -0
- package/dist/node/es/src/document-model/custom/utils.js +117 -0
- package/dist/node/es/src/document-model/custom/utils.js.map +1 -0
- package/dist/node/es/src/document-model/gen/creators.js +53 -0
- package/dist/node/es/src/document-model/gen/creators.js.map +1 -0
- package/dist/node/es/src/document-model/gen/document-model.js +545 -0
- package/dist/node/es/src/document-model/gen/document-model.js.map +1 -0
- package/dist/node/es/src/document-model/gen/header/creators.js +41 -0
- package/dist/node/es/src/document-model/gen/header/creators.js.map +1 -0
- package/dist/node/es/src/document-model/gen/header/object.js +26 -0
- package/dist/node/es/src/document-model/gen/header/object.js.map +1 -0
- package/dist/node/es/src/document-model/gen/module/creators.js +36 -0
- package/dist/node/es/src/document-model/gen/module/creators.js.map +1 -0
- package/dist/node/es/src/document-model/gen/module/object.js +23 -0
- package/dist/node/es/src/document-model/gen/module/object.js.map +1 -0
- package/dist/node/es/src/document-model/gen/object.js +47 -0
- package/dist/node/es/src/document-model/gen/object.js.map +1 -0
- package/dist/node/es/src/document-model/gen/operation/creators.js +61 -0
- package/dist/node/es/src/document-model/gen/operation/creators.js.map +1 -0
- package/dist/node/es/src/document-model/gen/operation/object.js +38 -0
- package/dist/node/es/src/document-model/gen/operation/object.js.map +1 -0
- package/dist/node/es/src/document-model/gen/operation-error/creators.js +46 -0
- package/dist/node/es/src/document-model/gen/operation-error/creators.js.map +1 -0
- package/dist/node/es/src/document-model/gen/operation-error/object.js +29 -0
- package/dist/node/es/src/document-model/gen/operation-error/object.js.map +1 -0
- package/dist/node/es/src/document-model/gen/operation-example/creators.js +31 -0
- package/dist/node/es/src/document-model/gen/operation-example/creators.js.map +1 -0
- package/dist/node/es/src/document-model/gen/operation-example/object.js +20 -0
- package/dist/node/es/src/document-model/gen/operation-example/object.js.map +1 -0
- package/dist/node/es/src/document-model/gen/reducer.js +257 -0
- package/dist/node/es/src/document-model/gen/reducer.js.map +1 -0
- package/dist/node/es/src/document-model/gen/schema/zod.js +449 -0
- package/dist/node/es/src/document-model/gen/schema/zod.js.map +1 -0
- package/dist/node/es/src/document-model/gen/state/creators.js +41 -0
- package/dist/node/es/src/document-model/gen/state/creators.js.map +1 -0
- package/dist/node/es/src/document-model/gen/state/object.js +26 -0
- package/dist/node/es/src/document-model/gen/state/object.js.map +1 -0
- package/dist/node/es/src/document-model/gen/utils.js +75 -0
- package/dist/node/es/src/document-model/gen/utils.js.map +1 -0
- package/dist/node/es/src/document-model/gen/versioning/creators.js +35 -0
- package/dist/node/es/src/document-model/gen/versioning/creators.js.map +1 -0
- package/dist/node/es/src/document-model/gen/versioning/object.js +23 -0
- package/dist/node/es/src/document-model/gen/versioning/object.js.map +1 -0
- package/dist/node/src/document/reducer.d.ts +13 -2
- package/dist/node/src/document/utils/base.d.ts +1 -1
- package/dist/node/src/document/utils/document-helpers.d.ts +53 -0
- package/dist/node/src/document/utils/index.d.ts +1 -0
- package/package.json +7 -2
- package/dist/browser/cjs/internal/index-BVWyYyNE.js +0 -1
- package/dist/browser/cjs/internal/index-CnVGNZ9_.js +0 -22
- package/dist/browser/cjs/internal/object-5l5_pTNL.js +0 -25
- package/dist/browser/es/internal/index-CF0d1_Cg.js +0 -42
- package/dist/browser/es/internal/index-aS_vqu4O.js +0 -2104
- package/dist/browser/es/internal/object-BdaEhPk1.js +0 -2507
- package/dist/node/cjs/internal/index-B9gc2lPN.js +0 -1
- package/dist/node/cjs/internal/index-JtuONOcD.js +0 -22
- package/dist/node/cjs/internal/object-D6wRzEDN.js +0 -20
- package/dist/node/es/internal/index-BclkoIYP.js +0 -2108
- package/dist/node/es/internal/index-EY0PPZnJ.js +0 -42
- package/dist/node/es/internal/object-BxC3xMqY.js +0 -1405
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { createAction } from "../../../document/utils/base.js";
|
|
2
|
+
import "jszip";
|
|
3
|
+
import "../../../../node_modules/.pnpm/mime@4.0.1/node_modules/mime/dist/src/index_lite.js";
|
|
4
|
+
import "../../../../node_modules/.pnpm/sha.js@2.4.11/node_modules/sha.js/sha1.js";
|
|
5
|
+
import "../../../../node_modules/.pnpm/sha.js@2.4.11/node_modules/sha.js/sha256.js";
|
|
6
|
+
import "../../../../node_modules/.pnpm/safe-stable-stringify@2.4.3/node_modules/safe-stable-stringify/esm/wrapper.js";
|
|
7
|
+
const addChangeLogItem = (input) => createAction(
|
|
8
|
+
"ADD_CHANGE_LOG_ITEM",
|
|
9
|
+
{ ...input }
|
|
10
|
+
);
|
|
11
|
+
const updateChangeLogItem = (input) => createAction(
|
|
12
|
+
"UPDATE_CHANGE_LOG_ITEM",
|
|
13
|
+
{ ...input }
|
|
14
|
+
);
|
|
15
|
+
const deleteChangeLogItem = (input) => createAction(
|
|
16
|
+
"DELETE_CHANGE_LOG_ITEM",
|
|
17
|
+
{ ...input }
|
|
18
|
+
);
|
|
19
|
+
const reorderChangeLogItems = (input) => createAction(
|
|
20
|
+
"REORDER_CHANGE_LOG_ITEMS",
|
|
21
|
+
{ ...input }
|
|
22
|
+
);
|
|
23
|
+
const releaseNewVersion = () => createAction(
|
|
24
|
+
"RELEASE_NEW_VERSION"
|
|
25
|
+
);
|
|
26
|
+
export {
|
|
27
|
+
addChangeLogItem,
|
|
28
|
+
deleteChangeLogItem,
|
|
29
|
+
releaseNewVersion,
|
|
30
|
+
reorderChangeLogItems,
|
|
31
|
+
updateChangeLogItem
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=creators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"creators.js","sources":["../../../../../../../src/document-model/gen/versioning/creators.ts"],"sourcesContent":["import { createAction } from '../../../document/utils';\n\nimport {\n AddChangeLogItemInput,\n UpdateChangeLogItemInput,\n DeleteChangeLogItemInput,\n ReorderChangeLogItemsInput,\n} from '../types';\nimport {\n AddChangeLogItemAction,\n UpdateChangeLogItemAction,\n DeleteChangeLogItemAction,\n ReorderChangeLogItemsAction,\n ReleaseNewVersionAction,\n} from './actions';\n\nexport const addChangeLogItem = (input: AddChangeLogItemInput) =>\n createAction<AddChangeLogItemAction>(\n 'ADD_CHANGE_LOG_ITEM',\n {...input},\n );\n\nexport const updateChangeLogItem = (input: UpdateChangeLogItemInput) =>\n createAction<UpdateChangeLogItemAction>(\n 'UPDATE_CHANGE_LOG_ITEM',\n {...input},\n );\n\nexport const deleteChangeLogItem = (input: DeleteChangeLogItemInput) =>\n createAction<DeleteChangeLogItemAction>(\n 'DELETE_CHANGE_LOG_ITEM',\n {...input},\n );\n\nexport const reorderChangeLogItems = (input: ReorderChangeLogItemsInput) =>\n createAction<ReorderChangeLogItemsAction>(\n 'REORDER_CHANGE_LOG_ITEMS',\n {...input},\n );\n\n\nexport const releaseNewVersion = () =>\n createAction<ReleaseNewVersionAction>(\n 'RELEASE_NEW_VERSION',\n );\n"],"names":[],"mappings":";;;;;;AAgBa,MAAA,mBAAmB,CAAC,UAC7B;AAAA,EACI;AAAA,EACA,EAAC,GAAG,MAAK;AACb;AAES,MAAA,sBAAsB,CAAC,UAChC;AAAA,EACI;AAAA,EACA,EAAC,GAAG,MAAK;AACb;AAES,MAAA,sBAAsB,CAAC,UAChC;AAAA,EACI;AAAA,EACA,EAAC,GAAG,MAAK;AACb;AAES,MAAA,wBAAwB,CAAC,UAClC;AAAA,EACI;AAAA,EACA,EAAC,GAAG,MAAK;AACb;AAGG,MAAM,oBAAoB,MAC7B;AAAA,EACI;AACJ;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BaseDocument } from "../../../document/object.js";
|
|
2
|
+
import { addChangeLogItem, updateChangeLogItem, deleteChangeLogItem, reorderChangeLogItems, releaseNewVersion } from "./creators.js";
|
|
3
|
+
class DocumentModel_Versioning extends BaseDocument {
|
|
4
|
+
addChangeLogItem(input, options) {
|
|
5
|
+
return this.dispatch(addChangeLogItem(input), options);
|
|
6
|
+
}
|
|
7
|
+
updateChangeLogItem(input, options) {
|
|
8
|
+
return this.dispatch(updateChangeLogItem(input), options);
|
|
9
|
+
}
|
|
10
|
+
deleteChangeLogItem(input, options) {
|
|
11
|
+
return this.dispatch(deleteChangeLogItem(input), options);
|
|
12
|
+
}
|
|
13
|
+
reorderChangeLogItems(input, options) {
|
|
14
|
+
return this.dispatch(reorderChangeLogItems(input), options);
|
|
15
|
+
}
|
|
16
|
+
releaseNewVersion(options) {
|
|
17
|
+
return this.dispatch(releaseNewVersion(), options);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export {
|
|
21
|
+
DocumentModel_Versioning as default
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=object.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object.js","sources":["../../../../../../../src/document-model/gen/versioning/object.ts"],"sourcesContent":["import { BaseDocument } from '../../../document/object';\n\nimport {\n AddChangeLogItemInput,\n UpdateChangeLogItemInput,\n DeleteChangeLogItemInput,\n ReorderChangeLogItemsInput,\n DocumentModelState,\n DocumentModelLocalState,\n} from '../types';\nimport {\n addChangeLogItem,\n updateChangeLogItem,\n deleteChangeLogItem,\n reorderChangeLogItems,\n releaseNewVersion,\n} from './creators';\nimport { DocumentModelAction } from '../actions';\nimport { ReducerOptions } from '../../../document';\n\nexport default class DocumentModel_Versioning extends BaseDocument<\n DocumentModelState,\n DocumentModelAction,\n DocumentModelLocalState\n> {\n public addChangeLogItem(input: AddChangeLogItemInput, options?: ReducerOptions) {\n return this.dispatch(addChangeLogItem(input), options);\n }\n\n public updateChangeLogItem(input: UpdateChangeLogItemInput, options?: ReducerOptions) {\n return this.dispatch(updateChangeLogItem(input), options);\n }\n\n public deleteChangeLogItem(input: DeleteChangeLogItemInput, options?: ReducerOptions) {\n return this.dispatch(deleteChangeLogItem(input), options);\n }\n\n public reorderChangeLogItems(input: ReorderChangeLogItemsInput, options?: ReducerOptions) {\n return this.dispatch(reorderChangeLogItems(input), options);\n }\n\n public releaseNewVersion(options?: ReducerOptions) {\n return this.dispatch(releaseNewVersion(), options);\n }\n}\n"],"names":[],"mappings":";;AAoBA,MAAqB,iCAAiC,aAIpD;AAAA,EACS,iBAAiB,OAA8B,SAA0B;AAC5E,WAAO,KAAK,SAAS,iBAAiB,KAAK,GAAG,OAAO;AAAA,EACzD;AAAA,EAEO,oBAAoB,OAAiC,SAA0B;AAClF,WAAO,KAAK,SAAS,oBAAoB,KAAK,GAAG,OAAO;AAAA,EAC5D;AAAA,EAEO,oBAAoB,OAAiC,SAA0B;AAClF,WAAO,KAAK,SAAS,oBAAoB,KAAK,GAAG,OAAO;AAAA,EAC5D;AAAA,EAEO,sBAAsB,OAAmC,SAA0B;AACtF,WAAO,KAAK,SAAS,sBAAsB,KAAK,GAAG,OAAO;AAAA,EAC9D;AAAA,EAEO,kBAAkB,SAA0B;AAC/C,WAAO,KAAK,SAAS,kBAAkB,GAAG,OAAO;AAAA,EACrD;AACJ;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseAction } from './actions/types';
|
|
2
2
|
import { UndoRedoAction } from './schema';
|
|
3
|
-
import { Action, Document, ImmutableStateReducer, Operation, ReducerOptions } from './types';
|
|
3
|
+
import { Action, Document, ImmutableStateReducer, Operation, ReducerOptions, State } from './types';
|
|
4
4
|
import { SignalDispatch } from './signal';
|
|
5
5
|
type UndoRedoProcessResult<T, A extends Action, L> = {
|
|
6
6
|
document: Document<T, A, L>;
|
|
@@ -28,5 +28,16 @@ export declare function processUndoRedo<T, A extends Action, L>(document: Docume
|
|
|
28
28
|
* specific to the document's state.
|
|
29
29
|
* @returns The new state of the document.
|
|
30
30
|
*/
|
|
31
|
-
export declare function baseReducer<T, A extends Action, L>(document: Document<T, A, L>, action: A | BaseAction | Operation, customReducer: ImmutableStateReducer<T, A, L>, dispatch?: SignalDispatch, options?: ReducerOptions):
|
|
31
|
+
export declare function baseReducer<T, A extends Action, L>(document: Document<T, A, L>, action: A | BaseAction | Operation, customReducer: ImmutableStateReducer<T, A, L>, dispatch?: SignalDispatch, options?: ReducerOptions): {
|
|
32
|
+
name: string;
|
|
33
|
+
revision: Required<Record<import("./types").OperationScope, number>>;
|
|
34
|
+
documentType: string;
|
|
35
|
+
created: string;
|
|
36
|
+
lastModified: string;
|
|
37
|
+
state: State<T, L>;
|
|
38
|
+
attachments: import("./types").FileRegistry;
|
|
39
|
+
operations: Required<Record<import("./types").OperationScope, Operation<BaseAction | A>[]>>;
|
|
40
|
+
initialState: import("./types").ExtendedState<T, L>;
|
|
41
|
+
clipboard: Operation<BaseAction | A>[];
|
|
42
|
+
};
|
|
32
43
|
export {};
|
|
@@ -74,7 +74,7 @@ export declare function mapSkippedOperations<A extends Action>(operations: Opera
|
|
|
74
74
|
export declare function calculateSkipsLeft<A extends Action>(operations: Operation<BaseAction | A>[], currentIndex: number, skip: number): number;
|
|
75
75
|
export declare function sortOperations<A extends Action>(operations: DocumentOperations<A>): Operation<BaseAction | A>[];
|
|
76
76
|
export declare function sortMappedOperations<A extends Action>(operations: DocumentOperationsIgnoreMap<A>): MappedOperation<A>[];
|
|
77
|
-
export declare function replayOperations<T, A extends Action, L>(initialState: ExtendedState<T, L>,
|
|
77
|
+
export declare function replayOperations<T, A extends Action, L>(initialState: ExtendedState<T, L>, clearedOperations: DocumentOperations<A>, reducer: ImmutableStateReducer<T, A, L>, dispatch?: SignalDispatch, header?: DocumentHeader, documentReducer?: typeof baseReducer, skipHeaderOperations?: SkipHeaderOperations, options?: {
|
|
78
78
|
checkHashes?: boolean;
|
|
79
79
|
}): Document<T, A, L>;
|
|
80
80
|
export type SkipHeaderOperations = Partial<Record<OperationScope, number>>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Operation, OperationScope, Action, DocumentOperations } from '../types';
|
|
2
|
+
export type OperationIndex = {
|
|
3
|
+
index: number;
|
|
4
|
+
skip: number;
|
|
5
|
+
};
|
|
6
|
+
export declare enum IntegrityIssueType {
|
|
7
|
+
UNEXPECTED_INDEX = "UNEXPECTED_INDEX"
|
|
8
|
+
}
|
|
9
|
+
export declare enum IntegrityIssueSubType {
|
|
10
|
+
DUPLICATED_INDEX = "DUPLICATED_INDEX",
|
|
11
|
+
MISSING_INDEX = "MISSING_INDEX"
|
|
12
|
+
}
|
|
13
|
+
type IntegrityIssue = {
|
|
14
|
+
operation: OperationIndex;
|
|
15
|
+
issue: IntegrityIssueType;
|
|
16
|
+
category: IntegrityIssueSubType;
|
|
17
|
+
message: string;
|
|
18
|
+
};
|
|
19
|
+
type Reshuffle = (startIndex: OperationIndex, opsA: Operation[], opsB: Operation[]) => Operation[];
|
|
20
|
+
export declare function checkCleanedOperationsIntegrity(sortedOperations: Operation[]): IntegrityIssue[];
|
|
21
|
+
export declare function garbageCollect<A extends OperationIndex>(sortedOperations: A[]): A[];
|
|
22
|
+
export declare function addUndo(sortedOperations: Operation[]): Operation[];
|
|
23
|
+
export declare function sortOperations<A extends OperationIndex>(operations: A[]): A[];
|
|
24
|
+
export declare const reshuffleByTimestamp: Reshuffle;
|
|
25
|
+
export declare const reshuffleByTimestampAndIndex: Reshuffle;
|
|
26
|
+
export declare function operationsAreEqual(op1: Operation, op2: Operation): boolean;
|
|
27
|
+
export declare function attachBranch(trunk: Operation[], newBranch: Operation[]): [Operation[], Operation[]];
|
|
28
|
+
export declare function precedes(op1: Operation, op2: Operation): boolean;
|
|
29
|
+
export declare function split(sortedTargetOperations: Operation[], sortedMergeOperations: Operation[]): [Operation[], Operation[], Operation[]];
|
|
30
|
+
export declare function merge(sortedTargetOperations: Operation[], sortedMergeOperations: Operation[], reshuffle: Reshuffle): Operation[];
|
|
31
|
+
export declare function nextSkipNumber<A extends OperationIndex>(sortedOperations: A[]): number;
|
|
32
|
+
export declare const checkOperationsIntegrity: (operations: Operation[]) => IntegrityIssue[];
|
|
33
|
+
export type OperationsByScope = Partial<Record<OperationScope, Operation[]>>;
|
|
34
|
+
export declare const groupOperationsByScope: (operations: Operation[]) => OperationsByScope;
|
|
35
|
+
type PrepareOperationsResult = {
|
|
36
|
+
validOperations: Operation[];
|
|
37
|
+
invalidOperations: Operation[];
|
|
38
|
+
duplicatedOperations: Operation[];
|
|
39
|
+
integrityIssues: IntegrityIssue[];
|
|
40
|
+
};
|
|
41
|
+
export declare const prepareOperations: (operationsHistory: Operation[], newOperations: Operation[]) => PrepareOperationsResult;
|
|
42
|
+
export declare function removeExistingOperations(newOperations: Operation[], operationsHistory: Operation[]): Operation[];
|
|
43
|
+
export type SkipHeaderOperationIndex = Partial<Pick<OperationIndex, 'index'>> & Pick<OperationIndex, 'skip'>;
|
|
44
|
+
/**
|
|
45
|
+
* Skips header operations and returns the remaining operations.
|
|
46
|
+
*
|
|
47
|
+
* @param operations - The array of operations.
|
|
48
|
+
* @param skipHeaderOperation - The skip header operation index.
|
|
49
|
+
* @returns The remaining operations after skipping header operations.
|
|
50
|
+
*/
|
|
51
|
+
export declare function skipHeaderOperations<A extends OperationIndex>(operations: A[], skipHeaderOperation: SkipHeaderOperationIndex): A[];
|
|
52
|
+
export declare function grabageCollectDocumentOperations<A extends Action>(documentOperations: DocumentOperations<A>): DocumentOperations<A>;
|
|
53
|
+
export {};
|
|
@@ -2,3 +2,4 @@ export * from './base';
|
|
|
2
2
|
export { createAction, createDocument, createExtendedState, createReducer, hashDocument, hashKey, isBaseAction, mapSkippedOperations, readOnly, replayDocument, replayOperations, sortMappedOperations, sortOperations, } from './base';
|
|
3
3
|
export * from './file';
|
|
4
4
|
export * from './validation';
|
|
5
|
+
export * as documentHelpers from './document-helpers';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
function getDefaultExportFromCjs(x) {
|
|
4
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
5
|
+
}
|
|
6
|
+
exports.getDefaultExportFromCjs = getDefaultExportFromCjs;
|
|
7
|
+
//# sourceMappingURL=_commonjsHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_commonjsHelpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -1 +1,43 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const creators = require("./src/document/actions/creators.js");
|
|
4
|
+
require("immer");
|
|
5
|
+
require("./node_modules/.pnpm/safe-stable-stringify@2.4.3/node_modules/safe-stable-stringify/esm/wrapper.js");
|
|
6
|
+
require("./src/document/schema/zod.js");
|
|
7
|
+
require("jszip");
|
|
8
|
+
require("./node_modules/.pnpm/mime@4.0.1/node_modules/mime/dist/src/index_lite.js");
|
|
9
|
+
require("crypto");
|
|
10
|
+
require("fs");
|
|
11
|
+
require("https");
|
|
12
|
+
require("path");
|
|
13
|
+
const utils$1 = require("./src/document-model/custom/utils.js");
|
|
14
|
+
const documentModel = require("./src/document-model/gen/document-model.js");
|
|
15
|
+
const object = require("./src/document-model/gen/object.js");
|
|
16
|
+
const zod = require("./src/document-model/gen/schema/zod.js");
|
|
17
|
+
const creators$1 = require("./src/document-model/gen/creators.js");
|
|
18
|
+
const reducer = require("./src/document-model/gen/reducer.js");
|
|
19
|
+
const utils$2 = require("./src/document-model/gen/utils.js");
|
|
20
|
+
const Document = object.DocumentModel;
|
|
21
|
+
const utils = { ...utils$2.default, ...utils$1 };
|
|
22
|
+
const actions = { ...creators, ...creators$1 };
|
|
23
|
+
const module$1 = {
|
|
24
|
+
Document,
|
|
25
|
+
reducer: reducer.reducer,
|
|
26
|
+
actions,
|
|
27
|
+
utils,
|
|
28
|
+
documentModel: documentModel.documentModel
|
|
29
|
+
};
|
|
30
|
+
exports.validateInitialState = utils$1.validateInitialState;
|
|
31
|
+
exports.validateModule = utils$1.validateModule;
|
|
32
|
+
exports.validateModuleOperation = utils$1.validateModuleOperation;
|
|
33
|
+
exports.validateModules = utils$1.validateModules;
|
|
34
|
+
exports.validateStateSchemaName = utils$1.validateStateSchemaName;
|
|
35
|
+
exports.documentModel = documentModel.documentModel;
|
|
36
|
+
exports.DocumentModel = object.DocumentModel;
|
|
37
|
+
exports.z = zod;
|
|
38
|
+
exports.reducer = reducer.reducer;
|
|
39
|
+
exports.Document = Document;
|
|
40
|
+
exports.actions = actions;
|
|
41
|
+
exports.module = module$1;
|
|
42
|
+
exports.utils = utils;
|
|
43
|
+
//# sourceMappingURL=document-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-model.js","sources":["../../../src/document-model/index.ts"],"sourcesContent":["/**\n * This is a scaffold file meant for customization.\n * Delete the file and run the code generator again to have it reset\n */\n\nimport {\n actions as BaseActions,\n DocumentModel as _DocumentModel,\n} from '../document';\nimport * as customUtils from './custom/utils';\nimport { actions as DocumentModelActions, DocumentModel } from './gen';\nimport { documentModel } from './gen/document-model';\nimport { reducer } from './gen/reducer';\nimport {\n DocumentModelAction,\n DocumentModelLocalState,\n DocumentModelState,\n} from './gen/types';\nimport genUtils from './gen/utils';\n\nconst Document = DocumentModel;\nconst utils = { ...genUtils, ...customUtils };\nconst actions = { ...BaseActions, ...DocumentModelActions };\n\nexport const module: _DocumentModel<\n DocumentModelState,\n DocumentModelAction,\n DocumentModelLocalState,\n DocumentModel\n> = {\n Document,\n reducer,\n actions,\n utils,\n documentModel,\n};\n\nexport * from './custom/utils';\nexport * from './gen/types';\nexport { DocumentModel, Document, reducer, actions, utils, documentModel };\n"],"names":["DocumentModel","genUtils","customUtils","BaseActions","DocumentModelActions","module","reducer","documentModel"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBA,MAAM,WAAWA,OAAA;AACjB,MAAM,QAAQ,EAAE,GAAGC,iBAAU,GAAGC,QAAY;AAC5C,MAAM,UAAU,EAAE,GAAGC,UAAa,GAAGC,WAAqB;AAEnD,MAAMC,WAKT;AAAA,EACA;AAAA,EAAA,SACAC,QAAA;AAAA,EACA;AAAA,EACA;AAAA,EAAA,eACAC,cAAA;AACJ;;;;;;;;;;;;;;"}
|
|
@@ -1 +1,15 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const creators = require("./src/document/actions/creators.js");
|
|
4
|
+
const object = require("./src/document/object.js");
|
|
5
|
+
const reducer = require("./src/document/reducer.js");
|
|
6
|
+
const zod = require("./src/document/schema/zod.js");
|
|
7
|
+
const index = require("./src/document/utils/index.js");
|
|
8
|
+
exports.actions = creators;
|
|
9
|
+
exports.BaseDocument = object.BaseDocument;
|
|
10
|
+
exports.applyMixins = object.applyMixins;
|
|
11
|
+
exports.baseReducer = reducer.baseReducer;
|
|
12
|
+
exports.processUndoRedo = reducer.processUndoRedo;
|
|
13
|
+
exports.z = zod;
|
|
14
|
+
exports.utils = index;
|
|
15
|
+
//# sourceMappingURL=document.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
|
package/dist/node/cjs/index.js
CHANGED
|
@@ -1 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const document = require("./document.js");
|
|
4
|
+
const documentModel = require("./document-model.js");
|
|
5
|
+
const DocumentModels = {
|
|
6
|
+
"powerhouse/document": document,
|
|
7
|
+
"powerhouse/document-model": documentModel
|
|
8
|
+
};
|
|
9
|
+
const index = { Document: document, DocumentModel: documentModel };
|
|
10
|
+
exports.Document = document;
|
|
11
|
+
exports.DocumentModel = documentModel;
|
|
12
|
+
exports.DocumentModels = DocumentModels;
|
|
13
|
+
exports.default = index;
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":["import * as Document from './document';\nimport * as DocumentModel from './document-model';\n\n/**\n * This module exports all the public types, functions, and objects\n * from the document module. It provides an easy-to-use interface\n * for managing documents, and can be used in any Redux-based\n * application. This module exports:\n * - All action creators for the base document actions.\n * - The Document object, which is used to for creating and\n * manipulating documents in an object-oriented way.\n * - The baseReducer function, which is a reducer for managing\n * documents\n * - Various utility functions to be used by Document Models.\n */\nexport { Document };\nexport { DocumentModel };\n\nexport const DocumentModels = {\n 'powerhouse/document': Document,\n 'powerhouse/document-model': DocumentModel,\n};\n\nexport default { Document, DocumentModel };\n"],"names":["Document","DocumentModel"],"mappings":";;;;AAkBO,MAAM,iBAAiB;AAAA,EAC1B,uBAAuBA;AAAAA,EACvB,6BAA6BC;AACjC;AAEA,MAAA,QAAe,EAAED,UAAAA,UAAUC,eAAAA,cAAc;;;;;"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const zod = require("../schema/zod.js");
|
|
4
|
+
const base = require("../utils/base.js");
|
|
5
|
+
const setName = (name) => base.createAction(
|
|
6
|
+
"SET_NAME",
|
|
7
|
+
name,
|
|
8
|
+
void 0,
|
|
9
|
+
zod.SetNameActionInputSchema,
|
|
10
|
+
void 0
|
|
11
|
+
);
|
|
12
|
+
const undo = (skip = 1, scope = "global") => base.createAction(
|
|
13
|
+
"UNDO",
|
|
14
|
+
skip,
|
|
15
|
+
void 0,
|
|
16
|
+
zod.UndoActionInputSchema,
|
|
17
|
+
scope
|
|
18
|
+
);
|
|
19
|
+
const redo = (count = 1, scope = "global") => base.createAction(
|
|
20
|
+
"REDO",
|
|
21
|
+
count,
|
|
22
|
+
void 0,
|
|
23
|
+
zod.RedoActionInputSchema,
|
|
24
|
+
scope
|
|
25
|
+
);
|
|
26
|
+
const prune = (start, end, scope = "global") => base.createAction(
|
|
27
|
+
"PRUNE",
|
|
28
|
+
{ start, end },
|
|
29
|
+
void 0,
|
|
30
|
+
zod.PruneActionInputSchema,
|
|
31
|
+
scope
|
|
32
|
+
);
|
|
33
|
+
const loadState = (state, operations) => base.createAction(
|
|
34
|
+
"LOAD_STATE",
|
|
35
|
+
{ state, operations },
|
|
36
|
+
void 0,
|
|
37
|
+
zod.LoadStateActionInputSchema
|
|
38
|
+
);
|
|
39
|
+
const noop = (scope = "global") => base.createAction("NOOP", {}, void 0, void 0, scope);
|
|
40
|
+
exports.loadState = loadState;
|
|
41
|
+
exports.noop = noop;
|
|
42
|
+
exports.prune = prune;
|
|
43
|
+
exports.redo = redo;
|
|
44
|
+
exports.setName = setName;
|
|
45
|
+
exports.undo = undo;
|
|
46
|
+
//# sourceMappingURL=creators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"creators.js","sources":["../../../../../../src/document/actions/creators.ts"],"sourcesContent":["import { ExtendedState, OperationScope, z } from '../types';\nimport { createAction } from '../utils/base';\nimport {\n LoadStateAction,\n PruneAction,\n RedoAction,\n SetNameAction,\n UndoAction,\n NOOPAction,\n} from './types';\n\n/**\n * Changes the name of the document.\n *\n * @param name - The name to be set in the document.\n * @category Actions\n */\nexport const setName = (name: string) =>\n createAction<SetNameAction>(\n 'SET_NAME',\n name,\n undefined,\n z.SetNameActionInputSchema,\n undefined,\n );\n\n/**\n * Cancels the last `count` operations.\n *\n * @param count - Number of operations to cancel\n * @category Actions\n */\nexport const undo = (skip = 1, scope: OperationScope = 'global') =>\n createAction<UndoAction>(\n 'UNDO',\n skip,\n undefined,\n z.UndoActionInputSchema,\n scope,\n );\n\n/**\n * Cancels the last `count` {@link undo | UNDO} operations.\n *\n * @param count - Number of UNDO operations to cancel\n * @category Actions\n */\nexport const redo = (count = 1, scope: OperationScope = 'global') =>\n createAction<RedoAction>(\n 'REDO',\n count,\n undefined,\n z.RedoActionInputSchema,\n scope,\n );\n\n/**\n * Joins multiple operations into a single {@link loadState | LOAD_STATE} operation.\n *\n * @remarks\n * Useful to keep operations history smaller. Operations to prune are selected by index,\n * similar to the {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice | slice} method in Arrays.\n *\n * @param start - Index of the first operation to prune\n * @param end - Index of the last operation to prune\n * @category Actions\n */\nexport const prune = (\n start?: number | undefined,\n end?: number | undefined,\n scope: OperationScope = 'global',\n) =>\n createAction<PruneAction>(\n 'PRUNE',\n { start, end },\n undefined,\n z.PruneActionInputSchema,\n scope,\n );\n\n/**\n * Replaces the state of the document.\n *\n * @remarks\n * This action shouldn't be used directly. It is dispatched by the {@link prune} action.\n *\n * @param state - State to be set in the document.\n * @param operations - Number of operations that were removed from the previous state.\n * @category Actions\n */\nexport const loadState = <S, T>(\n state: Pick<ExtendedState<S, T>, 'state' | 'name'>,\n operations: number,\n) =>\n createAction<LoadStateAction>(\n 'LOAD_STATE',\n { state, operations },\n undefined,\n z.LoadStateActionInputSchema,\n );\n\nexport const noop = (scope: OperationScope = 'global') =>\n createAction<NOOPAction>('NOOP', {}, undefined, undefined, scope);\n"],"names":["createAction","z.SetNameActionInputSchema","z.UndoActionInputSchema","z.RedoActionInputSchema","z.PruneActionInputSchema","z.LoadStateActionInputSchema"],"mappings":";;;;AAiBa,MAAA,UAAU,CAAC,SACpBA,KAAA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACAC,IAAE;AAAA,EACF;AACJ;AAQG,MAAM,OAAO,CAAC,OAAO,GAAG,QAAwB,aACnDD,KAAA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACAE,IAAE;AAAA,EACF;AACJ;AAQG,MAAM,OAAO,CAAC,QAAQ,GAAG,QAAwB,aACpDF,KAAA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACAG,IAAE;AAAA,EACF;AACJ;AAaG,MAAM,QAAQ,CACjB,OACA,KACA,QAAwB,aAExBH,KAAA;AAAA,EACI;AAAA,EACA,EAAE,OAAO,IAAI;AAAA,EACb;AAAA,EACAI,IAAE;AAAA,EACF;AACJ;AAYS,MAAA,YAAY,CACrB,OACA,eAEAJ,KAAA;AAAA,EACI;AAAA,EACA,EAAE,OAAO,WAAW;AAAA,EACpB;AAAA,EACAK,IAAE;AACN;AAES,MAAA,OAAO,CAAC,QAAwB,aACzCL,KAAA,aAAyB,QAAQ,CAAA,GAAI,QAAW,QAAW,KAAK;;;;;;;"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const immer = require("immer");
|
|
4
|
+
const base = require("../utils/base.js");
|
|
5
|
+
const creators = require("./creators.js");
|
|
6
|
+
function setNameOperation(document, name) {
|
|
7
|
+
return { ...document, name };
|
|
8
|
+
}
|
|
9
|
+
function undoOperation(document, action, skip) {
|
|
10
|
+
const { scope, input } = action;
|
|
11
|
+
const defaultResult = {
|
|
12
|
+
document,
|
|
13
|
+
action,
|
|
14
|
+
skip
|
|
15
|
+
};
|
|
16
|
+
return immer.produce(defaultResult, (draft) => {
|
|
17
|
+
if (draft.document.operations[scope].length < 1) {
|
|
18
|
+
throw new Error(
|
|
19
|
+
`Cannot undo: no operations in history for scope "${scope}"`
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
if (input < 1) {
|
|
23
|
+
throw new Error(
|
|
24
|
+
`Invalid UNDO action: input value must be greater than 0`
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
if (draft.skip > 0) {
|
|
28
|
+
throw new Error(
|
|
29
|
+
`Cannot undo: skip value from reducer cannot be used with UNDO action`
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
const lastOperation = draft.document.operations[scope].at(-1);
|
|
33
|
+
const isLatestOpNOOP = lastOperation && lastOperation.type === "NOOP" && lastOperation.skip > 0;
|
|
34
|
+
draft.skip += input;
|
|
35
|
+
if (isLatestOpNOOP) {
|
|
36
|
+
draft.skip += lastOperation.skip;
|
|
37
|
+
const preLastOperation = draft.document.operations[scope][draft.document.operations[scope].length - 2];
|
|
38
|
+
if (preLastOperation && lastOperation.index - preLastOperation.index === 1) {
|
|
39
|
+
draft.document.operations[scope].pop();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (draft.document.operations[scope].length < draft.skip) {
|
|
43
|
+
throw new Error(
|
|
44
|
+
`Cannot undo: you can't undo more operations than the ones in the scope history`
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
const operationsLastIndex = draft.document.operations[scope].length - 1;
|
|
48
|
+
let skippedOpsLeft = input;
|
|
49
|
+
let index = isLatestOpNOOP ? operationsLastIndex - lastOperation.skip : operationsLastIndex;
|
|
50
|
+
while (skippedOpsLeft > 0 && index >= 0) {
|
|
51
|
+
const op = draft.document.operations[scope][index];
|
|
52
|
+
if (!op) {
|
|
53
|
+
skippedOpsLeft--;
|
|
54
|
+
index--;
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
if (op.type === "NOOP" && op.skip > 0) {
|
|
58
|
+
index = index - (op.skip + 1);
|
|
59
|
+
draft.skip += op.skip + 1;
|
|
60
|
+
} else {
|
|
61
|
+
draft.document.clipboard.push({ ...op });
|
|
62
|
+
skippedOpsLeft--;
|
|
63
|
+
index--;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
draft.action = creators.noop(scope);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
function redoOperation(document, action, skip) {
|
|
70
|
+
const { scope, input } = action;
|
|
71
|
+
const defaultResult = {
|
|
72
|
+
document,
|
|
73
|
+
action,
|
|
74
|
+
skip
|
|
75
|
+
};
|
|
76
|
+
return immer.produce(defaultResult, (draft) => {
|
|
77
|
+
if (draft.skip > 0) {
|
|
78
|
+
throw new Error(
|
|
79
|
+
`Cannot redo: skip value from reducer cannot be used with REDO action`
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
if (input > 1) {
|
|
83
|
+
throw new Error(
|
|
84
|
+
`Cannot redo: you can only redo one operation at a time`
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
if (input < 1) {
|
|
88
|
+
throw new Error(`Invalid REDO action: invalid redo input value`);
|
|
89
|
+
}
|
|
90
|
+
if (draft.document.clipboard.length < 1) {
|
|
91
|
+
throw new Error(`Cannot redo: no operations in the clipboard`);
|
|
92
|
+
}
|
|
93
|
+
const operationIndex = draft.document.clipboard.findLastIndex(
|
|
94
|
+
(op) => op.scope === scope
|
|
95
|
+
);
|
|
96
|
+
if (operationIndex < 0) {
|
|
97
|
+
throw new Error(
|
|
98
|
+
`Cannot redo: no operations in clipboard for scope "${scope}"`
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
const operation = draft.document.clipboard.splice(operationIndex, 1)[0];
|
|
102
|
+
draft.action = immer.castDraft({
|
|
103
|
+
type: operation.type,
|
|
104
|
+
scope: operation.scope,
|
|
105
|
+
input: operation.input
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
function pruneOperation(document, action, wrappedReducer) {
|
|
110
|
+
const { scope } = action;
|
|
111
|
+
const operations = document.operations[scope];
|
|
112
|
+
let {
|
|
113
|
+
input: { start, end }
|
|
114
|
+
} = action;
|
|
115
|
+
start = start || 0;
|
|
116
|
+
end = end || operations.length;
|
|
117
|
+
const actionsToPrune = operations.slice(start, end);
|
|
118
|
+
const actionsToKeepStart = operations.slice(0, start);
|
|
119
|
+
const actionsToKeepEnd = operations.slice(end);
|
|
120
|
+
const newDocument = base.replayOperations(
|
|
121
|
+
document.initialState,
|
|
122
|
+
{
|
|
123
|
+
...document.operations,
|
|
124
|
+
[scope]: actionsToKeepStart.concat(actionsToPrune)
|
|
125
|
+
},
|
|
126
|
+
wrappedReducer
|
|
127
|
+
);
|
|
128
|
+
const { name, state: newState } = newDocument;
|
|
129
|
+
const loadStateIndex = actionsToKeepStart.length;
|
|
130
|
+
const loadStateTimestamp = actionsToKeepStart.length ? actionsToKeepStart[actionsToKeepStart.length - 1].timestamp : actionsToKeepEnd.length ? actionsToKeepEnd[0].timestamp : (/* @__PURE__ */ new Date()).toISOString();
|
|
131
|
+
return base.replayOperations(
|
|
132
|
+
document.initialState,
|
|
133
|
+
{
|
|
134
|
+
...document.operations,
|
|
135
|
+
[scope]: [
|
|
136
|
+
...actionsToKeepStart,
|
|
137
|
+
{
|
|
138
|
+
...creators.loadState(
|
|
139
|
+
{ name, state: newState },
|
|
140
|
+
actionsToPrune.length
|
|
141
|
+
),
|
|
142
|
+
timestamp: loadStateTimestamp,
|
|
143
|
+
index: loadStateIndex,
|
|
144
|
+
hash: base.hashDocument({ state: newState }, "global")
|
|
145
|
+
},
|
|
146
|
+
...actionsToKeepEnd.map((action2, index) => ({
|
|
147
|
+
...action2,
|
|
148
|
+
index: loadStateIndex + index + 1
|
|
149
|
+
}))
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
wrappedReducer
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
function loadStateOperation(oldDocument, newDocument) {
|
|
156
|
+
return {
|
|
157
|
+
...oldDocument,
|
|
158
|
+
name: newDocument.name,
|
|
159
|
+
state: newDocument.state ?? { global: {}, local: {} }
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
exports.loadState = creators.loadState;
|
|
163
|
+
exports.noop = creators.noop;
|
|
164
|
+
exports.prune = creators.prune;
|
|
165
|
+
exports.redo = creators.redo;
|
|
166
|
+
exports.setName = creators.setName;
|
|
167
|
+
exports.undo = creators.undo;
|
|
168
|
+
exports.loadStateOperation = loadStateOperation;
|
|
169
|
+
exports.pruneOperation = pruneOperation;
|
|
170
|
+
exports.redoOperation = redoOperation;
|
|
171
|
+
exports.setNameOperation = setNameOperation;
|
|
172
|
+
exports.undoOperation = undoOperation;
|
|
173
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../src/document/actions/index.ts"],"sourcesContent":["import { castDraft, produce } from 'immer';\nimport {\n Action,\n Document,\n ImmutableStateReducer,\n Operation,\n PruneAction,\n RedoAction,\n State,\n UndoAction,\n UndoRedoProcessResult,\n} from '../types';\nimport { hashDocument, replayOperations } from '../utils/base';\nimport { loadState, noop } from './creators';\n\n// updates the name of the document\nexport function setNameOperation<T>(document: T, name: string): T {\n return { ...document, name };\n}\n\nexport function noopOperation<T, A extends Action, L>(\n document: Document<T, A, L>,\n action: Partial<Operation>,\n skip: number,\n) {\n const defaultValues = {\n skip,\n document,\n };\n\n const { scope } = action;\n\n if (!scope) return defaultValues;\n if (action.skip === undefined) return defaultValues;\n\n return produce(defaultValues, draft => {\n const lastOperation = draft.document.operations[scope].at(-1);\n\n if (action.skip && action.skip > 0) {\n draft.skip = action.skip;\n }\n\n if (\n lastOperation &&\n lastOperation.type === 'NOOP' &&\n action.index === lastOperation.index &&\n draft.skip > lastOperation.skip\n ) {\n draft.document.operations[scope].pop();\n }\n });\n}\n\nexport function undoOperation<T, A extends Action, L>(\n document: Document<T, A, L>,\n action: UndoAction,\n skip: number,\n): UndoRedoProcessResult<T, A, L> {\n // const scope = action.scope;\n const { scope, input } = action;\n\n const defaultResult: UndoRedoProcessResult<T, A, L> = {\n document,\n action,\n skip,\n };\n\n return produce(defaultResult, draft => {\n if (draft.document.operations[scope].length < 1) {\n throw new Error(\n `Cannot undo: no operations in history for scope \"${scope}\"`,\n );\n }\n\n if (input < 1) {\n throw new Error(\n `Invalid UNDO action: input value must be greater than 0`,\n );\n }\n\n if (draft.skip > 0) {\n throw new Error(\n `Cannot undo: skip value from reducer cannot be used with UNDO action`,\n );\n }\n\n const lastOperation = draft.document.operations[scope].at(-1);\n\n const isLatestOpNOOP =\n lastOperation &&\n lastOperation.type === 'NOOP' &&\n lastOperation.skip > 0;\n\n draft.skip += input;\n\n if (isLatestOpNOOP) {\n draft.skip += lastOperation.skip;\n\n const preLastOperation =\n draft.document.operations[scope][\n draft.document.operations[scope].length - 2\n ];\n if (\n preLastOperation &&\n lastOperation.index - preLastOperation.index === 1\n ) {\n draft.document.operations[scope].pop();\n }\n }\n\n if (draft.document.operations[scope].length < draft.skip) {\n throw new Error(\n `Cannot undo: you can't undo more operations than the ones in the scope history`,\n );\n }\n\n const operationsLastIndex = draft.document.operations[scope].length - 1;\n let skippedOpsLeft = input;\n let index = isLatestOpNOOP\n ? operationsLastIndex - lastOperation.skip\n : operationsLastIndex;\n\n while (skippedOpsLeft > 0 && index >= 0) {\n const op = draft.document.operations[scope][index];\n\n if (!op) {\n skippedOpsLeft--;\n index--;\n continue;\n }\n\n if (op.type === 'NOOP' && op.skip > 0) {\n index = index - (op.skip + 1);\n draft.skip += op.skip + 1;\n } else {\n draft.document.clipboard.push({ ...op });\n skippedOpsLeft--;\n index--;\n }\n }\n\n draft.action = noop(scope);\n });\n}\n\nexport function redoOperation<T, A extends Action, L>(\n document: Document<T, A, L>,\n action: RedoAction,\n skip: number,\n): UndoRedoProcessResult<T, A, L> {\n const { scope, input } = action;\n\n const defaultResult: UndoRedoProcessResult<T, A, L> = {\n document,\n action,\n skip,\n };\n\n return produce(defaultResult, draft => {\n if (draft.skip > 0) {\n throw new Error(\n `Cannot redo: skip value from reducer cannot be used with REDO action`,\n );\n }\n\n if (input > 1) {\n throw new Error(\n `Cannot redo: you can only redo one operation at a time`,\n );\n }\n\n if (input < 1) {\n throw new Error(`Invalid REDO action: invalid redo input value`);\n }\n\n if (draft.document.clipboard.length < 1) {\n throw new Error(`Cannot redo: no operations in the clipboard`);\n }\n\n const operationIndex = draft.document.clipboard.findLastIndex(\n op => op.scope === scope,\n );\n if (operationIndex < 0) {\n throw new Error(\n `Cannot redo: no operations in clipboard for scope \"${scope}\"`,\n );\n }\n\n const operation = draft.document.clipboard.splice(operationIndex, 1)[0];\n\n draft.action = castDraft({\n type: operation.type,\n scope: operation.scope,\n input: operation.input,\n } as A);\n });\n}\n\nexport function pruneOperation<T, A extends Action, L>(\n document: Document<T, A, L>,\n action: PruneAction,\n wrappedReducer: ImmutableStateReducer<T, A, L>,\n): Document<T, A, L> {\n const { scope } = action;\n const operations = document.operations[scope];\n\n let {\n input: { start, end },\n } = action;\n start = start || 0;\n end = end || operations.length;\n\n const actionsToPrune = operations.slice(start, end);\n const actionsToKeepStart = operations.slice(0, start);\n const actionsToKeepEnd = operations.slice(end);\n\n // runs all operations from the initial state to\n // the end of prune to get name and data\n const newDocument = replayOperations(\n document.initialState,\n {\n ...document.operations,\n [scope]: actionsToKeepStart.concat(actionsToPrune),\n },\n wrappedReducer,\n );\n\n const { name, state: newState } = newDocument;\n\n // the new operation has the index of the first pruned operation\n const loadStateIndex = actionsToKeepStart.length;\n\n // if and operation is pruned then reuses the timestamp of the last operation\n // if not then assigns the timestamp of the following unpruned operation\n const loadStateTimestamp = actionsToKeepStart.length\n ? actionsToKeepStart[actionsToKeepStart.length - 1].timestamp\n : actionsToKeepEnd.length\n ? actionsToKeepEnd[0].timestamp\n : new Date().toISOString();\n\n // replaces pruned operations with LOAD_STATE\n return replayOperations(\n document.initialState,\n {\n ...document.operations,\n [scope]: [\n ...actionsToKeepStart,\n {\n ...loadState(\n { name, state: newState },\n actionsToPrune.length,\n ),\n timestamp: loadStateTimestamp,\n index: loadStateIndex,\n hash: hashDocument({ state: newState }, 'global'),\n },\n ...actionsToKeepEnd\n // updates the index for all the following operations\n .map((action, index) => ({\n ...action,\n index: loadStateIndex + index + 1,\n })),\n ],\n },\n wrappedReducer,\n );\n}\n\nexport function loadStateOperation<T, A extends Action, L>(\n oldDocument: Document<T, A, L>,\n newDocument: { name: string; state?: State<T, L> },\n): Document<T, A, L> {\n return {\n ...oldDocument,\n name: newDocument.name,\n state: newDocument.state ?? ({ global: {}, local: {} } as State<T, L>),\n };\n}\n\nexport * from './creators';\n"],"names":["produce","noop","castDraft","replayOperations","loadState","hashDocument","action"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const SET_NAME = "SET_NAME";
|
|
4
|
+
const UNDO = "UNDO";
|
|
5
|
+
const REDO = "REDO";
|
|
6
|
+
const PRUNE = "PRUNE";
|
|
7
|
+
const LOAD_STATE = "LOAD_STATE";
|
|
8
|
+
const NOOP = "NOOP";
|
|
9
|
+
exports.LOAD_STATE = LOAD_STATE;
|
|
10
|
+
exports.NOOP = NOOP;
|
|
11
|
+
exports.PRUNE = PRUNE;
|
|
12
|
+
exports.REDO = REDO;
|
|
13
|
+
exports.SET_NAME = SET_NAME;
|
|
14
|
+
exports.UNDO = UNDO;
|
|
15
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../../../src/document/actions/types.ts"],"sourcesContent":["import type { Action } from '../types';\nimport type {\n LoadStateActionInput,\n PruneActionInput,\n RedoAction as _RedoAction,\n SetNameAction as _SetNameAction,\n UndoAction as _UndoAction,\n} from '../schema/types';\n\nexport const SET_NAME = 'SET_NAME';\nexport const UNDO = 'UNDO';\nexport const REDO = 'REDO';\nexport const PRUNE = 'PRUNE';\nexport const LOAD_STATE = 'LOAD_STATE';\nexport const NOOP = 'NOOP';\n\nexport type LoadStateAction = Action<'LOAD_STATE', LoadStateActionInput>;\nexport type PruneAction = Action<'PRUNE', PruneActionInput>;\nexport type RedoAction = Action<'REDO', _RedoAction['input']>;\nexport type SetNameAction = Action<'SET_NAME', _SetNameAction['input']>;\nexport type UndoAction = Action<'UNDO', _UndoAction['input']>;\nexport type NOOPAction = Action<'NOOP'>;\n\nexport type BaseAction =\n | LoadStateAction\n | PruneAction\n | RedoAction\n | SetNameAction\n | UndoAction\n | NOOPAction;\n"],"names":[],"mappings":";;AASO,MAAM,WAAW;AACjB,MAAM,OAAO;AACb,MAAM,OAAO;AACb,MAAM,QAAQ;AACd,MAAM,aAAa;AACnB,MAAM,OAAO;;;;;;;"}
|