document-model 4.1.0-dev.9 → 4.1.0-dev.90

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 (446) hide show
  1. package/README.md +24 -24
  2. package/dist/src/core/actions.d.ts +79 -0
  3. package/dist/src/core/actions.d.ts.map +1 -0
  4. package/dist/src/core/actions.js +183 -0
  5. package/dist/src/core/actions.js.map +1 -0
  6. package/dist/src/core/crypto.d.ts +17 -0
  7. package/dist/src/core/crypto.d.ts.map +1 -0
  8. package/dist/src/core/crypto.js +87 -0
  9. package/dist/src/core/crypto.js.map +1 -0
  10. package/dist/src/{document/utils/document-helpers.d.ts → core/documents.d.ts} +57 -22
  11. package/dist/src/core/documents.d.ts.map +1 -0
  12. package/dist/src/{document/utils/document-helpers.js → core/documents.js} +364 -26
  13. package/dist/src/core/documents.js.map +1 -0
  14. package/dist/src/core/errors.d.ts +21 -0
  15. package/dist/src/core/errors.d.ts.map +1 -0
  16. package/dist/src/core/errors.js +47 -0
  17. package/dist/src/core/errors.js.map +1 -0
  18. package/dist/src/core/files.d.ts +14 -0
  19. package/dist/src/core/files.d.ts.map +1 -0
  20. package/dist/src/core/files.js +74 -0
  21. package/dist/src/core/files.js.map +1 -0
  22. package/dist/src/{document/utils → core}/header.d.ts +3 -35
  23. package/dist/src/core/header.d.ts.map +1 -0
  24. package/dist/src/{document/utils → core}/header.js +6 -19
  25. package/dist/src/core/header.js.map +1 -0
  26. package/dist/src/core/index.d.ts +12 -0
  27. package/dist/src/core/index.d.ts.map +1 -0
  28. package/dist/src/core/index.js +12 -0
  29. package/dist/src/core/index.js.map +1 -0
  30. package/dist/src/{document/utils/file.d.ts → core/node.d.ts} +40 -29
  31. package/dist/src/core/node.d.ts.map +1 -0
  32. package/dist/src/core/node.js +149 -0
  33. package/dist/src/core/node.js.map +1 -0
  34. package/dist/src/core/operations.d.ts +32 -0
  35. package/dist/src/core/operations.d.ts.map +1 -0
  36. package/dist/src/{document/actions → core}/operations.js +11 -59
  37. package/dist/src/core/operations.js.map +1 -0
  38. package/dist/src/core/ph-types.d.ts +259 -0
  39. package/dist/src/core/ph-types.d.ts.map +1 -0
  40. package/dist/src/core/ph-types.js +15 -0
  41. package/dist/src/core/ph-types.js.map +1 -0
  42. package/dist/src/core/reducer.d.ts +61 -0
  43. package/dist/src/core/reducer.d.ts.map +1 -0
  44. package/dist/src/{document → core}/reducer.js +165 -103
  45. package/dist/src/core/reducer.js.map +1 -0
  46. package/dist/src/{document/schema/zod.d.ts → core/schemas.d.ts} +37 -10
  47. package/dist/src/core/schemas.d.ts.map +1 -0
  48. package/dist/src/{document/schema/zod.js → core/schemas.js} +23 -26
  49. package/dist/src/core/schemas.js.map +1 -0
  50. package/dist/src/core/state.d.ts +26 -0
  51. package/dist/src/core/state.d.ts.map +1 -0
  52. package/dist/src/core/state.js +56 -0
  53. package/dist/src/core/state.js.map +1 -0
  54. package/dist/src/core/types.d.ts +481 -0
  55. package/dist/src/core/types.d.ts.map +1 -0
  56. package/dist/src/{document → core}/types.js.map +1 -1
  57. package/dist/src/core/validation.d.ts +4 -0
  58. package/dist/src/core/validation.d.ts.map +1 -0
  59. package/dist/src/{document/utils → core}/validation.js +6 -2
  60. package/dist/src/core/validation.js.map +1 -0
  61. package/dist/src/document-model/actions.d.ts +158 -0
  62. package/dist/src/document-model/actions.d.ts.map +1 -0
  63. package/dist/src/document-model/actions.js +109 -0
  64. package/dist/src/document-model/actions.js.map +1 -0
  65. package/dist/src/document-model/constants.d.ts +7 -0
  66. package/dist/src/document-model/constants.d.ts.map +1 -0
  67. package/dist/src/document-model/{gen/document-model.js → constants.js} +35 -3
  68. package/dist/src/document-model/constants.js.map +1 -0
  69. package/dist/src/document-model/files.d.ts +5 -0
  70. package/dist/src/document-model/files.d.ts.map +1 -0
  71. package/dist/src/document-model/files.js +9 -0
  72. package/dist/src/document-model/files.js.map +1 -0
  73. package/dist/src/document-model/index.d.ts +9 -0
  74. package/dist/src/document-model/index.d.ts.map +1 -0
  75. package/dist/src/document-model/index.js +9 -0
  76. package/dist/src/document-model/index.js.map +1 -0
  77. package/dist/src/document-model/module.d.ts +1 -1
  78. package/dist/src/document-model/module.d.ts.map +1 -1
  79. package/dist/src/document-model/module.js +17 -10
  80. package/dist/src/document-model/module.js.map +1 -1
  81. package/dist/src/document-model/reducers.d.ts +11 -0
  82. package/dist/src/document-model/reducers.d.ts.map +1 -0
  83. package/dist/src/document-model/reducers.js +588 -0
  84. package/dist/src/document-model/reducers.js.map +1 -0
  85. package/dist/src/document-model/schemas.d.ts +449 -0
  86. package/dist/src/document-model/schemas.d.ts.map +1 -0
  87. package/dist/src/document-model/{gen/schema/zod.js → schemas.js} +9 -15
  88. package/dist/src/document-model/schemas.js.map +1 -0
  89. package/dist/src/document-model/state.d.ts +11 -0
  90. package/dist/src/document-model/state.d.ts.map +1 -0
  91. package/dist/src/document-model/state.js +61 -0
  92. package/dist/src/document-model/state.js.map +1 -0
  93. package/dist/src/document-model/types.d.ts +671 -3
  94. package/dist/src/document-model/types.d.ts.map +1 -1
  95. package/dist/src/document-model/validation.d.ts +7 -0
  96. package/dist/src/document-model/validation.d.ts.map +1 -0
  97. package/dist/src/document-model/{custom/utils.js → validation.js} +1 -1
  98. package/dist/src/document-model/validation.js.map +1 -0
  99. package/dist/src/index.d.ts +5 -0
  100. package/dist/src/index.d.ts.map +1 -0
  101. package/dist/src/index.js +2 -0
  102. package/dist/src/index.js.map +1 -0
  103. package/dist/test/document/crypto.test.js +27 -54
  104. package/dist/test/document/crypto.test.js.map +1 -1
  105. package/dist/test/document/event-vs-command.test.js +81 -51
  106. package/dist/test/document/event-vs-command.test.js.map +1 -1
  107. package/dist/test/document/local.test.js +27 -45
  108. package/dist/test/document/local.test.js.map +1 -1
  109. package/dist/test/document/operation-id.test.js +4 -7
  110. package/dist/test/document/operation-id.test.js.map +1 -1
  111. package/dist/test/document/prune.test.js +23 -36
  112. package/dist/test/document/prune.test.js.map +1 -1
  113. package/dist/test/document/reducer.test.js +101 -81
  114. package/dist/test/document/reducer.test.js.map +1 -1
  115. package/dist/test/document/skip-operations.test.js +67 -87
  116. package/dist/test/document/skip-operations.test.js.map +1 -1
  117. package/dist/test/document/undo-redo.test.js +60 -36
  118. package/dist/test/document/undo-redo.test.js.map +1 -1
  119. package/dist/test/document/utils.test.js +51 -41
  120. package/dist/test/document/utils.test.js.map +1 -1
  121. package/dist/test/document-helpers/addUndo.test.js +2 -2
  122. package/dist/test/document-helpers/addUndo.test.js.map +1 -1
  123. package/dist/test/document-helpers/attachBranch.test.js +21 -21
  124. package/dist/test/document-helpers/attachBranch.test.js.map +1 -1
  125. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.js +1 -1
  126. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.js.map +1 -1
  127. package/dist/test/document-helpers/conflictResolution.test.js +11 -11
  128. package/dist/test/document-helpers/conflictResolution.test.js.map +1 -1
  129. package/dist/test/document-helpers/filterDuplicatedOperations.test.js +1 -1
  130. package/dist/test/document-helpers/filterDuplicatedOperations.test.js.map +1 -1
  131. package/dist/test/document-helpers/garbageCollect.test.js +1 -1
  132. package/dist/test/document-helpers/garbageCollect.test.js.map +1 -1
  133. package/dist/test/document-helpers/groupOperationsByScope.test.js +71 -71
  134. package/dist/test/document-helpers/groupOperationsByScope.test.js.map +1 -1
  135. package/dist/test/document-helpers/merge.test.js +126 -126
  136. package/dist/test/document-helpers/merge.test.js.map +1 -1
  137. package/dist/test/document-helpers/nextSkipNumber.test.js +1 -1
  138. package/dist/test/document-helpers/nextSkipNumber.test.js.map +1 -1
  139. package/dist/test/document-helpers/prepareOperations.test.js +1 -1
  140. package/dist/test/document-helpers/prepareOperations.test.js.map +1 -1
  141. package/dist/test/document-helpers/removeExistingOperations.test.js +38 -26
  142. package/dist/test/document-helpers/removeExistingOperations.test.js.map +1 -1
  143. package/dist/test/document-helpers/reshuffleByTimestamp.test.js +16 -16
  144. package/dist/test/document-helpers/reshuffleByTimestamp.test.js.map +1 -1
  145. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.js +22 -22
  146. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.js.map +1 -1
  147. package/dist/test/document-helpers/skipHeaderOperations.test.js +34 -41
  148. package/dist/test/document-helpers/skipHeaderOperations.test.js.map +1 -1
  149. package/dist/test/document-helpers/sortOperations.test.js +1 -1
  150. package/dist/test/document-helpers/sortOperations.test.js.map +1 -1
  151. package/dist/test/document-helpers/split.test.js +3 -3
  152. package/dist/test/document-helpers/split.test.js.map +1 -1
  153. package/dist/test/document-helpers/utils.d.ts +2 -1
  154. package/dist/test/document-helpers/utils.d.ts.map +1 -1
  155. package/dist/test/document-helpers/utils.js +13 -8
  156. package/dist/test/document-helpers/utils.js.map +1 -1
  157. package/dist/test/document-model/replay.test.js +21 -25
  158. package/dist/test/document-model/replay.test.js.map +1 -1
  159. package/dist/test/document-model/skip-operations.test.js +93 -96
  160. package/dist/test/document-model/skip-operations.test.js.map +1 -1
  161. package/dist/test/document-model/validation.test.js +10 -13
  162. package/dist/test/document-model/validation.test.js.map +1 -1
  163. package/dist/test/document-model/zip.test.js +20 -21
  164. package/dist/test/document-model/zip.test.js.map +1 -1
  165. package/dist/test/helpers.d.ts +42 -8
  166. package/dist/test/helpers.d.ts.map +1 -1
  167. package/dist/test/helpers.js +55 -8
  168. package/dist/test/helpers.js.map +1 -1
  169. package/dist/test/index.d.ts +4 -0
  170. package/dist/test/index.d.ts.map +1 -0
  171. package/dist/test/index.js +3 -0
  172. package/dist/test/index.js.map +1 -0
  173. package/dist/test/types.d.ts +6 -0
  174. package/dist/test/types.d.ts.map +1 -0
  175. package/dist/{src/document/schema → test}/types.js.map +1 -1
  176. package/dist/tsconfig.tsbuildinfo +1 -1
  177. package/dist/vitest.config.d.ts +1 -1
  178. package/dist/vitest.config.d.ts.map +1 -1
  179. package/dist/vitest.config.js +2 -8
  180. package/dist/vitest.config.js.map +1 -1
  181. package/package.json +26 -23
  182. package/dist/index.d.ts +0 -20
  183. package/dist/index.d.ts.map +0 -1
  184. package/dist/index.js +0 -14
  185. package/dist/index.js.map +0 -1
  186. package/dist/src/document/actions/creators.d.ts +0 -51
  187. package/dist/src/document/actions/creators.d.ts.map +0 -1
  188. package/dist/src/document/actions/creators.js +0 -57
  189. package/dist/src/document/actions/creators.js.map +0 -1
  190. package/dist/src/document/actions/operations.d.ts +0 -36
  191. package/dist/src/document/actions/operations.d.ts.map +0 -1
  192. package/dist/src/document/actions/operations.js.map +0 -1
  193. package/dist/src/document/actions/types.d.ts +0 -34
  194. package/dist/src/document/actions/types.d.ts.map +0 -1
  195. package/dist/src/document/actions/types.js +0 -7
  196. package/dist/src/document/actions/types.js.map +0 -1
  197. package/dist/src/document/object.d.ts +0 -124
  198. package/dist/src/document/object.d.ts.map +0 -1
  199. package/dist/src/document/object.js +0 -183
  200. package/dist/src/document/object.js.map +0 -1
  201. package/dist/src/document/ph-factories.d.ts +0 -6
  202. package/dist/src/document/ph-factories.d.ts.map +0 -1
  203. package/dist/src/document/ph-factories.js +0 -62
  204. package/dist/src/document/ph-factories.js.map +0 -1
  205. package/dist/src/document/ph-types.d.ts +0 -68
  206. package/dist/src/document/ph-types.d.ts.map +0 -1
  207. package/dist/src/document/ph-types.js +0 -2
  208. package/dist/src/document/ph-types.js.map +0 -1
  209. package/dist/src/document/reducer.d.ts +0 -49
  210. package/dist/src/document/reducer.d.ts.map +0 -1
  211. package/dist/src/document/reducer.js.map +0 -1
  212. package/dist/src/document/schema/types.d.ts +0 -176
  213. package/dist/src/document/schema/types.d.ts.map +0 -1
  214. package/dist/src/document/schema/types.js +0 -2
  215. package/dist/src/document/schema/zod.d.ts.map +0 -1
  216. package/dist/src/document/schema/zod.js.map +0 -1
  217. package/dist/src/document/signal.d.ts +0 -36
  218. package/dist/src/document/signal.d.ts.map +0 -1
  219. package/dist/src/document/signal.js +0 -2
  220. package/dist/src/document/signal.js.map +0 -1
  221. package/dist/src/document/types.d.ts +0 -339
  222. package/dist/src/document/types.d.ts.map +0 -1
  223. package/dist/src/document/types.js +0 -2
  224. package/dist/src/document/utils/base.d.ts +0 -88
  225. package/dist/src/document/utils/base.d.ts.map +0 -1
  226. package/dist/src/document/utils/base.js +0 -335
  227. package/dist/src/document/utils/base.js.map +0 -1
  228. package/dist/src/document/utils/browser.d.ts +0 -18
  229. package/dist/src/document/utils/browser.d.ts.map +0 -1
  230. package/dist/src/document/utils/browser.js +0 -54
  231. package/dist/src/document/utils/browser.js.map +0 -1
  232. package/dist/src/document/utils/crypto.d.ts +0 -11
  233. package/dist/src/document/utils/crypto.d.ts.map +0 -1
  234. package/dist/src/document/utils/crypto.js +0 -71
  235. package/dist/src/document/utils/crypto.js.map +0 -1
  236. package/dist/src/document/utils/document-helpers.d.ts.map +0 -1
  237. package/dist/src/document/utils/document-helpers.js.map +0 -1
  238. package/dist/src/document/utils/errors.d.ts +0 -10
  239. package/dist/src/document/utils/errors.d.ts.map +0 -1
  240. package/dist/src/document/utils/errors.js +0 -19
  241. package/dist/src/document/utils/errors.js.map +0 -1
  242. package/dist/src/document/utils/file.d.ts.map +0 -1
  243. package/dist/src/document/utils/file.js +0 -152
  244. package/dist/src/document/utils/file.js.map +0 -1
  245. package/dist/src/document/utils/header.d.ts.map +0 -1
  246. package/dist/src/document/utils/header.js.map +0 -1
  247. package/dist/src/document/utils/node.d.ts +0 -18
  248. package/dist/src/document/utils/node.d.ts.map +0 -1
  249. package/dist/src/document/utils/node.js +0 -62
  250. package/dist/src/document/utils/node.js.map +0 -1
  251. package/dist/src/document/utils/validation.d.ts +0 -3
  252. package/dist/src/document/utils/validation.d.ts.map +0 -1
  253. package/dist/src/document/utils/validation.js.map +0 -1
  254. package/dist/src/document-model/custom/reducers/header.d.ts +0 -3
  255. package/dist/src/document-model/custom/reducers/header.d.ts.map +0 -1
  256. package/dist/src/document-model/custom/reducers/header.js +0 -23
  257. package/dist/src/document-model/custom/reducers/header.js.map +0 -1
  258. package/dist/src/document-model/custom/reducers/module.d.ts +0 -3
  259. package/dist/src/document-model/custom/reducers/module.d.ts.map +0 -1
  260. package/dist/src/document-model/custom/reducers/module.js +0 -41
  261. package/dist/src/document-model/custom/reducers/module.js.map +0 -1
  262. package/dist/src/document-model/custom/reducers/operation-error.d.ts +0 -3
  263. package/dist/src/document-model/custom/reducers/operation-error.d.ts.map +0 -1
  264. package/dist/src/document-model/custom/reducers/operation-error.js +0 -94
  265. package/dist/src/document-model/custom/reducers/operation-error.js.map +0 -1
  266. package/dist/src/document-model/custom/reducers/operation-example.d.ts +0 -3
  267. package/dist/src/document-model/custom/reducers/operation-example.d.ts.map +0 -1
  268. package/dist/src/document-model/custom/reducers/operation-example.js +0 -53
  269. package/dist/src/document-model/custom/reducers/operation-example.js.map +0 -1
  270. package/dist/src/document-model/custom/reducers/operation.d.ts +0 -3
  271. package/dist/src/document-model/custom/reducers/operation.d.ts.map +0 -1
  272. package/dist/src/document-model/custom/reducers/operation.js +0 -125
  273. package/dist/src/document-model/custom/reducers/operation.js.map +0 -1
  274. package/dist/src/document-model/custom/reducers/state.d.ts +0 -3
  275. package/dist/src/document-model/custom/reducers/state.d.ts.map +0 -1
  276. package/dist/src/document-model/custom/reducers/state.js +0 -71
  277. package/dist/src/document-model/custom/reducers/state.js.map +0 -1
  278. package/dist/src/document-model/custom/reducers/versioning.d.ts +0 -8
  279. package/dist/src/document-model/custom/reducers/versioning.d.ts.map +0 -1
  280. package/dist/src/document-model/custom/reducers/versioning.js +0 -23
  281. package/dist/src/document-model/custom/reducers/versioning.js.map +0 -1
  282. package/dist/src/document-model/custom/utils.d.ts +0 -8
  283. package/dist/src/document-model/custom/utils.d.ts.map +0 -1
  284. package/dist/src/document-model/custom/utils.js.map +0 -1
  285. package/dist/src/document-model/gen/actions.d.ts +0 -16
  286. package/dist/src/document-model/gen/actions.d.ts.map +0 -1
  287. package/dist/src/document-model/gen/actions.js +0 -8
  288. package/dist/src/document-model/gen/actions.js.map +0 -1
  289. package/dist/src/document-model/gen/constants.d.ts +0 -7
  290. package/dist/src/document-model/gen/constants.d.ts.map +0 -1
  291. package/dist/src/document-model/gen/constants.js +0 -34
  292. package/dist/src/document-model/gen/constants.js.map +0 -1
  293. package/dist/src/document-model/gen/creators.d.ts +0 -8
  294. package/dist/src/document-model/gen/creators.d.ts.map +0 -1
  295. package/dist/src/document-model/gen/creators.js +0 -8
  296. package/dist/src/document-model/gen/creators.js.map +0 -1
  297. package/dist/src/document-model/gen/document-model.d.ts +0 -3
  298. package/dist/src/document-model/gen/document-model.d.ts.map +0 -1
  299. package/dist/src/document-model/gen/document-model.js.map +0 -1
  300. package/dist/src/document-model/gen/header/actions.d.ts +0 -28
  301. package/dist/src/document-model/gen/header/actions.d.ts.map +0 -1
  302. package/dist/src/document-model/gen/header/actions.js +0 -2
  303. package/dist/src/document-model/gen/header/actions.js.map +0 -1
  304. package/dist/src/document-model/gen/header/creators.d.ts +0 -9
  305. package/dist/src/document-model/gen/header/creators.d.ts.map +0 -1
  306. package/dist/src/document-model/gen/header/creators.js +0 -9
  307. package/dist/src/document-model/gen/header/creators.js.map +0 -1
  308. package/dist/src/document-model/gen/header/object.d.ts +0 -13
  309. package/dist/src/document-model/gen/header/object.d.ts.map +0 -1
  310. package/dist/src/document-model/gen/header/object.js +0 -23
  311. package/dist/src/document-model/gen/header/object.js.map +0 -1
  312. package/dist/src/document-model/gen/header/operations.d.ts +0 -11
  313. package/dist/src/document-model/gen/header/operations.d.ts.map +0 -1
  314. package/dist/src/document-model/gen/header/operations.js +0 -2
  315. package/dist/src/document-model/gen/header/operations.js.map +0 -1
  316. package/dist/src/document-model/gen/module/actions.d.ts +0 -24
  317. package/dist/src/document-model/gen/module/actions.d.ts.map +0 -1
  318. package/dist/src/document-model/gen/module/actions.js +0 -2
  319. package/dist/src/document-model/gen/module/actions.js.map +0 -1
  320. package/dist/src/document-model/gen/module/creators.d.ts +0 -8
  321. package/dist/src/document-model/gen/module/creators.d.ts.map +0 -1
  322. package/dist/src/document-model/gen/module/creators.js +0 -8
  323. package/dist/src/document-model/gen/module/creators.js.map +0 -1
  324. package/dist/src/document-model/gen/module/object.d.ts +0 -12
  325. package/dist/src/document-model/gen/module/object.d.ts.map +0 -1
  326. package/dist/src/document-model/gen/module/object.js +0 -20
  327. package/dist/src/document-model/gen/module/object.js.map +0 -1
  328. package/dist/src/document-model/gen/module/operations.d.ts +0 -10
  329. package/dist/src/document-model/gen/module/operations.d.ts.map +0 -1
  330. package/dist/src/document-model/gen/module/operations.js +0 -2
  331. package/dist/src/document-model/gen/module/operations.js.map +0 -1
  332. package/dist/src/document-model/gen/object.d.ts +0 -29
  333. package/dist/src/document-model/gen/object.d.ts.map +0 -1
  334. package/dist/src/document-model/gen/object.js +0 -46
  335. package/dist/src/document-model/gen/object.js.map +0 -1
  336. package/dist/src/document-model/gen/operation/actions.d.ts +0 -44
  337. package/dist/src/document-model/gen/operation/actions.d.ts.map +0 -1
  338. package/dist/src/document-model/gen/operation/actions.js +0 -2
  339. package/dist/src/document-model/gen/operation/actions.js.map +0 -1
  340. package/dist/src/document-model/gen/operation/creators.d.ts +0 -13
  341. package/dist/src/document-model/gen/operation/creators.d.ts.map +0 -1
  342. package/dist/src/document-model/gen/operation/creators.js +0 -13
  343. package/dist/src/document-model/gen/operation/creators.js.map +0 -1
  344. package/dist/src/document-model/gen/operation/object.d.ts +0 -18
  345. package/dist/src/document-model/gen/operation/object.d.ts.map +0 -1
  346. package/dist/src/document-model/gen/operation/object.js +0 -35
  347. package/dist/src/document-model/gen/operation/object.js.map +0 -1
  348. package/dist/src/document-model/gen/operation/operations.d.ts +0 -15
  349. package/dist/src/document-model/gen/operation/operations.d.ts.map +0 -1
  350. package/dist/src/document-model/gen/operation/operations.js +0 -2
  351. package/dist/src/document-model/gen/operation/operations.js.map +0 -1
  352. package/dist/src/document-model/gen/operation-error/actions.d.ts +0 -32
  353. package/dist/src/document-model/gen/operation-error/actions.d.ts.map +0 -1
  354. package/dist/src/document-model/gen/operation-error/actions.js +0 -2
  355. package/dist/src/document-model/gen/operation-error/actions.js.map +0 -1
  356. package/dist/src/document-model/gen/operation-error/creators.d.ts +0 -10
  357. package/dist/src/document-model/gen/operation-error/creators.d.ts.map +0 -1
  358. package/dist/src/document-model/gen/operation-error/creators.js +0 -10
  359. package/dist/src/document-model/gen/operation-error/creators.js.map +0 -1
  360. package/dist/src/document-model/gen/operation-error/object.d.ts +0 -15
  361. package/dist/src/document-model/gen/operation-error/object.d.ts.map +0 -1
  362. package/dist/src/document-model/gen/operation-error/object.js +0 -26
  363. package/dist/src/document-model/gen/operation-error/object.js.map +0 -1
  364. package/dist/src/document-model/gen/operation-error/operations.d.ts +0 -12
  365. package/dist/src/document-model/gen/operation-error/operations.d.ts.map +0 -1
  366. package/dist/src/document-model/gen/operation-error/operations.js +0 -2
  367. package/dist/src/document-model/gen/operation-error/operations.js.map +0 -1
  368. package/dist/src/document-model/gen/operation-example/actions.d.ts +0 -20
  369. package/dist/src/document-model/gen/operation-example/actions.d.ts.map +0 -1
  370. package/dist/src/document-model/gen/operation-example/actions.js +0 -2
  371. package/dist/src/document-model/gen/operation-example/actions.js.map +0 -1
  372. package/dist/src/document-model/gen/operation-example/creators.d.ts +0 -7
  373. package/dist/src/document-model/gen/operation-example/creators.d.ts.map +0 -1
  374. package/dist/src/document-model/gen/operation-example/creators.js +0 -7
  375. package/dist/src/document-model/gen/operation-example/creators.js.map +0 -1
  376. package/dist/src/document-model/gen/operation-example/object.d.ts +0 -12
  377. package/dist/src/document-model/gen/operation-example/object.d.ts.map +0 -1
  378. package/dist/src/document-model/gen/operation-example/object.js +0 -17
  379. package/dist/src/document-model/gen/operation-example/object.js.map +0 -1
  380. package/dist/src/document-model/gen/operation-example/operations.d.ts +0 -9
  381. package/dist/src/document-model/gen/operation-example/operations.d.ts.map +0 -1
  382. package/dist/src/document-model/gen/operation-example/operations.js +0 -2
  383. package/dist/src/document-model/gen/operation-example/operations.js.map +0 -1
  384. package/dist/src/document-model/gen/reducer.d.ts +0 -5
  385. package/dist/src/document-model/gen/reducer.d.ts.map +0 -1
  386. package/dist/src/document-model/gen/reducer.js +0 -193
  387. package/dist/src/document-model/gen/reducer.js.map +0 -1
  388. package/dist/src/document-model/gen/schema/index.d.ts +0 -3
  389. package/dist/src/document-model/gen/schema/index.d.ts.map +0 -1
  390. package/dist/src/document-model/gen/schema/index.js +0 -3
  391. package/dist/src/document-model/gen/schema/index.js.map +0 -1
  392. package/dist/src/document-model/gen/schema/types.d.ts +0 -457
  393. package/dist/src/document-model/gen/schema/types.d.ts.map +0 -1
  394. package/dist/src/document-model/gen/schema/types.js.map +0 -1
  395. package/dist/src/document-model/gen/schema/zod.d.ts +0 -453
  396. package/dist/src/document-model/gen/schema/zod.d.ts.map +0 -1
  397. package/dist/src/document-model/gen/schema/zod.js.map +0 -1
  398. package/dist/src/document-model/gen/state/actions.d.ts +0 -28
  399. package/dist/src/document-model/gen/state/actions.d.ts.map +0 -1
  400. package/dist/src/document-model/gen/state/actions.js +0 -2
  401. package/dist/src/document-model/gen/state/actions.js.map +0 -1
  402. package/dist/src/document-model/gen/state/creators.d.ts +0 -9
  403. package/dist/src/document-model/gen/state/creators.d.ts.map +0 -1
  404. package/dist/src/document-model/gen/state/creators.js +0 -9
  405. package/dist/src/document-model/gen/state/creators.js.map +0 -1
  406. package/dist/src/document-model/gen/state/object.d.ts +0 -13
  407. package/dist/src/document-model/gen/state/object.d.ts.map +0 -1
  408. package/dist/src/document-model/gen/state/object.js +0 -23
  409. package/dist/src/document-model/gen/state/object.js.map +0 -1
  410. package/dist/src/document-model/gen/state/operations.d.ts +0 -11
  411. package/dist/src/document-model/gen/state/operations.d.ts.map +0 -1
  412. package/dist/src/document-model/gen/state/operations.js +0 -2
  413. package/dist/src/document-model/gen/state/operations.js.map +0 -1
  414. package/dist/src/document-model/gen/types.d.ts +0 -7
  415. package/dist/src/document-model/gen/types.d.ts.map +0 -1
  416. package/dist/src/document-model/gen/types.js.map +0 -1
  417. package/dist/src/document-model/gen/utils.d.ts +0 -11
  418. package/dist/src/document-model/gen/utils.d.ts.map +0 -1
  419. package/dist/src/document-model/gen/utils.js +0 -33
  420. package/dist/src/document-model/gen/utils.js.map +0 -1
  421. package/dist/src/document-model/gen/versioning/actions.d.ts +0 -24
  422. package/dist/src/document-model/gen/versioning/actions.d.ts.map +0 -1
  423. package/dist/src/document-model/gen/versioning/actions.js +0 -2
  424. package/dist/src/document-model/gen/versioning/actions.js.map +0 -1
  425. package/dist/src/document-model/gen/versioning/creators.d.ts +0 -8
  426. package/dist/src/document-model/gen/versioning/creators.d.ts.map +0 -1
  427. package/dist/src/document-model/gen/versioning/creators.js +0 -8
  428. package/dist/src/document-model/gen/versioning/creators.js.map +0 -1
  429. package/dist/src/document-model/gen/versioning/object.d.ts +0 -13
  430. package/dist/src/document-model/gen/versioning/object.d.ts.map +0 -1
  431. package/dist/src/document-model/gen/versioning/object.js +0 -20
  432. package/dist/src/document-model/gen/versioning/object.js.map +0 -1
  433. package/dist/src/document-model/gen/versioning/operations.d.ts +0 -10
  434. package/dist/src/document-model/gen/versioning/operations.d.ts.map +0 -1
  435. package/dist/src/document-model/gen/versioning/operations.js +0 -2
  436. package/dist/src/document-model/gen/versioning/operations.js.map +0 -1
  437. package/dist/test/document/object.test.d.ts +0 -2
  438. package/dist/test/document/object.test.d.ts.map +0 -1
  439. package/dist/test/document/object.test.js +0 -13
  440. package/dist/test/document/object.test.js.map +0 -1
  441. package/dist/test/document-model/object.test.d.ts +0 -2
  442. package/dist/test/document-model/object.test.d.ts.map +0 -1
  443. package/dist/test/document-model/object.test.js +0 -243
  444. package/dist/test/document-model/object.test.js.map +0 -1
  445. /package/dist/src/{document-model/gen/schema → core}/types.js +0 -0
  446. /package/dist/{src/document-model/gen → test}/types.js +0 -0
