document-model 4.1.0-dev.8 → 4.1.0-dev.80

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 (442) 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 -21
  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 +197 -131
  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 +490 -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 +39 -61
  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-types.d.ts +0 -68
  202. package/dist/src/document/ph-types.d.ts.map +0 -1
  203. package/dist/src/document/ph-types.js +0 -2
  204. package/dist/src/document/ph-types.js.map +0 -1
  205. package/dist/src/document/reducer.d.ts +0 -49
  206. package/dist/src/document/reducer.d.ts.map +0 -1
  207. package/dist/src/document/reducer.js.map +0 -1
  208. package/dist/src/document/schema/types.d.ts +0 -176
  209. package/dist/src/document/schema/types.d.ts.map +0 -1
  210. package/dist/src/document/schema/types.js +0 -2
  211. package/dist/src/document/schema/zod.d.ts.map +0 -1
  212. package/dist/src/document/schema/zod.js.map +0 -1
  213. package/dist/src/document/signal.d.ts +0 -36
  214. package/dist/src/document/signal.d.ts.map +0 -1
  215. package/dist/src/document/signal.js +0 -2
  216. package/dist/src/document/signal.js.map +0 -1
  217. package/dist/src/document/types.d.ts +0 -325
  218. package/dist/src/document/types.d.ts.map +0 -1
  219. package/dist/src/document/types.js +0 -2
  220. package/dist/src/document/utils/base.d.ts +0 -88
  221. package/dist/src/document/utils/base.d.ts.map +0 -1
  222. package/dist/src/document/utils/base.js +0 -335
  223. package/dist/src/document/utils/base.js.map +0 -1
  224. package/dist/src/document/utils/browser.d.ts +0 -18
  225. package/dist/src/document/utils/browser.d.ts.map +0 -1
  226. package/dist/src/document/utils/browser.js +0 -54
  227. package/dist/src/document/utils/browser.js.map +0 -1
  228. package/dist/src/document/utils/crypto.d.ts +0 -11
  229. package/dist/src/document/utils/crypto.d.ts.map +0 -1
  230. package/dist/src/document/utils/crypto.js +0 -80
  231. package/dist/src/document/utils/crypto.js.map +0 -1
  232. package/dist/src/document/utils/document-helpers.d.ts.map +0 -1
  233. package/dist/src/document/utils/document-helpers.js.map +0 -1
  234. package/dist/src/document/utils/errors.d.ts +0 -10
  235. package/dist/src/document/utils/errors.d.ts.map +0 -1
  236. package/dist/src/document/utils/errors.js +0 -19
  237. package/dist/src/document/utils/errors.js.map +0 -1
  238. package/dist/src/document/utils/file.d.ts.map +0 -1
  239. package/dist/src/document/utils/file.js +0 -152
  240. package/dist/src/document/utils/file.js.map +0 -1
  241. package/dist/src/document/utils/header.d.ts.map +0 -1
  242. package/dist/src/document/utils/header.js.map +0 -1
  243. package/dist/src/document/utils/node.d.ts +0 -18
  244. package/dist/src/document/utils/node.d.ts.map +0 -1
  245. package/dist/src/document/utils/node.js +0 -62
  246. package/dist/src/document/utils/node.js.map +0 -1
  247. package/dist/src/document/utils/validation.d.ts +0 -3
  248. package/dist/src/document/utils/validation.d.ts.map +0 -1
  249. package/dist/src/document/utils/validation.js.map +0 -1
  250. package/dist/src/document-model/custom/reducers/header.d.ts +0 -3
  251. package/dist/src/document-model/custom/reducers/header.d.ts.map +0 -1
  252. package/dist/src/document-model/custom/reducers/header.js +0 -23
  253. package/dist/src/document-model/custom/reducers/header.js.map +0 -1
  254. package/dist/src/document-model/custom/reducers/module.d.ts +0 -3
  255. package/dist/src/document-model/custom/reducers/module.d.ts.map +0 -1
  256. package/dist/src/document-model/custom/reducers/module.js +0 -41
  257. package/dist/src/document-model/custom/reducers/module.js.map +0 -1
  258. package/dist/src/document-model/custom/reducers/operation-error.d.ts +0 -3
  259. package/dist/src/document-model/custom/reducers/operation-error.d.ts.map +0 -1
  260. package/dist/src/document-model/custom/reducers/operation-error.js +0 -94
  261. package/dist/src/document-model/custom/reducers/operation-error.js.map +0 -1
  262. package/dist/src/document-model/custom/reducers/operation-example.d.ts +0 -3
  263. package/dist/src/document-model/custom/reducers/operation-example.d.ts.map +0 -1
  264. package/dist/src/document-model/custom/reducers/operation-example.js +0 -53
  265. package/dist/src/document-model/custom/reducers/operation-example.js.map +0 -1
  266. package/dist/src/document-model/custom/reducers/operation.d.ts +0 -3
  267. package/dist/src/document-model/custom/reducers/operation.d.ts.map +0 -1
  268. package/dist/src/document-model/custom/reducers/operation.js +0 -125
  269. package/dist/src/document-model/custom/reducers/operation.js.map +0 -1
  270. package/dist/src/document-model/custom/reducers/state.d.ts +0 -3
  271. package/dist/src/document-model/custom/reducers/state.d.ts.map +0 -1
  272. package/dist/src/document-model/custom/reducers/state.js +0 -71
  273. package/dist/src/document-model/custom/reducers/state.js.map +0 -1
  274. package/dist/src/document-model/custom/reducers/versioning.d.ts +0 -8
  275. package/dist/src/document-model/custom/reducers/versioning.d.ts.map +0 -1
  276. package/dist/src/document-model/custom/reducers/versioning.js +0 -23
  277. package/dist/src/document-model/custom/reducers/versioning.js.map +0 -1
  278. package/dist/src/document-model/custom/utils.d.ts +0 -8
  279. package/dist/src/document-model/custom/utils.d.ts.map +0 -1
  280. package/dist/src/document-model/custom/utils.js.map +0 -1
  281. package/dist/src/document-model/gen/actions.d.ts +0 -16
  282. package/dist/src/document-model/gen/actions.d.ts.map +0 -1
  283. package/dist/src/document-model/gen/actions.js +0 -8
  284. package/dist/src/document-model/gen/actions.js.map +0 -1
  285. package/dist/src/document-model/gen/constants.d.ts +0 -7
  286. package/dist/src/document-model/gen/constants.d.ts.map +0 -1
  287. package/dist/src/document-model/gen/constants.js +0 -34
  288. package/dist/src/document-model/gen/constants.js.map +0 -1
  289. package/dist/src/document-model/gen/creators.d.ts +0 -8
  290. package/dist/src/document-model/gen/creators.d.ts.map +0 -1
  291. package/dist/src/document-model/gen/creators.js +0 -8
  292. package/dist/src/document-model/gen/creators.js.map +0 -1
  293. package/dist/src/document-model/gen/document-model.d.ts +0 -3
  294. package/dist/src/document-model/gen/document-model.d.ts.map +0 -1
  295. package/dist/src/document-model/gen/document-model.js.map +0 -1
  296. package/dist/src/document-model/gen/header/actions.d.ts +0 -28
  297. package/dist/src/document-model/gen/header/actions.d.ts.map +0 -1
  298. package/dist/src/document-model/gen/header/actions.js +0 -2
  299. package/dist/src/document-model/gen/header/actions.js.map +0 -1
  300. package/dist/src/document-model/gen/header/creators.d.ts +0 -9
  301. package/dist/src/document-model/gen/header/creators.d.ts.map +0 -1
  302. package/dist/src/document-model/gen/header/creators.js +0 -9
  303. package/dist/src/document-model/gen/header/creators.js.map +0 -1
  304. package/dist/src/document-model/gen/header/object.d.ts +0 -13
  305. package/dist/src/document-model/gen/header/object.d.ts.map +0 -1
  306. package/dist/src/document-model/gen/header/object.js +0 -23
  307. package/dist/src/document-model/gen/header/object.js.map +0 -1
  308. package/dist/src/document-model/gen/header/operations.d.ts +0 -11
  309. package/dist/src/document-model/gen/header/operations.d.ts.map +0 -1
  310. package/dist/src/document-model/gen/header/operations.js +0 -2
  311. package/dist/src/document-model/gen/header/operations.js.map +0 -1
  312. package/dist/src/document-model/gen/module/actions.d.ts +0 -24
  313. package/dist/src/document-model/gen/module/actions.d.ts.map +0 -1
  314. package/dist/src/document-model/gen/module/actions.js +0 -2
  315. package/dist/src/document-model/gen/module/actions.js.map +0 -1
  316. package/dist/src/document-model/gen/module/creators.d.ts +0 -8
  317. package/dist/src/document-model/gen/module/creators.d.ts.map +0 -1
  318. package/dist/src/document-model/gen/module/creators.js +0 -8
  319. package/dist/src/document-model/gen/module/creators.js.map +0 -1
  320. package/dist/src/document-model/gen/module/object.d.ts +0 -12
  321. package/dist/src/document-model/gen/module/object.d.ts.map +0 -1
  322. package/dist/src/document-model/gen/module/object.js +0 -20
  323. package/dist/src/document-model/gen/module/object.js.map +0 -1
  324. package/dist/src/document-model/gen/module/operations.d.ts +0 -10
  325. package/dist/src/document-model/gen/module/operations.d.ts.map +0 -1
  326. package/dist/src/document-model/gen/module/operations.js +0 -2
  327. package/dist/src/document-model/gen/module/operations.js.map +0 -1
  328. package/dist/src/document-model/gen/object.d.ts +0 -29
  329. package/dist/src/document-model/gen/object.d.ts.map +0 -1
  330. package/dist/src/document-model/gen/object.js +0 -46
  331. package/dist/src/document-model/gen/object.js.map +0 -1
  332. package/dist/src/document-model/gen/operation/actions.d.ts +0 -44
  333. package/dist/src/document-model/gen/operation/actions.d.ts.map +0 -1
  334. package/dist/src/document-model/gen/operation/actions.js +0 -2
  335. package/dist/src/document-model/gen/operation/actions.js.map +0 -1
  336. package/dist/src/document-model/gen/operation/creators.d.ts +0 -13
  337. package/dist/src/document-model/gen/operation/creators.d.ts.map +0 -1
  338. package/dist/src/document-model/gen/operation/creators.js +0 -13
  339. package/dist/src/document-model/gen/operation/creators.js.map +0 -1
  340. package/dist/src/document-model/gen/operation/object.d.ts +0 -18
  341. package/dist/src/document-model/gen/operation/object.d.ts.map +0 -1
  342. package/dist/src/document-model/gen/operation/object.js +0 -35
  343. package/dist/src/document-model/gen/operation/object.js.map +0 -1
  344. package/dist/src/document-model/gen/operation/operations.d.ts +0 -15
  345. package/dist/src/document-model/gen/operation/operations.d.ts.map +0 -1
  346. package/dist/src/document-model/gen/operation/operations.js +0 -2
  347. package/dist/src/document-model/gen/operation/operations.js.map +0 -1
  348. package/dist/src/document-model/gen/operation-error/actions.d.ts +0 -32
  349. package/dist/src/document-model/gen/operation-error/actions.d.ts.map +0 -1
  350. package/dist/src/document-model/gen/operation-error/actions.js +0 -2
  351. package/dist/src/document-model/gen/operation-error/actions.js.map +0 -1
  352. package/dist/src/document-model/gen/operation-error/creators.d.ts +0 -10
  353. package/dist/src/document-model/gen/operation-error/creators.d.ts.map +0 -1
  354. package/dist/src/document-model/gen/operation-error/creators.js +0 -10
  355. package/dist/src/document-model/gen/operation-error/creators.js.map +0 -1
  356. package/dist/src/document-model/gen/operation-error/object.d.ts +0 -15
  357. package/dist/src/document-model/gen/operation-error/object.d.ts.map +0 -1
  358. package/dist/src/document-model/gen/operation-error/object.js +0 -26
  359. package/dist/src/document-model/gen/operation-error/object.js.map +0 -1
  360. package/dist/src/document-model/gen/operation-error/operations.d.ts +0 -12
  361. package/dist/src/document-model/gen/operation-error/operations.d.ts.map +0 -1
  362. package/dist/src/document-model/gen/operation-error/operations.js +0 -2
  363. package/dist/src/document-model/gen/operation-error/operations.js.map +0 -1
  364. package/dist/src/document-model/gen/operation-example/actions.d.ts +0 -20
  365. package/dist/src/document-model/gen/operation-example/actions.d.ts.map +0 -1
  366. package/dist/src/document-model/gen/operation-example/actions.js +0 -2
  367. package/dist/src/document-model/gen/operation-example/actions.js.map +0 -1
  368. package/dist/src/document-model/gen/operation-example/creators.d.ts +0 -7
  369. package/dist/src/document-model/gen/operation-example/creators.d.ts.map +0 -1
  370. package/dist/src/document-model/gen/operation-example/creators.js +0 -7
  371. package/dist/src/document-model/gen/operation-example/creators.js.map +0 -1
  372. package/dist/src/document-model/gen/operation-example/object.d.ts +0 -12
  373. package/dist/src/document-model/gen/operation-example/object.d.ts.map +0 -1
  374. package/dist/src/document-model/gen/operation-example/object.js +0 -17
  375. package/dist/src/document-model/gen/operation-example/object.js.map +0 -1
  376. package/dist/src/document-model/gen/operation-example/operations.d.ts +0 -9
  377. package/dist/src/document-model/gen/operation-example/operations.d.ts.map +0 -1
  378. package/dist/src/document-model/gen/operation-example/operations.js +0 -2
  379. package/dist/src/document-model/gen/operation-example/operations.js.map +0 -1
  380. package/dist/src/document-model/gen/reducer.d.ts +0 -5
  381. package/dist/src/document-model/gen/reducer.d.ts.map +0 -1
  382. package/dist/src/document-model/gen/reducer.js +0 -193
  383. package/dist/src/document-model/gen/reducer.js.map +0 -1
  384. package/dist/src/document-model/gen/schema/index.d.ts +0 -3
  385. package/dist/src/document-model/gen/schema/index.d.ts.map +0 -1
  386. package/dist/src/document-model/gen/schema/index.js +0 -3
  387. package/dist/src/document-model/gen/schema/index.js.map +0 -1
  388. package/dist/src/document-model/gen/schema/types.d.ts +0 -457
  389. package/dist/src/document-model/gen/schema/types.d.ts.map +0 -1
  390. package/dist/src/document-model/gen/schema/types.js.map +0 -1
  391. package/dist/src/document-model/gen/schema/zod.d.ts +0 -453
  392. package/dist/src/document-model/gen/schema/zod.d.ts.map +0 -1
  393. package/dist/src/document-model/gen/schema/zod.js.map +0 -1
  394. package/dist/src/document-model/gen/state/actions.d.ts +0 -28
  395. package/dist/src/document-model/gen/state/actions.d.ts.map +0 -1
  396. package/dist/src/document-model/gen/state/actions.js +0 -2
  397. package/dist/src/document-model/gen/state/actions.js.map +0 -1
  398. package/dist/src/document-model/gen/state/creators.d.ts +0 -9
  399. package/dist/src/document-model/gen/state/creators.d.ts.map +0 -1
  400. package/dist/src/document-model/gen/state/creators.js +0 -9
  401. package/dist/src/document-model/gen/state/creators.js.map +0 -1
  402. package/dist/src/document-model/gen/state/object.d.ts +0 -13
  403. package/dist/src/document-model/gen/state/object.d.ts.map +0 -1
  404. package/dist/src/document-model/gen/state/object.js +0 -23
  405. package/dist/src/document-model/gen/state/object.js.map +0 -1
  406. package/dist/src/document-model/gen/state/operations.d.ts +0 -11
  407. package/dist/src/document-model/gen/state/operations.d.ts.map +0 -1
  408. package/dist/src/document-model/gen/state/operations.js +0 -2
  409. package/dist/src/document-model/gen/state/operations.js.map +0 -1
  410. package/dist/src/document-model/gen/types.d.ts +0 -7
  411. package/dist/src/document-model/gen/types.d.ts.map +0 -1
  412. package/dist/src/document-model/gen/types.js.map +0 -1
  413. package/dist/src/document-model/gen/utils.d.ts +0 -11
  414. package/dist/src/document-model/gen/utils.d.ts.map +0 -1
  415. package/dist/src/document-model/gen/utils.js +0 -33
  416. package/dist/src/document-model/gen/utils.js.map +0 -1
  417. package/dist/src/document-model/gen/versioning/actions.d.ts +0 -24
  418. package/dist/src/document-model/gen/versioning/actions.d.ts.map +0 -1
  419. package/dist/src/document-model/gen/versioning/actions.js +0 -2
  420. package/dist/src/document-model/gen/versioning/actions.js.map +0 -1
  421. package/dist/src/document-model/gen/versioning/creators.d.ts +0 -8
  422. package/dist/src/document-model/gen/versioning/creators.d.ts.map +0 -1
  423. package/dist/src/document-model/gen/versioning/creators.js +0 -8
  424. package/dist/src/document-model/gen/versioning/creators.js.map +0 -1
  425. package/dist/src/document-model/gen/versioning/object.d.ts +0 -13
  426. package/dist/src/document-model/gen/versioning/object.d.ts.map +0 -1
  427. package/dist/src/document-model/gen/versioning/object.js +0 -20
  428. package/dist/src/document-model/gen/versioning/object.js.map +0 -1
  429. package/dist/src/document-model/gen/versioning/operations.d.ts +0 -10
  430. package/dist/src/document-model/gen/versioning/operations.d.ts.map +0 -1
  431. package/dist/src/document-model/gen/versioning/operations.js +0 -2
  432. package/dist/src/document-model/gen/versioning/operations.js.map +0 -1
  433. package/dist/test/document/object.test.d.ts +0 -2
  434. package/dist/test/document/object.test.d.ts.map +0 -1
  435. package/dist/test/document/object.test.js +0 -13
  436. package/dist/test/document/object.test.js.map +0 -1
  437. package/dist/test/document-model/object.test.d.ts +0 -2
  438. package/dist/test/document-model/object.test.d.ts.map +0 -1
  439. package/dist/test/document-model/object.test.js +0 -243
  440. package/dist/test/document-model/object.test.js.map +0 -1
  441. /package/dist/src/{document-model/gen/schema → core}/types.js +0 -0
  442. /package/dist/{src/document-model/gen → test}/types.js +0 -0
