document-model 6.0.0-dev.11 → 6.0.0-dev.110

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 (270) hide show
  1. package/dist/index.d.ts +81 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +216 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/node.d.mts +62 -0
  6. package/dist/node.d.mts.map +1 -0
  7. package/dist/node.mjs +151 -0
  8. package/dist/node.mjs.map +1 -0
  9. package/package.json +15 -24
  10. package/dist/src/core/actions.d.ts +0 -87
  11. package/dist/src/core/actions.d.ts.map +0 -1
  12. package/dist/src/core/actions.js +0 -187
  13. package/dist/src/core/actions.js.map +0 -1
  14. package/dist/src/core/crypto.d.ts +0 -8
  15. package/dist/src/core/crypto.d.ts.map +0 -1
  16. package/dist/src/core/crypto.js +0 -68
  17. package/dist/src/core/crypto.js.map +0 -1
  18. package/dist/src/core/documents.d.ts +0 -146
  19. package/dist/src/core/documents.d.ts.map +0 -1
  20. package/dist/src/core/documents.js +0 -814
  21. package/dist/src/core/documents.js.map +0 -1
  22. package/dist/src/core/errors.d.ts +0 -21
  23. package/dist/src/core/errors.d.ts.map +0 -1
  24. package/dist/src/core/errors.js +0 -46
  25. package/dist/src/core/errors.js.map +0 -1
  26. package/dist/src/core/files.d.ts +0 -14
  27. package/dist/src/core/files.d.ts.map +0 -1
  28. package/dist/src/core/files.js +0 -65
  29. package/dist/src/core/files.js.map +0 -1
  30. package/dist/src/core/header.d.ts +0 -63
  31. package/dist/src/core/header.d.ts.map +0 -1
  32. package/dist/src/core/header.js +0 -178
  33. package/dist/src/core/header.js.map +0 -1
  34. package/dist/src/core/index.d.ts +0 -13
  35. package/dist/src/core/index.d.ts.map +0 -1
  36. package/dist/src/core/index.js +0 -13
  37. package/dist/src/core/index.js.map +0 -1
  38. package/dist/src/core/node.d.ts +0 -53
  39. package/dist/src/core/node.d.ts.map +0 -1
  40. package/dist/src/core/node.js +0 -139
  41. package/dist/src/core/node.js.map +0 -1
  42. package/dist/src/core/operations.d.ts +0 -48
  43. package/dist/src/core/operations.d.ts.map +0 -1
  44. package/dist/src/core/operations.js +0 -122
  45. package/dist/src/core/operations.js.map +0 -1
  46. package/dist/src/core/ph-types.d.ts +0 -315
  47. package/dist/src/core/ph-types.d.ts.map +0 -1
  48. package/dist/src/core/ph-types.js +0 -15
  49. package/dist/src/core/ph-types.js.map +0 -1
  50. package/dist/src/core/reducer.d.ts +0 -63
  51. package/dist/src/core/reducer.d.ts.map +0 -1
  52. package/dist/src/core/reducer.js +0 -455
  53. package/dist/src/core/reducer.js.map +0 -1
  54. package/dist/src/core/schemas.d.ts +0 -69
  55. package/dist/src/core/schemas.d.ts.map +0 -1
  56. package/dist/src/core/schemas.js +0 -110
  57. package/dist/src/core/schemas.js.map +0 -1
  58. package/dist/src/core/state.d.ts +0 -26
  59. package/dist/src/core/state.d.ts.map +0 -1
  60. package/dist/src/core/state.js +0 -56
  61. package/dist/src/core/state.js.map +0 -1
  62. package/dist/src/core/types.d.ts +0 -536
  63. package/dist/src/core/types.d.ts.map +0 -1
  64. package/dist/src/core/types.js +0 -2
  65. package/dist/src/core/types.js.map +0 -1
  66. package/dist/src/core/utils.d.ts +0 -6
  67. package/dist/src/core/utils.d.ts.map +0 -1
  68. package/dist/src/core/utils.js +0 -15
  69. package/dist/src/core/utils.js.map +0 -1
  70. package/dist/src/core/validation.d.ts +0 -4
  71. package/dist/src/core/validation.d.ts.map +0 -1
  72. package/dist/src/core/validation.js +0 -27
  73. package/dist/src/core/validation.js.map +0 -1
  74. package/dist/src/document-model/actions.d.ts +0 -158
  75. package/dist/src/document-model/actions.d.ts.map +0 -1
  76. package/dist/src/document-model/actions.js +0 -111
  77. package/dist/src/document-model/actions.js.map +0 -1
  78. package/dist/src/document-model/constants.d.ts +0 -6
  79. package/dist/src/document-model/constants.d.ts.map +0 -1
  80. package/dist/src/document-model/constants.js +0 -573
  81. package/dist/src/document-model/constants.js.map +0 -1
  82. package/dist/src/document-model/document-schema.d.ts +0 -69
  83. package/dist/src/document-model/document-schema.d.ts.map +0 -1
  84. package/dist/src/document-model/document-schema.js +0 -43
  85. package/dist/src/document-model/document-schema.js.map +0 -1
  86. package/dist/src/document-model/document-type.d.ts +0 -2
  87. package/dist/src/document-model/document-type.d.ts.map +0 -1
  88. package/dist/src/document-model/document-type.js +0 -2
  89. package/dist/src/document-model/document-type.js.map +0 -1
  90. package/dist/src/document-model/files.d.ts +0 -5
  91. package/dist/src/document-model/files.d.ts.map +0 -1
  92. package/dist/src/document-model/files.js +0 -9
  93. package/dist/src/document-model/files.js.map +0 -1
  94. package/dist/src/document-model/index.d.ts +0 -11
  95. package/dist/src/document-model/index.d.ts.map +0 -1
  96. package/dist/src/document-model/index.js +0 -11
  97. package/dist/src/document-model/index.js.map +0 -1
  98. package/dist/src/document-model/module.d.ts +0 -3
  99. package/dist/src/document-model/module.d.ts.map +0 -1
  100. package/dist/src/document-model/module.js +0 -24
  101. package/dist/src/document-model/module.js.map +0 -1
  102. package/dist/src/document-model/reducers.d.ts +0 -11
  103. package/dist/src/document-model/reducers.d.ts.map +0 -1
  104. package/dist/src/document-model/reducers.js +0 -618
  105. package/dist/src/document-model/reducers.js.map +0 -1
  106. package/dist/src/document-model/schemas.d.ts +0 -189
  107. package/dist/src/document-model/schemas.d.ts.map +0 -1
  108. package/dist/src/document-model/schemas.js +0 -388
  109. package/dist/src/document-model/schemas.js.map +0 -1
  110. package/dist/src/document-model/state.d.ts +0 -15
  111. package/dist/src/document-model/state.d.ts.map +0 -1
  112. package/dist/src/document-model/state.js +0 -75
  113. package/dist/src/document-model/state.js.map +0 -1
  114. package/dist/src/document-model/types.d.ts +0 -679
  115. package/dist/src/document-model/types.d.ts.map +0 -1
  116. package/dist/src/document-model/types.js +0 -2
  117. package/dist/src/document-model/types.js.map +0 -1
  118. package/dist/src/document-model/validation.d.ts +0 -32
  119. package/dist/src/document-model/validation.d.ts.map +0 -1
  120. package/dist/src/document-model/validation.js +0 -166
  121. package/dist/src/document-model/validation.js.map +0 -1
  122. package/dist/src/index.d.ts +0 -6
  123. package/dist/src/index.d.ts.map +0 -1
  124. package/dist/src/index.js +0 -3
  125. package/dist/src/index.js.map +0 -1
  126. package/dist/test/document/crypto.test.d.ts +0 -2
  127. package/dist/test/document/crypto.test.d.ts.map +0 -1
  128. package/dist/test/document/crypto.test.js +0 -195
  129. package/dist/test/document/crypto.test.js.map +0 -1
  130. package/dist/test/document/event-vs-command.test.d.ts +0 -2
  131. package/dist/test/document/event-vs-command.test.d.ts.map +0 -1
  132. package/dist/test/document/event-vs-command.test.js +0 -202
  133. package/dist/test/document/event-vs-command.test.js.map +0 -1
  134. package/dist/test/document/local.test.d.ts +0 -2
  135. package/dist/test/document/local.test.d.ts.map +0 -1
  136. package/dist/test/document/local.test.js +0 -229
  137. package/dist/test/document/local.test.js.map +0 -1
  138. package/dist/test/document/operation-id.test.d.ts +0 -2
  139. package/dist/test/document/operation-id.test.d.ts.map +0 -1
  140. package/dist/test/document/operation-id.test.js +0 -118
  141. package/dist/test/document/operation-id.test.js.map +0 -1
  142. package/dist/test/document/prune.test.d.ts +0 -2
  143. package/dist/test/document/prune.test.d.ts.map +0 -1
  144. package/dist/test/document/prune.test.js +0 -159
  145. package/dist/test/document/prune.test.js.map +0 -1
  146. package/dist/test/document/reducer.test.d.ts +0 -2
  147. package/dist/test/document/reducer.test.d.ts.map +0 -1
  148. package/dist/test/document/reducer.test.js +0 -284
  149. package/dist/test/document/reducer.test.js.map +0 -1
  150. package/dist/test/document/skip-operations.test.d.ts +0 -2
  151. package/dist/test/document/skip-operations.test.d.ts.map +0 -1
  152. package/dist/test/document/skip-operations.test.js +0 -412
  153. package/dist/test/document/skip-operations.test.js.map +0 -1
  154. package/dist/test/document/undo-redo-v2.test.d.ts +0 -2
  155. package/dist/test/document/undo-redo-v2.test.d.ts.map +0 -1
  156. package/dist/test/document/undo-redo-v2.test.js +0 -207
  157. package/dist/test/document/undo-redo-v2.test.js.map +0 -1
  158. package/dist/test/document/undo-redo.test.d.ts +0 -2
  159. package/dist/test/document/undo-redo.test.d.ts.map +0 -1
  160. package/dist/test/document/undo-redo.test.js +0 -413
  161. package/dist/test/document/undo-redo.test.js.map +0 -1
  162. package/dist/test/document/utils.test.d.ts +0 -2
  163. package/dist/test/document/utils.test.d.ts.map +0 -1
  164. package/dist/test/document/utils.test.js +0 -172
  165. package/dist/test/document/utils.test.js.map +0 -1
  166. package/dist/test/document-helpers/addUndo.test.d.ts +0 -2
  167. package/dist/test/document-helpers/addUndo.test.d.ts.map +0 -1
  168. package/dist/test/document-helpers/addUndo.test.js +0 -120
  169. package/dist/test/document-helpers/addUndo.test.js.map +0 -1
  170. package/dist/test/document-helpers/attachBranch.test.d.ts +0 -2
  171. package/dist/test/document-helpers/attachBranch.test.d.ts.map +0 -1
  172. package/dist/test/document-helpers/attachBranch.test.js +0 -364
  173. package/dist/test/document-helpers/attachBranch.test.js.map +0 -1
  174. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.d.ts +0 -2
  175. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.d.ts.map +0 -1
  176. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.js +0 -252
  177. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.js.map +0 -1
  178. package/dist/test/document-helpers/conflictResolution.test.d.ts +0 -2
  179. package/dist/test/document-helpers/conflictResolution.test.d.ts.map +0 -1
  180. package/dist/test/document-helpers/conflictResolution.test.js +0 -109
  181. package/dist/test/document-helpers/conflictResolution.test.js.map +0 -1
  182. package/dist/test/document-helpers/filterDuplicatedOperations.test.d.ts +0 -2
  183. package/dist/test/document-helpers/filterDuplicatedOperations.test.d.ts.map +0 -1
  184. package/dist/test/document-helpers/filterDuplicatedOperations.test.js +0 -126
  185. package/dist/test/document-helpers/filterDuplicatedOperations.test.js.map +0 -1
  186. package/dist/test/document-helpers/garbageCollect.test.d.ts +0 -2
  187. package/dist/test/document-helpers/garbageCollect.test.d.ts.map +0 -1
  188. package/dist/test/document-helpers/garbageCollect.test.js +0 -136
  189. package/dist/test/document-helpers/garbageCollect.test.js.map +0 -1
  190. package/dist/test/document-helpers/groupOperationsByScope.test.d.ts +0 -2
  191. package/dist/test/document-helpers/groupOperationsByScope.test.d.ts.map +0 -1
  192. package/dist/test/document-helpers/groupOperationsByScope.test.js +0 -102
  193. package/dist/test/document-helpers/groupOperationsByScope.test.js.map +0 -1
  194. package/dist/test/document-helpers/merge.test.d.ts +0 -2
  195. package/dist/test/document-helpers/merge.test.d.ts.map +0 -1
  196. package/dist/test/document-helpers/merge.test.js +0 -906
  197. package/dist/test/document-helpers/merge.test.js.map +0 -1
  198. package/dist/test/document-helpers/nextSkipNumber.test.d.ts +0 -2
  199. package/dist/test/document-helpers/nextSkipNumber.test.d.ts.map +0 -1
  200. package/dist/test/document-helpers/nextSkipNumber.test.js +0 -135
  201. package/dist/test/document-helpers/nextSkipNumber.test.js.map +0 -1
  202. package/dist/test/document-helpers/prepareOperations.test.d.ts +0 -2
  203. package/dist/test/document-helpers/prepareOperations.test.d.ts.map +0 -1
  204. package/dist/test/document-helpers/prepareOperations.test.js +0 -304
  205. package/dist/test/document-helpers/prepareOperations.test.js.map +0 -1
  206. package/dist/test/document-helpers/removeExistingOperations.test.d.ts +0 -2
  207. package/dist/test/document-helpers/removeExistingOperations.test.d.ts.map +0 -1
  208. package/dist/test/document-helpers/removeExistingOperations.test.js +0 -177
  209. package/dist/test/document-helpers/removeExistingOperations.test.js.map +0 -1
  210. package/dist/test/document-helpers/reshuffleByTimestamp.test.d.ts +0 -2
  211. package/dist/test/document-helpers/reshuffleByTimestamp.test.d.ts.map +0 -1
  212. package/dist/test/document-helpers/reshuffleByTimestamp.test.js +0 -148
  213. package/dist/test/document-helpers/reshuffleByTimestamp.test.js.map +0 -1
  214. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.d.ts +0 -2
  215. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.d.ts.map +0 -1
  216. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.js +0 -200
  217. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.js.map +0 -1
  218. package/dist/test/document-helpers/skipHeaderOperations.test.d.ts +0 -2
  219. package/dist/test/document-helpers/skipHeaderOperations.test.d.ts.map +0 -1
  220. package/dist/test/document-helpers/skipHeaderOperations.test.js +0 -72
  221. package/dist/test/document-helpers/skipHeaderOperations.test.js.map +0 -1
  222. package/dist/test/document-helpers/sortOperations.test.d.ts +0 -2
  223. package/dist/test/document-helpers/sortOperations.test.d.ts.map +0 -1
  224. package/dist/test/document-helpers/sortOperations.test.js +0 -101
  225. package/dist/test/document-helpers/sortOperations.test.js.map +0 -1
  226. package/dist/test/document-helpers/split.test.d.ts +0 -2
  227. package/dist/test/document-helpers/split.test.d.ts.map +0 -1
  228. package/dist/test/document-helpers/split.test.js +0 -121
  229. package/dist/test/document-helpers/split.test.js.map +0 -1
  230. package/dist/test/document-helpers/utils.d.ts +0 -15
  231. package/dist/test/document-helpers/utils.d.ts.map +0 -1
  232. package/dist/test/document-helpers/utils.js +0 -61
  233. package/dist/test/document-helpers/utils.js.map +0 -1
  234. package/dist/test/document-model/replay.test.d.ts +0 -2
  235. package/dist/test/document-model/replay.test.d.ts.map +0 -1
  236. package/dist/test/document-model/replay.test.js +0 -139
  237. package/dist/test/document-model/replay.test.js.map +0 -1
  238. package/dist/test/document-model/skip-operations.test.d.ts +0 -2
  239. package/dist/test/document-model/skip-operations.test.d.ts.map +0 -1
  240. package/dist/test/document-model/skip-operations.test.js +0 -214
  241. package/dist/test/document-model/skip-operations.test.js.map +0 -1
  242. package/dist/test/document-model/validation.test.d.ts +0 -2
  243. package/dist/test/document-model/validation.test.d.ts.map +0 -1
  244. package/dist/test/document-model/validation.test.js +0 -451
  245. package/dist/test/document-model/validation.test.js.map +0 -1
  246. package/dist/test/document-model/versioning.test.d.ts +0 -2
  247. package/dist/test/document-model/versioning.test.d.ts.map +0 -1
  248. package/dist/test/document-model/versioning.test.js +0 -93
  249. package/dist/test/document-model/versioning.test.js.map +0 -1
  250. package/dist/test/document-model/zip.test.d.ts +0 -2
  251. package/dist/test/document-model/zip.test.d.ts.map +0 -1
  252. package/dist/test/document-model/zip.test.js +0 -79
  253. package/dist/test/document-model/zip.test.js.map +0 -1
  254. package/dist/test/helpers.d.ts +0 -77
  255. package/dist/test/helpers.d.ts.map +0 -1
  256. package/dist/test/helpers.js +0 -118
  257. package/dist/test/helpers.js.map +0 -1
  258. package/dist/test/index.d.ts +0 -4
  259. package/dist/test/index.d.ts.map +0 -1
  260. package/dist/test/index.js +0 -3
  261. package/dist/test/index.js.map +0 -1
  262. package/dist/test/types.d.ts +0 -6
  263. package/dist/test/types.d.ts.map +0 -1
  264. package/dist/test/types.js +0 -2
  265. package/dist/test/types.js.map +0 -1
  266. package/dist/tsconfig.tsbuildinfo +0 -1
  267. package/dist/vitest.config.d.ts +0 -3
  268. package/dist/vitest.config.d.ts.map +0 -1
  269. package/dist/vitest.config.js +0 -7
  270. package/dist/vitest.config.js.map +0 -1
