@powerhousedao/reactor-api 6.0.0-staging.3 → 6.0.0

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 (338) hide show
  1. package/README.md +6 -0
  2. package/dist/index.d.mts +3085 -0
  3. package/dist/index.d.mts.map +1 -0
  4. package/dist/index.mjs +6720 -0
  5. package/dist/index.mjs.map +1 -0
  6. package/dist/src/packages/https-hooks.d.mts +39 -0
  7. package/dist/src/packages/https-hooks.d.mts.map +1 -0
  8. package/dist/src/packages/https-hooks.mjs +82 -0
  9. package/dist/src/packages/https-hooks.mjs.map +1 -0
  10. package/dist/src/packages/vite-loader.d.mts +29 -0
  11. package/dist/src/packages/vite-loader.d.mts.map +1 -0
  12. package/dist/src/packages/vite-loader.mjs +145 -0
  13. package/dist/src/packages/vite-loader.mjs.map +1 -0
  14. package/dist/types-Do4QTfT3.d.mts +37 -0
  15. package/dist/types-Do4QTfT3.d.mts.map +1 -0
  16. package/dist/utils-BFkbSO_H.mjs +296 -0
  17. package/dist/utils-BFkbSO_H.mjs.map +1 -0
  18. package/package.json +60 -42
  19. package/dist/codegen.d.ts +0 -4
  20. package/dist/codegen.d.ts.map +0 -1
  21. package/dist/codegen.js +0 -38
  22. package/dist/codegen.js.map +0 -1
  23. package/dist/index.d.ts +0 -14
  24. package/dist/index.d.ts.map +0 -1
  25. package/dist/index.js +0 -14
  26. package/dist/index.js.map +0 -1
  27. package/dist/src/config.d.ts +0 -6
  28. package/dist/src/config.d.ts.map +0 -1
  29. package/dist/src/config.js +0 -6
  30. package/dist/src/config.js.map +0 -1
  31. package/dist/src/graphql/analytics-subgraph.d.ts +0 -14
  32. package/dist/src/graphql/analytics-subgraph.d.ts.map +0 -1
  33. package/dist/src/graphql/analytics-subgraph.js +0 -26
  34. package/dist/src/graphql/analytics-subgraph.js.map +0 -1
  35. package/dist/src/graphql/auth/index.d.ts +0 -2
  36. package/dist/src/graphql/auth/index.d.ts.map +0 -1
  37. package/dist/src/graphql/auth/index.js +0 -2
  38. package/dist/src/graphql/auth/index.js.map +0 -1
  39. package/dist/src/graphql/auth/resolvers.d.ts +0 -149
  40. package/dist/src/graphql/auth/resolvers.d.ts.map +0 -1
  41. package/dist/src/graphql/auth/resolvers.js +0 -173
  42. package/dist/src/graphql/auth/resolvers.js.map +0 -1
  43. package/dist/src/graphql/auth/schema.graphql +0 -173
  44. package/dist/src/graphql/auth/subgraph.d.ts +0 -177
  45. package/dist/src/graphql/auth/subgraph.d.ts.map +0 -1
  46. package/dist/src/graphql/auth/subgraph.js +0 -340
  47. package/dist/src/graphql/auth/subgraph.js.map +0 -1
  48. package/dist/src/graphql/base-subgraph.d.ts +0 -20
  49. package/dist/src/graphql/base-subgraph.d.ts.map +0 -1
  50. package/dist/src/graphql/base-subgraph.js +0 -34
  51. package/dist/src/graphql/base-subgraph.js.map +0 -1
  52. package/dist/src/graphql/document-model-subgraph.d.ts +0 -103
  53. package/dist/src/graphql/document-model-subgraph.d.ts.map +0 -1
  54. package/dist/src/graphql/document-model-subgraph.js +0 -595
  55. package/dist/src/graphql/document-model-subgraph.js.map +0 -1
  56. package/dist/src/graphql/drive-subgraph.d.ts +0 -25
  57. package/dist/src/graphql/drive-subgraph.d.ts.map +0 -1
  58. package/dist/src/graphql/drive-subgraph.js +0 -488
  59. package/dist/src/graphql/drive-subgraph.js.map +0 -1
  60. package/dist/src/graphql/graphql-manager.d.ts +0 -52
  61. package/dist/src/graphql/graphql-manager.d.ts.map +0 -1
  62. package/dist/src/graphql/graphql-manager.js +0 -491
  63. package/dist/src/graphql/graphql-manager.js.map +0 -1
  64. package/dist/src/graphql/index.d.ts +0 -10
  65. package/dist/src/graphql/index.d.ts.map +0 -1
  66. package/dist/src/graphql/index.js +0 -10
  67. package/dist/src/graphql/index.js.map +0 -1
  68. package/dist/src/graphql/playground.d.ts +0 -2
  69. package/dist/src/graphql/playground.d.ts.map +0 -1
  70. package/dist/src/graphql/playground.js +0 -74
  71. package/dist/src/graphql/playground.js.map +0 -1
  72. package/dist/src/graphql/reactor/adapters.d.ts +0 -62
  73. package/dist/src/graphql/reactor/adapters.d.ts.map +0 -1
  74. package/dist/src/graphql/reactor/adapters.js +0 -270
  75. package/dist/src/graphql/reactor/adapters.js.map +0 -1
  76. package/dist/src/graphql/reactor/factory.d.ts +0 -95
  77. package/dist/src/graphql/reactor/factory.d.ts.map +0 -1
  78. package/dist/src/graphql/reactor/factory.js +0 -7
  79. package/dist/src/graphql/reactor/factory.js.map +0 -1
  80. package/dist/src/graphql/reactor/gen/graphql.d.ts +0 -1355
  81. package/dist/src/graphql/reactor/gen/graphql.d.ts.map +0 -1
  82. package/dist/src/graphql/reactor/gen/graphql.js +0 -615
  83. package/dist/src/graphql/reactor/gen/graphql.js.map +0 -1
  84. package/dist/src/graphql/reactor/index.d.ts +0 -4
  85. package/dist/src/graphql/reactor/index.d.ts.map +0 -1
  86. package/dist/src/graphql/reactor/index.js +0 -4
  87. package/dist/src/graphql/reactor/index.js.map +0 -1
  88. package/dist/src/graphql/reactor/operations.graphql +0 -336
  89. package/dist/src/graphql/reactor/pubsub.d.ts +0 -27
  90. package/dist/src/graphql/reactor/pubsub.d.ts.map +0 -1
  91. package/dist/src/graphql/reactor/pubsub.js +0 -93
  92. package/dist/src/graphql/reactor/pubsub.js.map +0 -1
  93. package/dist/src/graphql/reactor/requester.d.ts +0 -4
  94. package/dist/src/graphql/reactor/requester.d.ts.map +0 -1
  95. package/dist/src/graphql/reactor/requester.js +0 -22
  96. package/dist/src/graphql/reactor/requester.js.map +0 -1
  97. package/dist/src/graphql/reactor/requester.with-zod.d.ts +0 -4
  98. package/dist/src/graphql/reactor/requester.with-zod.d.ts.map +0 -1
  99. package/dist/src/graphql/reactor/requester.with-zod.js +0 -119
  100. package/dist/src/graphql/reactor/requester.with-zod.js.map +0 -1
  101. package/dist/src/graphql/reactor/resolvers.d.ts +0 -211
  102. package/dist/src/graphql/reactor/resolvers.d.ts.map +0 -1
  103. package/dist/src/graphql/reactor/resolvers.js +0 -595
  104. package/dist/src/graphql/reactor/resolvers.js.map +0 -1
  105. package/dist/src/graphql/reactor/schema.graphql +0 -469
  106. package/dist/src/graphql/reactor/subgraph.d.ts +0 -47
  107. package/dist/src/graphql/reactor/subgraph.d.ts.map +0 -1
  108. package/dist/src/graphql/reactor/subgraph.js +0 -522
  109. package/dist/src/graphql/reactor/subgraph.js.map +0 -1
  110. package/dist/src/graphql/reactor/validation.d.ts +0 -120
  111. package/dist/src/graphql/reactor/validation.d.ts.map +0 -1
  112. package/dist/src/graphql/reactor/validation.js +0 -87
  113. package/dist/src/graphql/reactor/validation.js.map +0 -1
  114. package/dist/src/graphql/system/env/getters.d.ts +0 -2
  115. package/dist/src/graphql/system/env/getters.d.ts.map +0 -1
  116. package/dist/src/graphql/system/env/getters.js +0 -4
  117. package/dist/src/graphql/system/env/getters.js.map +0 -1
  118. package/dist/src/graphql/system/env/index.d.ts +0 -2
  119. package/dist/src/graphql/system/env/index.d.ts.map +0 -1
  120. package/dist/src/graphql/system/env/index.js +0 -5
  121. package/dist/src/graphql/system/env/index.js.map +0 -1
  122. package/dist/src/graphql/system/index.d.ts +0 -2
  123. package/dist/src/graphql/system/index.d.ts.map +0 -1
  124. package/dist/src/graphql/system/index.js +0 -2
  125. package/dist/src/graphql/system/index.js.map +0 -1
  126. package/dist/src/graphql/system/types.d.ts +0 -2
  127. package/dist/src/graphql/system/types.d.ts.map +0 -1
  128. package/dist/src/graphql/system/types.js +0 -2
  129. package/dist/src/graphql/system/types.js.map +0 -1
  130. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts +0 -57
  131. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts.map +0 -1
  132. package/dist/src/graphql/temp-hack-rwa-type-defs.js +0 -2
  133. package/dist/src/graphql/temp-hack-rwa-type-defs.js.map +0 -1
  134. package/dist/src/graphql/types.d.ts +0 -103
  135. package/dist/src/graphql/types.d.ts.map +0 -1
  136. package/dist/src/graphql/types.js +0 -2
  137. package/dist/src/graphql/types.js.map +0 -1
  138. package/dist/src/graphql/utils.d.ts +0 -26
  139. package/dist/src/graphql/utils.d.ts.map +0 -1
  140. package/dist/src/graphql/utils.js +0 -104
  141. package/dist/src/graphql/utils.js.map +0 -1
  142. package/dist/src/graphql/websocket.d.ts +0 -3
  143. package/dist/src/graphql/websocket.d.ts.map +0 -1
  144. package/dist/src/graphql/websocket.js +0 -15
  145. package/dist/src/graphql/websocket.js.map +0 -1
  146. package/dist/src/migrations/001_create_document_permissions.d.ts +0 -4
  147. package/dist/src/migrations/001_create_document_permissions.d.ts.map +0 -1
  148. package/dist/src/migrations/001_create_document_permissions.js +0 -91
  149. package/dist/src/migrations/001_create_document_permissions.js.map +0 -1
  150. package/dist/src/migrations/index.d.ts +0 -10
  151. package/dist/src/migrations/index.d.ts.map +0 -1
  152. package/dist/src/migrations/index.js +0 -56
  153. package/dist/src/migrations/index.js.map +0 -1
  154. package/dist/src/packages/import-loader.d.ts +0 -16
  155. package/dist/src/packages/import-loader.d.ts.map +0 -1
  156. package/dist/src/packages/import-loader.js +0 -61
  157. package/dist/src/packages/import-loader.js.map +0 -1
  158. package/dist/src/packages/import-resolver.d.ts +0 -5
  159. package/dist/src/packages/import-resolver.d.ts.map +0 -1
  160. package/dist/src/packages/import-resolver.js +0 -127
  161. package/dist/src/packages/import-resolver.js.map +0 -1
  162. package/dist/src/packages/package-manager.d.ts +0 -34
  163. package/dist/src/packages/package-manager.d.ts.map +0 -1
  164. package/dist/src/packages/package-manager.js +0 -213
  165. package/dist/src/packages/package-manager.js.map +0 -1
  166. package/dist/src/packages/types.d.ts +0 -40
  167. package/dist/src/packages/types.d.ts.map +0 -1
  168. package/dist/src/packages/types.js +0 -2
  169. package/dist/src/packages/types.js.map +0 -1
  170. package/dist/src/packages/util.d.ts +0 -27
  171. package/dist/src/packages/util.d.ts.map +0 -1
  172. package/dist/src/packages/util.js +0 -97
  173. package/dist/src/packages/util.js.map +0 -1
  174. package/dist/src/packages/vite-loader.d.ts +0 -25
  175. package/dist/src/packages/vite-loader.d.ts.map +0 -1
  176. package/dist/src/packages/vite-loader.js +0 -182
  177. package/dist/src/packages/vite-loader.js.map +0 -1
  178. package/dist/src/server.d.ts +0 -80
  179. package/dist/src/server.d.ts.map +0 -1
  180. package/dist/src/server.js +0 -427
  181. package/dist/src/server.js.map +0 -1
  182. package/dist/src/services/auth.service.d.ts +0 -68
  183. package/dist/src/services/auth.service.d.ts.map +0 -1
  184. package/dist/src/services/auth.service.js +0 -190
  185. package/dist/src/services/auth.service.js.map +0 -1
  186. package/dist/src/services/document-permission.service.d.ts +0 -201
  187. package/dist/src/services/document-permission.service.d.ts.map +0 -1
  188. package/dist/src/services/document-permission.service.js +0 -636
  189. package/dist/src/services/document-permission.service.js.map +0 -1
  190. package/dist/src/sync/types.d.ts +0 -10
  191. package/dist/src/sync/types.d.ts.map +0 -1
  192. package/dist/src/sync/types.js +0 -2
  193. package/dist/src/sync/types.js.map +0 -1
  194. package/dist/src/sync/utils.d.ts +0 -7
  195. package/dist/src/sync/utils.d.ts.map +0 -1
  196. package/dist/src/sync/utils.js +0 -78
  197. package/dist/src/sync/utils.js.map +0 -1
  198. package/dist/src/tracing.d.ts +0 -4
  199. package/dist/src/tracing.d.ts.map +0 -1
  200. package/dist/src/tracing.js +0 -122
  201. package/dist/src/tracing.js.map +0 -1
  202. package/dist/src/types.d.ts +0 -18
  203. package/dist/src/types.d.ts.map +0 -1
  204. package/dist/src/types.js +0 -2
  205. package/dist/src/types.js.map +0 -1
  206. package/dist/src/utils/auth.d.ts +0 -3
  207. package/dist/src/utils/auth.d.ts.map +0 -1
  208. package/dist/src/utils/auth.js +0 -19
  209. package/dist/src/utils/auth.js.map +0 -1
  210. package/dist/src/utils/create-schema.d.ts +0 -31
  211. package/dist/src/utils/create-schema.d.ts.map +0 -1
  212. package/dist/src/utils/create-schema.js +0 -548
  213. package/dist/src/utils/create-schema.js.map +0 -1
  214. package/dist/src/utils/db.d.ts +0 -74
  215. package/dist/src/utils/db.d.ts.map +0 -1
  216. package/dist/src/utils/db.js +0 -101
  217. package/dist/src/utils/db.js.map +0 -1
  218. package/dist/src/utils/drive-url.d.ts +0 -2
  219. package/dist/src/utils/drive-url.d.ts.map +0 -1
  220. package/dist/src/utils/drive-url.js +0 -3
  221. package/dist/src/utils/drive-url.js.map +0 -1
  222. package/dist/src/utils/index.d.ts +0 -4
  223. package/dist/src/utils/index.d.ts.map +0 -1
  224. package/dist/src/utils/index.js +0 -4
  225. package/dist/src/utils/index.js.map +0 -1
  226. package/dist/test/benchmarks/load.bench.d.ts +0 -2
  227. package/dist/test/benchmarks/load.bench.d.ts.map +0 -1
  228. package/dist/test/benchmarks/load.bench.js +0 -73
  229. package/dist/test/benchmarks/load.bench.js.map +0 -1
  230. package/dist/test/benchmarks/sync.bench.d.ts +0 -2
  231. package/dist/test/benchmarks/sync.bench.d.ts.map +0 -1
  232. package/dist/test/benchmarks/sync.bench.js +0 -119
  233. package/dist/test/benchmarks/sync.bench.js.map +0 -1
  234. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts +0 -2
  235. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts.map +0 -1
  236. package/dist/test/connect-switchboard-reshuffle-convergence.test.js +0 -203
  237. package/dist/test/connect-switchboard-reshuffle-convergence.test.js.map +0 -1
  238. package/dist/test/connect-switchboard-sync.test.d.ts +0 -2
  239. package/dist/test/connect-switchboard-sync.test.d.ts.map +0 -1
  240. package/dist/test/connect-switchboard-sync.test.js +0 -581
  241. package/dist/test/connect-switchboard-sync.test.js.map +0 -1
  242. package/dist/test/document-drive-subgraph.test.d.ts +0 -2
  243. package/dist/test/document-drive-subgraph.test.d.ts.map +0 -1
  244. package/dist/test/document-drive-subgraph.test.js +0 -186
  245. package/dist/test/document-drive-subgraph.test.js.map +0 -1
  246. package/dist/test/document-model-subgraph-legacy-permissions.test.d.ts +0 -2
  247. package/dist/test/document-model-subgraph-legacy-permissions.test.d.ts.map +0 -1
  248. package/dist/test/document-model-subgraph-legacy-permissions.test.js +0 -518
  249. package/dist/test/document-model-subgraph-legacy-permissions.test.js.map +0 -1
  250. package/dist/test/document-model-subgraph-permissions.test.d.ts +0 -2
  251. package/dist/test/document-model-subgraph-permissions.test.d.ts.map +0 -1
  252. package/dist/test/document-model-subgraph-permissions.test.js +0 -635
  253. package/dist/test/document-model-subgraph-permissions.test.js.map +0 -1
  254. package/dist/test/document-model-subgraph.test.d.ts +0 -2
  255. package/dist/test/document-model-subgraph.test.d.ts.map +0 -1
  256. package/dist/test/document-model-subgraph.test.js +0 -441
  257. package/dist/test/document-model-subgraph.test.js.map +0 -1
  258. package/dist/test/document-permission.service.test.d.ts +0 -2
  259. package/dist/test/document-permission.service.test.d.ts.map +0 -1
  260. package/dist/test/document-permission.service.test.js +0 -480
  261. package/dist/test/document-permission.service.test.js.map +0 -1
  262. package/dist/test/drive-handlers.d.ts +0 -4
  263. package/dist/test/drive-handlers.d.ts.map +0 -1
  264. package/dist/test/drive-handlers.js +0 -39
  265. package/dist/test/drive-handlers.js.map +0 -1
  266. package/dist/test/drive-info-endpoint.test.d.ts +0 -2
  267. package/dist/test/drive-info-endpoint.test.d.ts.map +0 -1
  268. package/dist/test/drive-info-endpoint.test.js +0 -123
  269. package/dist/test/drive-info-endpoint.test.js.map +0 -1
  270. package/dist/test/drive-subgraph-permissions.test.d.ts +0 -2
  271. package/dist/test/drive-subgraph-permissions.test.d.ts.map +0 -1
  272. package/dist/test/drive-subgraph-permissions.test.js +0 -195
  273. package/dist/test/drive-subgraph-permissions.test.js.map +0 -1
  274. package/dist/test/drive.test.d.ts +0 -2
  275. package/dist/test/drive.test.d.ts.map +0 -1
  276. package/dist/test/drive.test.js +0 -142
  277. package/dist/test/drive.test.js.map +0 -1
  278. package/dist/test/identity-integration.test.d.ts +0 -2
  279. package/dist/test/identity-integration.test.d.ts.map +0 -1
  280. package/dist/test/identity-integration.test.js +0 -349
  281. package/dist/test/identity-integration.test.js.map +0 -1
  282. package/dist/test/index.d.ts +0 -3
  283. package/dist/test/index.d.ts.map +0 -1
  284. package/dist/test/index.js +0 -3
  285. package/dist/test/index.js.map +0 -1
  286. package/dist/test/permissions-integration.test.d.ts +0 -2
  287. package/dist/test/permissions-integration.test.d.ts.map +0 -1
  288. package/dist/test/permissions-integration.test.js +0 -421
  289. package/dist/test/permissions-integration.test.js.map +0 -1
  290. package/dist/test/pull-responder-transmitter.test.d.ts +0 -2
  291. package/dist/test/pull-responder-transmitter.test.d.ts.map +0 -1
  292. package/dist/test/pull-responder-transmitter.test.js +0 -220
  293. package/dist/test/pull-responder-transmitter.test.js.map +0 -1
  294. package/dist/test/push-backfill.test.d.ts +0 -2
  295. package/dist/test/push-backfill.test.d.ts.map +0 -1
  296. package/dist/test/push-backfill.test.js +0 -298
  297. package/dist/test/push-backfill.test.js.map +0 -1
  298. package/dist/test/push-transmitter.test.d.ts +0 -2
  299. package/dist/test/push-transmitter.test.d.ts.map +0 -1
  300. package/dist/test/push-transmitter.test.js +0 -179
  301. package/dist/test/push-transmitter.test.js.map +0 -1
  302. package/dist/test/reactor-adapters.test.d.ts +0 -2
  303. package/dist/test/reactor-adapters.test.d.ts.map +0 -1
  304. package/dist/test/reactor-adapters.test.js +0 -379
  305. package/dist/test/reactor-adapters.test.js.map +0 -1
  306. package/dist/test/reactor-client.test.d.ts +0 -2
  307. package/dist/test/reactor-client.test.d.ts.map +0 -1
  308. package/dist/test/reactor-client.test.js +0 -212
  309. package/dist/test/reactor-client.test.js.map +0 -1
  310. package/dist/test/reactor-resolvers.test.d.ts +0 -2
  311. package/dist/test/reactor-resolvers.test.d.ts.map +0 -1
  312. package/dist/test/reactor-resolvers.test.js +0 -258
  313. package/dist/test/reactor-resolvers.test.js.map +0 -1
  314. package/dist/test/reactor-subgraph-permissions.test.d.ts +0 -2
  315. package/dist/test/reactor-subgraph-permissions.test.d.ts.map +0 -1
  316. package/dist/test/reactor-subgraph-permissions.test.js +0 -397
  317. package/dist/test/reactor-subgraph-permissions.test.js.map +0 -1
  318. package/dist/test/router.test.d.ts +0 -2
  319. package/dist/test/router.test.d.ts.map +0 -1
  320. package/dist/test/router.test.js +0 -38
  321. package/dist/test/router.test.js.map +0 -1
  322. package/dist/test/subscriptions.test.d.ts +0 -2
  323. package/dist/test/subscriptions.test.d.ts.map +0 -1
  324. package/dist/test/subscriptions.test.js +0 -248
  325. package/dist/test/subscriptions.test.js.map +0 -1
  326. package/dist/test/utils/gql-resolver-bridge.d.ts +0 -15
  327. package/dist/test/utils/gql-resolver-bridge.d.ts.map +0 -1
  328. package/dist/test/utils/gql-resolver-bridge.js +0 -89
  329. package/dist/test/utils/gql-resolver-bridge.js.map +0 -1
  330. package/dist/test/utils.d.ts +0 -10
  331. package/dist/test/utils.d.ts.map +0 -1
  332. package/dist/test/utils.js +0 -23
  333. package/dist/test/utils.js.map +0 -1
  334. package/dist/tsconfig.tsbuildinfo +0 -1
  335. package/dist/vitest.config.d.ts +0 -3
  336. package/dist/vitest.config.d.ts.map +0 -1
  337. package/dist/vitest.config.js +0 -38
  338. package/dist/vitest.config.js.map +0 -1
