@powerhousedao/reactor-api 6.0.0-dev.153 → 6.0.0-dev.154

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 (402) hide show
  1. package/dist/index.d.mts +2948 -0
  2. package/dist/index.d.mts.map +1 -0
  3. package/dist/index.mjs +6353 -0
  4. package/dist/index.mjs.map +1 -0
  5. package/dist/src/packages/vite-loader.mjs +142 -0
  6. package/dist/src/packages/vite-loader.mjs.map +1 -0
  7. package/dist/types-Do4QTfT3.d.mts +37 -0
  8. package/dist/types-Do4QTfT3.d.mts.map +1 -0
  9. package/dist/utils-DEEhP99G.mjs +286 -0
  10. package/dist/utils-DEEhP99G.mjs.map +1 -0
  11. package/dist/vite-loader.d.mts +29 -0
  12. package/dist/vite-loader.d.mts.map +1 -0
  13. package/package.json +17 -25
  14. package/dist/codegen.d.ts +0 -4
  15. package/dist/codegen.d.ts.map +0 -1
  16. package/dist/codegen.js +0 -38
  17. package/dist/codegen.js.map +0 -1
  18. package/dist/index.d.ts +0 -15
  19. package/dist/index.d.ts.map +0 -1
  20. package/dist/index.js +0 -15
  21. package/dist/index.js.map +0 -1
  22. package/dist/src/config.d.ts +0 -6
  23. package/dist/src/config.d.ts.map +0 -1
  24. package/dist/src/config.js +0 -6
  25. package/dist/src/config.js.map +0 -1
  26. package/dist/src/dev.d.ts +0 -2
  27. package/dist/src/dev.d.ts.map +0 -1
  28. package/dist/src/dev.js +0 -51
  29. package/dist/src/dev.js.map +0 -1
  30. package/dist/src/graphql/analytics-subgraph.d.ts +0 -14
  31. package/dist/src/graphql/analytics-subgraph.d.ts.map +0 -1
  32. package/dist/src/graphql/analytics-subgraph.js +0 -26
  33. package/dist/src/graphql/analytics-subgraph.js.map +0 -1
  34. package/dist/src/graphql/auth/index.d.ts +0 -2
  35. package/dist/src/graphql/auth/index.d.ts.map +0 -1
  36. package/dist/src/graphql/auth/index.js +0 -2
  37. package/dist/src/graphql/auth/index.js.map +0 -1
  38. package/dist/src/graphql/auth/resolvers.d.ts +0 -166
  39. package/dist/src/graphql/auth/resolvers.d.ts.map +0 -1
  40. package/dist/src/graphql/auth/resolvers.js +0 -227
  41. package/dist/src/graphql/auth/resolvers.js.map +0 -1
  42. package/dist/src/graphql/auth/schema.graphql +0 -195
  43. package/dist/src/graphql/auth/subgraph.d.ts +0 -202
  44. package/dist/src/graphql/auth/subgraph.d.ts.map +0 -1
  45. package/dist/src/graphql/auth/subgraph.js +0 -384
  46. package/dist/src/graphql/auth/subgraph.js.map +0 -1
  47. package/dist/src/graphql/base-subgraph.d.ts +0 -27
  48. package/dist/src/graphql/base-subgraph.d.ts.map +0 -1
  49. package/dist/src/graphql/base-subgraph.js +0 -126
  50. package/dist/src/graphql/base-subgraph.js.map +0 -1
  51. package/dist/src/graphql/document-model-subgraph.d.ts +0 -110
  52. package/dist/src/graphql/document-model-subgraph.d.ts.map +0 -1
  53. package/dist/src/graphql/document-model-subgraph.js +0 -336
  54. package/dist/src/graphql/document-model-subgraph.js.map +0 -1
  55. package/dist/src/graphql/gateway/adapter-gateway-apollo.d.ts +0 -23
  56. package/dist/src/graphql/gateway/adapter-gateway-apollo.d.ts.map +0 -1
  57. package/dist/src/graphql/gateway/adapter-gateway-apollo.js +0 -156
  58. package/dist/src/graphql/gateway/adapter-gateway-apollo.js.map +0 -1
  59. package/dist/src/graphql/gateway/adapter-gateway-mercurius.d.ts +0 -17
  60. package/dist/src/graphql/gateway/adapter-gateway-mercurius.d.ts.map +0 -1
  61. package/dist/src/graphql/gateway/adapter-gateway-mercurius.js +0 -154
  62. package/dist/src/graphql/gateway/adapter-gateway-mercurius.js.map +0 -1
  63. package/dist/src/graphql/gateway/adapter-http-express.d.ts +0 -25
  64. package/dist/src/graphql/gateway/adapter-http-express.d.ts.map +0 -1
  65. package/dist/src/graphql/gateway/adapter-http-express.js +0 -163
  66. package/dist/src/graphql/gateway/adapter-http-express.js.map +0 -1
  67. package/dist/src/graphql/gateway/adapter-http-fastify.d.ts +0 -23
  68. package/dist/src/graphql/gateway/adapter-http-fastify.d.ts.map +0 -1
  69. package/dist/src/graphql/gateway/adapter-http-fastify.js +0 -228
  70. package/dist/src/graphql/gateway/adapter-http-fastify.js.map +0 -1
  71. package/dist/src/graphql/gateway/auth-middleware.d.ts +0 -7
  72. package/dist/src/graphql/gateway/auth-middleware.d.ts.map +0 -1
  73. package/dist/src/graphql/gateway/auth-middleware.js +0 -15
  74. package/dist/src/graphql/gateway/auth-middleware.js.map +0 -1
  75. package/dist/src/graphql/gateway/factory.d.ts +0 -11
  76. package/dist/src/graphql/gateway/factory.d.ts.map +0 -1
  77. package/dist/src/graphql/gateway/factory.js +0 -21
  78. package/dist/src/graphql/gateway/factory.js.map +0 -1
  79. package/dist/src/graphql/gateway/types.d.ts +0 -100
  80. package/dist/src/graphql/gateway/types.d.ts.map +0 -1
  81. package/dist/src/graphql/gateway/types.js +0 -2
  82. package/dist/src/graphql/gateway/types.js.map +0 -1
  83. package/dist/src/graphql/graphql-manager.d.ts +0 -65
  84. package/dist/src/graphql/graphql-manager.d.ts.map +0 -1
  85. package/dist/src/graphql/graphql-manager.js +0 -483
  86. package/dist/src/graphql/graphql-manager.js.map +0 -1
  87. package/dist/src/graphql/index.d.ts +0 -13
  88. package/dist/src/graphql/index.d.ts.map +0 -1
  89. package/dist/src/graphql/index.js +0 -13
  90. package/dist/src/graphql/index.js.map +0 -1
  91. package/dist/src/graphql/packages/index.d.ts +0 -2
  92. package/dist/src/graphql/packages/index.d.ts.map +0 -1
  93. package/dist/src/graphql/packages/index.js +0 -2
  94. package/dist/src/graphql/packages/index.js.map +0 -1
  95. package/dist/src/graphql/packages/resolvers.d.ts +0 -31
  96. package/dist/src/graphql/packages/resolvers.d.ts.map +0 -1
  97. package/dist/src/graphql/packages/resolvers.js +0 -37
  98. package/dist/src/graphql/packages/resolvers.js.map +0 -1
  99. package/dist/src/graphql/packages/schema.graphql +0 -50
  100. package/dist/src/graphql/packages/subgraph.d.ts +0 -55
  101. package/dist/src/graphql/packages/subgraph.d.ts.map +0 -1
  102. package/dist/src/graphql/packages/subgraph.js +0 -73
  103. package/dist/src/graphql/packages/subgraph.js.map +0 -1
  104. package/dist/src/graphql/playground.d.ts +0 -2
  105. package/dist/src/graphql/playground.d.ts.map +0 -1
  106. package/dist/src/graphql/playground.js +0 -81
  107. package/dist/src/graphql/playground.js.map +0 -1
  108. package/dist/src/graphql/reactor/adapters.d.ts +0 -62
  109. package/dist/src/graphql/reactor/adapters.d.ts.map +0 -1
  110. package/dist/src/graphql/reactor/adapters.js +0 -271
  111. package/dist/src/graphql/reactor/adapters.js.map +0 -1
  112. package/dist/src/graphql/reactor/factory.d.ts +0 -105
  113. package/dist/src/graphql/reactor/factory.d.ts.map +0 -1
  114. package/dist/src/graphql/reactor/factory.js +0 -7
  115. package/dist/src/graphql/reactor/factory.js.map +0 -1
  116. package/dist/src/graphql/reactor/gen/graphql.d.ts +0 -1489
  117. package/dist/src/graphql/reactor/gen/graphql.d.ts.map +0 -1
  118. package/dist/src/graphql/reactor/gen/graphql.js +0 -731
  119. package/dist/src/graphql/reactor/gen/graphql.js.map +0 -1
  120. package/dist/src/graphql/reactor/index.d.ts +0 -4
  121. package/dist/src/graphql/reactor/index.d.ts.map +0 -1
  122. package/dist/src/graphql/reactor/index.js +0 -4
  123. package/dist/src/graphql/reactor/index.js.map +0 -1
  124. package/dist/src/graphql/reactor/operations.graphql +0 -443
  125. package/dist/src/graphql/reactor/pubsub.d.ts +0 -27
  126. package/dist/src/graphql/reactor/pubsub.d.ts.map +0 -1
  127. package/dist/src/graphql/reactor/pubsub.js +0 -93
  128. package/dist/src/graphql/reactor/pubsub.js.map +0 -1
  129. package/dist/src/graphql/reactor/requester.d.ts +0 -4
  130. package/dist/src/graphql/reactor/requester.d.ts.map +0 -1
  131. package/dist/src/graphql/reactor/requester.js +0 -22
  132. package/dist/src/graphql/reactor/requester.js.map +0 -1
  133. package/dist/src/graphql/reactor/requester.with-zod.d.ts +0 -4
  134. package/dist/src/graphql/reactor/requester.with-zod.d.ts.map +0 -1
  135. package/dist/src/graphql/reactor/requester.with-zod.js +0 -129
  136. package/dist/src/graphql/reactor/requester.with-zod.js.map +0 -1
  137. package/dist/src/graphql/reactor/resolvers.d.ts +0 -223
  138. package/dist/src/graphql/reactor/resolvers.d.ts.map +0 -1
  139. package/dist/src/graphql/reactor/resolvers.js +0 -682
  140. package/dist/src/graphql/reactor/resolvers.js.map +0 -1
  141. package/dist/src/graphql/reactor/schema.graphql +0 -475
  142. package/dist/src/graphql/reactor/subgraph.d.ts +0 -18
  143. package/dist/src/graphql/reactor/subgraph.d.ts.map +0 -1
  144. package/dist/src/graphql/reactor/subgraph.js +0 -460
  145. package/dist/src/graphql/reactor/subgraph.js.map +0 -1
  146. package/dist/src/graphql/reactor/validation.d.ts +0 -348
  147. package/dist/src/graphql/reactor/validation.d.ts.map +0 -1
  148. package/dist/src/graphql/reactor/validation.js +0 -167
  149. package/dist/src/graphql/reactor/validation.js.map +0 -1
  150. package/dist/src/graphql/sse.d.ts +0 -35
  151. package/dist/src/graphql/sse.d.ts.map +0 -1
  152. package/dist/src/graphql/sse.js +0 -29
  153. package/dist/src/graphql/sse.js.map +0 -1
  154. package/dist/src/graphql/system/env/getters.d.ts +0 -2
  155. package/dist/src/graphql/system/env/getters.d.ts.map +0 -1
  156. package/dist/src/graphql/system/env/getters.js +0 -4
  157. package/dist/src/graphql/system/env/getters.js.map +0 -1
  158. package/dist/src/graphql/system/env/index.d.ts +0 -2
  159. package/dist/src/graphql/system/env/index.d.ts.map +0 -1
  160. package/dist/src/graphql/system/env/index.js +0 -5
  161. package/dist/src/graphql/system/env/index.js.map +0 -1
  162. package/dist/src/graphql/system/index.d.ts +0 -2
  163. package/dist/src/graphql/system/index.d.ts.map +0 -1
  164. package/dist/src/graphql/system/index.js +0 -2
  165. package/dist/src/graphql/system/index.js.map +0 -1
  166. package/dist/src/graphql/system/types.d.ts +0 -2
  167. package/dist/src/graphql/system/types.d.ts.map +0 -1
  168. package/dist/src/graphql/system/types.js +0 -2
  169. package/dist/src/graphql/system/types.js.map +0 -1
  170. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts +0 -57
  171. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts.map +0 -1
  172. package/dist/src/graphql/temp-hack-rwa-type-defs.js +0 -2
  173. package/dist/src/graphql/temp-hack-rwa-type-defs.js.map +0 -1
  174. package/dist/src/graphql/types.d.ts +0 -102
  175. package/dist/src/graphql/types.d.ts.map +0 -1
  176. package/dist/src/graphql/types.js +0 -2
  177. package/dist/src/graphql/types.js.map +0 -1
  178. package/dist/src/graphql/utils.d.ts +0 -9
  179. package/dist/src/graphql/utils.d.ts.map +0 -1
  180. package/dist/src/graphql/utils.js +0 -72
  181. package/dist/src/graphql/utils.js.map +0 -1
  182. package/dist/src/graphql/websocket.d.ts +0 -3
  183. package/dist/src/graphql/websocket.d.ts.map +0 -1
  184. package/dist/src/graphql/websocket.js +0 -15
  185. package/dist/src/graphql/websocket.js.map +0 -1
  186. package/dist/src/migrations/001_create_document_permissions.d.ts +0 -4
  187. package/dist/src/migrations/001_create_document_permissions.d.ts.map +0 -1
  188. package/dist/src/migrations/001_create_document_permissions.js +0 -91
  189. package/dist/src/migrations/001_create_document_permissions.js.map +0 -1
  190. package/dist/src/migrations/002_add_document_protection.d.ts +0 -4
  191. package/dist/src/migrations/002_add_document_protection.d.ts.map +0 -1
  192. package/dist/src/migrations/002_add_document_protection.js +0 -18
  193. package/dist/src/migrations/002_add_document_protection.js.map +0 -1
  194. package/dist/src/migrations/index.d.ts +0 -10
  195. package/dist/src/migrations/index.d.ts.map +0 -1
  196. package/dist/src/migrations/index.js +0 -58
  197. package/dist/src/migrations/index.js.map +0 -1
  198. package/dist/src/packages/http-loader.d.ts +0 -59
  199. package/dist/src/packages/http-loader.d.ts.map +0 -1
  200. package/dist/src/packages/http-loader.js +0 -203
  201. package/dist/src/packages/http-loader.js.map +0 -1
  202. package/dist/src/packages/https-hooks.d.mts +0 -37
  203. package/dist/src/packages/https-hooks.d.mts.map +0 -1
  204. package/dist/src/packages/https-hooks.mjs +0 -95
  205. package/dist/src/packages/https-hooks.mjs.map +0 -1
  206. package/dist/src/packages/import-loader.d.ts +0 -14
  207. package/dist/src/packages/import-loader.d.ts.map +0 -1
  208. package/dist/src/packages/import-loader.js +0 -47
  209. package/dist/src/packages/import-loader.js.map +0 -1
  210. package/dist/src/packages/import-resolver.d.ts +0 -5
  211. package/dist/src/packages/import-resolver.d.ts.map +0 -1
  212. package/dist/src/packages/import-resolver.js +0 -127
  213. package/dist/src/packages/import-resolver.js.map +0 -1
  214. package/dist/src/packages/package-manager.d.ts +0 -33
  215. package/dist/src/packages/package-manager.d.ts.map +0 -1
  216. package/dist/src/packages/package-manager.js +0 -216
  217. package/dist/src/packages/package-manager.js.map +0 -1
  218. package/dist/src/packages/types.d.ts +0 -39
  219. package/dist/src/packages/types.d.ts.map +0 -1
  220. package/dist/src/packages/types.js +0 -2
  221. package/dist/src/packages/types.js.map +0 -1
  222. package/dist/src/packages/util.d.ts +0 -26
  223. package/dist/src/packages/util.d.ts.map +0 -1
  224. package/dist/src/packages/util.js +0 -85
  225. package/dist/src/packages/util.js.map +0 -1
  226. package/dist/src/packages/vite-loader.d.ts +0 -25
  227. package/dist/src/packages/vite-loader.d.ts.map +0 -1
  228. package/dist/src/packages/vite-loader.js +0 -171
  229. package/dist/src/packages/vite-loader.js.map +0 -1
  230. package/dist/src/server.d.ts +0 -55
  231. package/dist/src/server.d.ts.map +0 -1
  232. package/dist/src/server.js +0 -351
  233. package/dist/src/server.js.map +0 -1
  234. package/dist/src/services/auth.service.d.ts +0 -53
  235. package/dist/src/services/auth.service.d.ts.map +0 -1
  236. package/dist/src/services/auth.service.js +0 -165
  237. package/dist/src/services/auth.service.js.map +0 -1
  238. package/dist/src/services/authorization.service.d.ts +0 -70
  239. package/dist/src/services/authorization.service.d.ts.map +0 -1
  240. package/dist/src/services/authorization.service.js +0 -155
  241. package/dist/src/services/authorization.service.js.map +0 -1
  242. package/dist/src/services/document-permission.service.d.ts +0 -241
  243. package/dist/src/services/document-permission.service.d.ts.map +0 -1
  244. package/dist/src/services/document-permission.service.js +0 -791
  245. package/dist/src/services/document-permission.service.js.map +0 -1
  246. package/dist/src/services/package-management.service.d.ts +0 -32
  247. package/dist/src/services/package-management.service.d.ts.map +0 -1
  248. package/dist/src/services/package-management.service.js +0 -95
  249. package/dist/src/services/package-management.service.js.map +0 -1
  250. package/dist/src/services/package-storage.d.ts +0 -23
  251. package/dist/src/services/package-storage.d.ts.map +0 -1
  252. package/dist/src/services/package-storage.js +0 -19
  253. package/dist/src/services/package-storage.js.map +0 -1
  254. package/dist/src/tracing.d.ts +0 -4
  255. package/dist/src/tracing.d.ts.map +0 -1
  256. package/dist/src/tracing.js +0 -146
  257. package/dist/src/tracing.js.map +0 -1
  258. package/dist/src/types.d.ts +0 -26
  259. package/dist/src/types.d.ts.map +0 -1
  260. package/dist/src/types.js +0 -2
  261. package/dist/src/types.js.map +0 -1
  262. package/dist/src/utils/create-schema.d.ts +0 -36
  263. package/dist/src/utils/create-schema.d.ts.map +0 -1
  264. package/dist/src/utils/create-schema.js +0 -728
  265. package/dist/src/utils/create-schema.js.map +0 -1
  266. package/dist/src/utils/db.d.ts +0 -82
  267. package/dist/src/utils/db.d.ts.map +0 -1
  268. package/dist/src/utils/db.js +0 -101
  269. package/dist/src/utils/db.js.map +0 -1
  270. package/dist/src/utils/drive-url.d.ts +0 -2
  271. package/dist/src/utils/drive-url.d.ts.map +0 -1
  272. package/dist/src/utils/drive-url.js +0 -3
  273. package/dist/src/utils/drive-url.js.map +0 -1
  274. package/dist/src/utils/index.d.ts +0 -4
  275. package/dist/src/utils/index.d.ts.map +0 -1
  276. package/dist/src/utils/index.js +0 -4
  277. package/dist/src/utils/index.js.map +0 -1
  278. package/dist/test/auth-chain.test.d.ts +0 -12
  279. package/dist/test/auth-chain.test.d.ts.map +0 -1
  280. package/dist/test/auth-chain.test.js +0 -157
  281. package/dist/test/auth-chain.test.js.map +0 -1
  282. package/dist/test/auth.service.test.d.ts +0 -10
  283. package/dist/test/auth.service.test.d.ts.map +0 -1
  284. package/dist/test/auth.service.test.js +0 -141
  285. package/dist/test/auth.service.test.js.map +0 -1
  286. package/dist/test/authorization.service.test.d.ts +0 -2
  287. package/dist/test/authorization.service.test.d.ts.map +0 -1
  288. package/dist/test/authorization.service.test.js +0 -252
  289. package/dist/test/authorization.service.test.js.map +0 -1
  290. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts +0 -2
  291. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts.map +0 -1
  292. package/dist/test/connect-switchboard-reshuffle-convergence.test.js +0 -204
  293. package/dist/test/connect-switchboard-reshuffle-convergence.test.js.map +0 -1
  294. package/dist/test/connect-switchboard-sync.test.d.ts +0 -2
  295. package/dist/test/connect-switchboard-sync.test.d.ts.map +0 -1
  296. package/dist/test/connect-switchboard-sync.test.js +0 -633
  297. package/dist/test/connect-switchboard-sync.test.js.map +0 -1
  298. package/dist/test/document-drive-subgraph.test.d.ts +0 -2
  299. package/dist/test/document-drive-subgraph.test.d.ts.map +0 -1
  300. package/dist/test/document-drive-subgraph.test.js +0 -244
  301. package/dist/test/document-drive-subgraph.test.js.map +0 -1
  302. package/dist/test/document-model-subgraph-permissions.test.d.ts +0 -2
  303. package/dist/test/document-model-subgraph-permissions.test.d.ts.map +0 -1
  304. package/dist/test/document-model-subgraph-permissions.test.js +0 -587
  305. package/dist/test/document-model-subgraph-permissions.test.js.map +0 -1
  306. package/dist/test/document-permission.service.test.d.ts +0 -2
  307. package/dist/test/document-permission.service.test.d.ts.map +0 -1
  308. package/dist/test/document-permission.service.test.js +0 -480
  309. package/dist/test/document-permission.service.test.js.map +0 -1
  310. package/dist/test/drive-info-endpoint.test.d.ts +0 -2
  311. package/dist/test/drive-info-endpoint.test.d.ts.map +0 -1
  312. package/dist/test/drive-info-endpoint.test.js +0 -123
  313. package/dist/test/drive-info-endpoint.test.js.map +0 -1
  314. package/dist/test/fault-injection-sync.test.d.ts +0 -2
  315. package/dist/test/fault-injection-sync.test.d.ts.map +0 -1
  316. package/dist/test/fault-injection-sync.test.js +0 -197
  317. package/dist/test/fault-injection-sync.test.js.map +0 -1
  318. package/dist/test/gateway/adapter-gateway-apollo.test.d.ts +0 -2
  319. package/dist/test/gateway/adapter-gateway-apollo.test.d.ts.map +0 -1
  320. package/dist/test/gateway/adapter-gateway-apollo.test.js +0 -206
  321. package/dist/test/gateway/adapter-gateway-apollo.test.js.map +0 -1
  322. package/dist/test/gateway/adapter-gateway-mercurius.test.d.ts +0 -2
  323. package/dist/test/gateway/adapter-gateway-mercurius.test.d.ts.map +0 -1
  324. package/dist/test/gateway/adapter-gateway-mercurius.test.js +0 -23
  325. package/dist/test/gateway/adapter-gateway-mercurius.test.js.map +0 -1
  326. package/dist/test/gateway/adapter-http-express.test.d.ts +0 -2
  327. package/dist/test/gateway/adapter-http-express.test.d.ts.map +0 -1
  328. package/dist/test/gateway/adapter-http-express.test.js +0 -17
  329. package/dist/test/gateway/adapter-http-express.test.js.map +0 -1
  330. package/dist/test/gateway/adapter-http-fastify.test.d.ts +0 -2
  331. package/dist/test/gateway/adapter-http-fastify.test.d.ts.map +0 -1
  332. package/dist/test/gateway/adapter-http-fastify.test.js +0 -17
  333. package/dist/test/gateway/adapter-http-fastify.test.js.map +0 -1
  334. package/dist/test/gateway/auth-middleware.test.d.ts +0 -8
  335. package/dist/test/gateway/auth-middleware.test.d.ts.map +0 -1
  336. package/dist/test/gateway/auth-middleware.test.js +0 -73
  337. package/dist/test/gateway/auth-middleware.test.js.map +0 -1
  338. package/dist/test/gateway/gateway-adapter-contract.d.ts +0 -30
  339. package/dist/test/gateway/gateway-adapter-contract.d.ts.map +0 -1
  340. package/dist/test/gateway/gateway-adapter-contract.js +0 -347
  341. package/dist/test/gateway/gateway-adapter-contract.js.map +0 -1
  342. package/dist/test/gateway/http-adapter-contract.d.ts +0 -30
  343. package/dist/test/gateway/http-adapter-contract.d.ts.map +0 -1
  344. package/dist/test/gateway/http-adapter-contract.js +0 -277
  345. package/dist/test/gateway/http-adapter-contract.js.map +0 -1
  346. package/dist/test/graphql-manager.test.d.ts +0 -12
  347. package/dist/test/graphql-manager.test.d.ts.map +0 -1
  348. package/dist/test/graphql-manager.test.js +0 -576
  349. package/dist/test/graphql-manager.test.js.map +0 -1
  350. package/dist/test/index.d.ts +0 -2
  351. package/dist/test/index.d.ts.map +0 -1
  352. package/dist/test/index.js +0 -2
  353. package/dist/test/index.js.map +0 -1
  354. package/dist/test/permissions-integration.test.d.ts +0 -2
  355. package/dist/test/permissions-integration.test.d.ts.map +0 -1
  356. package/dist/test/permissions-integration.test.js +0 -407
  357. package/dist/test/permissions-integration.test.js.map +0 -1
  358. package/dist/test/push-backfill.test.d.ts +0 -2
  359. package/dist/test/push-backfill.test.d.ts.map +0 -1
  360. package/dist/test/push-backfill.test.js +0 -299
  361. package/dist/test/push-backfill.test.js.map +0 -1
  362. package/dist/test/reactor-adapters.test.d.ts +0 -2
  363. package/dist/test/reactor-adapters.test.d.ts.map +0 -1
  364. package/dist/test/reactor-adapters.test.js +0 -380
  365. package/dist/test/reactor-adapters.test.js.map +0 -1
  366. package/dist/test/reactor-client.test.d.ts +0 -2
  367. package/dist/test/reactor-client.test.d.ts.map +0 -1
  368. package/dist/test/reactor-client.test.js +0 -371
  369. package/dist/test/reactor-client.test.js.map +0 -1
  370. package/dist/test/reactor-resolvers.test.d.ts +0 -2
  371. package/dist/test/reactor-resolvers.test.d.ts.map +0 -1
  372. package/dist/test/reactor-resolvers.test.js +0 -259
  373. package/dist/test/reactor-resolvers.test.js.map +0 -1
  374. package/dist/test/reactor-subgraph-permissions.test.d.ts +0 -2
  375. package/dist/test/reactor-subgraph-permissions.test.d.ts.map +0 -1
  376. package/dist/test/reactor-subgraph-permissions.test.js +0 -371
  377. package/dist/test/reactor-subgraph-permissions.test.js.map +0 -1
  378. package/dist/test/router.test.d.ts +0 -2
  379. package/dist/test/router.test.d.ts.map +0 -1
  380. package/dist/test/router.test.js +0 -38
  381. package/dist/test/router.test.js.map +0 -1
  382. package/dist/test/subscriptions-sse.test.d.ts +0 -2
  383. package/dist/test/subscriptions-sse.test.d.ts.map +0 -1
  384. package/dist/test/subscriptions-sse.test.js +0 -264
  385. package/dist/test/subscriptions-sse.test.js.map +0 -1
  386. package/dist/test/subscriptions.test.d.ts +0 -2
  387. package/dist/test/subscriptions.test.d.ts.map +0 -1
  388. package/dist/test/subscriptions.test.js +0 -248
  389. package/dist/test/subscriptions.test.js.map +0 -1
  390. package/dist/test/utils/gql-resolver-bridge.d.ts +0 -15
  391. package/dist/test/utils/gql-resolver-bridge.d.ts.map +0 -1
  392. package/dist/test/utils/gql-resolver-bridge.js +0 -89
  393. package/dist/test/utils/gql-resolver-bridge.js.map +0 -1
  394. package/dist/test/utils.d.ts +0 -6
  395. package/dist/test/utils.d.ts.map +0 -1
  396. package/dist/test/utils.js +0 -13
  397. package/dist/test/utils.js.map +0 -1
  398. package/dist/tsconfig.tsbuildinfo +0 -1
  399. package/dist/vitest.config.d.ts +0 -3
  400. package/dist/vitest.config.d.ts.map +0 -1
  401. package/dist/vitest.config.js +0 -39
  402. package/dist/vitest.config.js.map +0 -1
