document-drive 4.1.0-dev.56 → 4.1.0-dev.58

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 (476) hide show
  1. package/dist/index.d.ts +17 -32
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +17 -20
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/cache/index.d.ts +5 -0
  6. package/dist/src/cache/index.d.ts.map +1 -0
  7. package/dist/src/cache/index.js +5 -0
  8. package/dist/src/cache/index.js.map +1 -0
  9. package/dist/src/cache/lru.d.ts +2 -13
  10. package/dist/src/cache/lru.d.ts.map +1 -1
  11. package/dist/src/cache/lru.js +1 -2
  12. package/dist/src/cache/lru.js.map +1 -1
  13. package/dist/src/cache/memory.d.ts +2 -13
  14. package/dist/src/cache/memory.d.ts.map +1 -1
  15. package/dist/src/cache/memory.js +2 -3
  16. package/dist/src/cache/memory.js.map +1 -1
  17. package/dist/src/cache/redis.d.ts +2 -4
  18. package/dist/src/cache/redis.d.ts.map +1 -1
  19. package/dist/src/cache/redis.js +2 -4
  20. package/dist/src/cache/redis.js.map +1 -1
  21. package/dist/src/cache/types.d.ts +22 -1
  22. package/dist/src/cache/types.d.ts.map +1 -1
  23. package/dist/src/drive-document-model/constants.d.ts +2 -1
  24. package/dist/src/drive-document-model/constants.d.ts.map +1 -1
  25. package/dist/src/drive-document-model/constants.js +2 -2
  26. package/dist/src/drive-document-model/constants.js.map +1 -1
  27. package/dist/src/drive-document-model/gen/document-model.d.ts +2 -2
  28. package/dist/src/drive-document-model/gen/document-model.d.ts.map +1 -1
  29. package/dist/src/drive-document-model/gen/document-model.js +1 -1
  30. package/dist/src/drive-document-model/gen/document-model.js.map +1 -1
  31. package/dist/src/drive-document-model/gen/drive/actions.d.ts +12 -2
  32. package/dist/src/drive-document-model/gen/drive/actions.d.ts.map +1 -1
  33. package/dist/src/drive-document-model/gen/drive/creators.d.ts +2 -2
  34. package/dist/src/drive-document-model/gen/drive/creators.d.ts.map +1 -1
  35. package/dist/src/drive-document-model/gen/drive/creators.js +9 -9
  36. package/dist/src/drive-document-model/gen/drive/creators.js.map +1 -1
  37. package/dist/src/drive-document-model/gen/drive/index.d.ts +2 -0
  38. package/dist/src/drive-document-model/gen/drive/index.d.ts.map +1 -0
  39. package/dist/src/drive-document-model/gen/drive/index.js +2 -0
  40. package/dist/src/drive-document-model/gen/drive/index.js.map +1 -0
  41. package/dist/src/drive-document-model/gen/drive/types.d.ts +2 -0
  42. package/dist/src/drive-document-model/gen/drive/types.d.ts.map +1 -0
  43. package/dist/src/drive-document-model/gen/drive/types.js +2 -0
  44. package/dist/src/drive-document-model/gen/drive/types.js.map +1 -0
  45. package/dist/src/drive-document-model/gen/index.d.ts +7 -6
  46. package/dist/src/drive-document-model/gen/index.d.ts.map +1 -1
  47. package/dist/src/drive-document-model/gen/index.js +7 -5
  48. package/dist/src/drive-document-model/gen/index.js.map +1 -1
  49. package/dist/src/drive-document-model/gen/node/actions.d.ts +11 -2
  50. package/dist/src/drive-document-model/gen/node/actions.d.ts.map +1 -1
  51. package/dist/src/drive-document-model/gen/node/creators.d.ts +2 -2
  52. package/dist/src/drive-document-model/gen/node/creators.d.ts.map +1 -1
  53. package/dist/src/drive-document-model/gen/node/creators.js +8 -8
  54. package/dist/src/drive-document-model/gen/node/creators.js.map +1 -1
  55. package/dist/src/drive-document-model/gen/node/index.d.ts +2 -0
  56. package/dist/src/drive-document-model/gen/node/index.d.ts.map +1 -0
  57. package/dist/src/drive-document-model/gen/node/index.js +2 -0
  58. package/dist/src/drive-document-model/gen/node/index.js.map +1 -0
  59. package/dist/src/drive-document-model/gen/node/types.d.ts +2 -0
  60. package/dist/src/drive-document-model/gen/node/types.d.ts.map +1 -0
  61. package/dist/src/drive-document-model/gen/node/types.js +2 -0
  62. package/dist/src/drive-document-model/gen/node/types.js.map +1 -0
  63. package/dist/src/drive-document-model/gen/ph-factories.d.ts +5 -20
  64. package/dist/src/drive-document-model/gen/ph-factories.d.ts.map +1 -1
  65. package/dist/src/drive-document-model/gen/ph-factories.js +1 -13
  66. package/dist/src/drive-document-model/gen/ph-factories.js.map +1 -1
  67. package/dist/src/drive-document-model/gen/reducer.d.ts +3 -3
  68. package/dist/src/drive-document-model/gen/reducer.d.ts.map +1 -1
  69. package/dist/src/drive-document-model/gen/reducer.js +34 -36
  70. package/dist/src/drive-document-model/gen/reducer.js.map +1 -1
  71. package/dist/src/drive-document-model/gen/schema/index.d.ts +2 -2
  72. package/dist/src/drive-document-model/gen/schema/index.d.ts.map +1 -1
  73. package/dist/src/drive-document-model/gen/schema/index.js +2 -2
  74. package/dist/src/drive-document-model/gen/schema/index.js.map +1 -1
  75. package/dist/src/drive-document-model/gen/schema/types.d.ts +8 -3
  76. package/dist/src/drive-document-model/gen/schema/types.d.ts.map +1 -1
  77. package/dist/src/drive-document-model/gen/schema/zod.d.ts +28 -28
  78. package/dist/src/drive-document-model/gen/schema/zod.d.ts.map +1 -1
  79. package/dist/src/drive-document-model/gen/schema/zod.js.map +1 -1
  80. package/dist/src/drive-document-model/gen/types.d.ts +5 -6
  81. package/dist/src/drive-document-model/gen/types.d.ts.map +1 -1
  82. package/dist/src/drive-document-model/gen/types.js +3 -1
  83. package/dist/src/drive-document-model/gen/types.js.map +1 -1
  84. package/dist/src/drive-document-model/gen/utils.d.ts +7 -9
  85. package/dist/src/drive-document-model/gen/utils.d.ts.map +1 -1
  86. package/dist/src/drive-document-model/gen/utils.js +21 -34
  87. package/dist/src/drive-document-model/gen/utils.js.map +1 -1
  88. package/dist/src/drive-document-model/index.d.ts +4 -1
  89. package/dist/src/drive-document-model/index.d.ts.map +1 -1
  90. package/dist/src/drive-document-model/index.js +4 -1
  91. package/dist/src/drive-document-model/index.js.map +1 -1
  92. package/dist/src/drive-document-model/module.d.ts +2 -27
  93. package/dist/src/drive-document-model/module.d.ts.map +1 -1
  94. package/dist/src/drive-document-model/module.js +15 -16
  95. package/dist/src/drive-document-model/module.js.map +1 -1
  96. package/dist/src/drive-document-model/src/index.d.ts +3 -0
  97. package/dist/src/drive-document-model/src/index.d.ts.map +1 -0
  98. package/dist/src/drive-document-model/src/index.js +3 -0
  99. package/dist/src/drive-document-model/src/index.js.map +1 -0
  100. package/dist/src/drive-document-model/src/reducers/drive.d.ts +2 -2
  101. package/dist/src/drive-document-model/src/reducers/drive.d.ts.map +1 -1
  102. package/dist/src/drive-document-model/src/reducers/drive.js +1 -1
  103. package/dist/src/drive-document-model/src/reducers/drive.js.map +1 -1
  104. package/dist/src/drive-document-model/src/reducers/index.d.ts +3 -0
  105. package/dist/src/drive-document-model/src/reducers/index.d.ts.map +1 -0
  106. package/dist/src/drive-document-model/src/reducers/index.js +3 -0
  107. package/dist/src/drive-document-model/src/reducers/index.js.map +1 -0
  108. package/dist/src/drive-document-model/src/reducers/node.d.ts +2 -2
  109. package/dist/src/drive-document-model/src/reducers/node.d.ts.map +1 -1
  110. package/dist/src/drive-document-model/src/reducers/node.js +3 -4
  111. package/dist/src/drive-document-model/src/reducers/node.js.map +1 -1
  112. package/dist/src/drive-document-model/src/tests/actions.test.js +19 -21
  113. package/dist/src/drive-document-model/src/tests/actions.test.js.map +1 -1
  114. package/dist/src/drive-document-model/src/tests/base.test.js +12 -52
  115. package/dist/src/drive-document-model/src/tests/base.test.js.map +1 -1
  116. package/dist/src/drive-document-model/src/tests/document-model.test.js +3 -3
  117. package/dist/src/drive-document-model/src/tests/document-model.test.js.map +1 -1
  118. package/dist/src/drive-document-model/src/tests/drive.test.js +5 -8
  119. package/dist/src/drive-document-model/src/tests/drive.test.js.map +1 -1
  120. package/dist/src/drive-document-model/src/tests/generate-mock.d.ts +2 -1
  121. package/dist/src/drive-document-model/src/tests/generate-mock.d.ts.map +1 -1
  122. package/dist/src/drive-document-model/src/tests/node.test.js +32 -35
  123. package/dist/src/drive-document-model/src/tests/node.test.js.map +1 -1
  124. package/dist/src/drive-document-model/src/tests/test-factories.d.ts +1 -6
  125. package/dist/src/drive-document-model/src/tests/test-factories.d.ts.map +1 -1
  126. package/dist/src/drive-document-model/src/tests/test-factories.js +4 -11
  127. package/dist/src/drive-document-model/src/tests/test-factories.js.map +1 -1
  128. package/dist/src/drive-document-model/src/tests/utils.test.js +1 -1
  129. package/dist/src/drive-document-model/src/tests/utils.test.js.map +1 -1
  130. package/dist/src/drive-document-model/src/types.d.ts +8 -0
  131. package/dist/src/drive-document-model/src/types.d.ts.map +1 -0
  132. package/dist/src/drive-document-model/src/types.js +2 -0
  133. package/dist/src/drive-document-model/src/types.js.map +1 -0
  134. package/dist/src/drive-document-model/src/utils.d.ts +1 -7
  135. package/dist/src/drive-document-model/src/utils.d.ts.map +1 -1
  136. package/dist/src/drive-document-model/src/utils.js.map +1 -1
  137. package/dist/src/drive-document-model/types.d.ts +10 -0
  138. package/dist/src/drive-document-model/types.d.ts.map +1 -0
  139. package/dist/src/drive-document-model/types.js +3 -0
  140. package/dist/src/drive-document-model/types.js.map +1 -0
  141. package/dist/src/processors/index.d.ts +4 -0
  142. package/dist/src/processors/index.d.ts.map +1 -0
  143. package/dist/src/processors/index.js +4 -0
  144. package/dist/src/processors/index.js.map +1 -0
  145. package/dist/src/processors/processor-manager.d.ts +1 -2
  146. package/dist/src/processors/processor-manager.d.ts.map +1 -1
  147. package/dist/src/processors/processor-manager.js +1 -3
  148. package/dist/src/processors/processor-manager.js.map +1 -1
  149. package/dist/src/processors/relational.d.ts +3 -15
  150. package/dist/src/processors/relational.d.ts.map +1 -1
  151. package/dist/src/processors/relational.js +4 -7
  152. package/dist/src/processors/relational.js.map +1 -1
  153. package/dist/src/processors/types.d.ts +12 -3
  154. package/dist/src/processors/types.d.ts.map +1 -1
  155. package/dist/src/processors/utils.d.ts +1 -2
  156. package/dist/src/processors/utils.d.ts.map +1 -1
  157. package/dist/src/processors/utils.js +0 -2
  158. package/dist/src/processors/utils.js.map +1 -1
  159. package/dist/src/queue/base.d.ts +1 -1
  160. package/dist/src/queue/base.d.ts.map +1 -1
  161. package/dist/src/queue/event.d.ts +2 -3
  162. package/dist/src/queue/event.d.ts.map +1 -1
  163. package/dist/src/queue/event.js +1 -4
  164. package/dist/src/queue/event.js.map +1 -1
  165. package/dist/src/queue/index.d.ts +5 -0
  166. package/dist/src/queue/index.d.ts.map +1 -0
  167. package/dist/src/queue/index.js +5 -0
  168. package/dist/src/queue/index.js.map +1 -0
  169. package/dist/src/queue/redis.js +1 -1
  170. package/dist/src/queue/redis.js.map +1 -1
  171. package/dist/src/queue/types.d.ts +1 -4
  172. package/dist/src/queue/types.d.ts.map +1 -1
  173. package/dist/src/queue/types.js +1 -9
  174. package/dist/src/queue/types.js.map +1 -1
  175. package/dist/src/queue/utils.d.ts +5 -0
  176. package/dist/src/queue/utils.d.ts.map +1 -0
  177. package/dist/src/queue/utils.js +10 -0
  178. package/dist/src/queue/utils.js.map +1 -0
  179. package/dist/src/read-mode/index.d.ts +4 -0
  180. package/dist/src/read-mode/index.d.ts.map +1 -0
  181. package/dist/src/read-mode/index.js +4 -0
  182. package/dist/src/read-mode/index.js.map +1 -0
  183. package/dist/src/read-mode/server.d.ts +1 -2
  184. package/dist/src/read-mode/server.d.ts.map +1 -1
  185. package/dist/src/read-mode/server.js +1 -3
  186. package/dist/src/read-mode/server.js.map +1 -1
  187. package/dist/src/read-mode/service.d.ts +2 -3
  188. package/dist/src/read-mode/service.d.ts.map +1 -1
  189. package/dist/src/read-mode/service.js +1 -5
  190. package/dist/src/read-mode/service.js.map +1 -1
  191. package/dist/src/read-mode/types.d.ts +1 -5
  192. package/dist/src/read-mode/types.d.ts.map +1 -1
  193. package/dist/src/server/base-server.d.ts +4 -14
  194. package/dist/src/server/base-server.d.ts.map +1 -1
  195. package/dist/src/server/base-server.js +18 -21
  196. package/dist/src/server/base-server.js.map +1 -1
  197. package/dist/src/server/builder.d.ts +1 -4
  198. package/dist/src/server/builder.d.ts.map +1 -1
  199. package/dist/src/server/builder.js +1 -9
  200. package/dist/src/server/builder.js.map +1 -1
  201. package/dist/src/server/constants.d.ts +3 -0
  202. package/dist/src/server/constants.d.ts.map +1 -1
  203. package/dist/src/server/constants.js +3 -0
  204. package/dist/src/server/constants.js.map +1 -1
  205. package/dist/src/server/error.d.ts +1 -1
  206. package/dist/src/server/error.d.ts.map +1 -1
  207. package/dist/src/server/event-emitter.d.ts +1 -1
  208. package/dist/src/server/event-emitter.d.ts.map +1 -1
  209. package/dist/src/server/event-emitter.js.map +1 -1
  210. package/dist/src/server/index.d.ts +10 -0
  211. package/dist/src/server/index.d.ts.map +1 -0
  212. package/dist/src/server/index.js +10 -0
  213. package/dist/src/server/index.js.map +1 -0
  214. package/dist/src/server/listener/index.d.ts +2 -0
  215. package/dist/src/server/listener/index.d.ts.map +1 -1
  216. package/dist/src/server/listener/index.js +2 -0
  217. package/dist/src/server/listener/index.js.map +1 -1
  218. package/dist/src/server/listener/listener-manager.d.ts +4 -5
  219. package/dist/src/server/listener/listener-manager.d.ts.map +1 -1
  220. package/dist/src/server/listener/listener-manager.js +2 -5
  221. package/dist/src/server/listener/listener-manager.js.map +1 -1
  222. package/dist/src/server/listener/transmitter/factory.d.ts +3 -4
  223. package/dist/src/server/listener/transmitter/factory.d.ts.map +1 -1
  224. package/dist/src/server/listener/transmitter/factory.js +2 -3
  225. package/dist/src/server/listener/transmitter/factory.js.map +1 -1
  226. package/dist/src/server/listener/transmitter/index.d.ts +5 -0
  227. package/dist/src/server/listener/transmitter/index.d.ts.map +1 -0
  228. package/dist/src/server/listener/transmitter/index.js +5 -0
  229. package/dist/src/server/listener/transmitter/index.js.map +1 -0
  230. package/dist/src/server/listener/transmitter/internal.d.ts +3 -22
  231. package/dist/src/server/listener/transmitter/internal.d.ts.map +1 -1
  232. package/dist/src/server/listener/transmitter/internal.js +9 -15
  233. package/dist/src/server/listener/transmitter/internal.js.map +1 -1
  234. package/dist/src/server/listener/transmitter/pull-responder.d.ts +4 -22
  235. package/dist/src/server/listener/transmitter/pull-responder.d.ts.map +1 -1
  236. package/dist/src/server/listener/transmitter/pull-responder.js +1 -5
  237. package/dist/src/server/listener/transmitter/pull-responder.js.map +1 -1
  238. package/dist/src/server/listener/transmitter/switchboard-push.d.ts +1 -2
  239. package/dist/src/server/listener/transmitter/switchboard-push.d.ts.map +1 -1
  240. package/dist/src/server/listener/transmitter/switchboard-push.js +1 -3
  241. package/dist/src/server/listener/transmitter/switchboard-push.js.map +1 -1
  242. package/dist/src/server/listener/transmitter/types.d.ts +32 -2
  243. package/dist/src/server/listener/transmitter/types.d.ts.map +1 -1
  244. package/dist/src/server/listener/types.d.ts +2 -0
  245. package/dist/src/server/listener/types.d.ts.map +1 -0
  246. package/dist/src/server/listener/types.js +2 -0
  247. package/dist/src/server/listener/types.js.map +1 -0
  248. package/dist/src/server/sync-manager.d.ts +3 -6
  249. package/dist/src/server/sync-manager.d.ts.map +1 -1
  250. package/dist/src/server/sync-manager.js +2 -5
  251. package/dist/src/server/sync-manager.js.map +1 -1
  252. package/dist/src/server/sync-unit-map.d.ts +4 -25
  253. package/dist/src/server/sync-unit-map.d.ts.map +1 -1
  254. package/dist/src/server/sync-unit-map.js +0 -1
  255. package/dist/src/server/sync-unit-map.js.map +1 -1
  256. package/dist/src/server/types.d.ts +33 -22
  257. package/dist/src/server/types.d.ts.map +1 -1
  258. package/dist/src/server/types.js +10 -12
  259. package/dist/src/server/types.js.map +1 -1
  260. package/dist/src/server/utils.d.ts +1 -2
  261. package/dist/src/server/utils.d.ts.map +1 -1
  262. package/dist/src/server/utils.js +0 -1
  263. package/dist/src/server/utils.js.map +1 -1
  264. package/dist/src/storage/browser.d.ts +1 -2
  265. package/dist/src/storage/browser.d.ts.map +1 -1
  266. package/dist/src/storage/browser.js +1 -5
  267. package/dist/src/storage/browser.js.map +1 -1
  268. package/dist/src/storage/filesystem.d.ts +1 -2
  269. package/dist/src/storage/filesystem.d.ts.map +1 -1
  270. package/dist/src/storage/filesystem.js +1 -4
  271. package/dist/src/storage/filesystem.js.map +1 -1
  272. package/dist/src/storage/index.d.ts +4 -0
  273. package/dist/src/storage/index.d.ts.map +1 -0
  274. package/dist/src/storage/index.js +4 -0
  275. package/dist/src/storage/index.js.map +1 -0
  276. package/dist/src/storage/ipfs.d.ts +2 -3
  277. package/dist/src/storage/ipfs.d.ts.map +1 -1
  278. package/dist/src/storage/ipfs.js +5 -3
  279. package/dist/src/storage/ipfs.js.map +1 -1
  280. package/dist/src/storage/memory.d.ts +1 -2
  281. package/dist/src/storage/memory.d.ts.map +1 -1
  282. package/dist/src/storage/memory.js +1 -5
  283. package/dist/src/storage/memory.js.map +1 -1
  284. package/dist/src/storage/prisma/factory.d.ts +2 -2
  285. package/dist/src/storage/prisma/factory.d.ts.map +1 -1
  286. package/dist/src/storage/prisma/factory.js +3 -2
  287. package/dist/src/storage/prisma/factory.js.map +1 -1
  288. package/dist/src/storage/prisma/prisma.d.ts +6 -7
  289. package/dist/src/storage/prisma/prisma.d.ts.map +1 -1
  290. package/dist/src/storage/prisma/prisma.js +3 -6
  291. package/dist/src/storage/prisma/prisma.js.map +1 -1
  292. package/dist/src/storage/types.d.ts +1 -2
  293. package/dist/src/storage/types.d.ts.map +1 -1
  294. package/dist/src/storage/utils.d.ts +1 -1
  295. package/dist/src/storage/utils.d.ts.map +1 -1
  296. package/dist/src/storage/utils.js.map +1 -1
  297. package/dist/src/utils/default-drives-manager.d.ts +1 -12
  298. package/dist/src/utils/default-drives-manager.d.ts.map +1 -1
  299. package/dist/src/utils/default-drives-manager.js +1 -2
  300. package/dist/src/utils/default-drives-manager.js.map +1 -1
  301. package/dist/src/utils/gql-transformations.d.ts +7 -17
  302. package/dist/src/utils/gql-transformations.d.ts.map +1 -1
  303. package/dist/src/utils/gql-transformations.js +2 -2
  304. package/dist/src/utils/gql-transformations.js.map +1 -1
  305. package/dist/src/utils/graphql.d.ts +3 -30
  306. package/dist/src/utils/graphql.d.ts.map +1 -1
  307. package/dist/src/utils/graphql.js +1 -1
  308. package/dist/src/utils/graphql.js.map +1 -1
  309. package/dist/src/utils/index.d.ts +8 -0
  310. package/dist/src/utils/index.d.ts.map +1 -0
  311. package/dist/src/utils/index.js +8 -0
  312. package/dist/src/utils/index.js.map +1 -0
  313. package/dist/src/utils/logger.d.ts +1 -9
  314. package/dist/src/utils/logger.d.ts.map +1 -1
  315. package/dist/src/utils/logger.js +4 -3
  316. package/dist/src/utils/logger.js.map +1 -1
  317. package/dist/src/utils/migrations.d.ts +1 -1
  318. package/dist/src/utils/migrations.d.ts.map +1 -1
  319. package/dist/src/utils/migrations.js +0 -1
  320. package/dist/src/utils/migrations.js.map +1 -1
  321. package/dist/src/utils/misc.d.ts +2 -6
  322. package/dist/src/utils/misc.d.ts.map +1 -1
  323. package/dist/src/utils/misc.js +1 -5
  324. package/dist/src/utils/misc.js.map +1 -1
  325. package/dist/src/utils/run-asap.d.ts +7 -11
  326. package/dist/src/utils/run-asap.d.ts.map +1 -1
  327. package/dist/src/utils/run-asap.js +110 -122
  328. package/dist/src/utils/run-asap.js.map +1 -1
  329. package/dist/src/utils/types.d.ts +61 -0
  330. package/dist/src/utils/types.d.ts.map +1 -0
  331. package/dist/src/utils/types.js +2 -0
  332. package/dist/src/utils/types.js.map +1 -0
  333. package/dist/test/benchmarks/getDrive.json +10 -0
  334. package/dist/test/benchmarks/processOperations.bench.d.ts +2 -0
  335. package/dist/test/benchmarks/processOperations.bench.d.ts.map +1 -0
  336. package/dist/test/benchmarks/processOperations.bench.js +147 -0
  337. package/dist/test/benchmarks/processOperations.bench.js.map +1 -0
  338. package/dist/test/benchmarks/queue.bench.d.ts +2 -0
  339. package/dist/test/benchmarks/queue.bench.d.ts.map +1 -0
  340. package/dist/test/benchmarks/queue.bench.js +50 -0
  341. package/dist/test/benchmarks/queue.bench.js.map +1 -0
  342. package/dist/test/benchmarks/strands.small.json +37085 -0
  343. package/dist/test/cache.test.d.ts +2 -0
  344. package/dist/test/cache.test.d.ts.map +1 -0
  345. package/dist/test/cache.test.js +274 -0
  346. package/dist/test/cache.test.js.map +1 -0
  347. package/dist/test/default-remote-drives.test.d.ts +2 -0
  348. package/dist/test/default-remote-drives.test.d.ts.map +1 -0
  349. package/dist/test/default-remote-drives.test.js +444 -0
  350. package/dist/test/default-remote-drives.test.js.map +1 -0
  351. package/dist/test/drive-operations.test.d.ts +2 -0
  352. package/dist/test/drive-operations.test.d.ts.map +1 -0
  353. package/dist/test/drive-operations.test.js +133 -0
  354. package/dist/test/drive-operations.test.js.map +1 -0
  355. package/dist/test/graphql.test.d.ts +2 -0
  356. package/dist/test/graphql.test.d.ts.map +1 -0
  357. package/dist/test/graphql.test.js +9 -0
  358. package/dist/test/graphql.test.js.map +1 -0
  359. package/dist/test/index.d.ts +2 -0
  360. package/dist/test/index.d.ts.map +1 -0
  361. package/dist/test/index.js +2 -0
  362. package/dist/test/index.js.map +1 -0
  363. package/dist/test/internal-listener.test.d.ts +2 -0
  364. package/dist/test/internal-listener.test.d.ts.map +1 -0
  365. package/dist/test/internal-listener.test.js +242 -0
  366. package/dist/test/internal-listener.test.js.map +1 -0
  367. package/dist/test/queue.test.d.ts +2 -0
  368. package/dist/test/queue.test.d.ts.map +1 -0
  369. package/dist/test/queue.test.js +323 -0
  370. package/dist/test/queue.test.js.map +1 -0
  371. package/dist/test/reactor.test.d.ts +2 -0
  372. package/dist/test/reactor.test.d.ts.map +1 -0
  373. package/dist/test/reactor.test.js +32 -0
  374. package/dist/test/reactor.test.js.map +1 -0
  375. package/dist/test/read-mode.test.d.ts +2 -0
  376. package/dist/test/read-mode.test.d.ts.map +1 -0
  377. package/dist/test/read-mode.test.js +568 -0
  378. package/dist/test/read-mode.test.js.map +1 -0
  379. package/dist/test/server/driveOperationsConflictResolution.test.d.ts +2 -0
  380. package/dist/test/server/driveOperationsConflictResolution.test.d.ts.map +1 -0
  381. package/dist/test/server/driveOperationsConflictResolution.test.js +488 -0
  382. package/dist/test/server/driveOperationsConflictResolution.test.js.map +1 -0
  383. package/dist/test/server/mergeOperations.test.d.ts +2 -0
  384. package/dist/test/server/mergeOperations.test.d.ts.map +1 -0
  385. package/dist/test/server/mergeOperations.test.js +115 -0
  386. package/dist/test/server/mergeOperations.test.js.map +1 -0
  387. package/dist/test/server/processOperations.test.d.ts +2 -0
  388. package/dist/test/server/processOperations.test.d.ts.map +1 -0
  389. package/dist/test/server/processOperations.test.js +391 -0
  390. package/dist/test/server/processOperations.test.js.map +1 -0
  391. package/dist/test/server.test.d.ts +2 -0
  392. package/dist/test/server.test.d.ts.map +1 -0
  393. package/dist/test/server.test.js +943 -0
  394. package/dist/test/server.test.js.map +1 -0
  395. package/dist/test/signature-migration.test.d.ts +2 -0
  396. package/dist/test/signature-migration.test.d.ts.map +1 -0
  397. package/dist/test/signature-migration.test.js +241 -0
  398. package/dist/test/signature-migration.test.js.map +1 -0
  399. package/dist/test/storage.test.d.ts +2 -0
  400. package/dist/test/storage.test.d.ts.map +1 -0
  401. package/dist/test/storage.test.js +521 -0
  402. package/dist/test/storage.test.js.map +1 -0
  403. package/dist/test/switchboard-push-listener.test.d.ts +2 -0
  404. package/dist/test/switchboard-push-listener.test.d.ts.map +1 -0
  405. package/dist/test/switchboard-push-listener.test.js +132 -0
  406. package/dist/test/switchboard-push-listener.test.js.map +1 -0
  407. package/dist/test/sync-manager.test.d.ts +2 -0
  408. package/dist/test/sync-manager.test.d.ts.map +1 -0
  409. package/dist/test/sync-manager.test.js +348 -0
  410. package/dist/test/sync-manager.test.js.map +1 -0
  411. package/dist/test/utils.d.ts +62 -0
  412. package/dist/test/utils.d.ts.map +1 -0
  413. package/dist/test/utils.js +148 -0
  414. package/dist/test/utils.js.map +1 -0
  415. package/dist/test/utils.test.d.ts +2 -0
  416. package/dist/test/utils.test.d.ts.map +1 -0
  417. package/dist/test/utils.test.js +86 -0
  418. package/dist/test/utils.test.js.map +1 -0
  419. package/dist/test/vitest-setup.d.ts +2 -0
  420. package/dist/test/vitest-setup.d.ts.map +1 -0
  421. package/dist/test/vitest-setup.js +5 -0
  422. package/dist/test/vitest-setup.js.map +1 -0
  423. package/dist/tsconfig.tsbuildinfo +1 -0
  424. package/dist/vitest.config.d.ts +3 -0
  425. package/dist/vitest.config.d.ts.map +1 -0
  426. package/dist/vitest.config.js +28 -0
  427. package/dist/vitest.config.js.map +1 -0
  428. package/package.json +36 -26
  429. package/{dist/src → src}/storage/prisma/client/edge.js +5 -5
  430. package/{dist/src → src}/storage/prisma/client/index.js +7 -7
  431. package/{dist/src → src}/storage/prisma/client/package.json +1 -1
  432. package/{dist/src → src}/storage/prisma/client/schema.prisma +2 -3
  433. package/dist/prisma/schema.prisma +0 -93
  434. package/dist/src/drive-document-model/gen/actions.d.ts +0 -6
  435. package/dist/src/drive-document-model/gen/actions.d.ts.map +0 -1
  436. package/dist/src/drive-document-model/gen/actions.js +0 -3
  437. package/dist/src/drive-document-model/gen/actions.js.map +0 -1
  438. package/dist/src/drive-document-model/gen/drive/object.d.ts +0 -14
  439. package/dist/src/drive-document-model/gen/drive/object.d.ts.map +0 -1
  440. package/dist/src/drive-document-model/gen/drive/object.js +0 -29
  441. package/dist/src/drive-document-model/gen/drive/object.js.map +0 -1
  442. package/dist/src/drive-document-model/gen/drive/operations.d.ts +0 -14
  443. package/dist/src/drive-document-model/gen/drive/operations.d.ts.map +0 -1
  444. package/dist/src/drive-document-model/gen/drive/operations.js +0 -2
  445. package/dist/src/drive-document-model/gen/drive/operations.js.map +0 -1
  446. package/dist/src/drive-document-model/gen/node/object.d.ts +0 -13
  447. package/dist/src/drive-document-model/gen/node/object.d.ts.map +0 -1
  448. package/dist/src/drive-document-model/gen/node/object.js +0 -26
  449. package/dist/src/drive-document-model/gen/node/object.js.map +0 -1
  450. package/dist/src/drive-document-model/gen/node/operations.d.ts +0 -13
  451. package/dist/src/drive-document-model/gen/node/operations.d.ts.map +0 -1
  452. package/dist/src/drive-document-model/gen/node/operations.js +0 -2
  453. package/dist/src/drive-document-model/gen/node/operations.js.map +0 -1
  454. package/dist/src/drive-document-model/gen/object.d.ts +0 -17
  455. package/dist/src/drive-document-model/gen/object.d.ts.map +0 -1
  456. package/dist/src/drive-document-model/gen/object.js +0 -28
  457. package/dist/src/drive-document-model/gen/object.js.map +0 -1
  458. package/dist/src/storage/prisma/client/libquery_engine-debian-openssl-3.0.x.so.node +0 -0
  459. package/dist/tsconfig.lib.tsbuildinfo +0 -1
  460. /package/{dist/src → src}/storage/prisma/client/default.d.ts +0 -0
  461. /package/{dist/src → src}/storage/prisma/client/default.js +0 -0
  462. /package/{dist/src → src}/storage/prisma/client/edge.d.ts +0 -0
  463. /package/{dist/src → src}/storage/prisma/client/index-browser.js +0 -0
  464. /package/{dist/src → src}/storage/prisma/client/index.d.ts +0 -0
  465. /package/{dist/src → src}/storage/prisma/client/libquery_engine-darwin-arm64.dylib.node +0 -0
  466. /package/{dist/src → src}/storage/prisma/client/libquery_engine-linux-musl.so.node +0 -0
  467. /package/{dist/src → src}/storage/prisma/client/runtime/edge-esm.js +0 -0
  468. /package/{dist/src → src}/storage/prisma/client/runtime/edge.js +0 -0
  469. /package/{dist/src → src}/storage/prisma/client/runtime/index-browser.d.ts +0 -0
  470. /package/{dist/src → src}/storage/prisma/client/runtime/index-browser.js +0 -0
  471. /package/{dist/src → src}/storage/prisma/client/runtime/library.d.ts +0 -0
  472. /package/{dist/src → src}/storage/prisma/client/runtime/library.js +0 -0
  473. /package/{dist/src → src}/storage/prisma/client/runtime/react-native.js +0 -0
  474. /package/{dist/src → src}/storage/prisma/client/runtime/wasm.js +0 -0
  475. /package/{dist/src → src}/storage/prisma/client/wasm.d.ts +0 -0
  476. /package/{dist/src → src}/storage/prisma/client/wasm.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-listener.test.d.ts","sourceRoot":"","sources":["../../test/internal-listener.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,242 @@