@@ -1,220 +0,0 @@
1
- import { createDriveHandlers, expectUUID, getDocumentScopeIndexes, testSetupReactor, } from "@powerhousedao/reactor-api/test";
2
- import { PullResponderTransmitter, addFile, addFolder } from "document-drive";
3
- import { documentModelCreateDocument, setAuthorName } from "document-model";
4
- import { generateId } from "document-model/core";
5
- import { setupServer } from "msw/node";
6
- import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
7
- const remoteUrl = "http://test.com/d/test";
8
- describe("Pull Responder Transmitter", () => {
9
- let server;
10
- let remoteReactor;
11
- const driveId = generateId();
12
- const remoteDrive = {
13
- id: driveId,
14
- global: {
15
- name: "Test Drive",
16
- },
17
- };
18
- const triggerOptions = {
19
- pullFilter: {
20
- branch: ["main"],
21
- documentId: ["*"],
22
- documentType: ["*"],
23
- scope: ["global"],
24
- },
25
- pullInterval: 50,
26
- };
27
- async function setupTrigger() {
28
- const { listenerManager } = await testSetupReactor();
29
- return PullResponderTransmitter.createPullResponderTrigger(driveId, remoteUrl, triggerOptions, listenerManager);
30
- }
31
- beforeEach(async () => {
32
- const { reactor } = await testSetupReactor();
33
- const drive = await reactor.addDrive(remoteDrive);
34
- remoteReactor = reactor;
35
- server = setupServer(...createDriveHandlers(reactor, drive.header.id));
36
- server.listen({ onUnhandledRequest: "error" });
37
- });
38
- afterEach(() => {
39
- server.resetHandlers(); // Reset any handlers overridden during a test
40
- server.close();
41
- });
42
- it("should register listener and create trigger", async () => {
43
- const trigger = await setupTrigger();
44
- expect(trigger).toStrictEqual({
45
- driveId: driveId,
46
- filter: triggerOptions.pullFilter,
47
- type: "PullResponder",
48
- id: expectUUID(expect),
49
- data: {
50
- interval: triggerOptions.pullInterval.toString(),
51
- listenerId: expectUUID(expect),
52
- url: remoteUrl,
53
- },
54
- });
55
- const remoteListener = remoteReactor.listeners.getListenerState(driveId, trigger.data.listenerId);
56
- expect(remoteListener).toMatchObject({
57
- listener: {
58
- driveId: driveId,
59
- listenerId: trigger.data.listenerId,
60
- filter: triggerOptions.pullFilter,
61
- },
62
- });
63
- });
64
- it("should pull drive operation from remote reactor", async () => {
65
- const { reactor } = await testSetupReactor();
66
- const trigger = await setupTrigger();
67
- await reactor.addDrive({
68
- id: driveId,
69
- global: remoteDrive.global,
70
- local: {
71
- availableOffline: true,
72
- triggers: [trigger],
73
- },
74
- });
75
- const result = await remoteReactor.queueAction(driveId, addFolder({ id: generateId(), name: "test" }));
76
- await vi.waitFor(async () => {
77
- const drive = await reactor.getDrive(driveId);
78
- expect(getDocumentScopeIndexes(drive)).toStrictEqual({
79
- global: 0,
80
- local: -1,
81
- });
82
- const resultDrive = result.document;
83
- expect(drive.state.global).toStrictEqual(resultDrive.state.global);
84
- }, {
85
- timeout: 1000,
86
- });
87
- await reactor.deleteDrive(driveId);
88
- });
89
- it("should push new document to remote reactor", async () => {
90
- const { reactor } = await testSetupReactor();
91
- const trigger = await setupTrigger();
92
- await reactor.addDrive({
93
- id: driveId,
94
- global: remoteDrive.global,
95
- local: {
96
- availableOffline: true,
97
- triggers: [trigger],
98
- },
99
- });
100
- const newDocument = documentModelCreateDocument();
101
- const documentId = newDocument.header.id;
102
- const document = await remoteReactor.addDocument(newDocument);
103
- const result = await remoteReactor.queueAction(driveId, addFile({
104
- id: documentId,
105
- name: "test",
106
- documentType: document.header.documentType,
107
- }));
108
- await vi.waitFor(async () => {
109
- const drive = await reactor.getDrive(driveId);
110
- expect(getDocumentScopeIndexes(drive)).toStrictEqual({
111
- global: 0,
112
- local: -1,
113
- });
114
- const resultDrive = result.document;
115
- expect(drive.state.global).toStrictEqual(resultDrive.state.global);
116
- });
117
- await vi.waitFor(async () => {
118
- const document = (await reactor.getDocument(documentId));
119
- expect(getDocumentScopeIndexes(document)).toStrictEqual({
120
- global: -1,
121
- local: -1,
122
- });
123
- const remoteDocument = (await remoteReactor.getDocument(documentId));
124
- expect(document.state.global).toStrictEqual(remoteDocument.state.global);
125
- });
126
- await reactor.deleteDrive(driveId);
127
- });
128
- it("should push new document with operations to remote reactor", async () => {
129
- const { reactor } = await testSetupReactor();
130
- const trigger = await setupTrigger();
131
- await reactor.addDrive({
132
- id: driveId,
133
- global: remoteDrive.global,
134
- local: {
135
- availableOffline: true,
136
- triggers: [trigger],
137
- },
138
- });
139
- const newDocument = documentModelCreateDocument();
140
- const documentId = newDocument.header.id;
141
- const document = await remoteReactor.addDocument(newDocument);
142
- const result = await remoteReactor.queueAction(documentId, setAuthorName({
143
- authorName: "test",
144
- }));
145
- await remoteReactor.queueAction(driveId, addFile({
146
- id: documentId,
147
- name: "test",
148
- documentType: document.header.documentType,
149
- }));
150
- await vi.waitFor(async () => {
151
- const document = (await reactor.getDocument(documentId));
152
- expect(getDocumentScopeIndexes(document)).toStrictEqual({
153
- global: 0,
154
- local: -1,
155
- });
156
- const resultDocument = result.document;
157
- expect(document.state.global).toStrictEqual(resultDocument.state.global);
158
- });
159
- await reactor.deleteDrive(driveId);
160
- });
161
- it("should persist triggers in drive storage and retrieve them correctly", async () => {
162
- const { reactor } = await testSetupReactor();
163
- const trigger = await setupTrigger();
164
- // Create a drive with triggers and listeners
165
- const testListeners = [
166
- {
167
- listenerId: "test-listener-1",
168
- label: "Test Listener",
169
- version: "1.0.0",
170
- url: "https://example.com/listener",
171
- system: false,
172
- status: "CONNECTING",
173
- block: false,
174
- callInfo: {
175
- data: "",
176
- name: "Test Listener",
177
- transmitterType: "PullResponder",
178
- },
179
- filter: {
180
- documentType: ["*"],
181
- documentId: ["*"],
182
- scope: ["global"],
183
- branch: ["main"],
184
- },
185
- },
186
- ];
187
- const createdDrive = await reactor.addDrive({
188
- id: generateId(),
189
- global: {
190
- name: "Test Drive with Triggers",
191
- icon: null,
192
- },
193
- local: {
194
- availableOffline: true,
195
- triggers: [trigger],
196
- listeners: testListeners,
197
- sharingType: "private",
198
- },
199
- });
200
- const createdDriveId = createdDrive.header.id;
201
- // Verify initial state has triggers and listeners
202
- expect(createdDrive.state.local.triggers).toHaveLength(1);
203
- expect(createdDrive.state.local.triggers[0].id).toBe(trigger.id);
204
- expect(createdDrive.state.local.listeners).toHaveLength(1);
205
- expect(createdDrive.state.local.listeners[0].listenerId).toBe(testListeners[0].listenerId);
206
- // Now retrieve the drive from storage (simulating a restart)
207
- const retrievedDrive = await reactor.getDrive(createdDriveId);
208
- // Verify that triggers and listeners are preserved after retrieval
209
- expect(retrievedDrive.state.local.triggers).toHaveLength(1);
210
- expect(retrievedDrive.state.local.triggers[0]).toStrictEqual(trigger);
211
- expect(retrievedDrive.state.local.listeners).toHaveLength(1);
212
- expect(retrievedDrive.state.local.listeners[0]).toStrictEqual(testListeners[0]);
213
- // Verify other local state is also preserved
214
- expect(retrievedDrive.state.local.availableOffline).toBe(true);
215
- expect(retrievedDrive.state.local.sharingType).toBe("private");
216
- // Clean up
217
- await reactor.deleteDrive(createdDriveId);
218
- });
219
- });
220
- //# sourceMappingURL=pull-responder-transmitter.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pull-responder-transmitter.test.js","sourceRoot":"","sources":["../../test/pull-responder-transmitter.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=push-backfill.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"push-backfill.test.d.ts","sourceRoot":"","sources":["../../test/push-backfill.test.ts"],"names":[],"mappings":""}
@@ -1,298 +0,0 @@
1
- import { ConsoleLogger, DocumentModelRegistry, driveCollectionId, EventBus, GqlRequestChannelFactory, GqlResponseChannelFactory, InMemoryQueue, JobStatus, NullDocumentModelResolver, ReactorBuilder, ReactorEventTypes, SyncBuilder, } from "@powerhousedao/reactor";
2
- import { driveDocumentModelModule } from "document-drive";
3
- import { afterEach, describe, expect, it } from "vitest";
4
- import { createResolverBridge } from "./utils/gql-resolver-bridge.js";
5
- /**
6
- * Creates a resolver bridge that can be toggled between online, offline,
7
- * and rejecting modes.
8
- * - online: normal passthrough to the resolver bridge
9
- * - offline: throws a network error (recoverable)
10
- * - rejecting: returns HTTP 200 with GraphQL errors array (unrecoverable)
11
- */
12
- function createFailableResolverBridge(syncManagers) {
13
- const innerBridge = createResolverBridge(syncManagers);
14
- let mode = "online";
15
- const bridge = async (input, init) => {
16
- if (mode === "offline")
17
- throw new Error("Network error: offline");
18
- if (mode === "rejecting") {
19
- return new Response(JSON.stringify({
20
- errors: [{ message: "Validation failed: invalid operation" }],
21
- }), { status: 200, headers: { "Content-Type": "application/json" } });
22
- }
23
- return innerBridge(input, init);
24
- };
25
- return {
26
- bridge,
27
- setOffline: (v) => {
28
- mode = v ? "offline" : "online";
29
- },
30
- setMode: (m) => {
31
- mode = m;
32
- },
33
- };
34
- }
35
- async function setupPushBackfill() {
36
- const syncManagerRegistry = new Map();
37
- const { bridge, setOffline, setMode } = createFailableResolverBridge(syncManagerRegistry);
38
- const logger = new ConsoleLogger(["test"]);
39
- const connectEventBus = new EventBus();
40
- const switchboardEventBus = new EventBus();
41
- const modelRegistry = new DocumentModelRegistry();
42
- modelRegistry.registerModules(driveDocumentModelModule);
43
- const resolver = new NullDocumentModelResolver(modelRegistry);
44
- const connectQueue = new InMemoryQueue(connectEventBus, resolver);
45
- const switchboardQueue = new InMemoryQueue(switchboardEventBus, resolver);
46
- function createCompositeFactory(queue) {
47
- const request = new GqlRequestChannelFactory(logger, undefined, queue);
48
- const response = new GqlResponseChannelFactory(logger);
49
- return {
50
- instance(...args) {
51
- const [remoteId, remoteName, config, cursorStorage] = args;
52
- if (config.type === "polling") {
53
- return response.instance(remoteId, remoteName, config, cursorStorage);
54
- }
55
- return request.instance(...args);
56
- },
57
- };
58
- }
59
- const connectModule = await new ReactorBuilder()
60
- .withEventBus(connectEventBus)
61
- .withQueue(connectQueue)
62
- .withDocumentModels([
63
- driveDocumentModelModule,
64
- ])
65
- .withSync(new SyncBuilder().withChannelFactory(createCompositeFactory(connectQueue)))
66
- .buildModule();
67
- const switchboardModule = await new ReactorBuilder()
68
- .withEventBus(switchboardEventBus)
69
- .withQueue(switchboardQueue)
70
- .withDocumentModels([
71
- driveDocumentModelModule,
72
- ])
73
- .withSync(new SyncBuilder().withChannelFactory(createCompositeFactory(switchboardQueue)))
74
- .buildModule();
75
- const switchboardSyncManager = switchboardModule.syncModule.syncManager;
76
- syncManagerRegistry.set("switchboard", switchboardSyncManager);
77
- const connectSyncManager = connectModule.syncModule.syncManager;
78
- syncManagerRegistry.set("connect", connectSyncManager);
79
- return {
80
- connectReactor: connectModule.reactor,
81
- switchboardReactor: switchboardModule.reactor,
82
- connectModule,
83
- switchboardModule,
84
- connectEventBus,
85
- switchboardEventBus,
86
- connectSyncManager,
87
- switchboardSyncManager,
88
- bridge,
89
- setOffline,
90
- setMode,
91
- };
92
- }
93
- async function setupSyncForDrive(connectSyncManager, driveId, fetchFn) {
94
- const collectionId = driveCollectionId("main", driveId);
95
- await connectSyncManager.add(`switchboard-${driveId}`, collectionId, {
96
- type: "gql",
97
- parameters: {
98
- url: "http://switchboard/graphql",
99
- pollIntervalMs: 50,
100
- retryBaseDelayMs: 10,
101
- retryMaxDelayMs: 100,
102
- fetchFn,
103
- },
104
- }, {
105
- documentId: [],
106
- scope: [],
107
- branch: "main",
108
- });
109
- }
110
- async function waitForJobCompletion(reactor, jobId, timeoutMs = 10000) {
111
- const start = Date.now();
112
- while (Date.now() - start < timeoutMs) {
113
- const status = await reactor.getJobStatus(jobId);
114
- if (status.status === JobStatus.READ_READY ||
115
- status.status === JobStatus.FAILED) {
116
- if (status.status === JobStatus.FAILED) {
117
- throw new Error(`Job ${jobId} failed: ${status.error?.message ?? "unknown"}`);
118
- }
119
- return;
120
- }
121
- await new Promise((resolve) => setTimeout(resolve, 50));
122
- }
123
- throw new Error(`Timed out waiting for job ${jobId}`);
124
- }
125
- function waitForOperationsReady(eventBus, documentId, timeoutMs = 15000) {
126
- return new Promise((resolve, reject) => {
127
- let unsubscribe;
128
- const timer = setTimeout(() => {
129
- unsubscribe?.();
130
- reject(new Error(`Timed out waiting for operations on document ${documentId}`));
131
- }, timeoutMs);
132
- unsubscribe = eventBus.subscribe(ReactorEventTypes.JOB_READ_READY, (_type, event) => {
133
- const matchesDocument = event.operations.some((op) => op.context.documentId === documentId);
134
- if (matchesDocument) {
135
- clearTimeout(timer);
136
- unsubscribe?.();
137
- resolve();
138
- }
139
- });
140
- });
141
- }
142
- function waitForSyncStabilization(eventBuses, quietPeriodMs = 500, timeoutMs = 15000) {
143
- return new Promise((resolve, reject) => {
144
- let lastActivityTime = Date.now();
145
- const unsubscribes = [];
146
- const timer = setTimeout(() => {
147
- cleanup();
148
- reject(new Error("Timed out waiting for sync stabilization"));
149
- }, timeoutMs);
150
- const checkQuiet = setInterval(() => {
151
- if (Date.now() - lastActivityTime >= quietPeriodMs) {
152
- cleanup();
153
- resolve();
154
- }
155
- }, 50);
156
- function cleanup() {
157
- clearTimeout(timer);
158
- clearInterval(checkQuiet);
159
- for (const unsub of unsubscribes)
160
- unsub();
161
- }
162
- for (const bus of eventBuses) {
163
- const unsub = bus.subscribe(ReactorEventTypes.JOB_READ_READY, () => {
164
- lastActivityTime = Date.now();
165
- });
166
- unsubscribes.push(unsub);
167
- }
168
- });
169
- }
170
- describe("Push Backfill After Offline Recovery", () => {
171
- let connectReactor;
172
- let switchboardReactor;
173
- afterEach(() => {
174
- connectReactor.kill();
175
- switchboardReactor.kill();
176
- });
177
- it("should resend dead-lettered operations when channel recovers", async () => {
178
- const setup = await setupPushBackfill();
179
- connectReactor = setup.connectReactor;
180
- switchboardReactor = setup.switchboardReactor;
181
- const { connectModule, switchboardModule, connectEventBus, switchboardEventBus, connectSyncManager, bridge, setOffline, } = setup;
182
- // Step 1: Create document on Connect, sync to Switchboard
183
- const document = driveDocumentModelModule.utils.createDocument({
184
- global: {
185
- name: "Backfill Test",
186
- icon: null,
187
- nodes: [],
188
- },
189
- });
190
- const documentId = document.header.id;
191
- await setupSyncForDrive(connectSyncManager, documentId, bridge);
192
- const createOnSwitchboard = waitForOperationsReady(switchboardEventBus, documentId);
193
- const createJob = await connectReactor.create(document);
194
- await waitForJobCompletion(connectReactor, createJob.id);
195
- await createOnSwitchboard;
196
- // Verify initial sync worked
197
- const connectDocInitial = await connectReactor.get(documentId, {
198
- branch: "main",
199
- });
200
- const switchboardDocInitial = await switchboardReactor.get(documentId, {
201
- branch: "main",
202
- });
203
- expect(connectDocInitial.state).toEqual(switchboardDocInitial.state);
204
- // Step 2: Go offline
205
- setOffline(true);
206
- // Step 3: Mutate while offline
207
- const mutateJob = await connectReactor.execute(documentId, "main", [
208
- driveDocumentModelModule.actions.setDriveName({
209
- name: "Offline Change",
210
- }),
211
- ]);
212
- await waitForJobCompletion(connectReactor, mutateJob.id);
213
- // Step 4: Wait for BufferedMailbox flush (~500ms) and async push failure
214
- // The push will fail because the bridge is offline, sending ops to deadLetter
215
- await new Promise((resolve) => setTimeout(resolve, 1500));
216
- // Verify the local state updated correctly
217
- const connectDocAfterMutation = await connectReactor.get(documentId, {
218
- branch: "main",
219
- });
220
- const connectState = connectDocAfterMutation.state;
221
- expect(connectState.global.name).toBe("Offline Change");
222
- // Step 5: Come back online
223
- setOffline(false);
224
- // Step 6: Wait for sync to stabilize
225
- // With aggressive timers (pollIntervalMs: 50, retryBaseDelayMs: 10),
226
- // if backfill worked, the dead-lettered ops would be retried quickly.
227
- await waitForSyncStabilization([connectEventBus, switchboardEventBus], 1000, 10000);
228
- // Step 7: Assert that Switchboard received the offline mutation
229
- const connectOps = await connectReactor.getOperations(documentId, {
230
- branch: "main",
231
- });
232
- const switchboardOps = await switchboardReactor.getOperations(documentId, {
233
- branch: "main",
234
- });
235
- const connectOpsList = Object.values(connectOps).flatMap((scope) => scope.results);
236
- const switchboardOpsList = Object.values(switchboardOps).flatMap((scope) => scope.results);
237
- expect(switchboardOpsList.length).toBe(connectOpsList.length);
238
- const connectDoc = await connectReactor.get(documentId, {
239
- branch: "main",
240
- });
241
- const switchboardDoc = await switchboardReactor.get(documentId, {
242
- branch: "main",
243
- });
244
- expect(switchboardDoc.state).toEqual(connectDoc.state);
245
- }, 30000);
246
- it("should send unrecoverable push errors to deadLetter", async () => {
247
- const setup = await setupPushBackfill();
248
- connectReactor = setup.connectReactor;
249
- switchboardReactor = setup.switchboardReactor;
250
- const { connectEventBus, switchboardEventBus, connectSyncManager, bridge, setMode, } = setup;
251
- // Step 1: Create document on Connect, sync to Switchboard
252
- const document = driveDocumentModelModule.utils.createDocument({
253
- global: {
254
- name: "Unrecoverable Test",
255
- icon: null,
256
- nodes: [],
257
- },
258
- });
259
- const documentId = document.header.id;
260
- await setupSyncForDrive(connectSyncManager, documentId, bridge);
261
- const createOnSwitchboard = waitForOperationsReady(switchboardEventBus, documentId);
262
- const createJob = await connectReactor.create(document);
263
- await waitForJobCompletion(connectReactor, createJob.id);
264
- await createOnSwitchboard;
265
- // Verify initial sync worked
266
- const connectDocInitial = await connectReactor.get(documentId, {
267
- branch: "main",
268
- });
269
- const switchboardDocInitial = await switchboardReactor.get(documentId, {
270
- branch: "main",
271
- });
272
- expect(connectDocInitial.state).toEqual(switchboardDocInitial.state);
273
- // Wait for Connect's poll to receive ackOrdinal and trim the outbox
274
- await waitForSyncStabilization([connectEventBus, switchboardEventBus], 500, 5000);
275
- // Step 2: Switch bridge to "rejecting" mode (GraphQL errors)
276
- setMode("rejecting");
277
- // Step 3: Mutate on Connect
278
- const mutateJob = await connectReactor.execute(documentId, "main", [
279
- driveDocumentModelModule.actions.setDriveName({
280
- name: "Rejected Change",
281
- }),
282
- ]);
283
- await waitForJobCompletion(connectReactor, mutateJob.id);
284
- // Step 4: Wait for BufferedMailbox flush and push failure propagation
285
- await new Promise((resolve) => setTimeout(resolve, 2000));
286
- // Step 5: Verify ops went to deadLetter (not retried)
287
- const remote = connectSyncManager.getByName(`switchboard-${documentId}`);
288
- const deadLetterItems = remote.channel.deadLetter.items;
289
- expect(deadLetterItems.length).toBeGreaterThan(0);
290
- // Switchboard should NOT have the rejected mutation
291
- const switchboardDoc = await switchboardReactor.get(documentId, {
292
- branch: "main",
293
- });
294
- const switchboardState = switchboardDoc.state;
295
- expect(switchboardState.global.name).toBe("Unrecoverable Test");
296
- }, 30000);
297
- });
298
- //# sourceMappingURL=push-backfill.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"push-backfill.test.js","sourceRoot":"","sources":["../../test/push-backfill.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=push-transmitter.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"push-transmitter.test.d.ts","sourceRoot":"","sources":["../../test/push-transmitter.test.ts"],"names":[],"mappings":""}