@powerhousedao/reactor-api 6.0.0-dev.15 → 6.0.0-dev.150

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 (367) hide show
  1. package/README.md +6 -0
  2. package/dist/codegen.js +1 -1
  3. package/dist/codegen.js.map +1 -1
  4. package/dist/index.d.ts +4 -3
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +4 -3
  7. package/dist/index.js.map +1 -1
  8. package/dist/src/config.d.ts +1 -2
  9. package/dist/src/config.d.ts.map +1 -1
  10. package/dist/src/config.js +1 -5
  11. package/dist/src/config.js.map +1 -1
  12. package/dist/src/dev.d.ts +2 -0
  13. package/dist/src/dev.d.ts.map +1 -0
  14. package/dist/src/dev.js +51 -0
  15. package/dist/src/dev.js.map +1 -0
  16. package/dist/src/graphql/auth/resolvers.d.ts +17 -0
  17. package/dist/src/graphql/auth/resolvers.d.ts.map +1 -1
  18. package/dist/src/graphql/auth/resolvers.js +54 -0
  19. package/dist/src/graphql/auth/resolvers.js.map +1 -1
  20. package/dist/src/graphql/auth/schema.graphql +27 -5
  21. package/dist/src/graphql/auth/subgraph.d.ts +25 -0
  22. package/dist/src/graphql/auth/subgraph.d.ts.map +1 -1
  23. package/dist/src/graphql/auth/subgraph.js +46 -2
  24. package/dist/src/graphql/auth/subgraph.js.map +1 -1
  25. package/dist/src/graphql/base-subgraph.d.ts +11 -4
  26. package/dist/src/graphql/base-subgraph.d.ts.map +1 -1
  27. package/dist/src/graphql/base-subgraph.js +94 -2
  28. package/dist/src/graphql/base-subgraph.js.map +1 -1
  29. package/dist/src/graphql/document-model-subgraph.d.ts +104 -45
  30. package/dist/src/graphql/document-model-subgraph.d.ts.map +1 -1
  31. package/dist/src/graphql/document-model-subgraph.js +323 -91
  32. package/dist/src/graphql/document-model-subgraph.js.map +1 -1
  33. package/dist/src/graphql/gateway/adapter-gateway-apollo.d.ts +23 -0
  34. package/dist/src/graphql/gateway/adapter-gateway-apollo.d.ts.map +1 -0
  35. package/dist/src/graphql/gateway/adapter-gateway-apollo.js +156 -0
  36. package/dist/src/graphql/gateway/adapter-gateway-apollo.js.map +1 -0
  37. package/dist/src/graphql/gateway/adapter-gateway-mercurius.d.ts +17 -0
  38. package/dist/src/graphql/gateway/adapter-gateway-mercurius.d.ts.map +1 -0
  39. package/dist/src/graphql/gateway/adapter-gateway-mercurius.js +154 -0
  40. package/dist/src/graphql/gateway/adapter-gateway-mercurius.js.map +1 -0
  41. package/dist/src/graphql/gateway/adapter-http-express.d.ts +25 -0
  42. package/dist/src/graphql/gateway/adapter-http-express.d.ts.map +1 -0
  43. package/dist/src/graphql/gateway/adapter-http-express.js +163 -0
  44. package/dist/src/graphql/gateway/adapter-http-express.js.map +1 -0
  45. package/dist/src/graphql/gateway/adapter-http-fastify.d.ts +23 -0
  46. package/dist/src/graphql/gateway/adapter-http-fastify.d.ts.map +1 -0
  47. package/dist/src/graphql/gateway/adapter-http-fastify.js +228 -0
  48. package/dist/src/graphql/gateway/adapter-http-fastify.js.map +1 -0
  49. package/dist/src/graphql/gateway/auth-middleware.d.ts +7 -0
  50. package/dist/src/graphql/gateway/auth-middleware.d.ts.map +1 -0
  51. package/dist/src/graphql/gateway/auth-middleware.js +15 -0
  52. package/dist/src/graphql/gateway/auth-middleware.js.map +1 -0
  53. package/dist/src/graphql/gateway/factory.d.ts +11 -0
  54. package/dist/src/graphql/gateway/factory.d.ts.map +1 -0
  55. package/dist/src/graphql/gateway/factory.js +21 -0
  56. package/dist/src/graphql/gateway/factory.js.map +1 -0
  57. package/dist/src/graphql/gateway/types.d.ts +100 -0
  58. package/dist/src/graphql/gateway/types.d.ts.map +1 -0
  59. package/dist/src/{sync → graphql/gateway}/types.js.map +1 -1
  60. package/dist/src/graphql/graphql-manager.d.ts +30 -12
  61. package/dist/src/graphql/graphql-manager.d.ts.map +1 -1
  62. package/dist/src/graphql/graphql-manager.js +282 -232
  63. package/dist/src/graphql/graphql-manager.js.map +1 -1
  64. package/dist/src/graphql/index.d.ts +5 -1
  65. package/dist/src/graphql/index.d.ts.map +1 -1
  66. package/dist/src/graphql/index.js +5 -1
  67. package/dist/src/graphql/index.js.map +1 -1
  68. package/dist/src/graphql/packages/index.d.ts +2 -0
  69. package/dist/src/graphql/packages/index.d.ts.map +1 -0
  70. package/dist/src/graphql/packages/index.js +2 -0
  71. package/dist/src/graphql/packages/index.js.map +1 -0
  72. package/dist/src/graphql/packages/resolvers.d.ts +31 -0
  73. package/dist/src/graphql/packages/resolvers.d.ts.map +1 -0
  74. package/dist/src/graphql/packages/resolvers.js +37 -0
  75. package/dist/src/graphql/packages/resolvers.js.map +1 -0
  76. package/dist/src/graphql/packages/schema.graphql +50 -0
  77. package/dist/src/graphql/packages/subgraph.d.ts +55 -0
  78. package/dist/src/graphql/packages/subgraph.d.ts.map +1 -0
  79. package/dist/src/graphql/packages/subgraph.js +73 -0
  80. package/dist/src/graphql/packages/subgraph.js.map +1 -0
  81. package/dist/src/graphql/playground.d.ts.map +1 -1
  82. package/dist/src/graphql/playground.js +19 -12
  83. package/dist/src/graphql/playground.js.map +1 -1
  84. package/dist/src/graphql/reactor/adapters.d.ts +10 -2
  85. package/dist/src/graphql/reactor/adapters.d.ts.map +1 -1
  86. package/dist/src/graphql/reactor/adapters.js +36 -1
  87. package/dist/src/graphql/reactor/adapters.js.map +1 -1
  88. package/dist/src/graphql/reactor/factory.d.ts +28 -7
  89. package/dist/src/graphql/reactor/factory.d.ts.map +1 -1
  90. package/dist/src/graphql/reactor/factory.js +1 -1
  91. package/dist/src/graphql/reactor/factory.js.map +1 -1
  92. package/dist/src/graphql/reactor/gen/graphql.d.ts +363 -84
  93. package/dist/src/graphql/reactor/gen/graphql.d.ts.map +1 -1
  94. package/dist/src/graphql/reactor/gen/graphql.js +247 -12
  95. package/dist/src/graphql/reactor/gen/graphql.js.map +1 -1
  96. package/dist/src/graphql/reactor/index.d.ts +1 -1
  97. package/dist/src/graphql/reactor/index.d.ts.map +1 -1
  98. package/dist/src/graphql/reactor/index.js +1 -1
  99. package/dist/src/graphql/reactor/index.js.map +1 -1
  100. package/dist/src/graphql/reactor/operations.graphql +193 -3
  101. package/dist/src/graphql/reactor/requester.with-zod.d.ts.map +1 -1
  102. package/dist/src/graphql/reactor/requester.with-zod.js +114 -38
  103. package/dist/src/graphql/reactor/requester.with-zod.js.map +1 -1
  104. package/dist/src/graphql/reactor/resolvers.d.ts +90 -26
  105. package/dist/src/graphql/reactor/resolvers.d.ts.map +1 -1
  106. package/dist/src/graphql/reactor/resolvers.js +258 -77
  107. package/dist/src/graphql/reactor/resolvers.js.map +1 -1
  108. package/dist/src/graphql/reactor/schema.graphql +78 -32
  109. package/dist/src/graphql/reactor/subgraph.d.ts +2 -31
  110. package/dist/src/graphql/reactor/subgraph.d.ts.map +1 -1
  111. package/dist/src/graphql/reactor/subgraph.js +139 -213
  112. package/dist/src/graphql/reactor/subgraph.js.map +1 -1
  113. package/dist/src/graphql/reactor/validation.d.ts +266 -20
  114. package/dist/src/graphql/reactor/validation.d.ts.map +1 -1
  115. package/dist/src/graphql/reactor/validation.js +98 -4
  116. package/dist/src/graphql/reactor/validation.js.map +1 -1
  117. package/dist/src/graphql/sse.d.ts +35 -0
  118. package/dist/src/graphql/sse.d.ts.map +1 -0
  119. package/dist/src/graphql/sse.js +29 -0
  120. package/dist/src/graphql/sse.js.map +1 -0
  121. package/dist/src/graphql/system/index.d.ts +0 -1
  122. package/dist/src/graphql/system/index.d.ts.map +1 -1
  123. package/dist/src/graphql/system/index.js +0 -1
  124. package/dist/src/graphql/system/index.js.map +1 -1
  125. package/dist/src/graphql/types.d.ts +7 -8
  126. package/dist/src/graphql/types.d.ts.map +1 -1
  127. package/dist/src/graphql/utils.d.ts +3 -20
  128. package/dist/src/graphql/utils.d.ts.map +1 -1
  129. package/dist/src/graphql/utils.js +7 -35
  130. package/dist/src/graphql/utils.js.map +1 -1
  131. package/dist/src/migrations/002_add_document_protection.d.ts +4 -0
  132. package/dist/src/migrations/002_add_document_protection.d.ts.map +1 -0
  133. package/dist/src/migrations/002_add_document_protection.js +18 -0
  134. package/dist/src/migrations/002_add_document_protection.js.map +1 -0
  135. package/dist/src/migrations/index.d.ts.map +1 -1
  136. package/dist/src/migrations/index.js +2 -0
  137. package/dist/src/migrations/index.js.map +1 -1
  138. package/dist/src/packages/http-loader.d.ts +59 -0
  139. package/dist/src/packages/http-loader.d.ts.map +1 -0
  140. package/dist/src/packages/http-loader.js +203 -0
  141. package/dist/src/packages/http-loader.js.map +1 -0
  142. package/dist/src/packages/https-hooks.d.mts +37 -0
  143. package/dist/src/packages/https-hooks.d.mts.map +1 -0
  144. package/dist/src/packages/https-hooks.mjs +95 -0
  145. package/dist/src/packages/https-hooks.mjs.map +1 -0
  146. package/dist/src/packages/import-loader.d.ts +4 -6
  147. package/dist/src/packages/import-loader.d.ts.map +1 -1
  148. package/dist/src/packages/import-loader.js +4 -18
  149. package/dist/src/packages/import-loader.js.map +1 -1
  150. package/dist/src/packages/package-manager.d.ts +3 -4
  151. package/dist/src/packages/package-manager.d.ts.map +1 -1
  152. package/dist/src/packages/package-manager.js +10 -7
  153. package/dist/src/packages/package-manager.js.map +1 -1
  154. package/dist/src/packages/types.d.ts +8 -8
  155. package/dist/src/packages/types.d.ts.map +1 -1
  156. package/dist/src/packages/util.d.ts +4 -5
  157. package/dist/src/packages/util.d.ts.map +1 -1
  158. package/dist/src/packages/util.js +2 -14
  159. package/dist/src/packages/util.js.map +1 -1
  160. package/dist/src/packages/vite-loader.d.ts +12 -11
  161. package/dist/src/packages/vite-loader.d.ts.map +1 -1
  162. package/dist/src/packages/vite-loader.js +20 -21
  163. package/dist/src/packages/vite-loader.js.map +1 -1
  164. package/dist/src/server.d.ts +15 -33
  165. package/dist/src/server.d.ts.map +1 -1
  166. package/dist/src/server.js +164 -244
  167. package/dist/src/server.js.map +1 -1
  168. package/dist/src/services/auth.service.d.ts +3 -18
  169. package/dist/src/services/auth.service.d.ts.map +1 -1
  170. package/dist/src/services/auth.service.js +38 -72
  171. package/dist/src/services/auth.service.js.map +1 -1
  172. package/dist/src/services/authorization.service.d.ts +70 -0
  173. package/dist/src/services/authorization.service.d.ts.map +1 -0
  174. package/dist/src/services/authorization.service.js +155 -0
  175. package/dist/src/services/authorization.service.js.map +1 -0
  176. package/dist/src/services/document-permission.service.d.ts +47 -7
  177. package/dist/src/services/document-permission.service.d.ts.map +1 -1
  178. package/dist/src/services/document-permission.service.js +162 -7
  179. package/dist/src/services/document-permission.service.js.map +1 -1
  180. package/dist/src/services/package-management.service.d.ts +32 -0
  181. package/dist/src/services/package-management.service.d.ts.map +1 -0
  182. package/dist/src/services/package-management.service.js +95 -0
  183. package/dist/src/services/package-management.service.js.map +1 -0
  184. package/dist/src/services/package-storage.d.ts +23 -0
  185. package/dist/src/services/package-storage.d.ts.map +1 -0
  186. package/dist/src/services/package-storage.js +19 -0
  187. package/dist/src/services/package-storage.js.map +1 -0
  188. package/dist/src/tracing.d.ts.map +1 -1
  189. package/dist/src/tracing.js +25 -1
  190. package/dist/src/tracing.js.map +1 -1
  191. package/dist/src/types.d.ts +13 -5
  192. package/dist/src/types.d.ts.map +1 -1
  193. package/dist/src/utils/create-schema.d.ts +31 -6
  194. package/dist/src/utils/create-schema.d.ts.map +1 -1
  195. package/dist/src/utils/create-schema.js +446 -40
  196. package/dist/src/utils/create-schema.js.map +1 -1
  197. package/dist/src/utils/db.d.ts +8 -0
  198. package/dist/src/utils/db.d.ts.map +1 -1
  199. package/dist/src/utils/db.js.map +1 -1
  200. package/dist/test/auth-chain.test.d.ts +12 -0
  201. package/dist/test/auth-chain.test.d.ts.map +1 -0
  202. package/dist/test/auth-chain.test.js +157 -0
  203. package/dist/test/auth-chain.test.js.map +1 -0
  204. package/dist/test/auth.service.test.d.ts +10 -0
  205. package/dist/test/auth.service.test.d.ts.map +1 -0
  206. package/dist/test/auth.service.test.js +141 -0
  207. package/dist/test/auth.service.test.js.map +1 -0
  208. package/dist/test/authorization.service.test.d.ts +2 -0
  209. package/dist/test/authorization.service.test.d.ts.map +1 -0
  210. package/dist/test/authorization.service.test.js +252 -0
  211. package/dist/test/authorization.service.test.js.map +1 -0
  212. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts +2 -0
  213. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts.map +1 -0
  214. package/dist/test/connect-switchboard-reshuffle-convergence.test.js +204 -0
  215. package/dist/test/connect-switchboard-reshuffle-convergence.test.js.map +1 -0
  216. package/dist/test/connect-switchboard-sync.test.d.ts +2 -0
  217. package/dist/test/connect-switchboard-sync.test.d.ts.map +1 -0
  218. package/dist/test/connect-switchboard-sync.test.js +633 -0
  219. package/dist/test/connect-switchboard-sync.test.js.map +1 -0
  220. package/dist/test/document-drive-subgraph.test.d.ts +2 -0
  221. package/dist/test/document-drive-subgraph.test.d.ts.map +1 -0
  222. package/dist/test/document-drive-subgraph.test.js +244 -0
  223. package/dist/test/document-drive-subgraph.test.js.map +1 -0
  224. package/dist/test/document-model-subgraph-permissions.test.d.ts +2 -0
  225. package/dist/test/document-model-subgraph-permissions.test.d.ts.map +1 -0
  226. package/dist/test/document-model-subgraph-permissions.test.js +587 -0
  227. package/dist/test/document-model-subgraph-permissions.test.js.map +1 -0
  228. package/dist/test/drive-info-endpoint.test.d.ts +2 -0
  229. package/dist/test/drive-info-endpoint.test.d.ts.map +1 -0
  230. package/dist/test/drive-info-endpoint.test.js +123 -0
  231. package/dist/test/drive-info-endpoint.test.js.map +1 -0
  232. package/dist/test/fault-injection-sync.test.d.ts +2 -0
  233. package/dist/test/fault-injection-sync.test.d.ts.map +1 -0
  234. package/dist/test/fault-injection-sync.test.js +197 -0
  235. package/dist/test/fault-injection-sync.test.js.map +1 -0
  236. package/dist/test/gateway/adapter-gateway-apollo.test.d.ts +2 -0
  237. package/dist/test/gateway/adapter-gateway-apollo.test.d.ts.map +1 -0
  238. package/dist/test/gateway/adapter-gateway-apollo.test.js +206 -0
  239. package/dist/test/gateway/adapter-gateway-apollo.test.js.map +1 -0
  240. package/dist/test/gateway/adapter-gateway-mercurius.test.d.ts +2 -0
  241. package/dist/test/gateway/adapter-gateway-mercurius.test.d.ts.map +1 -0
  242. package/dist/test/gateway/adapter-gateway-mercurius.test.js +23 -0
  243. package/dist/test/gateway/adapter-gateway-mercurius.test.js.map +1 -0
  244. package/dist/test/gateway/adapter-http-express.test.d.ts +2 -0
  245. package/dist/test/gateway/adapter-http-express.test.d.ts.map +1 -0
  246. package/dist/test/gateway/adapter-http-express.test.js +17 -0
  247. package/dist/test/gateway/adapter-http-express.test.js.map +1 -0
  248. package/dist/test/gateway/adapter-http-fastify.test.d.ts +2 -0
  249. package/dist/test/gateway/adapter-http-fastify.test.d.ts.map +1 -0
  250. package/dist/test/gateway/adapter-http-fastify.test.js +17 -0
  251. package/dist/test/gateway/adapter-http-fastify.test.js.map +1 -0
  252. package/dist/test/gateway/auth-middleware.test.d.ts +8 -0
  253. package/dist/test/gateway/auth-middleware.test.d.ts.map +1 -0
  254. package/dist/test/gateway/auth-middleware.test.js +73 -0
  255. package/dist/test/gateway/auth-middleware.test.js.map +1 -0
  256. package/dist/test/gateway/gateway-adapter-contract.d.ts +30 -0
  257. package/dist/test/gateway/gateway-adapter-contract.d.ts.map +1 -0
  258. package/dist/test/gateway/gateway-adapter-contract.js +347 -0
  259. package/dist/test/gateway/gateway-adapter-contract.js.map +1 -0
  260. package/dist/test/gateway/http-adapter-contract.d.ts +30 -0
  261. package/dist/test/gateway/http-adapter-contract.d.ts.map +1 -0
  262. package/dist/test/gateway/http-adapter-contract.js +277 -0
  263. package/dist/test/gateway/http-adapter-contract.js.map +1 -0
  264. package/dist/test/graphql-manager.test.d.ts +12 -0
  265. package/dist/test/graphql-manager.test.d.ts.map +1 -0
  266. package/dist/test/graphql-manager.test.js +576 -0
  267. package/dist/test/graphql-manager.test.js.map +1 -0
  268. package/dist/test/index.d.ts +0 -1
  269. package/dist/test/index.d.ts.map +1 -1
  270. package/dist/test/index.js +0 -1
  271. package/dist/test/index.js.map +1 -1
  272. package/dist/test/permissions-integration.test.js +6 -20
  273. package/dist/test/permissions-integration.test.js.map +1 -1
  274. package/dist/test/push-backfill.test.d.ts +2 -0
  275. package/dist/test/push-backfill.test.d.ts.map +1 -0
  276. package/dist/test/push-backfill.test.js +299 -0
  277. package/dist/test/push-backfill.test.js.map +1 -0
  278. package/dist/test/reactor-adapters.test.js +3 -2
  279. package/dist/test/reactor-adapters.test.js.map +1 -1
  280. package/dist/test/reactor-client.test.js +172 -13
  281. package/dist/test/reactor-client.test.js.map +1 -1
  282. package/dist/test/reactor-resolvers.test.js +11 -13
  283. package/dist/test/reactor-resolvers.test.js.map +1 -1
  284. package/dist/test/reactor-subgraph-permissions.test.js +7 -36
  285. package/dist/test/reactor-subgraph-permissions.test.js.map +1 -1
  286. package/dist/test/subscriptions-sse.test.d.ts +2 -0
  287. package/dist/test/subscriptions-sse.test.d.ts.map +1 -0
  288. package/dist/test/subscriptions-sse.test.js +264 -0
  289. package/dist/test/subscriptions-sse.test.js.map +1 -0
  290. package/dist/test/subscriptions.test.js +2 -0
  291. package/dist/test/subscriptions.test.js.map +1 -1
  292. package/dist/test/utils/gql-resolver-bridge.d.ts +4 -1
  293. package/dist/test/utils/gql-resolver-bridge.d.ts.map +1 -1
  294. package/dist/test/utils/gql-resolver-bridge.js +36 -7
  295. package/dist/test/utils/gql-resolver-bridge.js.map +1 -1
  296. package/dist/test/utils.d.ts +1 -5
  297. package/dist/test/utils.d.ts.map +1 -1
  298. package/dist/test/utils.js +0 -10
  299. package/dist/test/utils.js.map +1 -1
  300. package/dist/tsconfig.tsbuildinfo +1 -1
  301. package/dist/vitest.config.d.ts.map +1 -1
  302. package/dist/vitest.config.js +1 -0
  303. package/dist/vitest.config.js.map +1 -1
  304. package/package.json +64 -59
  305. package/dist/src/graphql/drive-subgraph.d.ts +0 -25
  306. package/dist/src/graphql/drive-subgraph.d.ts.map +0 -1
  307. package/dist/src/graphql/drive-subgraph.js +0 -487
  308. package/dist/src/graphql/drive-subgraph.js.map +0 -1
  309. package/dist/src/graphql/system/system-subgraph.d.ts +0 -49
  310. package/dist/src/graphql/system/system-subgraph.d.ts.map +0 -1
  311. package/dist/src/graphql/system/system-subgraph.js +0 -130
  312. package/dist/src/graphql/system/system-subgraph.js.map +0 -1
  313. package/dist/src/sync/types.d.ts +0 -10
  314. package/dist/src/sync/types.d.ts.map +0 -1
  315. package/dist/src/sync/utils.d.ts +0 -7
  316. package/dist/src/sync/utils.d.ts.map +0 -1
  317. package/dist/src/sync/utils.js +0 -78
  318. package/dist/src/sync/utils.js.map +0 -1
  319. package/dist/src/utils/auth.d.ts +0 -3
  320. package/dist/src/utils/auth.d.ts.map +0 -1
  321. package/dist/src/utils/auth.js +0 -19
  322. package/dist/src/utils/auth.js.map +0 -1
  323. package/dist/test/benchmarks/load.bench.d.ts +0 -2
  324. package/dist/test/benchmarks/load.bench.d.ts.map +0 -1
  325. package/dist/test/benchmarks/load.bench.js +0 -73
  326. package/dist/test/benchmarks/load.bench.js.map +0 -1
  327. package/dist/test/benchmarks/sync.bench.d.ts +0 -2
  328. package/dist/test/benchmarks/sync.bench.d.ts.map +0 -1
  329. package/dist/test/benchmarks/sync.bench.js +0 -119
  330. package/dist/test/benchmarks/sync.bench.js.map +0 -1
  331. package/dist/test/drive-handlers.d.ts +0 -4
  332. package/dist/test/drive-handlers.d.ts.map +0 -1
  333. package/dist/test/drive-handlers.js +0 -39
  334. package/dist/test/drive-handlers.js.map +0 -1
  335. package/dist/test/drive-subgraph-permissions.test.d.ts +0 -2
  336. package/dist/test/drive-subgraph-permissions.test.d.ts.map +0 -1
  337. package/dist/test/drive-subgraph-permissions.test.js +0 -195
  338. package/dist/test/drive-subgraph-permissions.test.js.map +0 -1
  339. package/dist/test/drive.test.d.ts +0 -2
  340. package/dist/test/drive.test.d.ts.map +0 -1
  341. package/dist/test/drive.test.js +0 -142
  342. package/dist/test/drive.test.js.map +0 -1
  343. package/dist/test/identity-integration.test.d.ts +0 -2
  344. package/dist/test/identity-integration.test.d.ts.map +0 -1
  345. package/dist/test/identity-integration.test.js +0 -349
  346. package/dist/test/identity-integration.test.js.map +0 -1
  347. package/dist/test/pull-responder-transmitter.test.d.ts +0 -2
  348. package/dist/test/pull-responder-transmitter.test.d.ts.map +0 -1
  349. package/dist/test/pull-responder-transmitter.test.js +0 -220
  350. package/dist/test/pull-responder-transmitter.test.js.map +0 -1
  351. package/dist/test/push-transmitter.test.d.ts +0 -2
  352. package/dist/test/push-transmitter.test.d.ts.map +0 -1
  353. package/dist/test/push-transmitter.test.js +0 -179
  354. package/dist/test/push-transmitter.test.js.map +0 -1
  355. package/dist/test/system.test.d.ts +0 -2
  356. package/dist/test/system.test.d.ts.map +0 -1
  357. package/dist/test/system.test.js +0 -211
  358. package/dist/test/system.test.js.map +0 -1
  359. package/dist/test/three-reactor-gql-sync.test.d.ts +0 -2
  360. package/dist/test/three-reactor-gql-sync.test.d.ts.map +0 -1
  361. package/dist/test/three-reactor-gql-sync.test.js +0 -368
  362. package/dist/test/three-reactor-gql-sync.test.js.map +0 -1
  363. package/dist/test/two-reactor-gql-sync.test.d.ts +0 -2
  364. package/dist/test/two-reactor-gql-sync.test.d.ts.map +0 -1
  365. package/dist/test/two-reactor-gql-sync.test.js +0 -348
  366. package/dist/test/two-reactor-gql-sync.test.js.map +0 -1
  367. /package/dist/src/{sync → graphql/gateway}/types.js +0 -0
