document-model 1.2.0 → 1.4.0

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 (183) hide show
  1. package/dist/browser/cjs/document-model.js +20 -1
  2. package/dist/browser/cjs/document-model.js.map +1 -0
  3. package/dist/browser/cjs/document.js +15 -1
  4. package/dist/browser/cjs/document.js.map +1 -0
  5. package/dist/browser/cjs/index.js +14 -1
  6. package/dist/browser/cjs/index.js.map +1 -0
  7. package/dist/browser/cjs/internal/index-DdOJi6Ua.js +2336 -0
  8. package/dist/browser/cjs/internal/index-DdOJi6Ua.js.map +1 -0
  9. package/dist/browser/cjs/internal/index-pAtJQrtD.js +49 -0
  10. package/dist/browser/cjs/internal/index-pAtJQrtD.js.map +1 -0
  11. package/dist/browser/cjs/internal/object-CRlmL8Nt.js +4333 -0
  12. package/dist/browser/cjs/internal/object-CRlmL8Nt.js.map +1 -0
  13. package/dist/browser/es/document-model.js +17 -17
  14. package/dist/browser/es/document-model.js.map +1 -0
  15. package/dist/browser/es/document.js +13 -14
  16. package/dist/browser/es/document.js.map +1 -0
  17. package/dist/browser/es/index.js +12 -14
  18. package/dist/browser/es/index.js.map +1 -0
  19. package/dist/browser/es/internal/index-BsGRYydP.js +50 -0
  20. package/dist/browser/es/internal/index-BsGRYydP.js.map +1 -0
  21. package/dist/browser/es/internal/index-C1HKYMZA.js +2337 -0
  22. package/dist/browser/es/internal/index-C1HKYMZA.js.map +1 -0
  23. package/dist/browser/es/internal/object-B562qKhQ.js +4334 -0
  24. package/dist/browser/es/internal/object-B562qKhQ.js.map +1 -0
  25. package/dist/browser/src/document/actions/creators.d.ts +2 -1
  26. package/dist/browser/src/document/actions/index.d.ts +1 -0
  27. package/dist/browser/src/document/actions/types.d.ts +3 -2
  28. package/dist/browser/src/document/object.d.ts +9 -1128
  29. package/dist/browser/src/document/reducer.d.ts +16 -13
  30. package/dist/browser/src/document/schema/types.d.ts +1 -0
  31. package/dist/browser/src/document/schema/zod.d.ts +12 -8
  32. package/dist/browser/src/document/signal.d.ts +1 -0
  33. package/dist/browser/src/document/types.d.ts +9 -6
  34. package/dist/browser/src/document/utils/base.d.ts +7 -5
  35. package/dist/browser/src/document/utils/document-helpers.d.ts +1 -0
  36. package/dist/browser/src/document/utils/file.d.ts +3 -2
  37. package/dist/browser/src/document/utils/validation.d.ts +1 -0
  38. package/dist/browser/src/document-model/custom/reducers/header.d.ts +1 -0
  39. package/dist/browser/src/document-model/custom/reducers/module.d.ts +1 -0
  40. package/dist/browser/src/document-model/custom/reducers/operation-error.d.ts +1 -0
  41. package/dist/browser/src/document-model/custom/reducers/operation-example.d.ts +1 -0
  42. package/dist/browser/src/document-model/custom/reducers/operation.d.ts +1 -0
  43. package/dist/browser/src/document-model/custom/reducers/state.d.ts +1 -0
  44. package/dist/browser/src/document-model/custom/reducers/versioning.d.ts +1 -5
  45. package/dist/browser/src/document-model/custom/utils.d.ts +1 -0
  46. package/dist/browser/src/document-model/gen/actions.d.ts +1 -0
  47. package/dist/browser/src/document-model/gen/document-model.d.ts +2 -1
  48. package/dist/browser/src/document-model/gen/header/actions.d.ts +1 -0
  49. package/dist/browser/src/document-model/gen/header/creators.d.ts +1 -0
  50. package/dist/browser/src/document-model/gen/header/object.d.ts +1 -0
  51. package/dist/browser/src/document-model/gen/header/operations.d.ts +1 -0
  52. package/dist/browser/src/document-model/gen/module/actions.d.ts +1 -0
  53. package/dist/browser/src/document-model/gen/module/creators.d.ts +1 -0
  54. package/dist/browser/src/document-model/gen/module/object.d.ts +1 -0
  55. package/dist/browser/src/document-model/gen/module/operations.d.ts +1 -0
  56. package/dist/browser/src/document-model/gen/object.d.ts +8 -7
  57. package/dist/browser/src/document-model/gen/operation/actions.d.ts +1 -0
  58. package/dist/browser/src/document-model/gen/operation/creators.d.ts +1 -0
  59. package/dist/browser/src/document-model/gen/operation/object.d.ts +1 -0
  60. package/dist/browser/src/document-model/gen/operation/operations.d.ts +1 -0
  61. package/dist/browser/src/document-model/gen/operation-error/actions.d.ts +1 -0
  62. package/dist/browser/src/document-model/gen/operation-error/creators.d.ts +1 -0
  63. package/dist/browser/src/document-model/gen/operation-error/object.d.ts +1 -0
  64. package/dist/browser/src/document-model/gen/operation-error/operations.d.ts +1 -0
  65. package/dist/browser/src/document-model/gen/operation-example/actions.d.ts +1 -0
  66. package/dist/browser/src/document-model/gen/operation-example/creators.d.ts +1 -0
  67. package/dist/browser/src/document-model/gen/operation-example/object.d.ts +1 -0
  68. package/dist/browser/src/document-model/gen/operation-example/operations.d.ts +1 -0
  69. package/dist/browser/src/document-model/gen/reducer.d.ts +2 -1
  70. package/dist/browser/src/document-model/gen/schema/index.d.ts +2 -2
  71. package/dist/browser/src/document-model/gen/schema/types.d.ts +1 -0
  72. package/dist/browser/src/document-model/gen/schema/zod.d.ts +70 -69
  73. package/dist/browser/src/document-model/gen/state/actions.d.ts +1 -0
  74. package/dist/browser/src/document-model/gen/state/creators.d.ts +1 -0
  75. package/dist/browser/src/document-model/gen/state/object.d.ts +1 -0
  76. package/dist/browser/src/document-model/gen/state/operations.d.ts +1 -0
  77. package/dist/browser/src/document-model/gen/types.d.ts +4 -3
  78. package/dist/browser/src/document-model/gen/utils.d.ts +1 -0
  79. package/dist/browser/src/document-model/gen/versioning/actions.d.ts +1 -0
  80. package/dist/browser/src/document-model/gen/versioning/creators.d.ts +1 -0
  81. package/dist/browser/src/document-model/gen/versioning/object.d.ts +1 -0
  82. package/dist/browser/src/document-model/gen/versioning/operations.d.ts +1 -0
  83. package/dist/browser/src/document-model/index.d.ts +62 -65
  84. package/dist/browser/vite.config.d.ts +1 -1
  85. package/dist/browser/vitest.config.d.ts +1 -1
  86. package/dist/node/cjs/document-model.js +24 -1
  87. package/dist/node/cjs/document-model.js.map +1 -0
  88. package/dist/node/cjs/document.js +15 -1
  89. package/dist/node/cjs/document.js.map +1 -0
  90. package/dist/node/cjs/index.js +14 -1
  91. package/dist/node/cjs/index.js.map +1 -0
  92. package/dist/node/cjs/internal/index-BWc0K1Dk.js +2340 -0
  93. package/dist/node/cjs/internal/index-BWc0K1Dk.js.map +1 -0
  94. package/dist/node/cjs/internal/index-DxD7Ha1j.js +49 -0
  95. package/dist/node/cjs/internal/index-DxD7Ha1j.js.map +1 -0
  96. package/dist/node/cjs/internal/object-_zq9luMS.js +2335 -0
  97. package/dist/node/cjs/internal/object-_zq9luMS.js.map +1 -0
  98. package/dist/node/es/document-model.js +16 -16
  99. package/dist/node/es/document-model.js.map +1 -0
  100. package/dist/node/es/document.js +13 -18
  101. package/dist/node/es/document.js.map +1 -0
  102. package/dist/node/es/index.js +12 -18
  103. package/dist/node/es/index.js.map +1 -0
  104. package/dist/node/es/internal/index-D8WTToX1.js +2341 -0
  105. package/dist/node/es/internal/index-D8WTToX1.js.map +1 -0
  106. package/dist/node/es/internal/index-DkkBVgni.js +50 -0
  107. package/dist/node/es/internal/index-DkkBVgni.js.map +1 -0
  108. package/dist/node/es/internal/object-D3jjs7tr.js +2336 -0
  109. package/dist/node/es/internal/object-D3jjs7tr.js.map +1 -0
  110. package/dist/node/src/document/actions/creators.d.ts +2 -1
  111. package/dist/node/src/document/actions/index.d.ts +1 -0
  112. package/dist/node/src/document/actions/types.d.ts +3 -2
  113. package/dist/node/src/document/object.d.ts +9 -1128
  114. package/dist/node/src/document/reducer.d.ts +16 -13
  115. package/dist/node/src/document/schema/types.d.ts +1 -0
  116. package/dist/node/src/document/schema/zod.d.ts +12 -8
  117. package/dist/node/src/document/signal.d.ts +1 -0
  118. package/dist/node/src/document/types.d.ts +9 -6
  119. package/dist/node/src/document/utils/base.d.ts +7 -5
  120. package/dist/node/src/document/utils/document-helpers.d.ts +1 -0
  121. package/dist/node/src/document/utils/file.d.ts +3 -2
  122. package/dist/node/src/document/utils/validation.d.ts +1 -0
  123. package/dist/node/src/document-model/custom/reducers/header.d.ts +1 -0
  124. package/dist/node/src/document-model/custom/reducers/module.d.ts +1 -0
  125. package/dist/node/src/document-model/custom/reducers/operation-error.d.ts +1 -0
  126. package/dist/node/src/document-model/custom/reducers/operation-example.d.ts +1 -0
  127. package/dist/node/src/document-model/custom/reducers/operation.d.ts +1 -0
  128. package/dist/node/src/document-model/custom/reducers/state.d.ts +1 -0
  129. package/dist/node/src/document-model/custom/reducers/versioning.d.ts +1 -5
  130. package/dist/node/src/document-model/custom/utils.d.ts +1 -0
  131. package/dist/node/src/document-model/gen/actions.d.ts +1 -0
  132. package/dist/node/src/document-model/gen/document-model.d.ts +2 -1
  133. package/dist/node/src/document-model/gen/header/actions.d.ts +1 -0
  134. package/dist/node/src/document-model/gen/header/creators.d.ts +1 -0
  135. package/dist/node/src/document-model/gen/header/object.d.ts +1 -0
  136. package/dist/node/src/document-model/gen/header/operations.d.ts +1 -0
  137. package/dist/node/src/document-model/gen/module/actions.d.ts +1 -0
  138. package/dist/node/src/document-model/gen/module/creators.d.ts +1 -0
  139. package/dist/node/src/document-model/gen/module/object.d.ts +1 -0
  140. package/dist/node/src/document-model/gen/module/operations.d.ts +1 -0
  141. package/dist/node/src/document-model/gen/object.d.ts +8 -7
  142. package/dist/node/src/document-model/gen/operation/actions.d.ts +1 -0
  143. package/dist/node/src/document-model/gen/operation/creators.d.ts +1 -0
  144. package/dist/node/src/document-model/gen/operation/object.d.ts +1 -0
  145. package/dist/node/src/document-model/gen/operation/operations.d.ts +1 -0
  146. package/dist/node/src/document-model/gen/operation-error/actions.d.ts +1 -0
  147. package/dist/node/src/document-model/gen/operation-error/creators.d.ts +1 -0
  148. package/dist/node/src/document-model/gen/operation-error/object.d.ts +1 -0
  149. package/dist/node/src/document-model/gen/operation-error/operations.d.ts +1 -0
  150. package/dist/node/src/document-model/gen/operation-example/actions.d.ts +1 -0
  151. package/dist/node/src/document-model/gen/operation-example/creators.d.ts +1 -0
  152. package/dist/node/src/document-model/gen/operation-example/object.d.ts +1 -0
  153. package/dist/node/src/document-model/gen/operation-example/operations.d.ts +1 -0
  154. package/dist/node/src/document-model/gen/reducer.d.ts +2 -1
  155. package/dist/node/src/document-model/gen/schema/index.d.ts +2 -2
  156. package/dist/node/src/document-model/gen/schema/types.d.ts +1 -0
  157. package/dist/node/src/document-model/gen/schema/zod.d.ts +70 -69
  158. package/dist/node/src/document-model/gen/state/actions.d.ts +1 -0
  159. package/dist/node/src/document-model/gen/state/creators.d.ts +1 -0
  160. package/dist/node/src/document-model/gen/state/object.d.ts +1 -0
  161. package/dist/node/src/document-model/gen/state/operations.d.ts +1 -0
  162. package/dist/node/src/document-model/gen/types.d.ts +4 -3
  163. package/dist/node/src/document-model/gen/utils.d.ts +1 -0
  164. package/dist/node/src/document-model/gen/versioning/actions.d.ts +1 -0
  165. package/dist/node/src/document-model/gen/versioning/creators.d.ts +1 -0
  166. package/dist/node/src/document-model/gen/versioning/object.d.ts +1 -0
  167. package/dist/node/src/document-model/gen/versioning/operations.d.ts +1 -0
  168. package/dist/node/src/document-model/index.d.ts +62 -65
  169. package/dist/node/vite.config.d.ts +1 -1
  170. package/dist/node/vitest.config.d.ts +1 -1
  171. package/package.json +5 -4
  172. package/dist/browser/cjs/internal/index-DGWOisRG.js +0 -22
  173. package/dist/browser/cjs/internal/index-Dl3D9TzG.js +0 -1
  174. package/dist/browser/cjs/internal/object-DQmy6ar9.js +0 -25
  175. package/dist/browser/es/internal/index-BnpyOR6R.js +0 -46
  176. package/dist/browser/es/internal/index-DynAX_OS.js +0 -2104
  177. package/dist/browser/es/internal/object-DenwvByi.js +0 -2838
  178. package/dist/node/cjs/internal/index-B96klT84.js +0 -1
  179. package/dist/node/cjs/internal/index-CtqbrEO2.js +0 -22
  180. package/dist/node/cjs/internal/object-CXx7IaXb.js +0 -20
  181. package/dist/node/es/internal/index-DEAJDDrx.js +0 -46
  182. package/dist/node/es/internal/index-pNw-lk-q.js +0 -2108
  183. package/dist/node/es/internal/object-2jyfnUeK.js +0 -1736