1
+ import { addFile, driveDocumentModelModule, expectUTCTimestamp, expectUUID, InternalTransmitter, ReactorBuilder, } from "document-drive";
2
+ import { createPresignedHeader, documentModelCreateDocument, documentModelDocumentModelModule, generateId, setModelName, } from "document-model";
3
+ import { beforeEach, describe, expect, test, vi, vitest } from "vitest";
4
+ describe("Internal Listener", () => {
5
+ const documentModels = [
6
+ documentModelDocumentModelModule,
7
+ driveDocumentModelModule,
8
+ ];
9
+ const driveId = generateId();
10
+ async function buildServer(processor) {
11
+ const builder = new ReactorBuilder(documentModels);
12
+ const server = builder.build();
13
+ await server.initialize();
14
+ await server.addDrive({
15
+ id: driveId,
16
+ global: {
17
+ name: "Global Drive",
18
+ icon: "",
19
+ },
20
+ local: {
21
+ availableOffline: false,
22
+ listeners: [],
23
+ sharingType: "private",
24
+ triggers: [],
25
+ },
26
+ });
27
+ const listenerManager = builder.listenerManager;
28
+ // Create the listener and transmitter
29
+ const uuid = generateId();
30
+ const listener = {
31
+ driveId,
32
+ listenerId: uuid,
33
+ block: false,
34
+ filter: {
35
+ branch: ["main"],
36
+ documentId: ["*"],
37
+ documentType: ["*"],
38
+ scope: ["global"],
39
+ },
40
+ system: false,
41
+ label: `Internal #${uuid}`,
42
+ callInfo: {
43
+ data: "",
44
+ name: "Internal",
45
+ transmitterType: "Internal",
46
+ },
47
+ };
48
+ // TODO: circular reference
49
+ listener.transmitter = new InternalTransmitter(server, processor);
50
+ await listenerManager?.setListener(driveId, listener);
51
+ return server;
52
+ }
53
+ beforeEach(() => {
54
+ vi.setSystemTime(new Date("2024-01-01"));
55
+ });
56
+ test("should call transmit function of listener and acknowledge", async () => {
57
+ const transmitFn = vitest.fn((args) => {
58
+ return Promise.resolve();
59
+ });
60
+ const server = await buildServer({
61
+ onStrands: transmitFn,
62
+ onDisconnect: () => Promise.resolve(),
63
+ });
64
+ const drive = await server.getDrive(driveId);
65
+ await vi.waitFor(() => expect(transmitFn).toHaveBeenCalledTimes(1));
66
+ expect(transmitFn).toHaveBeenCalledWith([
67
+ {
68
+ branch: "main",
69
+ documentId: drive.header.id,
70
+ documentType: "powerhouse/document-drive",
71
+ driveId: drive.header.id,
72
+ operations: [],
73
+ scope: "global",
74
+ state: {},
75
+ },
76
+ ]);
77
+ const documentId = generateId();
78
+ const document = documentModelCreateDocument();
79
+ const header = createPresignedHeader(documentId, document.header.documentType);
80
+ document.header = header;
81
+ await server.addDocument(document);
82
+ const action = addFile({
83
+ id: documentId,
84
+ name: "test",
85
+ documentType: "powerhouse/document-model",
86
+ });
87
+ const result = await server.addAction(driveId, action);
88
+ await vi.waitFor(() => expect(transmitFn).toHaveBeenCalledTimes(2));
89
+ expect(transmitFn).toHaveBeenCalledWith([
90
+ expect.objectContaining({
91
+ branch: "main",
92
+ documentId: drive.header.id,
93
+ documentType: "powerhouse/document-drive",
94
+ driveId: drive.header.id,
95
+ operations: [
96
+ expect.objectContaining({
97
+ action: expect.objectContaining({
98
+ scope: "global",
99
+ type: "ADD_FILE",
100
+ input: {
101
+ id: documentId,
102
+ name: "test",
103
+ documentType: "powerhouse/document-model",
104
+ },
105
+ timestampUtcMs: expectUTCTimestamp(expect),
106
+ id: expectUUID(expect),
107
+ }),
108
+ hash: expect.stringMatching(/^[a-zA-Z0-9+/=]+$/),
109
+ id: expectUUID(expect),
110
+ index: 0,
111
+ input: {
112
+ id: documentId,
113
+ name: "test",
114
+ documentType: "powerhouse/document-model",
115
+ },
116
+ skip: 0,
117
+ timestampUtcMs: expectUTCTimestamp(expect),
118
+ type: "ADD_FILE",
119
+ previousState: expect.any(Object),
120
+ state: expect.any(Object),
121
+ }),
122
+ ],
123
+ scope: "global",
124
+ state: result.document.state.global,
125
+ }),
126
+ expect.objectContaining({
127
+ branch: "main",
128
+ documentId: document.header.id,
129
+ documentType: "powerhouse/document-model",
130
+ driveId: drive.header.id,
131
+ operations: [],
132
+ scope: "global",
133
+ state: {},
134
+ }),
135
+ ]);
136
+ const setModelNameAction = setModelName({ name: "test" });
137
+ await server.addAction(documentId, setModelNameAction);
138
+ await vi.waitFor(() => expect(transmitFn).toHaveBeenCalledTimes(3));
139
+ const state = {
140
+ author: {
141
+ name: "",
142
+ website: "",
143
+ },
144
+ description: "",
145
+ extension: "",
146
+ id: "",
147
+ name: "test",
148
+ specifications: [
149
+ {
150
+ changeLog: [],
151
+ modules: [],
152
+ state: {
153
+ global: {
154
+ examples: [],
155
+ initialValue: "",
156
+ schema: "",
157
+ },
158
+ local: {
159
+ examples: [],
160
+ initialValue: "",
161
+ schema: "",
162
+ },
163
+ },
164
+ version: 1,
165
+ },
166
+ ],
167
+ };
168
+ expect(transmitFn).toHaveBeenLastCalledWith([
169
+ expect.objectContaining({
170
+ branch: "main",
171
+ documentType: "powerhouse/document-model",
172
+ documentId,
173
+ driveId,
174
+ operations: [
175
+ expect.objectContaining({
176
+ action: expect.objectContaining({
177
+ scope: "global",
178
+ type: "SET_MODEL_NAME",
179
+ input: { name: "test" },
180
+ timestampUtcMs: expectUTCTimestamp(expect),
181
+ id: expectUUID(expect),
182
+ }),
183
+ hash: expect.stringMatching(/^[a-zA-Z0-9+/=]+$/),
184
+ id: expectUUID(expect),
185
+ index: 0,
186
+ input: { name: "test" },
187
+ skip: 0,
188
+ timestampUtcMs: expectUTCTimestamp(expect),
189
+ type: "SET_MODEL_NAME",
190
+ previousState: expect.any(Object),
191
+ state,
192
+ }),
193
+ ],
194
+ state,
195
+ scope: "global",
196
+ }),
197
+ ]);
198
+ const setModelNameAction2 = setModelName({ name: "test 2" });
199
+ await server.addAction(documentId, setModelNameAction2);
200
+ await vi.waitFor(() => expect(transmitFn).toHaveBeenCalledTimes(4));
201
+ expect(transmitFn).toHaveBeenLastCalledWith([
202
+ expect.objectContaining({
203
+ branch: "main",
204
+ documentType: "powerhouse/document-model",
205
+ documentId,
206
+ driveId,
207
+ operations: [
208
+ expect.objectContaining({
209
+ action: expect.objectContaining({
210
+ scope: "global",
211
+ type: "SET_MODEL_NAME",
212
+ input: { name: "test 2" },
213
+ timestampUtcMs: expectUTCTimestamp(expect),
214
+ id: expectUUID(expect),
215
+ }),
216
+ hash: expect.stringMatching(/^[a-zA-Z0-9+/=]+$/),
217
+ id: expectUUID(expect),
218
+ index: 1,
219
+ input: { name: "test 2" },
220
+ skip: 0,
221
+ timestampUtcMs: expectUTCTimestamp(expect),
222
+ type: "SET_MODEL_NAME",
223
+ previousState: expect.any(Object),
224
+ state: expect.objectContaining({ name: "test 2" }),
225
+ }),
226
+ ],
227
+ state: expect.objectContaining({ name: "test 2" }),
228
+ scope: "global",
229
+ }),
230
+ ]);
231
+ });
232
+ test("should call disconnect function of processor", async () => {
233
+ const disconnectFn = vitest.fn(() => Promise.resolve());
234
+ const server = await buildServer({
235
+ onStrands: () => Promise.resolve(),
236
+ onDisconnect: disconnectFn,
237
+ });
238
+ await server.deleteDrive(driveId);
239
+ expect(disconnectFn).toHaveBeenCalled();
240
+ });
241
+ });
242
+ //# sourceMappingURL=internal-listener.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-listener.test.js","sourceRoot":"","sources":["../../test/internal-listener.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=queue.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.test.d.ts","sourceRoot":"","sources":["../../test/queue.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,323 @@
1
+ import { addFile, addFolder, addListener, buildOperation, buildOperations, deleteNode, driveDocumentModelModule, driveDocumentReducer, EventQueueManager, InMemoryCache, MemoryStorage, ReactorBuilder, } from "document-drive";
2
+ import { createPresignedHeader, documentModelCreateDocument, documentModelDocumentModelModule, generateId, setModelName, } from "document-model";
3
+ import { setTimeout } from "node:timers/promises";
4
+ import { describe, it } from "vitest";
5
+ const REDIS_TLS_URL = process.env.REDIS_TLS_URL || "redis://localhost:6379";
6
+ const documentModels = [
7
+ documentModelDocumentModelModule,
8
+ driveDocumentModelModule,
9
+ ];
10
+ const queueLayers = [
11
+ // ["Memory Queue", () => Promise.resolve(new BaseQueueManager(3))],
12
+ ["Memory Event Queue", () => Promise.resolve(new EventQueueManager(2))],
13
+ /*[
14
+ "Redis Queue",
15
+ async () => {
16
+ try {
17
+ const client = await createClient({ url: REDIS_TLS_URL }).connect();
18
+ await client.flushAll();
19
+ return new RedisQueueManager(3, 0, client as RedisClientType);
20
+ } catch (error) {
21
+ console.error(error);
22
+ throw error;
23
+ }
24
+ },
25
+ ],*/
26
+ ];
27
+ describe.each(queueLayers)("Document Drive Server queuing with %s", async (_, buildQueue) => {
28
+ const CREATE_DRIVES = 10;
29
+ const ADD_OPERATIONS_TO_DRIVE = 10;
30
+ const createDrive = async (server) => {
31
+ const id = generateId();
32
+ await server.addDrive({
33
+ id,
34
+ slug: `name-${id}`,
35
+ global: {
36
+ name: "name",
37
+ icon: "icon",
38
+ },
39
+ local: {
40
+ availableOffline: false,
41
+ sharingType: "public",
42
+ listeners: [],
43
+ triggers: [],
44
+ },
45
+ });
46
+ const drive = await server.getDrive(id);
47
+ return drive;
48
+ };
49
+ const addOperationsToDrive = async (server, drive, queue = true) => {
50
+ const promisses = [];
51
+ for (let i = 0; i < ADD_OPERATIONS_TO_DRIVE; i++) {
52
+ const id = generateId();
53
+ drive = driveDocumentReducer(drive, addFile({
54
+ id,
55
+ name: id,
56
+ documentType: documentModelDocumentModelModule.documentModel.id,
57
+ }));
58
+ promisses.push(queue
59
+ ? server.queueOperations(drive.header.id, drive.operations.global)
60
+ : server.addOperations(drive.header.id, drive.operations.global));
61
+ }
62
+ return Promise.all(promisses);
63
+ };
64
+ it("does not block document queue until ADD_FILE is processed", async ({ expect, }) => {
65
+ const documentId = generateId();
66
+ const folderId = generateId();
67
+ const server = new ReactorBuilder(documentModels)
68
+ .withStorage(new MemoryStorage())
69
+ .build();
70
+ await server.initialize();
71
+ let drive = await createDrive(server);
72
+ const driveId = drive.header.id;
73
+ const documentType = documentModelDocumentModelModule.documentModel.id;
74
+ const driveOperations = buildOperations(driveDocumentReducer, drive, [
75
+ addFolder({ id: folderId, name: "folder 1" }),
76
+ addFile({
77
+ id: documentId,
78
+ name: "file 1",
79
+ parentFolder: folderId,
80
+ documentType,
81
+ }),
82
+ ]);
83
+ const document = documentModelCreateDocument();
84
+ const header = createPresignedHeader(documentId, documentType);
85
+ document.header = header;
86
+ await server.addDocument(document);
87
+ const mutation = buildOperation(documentModelDocumentModelModule.reducer, document, setModelName({
88
+ name: "foo",
89
+ }));
90
+ // queue mutation
91
+ const documentResult = server.queueOperations(documentId, [mutation]);
92
+ await expect(server.getDocument(documentId)).resolves.toMatchObject(document);
93
+ // now queue add file
94
+ const results = await server.queueOperations(driveId, driveOperations);
95
+ const errors = [results, await documentResult].filter((r) => !!r.error);
96
+ if (errors.length) {
97
+ errors.forEach((error) => console.error("Error queueing", error));
98
+ }
99
+ expect(errors.length).toBe(0);
100
+ // now get the drive and check that the rename was applied
101
+ drive = await server.getDrive(driveId);
102
+ expect(drive.state.global.nodes).toStrictEqual([
103
+ expect.objectContaining({
104
+ id: folderId,
105
+ name: "folder 1",
106
+ kind: "folder",
107
+ parentFolder: null,
108
+ }),
109
+ expect.objectContaining({
110
+ id: documentId,
111
+ name: "file 1",
112
+ kind: "file",
113
+ parentFolder: folderId,
114
+ documentType: documentModelDocumentModelModule.documentModel.id,
115
+ }),
116
+ ]);
117
+ const docModelDocument = await server.getDocument(documentId);
118
+ expect(docModelDocument.state.global.name).toBe("foo");
119
+ });
120
+ it("orders strands correctly", async ({ expect }) => {
121
+ const queue = await buildQueue();
122
+ const server = new ReactorBuilder(documentModels)
123
+ .withStorage(new MemoryStorage())
124
+ .withCache(new InMemoryCache())
125
+ .withQueueManager(queue)
126
+ .build();
127
+ await server.initialize();
128
+ let drive = await createDrive(server);
129
+ const driveId = drive.header.id;
130
+ const folderId = generateId();
131
+ const folderId2 = generateId();
132
+ const fileId = generateId();
133
+ const documentType = documentModelDocumentModelModule.documentModel.id;
134
+ const driveOperations = buildOperations(driveDocumentReducer, drive, [
135
+ addFolder({ id: folderId, name: "folder 1" }),
136
+ addFile({
137
+ id: fileId,
138
+ name: "file 1",
139
+ parentFolder: folderId,
140
+ documentType,
141
+ }),
142
+ ]);
143
+ const document = documentModelCreateDocument();
144
+ const header = createPresignedHeader(fileId, documentType);
145
+ await server.addDocument({ ...document, header });
146
+ const mutation = buildOperation(documentModelDocumentModelModule.reducer, document, setModelName({
147
+ name: "foo",
148
+ }));
149
+ const results = [
150
+ server.queueOperations(fileId, [mutation]),
151
+ server.queueOperations(driveId, driveOperations),
152
+ ];
153
+ await setTimeout();
154
+ results.push(server.queueOperations(driveId, [
155
+ buildOperation(driveDocumentReducer, drive, addFolder({
156
+ id: folderId2,
157
+ name: "folder 2",
158
+ })),
159
+ ]));
160
+ const errors = (await Promise.all(results))
161
+ .flat()
162
+ .filter((r) => !!r.error);
163
+ if (errors.length) {
164
+ errors.forEach((error) => console.error(error));
165
+ }
166
+ expect(errors.length).toBe(0);
167
+ drive = await server.getDrive(driveId);
168
+ expect(drive.state.global.nodes).toStrictEqual(expect.arrayContaining([
169
+ expect.objectContaining({
170
+ id: folderId,
171
+ name: "folder 1",
172
+ kind: "folder",
173
+ parentFolder: null,
174
+ }),
175
+ expect.objectContaining({
176
+ id: fileId,
177
+ name: "file 1",
178
+ kind: "file",
179
+ parentFolder: folderId,
180
+ documentType: documentModelDocumentModelModule.documentModel.id,
181
+ }),
182
+ expect.objectContaining({
183
+ id: folderId2,
184
+ name: "folder 2",
185
+ kind: "folder",
186
+ parentFolder: null,
187
+ }),
188
+ ]));
189
+ // add file 1 operation has to be processed after add folder 1
190
+ expect(drive.state.global.nodes.findIndex((n) => n.id === fileId)).toBeGreaterThan(drive.state.global.nodes.findIndex((n) => n.id === folderId));
191
+ // add folder 2 operation has to be processed before add folder 1
192
+ expect(drive.state.global.nodes.findIndex((n) => n.id === folderId2)).toBeGreaterThan(drive.state.global.nodes.findIndex((n) => n.id === folderId));
193
+ const docModelDocument = await server.getDocument(fileId);
194
+ expect(docModelDocument.state.global.name).toBe("foo");
195
+ });
196
+ it("does not block a document queue when the drive queue processes a delete node operation", async ({ expect, }) => {
197
+ const queue = await buildQueue();
198
+ const server = new ReactorBuilder(documentModels)
199
+ .withStorage(new MemoryStorage())
200
+ .withCache(new InMemoryCache())
201
+ .withQueueManager(queue)
202
+ .build();
203
+ await server.initialize();
204
+ let drive = await createDrive(server);
205
+ const driveId = drive.header.id;
206
+ const document = documentModelCreateDocument();
207
+ await server.addDocument(document);
208
+ // first doc op
209
+ const mutation = buildOperation(documentModelDocumentModelModule.reducer, document, setModelName({
210
+ name: "foo",
211
+ }));
212
+ // second doc op
213
+ const mutation2 = buildOperation(documentModelDocumentModelModule.reducer, document, setModelName({
214
+ name: "bar",
215
+ }));
216
+ // add file op
217
+ const nodeId = document.header.id;
218
+ const driveOperations = buildOperations(driveDocumentReducer, drive, [
219
+ addFile({
220
+ id: nodeId,
221
+ name: "file 1",
222
+ parentFolder: "folder 1",
223
+ documentType: documentModelDocumentModelModule.documentModel.id,
224
+ }),
225
+ ]);
226
+ // queue addFile and first doc op
227
+ const results1 = await Promise.all([
228
+ server.queueOperations(driveId, driveOperations),
229
+ server.queueOperations(nodeId, [mutation]),
230
+ ]);
231
+ const errors = results1
232
+ .flat()
233
+ .filter((r) => !!r.error);
234
+ expect(errors.length).toBe(0);
235
+ // delete node op
236
+ drive = await server.getDrive(driveId);
237
+ const deleteNodeOps = buildOperations(driveDocumentReducer, drive, [
238
+ deleteNode({ id: nodeId }),
239
+ ]);
240
+ // queue delete node op
241
+ await server.queueOperations(driveId, deleteNodeOps);
242
+ // ==> receives deleteNode and addFile operation?
243
+ await expect(server.queueOperations(nodeId, [mutation2])).resolves.toMatchObject({
244
+ document: { state: { global: { name: "bar" } } },
245
+ });
246
+ drive = await server.getDrive(driveId);
247
+ expect(drive.state.global.nodes).toStrictEqual([]);
248
+ });
249
+ it("queues operations when using addDriveOperations", async ({ expect, }) => {
250
+ const queue = await buildQueue();
251
+ const server = new ReactorBuilder(documentModels)
252
+ .withStorage(new MemoryStorage())
253
+ .withCache(new InMemoryCache())
254
+ .withQueueManager(queue)
255
+ .build();
256
+ await server.initialize();
257
+ const drives = await Promise.all(new Array(CREATE_DRIVES).fill(0).map(async (_, i) => {
258
+ return createDrive(server);
259
+ }));
260
+ const driveResults = await Promise.all(drives.map((drive) => {
261
+ expect(drive).toBeDefined();
262
+ return addOperationsToDrive(server, drive, false);
263
+ }));
264
+ expect(driveResults.flat().filter((f) => f.status === "ERROR").length).toBe(0);
265
+ });
266
+ it("produces no errors on queueDriveOperations", async ({ expect }) => {
267
+ const queue = await buildQueue();
268
+ const server = new ReactorBuilder(documentModels)
269
+ .withStorage(new MemoryStorage())
270
+ .withCache(new InMemoryCache())
271
+ .withQueueManager(queue)
272
+ .build();
273
+ await server.initialize();
274
+ const drives = await Promise.all(new Array(CREATE_DRIVES).fill(0).map(async (_, i) => {
275
+ return createDrive(server);
276
+ }));
277
+ const driveResults = await Promise.all(drives.map((drive) => {
278
+ expect(drive).toBeDefined();
279
+ return addOperationsToDrive(server, drive);
280
+ }));
281
+ // log errors
282
+ driveResults.flat().forEach((f) => {
283
+ if (f.status === "ERROR") {
284
+ console.error(f.error);
285
+ }
286
+ });
287
+ expect(driveResults.flat().filter((f) => f.status !== "SUCCESS").length).toBe(0);
288
+ });
289
+ it("adds operations with queueDriveAction", async ({ expect }) => {
290
+ const queue = await buildQueue();
291
+ const server = new ReactorBuilder(documentModels)
292
+ .withStorage(new MemoryStorage())
293
+ .withCache(new InMemoryCache())
294
+ .withQueueManager(queue)
295
+ .build();
296
+ await server.initialize();
297
+ const drive = await createDrive(server);
298
+ const driveId = drive.header.id;
299
+ const action = addListener({
300
+ listener: {
301
+ block: true,
302
+ callInfo: {
303
+ data: "",
304
+ name: "test",
305
+ transmitterType: "Internal",
306
+ },
307
+ filter: {
308
+ branch: [],
309
+ documentId: [],
310
+ documentType: [],
311
+ scope: [],
312
+ },
313
+ label: "test",
314
+ listenerId: "123",
315
+ system: true,
316
+ },
317
+ });
318
+ const result = await server.queueAction(driveId, action);
319
+ const drive2 = await server.getDrive(driveId);
320
+ expect(drive2.state.local.listeners.length).toBe(1);
321
+ });
322
+ });
323
+ //# sourceMappingURL=queue.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.test.js","sourceRoot":"","sources":["../../test/queue.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=reactor.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactor.test.d.ts","sourceRoot":"","sources":["../../test/reactor.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ import { ReactorBuilder } from "document-drive";
2
+ import { describe, test } from "vitest";
3
+ import { driveDocumentModelModule } from "document-drive";
4
+ import { documentModelCreateDocument, documentModelDocumentModelModule, } from "document-model";
5
+ describe("Internal Listener", () => {
6
+ const documentModels = [
7
+ documentModelDocumentModelModule,
8
+ driveDocumentModelModule,
9
+ ];
10
+ async function buildReactor() {
11
+ const builder = new ReactorBuilder(documentModels);
12
+ const reactor = builder.build();
13
+ await reactor.initialize();
14
+ return reactor;
15
+ }
16
+ test("should add document", async ({ expect }) => {
17
+ const reactor = await buildReactor();
18
+ const documentToCreate = documentModelCreateDocument();
19
+ const createdDocument = await reactor.addDocument(documentToCreate);
20
+ expect(createdDocument).toMatchObject(documentToCreate);
21
+ const retrievedDocument = await reactor.getDocument(createdDocument.header.id);
22
+ expect(retrievedDocument).toMatchObject(createdDocument);
23
+ });
24
+ test("should create document of a given document type", async ({ expect, }) => {
25
+ const reactor = await buildReactor();
26
+ const document = await reactor.addDocument("powerhouse/document-model");
27
+ expect(document).toBeDefined();
28
+ const result = await reactor.getDocument(document.header.id);
29
+ expect(result).toStrictEqual(document);
30
+ });
31
+ });
32
+ //# sourceMappingURL=reactor.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactor.test.js","sourceRoot":"","sources":["../../test/reactor.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,GACjC,MAAM,gBAAgB,CAAC;AAExB,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,MAAM,cAAc,GAAG;QACrB,gCAAgC;QAChC,wBAAwB;KACK,CAAC;IAEhC,KAAK,UAAU,YAAY;QACzB,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,cAAc,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,qBAAqB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC/C,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;QAErC,MAAM,gBAAgB,GAAG,2BAA2B,EAAE,CAAC;QACvD,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QACpE,MAAM,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAExD,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,WAAW,CACjD,eAAe,CAAC,MAAM,CAAC,EAAE,CAC1B,CAAC;QACF,MAAM,CAAC,iBAAiB,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iDAAiD,EAAE,KAAK,EAAE,EAC7D,MAAM,GACP,EAAE,EAAE;QACH,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;QAErC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;QACxE,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QAE/B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=read-mode.test.d.ts.map