@@ -1,44 +1,27 @@
1
1
  import { PostgresAnalyticsStore } from "@powerhousedao/analytics-engine-pg";
2
2
  import { getConfig } from "@powerhousedao/config/node";
3
3
  import { setupMcpServer } from "@powerhousedao/reactor-mcp";
4
- import devcert from "devcert";
5
- import { childLogger, createRelationalDb, ProcessorManager, } from "document-drive";
6
- import express from "express";
7
- import fs from "node:fs";
8
- import https from "node:https";
9
- import path from "node:path";
10
4
  import { WebSocketServer } from "ws";
11
5
  // Import tracing - initializes OpenTelemetry and provides stub functions for backwards compatibility
12
- import { initTracing, isTracingEnabled, trace } from "./tracing.js";
6
+ import { createRelationalDb, } from "@powerhousedao/shared/processors";
7
+ import { childLogger } from "document-model";
13
8
  import { config, DefaultCoreSubgraphs } from "./config.js";
14
9
  import { AuthSubgraph } from "./graphql/auth/subgraph.js";
10
+ import { createAuthFetchMiddleware, } from "./graphql/gateway/auth-middleware.js";
11
+ import { createGatewayAdapter, createHttpAdapter, } from "./graphql/gateway/factory.js";
15
12
  import { GraphQLManager } from "./graphql/graphql-manager.js";
