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,136 @@
|
|
|
1
|
+
import JSZip from "jszip";
|
|
2
|
+
import mime from "../../../node_modules/.pnpm/mime@4.0.1/node_modules/mime/dist/src/index_lite.js";
|
|
3
|
+
import { writeFile, readFile, fetchFile, hash, getFile } from "./node.js";
|
|
4
|
+
import { replayDocument } from "./base.js";
|
|
5
|
+
import { validateOperations } from "./validation.js";
|
|
6
|
+
const createZip = async (document) => {
|
|
7
|
+
const zip = new JSZip();
|
|
8
|
+
const { name, revision, documentType, created, lastModified } = document;
|
|
9
|
+
const header = {
|
|
10
|
+
name,
|
|
11
|
+
revision,
|
|
12
|
+
documentType,
|
|
13
|
+
created,
|
|
14
|
+
lastModified
|
|
15
|
+
};
|
|
16
|
+
zip.file("header.json", JSON.stringify(header, null, 2));
|
|
17
|
+
zip.file(
|
|
18
|
+
"state.json",
|
|
19
|
+
JSON.stringify(document.initialState || {}, null, 2)
|
|
20
|
+
);
|
|
21
|
+
zip.file("operations.json", JSON.stringify(document.operations, null, 2));
|
|
22
|
+
const attachments = Object.keys(document.attachments);
|
|
23
|
+
attachments.forEach((key) => {
|
|
24
|
+
const { data, ...attributes } = document.attachments[key];
|
|
25
|
+
zip.file(key, data, {
|
|
26
|
+
base64: true,
|
|
27
|
+
createFolders: true,
|
|
28
|
+
comment: JSON.stringify(attributes)
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
return zip;
|
|
32
|
+
};
|
|
33
|
+
const saveToFile = async (document, path, extension, name) => {
|
|
34
|
+
const zip = await createZip(document);
|
|
35
|
+
const file = await zip.generateAsync({
|
|
36
|
+
type: "uint8array",
|
|
37
|
+
streamFiles: true
|
|
38
|
+
});
|
|
39
|
+
const fileName = name ?? document.name;
|
|
40
|
+
const fileExtension = `.${extension}.zip`;
|
|
41
|
+
return writeFile(
|
|
42
|
+
path,
|
|
43
|
+
fileName.endsWith(fileExtension) ? fileName : `${fileName}${fileExtension}`,
|
|
44
|
+
file
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
const saveToFileHandle = async (document, input) => {
|
|
48
|
+
const zip = await createZip(document);
|
|
49
|
+
const blob = await zip.generateAsync({ type: "blob" });
|
|
50
|
+
const writable = await input.createWritable();
|
|
51
|
+
await writable.write(blob);
|
|
52
|
+
await writable.close();
|
|
53
|
+
};
|
|
54
|
+
const loadFromFile = async (path, reducer, options) => {
|
|
55
|
+
const file = readFile(path);
|
|
56
|
+
return loadFromInput(file, reducer, options);
|
|
57
|
+
};
|
|
58
|
+
const loadFromInput = async (input, reducer, options) => {
|
|
59
|
+
const zip = new JSZip();
|
|
60
|
+
await zip.loadAsync(input);
|
|
61
|
+
return loadFromZip(zip, reducer, options);
|
|
62
|
+
};
|
|
63
|
+
async function loadFromZip(zip, reducer, options) {
|
|
64
|
+
const initialStateZip = zip.file("state.json");
|
|
65
|
+
if (!initialStateZip) {
|
|
66
|
+
throw new Error("Initial state not found");
|
|
67
|
+
}
|
|
68
|
+
const initialStateStr = await initialStateZip.async("string");
|
|
69
|
+
const initialState = JSON.parse(initialStateStr);
|
|
70
|
+
const headerZip = zip.file("header.json");
|
|
71
|
+
let header = void 0;
|
|
72
|
+
if (headerZip) {
|
|
73
|
+
header = JSON.parse(await headerZip.async("string"));
|
|
74
|
+
}
|
|
75
|
+
const operationsZip = zip.file("operations.json");
|
|
76
|
+
if (!operationsZip) {
|
|
77
|
+
throw new Error("Operations history not found");
|
|
78
|
+
}
|
|
79
|
+
const operations = JSON.parse(
|
|
80
|
+
await operationsZip.async("string")
|
|
81
|
+
);
|
|
82
|
+
const operationsError = validateOperations(operations);
|
|
83
|
+
if (operationsError.length) {
|
|
84
|
+
const errorMessages = operationsError.map((err) => err.message);
|
|
85
|
+
throw new Error(errorMessages.join("\n"));
|
|
86
|
+
}
|
|
87
|
+
let result = replayDocument(
|
|
88
|
+
initialState,
|
|
89
|
+
operations,
|
|
90
|
+
reducer,
|
|
91
|
+
void 0,
|
|
92
|
+
header,
|
|
93
|
+
{},
|
|
94
|
+
options
|
|
95
|
+
);
|
|
96
|
+
if (header) {
|
|
97
|
+
result = {
|
|
98
|
+
...result,
|
|
99
|
+
...header
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
function getFileAttributes(file) {
|
|
105
|
+
const extension = file.replace(/^.*\./, "") || void 0;
|
|
106
|
+
const fileName = file.replace(/^.*[/\\]/, "") || void 0;
|
|
107
|
+
return { extension, fileName };
|
|
108
|
+
}
|
|
109
|
+
async function getRemoteFile(url) {
|
|
110
|
+
const { buffer, mimeType = "application/octet-stream" } = await fetchFile(url);
|
|
111
|
+
const attributes = getFileAttributes(url);
|
|
112
|
+
const data = buffer.toString("base64");
|
|
113
|
+
return {
|
|
114
|
+
data,
|
|
115
|
+
hash: hash(data),
|
|
116
|
+
mimeType,
|
|
117
|
+
...attributes
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
async function getLocalFile(path) {
|
|
121
|
+
const buffer = await getFile(path);
|
|
122
|
+
const mimeType = mime.getType(path) || "application/octet-stream";
|
|
123
|
+
const attributes = getFileAttributes(path);
|
|
124
|
+
const data = buffer.toString("base64");
|
|
125
|
+
return { data, hash: hash(data), mimeType, ...attributes };
|
|
126
|
+
}
|
|
127
|
+
export {
|
|
128
|
+
createZip,
|
|
129
|
+
getLocalFile,
|
|
130
|
+
getRemoteFile,
|
|
131
|
+
loadFromFile,
|
|
132
|
+
loadFromInput,
|
|
133
|
+
saveToFile,
|
|
134
|
+
saveToFileHandle
|
|
135
|
+
};
|
|
136
|
+
//# sourceMappingURL=file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.js","sources":["../../../../../../src/document/utils/file.ts"],"sourcesContent":["import JSZip from 'jszip';\nimport mime from 'mime/lite';\nimport type {\n Action,\n Attachment,\n AttachmentInput,\n Document,\n DocumentHeader,\n DocumentOperations,\n ExtendedState,\n Reducer,\n} from '../types';\nimport { fetchFile, getFile, hash, readFile, writeFile } from './node';\nimport { replayDocument, ReplayDocumentOptions } from './base';\nimport { validateOperations } from './validation';\n\nexport type FileInput = string | number[] | Uint8Array | ArrayBuffer | Blob;\n\nexport const createZip = async (document: Document) => {\n // create zip file\n const zip = new JSZip();\n\n const { name, revision, documentType, created, lastModified } = document;\n const header: DocumentHeader = {\n name,\n revision,\n documentType,\n created,\n lastModified,\n };\n zip.file('header.json', JSON.stringify(header, null, 2));\n zip.file(\n 'state.json',\n JSON.stringify(document.initialState || {}, null, 2),\n );\n zip.file('operations.json', JSON.stringify(document.operations, null, 2));\n\n const attachments = Object.keys(document.attachments);\n attachments.forEach(key => {\n const { data, ...attributes } = document.attachments[key];\n zip.file(key, data, {\n base64: true,\n createFolders: true,\n comment: JSON.stringify(attributes),\n });\n });\n return zip;\n};\n\n/**\n * Saves a document to a ZIP file.\n *\n * @remarks\n * This function creates a ZIP file containing the document's state, operations,\n * and file attachments. The file is saved to the specified path.\n *\n * @param document - The document to save to the file.\n * @param path - The path to save the file to.\n * @param extension - The extension to use for the file.\n * @returns A promise that resolves to the path of the saved file.\n */\nexport const saveToFile = async (\n document: Document,\n path: string,\n extension: string,\n name?: string,\n): Promise<string> => {\n // create zip file\n const zip = await createZip(document);\n const file = await zip.generateAsync({\n type: 'uint8array',\n streamFiles: true,\n });\n const fileName = name ?? document.name;\n const fileExtension = `.${extension}.zip`;\n\n return writeFile(\n path,\n fileName.endsWith(fileExtension)\n ? fileName\n : `${fileName}${fileExtension}`,\n file,\n );\n};\n\nexport const saveToFileHandle = async (\n document: Document,\n input: FileSystemFileHandle,\n) => {\n const zip = await createZip(document);\n const blob = await zip.generateAsync({ type: 'blob' });\n const writable = await input.createWritable();\n await writable.write(blob);\n await writable.close();\n};\n\n/**\n * Loads a document from a ZIP file.\n *\n * @remarks\n * This function reads a ZIP file and returns the document state after\n * applying all the operations. The reducer is used to apply the operations.\n *\n * @typeParam S - The type of the state object.\n * @typeParam A - The type of the actions that can be applied to the state object.\n *\n * @param path - The path to the ZIP file.\n * @param reducer - The reducer to apply the operations to the state object.\n * @returns A promise that resolves to the document state after applying all the operations.\n * @throws An error if the initial state or the operations history is not found in the ZIP file.\n */\nexport const loadFromFile = async <S, A extends Action, L>(\n path: string,\n reducer: Reducer<S, A, L>,\n options?: ReplayDocumentOptions,\n) => {\n const file = readFile(path);\n return loadFromInput(file, reducer, options);\n};\n\nexport const loadFromInput = async <S, A extends Action, L>(\n input: FileInput,\n reducer: Reducer<S, A, L>,\n options?: ReplayDocumentOptions,\n) => {\n const zip = new JSZip();\n await zip.loadAsync(input);\n return loadFromZip(zip, reducer, options);\n};\n\nasync function loadFromZip<S, A extends Action, L>(\n zip: JSZip,\n reducer: Reducer<S, A, L>,\n options?: ReplayDocumentOptions,\n) {\n const initialStateZip = zip.file('state.json');\n if (!initialStateZip) {\n throw new Error('Initial state not found');\n }\n const initialStateStr = await initialStateZip.async('string');\n const initialState = JSON.parse(initialStateStr) as ExtendedState<S, L>;\n\n const headerZip = zip.file('header.json');\n let header: DocumentHeader | undefined = undefined;\n if (headerZip) {\n header = JSON.parse(await headerZip.async('string')) as DocumentHeader;\n }\n\n const operationsZip = zip.file('operations.json');\n if (!operationsZip) {\n throw new Error('Operations history not found');\n }\n\n const operations = JSON.parse(\n await operationsZip.async('string'),\n ) as DocumentOperations<A>;\n\n const operationsError = validateOperations(operations);\n if (operationsError.length) {\n const errorMessages = operationsError.map(err => err.message);\n throw new Error(errorMessages.join('\\n'));\n }\n\n let result = replayDocument(\n initialState,\n operations,\n reducer,\n undefined,\n header,\n {},\n options,\n );\n if (header) {\n result = {\n ...result,\n ...header,\n };\n }\n return result;\n}\n\nfunction getFileAttributes(\n file: string,\n): Omit<Attachment, 'data' | 'mimeType'> {\n const extension = file.replace(/^.*\\./, '') || undefined;\n const fileName = file.replace(/^.*[/\\\\]/, '') || undefined;\n return { extension, fileName };\n}\n\n/**\n * Fetches an attachment from a URL and returns its base64-encoded data and MIME type.\n * @param url - The URL of the attachment to fetch.\n * @returns A Promise that resolves to an object containing the base64-encoded data and MIME type of the attachment.\n */\nexport async function getRemoteFile(url: string): Promise<AttachmentInput> {\n const { buffer, mimeType = 'application/octet-stream' } =\n await fetchFile(url);\n const attributes = getFileAttributes(url);\n const data = buffer.toString('base64');\n return {\n data,\n hash: hash(data),\n mimeType,\n ...attributes,\n };\n}\n\n/**\n * Reads an attachment from a file and returns its base64-encoded data and MIME type.\n * @param path - The path of the attachment file to read.\n * @returns A Promise that resolves to an object containing the base64-encoded data and MIME type of the attachment.\n */\nexport async function getLocalFile(path: string): Promise<AttachmentInput> {\n const buffer = await getFile(path);\n const mimeType = mime.getType(path) || 'application/octet-stream';\n const attributes = getFileAttributes(path);\n const data = buffer.toString('base64');\n return { data, hash: hash(data), mimeType, ...attributes };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { calculateSkipsLeft, createAction, createDocument, createExtendedState, createReducer, hashDocument, hashKey, isBaseAction, isNoopOperation, isSameDocument, isUndoRedo, mapSkippedOperations, readOnly, replayDocument, replayOperations, sortMappedOperations, sortOperations } from "./base.js";
|
|
2
|
+
import { createZip, getLocalFile, getRemoteFile, loadFromFile, loadFromInput, saveToFile, saveToFileHandle } from "./file.js";
|
|
3
|
+
import { validateOperations } from "./validation.js";
|
|
4
|
+
import * as documentHelpers from "./document-helpers.js";
|
|
5
|
+
export {
|
|
6
|
+
calculateSkipsLeft,
|
|
7
|
+
createAction,
|
|
8
|
+
createDocument,
|
|
9
|
+
createExtendedState,
|
|
10
|
+
createReducer,
|
|
11
|
+
createZip,
|
|
12
|
+
documentHelpers,
|
|
13
|
+
getLocalFile,
|
|
14
|
+
getRemoteFile,
|
|
15
|
+
hashDocument,
|
|
16
|
+
hashKey,
|
|
17
|
+
isBaseAction,
|
|
18
|
+
isNoopOperation,
|
|
19
|
+
isSameDocument,
|
|
20
|
+
isUndoRedo,
|
|
21
|
+
loadFromFile,
|
|
22
|
+
loadFromInput,
|
|
23
|
+
mapSkippedOperations,
|
|
24
|
+
readOnly,
|
|
25
|
+
replayDocument,
|
|
26
|
+
replayOperations,
|
|
27
|
+
saveToFile,
|
|
28
|
+
saveToFileHandle,
|
|
29
|
+
sortMappedOperations,
|
|
30
|
+
sortOperations,
|
|
31
|
+
validateOperations
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import crypto from "crypto";
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import https from "https";
|
|
4
|
+
import { join } from "path";
|
|
5
|
+
function writeFile(path, name, data) {
|
|
6
|
+
const filePath = join(path, name);
|
|
7
|
+
fs.mkdirSync(path, { recursive: true });
|
|
8
|
+
return new Promise((resolve, reject) => {
|
|
9
|
+
try {
|
|
10
|
+
fs.writeFile(filePath, data, {}, (err) => {
|
|
11
|
+
if (err) {
|
|
12
|
+
reject(err);
|
|
13
|
+
} else {
|
|
14
|
+
resolve(filePath);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
} catch (error) {
|
|
18
|
+
reject(error);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
function readFile(path) {
|
|
23
|
+
return fs.readFileSync(path);
|
|
24
|
+
}
|
|
25
|
+
function fetchFile(url) {
|
|
26
|
+
return new Promise((resolve, reject) => {
|
|
27
|
+
https.get(url, (resp) => {
|
|
28
|
+
const data = [];
|
|
29
|
+
const mimeType = resp.headers["content-type"];
|
|
30
|
+
resp.on("data", (chunk) => {
|
|
31
|
+
data.push(chunk);
|
|
32
|
+
});
|
|
33
|
+
resp.on("end", () => {
|
|
34
|
+
resolve({ buffer: Buffer.concat(data), mimeType });
|
|
35
|
+
});
|
|
36
|
+
}).on("error", (err) => {
|
|
37
|
+
reject(err);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
const getFile = async (file) => {
|
|
42
|
+
return readFile(file);
|
|
43
|
+
};
|
|
44
|
+
const hash = (data, algorithm = "sha1") => {
|
|
45
|
+
return crypto.createHash(algorithm).update(data).digest("base64");
|
|
46
|
+
};
|
|
47
|
+
export {
|
|
48
|
+
fetchFile,
|
|
49
|
+
getFile,
|
|
50
|
+
hash,
|
|
51
|
+
readFile,
|
|
52
|
+
writeFile
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.js","sources":["../../../../../../src/document/utils/node.ts"],"sourcesContent":["import crypto from 'crypto';\nimport fs from 'fs';\nimport https from 'https';\nimport { join } from 'path';\n\nexport function writeFile(\n path: string,\n name: string,\n data: Uint8Array,\n): Promise<string> {\n const filePath = join(path, name);\n fs.mkdirSync(path, { recursive: true });\n\n return new Promise((resolve, reject) => {\n try {\n fs.writeFile(filePath, data, {}, err => {\n if (err) {\n reject(err);\n } else {\n resolve(filePath);\n }\n });\n } catch (error) {\n reject(error);\n }\n });\n}\n\nexport function readFile(path: string) {\n return fs.readFileSync(path);\n}\n\nexport function fetchFile(\n url: string,\n): Promise<{ buffer: Buffer; mimeType?: string }> {\n return new Promise((resolve, reject) => {\n https\n .get(url, resp => {\n const data: Uint8Array[] = [];\n const mimeType = resp.headers['content-type'];\n resp.on('data', (chunk: Uint8Array) => {\n data.push(chunk);\n });\n\n resp.on('end', () => {\n resolve({ buffer: Buffer.concat(data), mimeType });\n });\n })\n .on('error', err => {\n reject(err);\n });\n });\n}\n\nexport const getFile = async (file: string) => {\n return readFile(file);\n};\n\nexport const hash = (data: string, algorithm = 'sha1') => {\n return crypto.createHash(algorithm).update(data).digest('base64');\n};\n"],"names":[],"mappings":";;;;AAKgB,SAAA,UACZ,MACA,MACA,MACe;AACT,QAAA,WAAW,KAAK,MAAM,IAAI;AAChC,KAAG,UAAU,MAAM,EAAE,WAAW,KAAM,CAAA;AAEtC,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAChC,QAAA;AACA,SAAG,UAAU,UAAU,MAAM,IAAI,CAAO,QAAA;AACpC,YAAI,KAAK;AACL,iBAAO,GAAG;AAAA,QAAA,OACP;AACH,kBAAQ,QAAQ;AAAA,QACpB;AAAA,MAAA,CACH;AAAA,aACI,OAAO;AACZ,aAAO,KAAK;AAAA,IAChB;AAAA,EAAA,CACH;AACL;AAEO,SAAS,SAAS,MAAc;AAC5B,SAAA,GAAG,aAAa,IAAI;AAC/B;AAEO,SAAS,UACZ,KAC8C;AAC9C,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAE/B,UAAA,IAAI,KAAK,CAAQ,SAAA;AACd,YAAM,OAAqB,CAAA;AACrB,YAAA,WAAW,KAAK,QAAQ,cAAc;AACvC,WAAA,GAAG,QAAQ,CAAC,UAAsB;AACnC,aAAK,KAAK,KAAK;AAAA,MAAA,CAClB;AAEI,WAAA,GAAG,OAAO,MAAM;AACjB,gBAAQ,EAAE,QAAQ,OAAO,OAAO,IAAI,GAAG,UAAU;AAAA,MAAA,CACpD;AAAA,IACJ,CAAA,EACA,GAAG,SAAS,CAAO,QAAA;AAChB,aAAO,GAAG;AAAA,IAAA,CACb;AAAA,EAAA,CACR;AACL;AAEa,MAAA,UAAU,OAAO,SAAiB;AAC3C,SAAO,SAAS,IAAI;AACxB;AAEO,MAAM,OAAO,CAAC,MAAc,YAAY,WAAW;AAC/C,SAAA,OAAO,WAAW,SAAS,EAAE,OAAO,IAAI,EAAE,OAAO,QAAQ;AACpE;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
function validateOperations(operations) {
|
|
2
|
+
const errors = [];
|
|
3
|
+
const scopes = Object.keys(operations);
|
|
4
|
+
for (const scope of scopes) {
|
|
5
|
+
const ops = operations[scope].sort((a, b) => a.index - b.index);
|
|
6
|
+
for (let i = 0; i < ops.length; i++) {
|
|
7
|
+
if (ops[i].index !== i) {
|
|
8
|
+
errors.push({
|
|
9
|
+
message: `Invalid operation index ${ops[i].index} at position ${i}`,
|
|
10
|
+
details: {
|
|
11
|
+
position: i,
|
|
12
|
+
operation: ops[i],
|
|
13
|
+
scope: ops[i].scope
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return errors;
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
validateOperations
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sources":["../../../../../../src/document/utils/validation.ts"],"sourcesContent":["import {\n DocumentOperations,\n Action,\n ValidationError,\n OperationScope,\n} from '../types';\n\nexport function validateOperations<A extends Action>(\n operations: DocumentOperations<A>,\n) {\n const errors: ValidationError[] = [];\n const scopes = Object.keys(operations) as OperationScope[];\n\n for (const scope of scopes) {\n const ops = operations[scope].sort((a, b) => a.index - b.index);\n\n for (let i = 0; i < ops.length; i++) {\n if (ops[i].index !== i) {\n errors.push({\n message: `Invalid operation index ${ops[i].index} at position ${i}`,\n details: {\n position: i,\n operation: ops[i],\n scope: ops[i].scope,\n },\n });\n }\n }\n }\n\n return errors;\n}\n"],"names":[],"mappings":"AAOO,SAAS,mBACZ,YACF;AACE,QAAM,SAA4B,CAAA;AAC5B,QAAA,SAAS,OAAO,KAAK,UAAU;AAErC,aAAW,SAAS,QAAQ;AAClB,UAAA,MAAM,WAAW,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK;AAE9D,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACjC,UAAI,IAAI,CAAC,EAAE,UAAU,GAAG;AACpB,eAAO,KAAK;AAAA,UACR,SAAS,2BAA2B,IAAI,CAAC,EAAE,KAAK,gBAAgB,CAAC;AAAA,UACjE,SAAS;AAAA,YACL,UAAU;AAAA,YACV,WAAW,IAAI,CAAC;AAAA,YAChB,OAAO,IAAI,CAAC,EAAE;AAAA,UAClB;AAAA,QAAA,CACH;AAAA,MACL;AAAA,IACJ;AAAA,EACJ;AAEO,SAAA;AACX;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const reducer = {
|
|
2
|
+
setModelNameOperation(state, action) {
|
|
3
|
+
state.name = action.input.name;
|
|
4
|
+
},
|
|
5
|
+
setModelIdOperation(state, action) {
|
|
6
|
+
state.id = action.input.id;
|
|
7
|
+
},
|
|
8
|
+
setModelExtensionOperation(state, action) {
|
|
9
|
+
state.extension = action.input.extension;
|
|
10
|
+
},
|
|
11
|
+
setModelDescriptionOperation(state, action) {
|
|
12
|
+
state.description = action.input.description;
|
|
13
|
+
},
|
|
14
|
+
setAuthorNameOperation(state, action) {
|
|
15
|
+
state.author = state.author || { name: "", website: null };
|
|
16
|
+
state.author.name = action.input.authorName;
|
|
17
|
+
},
|
|
18
|
+
setAuthorWebsiteOperation(state, action) {
|
|
19
|
+
state.author = state.author || { name: "", website: null };
|
|
20
|
+
state.author.website = action.input.authorWebsite;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
export {
|
|
24
|
+
reducer
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.js","sources":["../../../../../../../src/document-model/custom/reducers/header.ts"],"sourcesContent":["import { DocumentModelHeaderOperations } from '../../gen/header/operations';\n\nexport const reducer: DocumentModelHeaderOperations = {\n setModelNameOperation(state, action) {\n state.name = action.input.name;\n },\n\n setModelIdOperation(state, action) {\n state.id = action.input.id;\n },\n\n setModelExtensionOperation(state, action) {\n state.extension = action.input.extension;\n },\n\n setModelDescriptionOperation(state, action) {\n state.description = action.input.description;\n },\n\n setAuthorNameOperation(state, action) {\n state.author = state.author || { name: '', website: null };\n state.author.name = action.input.authorName;\n },\n\n setAuthorWebsiteOperation(state, action) {\n state.author = state.author || { name: '', website: null };\n state.author.website = action.input.authorWebsite;\n },\n};\n"],"names":[],"mappings":"AAEO,MAAM,UAAyC;AAAA,EAClD,sBAAsB,OAAO,QAAQ;AAC3B,UAAA,OAAO,OAAO,MAAM;AAAA,EAC9B;AAAA,EAEA,oBAAoB,OAAO,QAAQ;AACzB,UAAA,KAAK,OAAO,MAAM;AAAA,EAC5B;AAAA,EAEA,2BAA2B,OAAO,QAAQ;AAChC,UAAA,YAAY,OAAO,MAAM;AAAA,EACnC;AAAA,EAEA,6BAA6B,OAAO,QAAQ;AAClC,UAAA,cAAc,OAAO,MAAM;AAAA,EACrC;AAAA,EAEA,uBAAuB,OAAO,QAAQ;AAClC,UAAM,SAAS,MAAM,UAAU,EAAE,MAAM,IAAI,SAAS;AAC9C,UAAA,OAAO,OAAO,OAAO,MAAM;AAAA,EACrC;AAAA,EAEA,0BAA0B,OAAO,QAAQ;AACrC,UAAM,SAAS,MAAM,UAAU,EAAE,MAAM,IAAI,SAAS;AAC9C,UAAA,OAAO,UAAU,OAAO,MAAM;AAAA,EACxC;AACJ;"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
const moduleSorter = (order) => {
|
|
2
|
+
const mapping = {};
|
|
3
|
+
order.forEach((key, index) => mapping[key] = index);
|
|
4
|
+
return (a, b) => (mapping[b.id] || 999999) - (mapping[a.id] || 999999);
|
|
5
|
+
};
|
|
6
|
+
const reducer = {
|
|
7
|
+
addModuleOperation(state, action) {
|
|
8
|
+
const latestSpec = state.specifications[state.specifications.length - 1];
|
|
9
|
+
latestSpec.modules.push({
|
|
10
|
+
id: action.input.id,
|
|
11
|
+
name: action.input.name,
|
|
12
|
+
description: action.input.description || "",
|
|
13
|
+
operations: []
|
|
14
|
+
});
|
|
15
|
+
},
|
|
16
|
+
setModuleNameOperation(state, action) {
|
|
17
|
+
const latestSpec = state.specifications[state.specifications.length - 1];
|
|
18
|
+
for (let i = 0; i < latestSpec.modules.length; i++) {
|
|
19
|
+
if (latestSpec.modules[i].id === action.input.id) {
|
|
20
|
+
latestSpec.modules[i].name = action.input.name || "";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
setModuleDescriptionOperation(state, action) {
|
|
25
|
+
const latestSpec = state.specifications[state.specifications.length - 1];
|
|
26
|
+
for (let i = 0; i < latestSpec.modules.length; i++) {
|
|
27
|
+
if (latestSpec.modules[i].id === action.input.id) {
|
|
28
|
+
latestSpec.modules[i].description = action.input.description || "";
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
deleteModuleOperation(state, action) {
|
|
33
|
+
const latestSpec = state.specifications[state.specifications.length - 1];
|
|
34
|
+
latestSpec.modules = latestSpec.modules.filter(
|
|
35
|
+
(m) => m.id != action.input.id
|
|
36
|
+
);
|
|
37
|
+
},
|
|
38
|
+
reorderModulesOperation(state, action) {
|
|
39
|
+
const latestSpec = state.specifications[state.specifications.length - 1];
|
|
40
|
+
latestSpec.modules.sort(moduleSorter(action.input.order));
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
export {
|
|
44
|
+
reducer
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.js","sources":["../../../../../../../src/document-model/custom/reducers/module.ts"],"sourcesContent":["import { Module } from '../../gen';\nimport { DocumentModelModuleOperations } from '../../gen/module/operations';\n\nconst moduleSorter = (order: string[]) => {\n const mapping: Record<string, number> = {};\n order.forEach((key, index) => (mapping[key] = index));\n return (a: Module, b: Module) =>\n (mapping[b.id] || 999999) - (mapping[a.id] || 999999);\n};\n\nexport const reducer: DocumentModelModuleOperations = {\n addModuleOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n latestSpec.modules.push({\n id: action.input.id,\n name: action.input.name,\n description: action.input.description || '',\n operations: [],\n });\n },\n\n setModuleNameOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n if (latestSpec.modules[i].id === action.input.id) {\n latestSpec.modules[i].name = action.input.name || '';\n }\n }\n },\n\n setModuleDescriptionOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n if (latestSpec.modules[i].id === action.input.id) {\n latestSpec.modules[i].description =\n action.input.description || '';\n }\n }\n },\n\n deleteModuleOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n latestSpec.modules = latestSpec.modules.filter(\n m => m.id != action.input.id,\n );\n },\n\n reorderModulesOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n latestSpec.modules.sort(moduleSorter(action.input.order));\n },\n};\n"],"names":[],"mappings":"AAGA,MAAM,eAAe,CAAC,UAAoB;AACtC,QAAM,UAAkC,CAAA;AACxC,QAAM,QAAQ,CAAC,KAAK,UAAW,QAAQ,GAAG,IAAI,KAAM;AAC7C,SAAA,CAAC,GAAW,OACd,QAAQ,EAAE,EAAE,KAAK,WAAW,QAAQ,EAAE,EAAE,KAAK;AACtD;AAEO,MAAM,UAAyC;AAAA,EAClD,mBAAmB,OAAO,QAAQ;AAC9B,UAAM,aACF,MAAM,eAAe,MAAM,eAAe,SAAS,CAAC;AACxD,eAAW,QAAQ,KAAK;AAAA,MACpB,IAAI,OAAO,MAAM;AAAA,MACjB,MAAM,OAAO,MAAM;AAAA,MACnB,aAAa,OAAO,MAAM,eAAe;AAAA,MACzC,YAAY,CAAC;AAAA,IAAA,CAChB;AAAA,EACL;AAAA,EAEA,uBAAuB,OAAO,QAAQ;AAClC,UAAM,aACF,MAAM,eAAe,MAAM,eAAe,SAAS,CAAC;AACxD,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,QAAQ,KAAK;AAChD,UAAI,WAAW,QAAQ,CAAC,EAAE,OAAO,OAAO,MAAM,IAAI;AAC9C,mBAAW,QAAQ,CAAC,EAAE,OAAO,OAAO,MAAM,QAAQ;AAAA,MACtD;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,8BAA8B,OAAO,QAAQ;AACzC,UAAM,aACF,MAAM,eAAe,MAAM,eAAe,SAAS,CAAC;AACxD,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,QAAQ,KAAK;AAChD,UAAI,WAAW,QAAQ,CAAC,EAAE,OAAO,OAAO,MAAM,IAAI;AAC9C,mBAAW,QAAQ,CAAC,EAAE,cAClB,OAAO,MAAM,eAAe;AAAA,MACpC;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,sBAAsB,OAAO,QAAQ;AACjC,UAAM,aACF,MAAM,eAAe,MAAM,eAAe,SAAS,CAAC;AAC7C,eAAA,UAAU,WAAW,QAAQ;AAAA,MACpC,CAAK,MAAA,EAAE,MAAM,OAAO,MAAM;AAAA,IAAA;AAAA,EAElC;AAAA,EAEA,wBAAwB,OAAO,QAAQ;AACnC,UAAM,aACF,MAAM,eAAe,MAAM,eAAe,SAAS,CAAC;AACxD,eAAW,QAAQ,KAAK,aAAa,OAAO,MAAM,KAAK,CAAC;AAAA,EAC5D;AACJ;"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
const errorSorter = (order) => {
|
|
2
|
+
const mapping = {};
|
|
3
|
+
order.forEach((key, index) => mapping[key] = index);
|
|
4
|
+
return (a, b) => (mapping[b.id] || 999999) - (mapping[a.id] || 999999);
|
|
5
|
+
};
|
|
6
|
+
const reducer = {
|
|
7
|
+
addOperationErrorOperation(state, action) {
|
|
8
|
+
const latestSpec = state.specifications[state.specifications.length - 1];
|
|
9
|
+
for (let i = 0; i < latestSpec.modules.length; i++) {
|
|
10
|
+
for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
|
|
11
|
+
if (latestSpec.modules[i].operations[j].id == action.input.operationId) {
|
|
12
|
+
latestSpec.modules[i].operations[j].errors.push({
|
|
13
|
+
id: action.input.id,
|
|
14
|
+
name: action.input.errorName || "",
|
|
15
|
+
code: action.input.errorCode || "",
|
|
16
|
+
description: action.input.errorDescription || "",
|
|
17
|
+
template: action.input.errorTemplate || ""
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
setOperationErrorCodeOperation(state, action) {
|
|
24
|
+
const latestSpec = state.specifications[state.specifications.length - 1];
|
|
25
|
+
for (let i = 0; i < latestSpec.modules.length; i++) {
|
|
26
|
+
for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
|
|
27
|
+
for (let k = 0; k < latestSpec.modules[i].operations[j].errors.length; k++) {
|
|
28
|
+
if (latestSpec.modules[i].operations[j].errors[k].id == action.input.id) {
|
|
29
|
+
latestSpec.modules[i].operations[j].errors[k].code = action.input.errorCode || "";
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
setOperationErrorNameOperation(state, action) {
|
|
36
|
+
const latestSpec = state.specifications[state.specifications.length - 1];
|
|
37
|
+
for (let i = 0; i < latestSpec.modules.length; i++) {
|
|
38
|
+
for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
|
|
39
|
+
for (let k = 0; k < latestSpec.modules[i].operations[j].errors.length; k++) {
|
|
40
|
+
if (latestSpec.modules[i].operations[j].errors[k].id == action.input.id) {
|
|
41
|
+
latestSpec.modules[i].operations[j].errors[k].name = action.input.errorName || "";
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
setOperationErrorDescriptionOperation(state, action) {
|
|
48
|
+
const latestSpec = state.specifications[state.specifications.length - 1];
|
|
49
|
+
for (let i = 0; i < latestSpec.modules.length; i++) {
|
|
50
|
+
for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
|
|
51
|
+
for (let k = 0; k < latestSpec.modules[i].operations[j].errors.length; k++) {
|
|
52
|
+
if (latestSpec.modules[i].operations[j].errors[k].id == action.input.id) {
|
|
53
|
+
latestSpec.modules[i].operations[j].errors[k].description = action.input.errorDescription || "";
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
setOperationErrorTemplateOperation(state, action) {
|
|
60
|
+
const latestSpec = state.specifications[state.specifications.length - 1];
|
|
61
|
+
for (let i = 0; i < latestSpec.modules.length; i++) {
|
|
62
|
+
for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
|
|
63
|
+
for (let k = 0; k < latestSpec.modules[i].operations[j].errors.length; k++) {
|
|
64
|
+
if (latestSpec.modules[i].operations[j].errors[k].id == action.input.id) {
|
|
65
|
+
latestSpec.modules[i].operations[j].errors[k].template = action.input.errorTemplate || "";
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
deleteOperationErrorOperation(state, action) {
|
|
72
|
+
const latestSpec = state.specifications[state.specifications.length - 1];
|
|
73
|
+
for (let i = 0; i < latestSpec.modules.length; i++) {
|
|
74
|
+
for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
|
|
75
|
+
latestSpec.modules[i].operations[j].errors = latestSpec.modules[i].operations[j].errors.filter((e) => e.id != action.input.id);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
reorderOperationErrorsOperation(state, action) {
|
|
80
|
+
const latestSpec = state.specifications[state.specifications.length - 1];
|
|
81
|
+
for (let i = 0; i < latestSpec.modules.length; i++) {
|
|
82
|
+
for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
|
|
83
|
+
if (latestSpec.modules[i].operations[j].id == action.input.operationId) {
|
|
84
|
+
latestSpec.modules[i].operations[j].errors.sort(
|
|
85
|
+
errorSorter(action.input.order)
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
export {
|
|
93
|
+
reducer
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=operation-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-error.js","sources":["../../../../../../../src/document-model/custom/reducers/operation-error.ts"],"sourcesContent":["import { OperationError } from '../../gen';\nimport { DocumentModelOperationErrorOperations } from '../../gen/operation-error/operations';\n\nconst errorSorter = (order: string[]) => {\n const mapping: Record<string, number> = {};\n order.forEach((key, index) => (mapping[key] = index));\n return (a: OperationError, b: OperationError) =>\n (mapping[b.id] || 999999) - (mapping[a.id] || 999999);\n};\n\nexport const reducer: DocumentModelOperationErrorOperations = {\n addOperationErrorOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n if (\n latestSpec.modules[i].operations[j].id ==\n action.input.operationId\n ) {\n latestSpec.modules[i].operations[j].errors.push({\n id: action.input.id,\n name: action.input.errorName || '',\n code: action.input.errorCode || '',\n description: action.input.errorDescription || '',\n template: action.input.errorTemplate || '',\n });\n }\n }\n }\n },\n\n setOperationErrorCodeOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n for (\n let k = 0;\n k < latestSpec.modules[i].operations[j].errors.length;\n k++\n ) {\n if (\n latestSpec.modules[i].operations[j].errors[k].id ==\n action.input.id\n ) {\n latestSpec.modules[i].operations[j].errors[k].code =\n action.input.errorCode || '';\n }\n }\n }\n }\n },\n\n setOperationErrorNameOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n for (\n let k = 0;\n k < latestSpec.modules[i].operations[j].errors.length;\n k++\n ) {\n if (\n latestSpec.modules[i].operations[j].errors[k].id ==\n action.input.id\n ) {\n latestSpec.modules[i].operations[j].errors[k].name =\n action.input.errorName || '';\n }\n }\n }\n }\n },\n\n setOperationErrorDescriptionOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n for (\n let k = 0;\n k < latestSpec.modules[i].operations[j].errors.length;\n k++\n ) {\n if (\n latestSpec.modules[i].operations[j].errors[k].id ==\n action.input.id\n ) {\n latestSpec.modules[i].operations[j].errors[\n k\n ].description = action.input.errorDescription || '';\n }\n }\n }\n }\n },\n\n setOperationErrorTemplateOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n for (\n let k = 0;\n k < latestSpec.modules[i].operations[j].errors.length;\n k++\n ) {\n if (\n latestSpec.modules[i].operations[j].errors[k].id ==\n action.input.id\n ) {\n latestSpec.modules[i].operations[j].errors[k].template =\n action.input.errorTemplate || '';\n }\n }\n }\n }\n },\n\n deleteOperationErrorOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n latestSpec.modules[i].operations[j].errors = latestSpec.modules[\n i\n ].operations[j].errors.filter(e => e.id != action.input.id);\n }\n }\n },\n\n reorderOperationErrorsOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n if (\n latestSpec.modules[i].operations[j].id ==\n action.input.operationId\n ) {\n latestSpec.modules[i].operations[j].errors.sort(\n errorSorter(action.input.order),\n );\n }\n }\n }\n },\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
const exampleSorter = (order) => {
|
|
2
|
+
const mapping = {};
|
|
3
|
+
order.forEach((key, index) => mapping[key] = index);
|
|
4
|
+
return (a, b) => (mapping[b.id] || 999999) - (mapping[a.id] || 999999);
|
|
5
|
+
};
|
|
6
|
+
const reducer = {
|
|
7
|
+
addOperationExampleOperation(state, action) {
|
|
8
|
+
const latestSpec = state.specifications[state.specifications.length - 1];
|
|
9
|
+
for (let i = 0; i < latestSpec.modules.length; i++) {
|
|
10
|
+
for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
|
|
11
|
+
if (latestSpec.modules[i].operations[j].id == action.input.operationId) {
|
|
12
|
+
latestSpec.modules[i].operations[j].examples.push({
|
|
13
|
+
id: action.input.id,
|
|
14
|
+
value: action.input.example
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
updateOperationExampleOperation(state, action) {
|
|
21
|
+
const latestSpec = state.specifications[state.specifications.length - 1];
|
|
22
|
+
for (let i = 0; i < latestSpec.modules.length; i++) {
|
|
23
|
+
for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
|
|
24
|
+
for (let k = 0; k < latestSpec.modules[i].operations[j].examples.length; k++) {
|
|
25
|
+
if (latestSpec.modules[i].operations[j].examples[k].id == action.input.id) {
|
|
26
|
+
latestSpec.modules[i].operations[j].examples[k].value = action.input.example;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
deleteOperationExampleOperation(state, action) {
|
|
33
|
+
const latestSpec = state.specifications[state.specifications.length - 1];
|
|
34
|
+
for (let i = 0; i < latestSpec.modules.length; i++) {
|
|
35
|
+
for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
|
|
36
|
+
latestSpec.modules[i].operations[j].examples = latestSpec.modules[i].operations[j].examples.filter(
|
|
37
|
+
(e) => e.id != action.input.id
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
reorderOperationExamplesOperation(state, action) {
|
|
43
|
+
const latestSpec = state.specifications[state.specifications.length - 1];
|
|
44
|
+
for (let i = 0; i < latestSpec.modules.length; i++) {
|
|
45
|
+
for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
|
|
46
|
+
if (latestSpec.modules[i].operations[j].id == action.input.operationId) {
|
|
47
|
+
latestSpec.modules[i].operations[j].examples.sort(
|
|
48
|
+
exampleSorter(action.input.order)
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
export {
|
|
56
|
+
reducer
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=operation-example.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-example.js","sources":["../../../../../../../src/document-model/custom/reducers/operation-example.ts"],"sourcesContent":["import { CodeExample } from '../../gen';\nimport { DocumentModelOperationExampleOperations } from '../../gen/operation-example/operations';\n\nconst exampleSorter = (order: string[]) => {\n const mapping: Record<string, number> = {};\n order.forEach((key, index) => (mapping[key] = index));\n return (a: CodeExample, b: CodeExample) =>\n (mapping[b.id] || 999999) - (mapping[a.id] || 999999);\n};\n\nexport const reducer: DocumentModelOperationExampleOperations = {\n addOperationExampleOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n if (\n latestSpec.modules[i].operations[j].id ==\n action.input.operationId\n ) {\n latestSpec.modules[i].operations[j].examples.push({\n id: action.input.id,\n value: action.input.example,\n });\n }\n }\n }\n },\n\n updateOperationExampleOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n for (\n let k = 0;\n k < latestSpec.modules[i].operations[j].examples.length;\n k++\n ) {\n if (\n latestSpec.modules[i].operations[j].examples[k].id ==\n action.input.id\n ) {\n latestSpec.modules[i].operations[j].examples[k].value =\n action.input.example;\n }\n }\n }\n }\n },\n\n deleteOperationExampleOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n latestSpec.modules[i].operations[j].examples =\n latestSpec.modules[i].operations[j].examples.filter(\n e => e.id != action.input.id,\n );\n }\n }\n },\n\n reorderOperationExamplesOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n if (\n latestSpec.modules[i].operations[j].id ==\n action.input.operationId\n ) {\n latestSpec.modules[i].operations[j].examples.sort(\n exampleSorter(action.input.order),\n );\n }\n }\n }\n },\n};\n"],"names":[],"mappings":"AAGA,MAAM,gBAAgB,CAAC,UAAoB;AACvC,QAAM,UAAkC,CAAA;AACxC,QAAM,QAAQ,CAAC,KAAK,UAAW,QAAQ,GAAG,IAAI,KAAM;AAC7C,SAAA,CAAC,GAAgB,OACnB,QAAQ,EAAE,EAAE,KAAK,WAAW,QAAQ,EAAE,EAAE,KAAK;AACtD;AAEO,MAAM,UAAmD;AAAA,EAC5D,6BAA6B,OAAO,QAAQ;AACxC,UAAM,aACF,MAAM,eAAe,MAAM,eAAe,SAAS,CAAC;AACxD,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,QAAQ,KAAK;AACvC,eAAA,IAAI,GAAG,IAAI,WAAW,QAAQ,CAAC,EAAE,WAAW,QAAQ,KAAK;AAE1D,YAAA,WAAW,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,MACpC,OAAO,MAAM,aACf;AACE,qBAAW,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS,KAAK;AAAA,YAC9C,IAAI,OAAO,MAAM;AAAA,YACjB,OAAO,OAAO,MAAM;AAAA,UAAA,CACvB;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,gCAAgC,OAAO,QAAQ;AAC3C,UAAM,aACF,MAAM,eAAe,MAAM,eAAe,SAAS,CAAC;AACxD,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,QAAQ,KAAK;AACvC,eAAA,IAAI,GAAG,IAAI,WAAW,QAAQ,CAAC,EAAE,WAAW,QAAQ,KAAK;AAC9D,iBACQ,IAAI,GACR,IAAI,WAAW,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS,QACjD,KACF;AACE,cACI,WAAW,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS,CAAC,EAAE,MAChD,OAAO,MAAM,IACf;AACa,uBAAA,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS,CAAC,EAAE,QAC5C,OAAO,MAAM;AAAA,UACrB;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,gCAAgC,OAAO,QAAQ;AAC3C,UAAM,aACF,MAAM,eAAe,MAAM,eAAe,SAAS,CAAC;AACxD,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,QAAQ,KAAK;AACvC,eAAA,IAAI,GAAG,IAAI,WAAW,QAAQ,CAAC,EAAE,WAAW,QAAQ,KAAK;AAC9D,mBAAW,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,WAChC,WAAW,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS;AAAA,UACzC,CAAK,MAAA,EAAE,MAAM,OAAO,MAAM;AAAA,QAAA;AAAA,MAEtC;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,kCAAkC,OAAO,QAAQ;AAC7C,UAAM,aACF,MAAM,eAAe,MAAM,eAAe,SAAS,CAAC;AACxD,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,QAAQ,KAAK;AACvC,eAAA,IAAI,GAAG,IAAI,WAAW,QAAQ,CAAC,EAAE,WAAW,QAAQ,KAAK;AAE1D,YAAA,WAAW,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,MACpC,OAAO,MAAM,aACf;AACE,qBAAW,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS;AAAA,YACzC,cAAc,OAAO,MAAM,KAAK;AAAA,UAAA;AAAA,QAExC;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;"}
|