@@ -1,4 +1,267 @@
1
- import stringify from "safe-stable-stringify";
1
+ import stringifyJson, { stringify } from "safe-stable-stringify";
2
+ import { generateId, hashBrowser } from "./crypto.js";
3
+ import { HashMismatchError } from "./errors.js";
4
+ import { createPresignedHeader } from "./header.js";
5
+ export function isNoopOperation(op) {
6
+ return (op.type === "NOOP" &&
7
+ op.skip !== undefined &&
8
+ op.skip > 0 &&
9
+ op.hash !== undefined);
10
+ }
11
+ export function isUndoRedo(action) {
12
+ return ["UNDO", "REDO"].includes(action.type);
13
+ }
14
+ export function isUndo(action) {
15
+ return action.type === "UNDO";
16
+ }
17
+ export function isDocumentAction(action) {
18
+ return ["SET_NAME", "UNDO", "REDO", "PRUNE", "LOAD_STATE"].includes(action.type);
19
+ }
20
+ /**
21
+ * Important note: it is the responsibility of the caller to set the document type
22
+ * on the header.
23
+ */
24
+ export function baseCreateDocument(createState, initialState) {
25
+ const state = createState(initialState);
26
+ const header = createPresignedHeader();
27
+ const phDocument = {
28
+ header,
29
+ state,
30
+ initialState: state,
31
+ operations: { global: [], local: [] },
32
+ clipboard: [],
33
+ };
34
+ return phDocument;
35
+ }
36
+ export function hashDocumentStateForScope(document, scope = "global") {
37
+ const stateString = stringifyJson(document.state[scope] || "");
38
+ return hashBrowser(stateString);
39
+ }
40
+ export function readOnly(value) {
41
+ return Object.freeze(value);
42
+ }
43
+ /**
44
+ * Maps skipped operations in an array of operations.
45
+ * Skipped operations are operations that are ignored during processing.
46
+ * @param operations - The array of operations to map.
47
+ * @param skippedHeadOperations - The number of operations to skip at the head of the array of operations.
48
+ * @returns An array of mapped operations with ignore flag indicating if the operation is skipped.
49
+ * @throws Error if the operation index is invalid and there are missing operations.
50
+ */
51
+ export function mapSkippedOperations(operations, skippedHeadOperations) {
52
+ const ops = [...operations];
53
+ let skipped = skippedHeadOperations || 0;
54
+ let latestOpIndex = ops.length > 0 ? ops[ops.length - 1].index : 0;
55
+ const scopeOpsWithIgnore = [];
56
+ for (const operation of ops.reverse()) {
57
+ if (skipped > 0) {
58
+ const operationsDiff = latestOpIndex - operation.index;
59
+ skipped -= operationsDiff;
60
+ }
61
+ if (skipped < 0) {
62
+ throw new Error("Invalid operation index, missing operations");
63
+ }
64
+ const mappedOp = {
65
+ ignore: skipped > 0,
66
+ operation,
67
+ };
68
+ // here we add 1 to the skip number because we want to get the number of
69
+ // operations that we want to move the pointer back to get the latest valid operation
70
+ // operation.skip = 1 means that we want to move the pointer back 2 operations to get to the latest valid operation
71
+ const operationSkip = operation.skip > 0 ? operation.skip + 1 : 0;
72
+ if (operationSkip > 0 && operationSkip > skipped) {
73
+ const skipDiff = operationSkip - skipped;
74
+ skipped = skipped + skipDiff;
75
+ }
76
+ latestOpIndex = operation.index;
77
+ scopeOpsWithIgnore.push(mappedOp);
78
+ }
79
+ return scopeOpsWithIgnore.reverse();
80
+ }
81
+ // Flattens the mapped operations (with ignore flag) from all scopes into
82
+ // a single array and sorts them by timestamp
83
+ export function sortMappedOperations(operations) {
84
+ return Object.values(operations)
85
+ .flatMap((array) => array)
86
+ .sort((a, b) => new Date(a.operation.timestampUtcMs).getTime() -
87
+ new Date(b.operation.timestampUtcMs).getTime());
88
+ }
89
+ // Default createState function that just returns the state as-is
90
+ const defaultCreateState = (state) => {
91
+ return state;
92
+ };
93
+ // Runs the operations on the initial data using the
94
+ // provided document reducer.
95
+ // This rebuilds the document according to the provided actions.
96
+ export function replayDocument(initialState, operations, reducer, dispatch, header, skipHeaderOperations = {}, options) {
97
+ const { checkHashes = true, reuseOperationResultingState, operationResultingStateParser = parseResultingState, } = options || {};
98
+ let documentState = initialState;
99
+ const operationsToReplay = [];
100
+ // Initialize with all scopes found in operations, plus global and local for backward compatibility
101
+ const allScopes = new Set([...Object.keys(operations), "global", "local"]);
102
+ const initialOperations = {};
103
+ for (const scope of allScopes) {
104
+ initialOperations[scope] = [];
105
+ }
106
+ // if operation resulting state is to be used then
107
+ // looks for the last operation with state of each
108
+ // scope to use it as the starting point and only
109
+ // replay operations that follow it
110
+ if (reuseOperationResultingState) {
111
+ for (const [scope, scopeOperations] of Object.entries(operations)) {
112
+ if (!scopeOperations) {
113
+ continue;
114
+ }
115
+ const index = scopeOperations.findLastIndex((s) => !!s.resultingState);
116
+ if (index < 0) {
117
+ operationsToReplay.push(...scopeOperations);
118
+ continue;
119
+ }
120
+ const opWithState = scopeOperations[index];
121
+ if (!opWithState || !opWithState.resultingState)
122
+ continue;
123
+ try {
124
+ const scopeState = operationResultingStateParser(opWithState.resultingState);
125
+ documentState = {
126
+ ...documentState,
127
+ // TODO how to deal with attachments?
128
+ [scope]: scopeState,
129
+ };
130
+ const scopeInitialOps = initialOperations[scope];
131
+ if (scopeInitialOps) {
132
+ scopeInitialOps.push(...scopeOperations.slice(0, index + 1));
133
+ }
134
+ operationsToReplay.push(...scopeOperations.slice(index + 1));
135
+ }
136
+ catch {
137
+ /* if parsing fails then keeps replays all scope operations */
138
+ operationsToReplay.push(...scopeOperations);
139
+ }
140
+ }
141
+ }
142
+ else {
143
+ operationsToReplay.push(...Object.values(operations).flatMap((ops) => ops || []));
144
+ }
145
+ // builds a new document from the initial data
146
+ const document = baseCreateDocument((defaultCreateState), documentState);
147
+ if (header?.slug) {
148
+ document.header.slug = header.slug;
149
+ }
150
+ document.initialState = initialState;
151
+ document.operations = initialOperations;
152
+ let result = document;
153
+ // if there are operations left without resulting state
154
+ // then replays them
155
+ if (operationsToReplay.length) {
156
+ result = operationsToReplay.reduce((document, operation) => {
157
+ const doc = reducer(document, operation.action, dispatch, {
158
+ ignoreSkipOperations: true,
159
+ checkHashes,
160
+ replayOptions: {
161
+ operation,
162
+ },
163
+ });
164
+ return doc;
165
+ }, document);
166
+ }
167
+ // if not then updates the document header according
168
+ // to the latest operation of each scope
169
+ else {
170
+ for (const scopeOperations of Object.values(initialOperations)) {
171
+ if (!scopeOperations) {
172
+ continue;
173
+ }
174
+ const lastOperation = scopeOperations.at(-1);
175
+ if (lastOperation) {
176
+ result = updateHeaderRevision(result, lastOperation.action.scope);
177
+ }
178
+ }
179
+ }
180
+ // if hash generation was skipped then checks if the hash
181
+ // of each scope matches the hash of last operation
182
+ if (!checkHashes) {
183
+ for (const scope of Object.keys(result.state)) {
184
+ for (let i = operationsToReplay.length - 1; i >= 0; i--) {
185
+ const operation = operationsToReplay[i];
186
+ if (operation.action.scope !== scope) {
187
+ continue;
188
+ }
189
+ if (operation.hash !== hashDocumentStateForScope(result, scope)) {
190
+ throw new HashMismatchError(scope, result, operation);
191
+ }
192
+ else {
193
+ break;
194
+ }
195
+ }
196
+ }
197
+ }
198
+ // reuses operation timestamp if provided
199
+ // Initialize with all scopes from both result.operations and input operations
200
+ const allResultScopes = new Set([
201
+ ...Object.keys(result.operations),
202
+ ...Object.keys(operations),
203
+ "global",
204
+ "local",
205
+ ]);
206
+ const initialResultOperations = {};
207
+ for (const scope of allResultScopes) {
208
+ initialResultOperations[scope] = [];
209
+ }
210
+ // Iterate over all scopes (not just result.operations) to preserve empty scopes
211
+ const resultOperations = Array.from(allResultScopes).reduce((acc, scope) => {
212
+ const scopeOps = result.operations[scope] || [];
213
+ return {
214
+ ...acc,
215
+ [scope]: [
216
+ ...scopeOps.map((operation, index) => {
217
+ return {
218
+ ...operation,
219
+ timestamp: operations[scope]?.[index]?.timestampUtcMs ??
220
+ operation.timestampUtcMs,
221
+ };
222
+ }),
223
+ ],
224
+ };
225
+ }, initialResultOperations);
226
+ // gets the last modified timestamp from the latest operation
227
+ const lastModified = header
228
+ ? header.lastModifiedAtUtcIso
229
+ : Object.values(resultOperations).reduce((acc, curr) => {
230
+ if (!curr) {
231
+ return acc;
232
+ }
233
+ const operation = curr.at(-1);
234
+ if (operation) {
235
+ if (operation.timestampUtcMs > acc) {
236
+ return operation.timestampUtcMs;
237
+ }
238
+ }
239
+ return acc;
240
+ }, document.header.lastModifiedAtUtcIso);
241
+ if (header) {
242
+ result.header = {
243
+ ...header,
244
+ revision: result.header.revision,
245
+ lastModifiedAtUtcIso: lastModified,
246
+ };
247
+ }
248
+ return {
249
+ ...result,
250
+ operations: resultOperations,
251
+ };
252
+ }
253
+ export function parseResultingState(state) {
254
+ const stateType = typeof state;
255
+ if (stateType === "string") {
256
+ return JSON.parse(state);
257
+ }
258
+ else if (stateType === "object") {
259
+ return state;
260
+ }
261
+ else {
262
+ throw new Error(`Providing resulting state is of type: ${stateType}`);
263
+ }
264
+ }
2
265
  export var IntegrityIssueType;