@@ -1,264 +0,0 @@
1
- import { DocumentChangeType } from "@powerhousedao/reactor";
2
- import { documentModelDocumentModelModule } from "document-model";
3
- import { buildSchema, print, subscribe, parse } from "graphql";
4
- import { setTimeout as delay } from "node:timers/promises";
5
- import { describe, expect, it, vi } from "vitest";
6
- import { matchesSearchFilter } from "../src/graphql/reactor/adapters.js";
7
- import { getPubSub, SUBSCRIPTION_TRIGGERS, } from "../src/graphql/reactor/pubsub.js";
8
- import { ReactorSubgraph } from "../src/graphql/reactor/subgraph.js";
9
- import { createGraphQLSSEHandler } from "../src/graphql/sse.js";
10
- import { createSchema } from "../src/utils/create-schema.js";
11
- // Instantiate the actual ReactorSubgraph to get its typeDefs and resolvers.
12
- // The mock reactorClient needs subscribe() (called by ensureGlobalDocumentSubscription)
13
- // and getJobStatus() (called by ensureJobSubscription).
14
- const mockReactorClient = {
15
- subscribe: vi.fn(() => vi.fn()),
16
- getJobStatus: vi.fn(),
17
- };
18
- const reactorSubgraph = new ReactorSubgraph({
19
- reactorClient: mockReactorClient,
20
- syncManager: {},
21
- });
22
- /**
23
- * Build an executable schema for subscribe() tests.
24
- *
25
- * We use graphql's buildSchema + field patching (instead of Apollo's
26
- * buildSubgraphSchema) because vitest's vite transform creates separate
27
- * graphql module instances, causing subscribe() to reject Federation
28
- * schemas with "Cannot use GraphQLSchema from another module or realm".
29
- */
30
- function buildSubscriptionSchema() {
31
- const schema = buildSchema(print(reactorSubgraph.typeDefs));
32
- const subscriptionType = schema.getSubscriptionType();
33
- const fields = subscriptionType.getFields();
34
- const resolvers = reactorSubgraph.resolvers.Subscription;
35
- for (const [name, resolver] of Object.entries(resolvers)) {
36
- if (fields[name]) {
37
- const field = fields[name];
38
- field.subscribe = resolver.subscribe;
39
- field.resolve = resolver.resolve;
40
- }
41
- }
42
- return schema;
43
- }
44
- /** Build a Federation schema for SSE handler tests (doesn't use subscribe()). */
45
- function buildFederationSchema() {
46
- return createSchema([], reactorSubgraph.resolvers, reactorSubgraph.typeDefs);
47
- }
48
- function createTestDocument() {
49
- return documentModelDocumentModelModule.utils.createDocument();
50
- }
51
- describe("Subscription SSE Integration", () => {
52
- describe("SSE Handler Creation", () => {
53
- it("should create an SSE handler from the reactor schema", () => {
54
- const schema = buildFederationSchema();
55
- const handler = createGraphQLSSEHandler({
56
- schema,
57
- contextFactory: () => ({ headers: {}, db: null }),
58
- });
59
- expect(handler).toBeDefined();
60
- expect(typeof handler).toBe("function");
61
- });
62
- });
63
- describe("GraphQL Subscription Execution", () => {
64
- it("should receive documentChanges events via PubSub", async () => {
65
- const schema = buildSubscriptionSchema();
66
- const result = await subscribe({
67
- schema,
68
- document: parse(`
69
- subscription {
70
- documentChanges(search: {}) {
71
- type
72
- documents { id name documentType }
73
- }
74
- }
75
- `),
76
- });
77
- expect(Symbol.asyncIterator in result).toBe(true);
78
- const iterator = result[Symbol.asyncIterator]();
79
- const doc = createTestDocument();
80
- const payload = {
81
- documentChanges: {
82
- type: DocumentChangeType.Created,
83
- documents: [doc],
84
- },
85
- search: {},
86
- };
87
- const nextPromise = iterator.next();
88
- await delay(10);
89
- void getPubSub().publish(SUBSCRIPTION_TRIGGERS.DOCUMENT_CHANGES, payload);
90
- const next = await nextPromise;
91
- expect(next.done).toBe(false);
92
- expect(next.value).toEqual({
93
- data: {
94
- documentChanges: {
95
- type: "CREATED",
96
- documents: [
97
- expect.objectContaining({
98
- id: doc.header.id,
99
- name: doc.header.name,
100
- documentType: doc.header.documentType,
101
- }),
102
- ],
103
- },
104
- },
105
- });
106
- await iterator.return?.();
107
- });
108
- it("should receive jobChanges events via PubSub", async () => {
109
- const schema = buildSubscriptionSchema();
110
- const result = await subscribe({
111
- schema,
112
- document: parse(`
113
- subscription {
114
- jobChanges(jobId: "job-123") {
115
- jobId
116
- status
117
- error
118
- }
119
- }
120
- `),
121
- });
122
- expect(Symbol.asyncIterator in result).toBe(true);
123
- const iterator = result[Symbol.asyncIterator]();
124
- const jobPayload = {
125
- jobChanges: {
126
- jobId: "job-123",
127
- status: "COMPLETED",
128
- createdAt: "2024-01-01T00:00:00.000Z",
129
- completedAt: "2024-01-01T00:01:00.000Z",
130
- error: null,
131
- result: { output: "done" },
132
- },
133
- jobId: "job-123",
134
- };
135
- const nextPromise = iterator.next();
136
- await delay(10);
137
- void getPubSub().publish(SUBSCRIPTION_TRIGGERS.JOB_CHANGES, jobPayload);
138
- const next = await nextPromise;
139
- expect(next.done).toBe(false);
140
- expect(next.value).toEqual({
141
- data: {
142
- jobChanges: {
143
- jobId: "job-123",
144
- status: "COMPLETED",
145
- error: null,
146
- },
147
- },
148
- });
149
- await iterator.return?.();
150
- });
151
- it("should handle multiple sequential events", async () => {
152
- const schema = buildSubscriptionSchema();
153
- const result = await subscribe({
154
- schema,
155
- document: parse(`
156
- subscription {
157
- documentChanges(search: {}) {
158
- type
159
- documents { id }
160
- }
161
- }
162
- `),
163
- });
164
- const iterator = result[Symbol.asyncIterator]();
165
- const doc1 = createTestDocument();
166
- const doc2 = createTestDocument();
167
- const firstPromise = iterator.next();
168
- await delay(10);
169
- void getPubSub().publish(SUBSCRIPTION_TRIGGERS.DOCUMENT_CHANGES, {
170
- documentChanges: {
171
- type: DocumentChangeType.Created,
172
- documents: [doc1],
173
- },
174
- search: {},
175
- });
176
- const first = await firstPromise;
177
- expect(first.value).toEqual({
178
- data: {
179
- documentChanges: {
180
- type: "CREATED",
181
- documents: [expect.objectContaining({ id: doc1.header.id })],
182
- },
183
- },
184
- });
185
- const secondPromise = iterator.next();
186
- await delay(10);
187
- void getPubSub().publish(SUBSCRIPTION_TRIGGERS.DOCUMENT_CHANGES, {
188
- documentChanges: {
189
- type: DocumentChangeType.Updated,
190
- documents: [doc2],
191
- },
192
- search: {},
193
- });
194
- const second = await secondPromise;
195
- expect(second.value).toEqual({
196
- data: {
197
- documentChanges: {
198
- type: "UPDATED",
199
- documents: [expect.objectContaining({ id: doc2.header.id })],
200
- },
201
- },
202
- });
203
- await iterator.return?.();
204
- });
205
- });
206
- describe("Subscription Filtering", () => {
207
- it("should filter documentChanges by document type", () => {
208
- const docModelDoc = createTestDocument();
209
- const otherDoc = createTestDocument();
210
- const otherTypedDoc = {
211
- ...otherDoc,
212
- header: {
213
- ...otherDoc.header,
214
- documentType: "powerhouse/budget-statement",
215
- },
216
- };
217
- const events = [
218
- {
219
- documentChanges: {
220
- type: DocumentChangeType.Created,
221
- documents: [docModelDoc],
222
- },
223
- search: {},
224
- },
225
- {
226
- documentChanges: {
227
- type: DocumentChangeType.Created,
228
- documents: [otherTypedDoc],
229
- },
230
- search: {},
231
- },
232
- ];
233
- const matching = events.filter((p) => matchesSearchFilter(p.documentChanges, {
234
- type: "powerhouse/document-model",
235
- }));
236
- expect(matching).toHaveLength(1);
237
- expect(matching[0].documentChanges.documents[0].header.id).toBe(docModelDoc.header.id);
238
- });
239
- it("should filter documentChanges by parentId", () => {
240
- const childDoc = createTestDocument();
241
- const event = {
242
- documentChanges: {
243
- type: DocumentChangeType.ChildAdded,
244
- documents: [childDoc],
245
- context: { parentId: "parent-1", childId: childDoc.header.id },
246
- },
247
- search: {},
248
- };
249
- expect(matchesSearchFilter(event.documentChanges, { parentId: "parent-1" })).toBe(true);
250
- expect(matchesSearchFilter(event.documentChanges, { parentId: "other" })).toBe(false);
251
- });
252
- });
253
- describe("Schema Validation", () => {
254
- it("should include Subscription type with expected fields", () => {
255
- const schema = buildSubscriptionSchema();
256
- const subscriptionType = schema.getSubscriptionType();
257
- expect(subscriptionType).toBeDefined();
258
- const fields = subscriptionType.getFields();
259
- expect(fields.documentChanges).toBeDefined();
260
- expect(fields.jobChanges).toBeDefined();
261
- });
262
- });
263
- });
264
- //# sourceMappingURL=subscriptions-sse.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscriptions-sse.test.js","sourceRoot":"","sources":["../../test/subscriptions-sse.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=subscriptions.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscriptions.test.d.ts","sourceRoot":"","sources":["../../test/subscriptions.test.ts"],"names":[],"mappings":""}
@@ -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