document-model 1.0.55 → 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-C_OFq7P5.js +0 -22
- package/dist/browser/cjs/internal/index-Dwhv4k_6.js +0 -1
- package/dist/browser/cjs/internal/object-CeLE3akL.js +0 -25
- package/dist/browser/es/internal/index-DvHnaqeu.js +0 -2104
- package/dist/browser/es/internal/index-Xcvn-MUq.js +0 -42
- package/dist/browser/es/internal/object-BDWVt0Zy.js +0 -2504
- package/dist/node/cjs/internal/index-Bi9yeV3W.js +0 -1
- package/dist/node/cjs/internal/index-GZsLKtHl.js +0 -22
- package/dist/node/cjs/internal/object-CnhDksx1.js +0 -20
- package/dist/node/es/internal/index-B6iEYnbQ.js +0 -42
- package/dist/node/es/internal/index-Chx4C-Xl.js +0 -2108
- package/dist/node/es/internal/object-CnV5hY_A.js +0 -1402
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => {
|
|
4
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
+
return value;
|
|
6
|
+
};
|
|
7
|
+
import "immer";
|
|
8
|
+
import { readOnly } from "./utils/base.js";
|
|
9
|
+
import { setName, undo, redo, prune, loadState } from "./actions/creators.js";
|
|
10
|
+
import { saveToFile, loadFromFile } from "./utils/file.js";
|
|
11
|
+
import "../../node_modules/.pnpm/safe-stable-stringify@2.4.3/node_modules/safe-stable-stringify/esm/wrapper.js";
|
|
12
|
+
class BaseDocument {
|
|
13
|
+
/**
|
|
14
|
+
* Constructs a BaseDocument instance with an initial state.
|
|
15
|
+
* @param reducer - The reducer function that updates the state.
|
|
16
|
+
* @param document - The initial state of the document.
|
|
17
|
+
*/
|
|
18
|
+
constructor(reducer, document, signalDispatch) {
|
|
19
|
+
__publicField(this, "_document");
|
|
20
|
+
__publicField(this, "_reducer");
|
|
21
|
+
__publicField(this, "_signalDispatch");
|
|
22
|
+
this._reducer = reducer;
|
|
23
|
+
this._document = document;
|
|
24
|
+
this._signalDispatch = signalDispatch;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Dispatches an action to update the state of the document.
|
|
28
|
+
* @param action - The action to dispatch.
|
|
29
|
+
* @returns The Document instance.
|
|
30
|
+
*/
|
|
31
|
+
dispatch(action, options) {
|
|
32
|
+
this._document = this._reducer(
|
|
33
|
+
this._document,
|
|
34
|
+
action,
|
|
35
|
+
this._signalDispatch,
|
|
36
|
+
options
|
|
37
|
+
);
|
|
38
|
+
return this;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Saves the state of the document to a file.
|
|
42
|
+
* @param path - The file path where the state should be saved.
|
|
43
|
+
* @param extension - The file extension to use when saving the state.
|
|
44
|
+
* @returns The file path where the state was saved.
|
|
45
|
+
*/
|
|
46
|
+
saveToFile(path, extension, name) {
|
|
47
|
+
return saveToFile(this._document, path, extension, name);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Loads the state of the document from a file.
|
|
51
|
+
* @param path - The file path where the state is stored.
|
|
52
|
+
*/
|
|
53
|
+
async loadFromFile(path) {
|
|
54
|
+
this._document = await loadFromFile(path, this._reducer);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Loads the state of the document from a file and returns it.
|
|
58
|
+
* @param path - The file path where the state is stored.
|
|
59
|
+
* @param reducer - The reducer function that updates the state.
|
|
60
|
+
* @returns The state of the document.
|
|
61
|
+
*/
|
|
62
|
+
static async stateFromFile(path, reducer) {
|
|
63
|
+
const state = await loadFromFile(path, reducer);
|
|
64
|
+
return state;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Gets the current state of the document.
|
|
68
|
+
*/
|
|
69
|
+
get state() {
|
|
70
|
+
return readOnly(this._document.state);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Gets the list of operations performed on the document.
|
|
74
|
+
*/
|
|
75
|
+
get operations() {
|
|
76
|
+
return readOnly(this._document.operations);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Gets the name of the document.
|
|
80
|
+
*/
|
|
81
|
+
get name() {
|
|
82
|
+
return this._document.name;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Gets the type of document.
|
|
86
|
+
*/
|
|
87
|
+
get documentType() {
|
|
88
|
+
return this._document.documentType;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Gets the timestamp of the date the document was created.
|
|
92
|
+
*/
|
|
93
|
+
get created() {
|
|
94
|
+
return this._document.created;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Gets the timestamp of the date the document was last modified.
|
|
98
|
+
*/
|
|
99
|
+
get lastModified() {
|
|
100
|
+
return this._document.lastModified;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Gets the global revision number of the document.
|
|
104
|
+
*/
|
|
105
|
+
get revision() {
|
|
106
|
+
return this._document.revision.global;
|
|
107
|
+
}
|
|
108
|
+
getRevision(scope) {
|
|
109
|
+
return this._document.revision[scope];
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Gets the initial state of the document.
|
|
113
|
+
*/
|
|
114
|
+
get initialState() {
|
|
115
|
+
return readOnly(this._document.initialState);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Returns the current document as an object
|
|
119
|
+
*/
|
|
120
|
+
toDocument() {
|
|
121
|
+
return readOnly(this._document);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Gets the attachment associated with the given key.
|
|
125
|
+
* @param attachment - The key of the attachment to retrieve.
|
|
126
|
+
*/
|
|
127
|
+
getAttachment(attachment) {
|
|
128
|
+
return this._document.attachments[attachment];
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Sets the name of the document.
|
|
132
|
+
* @param name - The new name of the document.
|
|
133
|
+
*/
|
|
134
|
+
setName(name) {
|
|
135
|
+
this.dispatch(setName(name));
|
|
136
|
+
return this;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Reverts a number of actions from the document.
|
|
140
|
+
* @param count - The number of actions to revert.
|
|
141
|
+
*/
|
|
142
|
+
undo(count) {
|
|
143
|
+
this.dispatch(undo(count));
|
|
144
|
+
return this;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Reapplies a number of actions to the document.
|
|
148
|
+
* @param count - The number of actions to reapply.
|
|
149
|
+
*/
|
|
150
|
+
redo(count) {
|
|
151
|
+
this.dispatch(redo(count));
|
|
152
|
+
return this;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Removes a range of operations from the document.
|
|
156
|
+
* @param start - The starting index of the range to remove.
|
|
157
|
+
* @param end - The ending index of the range to remove.
|
|
158
|
+
*/
|
|
159
|
+
prune(start, end) {
|
|
160
|
+
this.dispatch(prune(start, end));
|
|
161
|
+
return this;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Loads a document state and a set of operations.
|
|
165
|
+
* @param state - The state to load.
|
|
166
|
+
* @param operations - The operations to apply to the document.
|
|
167
|
+
*/
|
|
168
|
+
loadState(state, operations) {
|
|
169
|
+
this.dispatch(loadState(state, operations));
|
|
170
|
+
return this;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
function applyMixins(derivedCtor, constructors) {
|
|
174
|
+
constructors.forEach((baseCtor) => {
|
|
175
|
+
Object.getOwnPropertyNames(baseCtor.prototype).forEach((name) => {
|
|
176
|
+
Object.defineProperty(
|
|
177
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
178
|
+
derivedCtor.prototype,
|
|
179
|
+
name,
|
|
180
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access
|
|
181
|
+
Object.getOwnPropertyDescriptor(baseCtor.prototype, name) || /* @__PURE__ */ Object.create(null)
|
|
182
|
+
);
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
export {
|
|
187
|
+
BaseDocument,
|
|
188
|
+
applyMixins
|
|
189
|
+
};
|
|
190
|
+
//# sourceMappingURL=object.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object.js","sources":["../../../../../src/document/object.ts"],"sourcesContent":["import { loadState, prune, redo, setName, undo } from './actions';\nimport type { BaseAction } from './actions/types';\nimport type { SignalDispatch } from './signal';\nimport type {\n Action,\n AttachmentRef,\n Document,\n ExtendedState,\n OperationScope,\n Reducer,\n ReducerOptions,\n} from './types';\nimport { loadFromFile, readOnly, saveToFile } from './utils';\n\n/**\n * This is an abstract class representing a document and provides methods\n * for creating and manipulating documents.\n * @typeparam T - The type of data stored in the document.\n * @typeparam A - The type of action the document can take.\n */\nexport abstract class BaseDocument<T, A extends Action, L = unknown> {\n protected _document: Document<T, A, L>;\n private _reducer: Reducer<T, A, L>;\n private _signalDispatch?: SignalDispatch;\n\n /**\n * Constructs a BaseDocument instance with an initial state.\n * @param reducer - The reducer function that updates the state.\n * @param document - The initial state of the document.\n */\n constructor(\n reducer: Reducer<T, A, L>,\n document: Document<T, A, L>,\n signalDispatch?: SignalDispatch,\n ) {\n this._reducer = reducer;\n this._document = document;\n this._signalDispatch = signalDispatch;\n }\n\n /**\n * Dispatches an action to update the state of the document.\n * @param action - The action to dispatch.\n * @returns The Document instance.\n */\n protected dispatch(action: A | BaseAction, options?: ReducerOptions) {\n this._document = this._reducer(\n this._document,\n action,\n this._signalDispatch,\n options,\n );\n return this;\n }\n\n /**\n * Saves the state of the document to a file.\n * @param path - The file path where the state should be saved.\n * @param extension - The file extension to use when saving the state.\n * @returns The file path where the state was saved.\n */\n protected saveToFile(path: string, extension: string, name?: string) {\n return saveToFile(this._document, path, extension, name);\n }\n\n /**\n * Loads the state of the document from a file.\n * @param path - The file path where the state is stored.\n */\n async loadFromFile(path: string) {\n this._document = await loadFromFile<T, A, L>(path, this._reducer);\n }\n\n /**\n * Loads the state of the document from a file and returns it.\n * @param path - The file path where the state is stored.\n * @param reducer - The reducer function that updates the state.\n * @returns The state of the document.\n */\n protected static async stateFromFile<T, A extends Action, L>(\n path: string,\n reducer: Reducer<T, A, L>,\n ) {\n const state = await loadFromFile<T, A, L>(path, reducer);\n return state;\n }\n\n /**\n * Gets the current state of the document.\n */\n get state() {\n return readOnly(this._document.state);\n }\n\n /**\n * Gets the list of operations performed on the document.\n */\n get operations() {\n return readOnly(this._document.operations);\n }\n\n /**\n * Gets the name of the document.\n */\n get name() {\n return this._document.name;\n }\n\n /**\n * Gets the type of document.\n */\n get documentType() {\n return this._document.documentType;\n }\n\n /**\n * Gets the timestamp of the date the document was created.\n */\n get created() {\n return this._document.created;\n }\n\n /**\n * Gets the timestamp of the date the document was last modified.\n */\n get lastModified() {\n return this._document.lastModified;\n }\n\n /**\n * Gets the global revision number of the document.\n */\n get revision() {\n return this._document.revision.global;\n }\n\n getRevision(scope: OperationScope) {\n return this._document.revision[scope];\n }\n\n /**\n * Gets the initial state of the document.\n */\n get initialState() {\n return readOnly(this._document.initialState);\n }\n\n /**\n * Returns the current document as an object\n */\n public toDocument() {\n return readOnly(this._document);\n }\n\n /**\n * Gets the attachment associated with the given key.\n * @param attachment - The key of the attachment to retrieve.\n */\n public getAttachment(attachment: AttachmentRef) {\n return this._document.attachments[attachment];\n }\n\n /**\n * Sets the name of the document.\n * @param name - The new name of the document.\n */\n public setName(name: string) {\n this.dispatch(setName(name));\n return this;\n }\n\n /**\n * Reverts a number of actions from the document.\n * @param count - The number of actions to revert.\n */\n public undo(count: number) {\n this.dispatch(undo(count));\n return this;\n }\n\n /**\n * Reapplies a number of actions to the document.\n * @param count - The number of actions to reapply.\n */\n public redo(count: number) {\n this.dispatch(redo(count));\n return this;\n }\n /**\n * Removes a range of operations from the document.\n * @param start - The starting index of the range to remove.\n * @param end - The ending index of the range to remove.\n */\n public prune(start?: number | undefined, end?: number | undefined) {\n this.dispatch(prune(start, end));\n return this;\n }\n\n /**\n * Loads a document state and a set of operations.\n * @param state - The state to load.\n * @param operations - The operations to apply to the document.\n */\n public loadState(\n state: Pick<ExtendedState<T, L>, 'state' | 'name'>,\n operations: number,\n ) {\n this.dispatch(loadState(state, operations));\n return this;\n }\n}\n/**\n * Applies multiple mixins to a base class.\n * Used to have separate mixins to group methods by actions.\n *\n * @remarks\n * {@link https://www.typescriptlang.org/docs/handbook/mixins.html#alternative-pattern}\n *\n * @param derivedCtor - The class to apply the mixins to.\n * @param constructors - The constructors of the mixins.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function applyMixins(derivedCtor: any, constructors: any[]) {\n constructors.forEach(baseCtor => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {\n Object.defineProperty(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n derivedCtor.prototype,\n name,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n Object.getOwnPropertyDescriptor(baseCtor.prototype, name) ||\n Object.create(null),\n );\n });\n });\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { produce, castDraft } from "immer";
|
|
2
|
+
import { redoOperation, undoOperation, loadStateOperation, pruneOperation, setNameOperation } from "./actions/index.js";
|
|
3
|
+
import { REDO, UNDO, PRUNE, LOAD_STATE, SET_NAME } from "./actions/types.js";
|
|
4
|
+
import { BaseActionSchema } from "./schema/zod.js";
|
|
5
|
+
import { isBaseAction, hashDocument, replayOperations } from "./utils/base.js";
|
|
6
|
+
import "jszip";
|
|
7
|
+
import "../../node_modules/.pnpm/mime@4.0.1/node_modules/mime/dist/src/index_lite.js";
|
|
8
|
+
import "crypto";
|
|
9
|
+
import "fs";
|
|
10
|
+
import "https";
|
|
11
|
+
import "path";
|
|
12
|
+
import { grabageCollectDocumentOperations, skipHeaderOperations } from "./utils/document-helpers.js";
|
|
13
|
+
function getNextRevision(document, action) {
|
|
14
|
+
let latestOperation;
|
|
15
|
+
if ("index" in action) {
|
|
16
|
+
latestOperation = { ...action };
|
|
17
|
+
} else {
|
|
18
|
+
latestOperation = document.operations[action.scope].at(-1);
|
|
19
|
+
}
|
|
20
|
+
return ((latestOperation == null ? void 0 : latestOperation.index) ?? -1) + 1;
|
|
21
|
+
}
|
|
22
|
+
function updateHeader(document, action) {
|
|
23
|
+
return {
|
|
24
|
+
...document,
|
|
25
|
+
revision: {
|
|
26
|
+
...document.revision,
|
|
27
|
+
[action.scope]: getNextRevision(document, action)
|
|
28
|
+
},
|
|
29
|
+
lastModified: (/* @__PURE__ */ new Date()).toISOString()
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function updateOperations(document, action, skip = 0) {
|
|
33
|
+
if ([UNDO, REDO, PRUNE].includes(action.type)) {
|
|
34
|
+
return document;
|
|
35
|
+
}
|
|
36
|
+
const { scope } = action;
|
|
37
|
+
const operations = document.operations[scope].slice(
|
|
38
|
+
0,
|
|
39
|
+
document.revision[scope]
|
|
40
|
+
);
|
|
41
|
+
const latestOperation = [...operations].pop();
|
|
42
|
+
let nextIndex = ((latestOperation == null ? void 0 : latestOperation.index) ?? -1) + 1;
|
|
43
|
+
if ("index" in action) {
|
|
44
|
+
if (action.index - skip > nextIndex) {
|
|
45
|
+
throw new Error(
|
|
46
|
+
`Missing operations: expected ${nextIndex} with skip 0 or equivalent, got index ${action.index} with skip ${skip}`
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
nextIndex = action.index;
|
|
50
|
+
}
|
|
51
|
+
operations.push({
|
|
52
|
+
...action,
|
|
53
|
+
index: nextIndex,
|
|
54
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
55
|
+
hash: "",
|
|
56
|
+
scope,
|
|
57
|
+
skip,
|
|
58
|
+
error: void 0
|
|
59
|
+
});
|
|
60
|
+
return {
|
|
61
|
+
...document,
|
|
62
|
+
operations: { ...document.operations, [scope]: operations }
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function updateDocument(document, action, skip = 0) {
|
|
66
|
+
let newDocument = updateOperations(document, action, skip);
|
|
67
|
+
newDocument = updateHeader(newDocument, action);
|
|
68
|
+
return newDocument;
|
|
69
|
+
}
|
|
70
|
+
function _baseReducer(document, action, wrappedReducer) {
|
|
71
|
+
BaseActionSchema().parse(action);
|
|
72
|
+
switch (action.type) {
|
|
73
|
+
case SET_NAME:
|
|
74
|
+
return setNameOperation(document, action.input);
|
|
75
|
+
case PRUNE:
|
|
76
|
+
return pruneOperation(document, action, wrappedReducer);
|
|
77
|
+
case LOAD_STATE:
|
|
78
|
+
return loadStateOperation(document, action.input.state);
|
|
79
|
+
default:
|
|
80
|
+
return document;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function processUndoRedo(document, action, skip) {
|
|
84
|
+
switch (action.type) {
|
|
85
|
+
case UNDO:
|
|
86
|
+
return undoOperation(document, action, skip);
|
|
87
|
+
case REDO:
|
|
88
|
+
return redoOperation(document, action, skip);
|
|
89
|
+
default:
|
|
90
|
+
return { document, action, skip };
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function processSkipOperation(document, action, customReducer, skipValue) {
|
|
94
|
+
const scope = action.scope;
|
|
95
|
+
const latestOperation = document.operations[scope].at(-1);
|
|
96
|
+
if (!latestOperation)
|
|
97
|
+
return document;
|
|
98
|
+
const documentOperations = grabageCollectDocumentOperations(
|
|
99
|
+
{
|
|
100
|
+
...document.operations,
|
|
101
|
+
[scope]: skipHeaderOperations(
|
|
102
|
+
document.operations[scope],
|
|
103
|
+
latestOperation
|
|
104
|
+
)
|
|
105
|
+
}
|
|
106
|
+
);
|
|
107
|
+
const { state } = replayOperations(
|
|
108
|
+
document.initialState,
|
|
109
|
+
documentOperations,
|
|
110
|
+
customReducer,
|
|
111
|
+
void 0,
|
|
112
|
+
void 0,
|
|
113
|
+
void 0
|
|
114
|
+
);
|
|
115
|
+
return {
|
|
116
|
+
...document,
|
|
117
|
+
state,
|
|
118
|
+
operations: grabageCollectDocumentOperations({
|
|
119
|
+
...document.operations
|
|
120
|
+
})
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
function baseReducer(document, action, customReducer, dispatch, options = {}) {
|
|
124
|
+
const { skip, ignoreSkipOperations = false, reuseHash = false } = options;
|
|
125
|
+
const _action = { ...action };
|
|
126
|
+
const skipValue = skip || 0;
|
|
127
|
+
let newDocument = { ...document };
|
|
128
|
+
const shouldProcessSkipOperation = !ignoreSkipOperations && (skipValue > 0 || "index" in _action && _action.skip > 0);
|
|
129
|
+
if (isBaseAction(_action)) {
|
|
130
|
+
newDocument = _baseReducer(newDocument, _action, customReducer);
|
|
131
|
+
}
|
|
132
|
+
newDocument = updateDocument(newDocument, _action, skipValue);
|
|
133
|
+
if (shouldProcessSkipOperation) {
|
|
134
|
+
newDocument = processSkipOperation(
|
|
135
|
+
newDocument,
|
|
136
|
+
_action,
|
|
137
|
+
customReducer
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
newDocument = produce(newDocument, (draft) => {
|
|
141
|
+
try {
|
|
142
|
+
const returnedDraft = customReducer(
|
|
143
|
+
draft.state,
|
|
144
|
+
_action,
|
|
145
|
+
dispatch
|
|
146
|
+
);
|
|
147
|
+
if (returnedDraft) {
|
|
148
|
+
return castDraft({
|
|
149
|
+
...newDocument,
|
|
150
|
+
// clipboard: [...clipboardValue],
|
|
151
|
+
state: returnedDraft
|
|
152
|
+
});
|
|
153
|
+
} else {
|
|
154
|
+
}
|
|
155
|
+
} catch (error) {
|
|
156
|
+
const lastOperationIndex = newDocument.operations[_action.scope].length - 1;
|
|
157
|
+
draft.operations[_action.scope][lastOperationIndex].error = error.message;
|
|
158
|
+
draft.operations[_action.scope][lastOperationIndex].skip = 0;
|
|
159
|
+
if (shouldProcessSkipOperation) {
|
|
160
|
+
draft.state = castDraft({ ...document.state });
|
|
161
|
+
draft.operations = castDraft({
|
|
162
|
+
...document.operations,
|
|
163
|
+
[_action.scope]: [
|
|
164
|
+
...document.operations[_action.scope],
|
|
165
|
+
{
|
|
166
|
+
...draft.operations[_action.scope][lastOperationIndex]
|
|
167
|
+
}
|
|
168
|
+
]
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
return produce(newDocument, (draft) => {
|
|
174
|
+
if ([UNDO, REDO, PRUNE].includes(_action.type)) {
|
|
175
|
+
return draft;
|
|
176
|
+
}
|
|
177
|
+
const scope = _action.scope || "global";
|
|
178
|
+
const hash = reuseHash && Object.prototype.hasOwnProperty.call(_action, "hash") ? _action.hash : hashDocument(draft, scope);
|
|
179
|
+
draft.operations[scope][draft.operations[scope].length - 1].hash = hash;
|
|
180
|
+
if (!isBaseAction(_action) && _action.attachments) {
|
|
181
|
+
_action.attachments.forEach((attachment) => {
|
|
182
|
+
const { hash: hash2, ...file } = attachment;
|
|
183
|
+
draft.attachments[hash2] = {
|
|
184
|
+
...file
|
|
185
|
+
};
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
export {
|
|
191
|
+
baseReducer,
|
|
192
|
+
processUndoRedo
|
|
193
|
+
};
|
|
194
|
+
//# sourceMappingURL=reducer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reducer.js","sources":["../../../../../src/document/reducer.ts"],"sourcesContent":["import { castDraft, produce } from 'immer';\nimport {\n loadStateOperation,\n noopOperation,\n pruneOperation,\n redoOperation,\n setNameOperation,\n undoOperation,\n} from './actions';\nimport {\n BaseAction,\n LOAD_STATE,\n PRUNE,\n REDO,\n SET_NAME,\n UNDO,\n} from './actions/types';\nimport { UndoRedoAction, z } from './schema';\nimport {\n Action,\n Document,\n ImmutableStateReducer,\n Operation,\n ReducerOptions,\n State,\n} from './types';\nimport {\n isBaseAction,\n isUndoRedo,\n hashDocument,\n replayOperations,\n isNoopOperation,\n calculateSkipsLeft,\n} from './utils/base';\nimport { SignalDispatch } from './signal';\nimport { documentHelpers } from './utils';\nimport {\n OperationIndex,\n SkipHeaderOperationIndex,\n} from './utils/document-helpers';\n\n/**\n * Gets the next revision number based on the provided action.\n *\n * @param state The current state of the document.\n * @param action The action being applied to the document.\n * @returns The next revision number.\n */\nfunction getNextRevision(\n document: Document,\n action: Action | Operation,\n): number {\n let latestOperation: Operation | undefined;\n\n if ('index' in action) {\n latestOperation = { ...action };\n } else {\n latestOperation = document.operations[action.scope].at(-1);\n }\n\n return (latestOperation?.index ?? -1) + 1;\n}\n\n/**\n * Updates the document header with the latest revision number and\n * date of last modification.\n *\n * @param state The current state of the document.\n * @param action The action being applied to the document.\n * @returns The updated document state.\n */\nfunction updateHeader<T extends Document>(document: T, action: Action): T {\n return {\n ...document,\n revision: {\n ...document.revision,\n [action.scope]: getNextRevision(document, action),\n },\n lastModified: new Date().toISOString(),\n };\n}\n\n/**\n * Updates the operations history of the document based on the provided action.\n *\n * @param state The current state of the document.\n * @param action The action being applied to the document.\n * @returns The updated document state.\n */\nfunction updateOperations<T extends Document>(\n document: T,\n action: Action | Operation,\n skip = 0,\n): T {\n // UNDO, REDO and PRUNE are meta operations\n // that alter the operations history themselves\n if ([UNDO, REDO, PRUNE].includes(action.type)) {\n return document;\n }\n\n const { scope } = action;\n\n // removes undone operations from history if there\n // is a new operation after an UNDO\n const operations = document.operations[scope].slice(\n 0,\n document.revision[scope],\n );\n\n const latestOperation = [...operations].pop();\n let nextIndex = (latestOperation?.index ?? -1) + 1;\n\n if ('index' in action) {\n if (action.index - skip > nextIndex) {\n throw new Error(\n `Missing operations: expected ${nextIndex} with skip 0 or equivalent, got index ${action.index} with skip ${skip}`,\n );\n }\n\n nextIndex = action.index;\n }\n\n // adds the operation to its scope operations\n operations.push({\n ...action,\n index: nextIndex,\n timestamp: new Date().toISOString(),\n hash: '',\n scope,\n skip,\n error: undefined,\n });\n\n // adds the action to the operations history with\n // the latest index and current timestamp\n return {\n ...document,\n operations: { ...document.operations, [scope]: operations },\n };\n}\n\n/**\n * Updates the document state based on the provided action.\n *\n * @param state The current state of the document.\n * @param action The action being applied to the document.\n * @returns The updated document state.\n */\nfunction updateDocument<T extends Document>(\n document: T,\n action: Action,\n skip = 0,\n) {\n let newDocument = updateOperations(document, action, skip);\n newDocument = updateHeader(newDocument, action);\n return newDocument;\n}\n\n/**\n * The base document reducer function that wraps a custom reducer function.\n *\n * @param state The current state of the document.\n * @param action The action being applied to the document.\n * @param wrappedReducer The custom reducer function being wrapped by the base reducer.\n * @returns The updated document state.\n */\nfunction _baseReducer<T, A extends Action, L>(\n document: Document<T, A, L>,\n action: BaseAction,\n wrappedReducer: ImmutableStateReducer<T, A, L>,\n): Document<T, A, L> {\n // throws if action is not valid base action\n z.BaseActionSchema().parse(action);\n\n switch (action.type) {\n case SET_NAME:\n return setNameOperation(document, action.input);\n case PRUNE:\n return pruneOperation(document, action, wrappedReducer);\n case LOAD_STATE:\n return loadStateOperation(document, action.input.state);\n default:\n return document;\n }\n}\n\ntype UndoRedoProcessResult<T, A extends Action, L> = {\n document: Document<T, A, L>;\n action: A | BaseAction;\n skip: number;\n};\n\n/**\n * Processes an UNDO or REDO action.\n *\n * @param document The current state of the document.\n * @param action The action being applied to the document.\n * @param skip The number of operations to skip before applying the action.\n * @returns The updated document, calculated skip value and transformed action (if apply).\n */\nexport function processUndoRedo<T, A extends Action, L>(\n document: Document<T, A, L>,\n action: UndoRedoAction,\n skip: number,\n): UndoRedoProcessResult<T, A, L> {\n switch (action.type) {\n case UNDO:\n return undoOperation(document, action, skip);\n case REDO:\n return redoOperation(document, action, skip);\n default:\n return { document, action, skip };\n }\n}\n\n/**\n * Processes a skip operation on a document.\n *\n * @template T - The type of the document state.\n * @template A - The type of the document actions.\n * @template L - The type of the document labels.\n * @param {Document<T, A, L>} document - The document to process the skip operation on.\n * @param {A | BaseAction | Operation} action - The action or operation to process.\n * @param {ImmutableStateReducer<T, A, L>} customReducer - The custom reducer function for the document state.\n * @param {number} skipValue - The value to skip.\n * @returns {Document<T, A, L>} - The updated document after processing the skip operation.\n */\nfunction processSkipOperation<T, A extends Action, L>(\n document: Document<T, A, L>,\n action: A | BaseAction | Operation,\n customReducer: ImmutableStateReducer<T, A, L>,\n skipValue: number,\n): Document<T, A, L> {\n const scope = action.scope;\n\n const latestOperation = document.operations[scope].at(-1);\n\n if (!latestOperation) return document;\n\n const documentOperations = documentHelpers.grabageCollectDocumentOperations(\n {\n ...document.operations,\n [scope]: documentHelpers.skipHeaderOperations(\n document.operations[scope],\n latestOperation,\n ),\n },\n );\n\n const { state } = replayOperations(\n document.initialState,\n documentOperations,\n customReducer,\n undefined,\n undefined,\n undefined,\n );\n\n return {\n ...document,\n state,\n operations: documentHelpers.grabageCollectDocumentOperations({\n ...document.operations,\n }),\n };\n}\n\n/**\n * Base document reducer that wraps a custom document reducer and handles\n * document-level actions such as undo, redo, prune, and set name.\n *\n * @template T - The type of the state of the custom reducer.\n * @template A - The type of the actions of the custom reducer.\n * @param state - The current state of the document.\n * @param action - The action object to apply to the state.\n * @param customReducer - The custom reducer that implements the application logic\n * specific to the document's state.\n * @returns The new state of the document.\n */\nexport function baseReducer<T, A extends Action, L>(\n document: Document<T, A, L>,\n action: A | BaseAction | Operation,\n customReducer: ImmutableStateReducer<T, A, L>,\n dispatch?: SignalDispatch,\n options: ReducerOptions = {},\n) {\n const { skip, ignoreSkipOperations = false, reuseHash = false } = options;\n\n const _action = { ...action };\n const skipValue = skip || 0;\n let newDocument = { ...document };\n // let clipboard = [...document.clipboard];\n\n const shouldProcessSkipOperation =\n !ignoreSkipOperations &&\n (skipValue > 0 || ('index' in _action && _action.skip > 0));\n\n // ignore undo redo for now\n\n // if (isUndoRedo(_action)) {\n // const {\n // skip: calculatedSkip,\n // action: transformedAction,\n // document: processedDocument,\n // } = processUndoRedo(document, _action, skipValue);\n\n // _action = transformedAction;\n // skipValue = calculatedSkip;\n // newDocument = processedDocument;\n // clipboard = [...newDocument.clipboard];\n // }\n\n // if the action is one the base document actions (SET_NAME, UNDO, REDO, PRUNE)\n // then runs the base reducer first\n if (isBaseAction(_action)) {\n newDocument = _baseReducer(newDocument, _action, customReducer);\n }\n\n // updates the document revision number, last modified date\n // and operation history\n newDocument = updateDocument(newDocument, _action, skipValue);\n\n if (shouldProcessSkipOperation) {\n newDocument = processSkipOperation(\n newDocument,\n _action,\n customReducer,\n skipValue,\n );\n }\n\n // wraps the custom reducer with Immer to avoid\n // mutation bugs and allow writing reducers with\n // mutating code\n newDocument = produce(newDocument, draft => {\n // the reducer runs on a immutable version of\n // provided state\n try {\n const returnedDraft = customReducer(\n draft.state,\n _action as A,\n dispatch,\n );\n\n // const clipboardValue = isUndoRedo(action) ? [...clipboard] : [];\n\n // if the reducer creates a new state object instead\n // of mutating the draft then returns the new state\n if (returnedDraft) {\n // casts new state as draft to comply with typescript\n return castDraft<Document<T, A, L>>({\n ...newDocument,\n // clipboard: [...clipboardValue],\n state: returnedDraft,\n });\n } else {\n // draft.clipboard = castDraft([...clipboardValue]);\n }\n } catch (error) {\n // if the reducer throws an error then we should keep the previous state (before replayOperations)\n // and remove skip number from action/operation\n const lastOperationIndex =\n newDocument.operations[_action.scope].length - 1;\n draft.operations[_action.scope][lastOperationIndex].error = (\n error as Error\n ).message;\n\n draft.operations[_action.scope][lastOperationIndex].skip = 0;\n\n if (shouldProcessSkipOperation) {\n draft.state = castDraft<State<T, L>>({ ...document.state });\n draft.operations = castDraft({\n ...document.operations,\n [_action.scope]: [\n ...document.operations[_action.scope],\n {\n ...draft.operations[_action.scope][\n lastOperationIndex\n ],\n },\n ],\n });\n }\n }\n });\n\n // updates the document history\n return produce(newDocument, draft => {\n // meta operations are not added to the operations history\n if ([UNDO, REDO, PRUNE].includes(_action.type)) {\n return draft;\n }\n\n // if reuseHash is true, checks if the action has\n // an hash and uses it instead of generating it\n const scope = _action.scope || 'global';\n const hash =\n reuseHash && Object.prototype.hasOwnProperty.call(_action, 'hash')\n ? (_action as Operation).hash\n : hashDocument(draft, scope);\n\n // updates the last operation with the hash of the resulting state\n draft.operations[scope][draft.operations[scope].length - 1].hash = hash;\n\n // if the action has attachments then adds them to the document\n if (!isBaseAction(_action) && _action.attachments) {\n _action.attachments.forEach(attachment => {\n const { hash, ...file } = attachment;\n draft.attachments[hash] = {\n ...file,\n };\n });\n }\n });\n}\n"],"names":["z.BaseActionSchema","documentHelpers.grabageCollectDocumentOperations","documentHelpers.skipHeaderOperations","hash"],"mappings":"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"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const isDefinedNonNullAny = (v) => v !== void 0 && v !== null;
|
|
3
|
+
const definedNonNullAnySchema = z.any().refine((v) => isDefinedNonNullAny(v));
|
|
4
|
+
const Load_StateSchema = z.enum(["LOAD_STATE"]);
|
|
5
|
+
const PruneSchema = z.enum(["PRUNE"]);
|
|
6
|
+
const RedoSchema = z.enum(["REDO"]);
|
|
7
|
+
const Set_NameSchema = z.enum(["SET_NAME"]);
|
|
8
|
+
const UndoSchema = z.enum(["UNDO"]);
|
|
9
|
+
function ActionSchema() {
|
|
10
|
+
return z.object({
|
|
11
|
+
__typename: z.literal("Action").optional(),
|
|
12
|
+
type: z.string()
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
function OperationScopeSchema() {
|
|
16
|
+
return z.literal("global").or(z.literal("local"));
|
|
17
|
+
}
|
|
18
|
+
function BaseActionSchema() {
|
|
19
|
+
return z.union([
|
|
20
|
+
LoadStateActionSchema(),
|
|
21
|
+
PruneActionSchema(),
|
|
22
|
+
RedoActionSchema(),
|
|
23
|
+
SetNameActionSchema(),
|
|
24
|
+
UndoActionSchema()
|
|
25
|
+
]);
|
|
26
|
+
}
|
|
27
|
+
function DocumentFileSchema() {
|
|
28
|
+
return z.object({
|
|
29
|
+
__typename: z.literal("DocumentFile").optional(),
|
|
30
|
+
data: z.string(),
|
|
31
|
+
extension: z.string().nullable(),
|
|
32
|
+
fileName: z.string().nullable(),
|
|
33
|
+
mimeType: z.string()
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
function LoadStateActionSchema() {
|
|
37
|
+
return z.object({
|
|
38
|
+
input: z.lazy(() => LoadStateActionInputSchema()),
|
|
39
|
+
type: Load_StateSchema,
|
|
40
|
+
scope: OperationScopeSchema()
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function LoadStateActionInputSchema() {
|
|
44
|
+
return z.object({
|
|
45
|
+
operations: z.number(),
|
|
46
|
+
state: z.lazy(() => LoadStateActionStateInputSchema())
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function LoadStateActionStateInputSchema() {
|
|
50
|
+
return z.object({
|
|
51
|
+
data: z.unknown().nullish(),
|
|
52
|
+
name: z.string()
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function OperationSchema() {
|
|
56
|
+
return z.object({
|
|
57
|
+
__typename: z.literal("Operation").optional(),
|
|
58
|
+
hash: z.string(),
|
|
59
|
+
index: z.number(),
|
|
60
|
+
timestamp: z.string().datetime(),
|
|
61
|
+
type: z.string()
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
function PruneActionSchema() {
|
|
65
|
+
return z.object({
|
|
66
|
+
input: z.lazy(() => PruneActionInputSchema()),
|
|
67
|
+
type: PruneSchema,
|
|
68
|
+
scope: OperationScopeSchema()
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
function PruneActionInputSchema() {
|
|
72
|
+
return z.object({
|
|
73
|
+
end: z.number().nullish(),
|
|
74
|
+
start: z.number().nullish()
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
const RedoActionInputSchema = z.number;
|
|
78
|
+
function RedoActionSchema() {
|
|
79
|
+
return z.object({
|
|
80
|
+
input: RedoActionInputSchema(),
|
|
81
|
+
type: RedoSchema,
|
|
82
|
+
scope: OperationScopeSchema()
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
const SetNameActionInputSchema = z.string;
|
|
86
|
+
function SetNameActionSchema() {
|
|
87
|
+
return z.object({
|
|
88
|
+
input: SetNameActionInputSchema(),
|
|
89
|
+
type: Set_NameSchema,
|
|
90
|
+
scope: z.literal("global")
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
function SetNameOperationSchema() {
|
|
94
|
+
return z.object({
|
|
95
|
+
__typename: z.literal("SetNameOperation").optional(),
|
|
96
|
+
hash: z.string(),
|
|
97
|
+
index: z.number(),
|
|
98
|
+
input: z.string(),
|
|
99
|
+
timestamp: z.string().datetime(),
|
|
100
|
+
type: z.string()
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
const UndoActionInputSchema = z.number;
|
|
104
|
+
function UndoActionSchema() {
|
|
105
|
+
return z.object({
|
|
106
|
+
input: UndoActionInputSchema(),
|
|
107
|
+
type: UndoSchema,
|
|
108
|
+
scope: OperationScopeSchema()
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
export {
|
|
112
|
+
ActionSchema,
|
|
113
|
+
BaseActionSchema,
|
|
114
|
+
DocumentFileSchema,
|
|
115
|
+
LoadStateActionInputSchema,
|
|
116
|
+
LoadStateActionSchema,
|
|
117
|
+
LoadStateActionStateInputSchema,
|
|
118
|
+
Load_StateSchema,
|
|
119
|
+
OperationSchema,
|
|
120
|
+
OperationScopeSchema,
|
|
121
|
+
PruneActionInputSchema,
|
|
122
|
+
PruneActionSchema,
|
|
123
|
+
PruneSchema,
|
|
124
|
+
RedoActionInputSchema,
|
|
125
|
+
RedoActionSchema,
|
|
126
|
+
RedoSchema,
|
|
127
|
+
SetNameActionInputSchema,
|
|
128
|
+
SetNameActionSchema,
|
|
129
|
+
SetNameOperationSchema,
|
|
130
|
+
Set_NameSchema,
|
|
131
|
+
UndoActionInputSchema,
|
|
132
|
+
UndoActionSchema,
|
|
133
|
+
UndoSchema,
|
|
134
|
+
definedNonNullAnySchema,
|
|
135
|
+
isDefinedNonNullAny
|
|
136
|
+
};
|
|
137
|
+
//# sourceMappingURL=zod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod.js","sources":["../../../../../../src/document/schema/zod.ts"],"sourcesContent":["import { z } from 'zod';\nimport {\n Action,\n DocumentFile,\n Load_State,\n LoadStateAction,\n LoadStateActionInput,\n LoadStateActionStateInput,\n Operation,\n Prune,\n PruneAction,\n PruneActionInput,\n Redo,\n RedoAction,\n Set_Name,\n SetNameAction,\n SetNameOperation,\n Undo,\n UndoAction,\n} from '.';\nimport { OperationScope } from '../types';\n\ntype Properties<T> = Required<{\n [K in keyof T]: z.ZodType<T[K], any, T[K]>;\n}>;\n\n// eslint-disable-next-line @typescript-eslint/ban-types\ntype definedNonNullAny = {};\n\nexport const isDefinedNonNullAny = (v: any): v is definedNonNullAny =>\n v !== undefined && v !== null;\n\nexport const definedNonNullAnySchema = z\n .any()\n .refine(v => isDefinedNonNullAny(v));\n\nexport const Load_StateSchema = z.enum(['LOAD_STATE']);\n\nexport const PruneSchema = z.enum(['PRUNE']);\n\nexport const RedoSchema = z.enum(['REDO']);\n\nexport const Set_NameSchema = z.enum(['SET_NAME']);\n\nexport const UndoSchema = z.enum(['UNDO']);\n\nexport function ActionSchema(): z.ZodObject<Properties<Action>> {\n return z.object({\n __typename: z.literal('Action').optional(),\n type: z.string(),\n });\n}\n\nexport function OperationScopeSchema(): z.ZodType<OperationScope> {\n return z.literal('global').or(z.literal('local'));\n}\n\nexport function BaseActionSchema() {\n return z.union([\n LoadStateActionSchema(),\n PruneActionSchema(),\n RedoActionSchema(),\n SetNameActionSchema(),\n UndoActionSchema(),\n ]);\n}\n\nexport function DocumentFileSchema(): z.ZodObject<Properties<DocumentFile>> {\n return z.object({\n __typename: z.literal('DocumentFile').optional(),\n data: z.string(),\n extension: z.string().nullable(),\n fileName: z.string().nullable(),\n mimeType: z.string(),\n });\n}\n\nexport function LoadStateActionSchema(): z.ZodObject<\n Properties<LoadStateAction>\n> {\n return z.object({\n input: z.lazy(() => LoadStateActionInputSchema()),\n type: Load_StateSchema,\n scope: OperationScopeSchema(),\n });\n}\n\nexport function LoadStateActionInputSchema(): z.ZodObject<\n Properties<LoadStateActionInput>\n> {\n return z.object({\n operations: z.number(),\n state: z.lazy(() => LoadStateActionStateInputSchema()),\n });\n}\n\nexport function LoadStateActionStateInputSchema(): z.ZodObject<\n Properties<LoadStateActionStateInput>\n> {\n return z.object({\n data: z.unknown().nullish(),\n name: z.string(),\n });\n}\n\nexport function OperationSchema(): z.ZodObject<Properties<Operation>> {\n return z.object({\n __typename: z.literal('Operation').optional(),\n hash: z.string(),\n index: z.number(),\n timestamp: z.string().datetime(),\n type: z.string(),\n });\n}\n\nexport function PruneActionSchema(): z.ZodObject<Properties<PruneAction>> {\n return z.object({\n input: z.lazy(() => PruneActionInputSchema()),\n type: PruneSchema,\n scope: OperationScopeSchema(),\n });\n}\n\nexport function PruneActionInputSchema(): z.ZodObject<\n Properties<PruneActionInput>\n> {\n return z.object({\n end: z.number().nullish(),\n start: z.number().nullish(),\n });\n}\n\nexport const RedoActionInputSchema = z.number;\n\nexport function RedoActionSchema(): z.ZodObject<Properties<RedoAction>> {\n return z.object({\n input: RedoActionInputSchema(),\n type: RedoSchema,\n scope: OperationScopeSchema(),\n });\n}\n\nexport const SetNameActionInputSchema = z.string;\n\nexport function SetNameActionSchema(): z.ZodObject<Properties<SetNameAction>> {\n return z.object({\n input: SetNameActionInputSchema(),\n type: Set_NameSchema,\n scope: z.literal('global'),\n });\n}\n\nexport function SetNameOperationSchema(): z.ZodObject<\n Properties<SetNameOperation>\n> {\n return z.object({\n __typename: z.literal('SetNameOperation').optional(),\n hash: z.string(),\n index: z.number(),\n input: z.string(),\n timestamp: z.string().datetime(),\n type: z.string(),\n });\n}\n\nexport const UndoActionInputSchema = z.number;\n\nexport function UndoActionSchema(): z.ZodObject<Properties<UndoAction>> {\n return z.object({\n input: UndoActionInputSchema(),\n type: UndoSchema,\n scope: OperationScopeSchema(),\n });\n}\n"],"names":[],"mappings":"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"}
|