@@ -1,42 +1,14 @@
1
1
  import { castDraft, create, unsafe } from "mutative";
2
- import { loadStateOperation, pruneOperation, redoOperation, setNameOperation, undoOperation, } from "./actions/operations.js";
3
- import { LOAD_STATE, PRUNE, REDO, SET_NAME, UNDO } from "./actions/types.js";
4
- import { operationFromAction, operationFromOperation } from "./ph-factories.js";
5
- import { DocumentActionSchema } from "./schema/zod.js";
6
- import { getDocumentLastModified, hashDocumentStateForScope, isDocumentAction, isUndo, isUndoRedo, parseResultingState, replayOperations, } from "./utils/base.js";
7
- import { diffOperations, garbageCollect, garbageCollectDocumentOperations, skipHeaderOperations, sortOperations, } from "./utils/document-helpers.js";
8
- /**
9
- * Gets the next revision number based on the provided scope.
10
- *
11
- * @param state The current state of the document.
12
- * @param scope The scope of the operation.
13
- * @returns The next revision number.
14
- */
15
- function getNextRevision(document, scope) {
16
- const latestOperationIndex = document.operations[scope].at(-1)?.index ?? -1;
17
- return (latestOperationIndex ?? -1) + 1;
18
- }
19
- /**
20
- * Updates the document header with the latest revision number and
21
- * date of last modification.
22
- *
23
- * @param state The current state of the document.
24
- * @param operation The action being applied to the document.
25
- * @returns The updated document state.
26
- */
27
- export function updateHeaderRevision(document, scope) {
28
- const header = {
29
- ...document.header,
30
- revision: {
31
- ...document.header.revision,
32
- [scope]: getNextRevision(document, scope),
33
- },
34
- lastModifiedAtUtcIso: getDocumentLastModified(document),
35
- };
36
- return {
37
- ...document,
38
- header,
39
- };
2
+ import { actionFromAction, loadState, operationFromAction, operationFromOperation, } from "./actions.js";
3
+ import { diffOperations, garbageCollect, garbageCollectDocumentOperations, hashDocumentStateForScope, isDocumentAction, isUndo, isUndoRedo, parseResultingState, replayDocument, skipHeaderOperations, sortOperations, updateHeaderRevision, } from "./documents.js";
4
+ import { loadStateOperation, redoOperation, setNameOperation, undoOperation, } 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, dispatch, header, 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, dispatch, header, skipHeaderOperations, options);
40
12
  }