@@ -1,63 +0,0 @@
1
- import { type OperationContext } from "./actions.js";
2
- import type { Action, DocumentOperations, Operation, PHBaseState, PHDocument, PHDocumentHeader } from "./ph-types.js";
3
- import type { PruneActionInput, Reducer, ReducerOptions, ReplayDocumentOptions, SignalDispatch, SkipHeaderOperations, StateReducer } from "./types.js";
4
- export declare function replayOperations<TState extends PHBaseState = PHBaseState>(initialState: TState, clearedOperations: DocumentOperations, stateReducer: StateReducer<TState>, header: PHDocumentHeader, dispatch?: SignalDispatch, documentReducer?: typeof baseReducer, skipHeaderOperations?: SkipHeaderOperations, options?: ReplayDocumentOptions): PHDocument<TState>;
5
- /**
6
- * Updates the document state based on the provided action.
7
- *
8
- * @param state The current state of the document.
9
- * @param action The action being applied to the document.
10
- * @param skip The number of operations to skip before applying the action.
11
- * @param reuseLastOperationIndex Whether to reuse the last operation index (used when a an UNDO operation is performed after an existing one).
12
- * @param context The operation context for deterministic ID generation.
13
- * @returns The updated document state.
14
- */
15
- export declare function updateDocument<TDocument extends PHDocument>(document: TDocument, action: Action, reuseLastOperationIndex: boolean, skip: number, context: OperationContext, operation?: Operation, skipIndexValidation?: boolean): TDocument;
16
- /**
17
- * Processes an UNDO or REDO action.
18
- *
19
- * @param document The current state of the document.
20
- * @param action The action being applied to the document.
21
- * @param skip The number of operations to skip before applying the action.
22
- * @returns The updated document, calculated skip value and transformed action (if applied).
23
- */
24
- export declare function processUndoRedo<TState extends PHBaseState = PHBaseState>(document: PHDocument<TState>, action: Action, skip: number, protocolVersion?: number): {
25
- document: PHDocument<TState>;
26
- action: Action;
27
- skip: number;
28
- reuseLastOperationIndex: boolean;
29
- };
30
- /**
31
- * Base document reducer that wraps a custom document reducer and handles
32
- * document-level actions such as undo, redo, prune, and set name.
33
- *
34
- * @template TGlobalState - The type of the state of the custom reducer.
35
- * @template TAction - The type of the actions of the custom reducer.
36
- * @param state - The current state of the document.
37
- * @param action - The action object to apply to the state.
38
- * @param customReducer - The custom reducer that implements the application logic
39
- * specific to the document's state.
40
- * @returns The new state of the document.
41
- */
42
- export declare function baseReducer<TState extends PHBaseState = PHBaseState>(document: PHDocument<TState>, action: Action, customReducer: StateReducer<TState>, dispatch?: SignalDispatch, options?: ReducerOptions): PHDocument<TState>;
43
- /**
44
- * Helper function to create a document model reducer.
45
- *
46
- * @remarks
47
- * This function creates a new reducer that wraps the provided `reducer` with
48
- * `documentReducer`, adding support for document actions:
49
- * - `SET_NAME`
50
- * - `UNDO`
51
- * - `REDO`
52
- * - `PRUNE`
53
- *
54
- * It also updates the document-related attributes on every operation.
55
- *
56
- * @param reducer - The custom reducer to wrap.
57
- * @param documentReducer - The document reducer to use.
58
- *
59
- * @returns The new reducer.
60
- */
61
- export declare function createReducer<TState extends PHBaseState = PHBaseState>(stateReducer: StateReducer<TState>, documentReducer?: typeof baseReducer): Reducer<TState>;
62
- export declare function pruneOperation<TState extends PHBaseState = PHBaseState>(document: PHDocument<TState>, input: PruneActionInput, wrappedReducer: StateReducer<TState>): PHDocument<TState>;
63
- //# sourceMappingURL=reducer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../../../src/core/reducer.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAC;AAuBtB,OAAO,KAAK,EACV,MAAM,EACN,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,UAAU,EACV,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EACV,gBAAgB,EAChB,OAAO,EACP,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB,wBAAgB,gBAAgB,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,EACvE,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,kBAAkB,EACrC,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,EAClC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,CAAC,EAAE,cAAc,EACzB,eAAe,qBAAc,EAC7B,oBAAoB,GAAE,oBAAyB,EAC/C,OAAO,CAAC,EAAE,qBAAqB,GAC9B,UAAU,CAAC,MAAM,CAAC,CAcpB;AA8FD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,SAAS,SAAS,UAAU,EACzD,QAAQ,EAAE,SAAS,EACnB,MAAM,EAAE,MAAM,EACd,uBAAuB,EAAE,OAAO,EAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,gBAAgB,EACzB,SAAS,CAAC,EAAE,SAAS,EACrB,mBAAmB,CAAC,EAAE,OAAO,GAC5B,SAAS,CAyBX;AA+BD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,EACtE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,eAAe,SAAI,GAClB;IACD,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB,EAAE,OAAO,CAAC;CAClC,CAYA;AAoHD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,EAClE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAC5B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,YAAY,CAAC,MAAM,CAAC,EACnC,QAAQ,CAAC,EAAE,cAAc,EACzB,OAAO,GAAE,cAAmB,GAC3B,UAAU,CAAC,MAAM,CAAC,CA+OpB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,EACpE,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,EAClC,eAAe,qBAAc,GAC5B,OAAO,CAAC,MAAM,CAAC,CAUjB;AAED,wBAAgB,cAAc,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,EACrE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAC5B,KAAK,EAAE,gBAAgB,EACvB,cAAc,EAAE,YAAY,CAAC,MAAM,CAAC,GACnC,UAAU,CAAC,MAAM,CAAC,CAoEpB"}
@@ -1,455 +0,0 @@
1
- import { castDraft, create, unsafe } from "mutative";
2
- import { actionFromAction, loadState, operationFromAction, operationFromOperation, } from "./actions.js";
3
- import { diffOperations, garbageCollect, garbageCollectDocumentOperations, garbageCollectV2, hashDocumentStateForScope, isDocumentAction, isUndo, isUndoRedo, parseResultingState, replayDocument, skipHeaderOperations, sortOperations, updateHeaderRevision, } from "./documents.js";
4
- import { loadStateOperation, redoOperation, setNameOperation, undoOperation, undoOperationV2, } from "./operations.js";
5
- import { DocumentActionSchema } from "./schemas.js";
6
- // This rebuilds the document according to the provided actions.
7
- export function replayOperations(initialState, clearedOperations, stateReducer, header, dispatch, documentReducer = baseReducer, skipHeaderOperations = {}, options) {
8
- // wraps the provided custom reducer with the
9
- // base document reducer
10
- const wrappedReducer = createReducer(stateReducer, documentReducer);
11
- return replayDocument(initialState, clearedOperations, wrappedReducer, header, dispatch, skipHeaderOperations, options);
12
- }
13
- /**
14
- * Updates the operations history of the document based on the provided action.
15
- *
16
- * @param state The current state of the document.
17
- * @param action The action being applied to the document.
18
- * @param index The index of the operation to update.
19
- * @param skip The number of operations to skip before applying the action.
20
- * @param reuseLastOperationIndex Whether to reuse the last operation index (used when a an UNDO operation is performed after an existing one).
21
- * @param context The operation context for deterministic ID generation.
22
- * @returns The updated document state.
23
- */
24
- function updateOperationsForAction(document, action, reuseLastOperationIndex, skip, context) {
25
- // UNDO, REDO and PRUNE are meta operations
26
- // that alter the operations history themselves
27
- if (["UNDO", "REDO", "PRUNE"].includes(action.type)) {
28
- return document;
29
- }
30
- const scope = action.scope;
31
- let operations = [];
32
- if (document.operations[scope]) {
33
- operations = document.operations[scope].slice();
34
- }
35
- const latestOperation = operations.sort((a, b) => a.index - b.index).at(-1);
36
- const lastOperationIndex = latestOperation?.index ?? -1;
37
- const index = reuseLastOperationIndex
38
- ? lastOperationIndex
39
- : lastOperationIndex + 1;
40
- const newOperation = operationFromAction(action, index, skip, context);
41
- operations.push(newOperation);
42
- // adds the action to the operations history with
43
- // the latest index and current timestamp
44
- return {
45
- ...document,
46
- operations: { ...document.operations, [scope]: operations },
47
- };
48
- }
49
- function updateOperationsForOperation(document, operation, reuseLastOperationIndex, skip, context, skipIndexValidation) {
50
- const scope = operation.action.scope;
51
- const scopeOperations = document.operations[scope];
52
- const operations = scopeOperations
53
- ? scopeOperations.slice()
54
- : [];
55
- const latestOperation = operations.sort((a, b) => a.index - b.index).at(-1);
56
- const lastOperationIndex = latestOperation?.index ?? -1;
57
- const nextIndex = reuseLastOperationIndex
58
- ? lastOperationIndex
59
- : lastOperationIndex + 1;
60
- if (!skipIndexValidation && operation.index - skip > nextIndex) {
61
- throw new Error(`Missing operations: expected ${nextIndex} with skip 0 or equivalent, got index ${operation.index} with skip ${skip}`);
62
- }
63
- const newOperation = operationFromOperation(operation, operation.index, skip, context);
64
- operations.push(newOperation);
65
- // adds the action to the operations history with
66
- // the latest index and current timestamp
67
- return {
68
- ...document,
69
- operations: { ...document.operations, [scope]: operations },
70
- };
71
- }
72
- /**
73
- * Updates the document state based on the provided action.
74
- *
75
- * @param state The current state of the document.
76
- * @param action The action being applied to the document.
77
- * @param skip The number of operations to skip before applying the action.
78
- * @param reuseLastOperationIndex Whether to reuse the last operation index (used when a an UNDO operation is performed after an existing one).
79
- * @param context The operation context for deterministic ID generation.
80
- * @returns The updated document state.
81
- */
82
- export function updateDocument(document, action, reuseLastOperationIndex, skip, context, operation, skipIndexValidation) {
83
- let newDocument;
84
- if (operation) {
85
- // operation
86
- newDocument = updateOperationsForOperation(document, operation, reuseLastOperationIndex, skip, context, skipIndexValidation);
87
- }
88
- else {
89
- // action
90
- newDocument = updateOperationsForAction(document, action, reuseLastOperationIndex, skip, context);
91
- }
92
- newDocument = updateHeaderRevision(newDocument, action.scope);
93
- return newDocument;
94
- }
95
- /**
96
- * The base document reducer function that wraps a custom reducer function.
97
- *
98
- * @param state The current state of the document.
99
- * @param action The action being applied to the document.
100
- * @param wrappedReducer The custom reducer function being wrapped by the base reducer.
101
- * @returns The updated document state.
102
- */
103
- function _baseReducer(document, action, wrappedReducer) {
104
- // throws if action is not valid base action
105
- const parsedAction = DocumentActionSchema().parse(action);
106
- switch (parsedAction.type) {
107
- // TODO: This needs to be changed to a HEADER scope action if it's changing the header.
108
- case "SET_NAME":
109
- return setNameOperation(document, parsedAction.input);
110
- case "PRUNE":
111
- return pruneOperation(document, parsedAction.input, wrappedReducer);
112
- case "LOAD_STATE":
113
- return loadStateOperation(document, parsedAction.input);
114
- default:
115
- return document;
116
- }
117
- }
118
- /**
119
- * Processes an UNDO or REDO action.
120
- *
121
- * @param document The current state of the document.
122
- * @param action The action being applied to the document.
123
- * @param skip The number of operations to skip before applying the action.
124
- * @returns The updated document, calculated skip value and transformed action (if applied).
125
- */
126
- export function processUndoRedo(document, action, skip, protocolVersion = 1) {
127
- switch (action.type) {
128
- case "UNDO":
129
- if (protocolVersion >= 2) {
130
- return undoOperationV2(document, action, skip);
131
- }
132
- return undoOperation(document, action, skip);
133
- case "REDO":
134
- return redoOperation(document, action, skip);
135
- default:
136
- return { document, action, skip, reuseLastOperationIndex: false };
137
- }
138
- }
139
- function processSkipOperation(document, action, customReducer, skipValue, reuseOperationResultingState = false, resultingStateParser = parseResultingState) {
140
- const scope = action.scope;
141
- const scopeOperations = document.operations[scope];
142
- if (!scopeOperations) {
143
- return document;
144
- }
145
- const latestOperation = scopeOperations.at(-1);
146
- if (!latestOperation)
147
- return document;
148
- const documentOperations = garbageCollectDocumentOperations({
149
- ...document.operations,
150
- [scope]: skipHeaderOperations(scopeOperations, latestOperation),
151
- });
152
- let scopeState = undefined;
153
- const documentScopeOps = documentOperations[scope];
154
- const lastRemainingOperation = documentScopeOps?.at(-1);
155
- // if the last operation has the resulting state and
156
- // reuseOperationResultingState is true then reuses it
157
- // instead of replaying the operations from the beginning
158
- if (reuseOperationResultingState && lastRemainingOperation?.resultingState) {
159
- scopeState = resultingStateParser(lastRemainingOperation.resultingState);
160
- }
161
- else {
162
- const { state } = replayOperations(document.initialState, documentOperations, customReducer, document.header, undefined, undefined, undefined, {
163
- reuseOperationResultingState,
164
- operationResultingStateParser: resultingStateParser,
165
- });
166
- scopeState = state[scope];
167
- }
168
- return {
169
- ...document,
170
- state: {
171
- ...document.state,
172
- [scope]: scopeState,
173
- },
174
- operations: garbageCollectDocumentOperations({
175
- ...document.operations,
176
- }),
177
- };
178
- }
179
- function processUndoOperation(document, scope, customReducer, reuseOperationResultingState = false, resultingStateParser = parseResultingState) {
180
- const scopeOperations = document.operations[scope];
181
- if (!scopeOperations) {
182
- return document;
183
- }
184
- const operations = [...scopeOperations];
185
- const sortedOperations = sortOperations(operations);
186
- sortedOperations.pop();
187
- const documentOperations = garbageCollectDocumentOperations({
188
- ...document.operations,
189
- });
190
- const documentScopeOps = documentOperations[scope];
191
- if (!documentScopeOps) {
192
- return document;
193
- }
194
- const clearedOperations = [...documentScopeOps];
195
- const diff = diffOperations(garbageCollect(sortedOperations), clearedOperations);
196
- const doc = replayOperations(document.initialState, documentOperations, customReducer, document.header, undefined, undefined, undefined, {
197
- reuseOperationResultingState,
198
- operationResultingStateParser: resultingStateParser,
199
- });
200
- const clipboard = sortOperations([...document.clipboard, ...diff].filter((op) => op.action.type !== "NOOP")).reverse();
201
- return { ...doc, clipboard };
202
- }
203
- /**
204
- * Base document reducer that wraps a custom document reducer and handles
205
- * document-level actions such as undo, redo, prune, and set name.
206
- *
207
- * @template TGlobalState - The type of the state of the custom reducer.
208
- * @template TAction - The type of the actions of the custom reducer.
209
- * @param state - The current state of the document.
210
- * @param action - The action object to apply to the state.
211
- * @param customReducer - The custom reducer that implements the application logic
212
- * specific to the document's state.
213
- * @returns The new state of the document.
214
- */
215
- export function baseReducer(document, action, customReducer, dispatch, options = {}) {
216
- const { skip, ignoreSkipOperations = false, reuseOperationResultingState = false, operationResultingStateParser, pruneOnSkip = true, branch = "main", } = options;
217
- let _action = actionFromAction(action);
218
- let skipValue = skip ?? options.replayOptions?.operation.skip ?? 0;
219
- let newDocument = {
220
- ...document,
221
- };
222
- let reuseLastOperationIndex = false;
223
- const shouldProcessSkipOperation = !ignoreSkipOperations && skipValue > 0;
224
- if (isUndoRedo(_action)) {
225
- const { skip: calculatedSkip, action: transformedAction, document: processedDocument, reuseLastOperationIndex: reuseIndex, } = processUndoRedo(document, _action, skipValue, options.protocolVersion ?? 1);
226
- _action = transformedAction;
227
- skipValue = calculatedSkip;
228
- newDocument = processedDocument;
229
- reuseLastOperationIndex = reuseIndex;
230
- }
231
- else {
232
- newDocument = {
233
- ...newDocument,
234
- clipboard: [],
235
- };
236
- }
237
- // if the action is one the base document actions (SET_NAME, UNDO, REDO, PRUNE)
238
- // then runs the base reducer first
239
- if (isDocumentAction(_action)) {
240
- newDocument = _baseReducer(newDocument, _action, customReducer);
241
- }
242
- // updates the document revision number, last modified date
243
- // and operation history
244
- const operationContext = {
245
- documentId: document.header.id,
246
- scope: _action.scope,
247
- branch,
248
- };
249
- newDocument = updateDocument(newDocument, _action, reuseLastOperationIndex, skipValue, operationContext, options.replayOptions?.operation, options.skipIndexValidation);
250
- // Only process undo for actual UNDO actions in protocol v1
251
- // For v2, NOOPs always have skip=1 and indices increment
252
- // NOOP operations with skip > 0 will have their clipboard populated server-side
253
- const protocolVersion = options.protocolVersion ?? 1;
254
- if (isUndo(action) && protocolVersion < 2) {
255
- const result = processUndoOperation(newDocument, action.scope, customReducer);
256
- return result;
257
- }
258
- // V2 UNDO: Rebuild state using garbageCollectV2 which handles consecutive NOOPs as chains
259
- // Also trigger for NOOP operations loaded from sync (they have skip > 0)
260
- const isNoopWithSkip = _action.type === "NOOP" && skipValue > 0;
261
- if ((isUndo(action) || isNoopWithSkip) && protocolVersion >= 2) {
262
- const scope = _action.scope;
263
- const scopeOperations = newDocument.operations[scope] || [];
264
- const sortedOps = sortOperations([...scopeOperations]);
265
- // Get operations that should be applied (excludes undone operations)
266
- const effectiveOps = garbageCollectV2(sortedOps);
267
- // Build operations for replay - only include non-NOOP operations
268
- const opsToReplay = effectiveOps.filter((op) => op.action.type !== "NOOP");
269
- // Create document operations with only the effective ops for this scope
270
- const replayOps = {
271
- ...newDocument.operations,
272
- [scope]: opsToReplay,
273
- };
274
- // Replay to rebuild state using replayOperations which wraps the reducer
275
- // Pass skipIndexValidation since garbageCollectV2 creates gapped indices
276
- const rebuiltDoc = replayOperations(newDocument.initialState, replayOps, customReducer, newDocument.header, dispatch, baseReducer, {}, { skipIndexValidation: true });
277
- // Return document with rebuilt state but original operations (including all NOOPs)
278
- return {
279
- ...rebuiltDoc,
280
- operations: newDocument.operations,
281
- clipboard: [],
282
- };
283
- }
284
- if (shouldProcessSkipOperation) {
285
- const processed = processSkipOperation(newDocument, _action, customReducer, skipValue, reuseOperationResultingState, operationResultingStateParser);
286
- // Preserve operations when pruneOnSkip is false
287
- if (!pruneOnSkip) {
288
- newDocument = {
289
- ...processed,
290
- operations: newDocument.operations,
291
- };
292
- }
293
- else {
294
- newDocument = processed;
295
- }
296
- }
297
- // wraps the custom reducer with Mutative to avoid
298
- // mutation bugs and allow writing reducers with
299
- // mutating code
300
- newDocument = create(newDocument, (draft) => {
301
- // the reducer runs on a immutable version of
302
- // provided state
303
- try {
304
- const newState = customReducer(draft.state, _action, dispatch);
305
- // const clipboardValue = isUndoRedo(action) ? [...clipboard] : [];
306
- // if the reducer creates a new state object instead
307
- // of mutating the draft then returns the new state
308
- if (newState) {
309
- // Object.assign(draft.state, newState);
310
- unsafe(() => {
311
- // casts new state as draft to comply with typescript
312
- draft.state = castDraft(newState);
313
- // clipboard: [...clipboardValue],
314
- });
315
- }
316
- else {
317
- // unsafe(() => {
318
- // draft.clipboard = castDraft([...clipboardValue]);
319
- // });
320
- }
321
- }
322
- catch (error) {
323
- // if the reducer throws an error then we should keep the previous state (before replayOperations)
324
- // and remove skip number from action/operation
325
- const actionScopeOps = newDocument.operations[_action.scope];
326
- if (!actionScopeOps) {
327
- throw new Error(`No operations found for scope: ${_action.scope}`);
328
- }
329
- const lastOperationIndex = actionScopeOps.length - 1;
330
- const draftScopeOps = draft.operations[_action.scope];
331
- if (!draftScopeOps) {
332
- throw new Error(`No operations found in draft for scope: ${_action.scope}`);
333
- }
334
- draftScopeOps[lastOperationIndex].error = error.message;
335
- draftScopeOps[lastOperationIndex].skip = 0;
336
- if (shouldProcessSkipOperation) {
337
- draft.state = castDraft({
338
- ...document.state,
339
- });
340
- const documentScopeOps = document.operations[_action.scope];
341
- if (!documentScopeOps) {
342
- throw new Error(`No operations found for scope: ${_action.scope}`);
343
- }
344
- draft.operations = castDraft({
345
- ...document.operations,
346
- [_action.scope]: [
347
- ...documentScopeOps,
348
- {
349
- ...draftScopeOps[lastOperationIndex],
350
- },
351
- ],
352
- });
353
- }
354
- }
355
- });
356
- // updates the document history
357
- // meta operations are not added to the operations history
358
- if (["UNDO", "REDO", "PRUNE"].includes(_action.type)) {
359
- return newDocument;
360
- }
361
- // if reuseHash is true, checks if the action has
362
- // an hash and uses it instead of generating it
363
- const scope = _action.scope || "global";
364
- let hash = hashDocumentStateForScope(newDocument, scope);
365
- if (options.replayOptions?.operation.hash &&
366
- options.replayOptions.operation.hash !== "") {
367
- hash = options.replayOptions.operation.hash;
368
- }
369
- // updates the last operation with the hash of the resulting state
370
- const scopeOperations = newDocument.operations[scope];
371
- const lastOperation = scopeOperations?.at(-1);
372
- if (lastOperation) {
373
- lastOperation.hash = hash;
374
- if (reuseOperationResultingState) {
375
- lastOperation.resultingState = JSON.stringify(newDocument.state[scope]);
376
- }
377
- }
378
- return newDocument;
379
- }
380
- /**
381
- * Helper function to create a document model reducer.
382
- *
383
- * @remarks
384
- * This function creates a new reducer that wraps the provided `reducer` with
385
- * `documentReducer`, adding support for document actions:
386
- * - `SET_NAME`
387
- * - `UNDO`
388
- * - `REDO`
389
- * - `PRUNE`
390
- *
391
- * It also updates the document-related attributes on every operation.
392
- *
393
- * @param reducer - The custom reducer to wrap.
394
- * @param documentReducer - The document reducer to use.
395
- *
396
- * @returns The new reducer.
397
- */
398
- export function createReducer(stateReducer, documentReducer = baseReducer) {
399
- const reducer = (document, action, dispatch, options) => {
400
- return documentReducer(document, action, stateReducer, dispatch, options);
401
- };
402
- return reducer;
403
- }
404
- export function pruneOperation(document, input, wrappedReducer) {
405
- const operations = document.operations.global;
406
- if (!operations) {
407
- throw new Error("No global operations found");
408
- }
409
- let { start, end } = input;
410
- start = start || 0;
411
- end = end || operations.length;
412
- const actionsToPrune = operations.slice(start, end);
413
- const actionsToKeepStart = operations.slice(0, start);
414
- const actionsToKeepEnd = operations.slice(end);
415
- // runs all operations from the initial state to
416
- // the end of prune to get name and data
417
- const newDocument = replayOperations(document.initialState, {
418
- ...document.operations,
419
- global: actionsToKeepStart.concat(actionsToPrune),
420
- }, wrappedReducer, document.header);
421
- const newState = newDocument.state;
422
- const name = newDocument.header.name;
423
- // the new operation has the index of the first pruned operation
424
- const loadStateIndex = actionsToKeepStart.length;
425
- // if and operation is pruned then reuses the timestamp of the last operation
426
- // if not then assigns the timestamp of the following unpruned operation
427
- const loadStateTimestamp = actionsToKeepStart.length
428
- ? actionsToKeepStart[actionsToKeepStart.length - 1].timestampUtcMs
429
- : actionsToKeepEnd.length
430
- ? actionsToKeepEnd[0].timestampUtcMs
431
- : new Date().toISOString();
432
- const action = loadState({ name, ...newState }, actionsToPrune.length);
433
- // replaces pruned operations with LOAD_STATE
434
- return replayOperations(document.initialState, {
435
- ...document.operations,
436
- global: [
437
- ...actionsToKeepStart,
438
- {
439
- skip: 0,
440
- ...action,
441
- action,
442
- timestampUtcMs: loadStateTimestamp,
443
- index: loadStateIndex,
444
- hash: hashDocumentStateForScope({ state: newState }, "global"),
445
- },
446
- ...actionsToKeepEnd
447
- // updates the index for all the following operations
448
- .map((action, index) => ({
449
- ...action,
450
- index: loadStateIndex + index + 1,
451
- })),
452
- ],
453
- }, wrappedReducer, document.header);
454
- }
455
- //# sourceMappingURL=reducer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../../src/core/reducer.ts"],"names":[],"mappings":"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"}
@@ -1,69 +0,0 @@
1
- import { z } from "zod";
2
- import type { DocumentFile, LoadStateActionInput, LoadStateActionStateInput, PruneActionInput, SchemaLoadStateAction, SchemaPruneAction, SchemaRedoAction, SchemaSetNameAction, SchemaUndoAction } from "./types.js";
3
- type Properties<T> = Required<{
4
- [K in keyof T]: z.ZodType<T[K], T[K]>;
5
- }>;
6
- type definedNonNullAny = {};
7
- export declare const isDefinedNonNullAny: (v: any) => v is definedNonNullAny;
8
- export declare const definedNonNullAnySchema: z.ZodAny & z.ZodType<definedNonNullAny, any, z.core.$ZodTypeInternals<definedNonNullAny, any>>;
9
- export declare const Load_StateSchema: z.ZodEnum<{
10
- LOAD_STATE: "LOAD_STATE";
11
- }>;
12
- export declare const PruneSchema: z.ZodEnum<{
13
- PRUNE: "PRUNE";
14
- }>;
15
- export declare const RedoSchema: z.ZodEnum<{
16
- REDO: "REDO";
17
- }>;
18
- export declare const Set_NameSchema: z.ZodEnum<{
19
- SET_NAME: "SET_NAME";
20
- }>;
21
- export declare const UndoSchema: z.ZodEnum<{
22
- UNDO: "UNDO";
23
- }>;
24
- export declare function OperationScopeSchema(): z.ZodString;
25
- export declare function DocumentActionSchema(): z.ZodUnion<readonly [z.ZodObject<Required<{
26
- id: z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
27
- timestampUtcMs: z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
28
- input: z.ZodType<LoadStateActionInput, LoadStateActionInput, z.core.$ZodTypeInternals<LoadStateActionInput, LoadStateActionInput>>;
29
- type: z.ZodType<"LOAD_STATE", "LOAD_STATE", z.core.$ZodTypeInternals<"LOAD_STATE", "LOAD_STATE">>;
30
- scope: z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
31
- }>, z.core.$strip>, z.ZodObject<Required<{
32
- id: z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
33
- timestampUtcMs: z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
34
- input: z.ZodType<PruneActionInput, PruneActionInput, z.core.$ZodTypeInternals<PruneActionInput, PruneActionInput>>;
35
- type: z.ZodType<"PRUNE", "PRUNE", z.core.$ZodTypeInternals<"PRUNE", "PRUNE">>;
36
- scope: z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
37
- }>, z.core.$strip>, z.ZodObject<Required<{
38
- id: z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
39
- timestampUtcMs: z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
40
- input: z.ZodType<number, number, z.core.$ZodTypeInternals<number, number>>;
41
- type: z.ZodType<"REDO", "REDO", z.core.$ZodTypeInternals<"REDO", "REDO">>;
42
- scope: z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
43
- }>, z.core.$strip>, z.ZodObject<Required<{
44
- id: z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
45
- timestampUtcMs: z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
46
- input: z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
47
- type: z.ZodType<"SET_NAME", "SET_NAME", z.core.$ZodTypeInternals<"SET_NAME", "SET_NAME">>;
48
- scope: z.ZodType<"global", "global", z.core.$ZodTypeInternals<"global", "global">>;
49
- }>, z.core.$strip>, z.ZodObject<Required<{
50
- id: z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
51
- timestampUtcMs: z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
52
- input: z.ZodType<number, number, z.core.$ZodTypeInternals<number, number>>;
53
- type: z.ZodType<"UNDO", "UNDO", z.core.$ZodTypeInternals<"UNDO", "UNDO">>;
54
- scope: z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
55
- }>, z.core.$strip>]>;
56
- export declare function DocumentFileSchema(): z.ZodObject<Properties<DocumentFile>>;
57
- export declare function LoadStateActionSchema(): z.ZodObject<Properties<SchemaLoadStateAction>>;
58
- export declare function LoadStateActionInputSchema(): z.ZodObject<Properties<LoadStateActionInput>>;
59
- export declare function LoadStateActionStateInputSchema(): z.ZodObject<Properties<LoadStateActionStateInput>>;
60
- export declare function PruneActionSchema(): z.ZodObject<Properties<SchemaPruneAction>>;
61
- export declare function PruneActionInputSchema(): z.ZodObject<Properties<PruneActionInput>>;
62
- export declare const RedoActionInputSchema: typeof z.number;
63
- export declare function RedoActionSchema(): z.ZodObject<Properties<SchemaRedoAction>>;
64
- export declare const SetNameActionInputSchema: typeof z.string;
65
- export declare function SetNameActionSchema(): z.ZodObject<Properties<SchemaSetNameAction>>;
66
- export declare const UndoActionInputSchema: typeof z.number;
67
- export declare function UndoActionSchema(): z.ZodObject<Properties<SchemaUndoAction>>;
68
- export {};
69
- //# sourceMappingURL=schemas.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/core/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,yBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,KAAK,UAAU,CAAC,CAAC,IAAI,QAAQ,CAAC;KAC3B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CACtC,CAAC,CAAC;AAEH,KAAK,iBAAiB,GAAG,EAAE,CAAC;AAE5B,eAAO,MAAM,mBAAmB,GAAI,GAAG,GAAG,KAAG,CAAC,IAAI,iBACnB,CAAC;AAEhC,eAAO,MAAM,uBAAuB,gGAEI,CAAC;AAEzC,eAAO,MAAM,gBAAgB;;EAAyB,CAAC;AAEvD,eAAO,MAAM,WAAW;;EAAoB,CAAC;AAE7C,eAAO,MAAM,UAAU;;EAAmB,CAAC;AAE3C,eAAO,MAAM,cAAc;;EAAuB,CAAC;AAEnD,eAAO,MAAM,UAAU;;EAAmB,CAAC;AAE3C,wBAAgB,oBAAoB,IAAI,CAAC,CAAC,SAAS,CAElD;AAED,wBAAgB,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAQnC;AAED,wBAAgB,kBAAkB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAQ1E;AAED,wBAAgB,qBAAqB,IAAI,CAAC,CAAC,SAAS,CAClD,UAAU,CAAC,qBAAqB,CAAC,CAClC,CAQA;AAED,wBAAgB,0BAA0B,IAAI,CAAC,CAAC,SAAS,CACvD,UAAU,CAAC,oBAAoB,CAAC,CACjC,CAKA;AAED,wBAAgB,+BAA+B,IAAI,CAAC,CAAC,SAAS,CAC5D,UAAU,CAAC,yBAAyB,CAAC,CACtC,CAKA;AAED,wBAAgB,iBAAiB,IAAI,CAAC,CAAC,SAAS,CAC9C,UAAU,CAAC,iBAAiB,CAAC,CAC9B,CAQA;AAED,wBAAgB,sBAAsB,IAAI,CAAC,CAAC,SAAS,CACnD,UAAU,CAAC,gBAAgB,CAAC,CAC7B,CAKA;AAED,eAAO,MAAM,qBAAqB,iBAAW,CAAC;AAE9C,wBAAgB,gBAAgB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAQ5E;AAED,eAAO,MAAM,wBAAwB,iBAAW,CAAC;AAEjD,wBAAgB,mBAAmB,IAAI,CAAC,CAAC,SAAS,CAChD,UAAU,CAAC,mBAAmB,CAAC,CAChC,CAQA;AAeD,eAAO,MAAM,qBAAqB,iBAAW,CAAC;AAE9C,wBAAgB,gBAAgB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAQ5E"}