3
266
  (function (IntegrityIssueType) {
4
267
  IntegrityIssueType["UNEXPECTED_INDEX"] = "UNEXPECTED_INDEX";
@@ -70,23 +333,34 @@ export function addUndo(sortedOperations) {
70
333
  const latestOperation = operationsCopy[operationsCopy.length - 1];
71
334
  if (!latestOperation)
72
335
  return operationsCopy;
73
- if (latestOperation.type === "NOOP") {
336
+ if (latestOperation.action.type === "NOOP") {
74
337
  operationsCopy.push({
75
338
  ...latestOperation,
76
339
  index: latestOperation.index,
77
- type: "NOOP",
78
340
  skip: nextSkipNumber(sortedOperations),
341
+ action: {
342
+ ...latestOperation.action,
343
+ // TODO: this will break the signature...
344
+ id: generateId(),
345
+ timestampUtcMs: new Date().toISOString(),
346
+ type: "NOOP",
347
+ },
79
348
  });
80
349
  }
81
350
  else {
82
351
  operationsCopy.push({
83
- type: "NOOP",
352
+ id: generateId(),
353
+ timestampUtcMs: new Date().toISOString(),
84
354
  index: latestOperation.index + 1,
85
- timestamp: new Date().toISOString(),
86
- input: {},
87
355
  skip: 1,
88
- scope: latestOperation.scope,
89
356
  hash: latestOperation.hash,
357
+ action: {
358
+ id: generateId(),
359
+ timestampUtcMs: new Date().toISOString(),
360
+ type: "NOOP",
361
+ input: {},
362
+ scope: latestOperation.action.scope,
363
+ },
90
364
  });
91
365
  }
92
366
  return operationsCopy;
@@ -106,8 +380,8 @@ export function sortOperations(operations) {
106
380
  // merge => [0:0, 1:0, 6:4, 7:0, 8:0, 9:0, 10:0, 11:0]
107
381
  export function reshuffleByTimestamp(startIndex, opsA, opsB) {
108
382
  return [...opsA, ...opsB]
109
- .sort((a, b) => new Date(a.timestamp || "").getTime() -
110
- new Date(b.timestamp || "").getTime())
383
+ .sort((a, b) => new Date(a.timestampUtcMs || "").getTime() -
384
+ new Date(b.timestampUtcMs || "").getTime())
111
385
  .map((op, i) => ({
112
386
  ...op,
113
387
  index: startIndex.index + i,
@@ -116,8 +390,8 @@ export function reshuffleByTimestamp(startIndex, opsA, opsB) {
116
390
  }
117
391
  export function reshuffleByTimestampAndIndex(startIndex, opsA, opsB) {
118
392
  return [...opsA, ...opsB]
119
- .sort((a, b) => new Date(a.timestamp || "").getTime() -
120
- new Date(b.timestamp || "").getTime())
393
+ .sort((a, b) => new Date(a.timestampUtcMs || "").getTime() -
394
+ new Date(b.timestampUtcMs || "").getTime())
121
395
  .sort((a, b) => a.index - b.index)
122
396
  .map((op, i) => ({
123
397
  ...op,
@@ -127,7 +401,23 @@ export function reshuffleByTimestampAndIndex(startIndex, opsA, opsB) {
127
401
  }
128
402
  // TODO: implement better operation equality function
129
403
  export function operationsAreEqual(op1, op2) {
130
- return stringify(op1) === stringify(op2);
404
+ const a = op1;
405
+ const b = op2;
406
+ const aComparable = {
407
+ index: a.index,
408
+ skip: a.skip,
409
+ type: a.type ?? null,
410
+ scope: a.scope ?? null,
411
+ input: a.input ?? null,
412
+ };
413
+ const bComparable = {
414
+ index: b.index,
415
+ skip: b.skip,
416
+ type: b.type ?? null,
417
+ scope: b.scope ?? null,
418
+ input: b.input ?? null,
419
+ };
420
+ return stringify(aComparable) === stringify(bComparable);
131
421
  }
132
422
  // [T0:0 T1:0 T2:0 T3:0] + [B4:0 B5:0] = [T0:0 T1:0 T2:0 T3:0 B4:0 B5:0]
133
423
  // [T0:0 T1:0 T2:0 T3:0] + [B3:0 B4:0] = [T0:0 T1:0 T2:0 B3:0 B4:0]
@@ -272,10 +562,10 @@ export function checkOperationsIntegrity(operations) {
272
562
  }
273
563
  export function groupOperationsByScope(operations) {
274
564
  const result = operations.reduce((acc, operation) => {
275
- if (!acc[operation.scope]) {
276
- acc[operation.scope] = [];
565
+ if (!acc[operation.action.scope]) {
566
+ acc[operation.action.scope] = [];
277
567
  }
278
- acc[operation.scope]?.push(operation);
568
+ acc[operation.action.scope]?.push(operation);
279
569
  return acc;
280
570
  }, {});
281
571
  return result;
@@ -325,14 +615,14 @@ export function prepareOperations(operationsHistory, newOperations) {
325
615
  export function removeExistingOperations(newOperations, operationsHistory) {
326
616
  return newOperations.filter((newOperation) => {
327
617
  return !operationsHistory.some((historyOperation) => {
328
- return ((newOperation.type === "NOOP" &&
618
+ return ((newOperation.action.type === "NOOP" &&
329
619
  newOperation.skip === 0 &&
330
620
  newOperation.index === historyOperation.index) ||
331
621
  (newOperation.index === historyOperation.index &&
332
622
  newOperation.skip === historyOperation.skip &&
333
- newOperation.scope === historyOperation.scope &&
623
+ newOperation.action.scope === historyOperation.action.scope &&
334
624
  newOperation.hash === historyOperation.hash &&
335
- newOperation.type === historyOperation.type));
625
+ newOperation.action.type === historyOperation.action.type));
336
626
  });
337
627
  });
338
628
  }
@@ -360,6 +650,9 @@ export function skipHeaderOperations(operations, skipHeaderOperation) {
360
650
  export function garbageCollectDocumentOperations(documentOperations) {
361
651
  const clearedOperations = Object.entries(documentOperations).reduce((acc, entry) => {
362
652
  const [scope, ops] = entry;
653
+ if (!ops) {
654
+ return acc;
655
+ }
363
656
  return {
364
657
  ...acc,
365
658
  [scope]: garbageCollect(sortOperations(ops)),
@@ -388,13 +681,18 @@ export function filterDocumentOperationsResultingState(documentOperations) {
388
681
  return {};
389
682
  }
390
683
  const entries = Object.entries(documentOperations);
391
- return entries.reduce((acc, [scope, operations]) => ({
392
- ...acc,
393
- [scope]: operations.map((op) => {
394
- const { resultingState, ...restProps } = op;
395
- return restProps;
396
- }),
397
- }), {});
684
+ return entries.reduce((acc, [scope, operations]) => {
685
+ if (!operations) {
686
+ return acc;
687
+ }
688
+ return {
689
+ ...acc,
690
+ [scope]: operations.map((op) => {
691
+ const { resultingState, ...restProps } = op;
692
+ return restProps;
693
+ }),
694
+ };
695
+ }, {});
398
696
  }
399
697
  /**
400
698
  * Calculates the difference between two arrays of operations.
@@ -408,4 +706,44 @@ export function filterDocumentOperationsResultingState(documentOperations) {
408
706
  export function diffOperations(clearedOperationsA, clearedOperationsB) {
409
707
  return clearedOperationsA.filter((operationA) => !clearedOperationsB.some((operationB) => operationA.index === operationB.index));
410
708
  }
411
- //# sourceMappingURL=document-helpers.js.map
709
+ // it's operations, falling back to the initial state
710
+ export function getDocumentLastModified(document) {
711
+ const sortedOperations = sortOperations(Object.values(document.operations).flatMap((ops) => ops || []));
712
+ return (sortedOperations.at(-1)?.timestampUtcMs ||
713
+ document.header.lastModifiedAtUtcIso);
714
+ }
715
+ /**
716
+ * Gets the next revision number based on the provided scope.
717
+ *
718
+ * @param state The current state of the document.
719
+ * @param scope The scope of the operation.
720
+ * @returns The next revision number.
721
+ */
722
+ function getNextRevision(document, scope) {
723
+ const scopeOperations = document.operations[scope];
724
+ const latestOperationIndex = scopeOperations?.at(-1)?.index ?? -1;
725
+ return (latestOperationIndex ?? -1) + 1;
726
+ }
727
+ /**
728
+ * Updates the document header with the latest revision number and
729
+ * date of last modification.
730
+ *
731
+ * @param state The current state of the document.
732
+ * @param operation The action being applied to the document.
733
+ * @returns The updated document state.
734
+ */
735
+ export function updateHeaderRevision(document, scope) {
736
+ const header = {
737
+ ...document.header,
738
+ revision: {
739
+ ...document.header.revision,
740
+ [scope]: getNextRevision(document, scope),
741
+ },
742
+ lastModifiedAtUtcIso: getDocumentLastModified(document),
743
+ };
744
+ return {
745
+ ...document,
746
+ header,
747
+ };
748
+ }
749
+ //# sourceMappingURL=documents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documents.js","sourceRoot":"","sources":["../../../src/core/documents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { ZodIssue } from "zod";
2
+ import type { Operation, PHDocument } from "./ph-types.js";
3
+ export declare const FileSystemError: Error;
4
+ export declare class InvalidActionInputError extends Error {
5
+ data: unknown;
6
+ constructor(data: unknown);
7
+ }
8
+ export declare class InvalidActionInputZodError extends InvalidActionInputError {
9
+ issues: ZodIssue[];
10
+ constructor(issues: ZodIssue[]);
11
+ }
12
+ export declare class HashMismatchError extends Error {
13
+ protected _scope: string;
14
+ protected _document: PHDocument;
15
+ protected _operation: Operation;
16
+ constructor(scope: string, document: PHDocument, operation: Operation);
17
+ get document(): PHDocument;
18
+ get scope(): string;
19
+ get operation(): Operation;
20
+ }
21
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/core/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3D,eAAO,MAAM,eAAe,OAA0C,CAAC;AAEvE,qBAAa,uBAAwB,SAAQ,KAAK;IACzC,IAAI,EAAE,OAAO,CAAC;gBACT,IAAI,EAAE,OAAO;CAO1B;AAED,qBAAa,0BAA2B,SAAQ,uBAAuB;IAC9D,MAAM,EAAE,QAAQ,EAAE,CAAC;gBAEd,MAAM,EAAE,QAAQ,EAAE;CAK/B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAChC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC;gBAEpB,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS;IAerE,IAAI,QAAQ,eAEX;IAED,IAAI,KAAK,WAER;IAED,IAAI,SAAS,cAEZ;CACF"}
@@ -0,0 +1,47 @@
1
+ export const FileSystemError = new Error("File system not available.");
2
+ export class InvalidActionInputError extends Error {
3
+ data;
4
+ constructor(data) {
5
+ super();
6
+ this.name = "InvalidActionInputError";
7
+ this.data = data;
8
+ this.message =
9
+ this.message || `Invalid action input: ${JSON.stringify(data, null, 2)}`;
10
+ }
11
+ }
12
+ export class InvalidActionInputZodError extends InvalidActionInputError {
13
+ issues;
14
+ constructor(issues) {
15
+ super(issues);
16
+ this.issues = issues;
17
+ this.name = "InvalidActionInputZodError";
18
+ }
19
+ }
20
+ export class HashMismatchError extends Error {
21
+ _scope;
22
+ _document;
23
+ _operation;
24
+ constructor(scope, document, operation) {
25
+ super();
26
+ this.name = "HashMismatchError";
27
+ this._document = document;
28
+ this._scope = scope;
29
+ this._operation = operation;
30
+ this.message = JSON.stringify({
31
+ error: `Hash mismatch on document ${document.header.id}, scope ${scope}, index ${operation.index}`,
32
+ document,
33
+ scope,
34
+ operation,
35
+ });
36
+ }
37
+ get document() {
38
+ return this._document;
39
+ }
40
+ get scope() {
41
+ return this._scope;
42
+ }
43
+ get operation() {
44
+ return this._operation;
45
+ }
46
+ }
47
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/core/errors.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AAEvE,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IACzC,IAAI,CAAU;IACrB,YAAY,IAAa;QACvB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO;YACV,IAAI,CAAC,OAAO,IAAI,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IAC7E,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,uBAAuB;IAC9D,MAAM,CAAa;IAE1B,YAAY,MAAkB;QAC5B,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAChC,MAAM,CAAS;IACf,SAAS,CAAa;IACtB,UAAU,CAAY;IAEhC,YAAY,KAAa,EAAE,QAAoB,EAAE,SAAoB;QACnE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YAC5B,KAAK,EAAE,6BAA6B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,WAAW,SAAS,CAAC,KAAK,EAAE;YAClG,QAAQ;YACR,KAAK;YACL,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ import JSZip from "jszip";
2
+ import type { PHBaseState, PHDocument } from "./ph-types.js";
3
+ import type { FileInput, Reducer, ReplayDocumentOptions } from "./types.js";
4
+ export declare function writeFileBrowser(path: string, name: string, stream: Uint8Array): Promise<string>;
5
+ export declare function readFileBrowser(path: string): void;
6
+ export declare function fetchFileBrowser(url: string): Promise<{
7
+ data: Buffer;
8
+ mimeType?: string;
9
+ }>;
10
+ export declare const getFileBrowser: (file: string) => Promise<void>;
11
+ export declare function createZip(document: PHDocument): JSZip;
12
+ export declare function baseSaveToFileHandle(document: PHDocument, input: FileSystemFileHandle): Promise<void>;
13
+ export declare function baseLoadFromInput<TState extends PHBaseState>(input: FileInput, reducer: Reducer<TState>, options?: ReplayDocumentOptions): Promise<PHDocument<TState>>;
14
+ //# sourceMappingURL=files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/core/files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,KAAK,EAEV,WAAW,EACX,UAAU,EAEX,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAG5E,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,QAE3C;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAE9C;AAED,eAAO,MAAM,cAAc,GAAU,MAAM,MAAM,kBAEhD,CAAC;AAEF,wBAAgB,SAAS,CAAC,QAAQ,EAAE,UAAU,SAkB7C;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,UAAU,EACpB,KAAK,EAAE,oBAAoB,iBAO5B;AAED,wBAAsB,iBAAiB,CAAC,MAAM,SAAS,WAAW,EAChE,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EACxB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAI7B"}