41
13
  /**
42
14
  * Updates the operations history of the document based on the provided action.
@@ -51,11 +23,14 @@ export function updateHeaderRevision(document, scope) {
51
23
  function updateOperationsForAction(document, action, reuseLastOperationIndex = false, skip = 0) {
52
24
  // UNDO, REDO and PRUNE are meta operations
53
25
  // that alter the operations history themselves
54
- if ([UNDO, REDO, PRUNE].includes(action.type)) {
26
+ if (["UNDO", "REDO", "PRUNE"].includes(action.type)) {
55
27
  return document;
56
28
  }
57
29
  const scope = action.scope;
58
- const operations = document.operations[scope].slice();
30
+ let operations = [];
31
+ if (document.operations[scope]) {
32
+ operations = document.operations[scope].slice();
33
+ }
59
34
  const latestOperation = operations.sort((a, b) => a.index - b.index).at(-1);
60
35
  const lastOperationIndex = latestOperation?.index ?? -1;
61
36
  const index = reuseLastOperationIndex
@@ -71,13 +46,11 @@ function updateOperationsForAction(document, action, reuseLastOperationIndex = f
71
46
  };
72
47
  }
73
48
  function updateOperationsForOperation(document, operation, reuseLastOperationIndex = false, skip = 0) {
74
- // UNDO, REDO and PRUNE are meta operations
75
- // that alter the operations history themselves
76
- if ([UNDO, REDO, PRUNE].includes(operation.type)) {
77
- return document;
78
- }
79
- const scope = operation.scope;
80
- const operations = document.operations[scope].slice();
49
+ const scope = operation.action.scope;
50
+ const scopeOperations = document.operations[scope];
51
+ const operations = scopeOperations
52
+ ? scopeOperations.slice()
53
+ : [];
81
54
  const latestOperation = operations.sort((a, b) => a.index - b.index).at(-1);
82
55
  const lastOperationIndex = latestOperation?.index ?? -1;
83
56
  const nextIndex = reuseLastOperationIndex
@@ -104,13 +77,11 @@ function updateOperationsForOperation(document, operation, reuseLastOperationInd
104
77
  * @param reuseLastOperationIndex Whether to reuse the last operation index (used when a an UNDO operation is performed after an existing one).
105
78
  * @returns The updated document state.
106
79
  */