16
13
  import { renderGraphqlPlayground } from "./graphql/playground.js";
17
14
  import { ReactorSubgraph } from "./graphql/reactor/subgraph.js";
18
15
  import { runMigrations } from "./migrations/index.js";
19
16
  import { ImportPackageLoader } from "./packages/import-loader.js";
20
- import { getUniqueDocumentModels, PackageManager, } from "./packages/package-manager.js";
17
+ import { PackageManager } from "./packages/package-manager.js";
21
18
  import { AuthService } from "./services/auth.service.js";
19
+ import { AuthorizationService } from "./services/authorization.service.js";
22
20
  import { DocumentPermissionService } from "./services/document-permission.service.js";
21
+ import { initTracing, isTracingEnabled, trace } from "./tracing.js";
23
22
  import { getDbClient, initAnalyticsStoreSql, } from "./utils/db.js";
24
- const logger = childLogger(["reactor-api", "server"]);
23
+ const defaultLogger = childLogger(["reactor-api", "server"]);
25
24
  const DEFAULT_PORT = 4000;
26
- /**
27
- * Sets up the Express app with necessary routes
28
- */
29
- function setupGraphQlExplorer(router) {
30
- router.get("/explorer/:endpoint?", (req, res) => {
31
- res.setHeader("Content-Type", "text/html");
32
- const endpoint = req.params.endpoint !== undefined
33
- ? `/${req.params.endpoint}`
34
- : "/graphql";
35
- const { query } = req.query;
36
- if (query && typeof query !== "string") {
37
- throw new Error("Invalid query");
38
- }
39
- res.send(renderGraphqlPlayground(endpoint, query));
40
- });
41
- }
42
25
  /**
43
26
  * Initializes the database and analytics store
44
27
  */