@@ -1,7 +1,8 @@
1
1
  import { BaseAction } from './actions/types';
2
2
  import { UndoRedoAction } from './schema';
3
- import { Action, Document, ImmutableStateReducer, Operation, ReducerOptions, State } from './types';
3
+ import { Action, Document, ImmutableStateReducer, Operation, ReducerOptions } from './types';
4
4
  import { SignalDispatch } from './signal';
5
+
5
6
  /**
6
7
  * Updates the document header with the latest revision number and
7
8
  * date of last modification.
@@ -45,16 +46,18 @@ export declare function processUndoRedo<T, A extends Action, L>(document: Docume
45
46
  * specific to the document's state.
46
47
  * @returns The new state of the document.
47
48
  */
48
- export declare function baseReducer<T, A extends Action, L>(document: Document<T, A, L>, action: A | BaseAction | Operation, customReducer: ImmutableStateReducer<T, A, L>, dispatch?: SignalDispatch, options?: ReducerOptions): {
49
- name: string;
50
- revision: Required<Record<import("./types").OperationScope, number>>;
51
- documentType: string;
52
- created: string;
53
- lastModified: string;
54
- state: State<T, L>;
55
- attachments: import("./types").FileRegistry;
56
- operations: Required<Record<import("./types").OperationScope, Operation<BaseAction | A>[]>>;
57
- initialState: import("./types").ExtendedState<T, L>;
58
- clipboard: Operation<BaseAction | A>[];
59
- };
49
+ export declare function baseReducer<T, A extends Action, L>(document: Document<T, A, L>, action: A | BaseAction | Operation, customReducer: ImmutableStateReducer<T, A, L>, dispatch?: SignalDispatch, options?: ReducerOptions): Document<T, A, L>;
50
+ /**
51
+ * Base document reducer that wraps a custom document reducer and handles
52
+ * document-level actions such as undo, redo, prune, and set name.
53
+ *
54
+ * @template T - The type of the state of the custom reducer.
55
+ * @template A - The type of the actions of the custom reducer.
56
+ * @param state - The current state of the document.
57
+ * @param action - The action object to apply to the state.
58
+ * @param customReducer - The custom reducer that implements the application logic
59
+ * specific to the document's state.
60
+ * @returns The new state of the document.
61
+ */
62
+ export declare function mutableBaseReducer<T, A extends Action, L>(document: Document<T, A, L>, action: A | BaseAction | Operation, customReducer: ImmutableStateReducer<T, A, L>, dispatch?: SignalDispatch, options?: ReducerOptions): Document<T, A, L>;
60
63
  export {};