107
- export function updateDocument(document, action, skip = 0, reuseLastOperationIndex = false) {
108
- // duck type -- this determines if it's an operation or an action
109
- // TEMPORARY
80
+ export function updateDocument(document, action, reuseLastOperationIndex = false, skip = 0, operation) {
110
81
  let newDocument;
111
- if ("index" in action) {
82
+ if (operation) {
112
83
  // operation
113
- newDocument = updateOperationsForOperation(document, action, reuseLastOperationIndex, skip);
84
+ newDocument = updateOperationsForOperation(document, operation, reuseLastOperationIndex, skip);
114
85
  }
115
86
  else {
116
87
  // action
@@ -131,12 +102,12 @@ function _baseReducer(document, action, wrappedReducer) {
131
102
  // throws if action is not valid base action
132
103
  const parsedAction = DocumentActionSchema().parse(action);
133
104
  switch (parsedAction.type) {
134
- case SET_NAME:
105
+ case "SET_NAME":
135
106
  return setNameOperation(document, parsedAction.input);
136
- case PRUNE:
107
+ case "PRUNE":
137
108
  return pruneOperation(document, parsedAction.input, wrappedReducer);
138
- case LOAD_STATE:
139
- return loadStateOperation(document, parsedAction.input.state);
109
+ case "LOAD_STATE":
110
+ return loadStateOperation(document, parsedAction.input);
140
111
  default:
141
112
  return document;
142
113
  }
@@ -151,9 +122,9 @@ function _baseReducer(document, action, wrappedReducer) {
151
122
  */
152
123
  export function processUndoRedo(document, action, skip) {
153
124
  switch (action.type) {
154
- case UNDO:
125
+ case "UNDO":
155
126
  return undoOperation(document, action, skip);
156
- case REDO:
127
+ case "REDO":
157
128
  return redoOperation(document, action, skip);
158
129
  default:
159
130
  return { document, action, skip, reuseLastOperationIndex: false };
@@ -161,15 +132,20 @@ export function processUndoRedo(document, action, skip) {
161
132
  }
162
133
  function processSkipOperation(document, action, customReducer, skipValue, reuseOperationResultingState = false, resultingStateParser = parseResultingState) {
163
134
  const scope = action.scope;
164
- const latestOperation = document.operations[scope].at(-1);
135
+ const scopeOperations = document.operations[scope];
136
+ if (!scopeOperations) {
137
+ return document;
138
+ }
139
+ const latestOperation = scopeOperations.at(-1);
165
140
  if (!latestOperation)
166
141
  return document;
167
142
  const documentOperations = garbageCollectDocumentOperations({
168
143
  ...document.operations,
169
- [scope]: skipHeaderOperations(document.operations[scope], latestOperation),
144
+ [scope]: skipHeaderOperations(scopeOperations, latestOperation),
170
145
  });
171
146
  let scopeState = undefined;
172
- const lastRemainingOperation = documentOperations[scope].at(-1);
147
+ const documentScopeOps = documentOperations[scope];
148
+ const lastRemainingOperation = documentScopeOps?.at(-1);
173
149
  // if the last operation has the resulting state and
174
150
  // reuseOperationResultingState is true then reuses it
175
151
  // instead of replaying the operations from the beginning
@@ -178,11 +154,9 @@ function processSkipOperation(document, action, customReducer, skipValue, reuseO
178
154
  }
179
155
  else {
180
156
  const { state } = replayOperations(document.initialState, documentOperations, customReducer, undefined, undefined, undefined, undefined, {
181
- reuseHash: true,
182
157
  reuseOperationResultingState,
183
158
  operationResultingStateParser: resultingStateParser,
184
159
  });
185
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
186
160
  scopeState = state[scope];
187
161
  }
188
162
  return {
@@ -197,20 +171,27 @@ function processSkipOperation(document, action, customReducer, skipValue, reuseO
197
171
  };
198
172
  }
199
173
  function processUndoOperation(document, scope, customReducer, reuseOperationResultingState = false, resultingStateParser = parseResultingState) {
200
- const operations = [...document.operations[scope]];
174
+ const scopeOperations = document.operations[scope];
175
+ if (!scopeOperations) {
176
+ return document;
177
+ }
178
+ const operations = [...scopeOperations];
201
179
  const sortedOperations = sortOperations(operations);
202
180
  sortedOperations.pop();
203
181
  const documentOperations = garbageCollectDocumentOperations({
204
182
  ...document.operations,
205
183
  });
206
- const clearedOperations = [...documentOperations[scope]];
184
+ const documentScopeOps = documentOperations[scope];
185
+ if (!documentScopeOps) {
186
+ return document;
187
+ }
188
+ const clearedOperations = [...documentScopeOps];
207
189
  const diff = diffOperations(garbageCollect(sortedOperations), clearedOperations);
208
190
  const doc = replayOperations(document.initialState, documentOperations, customReducer, undefined, undefined, undefined, undefined, {
209
- reuseHash: true,
210
191
  reuseOperationResultingState,
211
192
  operationResultingStateParser: resultingStateParser,
212
193
  });
213
- const clipboard = sortOperations([...document.clipboard, ...diff].filter((op) => op.type !== "NOOP")).reverse();
194
+ const clipboard = sortOperations([...document.clipboard, ...diff].filter((op) => op.action.type !== "NOOP")).reverse();
214
195
  return { ...doc, clipboard };
215
196
  }
216
197
  /**
@@ -226,19 +207,14 @@ function processUndoOperation(document, scope, customReducer, reuseOperationResu
226
207
  * @returns The new state of the document.
227
208
  */
228
209
  export function baseReducer(document, action, customReducer, dispatch, options = {}) {
229
- const { skip, ignoreSkipOperations = false, reuseHash = false, reuseOperationResultingState = false, operationResultingStateParser, } = options;
230
- let _action = { ...action };
231
- let skipValue = skip || 0;
210
+ const { skip, ignoreSkipOperations = false, reuseOperationResultingState = false, operationResultingStateParser, pruneOnSkip = true, } = options;
211
+ let _action = actionFromAction(action);
212
+ let skipValue = skip ?? options.replayOptions?.operation.skip ?? 0;
232
213
  let newDocument = {
233
214
  ...document,
234
215
  };
235
216
  let reuseLastOperationIndex = false;
236
- const shouldProcessSkipOperation = !ignoreSkipOperations &&
237
- (skipValue > 0 ||
238
- ("index" in _action &&
239
- "skip" in _action &&
240
- typeof _action.skip === "number" &&
241
- _action.skip > 0));
217
+ const shouldProcessSkipOperation = !ignoreSkipOperations && skipValue > 0;
242
218
  if (isUndoRedo(_action)) {
243
219
  const { skip: calculatedSkip, action: transformedAction, document: processedDocument, reuseLastOperationIndex: reuseIndex, } = processUndoRedo(document, _action, skipValue);
244
220
  _action = transformedAction;
@@ -259,14 +235,24 @@ export function baseReducer(document, action, customReducer, dispatch, options =
259
235
  }
260
236
  // updates the document revision number, last modified date
261
237
  // and operation history
262
- newDocument = updateDocument(newDocument, _action, skipValue, reuseLastOperationIndex);
238
+ newDocument = updateDocument(newDocument, _action, reuseLastOperationIndex, skipValue, options.replayOptions?.operation);
263
239
  const isUndoAction = isUndo(action);
264
240
  if (isUndoAction) {
265
241
  const result = processUndoOperation(newDocument, action.scope, customReducer);
266
242
  return result;
267
243
  }
268
244
  if (shouldProcessSkipOperation) {
269
- newDocument = processSkipOperation(newDocument, _action, customReducer, skipValue, reuseOperationResultingState, operationResultingStateParser);
245
+ const processed = processSkipOperation(newDocument, _action, customReducer, skipValue, reuseOperationResultingState, operationResultingStateParser);
246
+ // Preserve operations when pruneOnSkip is false
247
+ if (!pruneOnSkip) {
248
+ newDocument = {
249
+ ...processed,
250
+ operations: newDocument.operations,
251
+ };
252
+ }
253
+ else {
254
+ newDocument = processed;
255
+ }
270
256
  }
271
257
  // wraps the custom reducer with Mutative to avoid
272
258
  // mutation bugs and allow writing reducers with
@@ -296,19 +282,31 @@ export function baseReducer(document, action, customReducer, dispatch, options =
296
282
  catch (error) {
297
283
  // if the reducer throws an error then we should keep the previous state (before replayOperations)
298
284
  // and remove skip number from action/operation
299
- const lastOperationIndex = newDocument.operations[_action.scope].length - 1;
300
- draft.operations[_action.scope][lastOperationIndex].error = error.message;
301
- draft.operations[_action.scope][lastOperationIndex].skip = 0;
285
+ const actionScopeOps = newDocument.operations[_action.scope];
286
+ if (!actionScopeOps) {
287
+ throw new Error(`No operations found for scope: ${_action.scope}`);
288
+ }
289
+ const lastOperationIndex = actionScopeOps.length - 1;
290
+ const draftScopeOps = draft.operations[_action.scope];
291
+ if (!draftScopeOps) {
292
+ throw new Error(`No operations found in draft for scope: ${_action.scope}`);
293
+ }
294
+ draftScopeOps[lastOperationIndex].error = error.message;
295
+ draftScopeOps[lastOperationIndex].skip = 0;
302
296
  if (shouldProcessSkipOperation) {
303
297
  draft.state = castDraft({
304
298
  ...document.state,
305
299
  });
300
+ const documentScopeOps = document.operations[_action.scope];
301
+ if (!documentScopeOps) {
302
+ throw new Error(`No operations found for scope: ${_action.scope}`);
303
+ }
306
304
  draft.operations = castDraft({
307
305
  ...document.operations,
308
306
  [_action.scope]: [
309
- ...document.operations[_action.scope],
307
+ ...documentScopeOps,
310
308
  {
311
- ...draft.operations[_action.scope][lastOperationIndex],
309
+ ...draftScopeOps[lastOperationIndex],
312
310
  },
313
311
  ],
314
312
  });
@@ -317,37 +315,101 @@ export function baseReducer(document, action, customReducer, dispatch, options =
317
315
  });
318
316
  // updates the document history
319
317
  // meta operations are not added to the operations history
320
- if ([UNDO, REDO, PRUNE].includes(_action.type)) {
318
+ if (["UNDO", "REDO", "PRUNE"].includes(_action.type)) {
321
319
  return newDocument;
322
320
  }
323
321
  // if reuseHash is true, checks if the action has
324
322
  // an hash and uses it instead of generating it
325
323
  const scope = _action.scope || "global";
326
- const hash = reuseHash && Object.prototype.hasOwnProperty.call(_action, "hash")
327
- ? _action.hash
328
- : hashDocumentStateForScope(newDocument, scope);
324
+ let hash = hashDocumentStateForScope(newDocument, scope);
325
+ if (options.replayOptions?.operation.hash &&
326
+ options.replayOptions.operation.hash !== "") {
327
+ hash = options.replayOptions.operation.hash;
328
+ }
329
329
  // updates the last operation with the hash of the resulting state
330
- const lastOperation = newDocument.operations[scope].at(-1);
330
+ const scopeOperations = newDocument.operations[scope];
331
+ const lastOperation = scopeOperations?.at(-1);
331
332
  if (lastOperation) {
332
333
  lastOperation.hash = hash;
333
334
  if (reuseOperationResultingState) {
334
- lastOperation.resultingState = JSON.stringify(
335
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
336
- newDocument.state[scope]);
337
- }
338
- // if the action has attachments then adds them to the document
339
- if (!isDocumentAction(_action) && _action.attachments) {
340
- _action.attachments.forEach((attachment) => {
341
- const { hash, ...file } = attachment;
342
- if (!newDocument.attachments) {
343
- newDocument.attachments = {};
344
- }
345
- newDocument.attachments[hash] = {
346
- ...file,
347
- };
348
- });
335
+ lastOperation.resultingState = JSON.stringify(newDocument.state[scope]);
349
336
  }
350
337
  }
351
338
  return newDocument;
352
339
  }
340
+ /**
341
+ * Helper function to create a document model reducer.
342
+ *
343
+ * @remarks
344
+ * This function creates a new reducer that wraps the provided `reducer` with
345
+ * `documentReducer`, adding support for document actions:
346
+ * - `SET_NAME`
347
+ * - `UNDO`
348
+ * - `REDO`
349
+ * - `PRUNE`
350
+ *
351
+ * It also updates the document-related attributes on every operation.
352
+ *
353
+ * @param reducer - The custom reducer to wrap.
354
+ * @param documentReducer - The document reducer to use.
355
+ *
356
+ * @returns The new reducer.
357
+ */
358
+ export function createReducer(stateReducer, documentReducer = baseReducer) {
359
+ const reducer = (document, action, dispatch, options) => {
360
+ return documentReducer(document, action, stateReducer, dispatch, options);
361
+ };
362
+ return reducer;
363
+ }
364
+ export function pruneOperation(document, input, wrappedReducer) {
365
+ const operations = document.operations.global;
366
+ if (!operations) {
367
+ throw new Error("No global operations found");
368
+ }
369
+ let { start, end } = input;
370
+ start = start || 0;
371
+ end = end || operations.length;
372
+ const actionsToPrune = operations.slice(start, end);
373
+ const actionsToKeepStart = operations.slice(0, start);
374
+ const actionsToKeepEnd = operations.slice(end);
375
+ // runs all operations from the initial state to
376
+ // the end of prune to get name and data
377
+ const newDocument = replayOperations(document.initialState, {
378
+ ...document.operations,
379
+ global: actionsToKeepStart.concat(actionsToPrune),
380
+ }, wrappedReducer);
381
+ const newState = newDocument.state;
382
+ const name = newDocument.header.name;
383
+ // the new operation has the index of the first pruned operation
384
+ const loadStateIndex = actionsToKeepStart.length;
385
+ // if and operation is pruned then reuses the timestamp of the last operation
386
+ // if not then assigns the timestamp of the following unpruned operation
387
+ const loadStateTimestamp = actionsToKeepStart.length
388
+ ? actionsToKeepStart[actionsToKeepStart.length - 1].timestampUtcMs
389
+ : actionsToKeepEnd.length
390
+ ? actionsToKeepEnd[0].timestampUtcMs
391
+ : new Date().toISOString();
392
+ const action = loadState({ name, ...newState }, actionsToPrune.length);
393
+ // replaces pruned operations with LOAD_STATE
394
+ return replayOperations(document.initialState, {
395
+ ...document.operations,
396
+ global: [
397
+ ...actionsToKeepStart,
398
+ {
399
+ skip: 0,
400
+ ...action,
401
+ action,
402
+ timestampUtcMs: loadStateTimestamp,
403
+ index: loadStateIndex,
404
+ hash: hashDocumentStateForScope({ state: newState }, "global"),
405
+ },
406
+ ...actionsToKeepEnd
407
+ // updates the index for all the following operations
408
+ .map((action, index) => ({
409
+ ...action,
410
+ index: loadStateIndex + index + 1,
411
+ })),
412
+ ],
413
+ }, wrappedReducer);
414
+ }
353
415
  //# sourceMappingURL=reducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../../src/core/reducer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { type Action, type DocumentFile, type LoadStateAction, type LoadStateActionInput, type LoadStateActionStateInput, type Operation, type PruneAction, type PruneActionInput, type RedoAction, type SetNameAction, type SetNameOperation, type UndoAction } from "./types.js";
2
+ import type { DocumentFile, LoadStateActionInput, LoadStateActionStateInput, PruneActionInput, SchemaLoadStateAction, SchemaPruneAction, SchemaRedoAction, SchemaSetNameAction, SchemaUndoAction } from "./types.js";
3
3
  type Properties<T> = Required<{
4
4
  [K in keyof T]: z.ZodType<T[K], any, T[K]>;
5
5
  }>;
@@ -11,88 +11,115 @@ export declare const PruneSchema: z.ZodEnum<["PRUNE"]>;
11
11
  export declare const RedoSchema: z.ZodEnum<["REDO"]>;
12
12
  export declare const Set_NameSchema: z.ZodEnum<["SET_NAME"]>;
13
13
  export declare const UndoSchema: z.ZodEnum<["UNDO"]>;
14
- export declare function ActionSchema(): z.ZodObject<Properties<Action>>;
15
14
  export declare function OperationScopeSchema(): z.ZodString;
16
15
  export declare function DocumentActionSchema(): z.ZodUnion<[z.ZodObject<Required<{
16
+ id: z.ZodType<string, any, string>;
17
+ timestampUtcMs: z.ZodType<string, any, string>;
17
18
  input: z.ZodType<LoadStateActionInput, any, LoadStateActionInput>;
18
19
  type: z.ZodType<"LOAD_STATE", any, "LOAD_STATE">;
19
20
  scope: z.ZodType<string, any, string>;
20
21
  }>, z.UnknownKeysParam, z.ZodTypeAny, {
22
+ id: import("./types.js").Scalars["String"]["output"];
23
+ timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
21
24
  input: LoadStateActionInput;
22
25
  type: import("./types.js").Load_State;
23
26
  scope: string;
24
27
  }, {
28
+ id: import("./types.js").Scalars["String"]["output"];
29
+ timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
25
30
  input: LoadStateActionInput;
26
31
  type: import("./types.js").Load_State;
27
32
  scope: string;
28
33
  }>, z.ZodObject<Required<{
34
+ id: z.ZodType<string, any, string>;
35
+ timestampUtcMs: z.ZodType<string, any, string>;
29
36
  input: z.ZodType<PruneActionInput, any, PruneActionInput>;
30
37
  type: z.ZodType<"PRUNE", any, "PRUNE">;
31
38
  scope: z.ZodType<string, any, string>;
32
39
  }>, z.UnknownKeysParam, z.ZodTypeAny, {
40
+ id: import("./types.js").Scalars["String"]["output"];
41
+ timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
33
42
  input: PruneActionInput;
34
43
  type: import("./types.js").Prune;
35
44
  scope: string;
36
45
  }, {
46
+ id: import("./types.js").Scalars["String"]["output"];
47
+ timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
37
48
  input: PruneActionInput;
38
49
  type: import("./types.js").Prune;
39
50
  scope: string;
40
51
  }>, z.ZodObject<Required<{
52
+ id: z.ZodType<string, any, string>;
53
+ timestampUtcMs: z.ZodType<string, any, string>;
41
54
  input: z.ZodType<number, any, number>;
42
55
  type: z.ZodType<"REDO", any, "REDO">;
43
56
  scope: z.ZodType<string, any, string>;
44
57
  }>, z.UnknownKeysParam, z.ZodTypeAny, {
58
+ id: import("./types.js").Scalars["String"]["output"];
59
+ timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
45
60
  input: import("./types.js").Scalars["Int"]["input"];
46
61
  type: import("./types.js").Redo;
47
62
  scope: string;
48
63
  }, {
64
+ id: import("./types.js").Scalars["String"]["output"];
65
+ timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
49
66
  input: import("./types.js").Scalars["Int"]["input"];
50
67
  type: import("./types.js").Redo;
51
68
  scope: string;
52
69
  }>, z.ZodObject<Required<{
70
+ id: z.ZodType<string, any, string>;
71
+ timestampUtcMs: z.ZodType<string, any, string>;
53
72
  input: z.ZodType<string, any, string>;
54
73
  type: z.ZodType<"SET_NAME", any, "SET_NAME">;
55
74
  scope: z.ZodType<"global", any, "global">;
56
75
  }>, z.UnknownKeysParam, z.ZodTypeAny, {
76
+ id: import("./types.js").Scalars["String"]["output"];
77
+ timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
57
78
  input: import("./types.js").Scalars["String"]["input"];
58
79
  type: import("./types.js").Set_Name;
59
80
  scope: "global";
60
81
  }, {
82
+ id: import("./types.js").Scalars["String"]["output"];
83
+ timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
61
84
  input: import("./types.js").Scalars["String"]["input"];
62
85
  type: import("./types.js").Set_Name;
63
86
  scope: "global";
64
87
  }>, z.ZodObject<Required<{
88
+ id: z.ZodType<string, any, string>;
89
+ timestampUtcMs: z.ZodType<string, any, string>;
65
90
  input: z.ZodType<number, any, number>;
66
91
  type: z.ZodType<"UNDO", any, "UNDO">;
67
92
  scope: z.ZodType<string, any, string>;
68
93
  }>, z.UnknownKeysParam, z.ZodTypeAny, {
94
+ id: import("./types.js").Scalars["String"]["output"];
95
+ timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
69
96
  input: import("./types.js").Scalars["Int"]["input"];
70
97
  type: import("./types.js").Undo;
71
98
  scope: string;
72
99
  }, {
100
+ id: import("./types.js").Scalars["String"]["output"];
101
+ timestampUtcMs: import("./types.js").Scalars["DateTime"]["output"];
73
102
  input: import("./types.js").Scalars["Int"]["input"];
74
103
  type: import("./types.js").Undo;
75
104
  scope: string;
76
105
  }>]>;
77
106
  export declare function DocumentFileSchema(): z.ZodObject<Properties<DocumentFile>>;
78
- export declare function LoadStateActionSchema(): z.ZodObject<Properties<LoadStateAction>>;
107
+ export declare function LoadStateActionSchema(): z.ZodObject<Properties<SchemaLoadStateAction>>;
79
108
  export declare function LoadStateActionInputSchema(): z.ZodObject<Properties<LoadStateActionInput>>;
80
109
  export declare function LoadStateActionStateInputSchema(): z.ZodObject<Properties<LoadStateActionStateInput>>;
81
- export declare function OperationSchema(): z.ZodObject<Properties<Operation>>;
82
- export declare function PruneActionSchema(): z.ZodObject<Properties<PruneAction>>;
110
+ export declare function PruneActionSchema(): z.ZodObject<Properties<SchemaPruneAction>>;
83
111
  export declare function PruneActionInputSchema(): z.ZodObject<Properties<PruneActionInput>>;
84
112
  export declare const RedoActionInputSchema: (params?: z.RawCreateParams & {
85
113
  coerce?: boolean;
86
114
  }) => z.ZodNumber;
87
- export declare function RedoActionSchema(): z.ZodObject<Properties<RedoAction>>;
115
+ export declare function RedoActionSchema(): z.ZodObject<Properties<SchemaRedoAction>>;
88
116
  export declare const SetNameActionInputSchema: (params?: z.RawCreateParams & {
89
117
  coerce?: true;
90
118
  }) => z.ZodString;
91
- export declare function SetNameActionSchema(): z.ZodObject<Properties<SetNameAction>>;
92
- export declare function SetNameOperationSchema(): z.ZodObject<Properties<SetNameOperation>>;
119
+ export declare function SetNameActionSchema(): z.ZodObject<Properties<SchemaSetNameAction>>;
93
120
  export declare const UndoActionInputSchema: (params?: z.RawCreateParams & {
94
121
  coerce?: boolean;
95
122
  }) => z.ZodNumber;
96
- export declare function UndoActionSchema(): z.ZodObject<Properties<UndoAction>>;
123
+ export declare function UndoActionSchema(): z.ZodObject<Properties<SchemaUndoAction>>;
97
124
  export {};
98
- //# sourceMappingURL=zod.d.ts.map
125
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/core/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,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,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3C,CAAC,CAAC;AAEH,KAAK,iBAAiB,GAAG,EAAE,CAAC;AAE5B,eAAO,MAAM,mBAAmB,GAAI,GAAG,GAAG,KAAG,CAAC,IAAI,iBACnB,CAAC;AAEhC,eAAO,MAAM,uBAAuB,gDAEI,CAAC;AAEzC,eAAO,MAAM,gBAAgB,2BAAyB,CAAC;AAEvD,eAAO,MAAM,WAAW,sBAAoB,CAAC;AAE7C,eAAO,MAAM,UAAU,qBAAmB,CAAC;AAE3C,eAAO,MAAM,cAAc,yBAAuB,CAAC;AAEnD,eAAO,MAAM,UAAU,qBAAmB,CAAC;AAE3C,wBAAgB,oBAAoB,IAAI,CAAC,CAAC,SAAS,CAElD;AAED,wBAAgB,oBAAoB;;;;;;;QA+DjC,sCAAkB;oBAEN,wCACA;;;;;QAHZ,sCAAkB;oBAEN,wCACA;;;;;;;;;;;QA+BuB,sCAAkB;oBAC7B,wCAErB;;;;;QAHgC,sCAAkB;oBAC7B,wCAErB;;;;;;;;;;;QAYuD,sCAAkB;oBAEvE,wCACA;WAAoB,mCAC5B;;;;QAJ6D,sCAAkB;oBAEvE,wCACA;WAAoB,mCAC5B;;;;;;;;;;QAKsB,sCAAkB;oBAA6B,wCAAoB;WAAoB,sCAAkB;;;;QAAzG,sCAAkB;oBAA6B,wCAAoB;WAAoB,sCAAkB;;;;;;;;;;QAA0Y,sCAAkB;oBAA6B,wCAAoB;WAAoB,mCAAe;;;;QAAtG,sCAAkB;oBAA6B,wCAAoB;WAAoB,mCAAe;;;KAjH9mB;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;UAkD8v0C,CAAC;iBAlDpv0C,CAAC;AAE9C,wBAAgB,gBAAgB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAQ5E;AAED,eAAO,MAAM,wBAAwB;UAsC+p0C,CAAC;iBAtCrp0C,CAAC;AAEjD,wBAAgB,mBAAmB,IAAI,CAAC,CAAC,SAAS,CAChD,UAAU,CAAC,mBAAmB,CAAC,CAChC,CAQA;AAeD,eAAO,MAAM,qBAAqB;UAW8v0C,CAAC;iBAXpv0C,CAAC;AAE9C,wBAAgB,gBAAgB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAQ5E"}