document-model 1.0.53 → 1.0.55

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.
Files changed (93) hide show
  1. package/dist/browser/cjs/document-model.js +1 -1
  2. package/dist/browser/cjs/document.js +1 -1
  3. package/dist/browser/cjs/index.js +1 -1
  4. package/dist/browser/cjs/internal/{index-Cb6Xq42D.js → index-C_OFq7P5.js} +1 -1
  5. package/dist/browser/cjs/internal/{index-BAk-LH-1.js → index-Dwhv4k_6.js} +1 -1
  6. package/dist/browser/cjs/internal/{object-D1n8rS0m.js → object-CeLE3akL.js} +1 -1
  7. package/dist/browser/es/document-model.js +2 -2
  8. package/dist/browser/es/document.js +2 -2
  9. package/dist/browser/es/index.js +3 -3
  10. package/dist/browser/es/internal/{index-DeOZH3b_.js → index-DvHnaqeu.js} +1 -1
  11. package/dist/browser/es/internal/{index-DwxnEmzI.js → index-Xcvn-MUq.js} +1 -1
  12. package/dist/browser/es/internal/{object-DsqsdDFj.js → object-BDWVt0Zy.js} +4 -4
  13. package/dist/node/cjs/document-model.js +1 -1
  14. package/dist/node/cjs/document.js +1 -1
  15. package/dist/node/cjs/index.js +1 -1
  16. package/dist/node/cjs/internal/{index-CpjKrifV.js → index-Bi9yeV3W.js} +1 -1
  17. package/dist/node/cjs/internal/{index-DzXcygIJ.js → index-GZsLKtHl.js} +1 -1
  18. package/dist/node/cjs/internal/object-CnhDksx1.js +20 -0
  19. package/dist/node/es/document-model.js +2 -2
  20. package/dist/node/es/document.js +2 -2
  21. package/dist/node/es/index.js +3 -3
  22. package/dist/node/es/internal/{index-V-nmqbyU.js → index-B6iEYnbQ.js} +1 -1
  23. package/dist/node/es/internal/{index-CUitPgxf.js → index-Chx4C-Xl.js} +1 -1
  24. package/dist/node/es/internal/{object-C0WcyLCx.js → object-CnV5hY_A.js} +4 -4
  25. package/dist/src/document/actions/creators.d.ts +47 -0
  26. package/dist/src/document/actions/index.d.ts +14 -0
  27. package/dist/src/document/actions/types.d.ts +15 -0
  28. package/dist/src/document/index.d.ts +6 -0
  29. package/dist/src/document/object.d.ts +1175 -0
  30. package/dist/src/document/reducer.d.ts +32 -0
  31. package/dist/src/document/schema/index.d.ts +2 -0
  32. package/dist/src/document/schema/types.d.ts +176 -0
  33. package/dist/src/document/schema/zod.d.ts +113 -0
  34. package/dist/src/document/signal.d.ts +29 -0
  35. package/dist/src/document/types.d.ts +249 -0
  36. package/dist/src/document/utils/base.d.ts +85 -0
  37. package/dist/src/document/utils/file.d.ts +48 -0
  38. package/dist/src/document/utils/index.d.ts +4 -0
  39. package/dist/src/document/utils/node.d.ts +9 -0
  40. package/dist/src/document/utils/validation.d.ts +2 -0
  41. package/dist/src/document-model/custom/reducers/header.d.ts +2 -0
  42. package/dist/src/document-model/custom/reducers/module.d.ts +2 -0
  43. package/dist/src/document-model/custom/reducers/operation-error.d.ts +2 -0
  44. package/dist/src/document-model/custom/reducers/operation-example.d.ts +2 -0
  45. package/dist/src/document-model/custom/reducers/operation.d.ts +2 -0
  46. package/dist/src/document-model/custom/reducers/state.d.ts +2 -0
  47. package/dist/src/document-model/custom/reducers/versioning.d.ts +7 -0
  48. package/dist/src/document-model/custom/utils.d.ts +7 -0
  49. package/dist/src/document-model/gen/actions.d.ts +15 -0
  50. package/dist/src/document-model/gen/creators.d.ts +7 -0
  51. package/dist/src/document-model/gen/document-model.d.ts +2 -0
  52. package/dist/src/document-model/gen/header/actions.d.ts +9 -0
  53. package/dist/src/document-model/gen/header/creators.d.ts +8 -0
  54. package/dist/src/document-model/gen/header/object.d.ts +12 -0
  55. package/dist/src/document-model/gen/header/operations.d.ts +10 -0
  56. package/dist/src/document-model/gen/index.d.ts +5 -0
  57. package/dist/src/document-model/gen/module/actions.d.ts +8 -0
  58. package/dist/src/document-model/gen/module/creators.d.ts +7 -0
  59. package/dist/src/document-model/gen/module/object.d.ts +11 -0
  60. package/dist/src/document-model/gen/module/operations.d.ts +9 -0
  61. package/dist/src/document-model/gen/object.d.ts +28 -0
  62. package/dist/src/document-model/gen/operation/actions.d.ts +13 -0
  63. package/dist/src/document-model/gen/operation/creators.d.ts +12 -0
  64. package/dist/src/document-model/gen/operation/object.d.ts +16 -0
  65. package/dist/src/document-model/gen/operation/operations.d.ts +14 -0
  66. package/dist/src/document-model/gen/operation-error/actions.d.ts +10 -0
  67. package/dist/src/document-model/gen/operation-error/creators.d.ts +9 -0
  68. package/dist/src/document-model/gen/operation-error/object.d.ts +13 -0
  69. package/dist/src/document-model/gen/operation-error/operations.d.ts +11 -0
  70. package/dist/src/document-model/gen/operation-example/actions.d.ts +7 -0
  71. package/dist/src/document-model/gen/operation-example/creators.d.ts +6 -0
  72. package/dist/src/document-model/gen/operation-example/object.d.ts +10 -0
  73. package/dist/src/document-model/gen/operation-example/operations.d.ts +8 -0
  74. package/dist/src/document-model/gen/reducer.d.ts +5 -0
  75. package/dist/src/document-model/gen/schema/index.d.ts +2 -0
  76. package/dist/src/document-model/gen/schema/types.d.ts +453 -0
  77. package/dist/src/document-model/gen/schema/zod.d.ts +453 -0
  78. package/dist/src/document-model/gen/state/actions.d.ts +9 -0
  79. package/dist/src/document-model/gen/state/creators.d.ts +8 -0
  80. package/dist/src/document-model/gen/state/object.d.ts +12 -0
  81. package/dist/src/document-model/gen/state/operations.d.ts +10 -0
  82. package/dist/src/document-model/gen/types.d.ts +8 -0
  83. package/dist/src/document-model/gen/utils.d.ts +6 -0
  84. package/dist/src/document-model/gen/versioning/actions.d.ts +8 -0
  85. package/dist/src/document-model/gen/versioning/creators.d.ts +7 -0
  86. package/dist/src/document-model/gen/versioning/object.d.ts +11 -0
  87. package/dist/src/document-model/gen/versioning/operations.d.ts +9 -0
  88. package/dist/src/document-model/index.d.ts +80 -0
  89. package/dist/src/index.d.ts +25 -0
  90. package/dist/vite.config.d.ts +2 -0
  91. package/dist/vitest.config.d.ts +2 -0
  92. package/package.json +1 -1
  93. package/dist/node/cjs/internal/object-Cx_c54j_.js +0 -20
