document-drive 6.0.0-dev.105 → 6.0.0-dev.107

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 (564) hide show
  1. package/dist/chunk-CX61OkwL.mjs +16 -0
  2. package/dist/index-HOJm2mt2.d.mts +205 -0
  3. package/dist/index-HOJm2mt2.d.mts.map +1 -0
  4. package/dist/index.d.ts +1944 -1
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +5170 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/storage/filesystem.d.mts +49 -0
  9. package/dist/storage/filesystem.d.mts.map +1 -0
  10. package/dist/storage/filesystem.mjs +371 -0
  11. package/dist/storage/filesystem.mjs.map +1 -0
  12. package/dist/storage/prisma.d.mts +11508 -0
  13. package/dist/storage/prisma.d.mts.map +1 -0
  14. package/dist/storage/prisma.mjs +7582 -0
  15. package/dist/storage/prisma.mjs.map +1 -0
  16. package/dist/utils-BI7cwVSp.mjs +74 -0
  17. package/dist/utils-BI7cwVSp.mjs.map +1 -0
  18. package/package.json +21 -38
  19. package/dist/prisma/schema.prisma +0 -93
  20. package/dist/src/cache/index.d.ts +0 -4
  21. package/dist/src/cache/index.d.ts.map +0 -1
  22. package/dist/src/cache/index.js +0 -4
  23. package/dist/src/cache/index.js.map +0 -1
  24. package/dist/src/cache/lru.d.ts +0 -22
  25. package/dist/src/cache/lru.d.ts.map +0 -1
  26. package/dist/src/cache/lru.js +0 -40
  27. package/dist/src/cache/lru.js.map +0 -1
  28. package/dist/src/cache/memory.d.ts +0 -27
  29. package/dist/src/cache/memory.d.ts.map +0 -1
  30. package/dist/src/cache/memory.js +0 -104
  31. package/dist/src/cache/memory.js.map +0 -1
  32. package/dist/src/cache/redis.d.ts +0 -22
  33. package/dist/src/cache/redis.d.ts.map +0 -1
  34. package/dist/src/cache/redis.js +0 -91
  35. package/dist/src/cache/redis.js.map +0 -1
  36. package/dist/src/cache/types.d.ts +0 -37
  37. package/dist/src/cache/types.d.ts.map +0 -1
  38. package/dist/src/cache/types.js +0 -2
  39. package/dist/src/cache/types.js.map +0 -1
  40. package/dist/src/cache/util.d.ts +0 -3
  41. package/dist/src/cache/util.d.ts.map +0 -1
  42. package/dist/src/cache/util.js +0 -16
  43. package/dist/src/cache/util.js.map +0 -1
  44. package/dist/src/drive-document-model/constants.d.ts +0 -2
  45. package/dist/src/drive-document-model/constants.d.ts.map +0 -1
  46. package/dist/src/drive-document-model/constants.js +0 -2
  47. package/dist/src/drive-document-model/constants.js.map +0 -1
  48. package/dist/src/drive-document-model/gen/creators.d.ts +0 -3
  49. package/dist/src/drive-document-model/gen/creators.d.ts.map +0 -1
  50. package/dist/src/drive-document-model/gen/creators.js +0 -3
  51. package/dist/src/drive-document-model/gen/creators.js.map +0 -1
  52. package/dist/src/drive-document-model/gen/document-model.d.ts +0 -3
  53. package/dist/src/drive-document-model/gen/document-model.d.ts.map +0 -1
  54. package/dist/src/drive-document-model/gen/document-model.js +0 -210
  55. package/dist/src/drive-document-model/gen/document-model.js.map +0 -1
  56. package/dist/src/drive-document-model/gen/document-schema.d.ts +0 -68
  57. package/dist/src/drive-document-model/gen/document-schema.d.ts.map +0 -1
  58. package/dist/src/drive-document-model/gen/document-schema.js +0 -35
  59. package/dist/src/drive-document-model/gen/document-schema.js.map +0 -1
  60. package/dist/src/drive-document-model/gen/document-type.d.ts +0 -2
  61. package/dist/src/drive-document-model/gen/document-type.d.ts.map +0 -1
  62. package/dist/src/drive-document-model/gen/document-type.js +0 -2
  63. package/dist/src/drive-document-model/gen/document-type.js.map +0 -1
  64. package/dist/src/drive-document-model/gen/drive/actions.d.ts +0 -46
  65. package/dist/src/drive-document-model/gen/drive/actions.d.ts.map +0 -1
  66. package/dist/src/drive-document-model/gen/drive/actions.js +0 -2
  67. package/dist/src/drive-document-model/gen/drive/actions.js.map +0 -1
  68. package/dist/src/drive-document-model/gen/drive/creators.d.ts +0 -10
  69. package/dist/src/drive-document-model/gen/drive/creators.d.ts.map +0 -1
  70. package/dist/src/drive-document-model/gen/drive/creators.js +0 -11
  71. package/dist/src/drive-document-model/gen/drive/creators.js.map +0 -1
  72. package/dist/src/drive-document-model/gen/drive/error.d.ts +0 -2
  73. package/dist/src/drive-document-model/gen/drive/error.d.ts.map +0 -1
  74. package/dist/src/drive-document-model/gen/drive/error.js +0 -2
  75. package/dist/src/drive-document-model/gen/drive/error.js.map +0 -1
  76. package/dist/src/drive-document-model/gen/drive/index.d.ts +0 -2
  77. package/dist/src/drive-document-model/gen/drive/index.d.ts.map +0 -1
  78. package/dist/src/drive-document-model/gen/drive/index.js +0 -2
  79. package/dist/src/drive-document-model/gen/drive/index.js.map +0 -1
  80. package/dist/src/drive-document-model/gen/drive/types.d.ts +0 -2
  81. package/dist/src/drive-document-model/gen/drive/types.d.ts.map +0 -1
  82. package/dist/src/drive-document-model/gen/drive/types.js +0 -2
  83. package/dist/src/drive-document-model/gen/drive/types.js.map +0 -1
  84. package/dist/src/drive-document-model/gen/index.d.ts +0 -10
  85. package/dist/src/drive-document-model/gen/index.d.ts.map +0 -1
  86. package/dist/src/drive-document-model/gen/index.js +0 -10
  87. package/dist/src/drive-document-model/gen/index.js.map +0 -1
  88. package/dist/src/drive-document-model/gen/node/actions.d.ts +0 -41
  89. package/dist/src/drive-document-model/gen/node/actions.d.ts.map +0 -1
  90. package/dist/src/drive-document-model/gen/node/actions.js +0 -2
  91. package/dist/src/drive-document-model/gen/node/actions.js.map +0 -1
  92. package/dist/src/drive-document-model/gen/node/creators.d.ts +0 -13
  93. package/dist/src/drive-document-model/gen/node/creators.d.ts.map +0 -1
  94. package/dist/src/drive-document-model/gen/node/creators.js +0 -17
  95. package/dist/src/drive-document-model/gen/node/creators.js.map +0 -1
  96. package/dist/src/drive-document-model/gen/node/error.d.ts +0 -2
  97. package/dist/src/drive-document-model/gen/node/error.d.ts.map +0 -1
  98. package/dist/src/drive-document-model/gen/node/error.js +0 -2
  99. package/dist/src/drive-document-model/gen/node/error.js.map +0 -1
  100. package/dist/src/drive-document-model/gen/node/index.d.ts +0 -2
  101. package/dist/src/drive-document-model/gen/node/index.d.ts.map +0 -1
  102. package/dist/src/drive-document-model/gen/node/index.js +0 -2
  103. package/dist/src/drive-document-model/gen/node/index.js.map +0 -1
  104. package/dist/src/drive-document-model/gen/node/types.d.ts +0 -2
  105. package/dist/src/drive-document-model/gen/node/types.d.ts.map +0 -1
  106. package/dist/src/drive-document-model/gen/node/types.js +0 -2
  107. package/dist/src/drive-document-model/gen/node/types.js.map +0 -1
  108. package/dist/src/drive-document-model/gen/ph-factories.d.ts +0 -12
  109. package/dist/src/drive-document-model/gen/ph-factories.d.ts.map +0 -1
  110. package/dist/src/drive-document-model/gen/ph-factories.js +0 -46
  111. package/dist/src/drive-document-model/gen/ph-factories.js.map +0 -1
  112. package/dist/src/drive-document-model/gen/reducer.d.ts +0 -4
  113. package/dist/src/drive-document-model/gen/reducer.d.ts.map +0 -1
  114. package/dist/src/drive-document-model/gen/reducer.js +0 -76
  115. package/dist/src/drive-document-model/gen/reducer.js.map +0 -1
  116. package/dist/src/drive-document-model/gen/schema/index.d.ts +0 -2
  117. package/dist/src/drive-document-model/gen/schema/index.d.ts.map +0 -1
  118. package/dist/src/drive-document-model/gen/schema/index.js +0 -2
  119. package/dist/src/drive-document-model/gen/schema/index.js.map +0 -1
  120. package/dist/src/drive-document-model/gen/schema/types.d.ts +0 -283
  121. package/dist/src/drive-document-model/gen/schema/types.d.ts.map +0 -1
  122. package/dist/src/drive-document-model/gen/schema/types.js +0 -2
  123. package/dist/src/drive-document-model/gen/schema/types.js.map +0 -1
  124. package/dist/src/drive-document-model/gen/schema/zod.d.ts +0 -67
  125. package/dist/src/drive-document-model/gen/schema/zod.d.ts.map +0 -1
  126. package/dist/src/drive-document-model/gen/schema/zod.js +0 -229
  127. package/dist/src/drive-document-model/gen/schema/zod.js.map +0 -1
  128. package/dist/src/drive-document-model/gen/types.d.ts +0 -21
  129. package/dist/src/drive-document-model/gen/types.d.ts.map +0 -1
  130. package/dist/src/drive-document-model/gen/types.js +0 -4
  131. package/dist/src/drive-document-model/gen/types.js.map +0 -1
  132. package/dist/src/drive-document-model/gen/utils.d.ts +0 -13
  133. package/dist/src/drive-document-model/gen/utils.d.ts.map +0 -1
  134. package/dist/src/drive-document-model/gen/utils.js +0 -48
  135. package/dist/src/drive-document-model/gen/utils.js.map +0 -1
  136. package/dist/src/drive-document-model/index.d.ts +0 -5
  137. package/dist/src/drive-document-model/index.d.ts.map +0 -1
  138. package/dist/src/drive-document-model/index.js +0 -5
  139. package/dist/src/drive-document-model/index.js.map +0 -1
  140. package/dist/src/drive-document-model/module.d.ts +0 -3
  141. package/dist/src/drive-document-model/module.d.ts.map +0 -1
  142. package/dist/src/drive-document-model/module.js +0 -24
  143. package/dist/src/drive-document-model/module.js.map +0 -1
  144. package/dist/src/drive-document-model/src/index.d.ts +0 -3
  145. package/dist/src/drive-document-model/src/index.d.ts.map +0 -1
  146. package/dist/src/drive-document-model/src/index.js +0 -3
  147. package/dist/src/drive-document-model/src/index.js.map +0 -1
  148. package/dist/src/drive-document-model/src/reducers/drive.d.ts +0 -8
  149. package/dist/src/drive-document-model/src/reducers/drive.d.ts.map +0 -1
  150. package/dist/src/drive-document-model/src/reducers/drive.js +0 -66
  151. package/dist/src/drive-document-model/src/reducers/drive.js.map +0 -1
  152. package/dist/src/drive-document-model/src/reducers/index.d.ts +0 -3
  153. package/dist/src/drive-document-model/src/reducers/index.d.ts.map +0 -1
  154. package/dist/src/drive-document-model/src/reducers/index.js +0 -3
  155. package/dist/src/drive-document-model/src/reducers/index.js.map +0 -1
  156. package/dist/src/drive-document-model/src/reducers/node.d.ts +0 -8
  157. package/dist/src/drive-document-model/src/reducers/node.d.ts.map +0 -1
  158. package/dist/src/drive-document-model/src/reducers/node.js +0 -187
  159. package/dist/src/drive-document-model/src/reducers/node.js.map +0 -1
  160. package/dist/src/drive-document-model/src/tests/actions.test.d.ts +0 -2
  161. package/dist/src/drive-document-model/src/tests/actions.test.d.ts.map +0 -1
  162. package/dist/src/drive-document-model/src/tests/actions.test.js +0 -197
  163. package/dist/src/drive-document-model/src/tests/actions.test.js.map +0 -1
  164. package/dist/src/drive-document-model/src/tests/base.test.d.ts +0 -2
  165. package/dist/src/drive-document-model/src/tests/base.test.d.ts.map +0 -1
  166. package/dist/src/drive-document-model/src/tests/base.test.js +0 -44
  167. package/dist/src/drive-document-model/src/tests/base.test.js.map +0 -1
  168. package/dist/src/drive-document-model/src/tests/document-model.test.d.ts +0 -6
  169. package/dist/src/drive-document-model/src/tests/document-model.test.d.ts.map +0 -1
  170. package/dist/src/drive-document-model/src/tests/document-model.test.js +0 -19
  171. package/dist/src/drive-document-model/src/tests/document-model.test.js.map +0 -1
  172. package/dist/src/drive-document-model/src/tests/drive.test.d.ts +0 -6
  173. package/dist/src/drive-document-model/src/tests/drive.test.d.ts.map +0 -1
  174. package/dist/src/drive-document-model/src/tests/drive.test.js +0 -38
  175. package/dist/src/drive-document-model/src/tests/drive.test.js.map +0 -1
  176. package/dist/src/drive-document-model/src/tests/generate-mock.d.ts +0 -3
  177. package/dist/src/drive-document-model/src/tests/generate-mock.d.ts.map +0 -1
  178. package/dist/src/drive-document-model/src/tests/generate-mock.js +0 -5
  179. package/dist/src/drive-document-model/src/tests/generate-mock.js.map +0 -1
  180. package/dist/src/drive-document-model/src/tests/node.test.d.ts +0 -6
  181. package/dist/src/drive-document-model/src/tests/node.test.d.ts.map +0 -1
  182. package/dist/src/drive-document-model/src/tests/node.test.js +0 -343
  183. package/dist/src/drive-document-model/src/tests/node.test.js.map +0 -1
  184. package/dist/src/drive-document-model/src/tests/test-factories.d.ts +0 -9
  185. package/dist/src/drive-document-model/src/tests/test-factories.d.ts.map +0 -1
  186. package/dist/src/drive-document-model/src/tests/test-factories.js +0 -17
  187. package/dist/src/drive-document-model/src/tests/test-factories.js.map +0 -1
  188. package/dist/src/drive-document-model/src/tests/utils.test.d.ts +0 -2
  189. package/dist/src/drive-document-model/src/tests/utils.test.d.ts.map +0 -1
  190. package/dist/src/drive-document-model/src/tests/utils.test.js +0 -232
  191. package/dist/src/drive-document-model/src/tests/utils.test.js.map +0 -1
  192. package/dist/src/drive-document-model/src/types.d.ts +0 -8
  193. package/dist/src/drive-document-model/src/types.d.ts.map +0 -1
  194. package/dist/src/drive-document-model/src/types.js +0 -2
  195. package/dist/src/drive-document-model/src/types.js.map +0 -1
  196. package/dist/src/drive-document-model/src/utils.d.ts +0 -23
  197. package/dist/src/drive-document-model/src/utils.d.ts.map +0 -1
  198. package/dist/src/drive-document-model/src/utils.js +0 -102
  199. package/dist/src/drive-document-model/src/utils.js.map +0 -1
  200. package/dist/src/drive-document-model/types.d.ts +0 -10
  201. package/dist/src/drive-document-model/types.d.ts.map +0 -1
  202. package/dist/src/drive-document-model/types.js +0 -3
  203. package/dist/src/drive-document-model/types.js.map +0 -1
  204. package/dist/src/index.d.ts +0 -17
  205. package/dist/src/index.d.ts.map +0 -1
  206. package/dist/src/index.js +0 -17
  207. package/dist/src/index.js.map +0 -1
  208. package/dist/src/processors/index.d.ts +0 -4
  209. package/dist/src/processors/index.d.ts.map +0 -1
  210. package/dist/src/processors/index.js +0 -4
  211. package/dist/src/processors/index.js.map +0 -1
  212. package/dist/src/processors/processor-manager.d.ts +0 -21
  213. package/dist/src/processors/processor-manager.d.ts.map +0 -1
  214. package/dist/src/processors/processor-manager.js +0 -104
  215. package/dist/src/processors/processor-manager.js.map +0 -1
  216. package/dist/src/processors/relational.d.ts +0 -49
  217. package/dist/src/processors/relational.d.ts.map +0 -1
  218. package/dist/src/processors/relational.js +0 -57
  219. package/dist/src/processors/relational.js.map +0 -1
  220. package/dist/src/processors/types.d.ts +0 -94
  221. package/dist/src/processors/types.d.ts.map +0 -1
  222. package/dist/src/processors/types.js +0 -2
  223. package/dist/src/processors/types.js.map +0 -1
  224. package/dist/src/processors/utils.d.ts +0 -29
  225. package/dist/src/processors/utils.d.ts.map +0 -1
  226. package/dist/src/processors/utils.js +0 -72
  227. package/dist/src/processors/utils.js.map +0 -1
  228. package/dist/src/queue/base.d.ts +0 -22
  229. package/dist/src/queue/base.d.ts.map +0 -1
  230. package/dist/src/queue/base.js +0 -54
  231. package/dist/src/queue/base.js.map +0 -1
  232. package/dist/src/queue/event.d.ts +0 -40
  233. package/dist/src/queue/event.d.ts.map +0 -1
  234. package/dist/src/queue/event.js +0 -226
  235. package/dist/src/queue/event.js.map +0 -1
  236. package/dist/src/queue/index.d.ts +0 -5
  237. package/dist/src/queue/index.d.ts.map +0 -1
  238. package/dist/src/queue/index.js +0 -5
  239. package/dist/src/queue/index.js.map +0 -1
  240. package/dist/src/queue/redis.d.ts +0 -2
  241. package/dist/src/queue/redis.d.ts.map +0 -1
  242. package/dist/src/queue/redis.js +0 -123
  243. package/dist/src/queue/redis.js.map +0 -1
  244. package/dist/src/queue/types.d.ts +0 -59
  245. package/dist/src/queue/types.d.ts.map +0 -1
  246. package/dist/src/queue/types.js +0 -2
  247. package/dist/src/queue/types.js.map +0 -1
  248. package/dist/src/queue/utils.d.ts +0 -5
  249. package/dist/src/queue/utils.d.ts.map +0 -1
  250. package/dist/src/queue/utils.js +0 -10
  251. package/dist/src/queue/utils.js.map +0 -1
  252. package/dist/src/read-mode/errors.d.ts +0 -12
  253. package/dist/src/read-mode/errors.d.ts.map +0 -1
  254. package/dist/src/read-mode/errors.js +0 -18
  255. package/dist/src/read-mode/errors.js.map +0 -1
  256. package/dist/src/read-mode/index.d.ts +0 -4
  257. package/dist/src/read-mode/index.d.ts.map +0 -1
  258. package/dist/src/read-mode/index.js +0 -4
  259. package/dist/src/read-mode/index.js.map +0 -1
  260. package/dist/src/read-mode/server.d.ts +0 -3
  261. package/dist/src/read-mode/server.d.ts.map +0 -1
  262. package/dist/src/read-mode/server.js +0 -78
  263. package/dist/src/read-mode/server.js.map +0 -1
  264. package/dist/src/read-mode/service.d.ts +0 -17
  265. package/dist/src/read-mode/service.d.ts.map +0 -1
  266. package/dist/src/read-mode/service.js +0 -119
  267. package/dist/src/read-mode/service.js.map +0 -1
  268. package/dist/src/read-mode/types.d.ts +0 -31
  269. package/dist/src/read-mode/types.d.ts.map +0 -1
  270. package/dist/src/read-mode/types.js +0 -2
  271. package/dist/src/read-mode/types.js.map +0 -1
  272. package/dist/src/server/base-server.d.ts +0 -177
  273. package/dist/src/server/base-server.d.ts.map +0 -1
  274. package/dist/src/server/base-server.js +0 -2000
  275. package/dist/src/server/base-server.js.map +0 -1
  276. package/dist/src/server/builder.d.ts +0 -27
  277. package/dist/src/server/builder.d.ts.map +0 -1
  278. package/dist/src/server/builder.js +0 -97
  279. package/dist/src/server/builder.js.map +0 -1
  280. package/dist/src/server/error.d.ts +0 -34
  281. package/dist/src/server/error.d.ts.map +0 -1
  282. package/dist/src/server/error.js +0 -56
  283. package/dist/src/server/error.js.map +0 -1
  284. package/dist/src/server/event-emitter.d.ts +0 -8
  285. package/dist/src/server/event-emitter.d.ts.map +0 -1
  286. package/dist/src/server/event-emitter.js +0 -11
  287. package/dist/src/server/event-emitter.js.map +0 -1
  288. package/dist/src/server/index.d.ts +0 -10
  289. package/dist/src/server/index.d.ts.map +0 -1
  290. package/dist/src/server/index.js +0 -10
  291. package/dist/src/server/index.js.map +0 -1
  292. package/dist/src/server/listener/constants.d.ts +0 -4
  293. package/dist/src/server/listener/constants.d.ts.map +0 -1
  294. package/dist/src/server/listener/constants.js +0 -4
  295. package/dist/src/server/listener/constants.js.map +0 -1
  296. package/dist/src/server/listener/index.d.ts +0 -4
  297. package/dist/src/server/listener/index.d.ts.map +0 -1
  298. package/dist/src/server/listener/index.js +0 -4
  299. package/dist/src/server/listener/index.js.map +0 -1
  300. package/dist/src/server/listener/listener-manager.d.ts +0 -28
  301. package/dist/src/server/listener/listener-manager.d.ts.map +0 -1
  302. package/dist/src/server/listener/listener-manager.js +0 -415
  303. package/dist/src/server/listener/listener-manager.js.map +0 -1
  304. package/dist/src/server/listener/util.d.ts +0 -2
  305. package/dist/src/server/listener/util.d.ts.map +0 -1
  306. package/dist/src/server/listener/util.js +0 -23
  307. package/dist/src/server/listener/util.js.map +0 -1
  308. package/dist/src/server/sync-manager.d.ts +0 -28
  309. package/dist/src/server/sync-manager.d.ts.map +0 -1
  310. package/dist/src/server/sync-manager.js +0 -222
  311. package/dist/src/server/sync-manager.js.map +0 -1
  312. package/dist/src/server/sync-unit-map.d.ts +0 -116
  313. package/dist/src/server/sync-unit-map.d.ts.map +0 -1
  314. package/dist/src/server/sync-unit-map.js +0 -233
  315. package/dist/src/server/sync-unit-map.js.map +0 -1
  316. package/dist/src/server/transmitter/constants.d.ts +0 -2
  317. package/dist/src/server/transmitter/constants.d.ts.map +0 -1
  318. package/dist/src/server/transmitter/constants.js +0 -2
  319. package/dist/src/server/transmitter/constants.js.map +0 -1
  320. package/dist/src/server/transmitter/factory.d.ts +0 -7
  321. package/dist/src/server/transmitter/factory.d.ts.map +0 -1
  322. package/dist/src/server/transmitter/factory.js +0 -25
  323. package/dist/src/server/transmitter/factory.js.map +0 -1
  324. package/dist/src/server/transmitter/index.d.ts +0 -6
  325. package/dist/src/server/transmitter/index.d.ts.map +0 -1
  326. package/dist/src/server/transmitter/index.js +0 -5
  327. package/dist/src/server/transmitter/index.js.map +0 -1
  328. package/dist/src/server/transmitter/internal.d.ts +0 -12
  329. package/dist/src/server/transmitter/internal.d.ts.map +0 -1
  330. package/dist/src/server/transmitter/internal.js +0 -113
  331. package/dist/src/server/transmitter/internal.js.map +0 -1
  332. package/dist/src/server/transmitter/pull-responder.d.ts +0 -30
  333. package/dist/src/server/transmitter/pull-responder.d.ts.map +0 -1
  334. package/dist/src/server/transmitter/pull-responder.js +0 -543
  335. package/dist/src/server/transmitter/pull-responder.js.map +0 -1
  336. package/dist/src/server/transmitter/switchboard-push.d.ts +0 -11
  337. package/dist/src/server/transmitter/switchboard-push.d.ts.map +0 -1
  338. package/dist/src/server/transmitter/switchboard-push.js +0 -130
  339. package/dist/src/server/transmitter/switchboard-push.js.map +0 -1
  340. package/dist/src/server/transmitter/types.d.ts +0 -53
  341. package/dist/src/server/transmitter/types.d.ts.map +0 -1
  342. package/dist/src/server/transmitter/types.js +0 -2
  343. package/dist/src/server/transmitter/types.js.map +0 -1
  344. package/dist/src/server/types.d.ts +0 -419
  345. package/dist/src/server/types.d.ts.map +0 -1
  346. package/dist/src/server/types.js +0 -10
  347. package/dist/src/server/types.js.map +0 -1
  348. package/dist/src/server/utils.d.ts +0 -19
  349. package/dist/src/server/utils.d.ts.map +0 -1
  350. package/dist/src/server/utils.js +0 -110
  351. package/dist/src/server/utils.js.map +0 -1
  352. package/dist/src/storage/browser.d.ts +0 -52
  353. package/dist/src/storage/browser.d.ts.map +0 -1
  354. package/dist/src/storage/browser.js +0 -430
  355. package/dist/src/storage/browser.js.map +0 -1
  356. package/dist/src/storage/filesystem.d.ts +0 -45
  357. package/dist/src/storage/filesystem.d.ts.map +0 -1
  358. package/dist/src/storage/filesystem.js +0 -457
  359. package/dist/src/storage/filesystem.js.map +0 -1
  360. package/dist/src/storage/index.d.ts +0 -5
  361. package/dist/src/storage/index.d.ts.map +0 -1
  362. package/dist/src/storage/index.js +0 -5
  363. package/dist/src/storage/index.js.map +0 -1
  364. package/dist/src/storage/ipfs.d.ts +0 -2
  365. package/dist/src/storage/ipfs.d.ts.map +0 -1
  366. package/dist/src/storage/ipfs.js +0 -491
  367. package/dist/src/storage/ipfs.js.map +0 -1
  368. package/dist/src/storage/memory.d.ts +0 -42
  369. package/dist/src/storage/memory.d.ts.map +0 -1
  370. package/dist/src/storage/memory.js +0 -355
  371. package/dist/src/storage/memory.js.map +0 -1
  372. package/dist/src/storage/path-encoding.d.ts +0 -21
  373. package/dist/src/storage/path-encoding.d.ts.map +0 -1
  374. package/dist/src/storage/path-encoding.js +0 -53
  375. package/dist/src/storage/path-encoding.js.map +0 -1
  376. package/dist/src/storage/prisma/client/default.d.ts +0 -1
  377. package/dist/src/storage/prisma/client/default.js +0 -1
  378. package/dist/src/storage/prisma/client/edge.d.ts +0 -1
  379. package/dist/src/storage/prisma/client/edge.js +0 -263
  380. package/dist/src/storage/prisma/client/index-browser.js +0 -246
  381. package/dist/src/storage/prisma/client/index.d.ts +0 -10318
  382. package/dist/src/storage/prisma/client/index.js +0 -292
  383. package/dist/src/storage/prisma/client/libquery_engine-darwin-arm64.dylib.node +0 -0
  384. package/dist/src/storage/prisma/client/libquery_engine-debian-openssl-3.0.x.so.node +0 -0
  385. package/dist/src/storage/prisma/client/libquery_engine-linux-musl.so.node +0 -0
  386. package/dist/src/storage/prisma/client/package.json +0 -84
  387. package/dist/src/storage/prisma/client/runtime/edge-esm.js +0 -31
  388. package/dist/src/storage/prisma/client/runtime/edge.js +0 -31
  389. package/dist/src/storage/prisma/client/runtime/index-browser.d.ts +0 -365
  390. package/dist/src/storage/prisma/client/runtime/index-browser.js +0 -13
  391. package/dist/src/storage/prisma/client/runtime/library.d.ts +0 -3273
  392. package/dist/src/storage/prisma/client/runtime/library.js +0 -143
  393. package/dist/src/storage/prisma/client/runtime/react-native.js +0 -80
  394. package/dist/src/storage/prisma/client/runtime/wasm.js +0 -32
  395. package/dist/src/storage/prisma/client/schema.prisma +0 -93
  396. package/dist/src/storage/prisma/client/wasm.d.ts +0 -1
  397. package/dist/src/storage/prisma/client/wasm.js +0 -246
  398. package/dist/src/storage/prisma/factory.d.ts +0 -10
  399. package/dist/src/storage/prisma/factory.d.ts.map +0 -1
  400. package/dist/src/storage/prisma/factory.js +0 -23
  401. package/dist/src/storage/prisma/factory.js.map +0 -1
  402. package/dist/src/storage/prisma/index.d.ts +0 -3
  403. package/dist/src/storage/prisma/index.d.ts.map +0 -1
  404. package/dist/src/storage/prisma/index.js +0 -3
  405. package/dist/src/storage/prisma/index.js.map +0 -1
  406. package/dist/src/storage/prisma/prisma.d.ts +0 -73
  407. package/dist/src/storage/prisma/prisma.d.ts.map +0 -1
  408. package/dist/src/storage/prisma/prisma.js +0 -760
  409. package/dist/src/storage/prisma/prisma.js.map +0 -1
  410. package/dist/src/storage/types.d.ts +0 -187
  411. package/dist/src/storage/types.d.ts.map +0 -1
  412. package/dist/src/storage/types.js +0 -2
  413. package/dist/src/storage/types.js.map +0 -1
  414. package/dist/src/storage/utils.d.ts +0 -6
  415. package/dist/src/storage/utils.d.ts.map +0 -1
  416. package/dist/src/storage/utils.js +0 -33
  417. package/dist/src/storage/utils.js.map +0 -1
  418. package/dist/src/utils/default-drives-manager.d.ts +0 -18
  419. package/dist/src/utils/default-drives-manager.d.ts.map +0 -1
  420. package/dist/src/utils/default-drives-manager.js +0 -208
  421. package/dist/src/utils/default-drives-manager.js.map +0 -1
  422. package/dist/src/utils/errors.d.ts +0 -5
  423. package/dist/src/utils/errors.d.ts.map +0 -1
  424. package/dist/src/utils/errors.js +0 -10
  425. package/dist/src/utils/errors.js.map +0 -1
  426. package/dist/src/utils/gql-transformations.d.ts +0 -32
  427. package/dist/src/utils/gql-transformations.d.ts.map +0 -1
  428. package/dist/src/utils/gql-transformations.js +0 -39
  429. package/dist/src/utils/gql-transformations.js.map +0 -1
  430. package/dist/src/utils/graphql.d.ts +0 -13
  431. package/dist/src/utils/graphql.d.ts.map +0 -1
  432. package/dist/src/utils/graphql.js +0 -196
  433. package/dist/src/utils/graphql.js.map +0 -1
  434. package/dist/src/utils/index.d.ts +0 -9
  435. package/dist/src/utils/index.d.ts.map +0 -1
  436. package/dist/src/utils/index.js +0 -9
  437. package/dist/src/utils/index.js.map +0 -1
  438. package/dist/src/utils/logger.d.ts +0 -3
  439. package/dist/src/utils/logger.d.ts.map +0 -1
  440. package/dist/src/utils/logger.js +0 -2
  441. package/dist/src/utils/logger.js.map +0 -1
  442. package/dist/src/utils/migrations.d.ts +0 -4
  443. package/dist/src/utils/migrations.d.ts.map +0 -1
  444. package/dist/src/utils/migrations.js +0 -112
  445. package/dist/src/utils/migrations.js.map +0 -1
  446. package/dist/src/utils/misc.d.ts +0 -21
  447. package/dist/src/utils/misc.d.ts.map +0 -1
  448. package/dist/src/utils/misc.js +0 -55
  449. package/dist/src/utils/misc.js.map +0 -1
  450. package/dist/src/utils/run-asap.d.ts +0 -8
  451. package/dist/src/utils/run-asap.d.ts.map +0 -1
  452. package/dist/src/utils/run-asap.js +0 -120
  453. package/dist/src/utils/run-asap.js.map +0 -1
  454. package/dist/src/utils/test.d.ts +0 -63
  455. package/dist/src/utils/test.d.ts.map +0 -1
  456. package/dist/src/utils/test.js +0 -161
  457. package/dist/src/utils/test.js.map +0 -1
  458. package/dist/src/utils/types.d.ts +0 -44
  459. package/dist/src/utils/types.d.ts.map +0 -1
  460. package/dist/src/utils/types.js +0 -2
  461. package/dist/src/utils/types.js.map +0 -1
  462. package/dist/test/benchmarks/getDrive.json +0 -10
  463. package/dist/test/benchmarks/processOperations.bench.d.ts +0 -2
  464. package/dist/test/benchmarks/processOperations.bench.d.ts.map +0 -1
  465. package/dist/test/benchmarks/processOperations.bench.js +0 -148
  466. package/dist/test/benchmarks/processOperations.bench.js.map +0 -1
  467. package/dist/test/benchmarks/queue.bench.d.ts +0 -2
  468. package/dist/test/benchmarks/queue.bench.d.ts.map +0 -1
  469. package/dist/test/benchmarks/queue.bench.js +0 -55
  470. package/dist/test/benchmarks/queue.bench.js.map +0 -1
  471. package/dist/test/benchmarks/strands.small.json +0 -37085
  472. package/dist/test/cache.test.d.ts +0 -2
  473. package/dist/test/cache.test.d.ts.map +0 -1
  474. package/dist/test/cache.test.js +0 -276
  475. package/dist/test/cache.test.js.map +0 -1
  476. package/dist/test/default-remote-drives.test.d.ts +0 -2
  477. package/dist/test/default-remote-drives.test.d.ts.map +0 -1
  478. package/dist/test/default-remote-drives.test.js +0 -445
  479. package/dist/test/default-remote-drives.test.js.map +0 -1
  480. package/dist/test/drive-operations.test.d.ts +0 -2
  481. package/dist/test/drive-operations.test.d.ts.map +0 -1
  482. package/dist/test/drive-operations.test.js +0 -134
  483. package/dist/test/drive-operations.test.js.map +0 -1
  484. package/dist/test/dual-action-create.test.d.ts +0 -2
  485. package/dist/test/dual-action-create.test.d.ts.map +0 -1
  486. package/dist/test/dual-action-create.test.js +0 -187
  487. package/dist/test/dual-action-create.test.js.map +0 -1
  488. package/dist/test/dual-action-migration.test.d.ts +0 -2
  489. package/dist/test/dual-action-migration.test.d.ts.map +0 -1
  490. package/dist/test/dual-action-migration.test.js +0 -348
  491. package/dist/test/dual-action-migration.test.js.map +0 -1
  492. package/dist/test/graphql.test.d.ts +0 -2
  493. package/dist/test/graphql.test.d.ts.map +0 -1
  494. package/dist/test/graphql.test.js +0 -9
  495. package/dist/test/graphql.test.js.map +0 -1
  496. package/dist/test/internal-listener.test.d.ts +0 -2
  497. package/dist/test/internal-listener.test.d.ts.map +0 -1
  498. package/dist/test/internal-listener.test.js +0 -262
  499. package/dist/test/internal-listener.test.js.map +0 -1
  500. package/dist/test/path-encoding.test.d.ts +0 -2
  501. package/dist/test/path-encoding.test.d.ts.map +0 -1
  502. package/dist/test/path-encoding.test.js +0 -116
  503. package/dist/test/path-encoding.test.js.map +0 -1
  504. package/dist/test/queue.test.d.ts +0 -2
  505. package/dist/test/queue.test.d.ts.map +0 -1
  506. package/dist/test/queue.test.js +0 -325
  507. package/dist/test/queue.test.js.map +0 -1
  508. package/dist/test/reactor.test.d.ts +0 -2
  509. package/dist/test/reactor.test.d.ts.map +0 -1
  510. package/dist/test/reactor.test.js +0 -32
  511. package/dist/test/reactor.test.js.map +0 -1
  512. package/dist/test/read-mode.test.d.ts +0 -2
  513. package/dist/test/read-mode.test.d.ts.map +0 -1
  514. package/dist/test/read-mode.test.js +0 -569
  515. package/dist/test/read-mode.test.js.map +0 -1
  516. package/dist/test/server/driveOperationsConflictResolution.test.d.ts +0 -2
  517. package/dist/test/server/driveOperationsConflictResolution.test.d.ts.map +0 -1
  518. package/dist/test/server/driveOperationsConflictResolution.test.js +0 -486
  519. package/dist/test/server/driveOperationsConflictResolution.test.js.map +0 -1
  520. package/dist/test/server/mergeOperations.test.d.ts +0 -2
  521. package/dist/test/server/mergeOperations.test.d.ts.map +0 -1
  522. package/dist/test/server/mergeOperations.test.js +0 -131
  523. package/dist/test/server/mergeOperations.test.js.map +0 -1
  524. package/dist/test/server/processOperations.test.d.ts +0 -2
  525. package/dist/test/server/processOperations.test.d.ts.map +0 -1
  526. package/dist/test/server/processOperations.test.js +0 -392
  527. package/dist/test/server/processOperations.test.js.map +0 -1
  528. package/dist/test/server.test.d.ts +0 -2
  529. package/dist/test/server.test.d.ts.map +0 -1
  530. package/dist/test/server.test.js +0 -957
  531. package/dist/test/server.test.js.map +0 -1
  532. package/dist/test/signature-migration.test.d.ts +0 -2
  533. package/dist/test/signature-migration.test.d.ts.map +0 -1
  534. package/dist/test/signature-migration.test.js +0 -241
  535. package/dist/test/signature-migration.test.js.map +0 -1
  536. package/dist/test/storage.test.d.ts +0 -2
  537. package/dist/test/storage.test.d.ts.map +0 -1
  538. package/dist/test/storage.test.js +0 -457
  539. package/dist/test/storage.test.js.map +0 -1
  540. package/dist/test/switchboard-push-listener.test.d.ts +0 -2
  541. package/dist/test/switchboard-push-listener.test.d.ts.map +0 -1
  542. package/dist/test/switchboard-push-listener.test.js +0 -133
  543. package/dist/test/switchboard-push-listener.test.js.map +0 -1
  544. package/dist/test/sync-manager.test.d.ts +0 -2
  545. package/dist/test/sync-manager.test.d.ts.map +0 -1
  546. package/dist/test/sync-manager.test.js +0 -354
  547. package/dist/test/sync-manager.test.js.map +0 -1
  548. package/dist/test/undo-redo-clipboard.test.d.ts +0 -2
  549. package/dist/test/undo-redo-clipboard.test.d.ts.map +0 -1
  550. package/dist/test/undo-redo-clipboard.test.js +0 -108
  551. package/dist/test/undo-redo-clipboard.test.js.map +0 -1
  552. package/dist/test/utils.test.d.ts +0 -2
  553. package/dist/test/utils.test.d.ts.map +0 -1
  554. package/dist/test/utils.test.js +0 -86
  555. package/dist/test/utils.test.js.map +0 -1
  556. package/dist/test/vitest-setup.d.ts +0 -2
  557. package/dist/test/vitest-setup.d.ts.map +0 -1
  558. package/dist/test/vitest-setup.js +0 -5
  559. package/dist/test/vitest-setup.js.map +0 -1
  560. package/dist/tsconfig.tsbuildinfo +0 -1
  561. package/dist/vitest.config.d.ts +0 -3
  562. package/dist/vitest.config.d.ts.map +0 -1
  563. package/dist/vitest.config.js +0 -28
  564. package/dist/vitest.config.js.map +0 -1
