@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,248 +0,0 @@
1
- import { DocumentChangeType } from "@powerhousedao/reactor";
2
- import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
3
- import { matchesJobFilter, matchesSearchFilter, } from "../src/graphql/reactor/adapters.js";
4
- import { ensureGlobalDocumentSubscription, ensureJobSubscription, getPubSub, SUBSCRIPTION_TRIGGERS, } from "../src/graphql/reactor/pubsub.js";
5
- describe("Subscription Filtering", () => {
6
- let mockReactorClient;
7
- let mockSubscribeCallback;
8
- beforeEach(() => {
9
- vi.clearAllMocks();
10
- mockReactorClient = {
11
- subscribe: vi.fn((search, callback) => {
12
- mockSubscribeCallback = callback;
13
- return vi.fn();
14
- }),
15
- getJobStatus: vi.fn(),
16
- };
17
- });
18
- describe("matchesSearchFilter", () => {
19
- const createMockDocument = (type, id) => ({
20
- header: {
21
- id,
22
- documentType: type,
23
- name: "Test Doc",
24
- slug: "test",
25
- createdAtUtcIso: "2024-01-01T00:00:00Z",
26
- lastModifiedAtUtcIso: "2024-01-01T00:00:00Z",
27
- branch: "main",
28
- sig: { publicKey: {}, nonce: "test" },
29
- revision: { global: 1 },
30
- },
31
- state: {},
32
- history: {},
33
- initialState: {},
34
- operations: {},
35
- clipboard: [],
36
- });
37
- it("should match events with correct document type", () => {
38
- const event = {
39
- type: DocumentChangeType.Created,
40
- documents: [createMockDocument("powerhouse/document-model", "doc-1")],
41
- };
42
- const result = matchesSearchFilter(event, {
43
- type: "powerhouse/document-model",
44
- });
45
- expect(result).toBe(true);
46
- });
47
- it("should not match events with different document type", () => {
48
- const event = {
49
- type: DocumentChangeType.Created,
50
- documents: [createMockDocument("powerhouse/budget-statement", "doc-1")],
51
- };
52
- const result = matchesSearchFilter(event, {
53
- type: "powerhouse/document-model",
54
- });
55
- expect(result).toBe(false);
56
- });
57
- it("should match events with correct parentId", () => {
58
- const event = {
59
- type: DocumentChangeType.ChildAdded,
60
- documents: [createMockDocument("powerhouse/document-model", "child-1")],
61
- context: {
62
- parentId: "parent-1",
63
- childId: "child-1",
64
- },
65
- };
66
- const result = matchesSearchFilter(event, {
67
- parentId: "parent-1",
68
- });
69
- expect(result).toBe(true);
70
- });
71
- it("should not match events with different parentId", () => {
72
- const event = {
73
- type: DocumentChangeType.ChildAdded,
74
- documents: [createMockDocument("powerhouse/document-model", "child-1")],
75
- context: {
76
- parentId: "parent-2",
77
- childId: "child-1",
78
- },
79
- };
80
- const result = matchesSearchFilter(event, {
81
- parentId: "parent-1",
82
- });
83
- expect(result).toBe(false);
84
- });
85
- it("should match events with both type and parentId filters", () => {
86
- const event = {
87
- type: DocumentChangeType.ChildAdded,
88
- documents: [createMockDocument("powerhouse/document-model", "child-1")],
89
- context: {
90
- parentId: "parent-1",
91
- childId: "child-1",
92
- },
93
- };
94
- const result = matchesSearchFilter(event, {
95
- type: "powerhouse/document-model",
96
- parentId: "parent-1",
97
- });
98
- expect(result).toBe(true);
99
- });
100
- it("should not match if type matches but parentId does not", () => {
101
- const event = {
102
- type: DocumentChangeType.ChildAdded,
103
- documents: [createMockDocument("powerhouse/document-model", "child-1")],
104
- context: {
105
- parentId: "parent-2",
106
- childId: "child-1",
107
- },
108
- };
109
- const result = matchesSearchFilter(event, {
110
- type: "powerhouse/document-model",
111
- parentId: "parent-1",
112
- });
113
- expect(result).toBe(false);
114
- });
115
- it("should match any event when no filters provided", () => {
116
- const event = {
117
- type: DocumentChangeType.Created,
118
- documents: [createMockDocument("any/type", "doc-1")],
119
- };
120
- const result = matchesSearchFilter(event, {});
121
- expect(result).toBe(true);
122
- });
123
- it("should match if any document in the array matches the type", () => {
124
- const event = {
125
- type: DocumentChangeType.Created,
126
- documents: [
127
- createMockDocument("powerhouse/budget-statement", "doc-1"),
128
- createMockDocument("powerhouse/document-model", "doc-2"),
129
- ],
130
- };
131
- const result = matchesSearchFilter(event, {
132
- type: "powerhouse/document-model",
133
- });
134
- expect(result).toBe(true);
135
- });
136
- });
137
- describe("matchesJobFilter", () => {
138
- it("should match when job IDs are the same", () => {
139
- const result = matchesJobFilter({ jobId: "job-123" }, { jobId: "job-123" });
140
- expect(result).toBe(true);
141
- });
142
- it("should not match when job IDs are different", () => {
143
- const result = matchesJobFilter({ jobId: "job-123" }, { jobId: "job-456" });
144
- expect(result).toBe(false);
145
- });
146
- });
147
- describe("Global Subscription Pattern", () => {
148
- it("should create only one reactorClient subscription for multiple subscribers", () => {
149
- const cleanup1 = ensureGlobalDocumentSubscription(mockReactorClient);
150
- const cleanup2 = ensureGlobalDocumentSubscription(mockReactorClient);
151
- const cleanup3 = ensureGlobalDocumentSubscription(mockReactorClient);
152
- expect(mockReactorClient.subscribe).toHaveBeenCalledTimes(1);
153
- cleanup1();
154
- expect(mockReactorClient.subscribe).toHaveBeenCalledTimes(1);
155
- cleanup2();
156
- expect(mockReactorClient.subscribe).toHaveBeenCalledTimes(1);
157
- cleanup3();
158
- });
159
- it("should cleanup reactorClient subscription when last subscriber disconnects", () => {
160
- const mockUnsubscribe = vi.fn();
161
- vi.mocked(mockReactorClient.subscribe).mockReturnValue(mockUnsubscribe);
162
- const cleanup1 = ensureGlobalDocumentSubscription(mockReactorClient);
163
- const cleanup2 = ensureGlobalDocumentSubscription(mockReactorClient);
164
- cleanup1();
165
- expect(mockUnsubscribe).not.toHaveBeenCalled();
166
- cleanup2();
167
- expect(mockUnsubscribe).toHaveBeenCalledTimes(1);
168
- });
169
- it("should create new subscription after all subscribers disconnect", () => {
170
- const mockUnsubscribe = vi.fn();
171
- vi.mocked(mockReactorClient.subscribe).mockReturnValue(mockUnsubscribe);
172
- const cleanup1 = ensureGlobalDocumentSubscription(mockReactorClient);
173
- cleanup1();
174
- expect(mockReactorClient.subscribe).toHaveBeenCalledTimes(1);
175
- expect(mockUnsubscribe).toHaveBeenCalledTimes(1);
176
- const cleanup2 = ensureGlobalDocumentSubscription(mockReactorClient);
177
- expect(mockReactorClient.subscribe).toHaveBeenCalledTimes(2);
178
- cleanup2();
179
- });
180
- });
181
- describe("Job Subscription Reference Counting", () => {
182
- beforeEach(() => {
183
- vi.useFakeTimers();
184
- });
185
- afterEach(() => {
186
- vi.useRealTimers();
187
- });
188
- it("should create only one job subscription per job ID", () => {
189
- vi.mocked(mockReactorClient.getJobStatus).mockResolvedValue({
190
- id: "job-1",
191
- status: "PENDING",
192
- createdAtUtcIso: "2024-01-01T00:00:00Z",
193
- consistencyToken: {
194
- version: 1,
195
- createdAtUtcIso: "2024-01-01T00:00:00Z",
196
- coordinates: [],
197
- },
198
- meta: { batchId: "batch-1", batchJobIds: ["job-1"] },
199
- });
200
- const cleanup1 = ensureJobSubscription(mockReactorClient, "job-1");
201
- const cleanup2 = ensureJobSubscription(mockReactorClient, "job-1");
202
- expect(mockReactorClient.getJobStatus).toHaveBeenCalledTimes(1);
203
- cleanup1();
204
- cleanup2();
205
- });
206
- it("should create separate subscriptions for different job IDs", () => {
207
- vi.mocked(mockReactorClient.getJobStatus).mockResolvedValue({
208
- id: "job-1",
209
- status: "PENDING",
210
- createdAtUtcIso: "2024-01-01T00:00:00Z",
211
- consistencyToken: {
212
- version: 1,
213
- createdAtUtcIso: "2024-01-01T00:00:00Z",
214
- coordinates: [],
215
- },
216
- meta: { batchId: "batch-1", batchJobIds: ["job-1"] },
217
- });
218
- const cleanup1 = ensureJobSubscription(mockReactorClient, "job-1");
219
- const cleanup2 = ensureJobSubscription(mockReactorClient, "job-2");
220
- expect(mockReactorClient.getJobStatus).toHaveBeenCalledWith("job-1");
221
- expect(mockReactorClient.getJobStatus).toHaveBeenCalledWith("job-2");
222
- cleanup1();
223
- cleanup2();
224
- });
225
- });
226
- describe("PubSub Integration", () => {
227
- it("should publish events to correct channel", async () => {
228
- const publishSpy = vi.spyOn(getPubSub(), "publish");
229
- ensureGlobalDocumentSubscription(mockReactorClient);
230
- const mockEvent = {
231
- type: DocumentChangeType.Created,
232
- documents: [
233
- {
234
- header: {
235
- id: "doc-1",
236
- documentType: "powerhouse/document-model",
237
- },
238
- },
239
- ],
240
- };
241
- mockSubscribeCallback(mockEvent);
242
- expect(publishSpy).toHaveBeenCalledWith(SUBSCRIPTION_TRIGGERS.DOCUMENT_CHANGES, expect.objectContaining({
243
- documentChanges: mockEvent,
244
- }));
245
- });
246
- });
247
- });
248
- //# sourceMappingURL=subscriptions.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscriptions.test.js","sourceRoot":"","sources":["../../test/subscriptions.test.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import type { ISyncManager } from "@powerhousedao/reactor";
2
- type SyncManagerRegistry = Map<string, ISyncManager>;
3
- type ResolverBridgeOptions = {
4
- log?: boolean;
5
- };
6
- /**
7
- * Creates a mock fetch function that routes GraphQL sync operations
8
- * directly to the resolver functions, bypassing the network.
9
- *
10
- * This enables integration testing of GqlChannel without running
11
- * an actual GraphQL server.
12
- */
13
- export declare function createResolverBridge(syncManagers: SyncManagerRegistry, options?: ResolverBridgeOptions): typeof fetch;
14
- export {};
15
- //# sourceMappingURL=gql-resolver-bridge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gql-resolver-bridge.d.ts","sourceRoot":"","sources":["../../../test/utils/gql-resolver-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAO3D,KAAK,mBAAmB,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAOrD,KAAK,qBAAqB,GAAG;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAyBF;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,mBAAmB,EACjC,OAAO,GAAE,qBAA0B,GAClC,OAAO,KAAK,CAkId"}
@@ -1,89 +0,0 @@
1
- import { touchChannel, pollSyncEnvelopes, pushSyncEnvelopes, } from "../../src/graphql/reactor/resolvers.js";
2
- function createMockResponse(data) {
3
- const body = JSON.stringify({ data });
4
- return new Response(body, {
5
- status: 200,
6
- headers: { "Content-Type": "application/json" },
7
- });
8
- }
9
- function extractSyncManagerFromUrl(url, registry) {
10
- const urlObj = new URL(url);
11
- const reactorName = urlObj.hostname.toLowerCase();
12
- const syncManager = registry.get(reactorName);
13
- if (!syncManager) {
14
- throw new Error(`SyncManager not found for reactor: ${reactorName}`);
15
- }
16
- return syncManager;
17
- }
18
- /**
19
- * Creates a mock fetch function that routes GraphQL sync operations
20
- * directly to the resolver functions, bypassing the network.
21
- *
22
- * This enables integration testing of GqlChannel without running
23
- * an actual GraphQL server.
24
- */
25
- export function createResolverBridge(syncManagers, options = {}) {
26
- const logEnabled = options.log ?? true;
27
- return async (input, init) => {
28
- let url;
29
- if (typeof input === "string") {
30
- url = input;
31
- }
32
- else if (input instanceof URL) {
33
- url = input.href;
34
- }
35
- else {
36
- url = input.url;
37
- }
38
- if (!init?.body) {
39
- throw new Error("GraphQL request must have a body");
40
- }
41
- const body = JSON.parse(init.body);
42
- const syncManager = extractSyncManagerFromUrl(url, syncManagers);
43
- if (body.query.includes("pollSyncEnvelopes")) {
44
- const variables = body.variables;
45
- const result = pollSyncEnvelopes(syncManager, variables);
46
- if (logEnabled && result.envelopes.length > 0) {
47
- console.log(`[BRIDGE] pollSyncEnvelopes: ${result.envelopes.length} envelopes for channel ${variables.channelId}`);
48
- }
49
- // Normalize envelopes for GqlRequestChannel compatibility:
50
- // 1. Lowercase type ("OPERATIONS" -> "operations")
51
- // 2. Filter empty dependency strings (outbox can have "" as initial prevJobId)
52
- const normalizedEnvelopes = result.envelopes.map((env) => ({
53
- ...env,
54
- type: env.type.toLowerCase(),
55
- dependsOn: Array.isArray(env.dependsOn)
56
- ? env.dependsOn.filter(Boolean)
57
- : env.dependsOn,
58
- }));
59
- return createMockResponse({
60
- pollSyncEnvelopes: {
61
- envelopes: normalizedEnvelopes,
62
- ackOrdinal: result.ackOrdinal,
63
- },
64
- });
65
- }
66
- if (body.query.includes("pushSyncEnvelopes")) {
67
- const variables = body.variables;
68
- const envelopeOps = variables.envelopes.flatMap((e) => (e.operations ?? []).map((op) => op.context.documentId));
69
- if (logEnabled) {
70
- console.log(`[BRIDGE] pushSyncEnvelopes: ${variables.envelopes.length} envelopes, docs: ${[...new Set(envelopeOps)].join(",")}`);
71
- }
72
- const result = await pushSyncEnvelopes(syncManager, variables);
73
- return createMockResponse({ pushSyncEnvelopes: result });
74
- }
75
- if (body.query.includes("touchChannel")) {
76
- const variables = body.variables;
77
- if (logEnabled) {
78
- console.log(`[BRIDGE] touchChannel: id=${variables.input.id} collection=${variables.input.collectionId}`);
79
- }
80
- const result = await touchChannel(syncManager, variables);
81
- if (logEnabled) {
82
- console.log(`[BRIDGE] touchChannel result: ${result}`);
83
- }
84
- return createMockResponse({ touchChannel: result });
85
- }
86
- throw new Error(`Unknown GraphQL operation in query: ${body.query}`);
87
- };
88
- }
89
- //# sourceMappingURL=gql-resolver-bridge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gql-resolver-bridge.js","sourceRoot":"","sources":["../../../test/utils/gql-resolver-bridge.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { PHDocument } from "document-model";
2
- import type { ExpectStatic } from "vitest";
3
- export declare function expectUTCTimestamp(expect: ExpectStatic): unknown;
4
- export declare function expectUUID(expect: ExpectStatic): unknown;
5
- export declare function getDocumentScopeIndexes(document: PHDocument): Record<string, number>;
6
- export declare function testSetupReactor(): Promise<{
7
- reactor: import("document-drive").IDocumentDriveServer;
8
- listenerManager: import("document-drive").IListenerManager;
9
- }>;
10
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../test/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAEhE;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAIxD;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,UAAU,0BAQ3D;AAED,wBAAsB,gBAAgB;;;GAOrC"}
@@ -1,23 +0,0 @@
1
- import { ReactorBuilder, driveDocumentModelModule } from "document-drive";
2
- import { documentModelDocumentModelModule } from "document-model";
3
- export function expectUTCTimestamp(expect) {
4
- return expect.stringMatching(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z$/i);
5
- }
6
- export function expectUUID(expect) {
7
- return expect.stringMatching(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i);
8
- }
9
- export function getDocumentScopeIndexes(document) {
10
- return Object.entries(document.operations).reduce((acc, [scope, ops]) => ({
11
- ...acc,
12
- [scope]: ops?.at(-1)?.index ?? -1,
13
- }), {});
14
- }
15
- export async function testSetupReactor() {
16
- const reactor = new ReactorBuilder([
17
- documentModelDocumentModelModule,
18
- driveDocumentModelModule,
19
- ]).build();
20
- await reactor.initialize();
21
- return { reactor, listenerManager: reactor.listeners };
22
- }
23
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../test/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAGlE,MAAM,UAAU,kBAAkB,CAAC,MAAoB;IACrD,OAAO,MAAM,CAAC,cAAc,CAAC,+CAA+C,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAoB;IAC7C,OAAO,MAAM,CAAC,cAAc,CAC1B,4EAA4E,CAC7E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,QAAoB;IAC1D,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,CAC/C,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACtB,GAAG,GAAG;QACN,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;KAClC,CAAC,EACF,EAA4B,CAC7B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC;QACjC,gCAAgC;QAChC,wBAAwB;KACzB,CAAC,CAAC,KAAK,EAAE,CAAC;IACX,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;AACzD,CAAC"}