document-drive 6.0.0-dev.104 → 6.0.0-dev.106

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,457 +0,0 @@
1
- import { BrowserStorage, driveCreateDocument, InMemoryCache, MemoryStorage, } from "document-drive";
2
- import { FilesystemStorage } from "document-drive/storage/filesystem";
3
- import { PrismaStorage } from "document-drive/storage/prisma";
4
- import { PrismaClient } from "document-drive/storage/prisma/client";
5
- import { documentModelCreateDocument } from "document-model";
6
- import { generateId } from "document-model/core";
7
- import { existsSync, rmSync } from "fs";
8
- import path from "path";
9
- import { describe, it } from "vitest";
10
- const storageImplementations = [
11
- ["Memory Storage", () => Promise.resolve(new MemoryStorage())],
12
- [
13
- "File System Storage",
14
- () => {
15
- const basePath = path.join(__dirname, "test-storage");
16
- // delete the base path
17
- if (existsSync(basePath)) {
18
- rmSync(basePath, { recursive: true, force: true });
19
- }
20
- return Promise.resolve(new FilesystemStorage(basePath));
21
- },
22
- ],
23
- [
24
- "Browser Storage",
25
- async () => {
26
- const storage = new BrowserStorage();
27
- await storage.clear();
28
- return storage;
29
- },
30
- ],
31
- [
32
- "PrismaStorage",
33
- async () => {
34
- const prisma = new PrismaClient();
35
- await prisma.$executeRawUnsafe('DELETE FROM "Attachment";');
36
- await prisma.$executeRawUnsafe('DELETE FROM "Operation";');
37
- await prisma.$executeRawUnsafe('DELETE FROM "Document";');
38
- await prisma.$executeRawUnsafe('DELETE FROM "DriveDocument";');
39
- await prisma.$executeRawUnsafe('DELETE FROM "Drive";');
40
- return new PrismaStorage(prisma, new InMemoryCache());
41
- },
42
- ],
43
- /*[
44
- "IPFSStorage",
45
- async () => {
46
- const helia = await createHelia();
47
- return new IPFSStorage(helia);
48
- },
49
- ],*/
50
- ];
51
- describe.each(storageImplementations)("%s", async (_, buildStorage) => {
52
- it("should correctly check for non-existent document", async ({ expect }) => {
53
- const storage = await buildStorage();
54
- const id = generateId();
55
- const result = await storage.exists(id);
56
- expect(result).toBe(false);
57
- });
58
- it("should allow creating a document", async ({ expect }) => {
59
- const storage = await buildStorage();
60
- const document = documentModelCreateDocument();
61
- const id = document.header.id;
62
- await storage.create(document);
63
- const result = await storage.exists(id);
64
- expect(result).toBe(true);
65
- });
66
- it("should not change the state of a document to match id", async ({ expect, }) => {
67
- const storage = await buildStorage();
68
- const document = documentModelCreateDocument();
69
- const id = document.header.id;
70
- document.initialState.global.id = "FOOOP";
71
- await storage.create(document);
72
- const result = await storage.get(id);
73
- expect(result.initialState.global.id).toBe("FOOOP");
74
- });
75
- it("should throw a DocumentAlreadyExistsError when creating a document if the document already exists", async ({ expect, }) => {
76
- const storage = await buildStorage();
77
- const document = documentModelCreateDocument();
78
- const id = document.header.id;
79
- await storage.create(document);
80
- try {
81
- await storage.create(document);
82
- throw new Error("Document should not be created");
83
- }
84
- catch (e) {
85
- expect(e.documentId).toBe(id);
86
- }
87
- });
88
- it("should throw a DocumentAlreadyExistsError when creating a drive with a slug that already exists", async ({ expect, }) => {
89
- const storage = await buildStorage();
90
- const a = driveCreateDocument();
91
- a.header.slug = "test";
92
- const idA = a.header.id;
93
- await storage.create(a);
94
- // different id, but same slug
95
- const b = driveCreateDocument();
96
- b.header.slug = "test";
97
- const idB = b.header.id;
98
- try {
99
- await storage.create(b);
100
- throw new Error("Document should not be created");
101
- }
102
- catch (e) {
103
- expect(e.documentId).toBe(idB);
104
- }
105
- });
106
- it("should allow getting a document", async ({ expect }) => {
107
- const storage = await buildStorage();
108
- const document = documentModelCreateDocument();
109
- const id = document.header.id;
110
- await storage.create(document);
111
- const result = await storage.get(id);
112
- // Storage implementations are free to return documents with or without populated state + meta.
113
- // Prisma storage always returns an undefined state, but other storage
114
- // implementations return the state. The storage layers have always been
115
- // tested through the drive server, and the drive server (base-server.ts)
116
- // replays the operations to get the state, if it doesn't exist.
117
- //
118
- // Also: we give storage implementations authority to set the created timestamp (like a postgres timestamp).
119
- // So we compare every field except for a few...
120
- const { state, header: { createdAtUtcIso, meta, ...headerRest }, ...rest } = document;
121
- const { state: _state, header: { createdAtUtcIso: _createdAtUtcIso, meta: _meta, ...headerRestResult }, ...restResult } = result;
122
- expect(restResult).toEqual(rest);
123
- expect(headerRestResult).toEqual(headerRest);
124
- });
125
- it("should throw a DocumentNotFoundError if the document is not found", async ({ expect, }) => {
126
- const storage = await buildStorage();
127
- const id = generateId();
128
- try {
129
- await storage.get(id);
130
- throw new Error("Document should not be found");
131
- }
132
- catch (e) {
133
- expect(e.documentId).toBe(id);
134
- }
135
- });
136
- it("should throw a DocumentNotFoundError if the document is not found by slug", async ({ expect, }) => {
137
- const storage = await buildStorage();
138
- const slug = generateId();
139
- try {
140
- await storage.getBySlug(slug);
141
- throw new Error("Document should not be found");
142
- }
143
- catch (e) {
144
- expect(e.documentId).toBe(slug);
145
- }
146
- });
147
- it("should allow deleting a document", async ({ expect }) => {
148
- const storage = await buildStorage();
149
- const document = documentModelCreateDocument();
150
- const id = document.header.id;
151
- await storage.create(document);
152
- const result = await storage.delete(id);
153
- expect(result).toBe(true);
154
- const result2 = await storage.exists(id);
155
- expect(result2).toBe(false);
156
- const result3 = await storage.delete(id);
157
- expect(result3).toBe(false);
158
- });
159
- it("should delete documents from all drives when deleted", async ({ expect, }) => {
160
- const storage = await buildStorage();
161
- const document = documentModelCreateDocument();
162
- const documentId = document.header.id;
163
- await storage.create(document);
164
- const driveA = driveCreateDocument();
165
- const driveAId = driveA.header.id;
166
- await storage.create(driveA);
167
- await storage.addChild(driveAId, documentId);
168
- const driveB = driveCreateDocument();
169
- const driveBId = driveB.header.id;
170
- await storage.create(driveB);
171
- await storage.addChild(driveBId, documentId);
172
- const result = await storage.delete(documentId);
173
- expect(result).toBe(true);
174
- const childrenA = await storage.getChildren(driveAId);
175
- expect(childrenA).toEqual([]);
176
- const childrenB = await storage.getChildren(driveBId);
177
- expect(childrenB).toEqual([]);
178
- });
179
- it("should allow getting all parents of a document", async ({ expect }) => {
180
- const storage = await buildStorage();
181
- const document = documentModelCreateDocument();
182
- const childId = document.header.id;
183
- await storage.create(document);
184
- let parents = await storage.getParents(childId);
185
- expect(parents).toEqual([]);
186
- const driveA = driveCreateDocument();
187
- const driveAId = driveA.header.id;
188
- await storage.create(driveA);
189
- const driveB = driveCreateDocument();
190
- const driveBId = driveB.header.id;
191
- await storage.create(driveB);
192
- await storage.addChild(driveAId, childId);
193
- await storage.addChild(driveBId, childId);
194
- parents = await storage.getParents(childId);
195
- // order doesn't matter
196
- expect(parents).toEqual(expect.arrayContaining([driveAId, driveBId]));
197
- });
198
- it("should update the parents of a document when a parent is deleted", async ({ expect, }) => {
199
- const storage = await buildStorage();
200
- const document = documentModelCreateDocument();
201
- const childId = document.header.id;
202
- await storage.create(document);
203
- const driveA = driveCreateDocument();
204
- const driveAId = driveA.header.id;
205
- await storage.create(driveA);
206
- const driveB = driveCreateDocument();
207
- const driveBId = driveB.header.id;
208
- await storage.create(driveB);
209
- await storage.addChild(driveAId, childId);
210
- await storage.addChild(driveBId, childId);
211
- await storage.delete(driveAId);
212
- const parents = await storage.getParents(childId);
213
- expect(parents).toEqual([driveBId]);
214
- });
215
- // TODO: Should child documents be deleted when the parent is deleted?
216
- it.skip("should, when deleting a document, also delete all child documents that were only a child of that document", async ({ expect, }) => {
217
- const storage = await buildStorage();
218
- const child = documentModelCreateDocument();
219
- const childId = child.header.id;
220
- await storage.create(child);
221
- const drive = driveCreateDocument();
222
- const driveId = drive.header.id;
223
- await storage.create(drive);
224
- await storage.addChild(driveId, childId);
225
- await storage.delete(driveId);
226
- const result = await storage.exists(childId);
227
- expect(result).toBe(false);
228
- });
229
- it("should allow creating and retrieving a document with a slug", async ({ expect, }) => {
230
- const storage = await buildStorage();
231
- const slug = `test-slug-${generateId()}`;
232
- const document = driveCreateDocument();
233
- const id = document.header.id;
234
- document.header.slug = slug;
235
- await storage.create(document);
236
- const result = await storage.getBySlug(slug);
237
- expect(result.header.slug).toBe(slug);
238
- });
239
- it("the id should be used as the slug if no slug is provided", async ({ expect, }) => {
240
- const storage = await buildStorage();
241
- const document = driveCreateDocument();
242
- const id = document.header.id;
243
- document.header.slug = "";
244
- await storage.create(document);
245
- const result = await storage.getBySlug(id);
246
- expect(result).toBeTruthy();
247
- });
248
- it("should allow removing a document and then adding a new document with the same id and slug", async ({ expect, }) => {
249
- const storage = await buildStorage();
250
- const document = documentModelCreateDocument();
251
- const slug = (document.header.slug = "test-slug");
252
- const id = document.header.id;
253
- await storage.create(document);
254
- await storage.delete(id);
255
- const newDocument = documentModelCreateDocument();
256
- newDocument.header.slug = slug;
257
- newDocument.header.id = id;
258
- await storage.create(newDocument);
259
- const result = await storage.getBySlug(slug);
260
- expect(result).toBeTruthy();
261
- });
262
- it("should return documents with matching document model type", async ({ expect, }) => {
263
- const storage = await buildStorage();
264
- // create docs of different types
265
- const document1 = documentModelCreateDocument();
266
- const document2 = driveCreateDocument();
267
- const document3 = documentModelCreateDocument();
268
- const id1 = document1.header.id;
269
- const id2 = document2.header.id;
270
- const id3 = document3.header.id;
271
- await storage.create(document1);
272
- await storage.create(document2);
273
- await storage.create(document3);
274
- const result = await storage.findByType("powerhouse/document-drive");
275
- expect(result.documents.length).toBe(1);
276
- expect(result.documents[0]).toBe(id2);
277
- const result2 = await storage.findByType("powerhouse/document-model");
278
- expect(result2.documents.length).toBe(2);
279
- expect(result2.documents).toContain(id1);
280
- expect(result2.documents).toContain(id3);
281
- });
282
- it("should allow paginating documents by type", async ({ expect }) => {
283
- const storage = await buildStorage();
284
- // create 10 documents of the same type with generated IDs
285
- const documentIds = [];
286
- for (let i = 0; i < 10; i++) {
287
- const document = documentModelCreateDocument();
288
- const id = document.header.id;
289
- documentIds.push(id);
290
- await storage.create(document);
291
- }
292
- // pull by 2s
293
- let nextCursor = undefined;
294
- let documentsPulled = 0;
295
- // Keep pulling until we get all documents
296
- while (documentsPulled < 10) {
297
- const result = await storage.findByType("powerhouse/document-model", 2, nextCursor);
298
- expect(result.documents.length).toBeGreaterThan(0);
299
- expect(result.documents.length).toBeLessThanOrEqual(2);
300
- // Verify that the documents we got are in our created list
301
- for (const id of result.documents) {
302
- expect(documentIds.includes(id)).toBe(true);
303
- }
304
- documentsPulled += result.documents.length;
305
- nextCursor = result.nextCursor;
306
- // Break if no more cursor
307
- if (!nextCursor)
308
- break;
309
- }
310
- expect(documentsPulled).toBe(10);
311
- });
312
- it("should allow associating a document with another document", async ({ expect, }) => {
313
- const storage = await buildStorage();
314
- // for now, we only allow documents to be associated with drives
315
- const drive = driveCreateDocument();
316
- const driveId = drive.header.id;
317
- await storage.create(drive);
318
- const document = documentModelCreateDocument();
319
- const documentId = document.header.id;
320
- await storage.create(document);
321
- await storage.addChild(driveId, documentId);
322
- const children = await storage.getChildren(driveId);
323
- expect(children).toEqual([documentId]);
324
- });
325
- it("should not allow self associations", async ({ expect }) => {
326
- const storage = await buildStorage();
327
- const document = documentModelCreateDocument();
328
- const documentId = document.header.id;
329
- await storage.create(document);
330
- await expect(storage.addChild(documentId, documentId)).rejects.toThrow();
331
- });
332
- it("should not allow circular associations", async ({ expect }) => {
333
- const storage = await buildStorage();
334
- const drive = driveCreateDocument();
335
- const driveId = drive.header.id;
336
- await storage.create(drive);
337
- const document = documentModelCreateDocument();
338
- const documentId = document.header.id;
339
- await storage.create(document);
340
- await storage.addChild(driveId, documentId);
341
- await expect(storage.addChild(documentId, driveId)).rejects.toThrow();
342
- });
343
- it("should allow removing a child from a drive", async ({ expect }) => {
344
- const storage = await buildStorage();
345
- const drive = driveCreateDocument();
346
- const driveId = drive.header.id;
347
- await storage.create(drive);
348
- const document = documentModelCreateDocument();
349
- const documentId = document.header.id;
350
- await storage.create(document);
351
- await storage.addChild(driveId, documentId);
352
- const result = await storage.removeChild(driveId, documentId);
353
- expect(result).toBe(true);
354
- const children = await storage.getChildren(driveId);
355
- expect(children).toEqual([]);
356
- });
357
- it("should not allow removing a child from a non-existent drive", async ({ expect, }) => {
358
- const storage = await buildStorage();
359
- const document = documentModelCreateDocument();
360
- const documentId = document.header.id;
361
- await storage.create(document);
362
- const driveId = generateId();
363
- const result = await storage.removeChild(driveId, documentId);
364
- expect(result).toBe(false);
365
- });
366
- it("should not allow removing a non-existent child from a drive", async ({ expect, }) => {
367
- const storage = await buildStorage();
368
- const documentId = generateId();
369
- const drive = driveCreateDocument();
370
- const driveId = drive.header.id;
371
- await storage.create(drive);
372
- const result = await storage.removeChild(driveId, documentId);
373
- expect(result).toBe(false);
374
- });
375
- it("should not allow removing a non-existent child from a non-existent drive", async ({ expect, }) => {
376
- const storage = await buildStorage();
377
- const driveId = generateId();
378
- const documentId = generateId();
379
- const result = await storage.removeChild(driveId, documentId);
380
- expect(result).toBe(false);
381
- });
382
- it("parent/child relationship should be removed when the child is deleted", async ({ expect, }) => {
383
- const storage = await buildStorage();
384
- const drive = driveCreateDocument();
385
- const driveId = drive.header.id;
386
- await storage.create(drive);
387
- const document = documentModelCreateDocument();
388
- const documentId = document.header.id;
389
- await storage.create(document);
390
- await storage.addChild(driveId, documentId);
391
- await storage.delete(documentId);
392
- const children = await storage.getChildren(driveId);
393
- expect(children).toEqual([]);
394
- });
395
- it("parent/child relationship should be removed when the parent is deleted", async ({ expect, }) => {
396
- const storage = await buildStorage();
397
- const drive = driveCreateDocument();
398
- const driveId = drive.header.id;
399
- await storage.create(drive);
400
- const document = documentModelCreateDocument();
401
- const documentId = document.header.id;
402
- await storage.create(document);
403
- await storage.addChild(driveId, documentId);
404
- await storage.delete(driveId);
405
- const children = await storage.getChildren(driveId);
406
- expect(children).toEqual([]);
407
- });
408
- it("should be able to upgrade a document stored as a PHDocument v1", async ({ expect, }) => {
409
- // TODO
410
- });
411
- it("should allow resolving slugs from ids", async ({ expect }) => {
412
- const storage = await buildStorage();
413
- const drive = driveCreateDocument();
414
- drive.header.slug = "test-drive";
415
- const driveId = drive.header.id;
416
- await storage.create(drive);
417
- const result = await storage.resolveSlugs([driveId]);
418
- expect(result).toEqual([drive.header.slug]);
419
- });
420
- it("should throw an error if any of the ids are not found", async ({ expect, }) => {
421
- const storage = await buildStorage();
422
- await expect(async () => await storage.resolveSlugs(["not-found"])).rejects.toThrow();
423
- });
424
- it("should return the id if any of the slugs are not found", async ({ expect, }) => {
425
- const storage = await buildStorage();
426
- const drive = driveCreateDocument();
427
- drive.header.slug = "";
428
- const driveId = drive.header.id;
429
- await storage.create(drive);
430
- const result = await storage.resolveSlugs([drive.header.slug]);
431
- expect(result).toEqual([driveId]);
432
- });
433
- it("should throw an error if aborted", async ({ expect }) => {
434
- const storage = await buildStorage();
435
- const drive = driveCreateDocument();
436
- drive.header.slug = "test-drive";
437
- const driveId = drive.header.id;
438
- await storage.create(drive);
439
- const controller = new AbortController();
440
- controller.abort();
441
- await expect(async () => await storage.resolveSlugs([driveId], controller.signal)).rejects.toThrow();
442
- });
443
- it("should allow resolving ids from slugs", async ({ expect }) => {
444
- const storage = await buildStorage();
445
- const drive = driveCreateDocument();
446
- drive.header.slug = "test-drive";
447
- const driveId = drive.header.id;
448
- await storage.create(drive);
449
- const result = await storage.resolveIds([drive.header.slug]);
450
- expect(result).toEqual([driveId]);
451
- });
452
- it("should throw an error if any of the ids are not found", async ({ expect, }) => {
453
- const storage = await buildStorage();
454
- await expect(async () => await storage.resolveIds(["not-found"])).rejects.toThrow();
455
- });
456
- });
457
- //# sourceMappingURL=storage.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.test.js","sourceRoot":"","sources":["../../test/storage.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=switchboard-push-listener.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"switchboard-push-listener.test.d.ts","sourceRoot":"","sources":["../../test/switchboard-push-listener.test.ts"],"names":[],"mappings":""}
@@ -1,133 +0,0 @@
1
- import { addFile, driveDocumentModelModule, expectUTCTimestamp, ReactorBuilder, SwitchboardPushTransmitter, } from "document-drive";
2
- import { documentModelCreateDocument, documentModelDocumentModelModule, setModelName, } from "document-model";
3
- import { generateId } from "document-model/core";
4
- import { beforeEach, describe, expect, test, vi } from "vitest";
5
- vi.mock(import("graphql-request"), async (importOriginal) => {
6
- const originalModule = await importOriginal();
7
- return {
8
- ...originalModule,
9
- GraphQLClient: vi.fn().mockImplementation(() => {
10
- return {
11
- request: vi
12
- .fn()
13
- .mockImplementation((query, { strands }) => {
14
- if (query.includes("mutation pushUpdates")) {
15
- return Promise.resolve({
16
- pushUpdates: strands.map(({ operations, ...strand }) => ({
17
- ...strand,
18
- status: "SUCCESS",
19
- revision: operations.length
20
- ? operations.at(-1).index + 1
21
- : 0,
22
- })),
23
- });
24
- }
25
- return Promise.resolve({});
26
- }),
27
- };
28
- }),
29
- gql: vi.fn().mockImplementation((...args) => args.join("")),
30
- };
31
- });
32
- describe("SwitchboardPush Listener", () => {
33
- const driveId = "test-drive";
34
- const driveName = "Test Drive";
35
- const remoteUrl = "https://example.com/d/test";
36
- async function buildServer() {
37
- const documentModels = [
38
- documentModelDocumentModelModule,
39
- driveDocumentModelModule,
40
- ];
41
- const builder = new ReactorBuilder(documentModels);
42
- const server = builder.build();
43
- await server.initialize();
44
- await server.addDrive({
45
- id: driveId,
46
- global: {
47
- name: driveName,
48
- },
49
- });
50
- const listenerManager = builder.listenerManager;
51
- // Create the listener and transmitter
52
- const uuid = generateId();
53
- const listener = {
54
- driveId,
55
- listenerId: uuid,
56
- block: false,
57
- filter: {
58
- branch: ["main"],
59
- documentId: ["*"],
60
- documentType: ["*"],
61
- scope: ["global"],
62
- },
63
- system: false,
64
- label: `SwitchboardPush #${uuid}`,
65
- callInfo: {
66
- data: remoteUrl,
67
- name: "SwitchboardPush",
68
- transmitterType: "SwitchboardPush",
69
- },
70
- };
71
- // TODO: circular reference
72
- listener.transmitter = new SwitchboardPushTransmitter(remoteUrl);
73
- await listenerManager?.setListener(driveId, listener);
74
- return {
75
- server,
76
- listenerManager,
77
- listener,
78
- };
79
- }
80
- beforeEach(async () => {
81
- vi.setSystemTime(new Date("2024-01-01"));
82
- });
83
- test("should call transmit function of listener and acknowledge", async () => {
84
- const { server, listenerManager, listener } = await buildServer();
85
- const drive = await server.getDrive(driveId);
86
- // should have transmitted drive initial revision
87
- expect(listenerManager
88
- ?.getListenerState(driveId, listener.listenerId)
89
- .syncUnits.getAllByDocumentId(drive.header.id)).toStrictEqual([
90
- [
91
- { branch: "main", documentId: drive.header.id, scope: "global" },
92
- { listenerRev: 0, lastUpdated: expectUTCTimestamp(expect) },
93
- ],
94
- ]);
95
- const document = documentModelCreateDocument();
96
- const documentId = document.header.id;
97
- await server.addDocument(document);
98
- const action = addFile({
99
- id: documentId,
100
- name: "test",
101
- documentType: "powerhouse/document-model",
102
- });
103
- await server.addAction(driveId, action);
104
- // should have transmitted drive first operation and document initial revision
105
- await vi.waitFor(() => expect(listenerManager
106
- ?.getListenerState(driveId, listener.listenerId)
107
- .syncUnits.getAllByDocumentId(drive.header.id)).toStrictEqual([
108
- [
109
- { branch: "main", documentId: drive.header.id, scope: "global" },
110
- { listenerRev: 1, lastUpdated: expectUTCTimestamp(expect) },
111
- ],
112
- ]));
113
- expect(listenerManager
114
- ?.getListenerState(driveId, listener.listenerId)
115
- .syncUnits.getAllByDocumentId(documentId)).toStrictEqual([
116
- [
117
- { branch: "main", documentId: documentId, scope: "global" },
118
- { listenerRev: 0, lastUpdated: expectUTCTimestamp(expect) },
119
- ],
120
- ]);
121
- await server.addAction(documentId, setModelName({ name: "test" }));
122
- // should have transmitted document first operation
123
- await vi.waitFor(() => expect(listenerManager
124
- ?.getListenerState(driveId, listener.listenerId)
125
- .syncUnits.getAllByDocumentId(documentId)).toStrictEqual([
126
- [
127
- { branch: "main", documentId: documentId, scope: "global" },
128
- { listenerRev: 1, lastUpdated: expectUTCTimestamp(expect) },
129
- ],
130
- ]));
131
- });
132
- });
133
- //# sourceMappingURL=switchboard-push-listener.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"switchboard-push-listener.test.js","sourceRoot":"","sources":["../../test/switchboard-push-listener.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=sync-manager.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync-manager.test.d.ts","sourceRoot":"","sources":["../../test/sync-manager.test.ts"],"names":[],"mappings":""}