@@ -1,4 +1,5 @@
1
1
  import { OperationScope } from '..';
2
+
2
3
  export type Maybe<T> = T | null;
3
4
  export type InputMaybe<T> = T | null | undefined;
4
5
  export type Exact<T extends Record<string, unknown>> = {
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { Action, DocumentFile, LoadStateAction, LoadStateActionInput, LoadStateActionStateInput, Operation, PruneAction, PruneActionInput, RedoAction, SetNameAction, SetNameOperation, UndoAction } from '.';
3
3
  import { OperationScope } from '../types';
4
+
4
5
  type Properties<T> = Required<{
5
6
  [K in keyof T]: z.ZodType<T[K], any, T[K]>;
6
7
  }>;
@@ -21,11 +22,11 @@ export declare function BaseActionSchema(): z.ZodUnion<[z.ZodObject<Required<{
21
22
  }>, z.UnknownKeysParam, z.ZodTypeAny, {
22
23
  input: LoadStateActionInput;
23
24
  type: "LOAD_STATE";
24
- scope: "global" | "local";
25
+ scope: OperationScope;
25
26
  }, {
26
27
  input: LoadStateActionInput;
27
28
  type: "LOAD_STATE";
28
- scope: "global" | "local";
29
+ scope: OperationScope;
29
30
  }>, z.ZodObject<Required<{
30
31
  input: z.ZodType<PruneActionInput, any, PruneActionInput>;
31
32
  type: z.ZodType<"PRUNE", any, "PRUNE">;
@@ -33,11 +34,11 @@ export declare function BaseActionSchema(): z.ZodUnion<[z.ZodObject<Required<{
33
34
  }>, z.UnknownKeysParam, z.ZodTypeAny, {
34
35
  input: PruneActionInput;
35
36
  type: "PRUNE";
36
- scope: "global" | "local";
37
+ scope: OperationScope;
37
38
  }, {
38
39
  input: PruneActionInput;
39
40
  type: "PRUNE";
40
- scope: "global" | "local";
41
+ scope: OperationScope;
41
42
  }>, z.ZodObject<Required<{
42
43
  input: z.ZodType<number, any, number>;
43
44
  type: z.ZodType<"REDO", any, "REDO">;
@@ -45,11 +46,11 @@ export declare function BaseActionSchema(): z.ZodUnion<[z.ZodObject<Required<{
45
46
  }>, z.UnknownKeysParam, z.ZodTypeAny, {
46
47
  input: number;
47
48
  type: "REDO";
48
- scope: "global" | "local";
49
+ scope: OperationScope;
49
50
  }, {
50
51
  input: number;
51
52
  type: "REDO";
52
- scope: "global" | "local";
53
+ scope: OperationScope;
53
54
  }>, z.ZodObject<Required<{
54
55
  input: z.ZodType<string, any, string>;
55
56
  type: z.ZodType<"SET_NAME", any, "SET_NAME">;
@@ -69,11 +70,11 @@ export declare function BaseActionSchema(): z.ZodUnion<[z.ZodObject<Required<{
69
70
  }>, z.UnknownKeysParam, z.ZodTypeAny, {
70
71
  input: number;
71
72
  type: "UNDO";
72
- scope: "global" | "local";
73
+ scope: OperationScope;
73
74
  }, {
74
75
  input: number;
75
76
  type: "UNDO";
76
- scope: "global" | "local";
77
+ scope: OperationScope;
77
78
  }>]>;
78
79
  export declare function DocumentFileSchema(): z.ZodObject<Properties<DocumentFile>>;
79
80
  export declare function LoadStateActionSchema(): z.ZodObject<Properties<LoadStateAction>>;
@@ -86,6 +87,7 @@ export declare const RedoActionInputSchema: (params?: ({
86
87
  errorMap?: z.ZodErrorMap | undefined;
87
88
  invalid_type_error?: string | undefined;
88
89
  required_error?: string | undefined;
90
+ message?: string | undefined;
89
91
  description?: string | undefined;
90
92
  } & {
91
93
  coerce?: boolean | undefined;
@@ -95,6 +97,7 @@ export declare const SetNameActionInputSchema: (params?: ({
95
97
  errorMap?: z.ZodErrorMap | undefined;
96
98
  invalid_type_error?: string | undefined;
97
99
  required_error?: string | undefined;
100
+ message?: string | undefined;
98
101
  description?: string | undefined;
99
102
  } & {
100
103
  coerce?: true | undefined;
@@ -105,6 +108,7 @@ export declare const UndoActionInputSchema: (params?: ({
105
108
  errorMap?: z.ZodErrorMap | undefined;
106
109
  invalid_type_error?: string | undefined;
107
110
  required_error?: string | undefined;
111
+ message?: string | undefined;
108
112
  description?: string | undefined;
109
113
  } & {
110
114
  coerce?: boolean | undefined;
@@ -1,4 +1,5 @@
1
1
  import { Document, OperationScope } from './types';
2
+
2
3
  export interface ISignal<T extends string = string, I = unknown> {
3
4
  type: T;
4
5
  input: I;
@@ -1,15 +1,16 @@
1
- import type { Draft } from 'immer';
2
- import type { FC } from 'react';
3
- import type { DocumentModelState } from '../document-model/';
4
- import type { BaseAction } from './actions/types';
1
+ import { Draft } from 'mutative';
2
+ import { FC } from 'react';
3
+ import { DocumentModelState } from '../document-model/';
4
+ import { BaseAction } from './actions/types';
5
5
  import { BaseDocument } from './object';
6
6
  import { FileInput } from './utils';
7
7
  import { SignalDispatch } from './signal';
8
+
8
9
  export { z } from './schema';
9
10
  export type * from './schema/types';
10
11
  export type { FileInput } from './utils';
11
- export type { Immutable } from 'immer';
12
12
  export type { BaseAction } from './actions/types';
13
+ export type { Immutable } from 'mutative';
13
14
  export type ActionSigner = {
14
15
  user: {
15
16
  address: string;
@@ -69,7 +70,7 @@ export type Reducer<State, A extends Action, LocalState> = (state: Document<Stat
69
70
  * A {@link Reducer} that prevents mutable code from changing the previous state.
70
71
  *
71
72
  * @remarks
72
- * This reducer is wrapped with {@link https://immerjs.github.io/immer/ | Immer}.
73
+ * This reducer is wrapped with {@link https://mutative.js.org/ | Mutative}.
73
74
  * This allows the reducer code to be mutable, making it simpler and
74
75
  * avoiding unintended changes in the provided state.
75
76
  * The returned state will always be a new object.
@@ -79,6 +80,8 @@ export type Reducer<State, A extends Action, LocalState> = (state: Document<Stat
79
80
  */
80
81
  export type ImmutableReducer<State, A extends Action, LocalState> = (state: Draft<Document<State, A, LocalState>>, action: A | BaseAction, dispatch?: SignalDispatch) => Document<State, A, LocalState> | undefined;
81
82
  export type ImmutableStateReducer<S, A extends Action, L = unknown> = (state: Draft<State<S, L>>, action: A, dispatch?: SignalDispatch) => State<S, L> | undefined;
83
+ export type MutableStateReducer<S, A extends Action, L = unknown> = (state: State<S, L>, action: A, dispatch?: SignalDispatch) => State<S, L> | undefined;
84
+ export type StateReducer<S, A extends Action, L = unknown> = ImmutableStateReducer<S, A, L> | MutableStateReducer<S, A, L>;
82
85
  /**
83
86
  * Scope of an operation.
84
87
  * Global: The operation is synchronized everywhere in the network. This is the default document operation.
@@ -1,6 +1,7 @@
1
- import { baseReducer } from '../reducer';
2
- import { Action, BaseAction, UndoRedoAction, Document, ExtendedState, ImmutableStateReducer, Reducer, Immutable, OperationScope, State, CreateState, PartialState, DocumentOperations, DocumentHeader, DocumentOperationsIgnoreMap, Operation, MappedOperation, ReducerOptions } from '../types';
1
+ import { baseReducer, mutableBaseReducer } from '../reducer';
2
+ import { Action, BaseAction, UndoRedoAction, Document, ExtendedState, ImmutableStateReducer, Reducer, OperationScope, State, CreateState, PartialState, DocumentOperations, DocumentHeader, DocumentOperationsIgnoreMap, Operation, MappedOperation, ReducerOptions } from '../types';
3
3
  import { SignalDispatch } from '../signal';
4
+
4
5
  export declare function isNoopOperation(op: Partial<Operation>): boolean;
5
6
  export declare function isUndoRedo(action: Action): action is UndoRedoAction;
6
7
  export declare function isBaseAction(action: Action): action is BaseAction;
@@ -46,7 +47,8 @@ export declare function createAction<A extends Action>(type: A['type'], input?:
46
47
  * @returns The new reducer.
47
48
  */
48
49
  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
+ export declare function createUnsafeReducer<S = unknown, A extends Action = Action, L = unknown>(reducer: ImmutableStateReducer<S, A, L>, documentReducer?: typeof mutableBaseReducer): Reducer<S, A, L>;
51
+ export declare const createExtendedState: <S, L>(initialState?: Partial<ExtendedState<PartialState<S>, PartialState<L>>>, createState?: CreateState<S, L>) => ExtendedState<S, L>;
50
52
  /**
51
53
  * Builds the initial document state from the provided data.
52
54
  *
@@ -58,10 +60,10 @@ export declare const createExtendedState: <S, L>(initialState?: Partial<Extended
58
60
  *
59
61
  * @returns The new document state.
60
62
  */
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>;
63
+ export declare const createDocument: <S, A extends Action, L = unknown>(initialState?: Partial<ExtendedState<PartialState<S>, PartialState<L>>>, createState?: (state?: Partial<State<PartialState<S>, PartialState<L>>>) => State<S, L>) => Document<S, A, L>;
62
64
  export declare const hashDocument: (document: Pick<Document, 'state'>, scope?: OperationScope) => string;
63
65
  export declare const hashKey: (date?: Date, randomLimit?: number) => string;
64
- export declare function readOnly<T>(value: T): Immutable<T>;
66
+ export declare function readOnly<T>(value: T): Readonly<T>;
65
67
  /**
66
68
  * Maps skipped operations in an array of operations.
67
69
  * Skipped operations are operations that are ignored during processing.
@@ -1,4 +1,5 @@
1
1
  import { Operation, OperationScope, Action, DocumentOperations } from '../types';
2
+
2
3
  export type OperationIndex = {
3
4
  index: number;
4
5
  skip: number;
@@ -1,6 +1,7 @@
1
- import JSZip from 'jszip';
2
- import type { Action, AttachmentInput, Document, Reducer } from '../types';
1
+ import { default as JSZip } from 'jszip';
2
+ import { Action, AttachmentInput, Document, Reducer } from '../types';
3
3
  import { ReplayDocumentOptions } from './base';
4
+
4
5
  export type FileInput = string | number[] | Uint8Array | ArrayBuffer | Blob;
5
6
  export declare const createZip: (document: Document) => Promise<JSZip>;
6
7
  /**
@@ -1,2 +1,3 @@
1
1
  import { DocumentOperations, Action, ValidationError } from '../types';
2
+
2
3
  export declare function validateOperations<A extends Action>(operations: DocumentOperations<A>): ValidationError[];
@@ -1,2 +1,3 @@
1
1
  import { DocumentModelHeaderOperations } from '../../gen/header/operations';
2
+
2
3
  export declare const reducer: DocumentModelHeaderOperations;
@@ -1,2 +1,3 @@
1
1
  import { DocumentModelModuleOperations } from '../../gen/module/operations';
2
+
2
3
  export declare const reducer: DocumentModelModuleOperations;
@@ -1,2 +1,3 @@
1
1
  import { DocumentModelOperationErrorOperations } from '../../gen/operation-error/operations';
2
+
2
3
  export declare const reducer: DocumentModelOperationErrorOperations;
@@ -1,2 +1,3 @@
1
1
  import { DocumentModelOperationExampleOperations } from '../../gen/operation-example/operations';
2
+
2
3
  export declare const reducer: DocumentModelOperationExampleOperations;
@@ -1,2 +1,3 @@
1
1
  import { DocumentModelOperationOperations } from '../../gen/operation/operations';
2
+
2
3
  export declare const reducer: DocumentModelOperationOperations;
@@ -1,2 +1,3 @@
1
1
  import { DocumentModelStateOperations } from '../../gen/state/operations';
2
+
2
3
  export declare const reducer: DocumentModelStateOperations;
@@ -1,7 +1,3 @@
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
1
  import { DocumentModelVersioningOperations } from '../../gen/versioning/operations';
2
+
7
3
  export declare const reducer: DocumentModelVersioningOperations;
@@ -1,5 +1,6 @@
1
1
  import { ValidationError } from '../../document';
2
2
  import { Module, Operation } from '../gen/schema';
3
+
3
4
  export declare function validateInitialState(initialState: string, allowEmptyState?: boolean): ValidationError[];
4
5
  export declare function validateStateSchemaName(schema: string, documentName: string, scope?: string, allowEmptySchema?: boolean): ValidationError[];
5
6
  export declare function validateModules(modules: Array<Module>): ValidationError[];
@@ -5,6 +5,7 @@ import { DocumentModelOperationErrorAction } from './operation-error/actions';
5
5
  import { DocumentModelOperationExampleAction } from './operation-example/actions';
6
6
  import { DocumentModelOperationAction } from './operation/actions';
7
7
  import { DocumentModelStateAction } from './state/actions';
8
+
8
9
  export * from './header/actions';
9
10
  export * from './versioning/actions';
10
11
  export * from './module/actions';
@@ -1,2 +1,3 @@
1
- import type { DocumentModelState } from '..';
1
+ import { DocumentModelState } from '..';
2
+
2
3
  export declare const documentModel: DocumentModelState;
@@ -1,5 +1,6 @@
1
1
  import { Action } from '../../../document';
2
2
  import { SetModelNameInput, SetModelIdInput, SetModelExtensionInput, SetModelDescriptionInput, SetAuthorNameInput, SetAuthorWebsiteInput } from '../types';
3
+
3
4
  export type SetModelNameAction = Action<'SET_MODEL_NAME', SetModelNameInput>;
4
5
  export type SetModelIdAction = Action<'SET_MODEL_ID', SetModelIdInput>;
5
6
  export type SetModelExtensionAction = Action<'SET_MODEL_EXTENSION', SetModelExtensionInput>;
@@ -1,5 +1,6 @@
1
1
  import { SetModelNameInput, SetModelIdInput, SetModelExtensionInput, SetModelDescriptionInput, SetAuthorNameInput, SetAuthorWebsiteInput } from '../types';
2
2
  import { SetModelNameAction, SetModelIdAction, SetModelExtensionAction, SetModelDescriptionAction, SetAuthorNameAction, SetAuthorWebsiteAction } from './actions';
3
+
3
4
  export declare const setModelName: (input: SetModelNameInput) => SetModelNameAction;
4
5
  export declare const setModelId: (input: SetModelIdInput) => SetModelIdAction;
5
6
  export declare const setModelExtension: (input: SetModelExtensionInput) => SetModelExtensionAction;
@@ -2,6 +2,7 @@ import { BaseDocument } from '../../../document/object';
2
2
  import { SetModelNameInput, SetModelIdInput, SetModelExtensionInput, SetModelDescriptionInput, SetAuthorNameInput, SetAuthorWebsiteInput, DocumentModelState, DocumentModelLocalState } from '../types';
3
3
  import { DocumentModelAction } from '../actions';
4
4
  import { ReducerOptions } from '../../../document';
5
+
5
6
  export default class DocumentModel_Header extends BaseDocument<DocumentModelState, DocumentModelAction, DocumentModelLocalState> {
6
7
  setModelName(input: SetModelNameInput, options?: ReducerOptions): this;
7
8
  setModelId(input: SetModelIdInput, options?: ReducerOptions): this;
@@ -1,5 +1,6 @@
1
1
  import { SetModelNameAction, SetModelIdAction, SetModelExtensionAction, SetModelDescriptionAction, SetAuthorNameAction, SetAuthorWebsiteAction } from './actions';
2
2
  import { DocumentModelState } from '../types';
3
+
3
4
  export interface DocumentModelHeaderOperations {
4
5
  setModelNameOperation: (state: DocumentModelState, action: SetModelNameAction) => void;
5
6
  setModelIdOperation: (state: DocumentModelState, action: SetModelIdAction) => void;
@@ -1,5 +1,6 @@
1
1
  import { Action } from '../../../document';
2
2
  import { AddModuleInput, SetModuleNameInput, SetModuleDescriptionInput, DeleteModuleInput, ReorderModulesInput } from '../types';
3
+
3
4
  export type AddModuleAction = Action<'ADD_MODULE', AddModuleInput>;
4
5
  export type SetModuleNameAction = Action<'SET_MODULE_NAME', SetModuleNameInput>;
5
6
  export type SetModuleDescriptionAction = Action<'SET_MODULE_DESCRIPTION', SetModuleDescriptionInput>;
@@ -1,5 +1,6 @@
1
1
  import { AddModuleInput, SetModuleNameInput, SetModuleDescriptionInput, DeleteModuleInput, ReorderModulesInput } from '../types';
2
2
  import { AddModuleAction, SetModuleNameAction, SetModuleDescriptionAction, DeleteModuleAction, ReorderModulesAction } from './actions';
3
+
3
4
  export declare const addModule: (input: AddModuleInput) => AddModuleAction;
4
5
  export declare const setModuleName: (input: SetModuleNameInput) => SetModuleNameAction;
5
6
  export declare const setModuleDescription: (input: SetModuleDescriptionInput) => SetModuleDescriptionAction;
@@ -2,6 +2,7 @@ import { BaseDocument } from '../../../document/object';
2
2
  import { AddModuleInput, SetModuleNameInput, SetModuleDescriptionInput, DeleteModuleInput, ReorderModulesInput, DocumentModelState, DocumentModelLocalState } from '../types';
3
3
  import { DocumentModelAction } from '../actions';
4
4
  import { ReducerOptions } from '../../../document';
5
+
5
6
  export default class DocumentModel_Module extends BaseDocument<DocumentModelState, DocumentModelAction, DocumentModelLocalState> {
6
7
  addModule(input: AddModuleInput, options?: ReducerOptions): this;
7
8
  setModuleName(input: SetModuleNameInput, options?: ReducerOptions): this;
@@ -1,5 +1,6 @@
1
1
  import { AddModuleAction, SetModuleNameAction, SetModuleDescriptionAction, DeleteModuleAction, ReorderModulesAction } from './actions';
2
2
  import { DocumentModelState } from '../types';
3
+
3
4
  export interface DocumentModelModuleOperations {
4
5
  addModuleOperation: (state: DocumentModelState, action: AddModuleAction) => void;
5
6
  setModuleNameOperation: (state: DocumentModelState, action: SetModuleNameAction) => void;
@@ -2,13 +2,14 @@ import { DocumentModelLocalState, DocumentModelState } from './types';
2
2
  import { ExtendedState, PartialState, SignalDispatch } from '../../document';
3
3
  import { BaseDocument } from '../../document/object';
4
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';
5
+ import { default as DocumentModel_Header } from './header/object';
6
+ import { default as DocumentModel_Versioning } from './versioning/object';
7
+ import { default as DocumentModel_Module } from './module/object';
8
+ import { default as DocumentModel_OperationError } from './operation-error/object';
9
+ import { default as DocumentModel_OperationExample } from './operation-example/object';
10
+ import { default as DocumentModel_Operation } from './operation/object';
11
+ import { default as DocumentModel_State } from './state/object';
12
+
12
13
  export * from './header/object';
13
14
  export * from './versioning/object';
14
15
  export * from './module/object';
@@ -1,5 +1,6 @@
1
1
  import { Action } from '../../../document';
2
2
  import { AddOperationInput, SetOperationNameInput, SetOperationSchemaInput, SetOperationDescriptionInput, SetOperationTemplateInput, SetOperationReducerInput, MoveOperationInput, DeleteOperationInput, ReorderModuleOperationsInput, SetOperationScopeInput } from '../types';
3
+
3
4
  export type AddOperationAction = Action<'ADD_OPERATION', AddOperationInput>;
4
5
  export type SetOperationNameAction = Action<'SET_OPERATION_NAME', SetOperationNameInput>;
5
6
  export type SetOperationScopeAction = Action<'SET_OPERATION_SCOPE', SetOperationScopeInput>;
@@ -1,5 +1,6 @@
1
1
  import { AddOperationInput, SetOperationNameInput, SetOperationSchemaInput, SetOperationDescriptionInput, SetOperationTemplateInput, SetOperationReducerInput, MoveOperationInput, DeleteOperationInput, ReorderModuleOperationsInput, SetOperationScopeInput } from '../types';
2
2
  import { AddOperationAction, SetOperationNameAction, SetOperationSchemaAction, SetOperationDescriptionAction, SetOperationTemplateAction, SetOperationReducerAction, MoveOperationAction, DeleteOperationAction, ReorderModuleOperationsAction, SetOperationScopeAction } from './actions';
3
+
3
4
  export declare const addOperation: (input: AddOperationInput) => AddOperationAction;
4
5
  export declare const setOperationName: (input: SetOperationNameInput) => SetOperationNameAction;
5
6
  export declare const setOperationScope: (input: SetOperationScopeInput) => SetOperationScopeAction;
@@ -2,6 +2,7 @@ import { BaseDocument } from '../../../document/object';
2
2
  import { AddOperationInput, SetOperationNameInput, SetOperationSchemaInput, SetOperationDescriptionInput, SetOperationTemplateInput, SetOperationReducerInput, MoveOperationInput, DeleteOperationInput, ReorderModuleOperationsInput, DocumentModelState, SetOperationScopeInput, DocumentModelLocalState } from '../types';
3
3
  import { DocumentModelAction } from '../actions';
4
4
  import { ReducerOptions } from '../../../document';
5
+
5
6
  export default class DocumentModel_Operation extends BaseDocument<DocumentModelState, DocumentModelAction, DocumentModelLocalState> {
6
7
  addOperation(input: AddOperationInput, options?: ReducerOptions): this;
7
8
  setOperationName(input: SetOperationNameInput, options?: ReducerOptions): this;
@@ -1,5 +1,6 @@
1
1
  import { AddOperationAction, SetOperationNameAction, SetOperationSchemaAction, SetOperationDescriptionAction, SetOperationTemplateAction, SetOperationReducerAction, MoveOperationAction, DeleteOperationAction, ReorderModuleOperationsAction, SetOperationScopeAction } from './actions';
2
2
  import { DocumentModelState } from '../types';
3
+
3
4
  export interface DocumentModelOperationOperations {
4
5
  addOperationOperation: (state: DocumentModelState, action: AddOperationAction) => void;
5
6
  setOperationNameOperation: (state: DocumentModelState, action: SetOperationNameAction) => void;
@@ -1,5 +1,6 @@
1
1
  import { Action } from '../../../document';
2
2
  import { AddOperationErrorInput, SetOperationErrorCodeInput, SetOperationErrorNameInput, SetOperationErrorDescriptionInput, SetOperationErrorTemplateInput, DeleteOperationErrorInput, ReorderOperationErrorsInput } from '../types';
3
+
3
4
  export type AddOperationErrorAction = Action<'ADD_OPERATION_ERROR', AddOperationErrorInput>;
4
5
  export type SetOperationErrorCodeAction = Action<'SET_OPERATION_ERROR_CODE', SetOperationErrorCodeInput>;
5
6
  export type SetOperationErrorNameAction = Action<'SET_OPERATION_ERROR_NAME', SetOperationErrorNameInput>;
@@ -1,5 +1,6 @@
1
1
  import { AddOperationErrorInput, SetOperationErrorCodeInput, SetOperationErrorNameInput, SetOperationErrorDescriptionInput, SetOperationErrorTemplateInput, DeleteOperationErrorInput, ReorderOperationErrorsInput } from '../types';
2
2
  import { AddOperationErrorAction, SetOperationErrorCodeAction, SetOperationErrorNameAction, SetOperationErrorDescriptionAction, SetOperationErrorTemplateAction, DeleteOperationErrorAction, ReorderOperationErrorsAction } from './actions';
3
+
3
4
  export declare const addOperationError: (input: AddOperationErrorInput) => AddOperationErrorAction;
4
5
  export declare const setOperationErrorCode: (input: SetOperationErrorCodeInput) => SetOperationErrorCodeAction;
5
6
  export declare const setOperationErrorName: (input: SetOperationErrorNameInput) => SetOperationErrorNameAction;
@@ -2,6 +2,7 @@ import { BaseDocument } from '../../../document/object';
2
2
  import { AddOperationErrorInput, SetOperationErrorCodeInput, SetOperationErrorNameInput, SetOperationErrorDescriptionInput, SetOperationErrorTemplateInput, DeleteOperationErrorInput, ReorderOperationErrorsInput, DocumentModelState, DocumentModelLocalState } from '../types';
3
3
  import { DocumentModelAction } from '../actions';
4
4
  import { ReducerOptions } from '../../../document';
5
+
5
6
  export default class DocumentModel_OperationError extends BaseDocument<DocumentModelState, DocumentModelAction, DocumentModelLocalState> {
6
7
  addOperationError(input: AddOperationErrorInput, options?: ReducerOptions): this;
7
8
  setOperationErrorCode(input: SetOperationErrorCodeInput, options?: ReducerOptions): this;
@@ -1,5 +1,6 @@
1
1
  import { AddOperationErrorAction, SetOperationErrorCodeAction, SetOperationErrorNameAction, SetOperationErrorDescriptionAction, SetOperationErrorTemplateAction, DeleteOperationErrorAction, ReorderOperationErrorsAction } from './actions';
2
2
  import { DocumentModelState } from '../types';
3
+
3
4
  export interface DocumentModelOperationErrorOperations {
4
5
  addOperationErrorOperation: (state: DocumentModelState, action: AddOperationErrorAction) => void;
5
6
  setOperationErrorCodeOperation: (state: DocumentModelState, action: SetOperationErrorCodeAction) => void;
@@ -1,5 +1,6 @@
1
1
  import { Action } from '../../../document';
2
2
  import { AddOperationExampleInput, UpdateOperationExampleInput, DeleteOperationExampleInput, ReorderOperationExamplesInput } from '../types';
3
+
3
4
  export type AddOperationExampleAction = Action<'ADD_OPERATION_EXAMPLE', AddOperationExampleInput>;
4
5
  export type UpdateOperationExampleAction = Action<'UPDATE_OPERATION_EXAMPLE', UpdateOperationExampleInput>;
5
6
  export type DeleteOperationExampleAction = Action<'DELETE_OPERATION_EXAMPLE', DeleteOperationExampleInput>;
@@ -1,5 +1,6 @@
1
1
  import { AddOperationExampleInput, UpdateOperationExampleInput, DeleteOperationExampleInput, ReorderOperationExamplesInput } from '../types';
2
2
  import { AddOperationExampleAction, UpdateOperationExampleAction, DeleteOperationExampleAction, ReorderOperationExamplesAction } from './actions';
3
+
3
4
  export declare const addOperationExample: (input: AddOperationExampleInput) => AddOperationExampleAction;
4
5
  export declare const updateOperationExample: (input: UpdateOperationExampleInput) => UpdateOperationExampleAction;
5
6
  export declare const deleteOperationExample: (input: DeleteOperationExampleInput) => DeleteOperationExampleAction;
@@ -2,6 +2,7 @@ import { BaseDocument } from '../../../document/object';
2
2
  import { AddOperationExampleInput, UpdateOperationExampleInput, DeleteOperationExampleInput, ReorderOperationExamplesInput, DocumentModelState, DocumentModelLocalState } from '../types';
3
3
  import { DocumentModelAction } from '../actions';
4
4
  import { ReducerOptions } from '../../../document';
5
+
5
6
  export default class DocumentModel_OperationExample extends BaseDocument<DocumentModelState, DocumentModelAction, DocumentModelLocalState> {
6
7
  addOperationExample(input: AddOperationExampleInput, options?: ReducerOptions): this;
7
8
  updateOperationExample(input: UpdateOperationExampleInput, options?: ReducerOptions): this;
@@ -1,5 +1,6 @@
1
1
  import { AddOperationExampleAction, UpdateOperationExampleAction, DeleteOperationExampleAction, ReorderOperationExamplesAction } from './actions';
2
2
  import { DocumentModelState } from '../types';
3
+
3
4
  export interface DocumentModelOperationExampleOperations {
4
5
  addOperationExampleOperation: (state: DocumentModelState, action: AddOperationExampleAction) => void;
5
6
  updateOperationExampleOperation: (state: DocumentModelState, action: UpdateOperationExampleAction) => void;
@@ -1,5 +1,6 @@
1
1
  import { ImmutableStateReducer } from '../../document/types';
2
2
  import { DocumentModelLocalState, DocumentModelState } from './schema';
3
3
  import { DocumentModelAction } from './actions';
4
+
4
5
  export declare const stateReducer: ImmutableStateReducer<DocumentModelState, DocumentModelAction, DocumentModelLocalState>;
5
- export declare const reducer: import("../../document/types").Reducer<DocumentModelState, DocumentModelAction, DocumentModelLocalState>;
6
+ export declare const reducer: import('../../document/types').Reducer<DocumentModelState, DocumentModelAction, DocumentModelLocalState>;
@@ -1,2 +1,2 @@
1
- export * from "./types";
2
- export * as z from "./zod";
1
+ export * from './types';
2
+ export * as z from './zod';
@@ -1,4 +1,5 @@
1
1
  import { OperationScope } from '../../../document';
2
+
2
3
  export type Maybe<T> = T | null;
3
4
  export type InputMaybe<T> = T | null | undefined;
4
5
  export type Exact<T extends {