@@ -56,17 +39,14 @@ async function initializeDatabaseAndAnalytics(dbPath) {
56
39
  /**
57
40
  * Sets up the subgraph manager and registers subgraphs
58
41
  */
59
- async function setupGraphQLManager(app, httpServer, wsServer, reactor, client, relationalDb, analyticsStore, syncManager, subgraphs, auth, documentPermissionService, enableDocumentModelSubgraphs, port) {
60
- const graphqlManager = new GraphQLManager(config.basePath, app, httpServer, wsServer, reactor, client, relationalDb, analyticsStore, syncManager, {
42
+ async function setupGraphQLManager(httpAdapter, authFetchMiddleware, httpServer, wsServer, client, relationalDb, analyticsStore, syncManager, subgraphs, logger, auth, documentPermissionService, enableDocumentModelSubgraphs, port, authorizationService) {
43
+ const graphqlManager = new GraphQLManager(config.basePath, httpServer, wsServer, client, relationalDb, analyticsStore, syncManager, logger, httpAdapter, createGatewayAdapter("apollo", logger), {
61
44
  enabled: auth?.enabled ?? false,
62
- guests: auth?.guests ?? [],
63
- users: auth?.users ?? [],
64
45
  admins: auth?.admins ?? [],
65
- freeEntry: auth?.freeEntry ?? false,
66
46
  }, documentPermissionService, {
67
47
  enableDocumentModelSubgraphs,
68
- }, port);
69
- await graphqlManager.init(subgraphs.core);
48
+ }, port, authorizationService);
49
+ await graphqlManager.init(subgraphs.core, authFetchMiddleware);
70
50
  for (const [, collection] of subgraphs.extended.entries()) {
71
51
  for (const subgraph of collection) {
72
52
  await graphqlManager.registerSubgraph(subgraph, "graphql");
@@ -78,10 +58,21 @@ async function setupGraphQLManager(app, httpServer, wsServer, reactor, client, r
78
58
  /**
79
59
  * Sets up event listeners for package manager changes
80
60
  */
81
- function setupEventListeners(pkgManager, reactor, graphqlManager, processorManager, module) {
82
- pkgManager.onDocumentModelsChange(async (documentModels) => {
83
- reactor.setDocumentModelModules(Object.values(documentModels).flat());
84
- await graphqlManager.updateRouter();
61
+ function setupEventListeners(pkgManager, graphqlManager, reactorProcessorManager, module, documentModelRegistry) {
62
+ pkgManager.onDocumentModelsChange((packagedModels) => {
63
+ if (documentModelRegistry) {
64
+ const newModules = Object.values(packagedModels).flat();
65
+ const registeredModules = documentModelRegistry.getAllModules();
66
+ const registeredTypes = new Set(registeredModules.map((m) => m.documentModel.global.id));
67
+ for (const mod of newModules) {
68
+ const docType = mod.documentModel.global.id;
69
+ if (!registeredTypes.has(docType)) {
70
+ defaultLogger.info(`Registering new document model: ${docType}`);
71
+ documentModelRegistry.registerModules(mod);
72
+ }
73
+ }
74
+ }
75
+ void graphqlManager.regenerateDocumentModelSubgraphs();
85
76
  });
86
77
  pkgManager.onSubgraphsChange(async (packagedSubgraphs) => {
87
78
  for (const [, subgraphs] of packagedSubgraphs) {
@@ -93,46 +84,36 @@ function setupEventListeners(pkgManager, reactor, graphqlManager, processorManag
93
84
  });
94
85
  pkgManager.onProcessorsChange(async (processors) => {
95
86
  for (const [packageName, fns] of processors) {
96
- await processorManager.unregisterFactory(packageName);
97
- const factories = fns.map((fn) => fn({
98
- analyticsStore: module.analyticsStore,
99
- relationalDb: module.relationalDb,
100
- }));
101
- await processorManager.registerFactory(packageName, async (driveHeader) => (await Promise.all(factories.map((factory) => Promise.resolve(factory(driveHeader))))).flat());
87
+ await reactorProcessorManager.unregisterFactory(packageName);
88
+ const factories = fns.map((fn) => fn(module));
89
+ const validBuilders = factories.filter((factory) => factory !== null && typeof factory === "function");
90
+ if (!validBuilders.length) {
91
+ continue;
92
+ }
93
+ await reactorProcessorManager.registerFactory(packageName, async (driveHeader) => (await Promise.all(validBuilders.map(async (driveFactory) => {
94
+ try {
95
+ const result = await driveFactory(driveHeader);
96
+ return result;
97
+ }
98
+ catch (e) {
99
+ const logger = defaultLogger;
100
+ logger.error(`Error creating processor for drive ${driveHeader.id}:`, e);
101
+ return [];
102
+ }
103
+ }))).flat());
102
104
  }
103
105
  });
104
106
  }
105
107
  /**
106
108
  * Starts the server (HTTP or HTTPS) and attaches WebSocket server
107
109
  */
108
- async function startServer(app, port, httpsOptions) {
109
- let httpServer;
110
- if (httpsOptions) {
111
- const currentDir = process.cwd();
112
- if (typeof httpsOptions === "object") {
113
- httpServer = https.createServer({
114
- key: fs.readFileSync(path.join(currentDir, httpsOptions.keyPath)),
115
- cert: fs.readFileSync(path.join(currentDir, httpsOptions.certPath)),
116
- }, app);
117
- }
118
- else {
119
- try {
120
- const { cert, key } = (await devcert.certificateFor("localhost"));
121
- if (!cert || !key) {
122
- throw new Error("Invalid certificate generated");
123
- }
124
- httpServer = https.createServer({ cert, key }, app);
125
- }
126
- catch (err) {
127
- console.error("Failed to get HTTPS certificate:", err);
128
- throw new Error("Failed to start HTTPS server");
129
- }
130
- }
131
- httpServer.listen(port);
132
- }
133
- else {
134
- httpServer = app.listen(port);
135
- }
110
+ async function startServer(httpAdapter, port, httpsOptions, logger) {
111
+ const tls = httpsOptions === true
112
+ ? true
113
+ : typeof httpsOptions === "object"
114
+ ? { keyPath: httpsOptions.keyPath, certPath: httpsOptions.certPath }
115
+ : undefined;
116
+ const httpServer = await httpAdapter.listen(port, tls);
136
117
  const wsServer = new WebSocketServer({
137
118
  server: httpServer,
138
119
  path: "/graphql/subscriptions",
@@ -150,71 +131,68 @@ async function _setupCommonInfrastructure(options) {
150
131
  await initTracing();
151
132
  }
152
133
  const port = options.port ?? DEFAULT_PORT;
153
- const app = options.express ?? express();
134
+ const { adapter: httpAdapter } = createHttpAdapter("express");
154
135
  // Setup auth configuration
155
136
  let admins = [];
156
- let users = [];
157
- let guests = [];
158
137
  let authEnabled = false;
159
- let freeEntry = false;
160
138
  if (options.configFile) {
161
139
  const config = getConfig(options.configFile);
162
140
  admins = config.auth?.admins?.map((a) => a.toLowerCase()) ?? [];
163
- users = config.auth?.users?.map((u) => u.toLowerCase()) ?? [];
164
- guests = config.auth?.guests?.map((g) => g.toLowerCase()) ?? [];
165
141
  authEnabled = config.auth?.enabled ?? false;
166
- freeEntry = config.auth?.freeEntry ?? false;
167
142
  }
168
143
  else if (options.auth) {
169
144
  admins = options.auth?.admins?.map((a) => a.toLowerCase()) ?? [];
170
- users = options.auth?.users?.map((u) => u.toLowerCase()) ?? [];
171
- guests = options.auth?.guests?.map((g) => g.toLowerCase()) ?? [];
172
145
  authEnabled = options.auth?.enabled ?? false;
173
- freeEntry = options.auth?.freeEntry ?? false;
174
146
  }
175
- const { AUTH_ENABLED, GUESTS, USERS, ADMINS, FREE_ENTRY, DOCUMENT_PERMISSIONS_ENABLED, SKIP_CREDENTIAL_VERIFICATION, } = process.env;
147
+ const { AUTH_ENABLED, ADMINS, DEFAULT_PROTECTION, DOCUMENT_PERMISSIONS_ENABLED, SKIP_CREDENTIAL_VERIFICATION, } = process.env;
176
148
  if (AUTH_ENABLED !== undefined) {
177
149
  authEnabled = AUTH_ENABLED === "true";
178
150
  }
179
- if (GUESTS !== undefined) {
180
- guests = GUESTS.split(",").map((g) => g.toLowerCase());
181
- }
182
- if (USERS !== undefined) {
183
- users = USERS.split(",").map((u) => u.toLowerCase());
184
- }
185
151
  if (ADMINS !== undefined) {
186
152
  admins = ADMINS.split(",").map((a) => a.toLowerCase());
187
153
  }
188
- if (FREE_ENTRY !== undefined) {
189
- freeEntry = FREE_ENTRY === "true";
154
+ let defaultProtection = false;
155
+ if (DEFAULT_PROTECTION !== undefined) {
156
+ defaultProtection = DEFAULT_PROTECTION.toLowerCase() === "true";
157
+ }
158
+ // Warn about deprecated env vars
159
+ const { USERS, GUESTS, FREE_ENTRY } = process.env;
160
+ if (USERS || GUESTS || FREE_ENTRY) {
161
+ console.warn("[DEPRECATION WARNING] The USERS, GUESTS, and FREE_ENTRY environment variables are no longer supported. " +
162
+ "Access control is now managed per-document via the DocumentProtection system. " +
163
+ "Use DEFAULT_PROTECTION=true for strict mode, or manage protection per document via the GraphQL API. " +
164
+ "See the auth documentation for migration guidance.");
190
165
  }
191
166
  let skipCredentialVerification = false;
192
167
  if (SKIP_CREDENTIAL_VERIFICATION !== undefined) {
193
168
  skipCredentialVerification = SKIP_CREDENTIAL_VERIFICATION === "true";
194
169
  }
195
- const authService = new AuthService({
196
- enabled: authEnabled,
197
- guests,
198
- users,
199
- admins,
200
- freeEntry,
201
- skipCredentialVerification,
202
- });
203
- // Health check endpoint (before auth middleware)
204
- app.get("/health", (_req, res) => {
205
- res.status(200).send("OK");
170
+ const logger = options.logger ?? defaultLogger;
171
+ // Health check endpoint (registered directly on adapter, before auth)
172
+ httpAdapter.getRoute("/health", () => new Response("OK", { status: 200 }));
173
+ // Explorer route
174
+ const explorerPrefix = `${config.basePath}/explorer`;
175
+ httpAdapter.getRoute(`${explorerPrefix}/:endpoint?`, (request) => {
176
+ const url = new URL(request.url);
177
+ // Strip the prefix to find the optional :endpoint segment
178
+ const suffix = url.pathname.slice(explorerPrefix.length).replace(/^\//, "");
179
+ const endpoint = suffix ? `/${suffix}` : "/graphql";
180
+ const query = url.searchParams.get("query") ?? undefined;
181
+ return new Response(renderGraphqlPlayground(endpoint, query), {
182
+ headers: { "Content-Type": "text/html" },
183
+ });
206
184
  });
207
- // add auth middleware if auth is enabled
185
+ // Create auth fetch middleware if auth is enabled
186
+ let authFetchMiddleware;
208
187
  if (authEnabled) {
209
188
  logger.info("Setting up Auth middleware");
210
- // Apply auth middleware to all routes including GraphQL
211
- app.use((req, res, next) => {
212
- authService.authenticate(req, res, next);
189
+ const authService = new AuthService({
190
+ enabled: authEnabled,
191
+ admins,
192
+ skipCredentialVerification,
213
193
  });
194
+ authFetchMiddleware = createAuthFetchMiddleware(authService);
214
195
  }
215
- const defaultRouter = express.Router();
216
- setupGraphQlExplorer(defaultRouter);
217
- app.use(config.basePath, defaultRouter);
218
196
  // Initialize database and analytics store
219
197
  const { relationalDb, analyticsStore } = await trace("reactor-api.init.database", { tags: { "resource.name": "database" } }, () => initializeDatabaseAndAnalytics(options.dbPath));
220
198
  // Use provided document permission service, or create one if env var is set
@@ -224,130 +202,92 @@ async function _setupCommonInfrastructure(options) {
224
202
  // Run document permission migrations
225
203
  await runMigrations(db);
226
204
  logger.info("Document permission migrations completed");
227
- documentPermissionService = new DocumentPermissionService(db);
205
+ documentPermissionService = new DocumentPermissionService(db, { defaultProtection });
228
206
  logger.info("Document permission service initialized");
229
207
  }
208
+ // Create AuthorizationService when document permission service is available
209
+ let authorizationService;
210
+ if (documentPermissionService) {
211
+ authorizationService = new AuthorizationService(documentPermissionService, {
212
+ admins,
213
+ defaultProtection,
214
+ });
215
+ logger.info("Authorization service initialized");
216
+ }
230
217
  // Initialize package manager
231
- const legacyReactor = options.legacyReactor ?? false;
232
- const packageLoader = options.packageLoader ?? new ImportPackageLoader({ legacyReactor });
233
- const loaders = [packageLoader];
218
+ const loaders = options.packageLoaders ?? [
219
+ new ImportPackageLoader(),
220
+ ];
234
221
  const packages = new PackageManager(loaders, {
235
222
  configFile: options.configFile,
236
223
  packages: options.packages ?? [],
237
224
  });
238
225
  return {
239
226
  port,
240
- app,
227
+ httpAdapter,
228
+ authFetchMiddleware,
241
229
  auth: {
242
230
  enabled: authEnabled,
243
- guests,
244
- users,
245
231
  admins,
246
- freeEntry,
247
232
  },
248
233
  relationalDb,
249
234
  analyticsStore,
250
235
  documentPermissionService,
236
+ authorizationService,
251
237
  packages,
252
238
  };
253
239
  }
254
240
  /**
255
241
  * Private helper function containing common setup logic for API initialization
256
242
  */
257
- async function _setupAPI(reactor, reactorClient, syncManager, app, port, packages, relationalDb, analyticsStore, documentPermissionService, processors, subgraphs, options, auth, legacyReactor, reactorProcessorManager) {
258
- const module = { relationalDb, analyticsStore };
243
+ async function _setupAPI(reactorClient, syncManager, reactorProcessorManager, httpAdapter, authFetchMiddleware, port, packages, relationalDb, analyticsStore, documentPermissionService, processors, subgraphs, options, auth, processorApp, authorizationService, documentModelRegistry) {
244
+ const hostModule = {
245
+ relationalDb,
246
+ analyticsStore,
247
+ processorApp,
248
+ config: options.processorConfig,
249
+ reactorClient,
250
+ };
259
251
  const mcpServerEnabled = options.mcp ?? true;
252
+ const logger = options.logger ?? defaultLogger;
260
253
  // initialize processors
261
- let processorManager;
262
- if (legacyReactor) {
263
- // LEGACY PATH - use document-drive ProcessorManager
264
- processorManager = new ProcessorManager(reactor.listeners, reactor);
265
- for (const [packageName, fns] of [
266
- ...processors.entries(),
267
- ...Object.entries(options.processors ?? {}),
268
- ]) {
269
- const factories = fns.map((fn) => {
270
- try {
271
- return fn({
272
- analyticsStore: module.analyticsStore,
273
- relationalDb: module.relationalDb,
274
- config: options.processorConfig,
275
- });
276
- }
277
- catch (e) {
278
- logger.error(`Error initializing processor factory for package ${packageName}:`, e);
279
- return null;
280
- }
281
- });
282
- const validFactories = factories.filter((factory) => factory !== null && typeof factory === "function");
283
- if (!validFactories.length) {
284
- continue;
254
+ const configuredProcessorEntries = Object.entries(options.processors ?? {});
255
+ const processorEntries = [
256
+ ...processors.entries(),
257
+ ...configuredProcessorEntries,
258
+ ];
259
+ for (const [packageName, fns] of processorEntries) {
260
+ const factories = await Promise.allSettled(fns.map(async (fn) => {
261
+ try {
262
+ return fn(hostModule);
285
263
  }
286
- await processorManager.registerFactory(packageName, async (driveHeader) => (await Promise.all(validFactories.map(async (factory) => {
287
- try {
288
- return await factory(driveHeader);
289
- }
290
- catch (e) {
291
- logger.error(`Error creating processor for drive ${driveHeader.id}:`, e);
292
- return [];
293
- }
294
- }))).flat());
295
- }
296
- // hook up processor manager to drive added event
297
- reactor.on("driveAdded", async (drive) => {
298
- await processorManager.registerDrive(drive.header.id);
299
- });
300
- }
301
- else {
302
- // NEW REACTOR PATH - use ProcessorManager from ReactorModule
303
- if (!reactorProcessorManager) {
304
- throw new Error("ProcessorManager not available from ReactorModule");
305
- }
306
- // Create a wrapper that adapts the legacy-style ProcessorManager interface
307
- // to track processors for the API response
308
- processorManager = new ProcessorManager(reactor.listeners, reactor);
309
- for (const [packageName, fns] of [
310
- ...processors.entries(),
311
- ...Object.entries(options.processors ?? {}),
312
- ]) {
313
- const factories = fns.map((fn) => {
314
- try {
315
- return fn({
316
- analyticsStore: module.analyticsStore,
317
- relationalDb: module.relationalDb,
318
- config: options.processorConfig,
319
- });
320
- }
321
- catch (e) {
322
- logger.error(`Error initializing processor factory for package ${packageName}:`, e);
323
- return null;
324
- }
325
- });
326
- // Filter and cast to the reactor types
327
- // When legacyReactor=false, PackageLoader loads processorFactory which
328
- // returns factories implementing reactor's IProcessor interface
329
- const validFactories = factories.filter((factory) => factory !== null && typeof factory === "function");
330
- if (!validFactories.length) {
331
- continue;
264
+ catch (e) {
265
+ logger.error(`Error initializing processor factory for package ${packageName}:`, e);
266
+ return null;
332
267
  }
333
- // Register with the new reactor ProcessorManager
334
- // Cast the results to ReactorProcessorRecord since the loaded factories
335
- // implement the new reactor interface when legacyReactor=false
336
- await reactorProcessorManager.registerFactory(packageName, async (driveHeader) => (await Promise.all(validFactories.map(async (factory) => {
337
- try {
338
- const result = await factory(driveHeader);
339
- return result;
340
- }
341
- catch (e) {
342
- logger.error(`Error creating processor for drive ${driveHeader.id}:`, e);
343
- return [];
344
- }
345
- }))).flat());
268
+ }));
269
+ const validFactories = factories.filter((factory) => factory.status === "fulfilled" &&
270
+ factory.value !== null &&
271
+ typeof factory.value === "function");
272
+ if (!validFactories.length) {
273
+ continue;
346
274
  }
347
- // No driveAdded event listener needed - ProcessorManager is a read model
275
+ // Register with the reactor ProcessorManager
276
+ // Cast the results to ReactorProcessorRecord since the loaded factories
277
+ // implement the reactor interface
278
+ await reactorProcessorManager.registerFactory(packageName, async (driveHeader) => (await Promise.all(validFactories.map(async ({ value: driveFactory }) => {
279
+ try {
280
+ const result = await driveFactory(driveHeader);
281
+ return result;
282
+ }
283
+ catch (e) {
284
+ logger.error(`Error creating processor for drive ${driveHeader.id}:`, e);
285
+ return [];
286
+ }
287
+ }))).flat());
348
288
  }
349
289
  // Start the server
350
- const { httpServer, wsServer } = await startServer(app, port, options.https);
290
+ const { httpServer, wsServer } = await startServer(httpAdapter, port, options.https, logger);
351
291
  // set up subgraph manager
352
292
  const coreSubgraphs = DefaultCoreSubgraphs.slice();
353
293
  coreSubgraphs.push(ReactorSubgraph);
@@ -356,76 +296,56 @@ async function _setupAPI(reactor, reactorClient, syncManager, app, port, package
356
296
  coreSubgraphs.push(AuthSubgraph);
357
297
  logger.info("Auth subgraph registered (document permissions enabled)");
358
298
  }
359
- const graphqlManager = await setupGraphQLManager(app, httpServer, wsServer, reactor, reactorClient, relationalDb, analyticsStore, syncManager, {
299
+ const graphqlManager = await setupGraphQLManager(httpAdapter, authFetchMiddleware, httpServer, wsServer, reactorClient, relationalDb, analyticsStore, syncManager, {
360
300
  extended: subgraphs,
361
301
  core: coreSubgraphs,
362
- }, auth, documentPermissionService, options.enableDocumentModelSubgraphs, port);
302
+ }, logger.child(["graphql-manager"]), auth, documentPermissionService, options.enableDocumentModelSubgraphs, port, authorizationService);
363
303
  // Set up event listeners
364
- setupEventListeners(packages, reactor, graphqlManager, processorManager, module);
304
+ setupEventListeners(packages, graphqlManager, reactorProcessorManager, hostModule, documentModelRegistry);
365
305
  if (mcpServerEnabled) {
366
- await setupMcpServer(reactor, app);
306
+ await setupMcpServer({ client: reactorClient, syncManager }, httpAdapter);
367
307
  logger.info(`MCP server available at http://localhost:${port}/mcp`);
368
308
  }
369
309
  return {
370
- app,
310
+ httpAdapter,
371
311
  graphqlManager,
372
- processorManager,
373
312
  packages,
374
313
  };
375
314
  }
376
315
  /**
377
- * Starts the API server with pre-initialized drive server and client instances.
378
- *
379
- * @param driveServer - An already-initialized document drive server instance.
380
- * @param client - An already-initialized reactor client instance.
381
- * @param options - Additional options for server configuration.
382
- *
383
- * @returns The API server components.
384
- */
385
- export async function startAPI(driveServer, client, registry, syncManager, options) {
386
- const { port, app, auth, relationalDb, analyticsStore, documentPermissionService, packages, } = await trace("reactor-api.setup.infrastructure", { tags: { "resource.name": "infrastructure" } }, () => _setupCommonInfrastructure(options));
387
- const { documentModels, processors, subgraphs } = await trace("reactor-api.packages.init", { tags: { "resource.name": "packages" } }, () => packages.init());
388
- // pass to legacy reactor
389
- driveServer.setDocumentModelModules(getUniqueDocumentModels([
390
- ...driveServer.getDocumentModelModules(),
391
- ...documentModels,
392
- ]));
393
- // pass to registry
394
- registry.registerModules(...documentModels);
395
- // startAPI always uses legacy reactor since it doesn't have ReactorClientModule
396
- const legacyReactor = true;
397
- return _setupAPI(driveServer, client, syncManager, app, port, packages, relationalDb, analyticsStore, documentPermissionService, processors, subgraphs, options, auth, legacyReactor, undefined);
398
- }
399
- /**
400
- * Initializes and starts the API server using initializer functions.
401
- * This function first loads packages to get document models, then calls the initializer functions
402
- * to create the drive server and client instances with the appropriate dependencies.
316
+ * Initializes and starts the API server using an initializer function.
317
+ * This function first loads packages to get document models, then calls the initializer function
318
+ * to create the reactor client module with the appropriate dependencies.
403
319
  *
404
- * @param driveServerInitializer - Initializer function that creates the document drive server with document models.
405
- * @param clientInitializer - Initializer function that creates the reactor client module with the drive server.
320
+ * @param clientInitializer - Initializer function that creates the reactor client module with document models.
406
321
  * @param options - Additional options for server configuration.
407
322
  *
408
- * @returns The API server components along with the created drive server and client instances.
323
+ * @returns The API server components along with the created client instances.
409
324
  */
410
- export async function initializeAndStartAPI(driveServerInitializer, clientInitializer, options) {
411
- const { port, app, auth, relationalDb, analyticsStore, documentPermissionService, packages, } = await trace("reactor-api.setup.infrastructure", { tags: { "resource.name": "infrastructure" } }, () => _setupCommonInfrastructure(options));
325
+ export async function initializeAndStartAPI(clientInitializer, options, processorApp) {
326
+ const { port, httpAdapter, authFetchMiddleware, auth, relationalDb, analyticsStore, documentPermissionService, authorizationService, packages, } = await trace("reactor-api.setup.infrastructure", { tags: { "resource.name": "infrastructure" } }, () => _setupCommonInfrastructure(options));
412
327
  const { documentModels, processors, subgraphs } = await trace("reactor-api.packages.init", { tags: { "resource.name": "packages" } }, () => packages.init());
413
- const reactor = await trace("reactor-api.drive-server.init", { tags: { "resource.name": "drive-server" } }, () => driveServerInitializer(documentModels));
414
- const reactorClientModule = await trace("reactor-api.reactor-client.init", { tags: { "resource.name": "reactor-client" } }, () => clientInitializer(reactor, documentModels));
328
+ const reactorClientModule = await trace("reactor-api.reactor-client.init", { tags: { "resource.name": "reactor-client" } }, () => clientInitializer(documentModels));
415
329
  // Extract client and syncManager from the module
416
330
  const reactorClient = reactorClientModule.client;
417
331
  const syncManager = reactorClientModule.reactorModule?.syncModule?.syncManager;
418
332
  if (!syncManager) {
419
333
  throw new Error("SyncManager not available from ReactorClientModule");
420
334
  }
421
- const legacyReactor = options.legacyReactor ?? false;
422
335
  const reactorProcessorManager = reactorClientModule.reactorModule?.processorManager;
423
- const api = await _setupAPI(reactor, reactorClient, syncManager, app, port, packages, relationalDb, analyticsStore, documentPermissionService, processors, subgraphs, options, auth, legacyReactor, reactorProcessorManager);
336
+ if (!reactorProcessorManager) {
337
+ throw new Error("ProcessorManager not available from ReactorClientModule");
338
+ }
339
+ const documentModelRegistry = reactorClientModule.reactorModule?.documentModelRegistry;
340
+ if (!documentModelRegistry) {
341
+ throw new Error("DocumentModelRegistry not available from ReactorClientModule");
342
+ }
343
+ const api = await _setupAPI(reactorClient, syncManager, reactorProcessorManager, httpAdapter, authFetchMiddleware, port, packages, relationalDb, analyticsStore, documentPermissionService, processors, subgraphs, options, auth, processorApp, authorizationService, documentModelRegistry);
424
344
  return {
425
345
  ...api,
426
- driveServer: reactor,
427
346
  client: reactorClient,
428
347
  syncManager,
348
+ documentModelRegistry,
429
349
  };
430
350
  }
431
351
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}