@@ -1,10 +0,0 @@
1
- export var ServerTransmitterType;
2
- (function (ServerTransmitterType) {
3
- ServerTransmitterType[ServerTransmitterType["Internal"] = 0] = "Internal";
4
- ServerTransmitterType[ServerTransmitterType["SwitchboardPush"] = 1] = "SwitchboardPush";
5
- ServerTransmitterType[ServerTransmitterType["PullResponder"] = 2] = "PullResponder";
6
- ServerTransmitterType[ServerTransmitterType["SecureConnect"] = 3] = "SecureConnect";
7
- ServerTransmitterType[ServerTransmitterType["MatrixConnect"] = 4] = "MatrixConnect";
8
- ServerTransmitterType[ServerTransmitterType["RESTWebhook"] = 5] = "RESTWebhook";
9
- })(ServerTransmitterType || (ServerTransmitterType = {}));
10
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/server/types.ts"],"names":[],"mappings":"AAsIA,MAAM,CAAN,IAAY,qBAOX;AAPD,WAAY,qBAAqB;IAC/B,yEAAQ,CAAA;IACR,uFAAe,CAAA;IACf,mFAAa,CAAA;IACb,mFAAa,CAAA;IACb,mFAAa,CAAA;IACb,+EAAW,CAAA;AACb,CAAC,EAPW,qBAAqB,KAArB,qBAAqB,QAOhC"}
@@ -1,19 +0,0 @@
1
- import type { CreateDocumentInput, DocumentDriveDocument, RevisionsFilter, SharingType, StrandUpdate, SynchronizationUnitId } from "document-drive";
2
- import type { DocumentOperations, PHDocument } from "document-model";
3
- export declare function buildRevisionsFilter(strands: StrandUpdate[], driveId: string, documentId: string): RevisionsFilter;
4
- export declare function buildDocumentRevisionsFilter(document: PHDocument): RevisionsFilter;
5
- export declare function filterOperationsByRevision(operations: DocumentOperations, revisions?: RevisionsFilter): DocumentOperations;
6
- export declare function isAtRevision(document: PHDocument, revisions?: RevisionsFilter): boolean;
7
- export declare function isAfterRevision(document: PHDocument, revisions?: RevisionsFilter): boolean;
8
- export declare function compareSyncUnits(a: SynchronizationUnitId, b: SynchronizationUnitId): boolean;
9
- export declare function resolveCreateDocumentInput<TDocument extends PHDocument>(input: CreateDocumentInput<TDocument>): {
10
- id: string | undefined;
11
- documentType: string;
12
- document: TDocument | undefined;
13
- };
14
- export declare function resolveCreateDocumentInputId(input: CreateDocumentInput<PHDocument>): string | undefined;
15
- export declare function resolveCreateDocumentInputDocumentType(input: CreateDocumentInput<PHDocument>): string;
16
- export declare function resolveCreateDocumentInputDocument<TDocument extends PHDocument>(input: CreateDocumentInput<TDocument>): TDocument | undefined;
17
- export declare function isSharingType(value: string): value is SharingType;
18
- export declare function getDriveSharingType(drive: DocumentDriveDocument): SharingType;
19
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/server/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,kBAAkB,EAAa,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEhF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,eAAe,CAQjB;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,UAAU,GACnB,eAAe,CAQjB;AAED,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,kBAAkB,EAC9B,SAAS,CAAC,EAAE,eAAe,GAC1B,kBAAkB,CAiBpB;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,UAAU,EACpB,SAAS,CAAC,EAAE,eAAe,GAC1B,OAAO,CAWT;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,UAAU,EACpB,SAAS,CAAC,EAAE,eAAe,GAC1B,OAAO,CAgBT;AAED,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,qBAAqB,EACxB,CAAC,EAAE,qBAAqB,WAOzB;AAED,wBAAgB,0BAA0B,CAAC,SAAS,SAAS,UAAU,EACrE,KAAK,EAAE,mBAAmB,CAAC,SAAS,CAAC;;;;EAOtC;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,mBAAmB,CAAC,UAAU,CAAC,sBAWvC;AAED,wBAAgB,sCAAsC,CACpD,KAAK,EAAE,mBAAmB,CAAC,UAAU,CAAC,UASvC;AAED,wBAAgB,kCAAkC,CAChD,SAAS,SAAS,UAAU,EAC5B,KAAK,EAAE,mBAAmB,CAAC,SAAS,CAAC,yBAEtC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,WAAW,CAEjE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,GAAG,WAAW,CAa7E"}
@@ -1,110 +0,0 @@
1
- export function buildRevisionsFilter(strands, driveId, documentId) {
2
- return strands.reduce((acc, s) => {
3
- if (!(s.driveId === driveId && s.documentId === documentId)) {
4
- return acc;
5
- }
6
- acc[s.scope] = s.operations[s.operations.length - 1]?.index ?? -1;
7
- return acc;
8
- }, {});
9
- }
10
- export function buildDocumentRevisionsFilter(document) {
11
- return Object.entries(document.operations).reduce((acc, [scope, operations]) => {
12
- acc[scope] = operations?.at(-1)?.index ?? -1;
13
- return acc;
14
- }, {});
15
- }
16
- export function filterOperationsByRevision(operations, revisions) {
17
- if (!revisions) {
18
- return operations;
19
- }
20
- return Object.keys(operations).reduce((acc, scope) => {
21
- const revision = revisions[scope];
22
- if (revision !== undefined) {
23
- const scopeOps = operations[scope];
24
- if (scopeOps) {
25
- acc[scope] = scopeOps.filter((op) => op.index <= revision);
26
- }
27
- }
28
- return acc;
29
- }, { global: [], local: [] });
30
- }
31
- export function isAtRevision(document, revisions) {
32
- return (!revisions ||
33
- Object.entries(revisions).find(([scope, revision]) => {
34
- const operation = document.operations[scope]?.at(-1);
35
- if (revision === -1) {
36
- return operation !== undefined;
37
- }
38
- return operation?.index !== revision;
39
- }) === undefined);
40
- }
41
- export function isAfterRevision(document, revisions) {
42
- return (!revisions ||
43
- Object.entries(revisions).every(([scope, revision]) => {
44
- const operation = document.operations[scope]?.at(-1);
45
- if (revision === -1) {
46
- return operation !== undefined;
47
- }
48
- return (operation !== undefined &&
49
- revision !== undefined &&
50
- operation.index > revision);
51
- }));
52
- }
53
- export function compareSyncUnits(a, b) {
54
- return (a.documentId === b.documentId &&
55
- a.scope === b.scope &&
56
- a.branch === b.branch);
57
- }
58
- export function resolveCreateDocumentInput(input) {
59
- return {
60
- id: resolveCreateDocumentInputId(input),
61
- documentType: resolveCreateDocumentInputDocumentType(input),
62
- document: resolveCreateDocumentInputDocument(input),
63
- };
64
- }
65
- export function resolveCreateDocumentInputId(input) {
66
- if ("id" in input) {
67
- return input.id;
68
- }
69
- else if ("header" in input) {
70
- return input.header.id;
71
- }
72
- else if ("document" in input) {
73
- return input.document.header.id;
74
- }
75
- else {
76
- return undefined;
77
- }
78
- }
79
- export function resolveCreateDocumentInputDocumentType(input) {
80
- if ("documentType" in input) {
81
- return input.documentType;
82
- }
83
- else if ("header" in input) {
84
- return input.header.documentType;
85
- }
86
- else {
87
- return input.document.header.documentType;
88
- }
89
- }
90
- export function resolveCreateDocumentInputDocument(input) {
91
- return "document" in input ? input.document : undefined;
92
- }
93
- export function isSharingType(value) {
94
- return ["LOCAL", "CLOUD", "PUBLIC"].includes(value);
95
- }
96
- export function getDriveSharingType(drive) {
97
- if (typeof drive !== "object")
98
- return "LOCAL";
99
- const isReadDrive = "readContext" in drive;
100
- const { sharingType: _sharingType } = !isReadDrive
101
- ? drive.state.local
102
- : { sharingType: "PUBLIC" };
103
- const __sharingType = _sharingType?.toUpperCase();
104
- return !__sharingType ||
105
- __sharingType === "PRIVATE" ||
106
- !isSharingType(__sharingType)
107
- ? "LOCAL"
108
- : __sharingType;
109
- }
110
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/server/utils.ts"],"names":[],"mappings":"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"}
@@ -1,52 +0,0 @@
1
- import type { IDocumentAdminStorage, IDocumentStorage, IDriveOperationStorage, IStorageUnit, IStorageUnitFilter, SynchronizationUnitQuery } from "document-drive";
2
- import type { Operation, PHDocument } from "document-model";
3
- export declare class BrowserStorage implements IDriveOperationStorage, IDocumentStorage, IDocumentAdminStorage {
4
- private logger;
5
- private db;
6
- static DBName: string;
7
- static SEP: string;
8
- static DOCUMENT_KEY: string;
9
- static MANIFEST_KEY: string;
10
- static SLUG_MANIFEST_KEY: string;
11
- constructor(namespace?: string);
12
- findStorageUnitsBy(filter: IStorageUnitFilter, limit: number, cursor?: string): Promise<{
13
- units: IStorageUnit[];
14
- nextCursor?: string;
15
- }>;
16
- resolveIds(slugs: string[], signal?: AbortSignal): Promise<string[]>;
17
- resolveSlugs(ids: string[], signal?: AbortSignal): Promise<string[]>;
18
- clear(): Promise<void>;
19
- exists(documentId: string): Promise<boolean>;
20
- create(document: PHDocument): Promise<void>;
21
- get<TDocument extends PHDocument>(documentId: string): Promise<TDocument>;
22
- getBySlug<TDocument extends PHDocument>(slug: string): Promise<TDocument>;
23
- findByType(documentModelType: string, limit?: number, cursor?: string): Promise<{
24
- documents: string[];
25
- nextCursor: string | undefined;
26
- }>;
27
- delete(documentId: string): Promise<boolean>;
28
- removeChild(parentId: string, childId: string): Promise<boolean>;
29
- addChild(parentId: string, childId: string): Promise<void>;
30
- getChildren(parentId: string): Promise<string[]>;
31
- getParents(childId: string): Promise<string[]>;
32
- private getManifest;
33
- private updateDriveManifest;
34
- private getSlugManifest;
35
- private updateSlugManifest;
36
- addDocumentOperations(id: string, operations: Operation[], document: PHDocument): Promise<void>;
37
- addDriveOperations(id: string, operations: Operation[], document: PHDocument): Promise<void>;
38
- getSynchronizationUnitsRevision(units: SynchronizationUnitQuery[]): Promise<{
39
- documentId: string;
40
- documentType: string;
41
- scope: string;
42
- branch: string;
43
- lastUpdated: string;
44
- revision: number;
45
- }[]>;
46
- migrateOperationSignatures(): Promise<void>;
47
- private migrateDrive;
48
- private migrateDocument;
49
- buildDocumentKey(documentId: string): string;
50
- buildManifestKey(driveId: string): string;
51
- }
52
- //# sourceMappingURL=browser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/storage/browser.ts"],"names":[],"mappings":"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"}
@@ -1,430 +0,0 @@
1
- import { DocumentAlreadyExistsError, DocumentAlreadyExistsReason, DocumentNotFoundError, } from "document-drive/server/error";
2
- import { AbortError } from "document-drive/utils/errors";
3
- import { childLogger } from "document-drive/utils/logger";
4
- import { migrateDocumentOperationSignatures } from "document-drive/utils/migrations";
5
- import { mergeOperations, operationsToRevision, } from "document-drive/utils/misc";
6
- import LocalForage from "localforage";
7
- import { resolveStorageUnitsFilter, setIntersection, setUnion, } from "./utils.js";
8
- export class BrowserStorage {
9
- logger = childLogger(["BrowserStorage"]);
10
- db;
11
- static DBName = "DOCUMENT_DRIVES";
12
- static SEP = ":";
13
- static DOCUMENT_KEY = "DOCUMENT";
14
- static MANIFEST_KEY = "MANIFEST";
15
- static SLUG_MANIFEST_KEY = "SLUG_MANIFEST";
16
- constructor(namespace) {
17
- this.db = LocalForage.ready().then(() => LocalForage.createInstance({
18
- name: namespace
19
- ? `${namespace}:${BrowserStorage.DBName}`
20
- : BrowserStorage.DBName,
21
- }));
22
- }
23
- ////////////////////////////////
24
- // IStorageUnitStorage
25
- ////////////////////////////////
26
- async findStorageUnitsBy(filter, limit, cursor) {
27
- const storageUnits = [];
28
- const { parentId: parentIds, documentId: documentIds, documentModelType: documentTypes, scope: scopes, branch: branches, } = resolveStorageUnitsFilter(filter);
29
- const db = await this.db;
30
- const keys = await db.keys();
31
- const documentKeys = keys
32
- .filter((key) => key.startsWith(`${BrowserStorage.DOCUMENT_KEY}${BrowserStorage.SEP}`))
33
- .map((key) => key.slice(BrowserStorage.DOCUMENT_KEY.length + BrowserStorage.SEP.length));
34
- let documents;
35
- // apply parent id filter
36
- if (parentIds) {
37
- // join children from all parents
38
- const childrenIds = new Set();
39
- for (const parentId of parentIds) {
40
- const ids = await this.getChildren(parentId);
41
- ids.forEach((id) => childrenIds.add(id));
42
- }
43
- documents = setUnion(parentIds, childrenIds);
44
- }
45
- else {
46
- documents = new Set(documentKeys);
47
- }
48
- // apply document id filter
49
- documents = documentIds
50
- ? setIntersection(documentIds, documents)
51
- : documents;
52
- for (const documentId of documents) {
53
- const document = await this.get(documentId).catch(() => null);
54
- // might be a child that has not been synced yet
55
- if (!document)
56
- continue;
57
- // apply document type filter
58
- if (documentTypes && !documentTypes.has(document.header.documentType))
59
- continue;
60
- // For each operation scope in the document
61
- for (const [scope] of Object.entries(document.state)) {
62
- // apply scope filter
63
- if (scopes && !scopes.has(scope))
64
- continue;
65
- // Create storage unit for this document+scope combination
66
- storageUnits.push({
67
- documentId,
68
- documentModelType: document.header.documentType,
69
- scope,
70
- branch: "main", // Default branch
71
- });
72
- }
73
- }
74
- // Handle pagination
75
- let startIndex = 0;
76
- if (cursor) {
77
- const index = storageUnits.findIndex((unit) => unit.documentId === cursor);
78
- if (index !== -1) {
79
- startIndex = index;
80
- }
81
- }
82
- // Calculate the range to return
83
- const endIndex = Math.min(startIndex + limit, storageUnits.length);
84
- const nextCursor = endIndex < storageUnits.length
85
- ? storageUnits[endIndex].documentId
86
- : undefined;
87
- return {
88
- units: storageUnits.slice(startIndex, endIndex),
89
- nextCursor,
90
- };
91
- }
92
- ////////////////////////////////
93
- // IDocumentView
94
- ////////////////////////////////
95
- async resolveIds(slugs, signal) {
96
- const slugManifest = await this.getSlugManifest();
97
- if (signal?.aborted) {
98
- throw new AbortError("Aborted");
99
- }
100
- const ids = [];
101
- for (const slug of slugs) {
102
- const documentId = slugManifest.slugToId[slug];
103
- if (!documentId) {
104
- throw new DocumentNotFoundError(slug);
105
- }
106
- ids.push(documentId);
107
- }
108
- return Promise.resolve(ids);
109
- }
110
- async resolveSlugs(ids, signal) {
111
- const slugManifest = await this.getSlugManifest();
112
- if (signal?.aborted) {
113
- throw new AbortError("Aborted");
114
- }
115
- const slugs = [];
116
- for (const id of ids) {
117
- let found = false;
118
- for (const [slug, documentId] of Object.entries(slugManifest.slugToId)) {
119
- if (documentId === id) {
120
- slugs.push(slug);
121
- found = true;
122
- break;
123
- }
124
- }
125
- if (!found) {
126
- throw new DocumentNotFoundError(id);
127
- }
128
- }
129
- return Promise.resolve(slugs);
130
- }
131
- ////////////////////////////////
132
- // IDocumentAdminStorage
133
- ////////////////////////////////
134
- async clear() {
135
- const db = await this.db;
136
- await db.clear();
137
- }
138
- ////////////////////////////////
139
- // IDocumentStorage
140
- ////////////////////////////////
141
- async exists(documentId) {
142
- const db = await this.db;
143
- const document = await db.getItem(this.buildDocumentKey(documentId));
144
- return !!document;
145
- }
146
- async create(document) {
147
- const documentId = document.header.id;
148
- const db = await this.db;
149
- if (await this.exists(documentId)) {
150
- throw new DocumentAlreadyExistsError(documentId);
151
- }
152
- const slug = document.header.slug && document.header.slug.length > 0
153
- ? document.header.slug
154
- : documentId;
155
- // check if the slug is already taken
156
- const slugManifest = await this.getSlugManifest();
157
- if (slugManifest.slugToId[slug]) {
158
- throw new DocumentAlreadyExistsError(documentId, DocumentAlreadyExistsReason.SLUG);
159
- }
160
- document.header.slug = slug;
161
- await db.setItem(this.buildDocumentKey(documentId), document);
162
- // Update the slug manifest if the document has a slug
163
- if (slug) {
164
- const slugManifest = await this.getSlugManifest();
165
- // check if the slug is already taken
166
- if (slugManifest.slugToId[slug]) {
167
- throw new Error(`Document with slug ${slug} already exists`);
168
- }
169
- slugManifest.slugToId[slug] = documentId;
170
- await this.updateSlugManifest(slugManifest);
171
- }
172
- // temporary: initialize an empty manifest for new drives
173
- if (document.header.documentType === "powerhouse/document-drive") {
174
- this.updateDriveManifest(documentId, { documentIds: [] });
175
- }
176
- }
177
- async get(documentId) {
178
- const db = await this.db;
179
- const document = await db.getItem(this.buildDocumentKey(documentId));
180
- if (!document) {
181
- return Promise.reject(new DocumentNotFoundError(documentId));
182
- }
183
- return document;
184
- }
185
- async getBySlug(slug) {
186
- const slugManifest = await this.getSlugManifest();
187
- const documentId = slugManifest.slugToId[slug];
188
- if (!documentId) {
189
- return Promise.reject(new DocumentNotFoundError(slug));
190
- }
191
- return this.get(documentId);
192
- }
193
- async findByType(documentModelType, limit = 100, cursor) {
194
- const db = await this.db;
195
- const keys = await db.keys();
196
- const documentKeys = keys.filter((key) => key.startsWith(`${BrowserStorage.DOCUMENT_KEY}${BrowserStorage.SEP}`));
197
- // Load documents with matching type and collect their metadata
198
- const documentsAndIds = [];
199
- for (const key of documentKeys) {
200
- const documentId = key.slice(BrowserStorage.DOCUMENT_KEY.length + BrowserStorage.SEP.length);
201
- try {
202
- const document = await db.getItem(key);
203
- if (!document || document.header.documentType !== documentModelType) {
204
- continue;
205
- }
206
- documentsAndIds.push({ id: documentId, document });
207
- }
208
- catch (error) {
209
- continue;
210
- }
211
- }
212
- // Sort by creation date, then by ID
213
- documentsAndIds.sort((a, b) => {
214
- const aDate = new Date(a.document.header.createdAtUtcIso);
215
- const bDate = new Date(b.document.header.createdAtUtcIso);
216
- if (aDate.getTime() === bDate.getTime()) {
217
- return a.id.localeCompare(b.id);
218
- }
219
- return aDate.getTime() - bDate.getTime();
220
- });
221
- // cursor
222
- let startIndex = 0;
223
- if (cursor) {
224
- const index = documentsAndIds.findIndex(({ id }) => id === cursor);
225
- if (index !== -1) {
226
- startIndex = index;
227
- }
228
- }
229
- // count to limit
230
- const endIndex = Math.min(startIndex + limit, documentsAndIds.length);
231
- let nextCursor;
232
- if (endIndex < documentsAndIds.length) {
233
- nextCursor = documentsAndIds[endIndex].id;
234
- }
235
- return {
236
- documents: documentsAndIds
237
- .slice(startIndex, endIndex)
238
- .map(({ id }) => id),
239
- nextCursor,
240
- };
241
- }
242
- async delete(documentId) {
243
- const db = await this.db;
244
- const document = await db.getItem(this.buildDocumentKey(documentId));
245
- if (!document) {
246
- return false;
247
- }
248
- // Remove from slug manifest if it has a slug
249
- const slug = document.header.slug?.length > 0 ? document.header.slug : documentId;
250
- try {
251
- if (slug) {
252
- const slugManifest = await this.getSlugManifest();
253
- if (slugManifest.slugToId[slug] === documentId) {
254
- delete slugManifest.slugToId[slug];
255
- await this.updateSlugManifest(slugManifest);
256
- }
257
- }
258
- }
259
- catch (error) {
260
- // If we can't get the slug, we can't remove it from the manifest
261
- }
262
- // remove from parent manifests
263
- const parents = await this.getParents(documentId);
264
- for (const parent of parents) {
265
- await this.removeChild(parent, documentId);
266
- }
267
- // delete any manifest for this document
268
- await db.removeItem(this.buildManifestKey(documentId));
269
- // finally, delete the specified document
270
- await db.removeItem(this.buildDocumentKey(documentId));
271
- return true;
272
- }
273
- async removeChild(parentId, childId) {
274
- const manifest = await this.getManifest(parentId);
275
- const docIndex = manifest.documentIds.indexOf(childId);
276
- if (docIndex !== -1) {
277
- manifest.documentIds.splice(docIndex, 1);
278
- await this.updateDriveManifest(parentId, manifest);
279
- return true;
280
- }
281
- return false;
282
- }
283
- async addChild(parentId, childId) {
284
- if (parentId === childId) {
285
- throw new Error("Cannot associate a document with itself");
286
- }
287
- // check if the child is a parent of the parent
288
- const children = await this.getChildren(childId);
289
- if (children.includes(parentId)) {
290
- throw new Error("Cannot associate a document with its child");
291
- }
292
- const manifest = await this.getManifest(parentId);
293
- if (!manifest.documentIds.includes(childId)) {
294
- manifest.documentIds.push(childId);
295
- await this.updateDriveManifest(parentId, manifest);
296
- }
297
- }
298
- async getChildren(parentId) {
299
- const manifest = await this.getManifest(parentId);
300
- return manifest.documentIds;
301
- }
302
- async getParents(childId) {
303
- const db = await this.db;
304
- const keys = await db.keys();
305
- const parents = [];
306
- // Find all manifest keys
307
- const manifestKeys = keys.filter((key) => key.startsWith(`${BrowserStorage.MANIFEST_KEY}${BrowserStorage.SEP}`));
308
- // Check each manifest to see if it contains the childId
309
- for (const key of manifestKeys) {
310
- // Extract the driveId from the manifest key
311
- const driveId = key.slice(BrowserStorage.MANIFEST_KEY.length + BrowserStorage.SEP.length);
312
- const manifest = await this.getManifest(driveId);
313
- if (manifest.documentIds.includes(childId)) {
314
- parents.push(driveId);
315
- }
316
- }
317
- return parents;
318
- }
319
- ////////////////////////////////
320
- // IDriveStorage
321
- ////////////////////////////////
322
- async getManifest(driveId) {
323
- const db = await this.db;
324
- const manifest = await db.getItem(this.buildManifestKey(driveId));
325
- return manifest || { documentIds: [] };
326
- }
327
- async updateDriveManifest(driveId, manifest) {
328
- const db = await this.db;
329
- await db.setItem(this.buildManifestKey(driveId), manifest);
330
- }
331
- async getSlugManifest() {
332
- const db = await this.db;
333
- const manifest = await db.getItem(BrowserStorage.SLUG_MANIFEST_KEY);
334
- return manifest || { slugToId: {} };
335
- }
336
- async updateSlugManifest(manifest) {
337
- const db = await this.db;
338
- await db.setItem(BrowserStorage.SLUG_MANIFEST_KEY, manifest);
339
- }
340
- async addDocumentOperations(id, operations, document) {
341
- const existingDocument = await this.get(id);
342
- if (!existingDocument) {
343
- throw new Error(`Document with id ${id} not found`);
344
- }
345
- const mergedOperations = mergeOperations(existingDocument.operations, operations);
346
- const db = await this.db;
347
- await db.setItem(this.buildDocumentKey(id), {
348
- ...existingDocument,
349
- ...document,
350
- operations: mergedOperations,
351
- });
352
- }
353
- async addDriveOperations(id, operations, document) {
354
- const existingDocument = await this.get(id);
355
- const mergedOperations = mergeOperations(existingDocument.operations, operations);
356
- const db = await this.db;
357
- await db.setItem(this.buildDocumentKey(id), {
358
- ...existingDocument,
359
- ...document,
360
- operations: mergedOperations,
361
- });
362
- }
363
- async getSynchronizationUnitsRevision(units) {
364
- const results = await Promise.allSettled(units.map(async (unit) => {
365
- try {
366
- const document = await this.get(unit.documentId);
367
- if (!document?.operations[unit.scope]) {
368
- return undefined;
369
- }
370
- const operations = document.operations[unit.scope];
371
- return {
372
- documentId: unit.documentId,
373
- documentType: unit.documentType,
374
- scope: unit.scope,
375
- branch: unit.branch,
376
- lastUpdated: operations.at(-1)?.timestampUtcMs ??
377
- document.header.createdAtUtcIso,
378
- revision: operations.length > 0 ? operationsToRevision(operations) : 0,
379
- };
380
- }
381
- catch (error) {
382
- this.logger.error("Error getting synchronization units revision: @error", error);
383
- return undefined;
384
- }
385
- }));
386
- return results.reduce((acc, curr) => {
387
- if (curr.status === "fulfilled" && curr.value !== undefined) {
388
- acc.push(curr.value);
389
- }
390
- return acc;
391
- }, []);
392
- }
393
- // migrates all stored operations from legacy signature to signatures array
394
- async migrateOperationSignatures() {
395
- let cursor;
396
- do {
397
- const { documents: drives, nextCursor } = await this.findByType("powerhouse/document-drive", 100, cursor);
398
- for (const drive of drives) {
399
- await this.migrateDrive(drive);
400
- const documents = await this.getChildren(drive);
401
- await Promise.all(documents.map(async (docId) => this.migrateDocument(drive, docId)));
402
- }
403
- cursor = nextCursor;
404
- } while (cursor);
405
- }
406
- async migrateDrive(driveId) {
407
- const drive = await this.get(driveId);
408
- const migratedDrive = migrateDocumentOperationSignatures(drive);
409
- if (migratedDrive !== drive) {
410
- return (await this.db).setItem(this.buildDocumentKey(driveId), migratedDrive);
411
- }
412
- }
413
- async migrateDocument(drive, id) {
414
- const document = await this.get(id);
415
- const migratedDocument = migrateDocumentOperationSignatures(document);
416
- if (migratedDocument !== document) {
417
- return (await this.db).setItem(this.buildDocumentKey(id), migratedDocument);
418
- }
419
- }
420
- ////////////////////////////////
421
- // Private methods
422
- ////////////////////////////////
423
- buildDocumentKey(documentId) {
424
- return `${BrowserStorage.DOCUMENT_KEY}${BrowserStorage.SEP}${documentId}`;
425
- }
426
- buildManifestKey(driveId) {
427
- return `${BrowserStorage.MANIFEST_KEY}${BrowserStorage.SEP}${driveId}`;
428
- }
429
- }
430
- //# sourceMappingURL=browser.js.map