@@ -0,0 +1,85 @@
1
+ import { baseReducer } from '../reducer';
2
+ import { Action, BaseAction, UndoRedoAction, Document, ExtendedState, ImmutableStateReducer, Reducer, Immutable, OperationScope, State, CreateState, PartialState, DocumentOperations, DocumentHeader, DocumentOperationsIgnoreMap, Operation, MappedOperation } from '../types';
3
+ import { SignalDispatch } from '../signal';
4
+ export declare function isNoopOperation(op: Partial<Operation>): boolean;
5
+ export declare function isUndoRedo(action: Action): action is UndoRedoAction;
6
+ export declare function isBaseAction(action: Action): action is BaseAction;
7
+ /**
8
+ * Helper function to be used by action creators.
9
+ *
10
+ * @remarks
11
+ * Creates an action with the given type and input properties. The input
12
+ * properties default to an empty object.
13
+ *
14
+ * @typeParam A - Type of the action to be returned.
15
+ *
16
+ * @param type - The type of the action.
17
+ * @param input - The input properties of the action.
18
+ * @param attachments - The attachments included in the action.
19
+ * @param validator - The validator to use for the input properties.
20
+ * @param scope - The scope of the action, can either be 'global' or 'local'.
21
+ * @param skip - The number of operations to skip before this new action is applied.
22
+ *
23
+ * @throws Error if the type is empty or not a string.
24
+ *
25
+ * @returns The new action.
26
+ */
27
+ export declare function createAction<A extends Action>(type: A['type'], input?: A['input'], attachments?: Action['attachments'], validator?: () => {
28
+ parse(v: unknown): A['input'];
29
+ }, scope?: OperationScope): A;
30
+ /**
31
+ * Helper function to create a document model reducer.
32
+ *
33
+ * @remarks
34
+ * This function creates a new reducer that wraps the provided `reducer` with
35
+ * `documentReducer`, adding support for document actions:
36
+ * - `SET_NAME`
37
+ * - `UNDO`
38
+ * - `REDO`
39
+ * - `PRUNE`
40
+ *
41
+ * It also updates the document-related attributes on every operation.
42
+ *
43
+ * @param reducer - The custom reducer to wrap.
44
+ * @param documentReducer - The document reducer to use.
45
+ *
46
+ * @returns The new reducer.
47
+ */
48
+ export declare function createReducer<S = unknown, A extends Action = Action, L = unknown>(reducer: ImmutableStateReducer<S, A, L>, documentReducer?: typeof baseReducer): Reducer<S, A, L>;
49
+ export declare const createExtendedState: <S, L>(initialState?: Partial<ExtendedState<PartialState<S>, PartialState<L>>> | undefined, createState?: CreateState<S, L> | undefined) => ExtendedState<S, L>;
50
+ /**
51
+ * Builds the initial document state from the provided data.
52
+ *
53
+ * @typeParam T - The type of the data.
54
+ * @typeParam A - The type of the actions.
55
+ *
56
+ * @param initialState - The initial state of the document. The `data` property
57
+ * is required, but all other properties are optional.
58
+ *
59
+ * @returns The new document state.
60
+ */
61
+ export declare const createDocument: <S, A extends Action, L = unknown>(initialState?: Partial<ExtendedState<PartialState<S>, PartialState<L>>> | undefined, createState?: ((state?: Partial<State<PartialState<S>, PartialState<L>>> | undefined) => State<S, L>) | undefined) => Document<S, A, L>;
62
+ export declare const hashDocument: (document: Pick<Document, 'state'>, scope?: OperationScope) => string;
63
+ export declare const hashKey: (date?: Date, randomLimit?: number) => string;
64
+ export declare function readOnly<T>(value: T): Immutable<T>;
65
+ /**
66
+ * Maps skipped operations in an array of operations.
67
+ * Skipped operations are operations that are ignored during processing.
68
+ * @param operations - The array of operations to map.
69
+ * @param skippedHeadOperations - The number of operations to skip at the head of the array of operations.
70
+ * @returns An array of mapped operations with ignore flag indicating if the operation is skipped.
71
+ * @throws Error if the operation index is invalid and there are missing operations.
72
+ */
73
+ export declare function mapSkippedOperations<A extends Action>(operations: Operation<BaseAction | A>[], skippedHeadOperations?: number): MappedOperation<A>[];
74
+ export declare function calculateSkipsLeft<A extends Action>(operations: Operation<BaseAction | A>[], currentIndex: number, skip: number): number;
75
+ export declare function sortOperations<A extends Action>(operations: DocumentOperations<A>): Operation<BaseAction | A>[];
76
+ export declare function sortMappedOperations<A extends Action>(operations: DocumentOperationsIgnoreMap<A>): MappedOperation<A>[];
77
+ export declare function replayOperations<T, A extends Action, L>(initialState: ExtendedState<T, L>, operations: DocumentOperations<A>, reducer: ImmutableStateReducer<T, A, L>, dispatch?: SignalDispatch, header?: DocumentHeader, documentReducer?: typeof baseReducer, skipHeaderOperations?: SkipHeaderOperations, options?: {
78
+ checkHashes?: boolean;
79
+ }): Document<T, A, L>;
80
+ export type SkipHeaderOperations = Partial<Record<OperationScope, number>>;
81
+ export type ReplayDocumentOptions = {
82
+ checkHashes?: boolean;
83
+ };
84
+ export declare function replayDocument<T, A extends Action, L>(initialState: ExtendedState<T, L>, operations: DocumentOperations<A>, reducer: Reducer<T, A, L>, dispatch?: SignalDispatch, header?: DocumentHeader, skipHeaderOperations?: SkipHeaderOperations, options?: ReplayDocumentOptions): Document<T, A, L>;
85
+ export declare function isSameDocument(documentA: Document, documentB: Document): boolean;
@@ -0,0 +1,48 @@
1
+ import JSZip from 'jszip';
2
+ import type { Action, AttachmentInput, Document, Reducer } from '../types';
3
+ import { ReplayDocumentOptions } from './base';
4
+ export type FileInput = string | number[] | Uint8Array | ArrayBuffer | Blob;
5
+ export declare const createZip: (document: Document) => Promise<JSZip>;
6
+ /**
7
+ * Saves a document to a ZIP file.
8
+ *
9
+ * @remarks
10
+ * This function creates a ZIP file containing the document's state, operations,
11
+ * and file attachments. The file is saved to the specified path.
12
+ *
13
+ * @param document - The document to save to the file.
14
+ * @param path - The path to save the file to.
15
+ * @param extension - The extension to use for the file.
16
+ * @returns A promise that resolves to the path of the saved file.
17
+ */
18
+ export declare const saveToFile: (document: Document, path: string, extension: string, name?: string) => Promise<string>;
19
+ export declare const saveToFileHandle: (document: Document, input: FileSystemFileHandle) => Promise<void>;
20
+ /**
21
+ * Loads a document from a ZIP file.
22
+ *
23
+ * @remarks
24
+ * This function reads a ZIP file and returns the document state after
25
+ * applying all the operations. The reducer is used to apply the operations.
26
+ *
27
+ * @typeParam S - The type of the state object.
28
+ * @typeParam A - The type of the actions that can be applied to the state object.
29
+ *
30
+ * @param path - The path to the ZIP file.
31
+ * @param reducer - The reducer to apply the operations to the state object.
32
+ * @returns A promise that resolves to the document state after applying all the operations.
33
+ * @throws An error if the initial state or the operations history is not found in the ZIP file.
34
+ */
35
+ export declare const loadFromFile: <S, A extends Action, L>(path: string, reducer: Reducer<S, A, L>, options?: ReplayDocumentOptions) => Promise<Document<S, A, L>>;
36
+ export declare const loadFromInput: <S, A extends Action, L>(input: FileInput, reducer: Reducer<S, A, L>, options?: ReplayDocumentOptions) => Promise<Document<S, A, L>>;
37
+ /**
38
+ * Fetches an attachment from a URL and returns its base64-encoded data and MIME type.
39
+ * @param url - The URL of the attachment to fetch.
40
+ * @returns A Promise that resolves to an object containing the base64-encoded data and MIME type of the attachment.
41
+ */
42
+ export declare function getRemoteFile(url: string): Promise<AttachmentInput>;
43
+ /**
44
+ * Reads an attachment from a file and returns its base64-encoded data and MIME type.
45
+ * @param path - The path of the attachment file to read.
46
+ * @returns A Promise that resolves to an object containing the base64-encoded data and MIME type of the attachment.
47
+ */
48
+ export declare function getLocalFile(path: string): Promise<AttachmentInput>;
@@ -0,0 +1,4 @@
1
+ export * from './base';
2
+ export { createAction, createDocument, createExtendedState, createReducer, hashDocument, hashKey, isBaseAction, mapSkippedOperations, readOnly, replayDocument, replayOperations, sortMappedOperations, sortOperations, } from './base';
3
+ export * from './file';
4
+ export * from './validation';
@@ -0,0 +1,9 @@
1
+ /// <reference types="node" />
2
+ export declare function writeFile(path: string, name: string, data: Uint8Array): Promise<string>;
3
+ export declare function readFile(path: string): Buffer;
4
+ export declare function fetchFile(url: string): Promise<{
5
+ buffer: Buffer;
6
+ mimeType?: string;
7
+ }>;
8
+ export declare const getFile: (file: string) => Promise<Buffer>;
9
+ export declare const hash: (data: string, algorithm?: string) => string;
@@ -0,0 +1,2 @@
1
+ import { DocumentOperations, Action, ValidationError } from '../types';
2
+ export declare function validateOperations<A extends Action>(operations: DocumentOperations<A>): ValidationError[];
@@ -0,0 +1,2 @@
1
+ import { DocumentModelHeaderOperations } from '../../gen/header/operations';
2
+ export declare const reducer: DocumentModelHeaderOperations;
@@ -0,0 +1,2 @@
1
+ import { DocumentModelModuleOperations } from '../../gen/module/operations';
2
+ export declare const reducer: DocumentModelModuleOperations;
@@ -0,0 +1,2 @@
1
+ import { DocumentModelOperationErrorOperations } from '../../gen/operation-error/operations';
2
+ export declare const reducer: DocumentModelOperationErrorOperations;
@@ -0,0 +1,2 @@
1
+ import { DocumentModelOperationExampleOperations } from '../../gen/operation-example/operations';
2
+ export declare const reducer: DocumentModelOperationExampleOperations;
@@ -0,0 +1,2 @@
1
+ import { DocumentModelOperationOperations } from '../../gen/operation/operations';
2
+ export declare const reducer: DocumentModelOperationOperations;
@@ -0,0 +1,2 @@
1
+ import { DocumentModelStateOperations } from '../../gen/state/operations';
2
+ export declare const reducer: DocumentModelStateOperations;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * This is a scaffold file meant for customization:
3
+ * - modify it by implementing the reducer functions
4
+ * - delete the file and run the code generator again to have it reset
5
+ */
6
+ import { DocumentModelVersioningOperations } from '../../gen/versioning/operations';
7
+ export declare const reducer: DocumentModelVersioningOperations;
@@ -0,0 +1,7 @@
1
+ import { ValidationError } from '../../document';
2
+ import { Module, Operation } from '../gen/schema';
3
+ export declare function validateInitialState(initialState: string, allowEmptyState?: boolean): ValidationError[];
4
+ export declare function validateStateSchemaName(schema: string, documentName: string, scope?: string, allowEmptySchema?: boolean): ValidationError[];
5
+ export declare function validateModules(modules: Array<Module>): ValidationError[];
6
+ export declare function validateModule(mod: Module): ValidationError[];
7
+ export declare function validateModuleOperation(operation: Operation): ValidationError[];
@@ -0,0 +1,15 @@
1
+ import { DocumentModelHeaderAction } from './header/actions';
2
+ import { DocumentModelVersioningAction } from './versioning/actions';
3
+ import { DocumentModelModuleAction } from './module/actions';
4
+ import { DocumentModelOperationErrorAction } from './operation-error/actions';
5
+ import { DocumentModelOperationExampleAction } from './operation-example/actions';
6
+ import { DocumentModelOperationAction } from './operation/actions';
7
+ import { DocumentModelStateAction } from './state/actions';
8
+ export * from './header/actions';
9
+ export * from './versioning/actions';
10
+ export * from './module/actions';
11
+ export * from './operation-error/actions';
12
+ export * from './operation-example/actions';
13
+ export * from './operation/actions';
14
+ export * from './state/actions';
15
+ export type DocumentModelAction = DocumentModelHeaderAction | DocumentModelVersioningAction | DocumentModelModuleAction | DocumentModelOperationErrorAction | DocumentModelOperationExampleAction | DocumentModelOperationAction | DocumentModelStateAction;
@@ -0,0 +1,7 @@
1
+ export * from './header/creators';
2
+ export * from './versioning/creators';
3
+ export * from './module/creators';
4
+ export * from './operation-error/creators';
5
+ export * from './operation-example/creators';
6
+ export * from './operation/creators';
7
+ export * from './state/creators';
@@ -0,0 +1,2 @@
1
+ import type { DocumentModelState } from '..';
2
+ export declare const documentModel: DocumentModelState;
@@ -0,0 +1,9 @@
1
+ import { Action } from '../../../document';
2
+ import { SetModelNameInput, SetModelIdInput, SetModelExtensionInput, SetModelDescriptionInput, SetAuthorNameInput, SetAuthorWebsiteInput } from '../types';
3
+ export type SetModelNameAction = Action<'SET_MODEL_NAME', SetModelNameInput>;
4
+ export type SetModelIdAction = Action<'SET_MODEL_ID', SetModelIdInput>;
5
+ export type SetModelExtensionAction = Action<'SET_MODEL_EXTENSION', SetModelExtensionInput>;
6
+ export type SetModelDescriptionAction = Action<'SET_MODEL_DESCRIPTION', SetModelDescriptionInput>;
7
+ export type SetAuthorNameAction = Action<'SET_AUTHOR_NAME', SetAuthorNameInput>;
8
+ export type SetAuthorWebsiteAction = Action<'SET_AUTHOR_WEBSITE', SetAuthorWebsiteInput>;
9
+ export type DocumentModelHeaderAction = SetModelNameAction | SetModelIdAction | SetModelExtensionAction | SetModelDescriptionAction | SetAuthorNameAction | SetAuthorWebsiteAction;
@@ -0,0 +1,8 @@
1
+ import { SetModelNameInput, SetModelIdInput, SetModelExtensionInput, SetModelDescriptionInput, SetAuthorNameInput, SetAuthorWebsiteInput } from '../types';
2
+ import { SetModelNameAction, SetModelIdAction, SetModelExtensionAction, SetModelDescriptionAction, SetAuthorNameAction, SetAuthorWebsiteAction } from './actions';
3
+ export declare const setModelName: (input: SetModelNameInput) => SetModelNameAction;
4
+ export declare const setModelId: (input: SetModelIdInput) => SetModelIdAction;
5
+ export declare const setModelExtension: (input: SetModelExtensionInput) => SetModelExtensionAction;
6
+ export declare const setModelDescription: (input: SetModelDescriptionInput) => SetModelDescriptionAction;
7
+ export declare const setAuthorName: (input: SetAuthorNameInput) => SetAuthorNameAction;
8
+ export declare const setAuthorWebsite: (input: SetAuthorWebsiteInput) => SetAuthorWebsiteAction;
@@ -0,0 +1,12 @@
1
+ import { BaseDocument } from '../../../document/object';
2
+ import { SetModelNameInput, SetModelIdInput, SetModelExtensionInput, SetModelDescriptionInput, SetAuthorNameInput, SetAuthorWebsiteInput, DocumentModelState, DocumentModelLocalState } from '../types';
3
+ import { DocumentModelAction } from '../actions';
4
+ import { ReducerOptions } from '../../../document';
5
+ export default class DocumentModel_Header extends BaseDocument<DocumentModelState, DocumentModelAction, DocumentModelLocalState> {
6
+ setModelName(input: SetModelNameInput, options?: ReducerOptions): this;
7
+ setModelId(input: SetModelIdInput, options?: ReducerOptions): this;
8
+ setModelExtension(input: SetModelExtensionInput, options?: ReducerOptions): this;
9
+ setModelDescription(input: SetModelDescriptionInput, options?: ReducerOptions): this;
10
+ setAuthorName(input: SetAuthorNameInput, options?: ReducerOptions): this;
11
+ setAuthorWebsite(input: SetAuthorWebsiteInput, options?: ReducerOptions): this;
12
+ }
@@ -0,0 +1,10 @@
1
+ import { SetModelNameAction, SetModelIdAction, SetModelExtensionAction, SetModelDescriptionAction, SetAuthorNameAction, SetAuthorWebsiteAction } from './actions';
2
+ import { DocumentModelState } from '../types';
3
+ export interface DocumentModelHeaderOperations {
4
+ setModelNameOperation: (state: DocumentModelState, action: SetModelNameAction) => void;
5
+ setModelIdOperation: (state: DocumentModelState, action: SetModelIdAction) => void;
6
+ setModelExtensionOperation: (state: DocumentModelState, action: SetModelExtensionAction) => void;
7
+ setModelDescriptionOperation: (state: DocumentModelState, action: SetModelDescriptionAction) => void;
8
+ setAuthorNameOperation: (state: DocumentModelState, action: SetAuthorNameAction) => void;
9
+ setAuthorWebsiteOperation: (state: DocumentModelState, action: SetAuthorWebsiteAction) => void;
10
+ }
@@ -0,0 +1,5 @@
1
+ export * from './actions';
2
+ export * from './document-model';
3
+ export * from './object';
4
+ export * from './types';
5
+ export * as actions from './creators';
@@ -0,0 +1,8 @@
1
+ import { Action } from '../../../document';
2
+ import { AddModuleInput, SetModuleNameInput, SetModuleDescriptionInput, DeleteModuleInput, ReorderModulesInput } from '../types';
3
+ export type AddModuleAction = Action<'ADD_MODULE', AddModuleInput>;
4
+ export type SetModuleNameAction = Action<'SET_MODULE_NAME', SetModuleNameInput>;
5
+ export type SetModuleDescriptionAction = Action<'SET_MODULE_DESCRIPTION', SetModuleDescriptionInput>;
6
+ export type DeleteModuleAction = Action<'DELETE_MODULE', DeleteModuleInput>;
7
+ export type ReorderModulesAction = Action<'REORDER_MODULES', ReorderModulesInput>;
8
+ export type DocumentModelModuleAction = AddModuleAction | SetModuleNameAction | SetModuleDescriptionAction | DeleteModuleAction | ReorderModulesAction;
@@ -0,0 +1,7 @@
1
+ import { AddModuleInput, SetModuleNameInput, SetModuleDescriptionInput, DeleteModuleInput, ReorderModulesInput } from '../types';
2
+ import { AddModuleAction, SetModuleNameAction, SetModuleDescriptionAction, DeleteModuleAction, ReorderModulesAction } from './actions';
3
+ export declare const addModule: (input: AddModuleInput) => AddModuleAction;
4
+ export declare const setModuleName: (input: SetModuleNameInput) => SetModuleNameAction;
5
+ export declare const setModuleDescription: (input: SetModuleDescriptionInput) => SetModuleDescriptionAction;
6
+ export declare const deleteModule: (input: DeleteModuleInput) => DeleteModuleAction;
7
+ export declare const reorderModules: (input: ReorderModulesInput) => ReorderModulesAction;
@@ -0,0 +1,11 @@
1
+ import { BaseDocument } from '../../../document/object';
2
+ import { AddModuleInput, SetModuleNameInput, SetModuleDescriptionInput, DeleteModuleInput, ReorderModulesInput, DocumentModelState, DocumentModelLocalState } from '../types';
3
+ import { DocumentModelAction } from '../actions';
4
+ import { ReducerOptions } from '../../../document';
5
+ export default class DocumentModel_Module extends BaseDocument<DocumentModelState, DocumentModelAction, DocumentModelLocalState> {
6
+ addModule(input: AddModuleInput, options?: ReducerOptions): this;
7
+ setModuleName(input: SetModuleNameInput, options?: ReducerOptions): this;
8
+ setModuleDescription(input: SetModuleDescriptionInput, options?: ReducerOptions): this;
9
+ deleteModule(input: DeleteModuleInput, options?: ReducerOptions): this;
10
+ reorderModules(input: ReorderModulesInput, options?: ReducerOptions): this;
11
+ }
@@ -0,0 +1,9 @@
1
+ import { AddModuleAction, SetModuleNameAction, SetModuleDescriptionAction, DeleteModuleAction, ReorderModulesAction } from './actions';
2
+ import { DocumentModelState } from '../types';
3
+ export interface DocumentModelModuleOperations {
4
+ addModuleOperation: (state: DocumentModelState, action: AddModuleAction) => void;
5
+ setModuleNameOperation: (state: DocumentModelState, action: SetModuleNameAction) => void;
6
+ setModuleDescriptionOperation: (state: DocumentModelState, action: SetModuleDescriptionAction) => void;
7
+ deleteModuleOperation: (state: DocumentModelState, action: DeleteModuleAction) => void;
8
+ reorderModulesOperation: (state: DocumentModelState, action: ReorderModulesAction) => void;
9
+ }
@@ -0,0 +1,28 @@
1
+ import { DocumentModelLocalState, DocumentModelState } from './types';
2
+ import { ExtendedState, PartialState, SignalDispatch } from '../../document';
3
+ import { BaseDocument } from '../../document/object';
4
+ import { DocumentModelAction } from './actions';
5
+ import DocumentModel_Header from './header/object';
6
+ import DocumentModel_Versioning from './versioning/object';
7
+ import DocumentModel_Module from './module/object';
8
+ import DocumentModel_OperationError from './operation-error/object';
9
+ import DocumentModel_OperationExample from './operation-example/object';
10
+ import DocumentModel_Operation from './operation/object';
11
+ import DocumentModel_State from './state/object';
12
+ export * from './header/object';
13
+ export * from './versioning/object';
14
+ export * from './module/object';
15
+ export * from './operation-error/object';
16
+ export * from './operation-example/object';
17
+ export * from './operation/object';
18
+ export * from './state/object';
19
+ interface DocumentModel extends DocumentModel_Header, DocumentModel_Versioning, DocumentModel_Module, DocumentModel_OperationError, DocumentModel_OperationExample, DocumentModel_Operation, DocumentModel_State {
20
+ }
21
+ declare class DocumentModel extends BaseDocument<DocumentModelState, DocumentModelAction, DocumentModelLocalState> {
22
+ static fileExtension: string;
23
+ constructor(initialState?: Partial<ExtendedState<PartialState<DocumentModelState>, PartialState<DocumentModelLocalState>>>, dispatch?: SignalDispatch);
24
+ saveToFile(path: string, name?: string): Promise<string>;
25
+ loadFromFile(path: string): Promise<void>;
26
+ static fromFile(path: string): Promise<DocumentModel>;
27
+ }
28
+ export { DocumentModel };
@@ -0,0 +1,13 @@
1
+ import { Action } from '../../../document';
2
+ import { AddOperationInput, SetOperationNameInput, SetOperationSchemaInput, SetOperationDescriptionInput, SetOperationTemplateInput, SetOperationReducerInput, MoveOperationInput, DeleteOperationInput, ReorderModuleOperationsInput, SetOperationScopeInput } from '../types';
3
+ export type AddOperationAction = Action<'ADD_OPERATION', AddOperationInput>;
4
+ export type SetOperationNameAction = Action<'SET_OPERATION_NAME', SetOperationNameInput>;
5
+ export type SetOperationScopeAction = Action<'SET_OPERATION_SCOPE', SetOperationScopeInput>;
6
+ export type SetOperationSchemaAction = Action<'SET_OPERATION_SCHEMA', SetOperationSchemaInput>;
7
+ export type SetOperationDescriptionAction = Action<'SET_OPERATION_DESCRIPTION', SetOperationDescriptionInput>;
8
+ export type SetOperationTemplateAction = Action<'SET_OPERATION_TEMPLATE', SetOperationTemplateInput>;
9
+ export type SetOperationReducerAction = Action<'SET_OPERATION_REDUCER', SetOperationReducerInput>;
10
+ export type MoveOperationAction = Action<'MOVE_OPERATION', MoveOperationInput>;
11
+ export type DeleteOperationAction = Action<'DELETE_OPERATION', DeleteOperationInput>;
12
+ export type ReorderModuleOperationsAction = Action<'REORDER_MODULE_OPERATIONS', ReorderModuleOperationsInput>;
13
+ export type DocumentModelOperationAction = AddOperationAction | SetOperationNameAction | SetOperationScopeAction | SetOperationSchemaAction | SetOperationDescriptionAction | SetOperationTemplateAction | SetOperationReducerAction | MoveOperationAction | DeleteOperationAction | ReorderModuleOperationsAction;
@@ -0,0 +1,12 @@
1
+ import { AddOperationInput, SetOperationNameInput, SetOperationSchemaInput, SetOperationDescriptionInput, SetOperationTemplateInput, SetOperationReducerInput, MoveOperationInput, DeleteOperationInput, ReorderModuleOperationsInput, SetOperationScopeInput } from '../types';
2
+ import { AddOperationAction, SetOperationNameAction, SetOperationSchemaAction, SetOperationDescriptionAction, SetOperationTemplateAction, SetOperationReducerAction, MoveOperationAction, DeleteOperationAction, ReorderModuleOperationsAction, SetOperationScopeAction } from './actions';
3
+ export declare const addOperation: (input: AddOperationInput) => AddOperationAction;
4
+ export declare const setOperationName: (input: SetOperationNameInput) => SetOperationNameAction;
5
+ export declare const setOperationScope: (input: SetOperationScopeInput) => SetOperationScopeAction;
6
+ export declare const setOperationSchema: (input: SetOperationSchemaInput) => SetOperationSchemaAction;
7
+ export declare const setOperationDescription: (input: SetOperationDescriptionInput) => SetOperationDescriptionAction;
8
+ export declare const setOperationTemplate: (input: SetOperationTemplateInput) => SetOperationTemplateAction;
9
+ export declare const setOperationReducer: (input: SetOperationReducerInput) => SetOperationReducerAction;
10
+ export declare const moveOperation: (input: MoveOperationInput) => MoveOperationAction;
11
+ export declare const deleteOperation: (input: DeleteOperationInput) => DeleteOperationAction;
12
+ export declare const reorderModuleOperations: (input: ReorderModuleOperationsInput) => ReorderModuleOperationsAction;
@@ -0,0 +1,16 @@
1
+ import { BaseDocument } from '../../../document/object';
2
+ import { AddOperationInput, SetOperationNameInput, SetOperationSchemaInput, SetOperationDescriptionInput, SetOperationTemplateInput, SetOperationReducerInput, MoveOperationInput, DeleteOperationInput, ReorderModuleOperationsInput, DocumentModelState, SetOperationScopeInput, DocumentModelLocalState } from '../types';
3
+ import { DocumentModelAction } from '../actions';
4
+ import { ReducerOptions } from '../../../document';
5
+ export default class DocumentModel_Operation extends BaseDocument<DocumentModelState, DocumentModelAction, DocumentModelLocalState> {
6
+ addOperation(input: AddOperationInput, options?: ReducerOptions): this;
7
+ setOperationName(input: SetOperationNameInput, options?: ReducerOptions): this;
8
+ setOperationScope(input: SetOperationScopeInput, options?: ReducerOptions): this;
9
+ setOperationSchema(input: SetOperationSchemaInput, options?: ReducerOptions): this;
10
+ setOperationDescription(input: SetOperationDescriptionInput, options?: ReducerOptions): this;
11
+ setOperationTemplate(input: SetOperationTemplateInput, options?: ReducerOptions): this;
12
+ setOperationReducer(input: SetOperationReducerInput, options?: ReducerOptions): this;
13
+ moveOperation(input: MoveOperationInput, options?: ReducerOptions): this;
14
+ deleteOperation(input: DeleteOperationInput, options?: ReducerOptions): this;
15
+ reorderModuleOperations(input: ReorderModuleOperationsInput, options?: ReducerOptions): this;
16
+ }
@@ -0,0 +1,14 @@
1
+ import { AddOperationAction, SetOperationNameAction, SetOperationSchemaAction, SetOperationDescriptionAction, SetOperationTemplateAction, SetOperationReducerAction, MoveOperationAction, DeleteOperationAction, ReorderModuleOperationsAction, SetOperationScopeAction } from './actions';
2
+ import { DocumentModelState } from '../types';
3
+ export interface DocumentModelOperationOperations {
4
+ addOperationOperation: (state: DocumentModelState, action: AddOperationAction) => void;
5
+ setOperationNameOperation: (state: DocumentModelState, action: SetOperationNameAction) => void;
6
+ setOperationScopeOperation: (state: DocumentModelState, action: SetOperationScopeAction) => void;
7
+ setOperationSchemaOperation: (state: DocumentModelState, action: SetOperationSchemaAction) => void;
8
+ setOperationDescriptionOperation: (state: DocumentModelState, action: SetOperationDescriptionAction) => void;
9
+ setOperationTemplateOperation: (state: DocumentModelState, action: SetOperationTemplateAction) => void;
10
+ setOperationReducerOperation: (state: DocumentModelState, action: SetOperationReducerAction) => void;
11
+ moveOperationOperation: (state: DocumentModelState, action: MoveOperationAction) => void;
12
+ deleteOperationOperation: (state: DocumentModelState, action: DeleteOperationAction) => void;
13
+ reorderModuleOperationsOperation: (state: DocumentModelState, action: ReorderModuleOperationsAction) => void;
14
+ }
@@ -0,0 +1,10 @@
1
+ import { Action } from '../../../document';
2
+ import { AddOperationErrorInput, SetOperationErrorCodeInput, SetOperationErrorNameInput, SetOperationErrorDescriptionInput, SetOperationErrorTemplateInput, DeleteOperationErrorInput, ReorderOperationErrorsInput } from '../types';
3
+ export type AddOperationErrorAction = Action<'ADD_OPERATION_ERROR', AddOperationErrorInput>;
4
+ export type SetOperationErrorCodeAction = Action<'SET_OPERATION_ERROR_CODE', SetOperationErrorCodeInput>;
5
+ export type SetOperationErrorNameAction = Action<'SET_OPERATION_ERROR_NAME', SetOperationErrorNameInput>;
6
+ export type SetOperationErrorDescriptionAction = Action<'SET_OPERATION_ERROR_DESCRIPTION', SetOperationErrorDescriptionInput>;
7
+ export type SetOperationErrorTemplateAction = Action<'SET_OPERATION_ERROR_TEMPLATE', SetOperationErrorTemplateInput>;
8
+ export type DeleteOperationErrorAction = Action<'DELETE_OPERATION_ERROR', DeleteOperationErrorInput>;
9
+ export type ReorderOperationErrorsAction = Action<'REORDER_OPERATION_ERRORS', ReorderOperationErrorsInput>;
10
+ export type DocumentModelOperationErrorAction = AddOperationErrorAction | SetOperationErrorCodeAction | SetOperationErrorNameAction | SetOperationErrorDescriptionAction | SetOperationErrorTemplateAction | DeleteOperationErrorAction | ReorderOperationErrorsAction;
@@ -0,0 +1,9 @@
1
+ import { AddOperationErrorInput, SetOperationErrorCodeInput, SetOperationErrorNameInput, SetOperationErrorDescriptionInput, SetOperationErrorTemplateInput, DeleteOperationErrorInput, ReorderOperationErrorsInput } from '../types';
2
+ import { AddOperationErrorAction, SetOperationErrorCodeAction, SetOperationErrorNameAction, SetOperationErrorDescriptionAction, SetOperationErrorTemplateAction, DeleteOperationErrorAction, ReorderOperationErrorsAction } from './actions';
3
+ export declare const addOperationError: (input: AddOperationErrorInput) => AddOperationErrorAction;
4
+ export declare const setOperationErrorCode: (input: SetOperationErrorCodeInput) => SetOperationErrorCodeAction;
5
+ export declare const setOperationErrorName: (input: SetOperationErrorNameInput) => SetOperationErrorNameAction;
6
+ export declare const setOperationErrorDescription: (input: SetOperationErrorDescriptionInput) => SetOperationErrorDescriptionAction;
7
+ export declare const setOperationErrorTemplate: (input: SetOperationErrorTemplateInput) => SetOperationErrorTemplateAction;
8
+ export declare const deleteOperationError: (input: DeleteOperationErrorInput) => DeleteOperationErrorAction;
9
+ export declare const reorderOperationErrors: (input: ReorderOperationErrorsInput) => ReorderOperationErrorsAction;
@@ -0,0 +1,13 @@
1
+ import { BaseDocument } from '../../../document/object';
2
+ import { AddOperationErrorInput, SetOperationErrorCodeInput, SetOperationErrorNameInput, SetOperationErrorDescriptionInput, SetOperationErrorTemplateInput, DeleteOperationErrorInput, ReorderOperationErrorsInput, DocumentModelState, DocumentModelLocalState } from '../types';
3
+ import { DocumentModelAction } from '../actions';
4
+ import { ReducerOptions } from '../../../document';
5
+ export default class DocumentModel_OperationError extends BaseDocument<DocumentModelState, DocumentModelAction, DocumentModelLocalState> {
6
+ addOperationError(input: AddOperationErrorInput, options?: ReducerOptions): this;
7
+ setOperationErrorCode(input: SetOperationErrorCodeInput, options?: ReducerOptions): this;
8
+ setOperationErrorName(input: SetOperationErrorNameInput, options?: ReducerOptions): this;
9
+ setOperationErrorDescription(input: SetOperationErrorDescriptionInput, options?: ReducerOptions): this;
10
+ setOperationErrorTemplate(input: SetOperationErrorTemplateInput, options?: ReducerOptions): this;
11
+ deleteOperationError(input: DeleteOperationErrorInput, options?: ReducerOptions): this;
12
+ reorderOperationErrors(input: ReorderOperationErrorsInput, options?: ReducerOptions): this;
13
+ }
@@ -0,0 +1,11 @@
1
+ import { AddOperationErrorAction, SetOperationErrorCodeAction, SetOperationErrorNameAction, SetOperationErrorDescriptionAction, SetOperationErrorTemplateAction, DeleteOperationErrorAction, ReorderOperationErrorsAction } from './actions';
2
+ import { DocumentModelState } from '../types';
3
+ export interface DocumentModelOperationErrorOperations {
4
+ addOperationErrorOperation: (state: DocumentModelState, action: AddOperationErrorAction) => void;
5
+ setOperationErrorCodeOperation: (state: DocumentModelState, action: SetOperationErrorCodeAction) => void;
6
+ setOperationErrorNameOperation: (state: DocumentModelState, action: SetOperationErrorNameAction) => void;
7
+ setOperationErrorDescriptionOperation: (state: DocumentModelState, action: SetOperationErrorDescriptionAction) => void;
8
+ setOperationErrorTemplateOperation: (state: DocumentModelState, action: SetOperationErrorTemplateAction) => void;
9
+ deleteOperationErrorOperation: (state: DocumentModelState, action: DeleteOperationErrorAction) => void;
10
+ reorderOperationErrorsOperation: (state: DocumentModelState, action: ReorderOperationErrorsAction) => void;
11
+ }
@@ -0,0 +1,7 @@
1
+ import { Action } from '../../../document';
2
+ import { AddOperationExampleInput, UpdateOperationExampleInput, DeleteOperationExampleInput, ReorderOperationExamplesInput } from '../types';
3
+ export type AddOperationExampleAction = Action<'ADD_OPERATION_EXAMPLE', AddOperationExampleInput>;
4
+ export type UpdateOperationExampleAction = Action<'UPDATE_OPERATION_EXAMPLE', UpdateOperationExampleInput>;
5
+ export type DeleteOperationExampleAction = Action<'DELETE_OPERATION_EXAMPLE', DeleteOperationExampleInput>;
6
+ export type ReorderOperationExamplesAction = Action<'REORDER_OPERATION_EXAMPLES', ReorderOperationExamplesInput>;
7
+ export type DocumentModelOperationExampleAction = AddOperationExampleAction | UpdateOperationExampleAction | DeleteOperationExampleAction | ReorderOperationExamplesAction;
@@ -0,0 +1,6 @@
1
+ import { AddOperationExampleInput, UpdateOperationExampleInput, DeleteOperationExampleInput, ReorderOperationExamplesInput } from '../types';
2
+ import { AddOperationExampleAction, UpdateOperationExampleAction, DeleteOperationExampleAction, ReorderOperationExamplesAction } from './actions';
3
+ export declare const addOperationExample: (input: AddOperationExampleInput) => AddOperationExampleAction;
4
+ export declare const updateOperationExample: (input: UpdateOperationExampleInput) => UpdateOperationExampleAction;
5
+ export declare const deleteOperationExample: (input: DeleteOperationExampleInput) => DeleteOperationExampleAction;
6
+ export declare const reorderOperationExamples: (input: ReorderOperationExamplesInput) => ReorderOperationExamplesAction;
@@ -0,0 +1,10 @@
1
+ import { BaseDocument } from '../../../document/object';
2
+ import { AddOperationExampleInput, UpdateOperationExampleInput, DeleteOperationExampleInput, ReorderOperationExamplesInput, DocumentModelState, DocumentModelLocalState } from '../types';
3
+ import { DocumentModelAction } from '../actions';
4
+ import { ReducerOptions } from '../../../document';
5
+ export default class DocumentModel_OperationExample extends BaseDocument<DocumentModelState, DocumentModelAction, DocumentModelLocalState> {
6
+ addOperationExample(input: AddOperationExampleInput, options?: ReducerOptions): this;
7
+ updateOperationExample(input: UpdateOperationExampleInput, options?: ReducerOptions): this;
8
+ deleteOperationExample(input: DeleteOperationExampleInput, options?: ReducerOptions): this;
9
+ reorderOperationExamples(input: ReorderOperationExamplesInput, options?: ReducerOptions): this;
10
+ }
@@ -0,0 +1,8 @@
1
+ import { AddOperationExampleAction, UpdateOperationExampleAction, DeleteOperationExampleAction, ReorderOperationExamplesAction } from './actions';
2
+ import { DocumentModelState } from '../types';
3
+ export interface DocumentModelOperationExampleOperations {
4
+ addOperationExampleOperation: (state: DocumentModelState, action: AddOperationExampleAction) => void;
5
+ updateOperationExampleOperation: (state: DocumentModelState, action: UpdateOperationExampleAction) => void;
6
+ deleteOperationExampleOperation: (state: DocumentModelState, action: DeleteOperationExampleAction) => void;
7
+ reorderOperationExamplesOperation: (state: DocumentModelState, action: ReorderOperationExamplesAction) => void;
8
+ }
@@ -0,0 +1,5 @@
1
+ import { ImmutableStateReducer } from '../../document/types';
2
+ import { DocumentModelLocalState, DocumentModelState } from './schema';
3
+ import { DocumentModelAction } from './actions';
4
+ export declare const stateReducer: ImmutableStateReducer<DocumentModelState, DocumentModelAction, DocumentModelLocalState>;
5
+ export declare const reducer: import("../../document/types").Reducer<DocumentModelState, DocumentModelAction, DocumentModelLocalState>;
@@ -0,0 +1,2 @@
1
+ export * from "./types";
2
+ export * as z from "./zod";