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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. package/README.md +6 -0
  2. package/dist/index.d.mts +3085 -0
  3. package/dist/index.d.mts.map +1 -0
  4. package/dist/index.mjs +6720 -0
  5. package/dist/index.mjs.map +1 -0
  6. package/dist/src/packages/https-hooks.d.mts +39 -0
  7. package/dist/src/packages/https-hooks.d.mts.map +1 -0
  8. package/dist/src/packages/https-hooks.mjs +82 -0
  9. package/dist/src/packages/https-hooks.mjs.map +1 -0
  10. package/dist/src/packages/vite-loader.d.mts +29 -0
  11. package/dist/src/packages/vite-loader.d.mts.map +1 -0
  12. package/dist/src/packages/vite-loader.mjs +145 -0
  13. package/dist/src/packages/vite-loader.mjs.map +1 -0
  14. package/dist/types-Do4QTfT3.d.mts +37 -0
  15. package/dist/types-Do4QTfT3.d.mts.map +1 -0
  16. package/dist/utils-BFkbSO_H.mjs +296 -0
  17. package/dist/utils-BFkbSO_H.mjs.map +1 -0
  18. package/package.json +60 -42
  19. package/dist/codegen.d.ts +0 -4
  20. package/dist/codegen.d.ts.map +0 -1
  21. package/dist/codegen.js +0 -38
  22. package/dist/codegen.js.map +0 -1
  23. package/dist/index.d.ts +0 -14
  24. package/dist/index.d.ts.map +0 -1
  25. package/dist/index.js +0 -14
  26. package/dist/index.js.map +0 -1
  27. package/dist/src/config.d.ts +0 -6
  28. package/dist/src/config.d.ts.map +0 -1
  29. package/dist/src/config.js +0 -6
  30. package/dist/src/config.js.map +0 -1
  31. package/dist/src/graphql/analytics-subgraph.d.ts +0 -14
  32. package/dist/src/graphql/analytics-subgraph.d.ts.map +0 -1
  33. package/dist/src/graphql/analytics-subgraph.js +0 -26
  34. package/dist/src/graphql/analytics-subgraph.js.map +0 -1
  35. package/dist/src/graphql/auth/index.d.ts +0 -2
  36. package/dist/src/graphql/auth/index.d.ts.map +0 -1
  37. package/dist/src/graphql/auth/index.js +0 -2
  38. package/dist/src/graphql/auth/index.js.map +0 -1
  39. package/dist/src/graphql/auth/resolvers.d.ts +0 -149
  40. package/dist/src/graphql/auth/resolvers.d.ts.map +0 -1
  41. package/dist/src/graphql/auth/resolvers.js +0 -173
  42. package/dist/src/graphql/auth/resolvers.js.map +0 -1
  43. package/dist/src/graphql/auth/schema.graphql +0 -173
  44. package/dist/src/graphql/auth/subgraph.d.ts +0 -177
  45. package/dist/src/graphql/auth/subgraph.d.ts.map +0 -1
  46. package/dist/src/graphql/auth/subgraph.js +0 -340
  47. package/dist/src/graphql/auth/subgraph.js.map +0 -1
  48. package/dist/src/graphql/base-subgraph.d.ts +0 -20
  49. package/dist/src/graphql/base-subgraph.d.ts.map +0 -1
  50. package/dist/src/graphql/base-subgraph.js +0 -34
  51. package/dist/src/graphql/base-subgraph.js.map +0 -1
  52. package/dist/src/graphql/document-model-subgraph.d.ts +0 -103
  53. package/dist/src/graphql/document-model-subgraph.d.ts.map +0 -1
  54. package/dist/src/graphql/document-model-subgraph.js +0 -595
  55. package/dist/src/graphql/document-model-subgraph.js.map +0 -1
  56. package/dist/src/graphql/drive-subgraph.d.ts +0 -25
  57. package/dist/src/graphql/drive-subgraph.d.ts.map +0 -1
  58. package/dist/src/graphql/drive-subgraph.js +0 -488
  59. package/dist/src/graphql/drive-subgraph.js.map +0 -1
  60. package/dist/src/graphql/graphql-manager.d.ts +0 -52
  61. package/dist/src/graphql/graphql-manager.d.ts.map +0 -1
  62. package/dist/src/graphql/graphql-manager.js +0 -491
  63. package/dist/src/graphql/graphql-manager.js.map +0 -1
  64. package/dist/src/graphql/index.d.ts +0 -10
  65. package/dist/src/graphql/index.d.ts.map +0 -1
  66. package/dist/src/graphql/index.js +0 -10
  67. package/dist/src/graphql/index.js.map +0 -1
  68. package/dist/src/graphql/playground.d.ts +0 -2
  69. package/dist/src/graphql/playground.d.ts.map +0 -1
  70. package/dist/src/graphql/playground.js +0 -74
  71. package/dist/src/graphql/playground.js.map +0 -1
  72. package/dist/src/graphql/reactor/adapters.d.ts +0 -62
  73. package/dist/src/graphql/reactor/adapters.d.ts.map +0 -1
  74. package/dist/src/graphql/reactor/adapters.js +0 -270
  75. package/dist/src/graphql/reactor/adapters.js.map +0 -1
  76. package/dist/src/graphql/reactor/factory.d.ts +0 -95
  77. package/dist/src/graphql/reactor/factory.d.ts.map +0 -1
  78. package/dist/src/graphql/reactor/factory.js +0 -7
  79. package/dist/src/graphql/reactor/factory.js.map +0 -1
  80. package/dist/src/graphql/reactor/gen/graphql.d.ts +0 -1355
  81. package/dist/src/graphql/reactor/gen/graphql.d.ts.map +0 -1
  82. package/dist/src/graphql/reactor/gen/graphql.js +0 -615
  83. package/dist/src/graphql/reactor/gen/graphql.js.map +0 -1
  84. package/dist/src/graphql/reactor/index.d.ts +0 -4
  85. package/dist/src/graphql/reactor/index.d.ts.map +0 -1
  86. package/dist/src/graphql/reactor/index.js +0 -4
  87. package/dist/src/graphql/reactor/index.js.map +0 -1
  88. package/dist/src/graphql/reactor/operations.graphql +0 -336
  89. package/dist/src/graphql/reactor/pubsub.d.ts +0 -27
  90. package/dist/src/graphql/reactor/pubsub.d.ts.map +0 -1
  91. package/dist/src/graphql/reactor/pubsub.js +0 -93
  92. package/dist/src/graphql/reactor/pubsub.js.map +0 -1
  93. package/dist/src/graphql/reactor/requester.d.ts +0 -4
  94. package/dist/src/graphql/reactor/requester.d.ts.map +0 -1
  95. package/dist/src/graphql/reactor/requester.js +0 -22
  96. package/dist/src/graphql/reactor/requester.js.map +0 -1
  97. package/dist/src/graphql/reactor/requester.with-zod.d.ts +0 -4
  98. package/dist/src/graphql/reactor/requester.with-zod.d.ts.map +0 -1
  99. package/dist/src/graphql/reactor/requester.with-zod.js +0 -119
  100. package/dist/src/graphql/reactor/requester.with-zod.js.map +0 -1
  101. package/dist/src/graphql/reactor/resolvers.d.ts +0 -211
  102. package/dist/src/graphql/reactor/resolvers.d.ts.map +0 -1
  103. package/dist/src/graphql/reactor/resolvers.js +0 -595
  104. package/dist/src/graphql/reactor/resolvers.js.map +0 -1
  105. package/dist/src/graphql/reactor/schema.graphql +0 -469
  106. package/dist/src/graphql/reactor/subgraph.d.ts +0 -47
  107. package/dist/src/graphql/reactor/subgraph.d.ts.map +0 -1
  108. package/dist/src/graphql/reactor/subgraph.js +0 -522
  109. package/dist/src/graphql/reactor/subgraph.js.map +0 -1
  110. package/dist/src/graphql/reactor/validation.d.ts +0 -120
  111. package/dist/src/graphql/reactor/validation.d.ts.map +0 -1
  112. package/dist/src/graphql/reactor/validation.js +0 -87
  113. package/dist/src/graphql/reactor/validation.js.map +0 -1
  114. package/dist/src/graphql/system/env/getters.d.ts +0 -2
  115. package/dist/src/graphql/system/env/getters.d.ts.map +0 -1
  116. package/dist/src/graphql/system/env/getters.js +0 -4
  117. package/dist/src/graphql/system/env/getters.js.map +0 -1
  118. package/dist/src/graphql/system/env/index.d.ts +0 -2
  119. package/dist/src/graphql/system/env/index.d.ts.map +0 -1
  120. package/dist/src/graphql/system/env/index.js +0 -5
  121. package/dist/src/graphql/system/env/index.js.map +0 -1
  122. package/dist/src/graphql/system/index.d.ts +0 -2
  123. package/dist/src/graphql/system/index.d.ts.map +0 -1
  124. package/dist/src/graphql/system/index.js +0 -2
  125. package/dist/src/graphql/system/index.js.map +0 -1
  126. package/dist/src/graphql/system/types.d.ts +0 -2
  127. package/dist/src/graphql/system/types.d.ts.map +0 -1
  128. package/dist/src/graphql/system/types.js +0 -2
  129. package/dist/src/graphql/system/types.js.map +0 -1
  130. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts +0 -57
  131. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts.map +0 -1
  132. package/dist/src/graphql/temp-hack-rwa-type-defs.js +0 -2
  133. package/dist/src/graphql/temp-hack-rwa-type-defs.js.map +0 -1
  134. package/dist/src/graphql/types.d.ts +0 -103
  135. package/dist/src/graphql/types.d.ts.map +0 -1
  136. package/dist/src/graphql/types.js +0 -2
  137. package/dist/src/graphql/types.js.map +0 -1
  138. package/dist/src/graphql/utils.d.ts +0 -26
  139. package/dist/src/graphql/utils.d.ts.map +0 -1
  140. package/dist/src/graphql/utils.js +0 -104
  141. package/dist/src/graphql/utils.js.map +0 -1
  142. package/dist/src/graphql/websocket.d.ts +0 -3
  143. package/dist/src/graphql/websocket.d.ts.map +0 -1
  144. package/dist/src/graphql/websocket.js +0 -15
  145. package/dist/src/graphql/websocket.js.map +0 -1
  146. package/dist/src/migrations/001_create_document_permissions.d.ts +0 -4
  147. package/dist/src/migrations/001_create_document_permissions.d.ts.map +0 -1
  148. package/dist/src/migrations/001_create_document_permissions.js +0 -91
  149. package/dist/src/migrations/001_create_document_permissions.js.map +0 -1
  150. package/dist/src/migrations/index.d.ts +0 -10
  151. package/dist/src/migrations/index.d.ts.map +0 -1
  152. package/dist/src/migrations/index.js +0 -56
  153. package/dist/src/migrations/index.js.map +0 -1
  154. package/dist/src/packages/import-loader.d.ts +0 -16
  155. package/dist/src/packages/import-loader.d.ts.map +0 -1
  156. package/dist/src/packages/import-loader.js +0 -61
  157. package/dist/src/packages/import-loader.js.map +0 -1
  158. package/dist/src/packages/import-resolver.d.ts +0 -5
  159. package/dist/src/packages/import-resolver.d.ts.map +0 -1
  160. package/dist/src/packages/import-resolver.js +0 -127
  161. package/dist/src/packages/import-resolver.js.map +0 -1
  162. package/dist/src/packages/package-manager.d.ts +0 -34
  163. package/dist/src/packages/package-manager.d.ts.map +0 -1
  164. package/dist/src/packages/package-manager.js +0 -213
  165. package/dist/src/packages/package-manager.js.map +0 -1
  166. package/dist/src/packages/types.d.ts +0 -40
  167. package/dist/src/packages/types.d.ts.map +0 -1
  168. package/dist/src/packages/types.js +0 -2
  169. package/dist/src/packages/types.js.map +0 -1
  170. package/dist/src/packages/util.d.ts +0 -27
  171. package/dist/src/packages/util.d.ts.map +0 -1
  172. package/dist/src/packages/util.js +0 -97
  173. package/dist/src/packages/util.js.map +0 -1
  174. package/dist/src/packages/vite-loader.d.ts +0 -25
  175. package/dist/src/packages/vite-loader.d.ts.map +0 -1
  176. package/dist/src/packages/vite-loader.js +0 -182
  177. package/dist/src/packages/vite-loader.js.map +0 -1
  178. package/dist/src/server.d.ts +0 -80
  179. package/dist/src/server.d.ts.map +0 -1
  180. package/dist/src/server.js +0 -427
  181. package/dist/src/server.js.map +0 -1
  182. package/dist/src/services/auth.service.d.ts +0 -68
  183. package/dist/src/services/auth.service.d.ts.map +0 -1
  184. package/dist/src/services/auth.service.js +0 -190
  185. package/dist/src/services/auth.service.js.map +0 -1
  186. package/dist/src/services/document-permission.service.d.ts +0 -201
  187. package/dist/src/services/document-permission.service.d.ts.map +0 -1
  188. package/dist/src/services/document-permission.service.js +0 -636
  189. package/dist/src/services/document-permission.service.js.map +0 -1
  190. package/dist/src/sync/types.d.ts +0 -10
  191. package/dist/src/sync/types.d.ts.map +0 -1
  192. package/dist/src/sync/types.js +0 -2
  193. package/dist/src/sync/types.js.map +0 -1
  194. package/dist/src/sync/utils.d.ts +0 -7
  195. package/dist/src/sync/utils.d.ts.map +0 -1
  196. package/dist/src/sync/utils.js +0 -78
  197. package/dist/src/sync/utils.js.map +0 -1
  198. package/dist/src/tracing.d.ts +0 -4
  199. package/dist/src/tracing.d.ts.map +0 -1
  200. package/dist/src/tracing.js +0 -122
  201. package/dist/src/tracing.js.map +0 -1
  202. package/dist/src/types.d.ts +0 -18
  203. package/dist/src/types.d.ts.map +0 -1
  204. package/dist/src/types.js +0 -2
  205. package/dist/src/types.js.map +0 -1
  206. package/dist/src/utils/auth.d.ts +0 -3
  207. package/dist/src/utils/auth.d.ts.map +0 -1
  208. package/dist/src/utils/auth.js +0 -19
  209. package/dist/src/utils/auth.js.map +0 -1
  210. package/dist/src/utils/create-schema.d.ts +0 -31
  211. package/dist/src/utils/create-schema.d.ts.map +0 -1
  212. package/dist/src/utils/create-schema.js +0 -548
  213. package/dist/src/utils/create-schema.js.map +0 -1
  214. package/dist/src/utils/db.d.ts +0 -74
  215. package/dist/src/utils/db.d.ts.map +0 -1
  216. package/dist/src/utils/db.js +0 -101
  217. package/dist/src/utils/db.js.map +0 -1
  218. package/dist/src/utils/drive-url.d.ts +0 -2
  219. package/dist/src/utils/drive-url.d.ts.map +0 -1
  220. package/dist/src/utils/drive-url.js +0 -3
  221. package/dist/src/utils/drive-url.js.map +0 -1
  222. package/dist/src/utils/index.d.ts +0 -4
  223. package/dist/src/utils/index.d.ts.map +0 -1
  224. package/dist/src/utils/index.js +0 -4
  225. package/dist/src/utils/index.js.map +0 -1
  226. package/dist/test/benchmarks/load.bench.d.ts +0 -2
  227. package/dist/test/benchmarks/load.bench.d.ts.map +0 -1
  228. package/dist/test/benchmarks/load.bench.js +0 -73
  229. package/dist/test/benchmarks/load.bench.js.map +0 -1
  230. package/dist/test/benchmarks/sync.bench.d.ts +0 -2
  231. package/dist/test/benchmarks/sync.bench.d.ts.map +0 -1
  232. package/dist/test/benchmarks/sync.bench.js +0 -119
  233. package/dist/test/benchmarks/sync.bench.js.map +0 -1
  234. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts +0 -2
  235. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts.map +0 -1
  236. package/dist/test/connect-switchboard-reshuffle-convergence.test.js +0 -203
  237. package/dist/test/connect-switchboard-reshuffle-convergence.test.js.map +0 -1
  238. package/dist/test/connect-switchboard-sync.test.d.ts +0 -2
  239. package/dist/test/connect-switchboard-sync.test.d.ts.map +0 -1
  240. package/dist/test/connect-switchboard-sync.test.js +0 -581
  241. package/dist/test/connect-switchboard-sync.test.js.map +0 -1
  242. package/dist/test/document-drive-subgraph.test.d.ts +0 -2
  243. package/dist/test/document-drive-subgraph.test.d.ts.map +0 -1
  244. package/dist/test/document-drive-subgraph.test.js +0 -186
  245. package/dist/test/document-drive-subgraph.test.js.map +0 -1
  246. package/dist/test/document-model-subgraph-legacy-permissions.test.d.ts +0 -2
  247. package/dist/test/document-model-subgraph-legacy-permissions.test.d.ts.map +0 -1
  248. package/dist/test/document-model-subgraph-legacy-permissions.test.js +0 -518
  249. package/dist/test/document-model-subgraph-legacy-permissions.test.js.map +0 -1
  250. package/dist/test/document-model-subgraph-permissions.test.d.ts +0 -2
  251. package/dist/test/document-model-subgraph-permissions.test.d.ts.map +0 -1
  252. package/dist/test/document-model-subgraph-permissions.test.js +0 -635
  253. package/dist/test/document-model-subgraph-permissions.test.js.map +0 -1
  254. package/dist/test/document-model-subgraph.test.d.ts +0 -2
  255. package/dist/test/document-model-subgraph.test.d.ts.map +0 -1
  256. package/dist/test/document-model-subgraph.test.js +0 -441
  257. package/dist/test/document-model-subgraph.test.js.map +0 -1
  258. package/dist/test/document-permission.service.test.d.ts +0 -2
  259. package/dist/test/document-permission.service.test.d.ts.map +0 -1
  260. package/dist/test/document-permission.service.test.js +0 -480
  261. package/dist/test/document-permission.service.test.js.map +0 -1
  262. package/dist/test/drive-handlers.d.ts +0 -4
  263. package/dist/test/drive-handlers.d.ts.map +0 -1
  264. package/dist/test/drive-handlers.js +0 -39
  265. package/dist/test/drive-handlers.js.map +0 -1
  266. package/dist/test/drive-info-endpoint.test.d.ts +0 -2
  267. package/dist/test/drive-info-endpoint.test.d.ts.map +0 -1
  268. package/dist/test/drive-info-endpoint.test.js +0 -123
  269. package/dist/test/drive-info-endpoint.test.js.map +0 -1
  270. package/dist/test/drive-subgraph-permissions.test.d.ts +0 -2
  271. package/dist/test/drive-subgraph-permissions.test.d.ts.map +0 -1
  272. package/dist/test/drive-subgraph-permissions.test.js +0 -195
  273. package/dist/test/drive-subgraph-permissions.test.js.map +0 -1
  274. package/dist/test/drive.test.d.ts +0 -2
  275. package/dist/test/drive.test.d.ts.map +0 -1
  276. package/dist/test/drive.test.js +0 -142
  277. package/dist/test/drive.test.js.map +0 -1
  278. package/dist/test/identity-integration.test.d.ts +0 -2
  279. package/dist/test/identity-integration.test.d.ts.map +0 -1
  280. package/dist/test/identity-integration.test.js +0 -349
  281. package/dist/test/identity-integration.test.js.map +0 -1
  282. package/dist/test/index.d.ts +0 -3
  283. package/dist/test/index.d.ts.map +0 -1
  284. package/dist/test/index.js +0 -3
  285. package/dist/test/index.js.map +0 -1
  286. package/dist/test/permissions-integration.test.d.ts +0 -2
  287. package/dist/test/permissions-integration.test.d.ts.map +0 -1
  288. package/dist/test/permissions-integration.test.js +0 -421
  289. package/dist/test/permissions-integration.test.js.map +0 -1
  290. package/dist/test/pull-responder-transmitter.test.d.ts +0 -2
  291. package/dist/test/pull-responder-transmitter.test.d.ts.map +0 -1
  292. package/dist/test/pull-responder-transmitter.test.js +0 -220
  293. package/dist/test/pull-responder-transmitter.test.js.map +0 -1
  294. package/dist/test/push-backfill.test.d.ts +0 -2
  295. package/dist/test/push-backfill.test.d.ts.map +0 -1
  296. package/dist/test/push-backfill.test.js +0 -298
  297. package/dist/test/push-backfill.test.js.map +0 -1
  298. package/dist/test/push-transmitter.test.d.ts +0 -2
  299. package/dist/test/push-transmitter.test.d.ts.map +0 -1
  300. package/dist/test/push-transmitter.test.js +0 -179
  301. package/dist/test/push-transmitter.test.js.map +0 -1
  302. package/dist/test/reactor-adapters.test.d.ts +0 -2
  303. package/dist/test/reactor-adapters.test.d.ts.map +0 -1
  304. package/dist/test/reactor-adapters.test.js +0 -379
  305. package/dist/test/reactor-adapters.test.js.map +0 -1
  306. package/dist/test/reactor-client.test.d.ts +0 -2
  307. package/dist/test/reactor-client.test.d.ts.map +0 -1
  308. package/dist/test/reactor-client.test.js +0 -212
  309. package/dist/test/reactor-client.test.js.map +0 -1
  310. package/dist/test/reactor-resolvers.test.d.ts +0 -2
  311. package/dist/test/reactor-resolvers.test.d.ts.map +0 -1
  312. package/dist/test/reactor-resolvers.test.js +0 -258
  313. package/dist/test/reactor-resolvers.test.js.map +0 -1
  314. package/dist/test/reactor-subgraph-permissions.test.d.ts +0 -2
  315. package/dist/test/reactor-subgraph-permissions.test.d.ts.map +0 -1
  316. package/dist/test/reactor-subgraph-permissions.test.js +0 -397
  317. package/dist/test/reactor-subgraph-permissions.test.js.map +0 -1
  318. package/dist/test/router.test.d.ts +0 -2
  319. package/dist/test/router.test.d.ts.map +0 -1
  320. package/dist/test/router.test.js +0 -38
  321. package/dist/test/router.test.js.map +0 -1
  322. package/dist/test/subscriptions.test.d.ts +0 -2
  323. package/dist/test/subscriptions.test.d.ts.map +0 -1
  324. package/dist/test/subscriptions.test.js +0 -248
  325. package/dist/test/subscriptions.test.js.map +0 -1
  326. package/dist/test/utils/gql-resolver-bridge.d.ts +0 -15
  327. package/dist/test/utils/gql-resolver-bridge.d.ts.map +0 -1
  328. package/dist/test/utils/gql-resolver-bridge.js +0 -89
  329. package/dist/test/utils/gql-resolver-bridge.js.map +0 -1
  330. package/dist/test/utils.d.ts +0 -10
  331. package/dist/test/utils.d.ts.map +0 -1
  332. package/dist/test/utils.js +0 -23
  333. package/dist/test/utils.js.map +0 -1
  334. package/dist/tsconfig.tsbuildinfo +0 -1
  335. package/dist/vitest.config.d.ts +0 -3
  336. package/dist/vitest.config.d.ts.map +0 -1
  337. package/dist/vitest.config.js +0 -38
  338. package/dist/vitest.config.js.map +0 -1
@@ -1,427 +0,0 @@
1
- import { PostgresAnalyticsStore } from "@powerhousedao/analytics-engine-pg";
2
- import { getConfig } from "@powerhousedao/config/node";
3
- import { setupMcpServer } from "@powerhousedao/reactor-mcp";
4
- import devcert from "devcert";
5
- import { childLogger, createRelationalDbLegacy, ProcessorManagerLegacy, } 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
- import { WebSocketServer } from "ws";
11
- import { config, DefaultCoreSubgraphs } from "./config.js";
12
- import { AuthSubgraph } from "./graphql/auth/subgraph.js";
13
- import { GraphQLManager } from "./graphql/graphql-manager.js";
14
- import { renderGraphqlPlayground } from "./graphql/playground.js";
15
- import { ReactorSubgraph } from "./graphql/reactor/subgraph.js";
16
- import { runMigrations } from "./migrations/index.js";
17
- import { ImportPackageLoader } from "./packages/import-loader.js";
18
- import { getUniqueDocumentModels, PackageManager, } from "./packages/package-manager.js";
19
- import { AuthService } from "./services/auth.service.js";
20
- import { DocumentPermissionService } from "./services/document-permission.service.js";
21
- import { initTracing, isTracingEnabled, trace } from "./tracing.js";
22
- import { getDbClient, initAnalyticsStoreSql, } from "./utils/db.js";
23
- const defaultLogger = childLogger(["reactor-api", "server"]);
24
- const DEFAULT_PORT = 4000;
25
- /**
26
- * Sets up the Express app with necessary routes
27
- */
28
- function setupGraphQlExplorer(router) {
29
- router.get("/explorer/:endpoint?", (req, res) => {
30
- res.setHeader("Content-Type", "text/html");
31
- const endpoint = req.params.endpoint !== undefined
32
- ? `/${req.params.endpoint}`
33
- : "/graphql";
34
- const { query } = req.query;
35
- if (query && typeof query !== "string") {
36
- throw new Error("Invalid query");
37
- }
38
- res.send(renderGraphqlPlayground(endpoint, query));
39
- });
40
- }
41
- /**
42
- * Initializes the database and analytics store
43
- */
44
- async function initializeDatabaseAndAnalytics(dbPath) {
45
- const { db, knex } = getDbClient(dbPath);
46
- const relationalDb = createRelationalDbLegacy(db);
47
- const analyticsStore = new PostgresAnalyticsStore({
48
- knex,
49
- });
50
- for (const sql of initAnalyticsStoreSql) {
51
- await knex.raw(sql);
52
- }
53
- return { relationalDb, analyticsStore };
54
- }
55
- /**
56
- * Sets up the subgraph manager and registers subgraphs
57
- */
58
- async function setupGraphQLManager(app, httpServer, wsServer, reactor, client, relationalDb, analyticsStore, syncManager, subgraphs, logger, auth, documentPermissionService, enableDocumentModelSubgraphs, useNewDocumentModelSubgraph, port) {
59
- const graphqlManager = new GraphQLManager(config.basePath, app, httpServer, wsServer, reactor, client, relationalDb, analyticsStore, syncManager, logger, {
60
- enabled: auth?.enabled ?? false,
61
- guests: auth?.guests ?? [],
62
- users: auth?.users ?? [],
63
- admins: auth?.admins ?? [],
64
- freeEntry: auth?.freeEntry ?? false,
65
- }, documentPermissionService, {
66
- enableDocumentModelSubgraphs,
67
- useNewDocumentModelSubgraph,
68
- }, port);
69
- await graphqlManager.init(subgraphs.core);
70
- for (const [, collection] of subgraphs.extended.entries()) {
71
- for (const subgraph of collection) {
72
- await graphqlManager.registerSubgraph(subgraph, "graphql");
73
- }
74
- }
75
- await graphqlManager.updateRouter();
76
- return graphqlManager;
77
- }
78
- /**
79
- * Sets up event listeners for package manager changes
80
- */
81
- function setupEventListeners(pkgManager, reactor, graphqlManager, processorManager, module) {
82
- pkgManager.onDocumentModelsChange(async (documentModels) => {
83
- reactor.setDocumentModelModules(Object.values(documentModels).flat());
84
- await graphqlManager.updateRouter();
85
- });
86
- pkgManager.onSubgraphsChange(async (packagedSubgraphs) => {
87
- for (const [, subgraphs] of packagedSubgraphs) {
88
- for (const subgraph of subgraphs) {
89
- await graphqlManager.registerSubgraph(subgraph, "graphql");
90
- }
91
- }
92
- await graphqlManager.updateRouter();
93
- });
94
- pkgManager.onProcessorsChange(async (processors) => {
95
- for (const [packageName, fns] of processors) {
96
- await processorManager.unregisterFactory(packageName);
97
- const factories = fns.map((fn) => fn(module));
98
- await processorManager.registerFactory(packageName, async (driveHeader) => (await Promise.all(factories.map((factory) => Promise.resolve(factory(driveHeader))))).flat());
99
- }
100
- });
101
- }
102
- /**
103
- * Starts the server (HTTP or HTTPS) and attaches WebSocket server
104
- */
105
- async function startServer(app, port, httpsOptions, logger) {
106
- let httpServer;
107
- if (httpsOptions) {
108
- const currentDir = process.cwd();
109
- if (typeof httpsOptions === "object") {
110
- httpServer = https.createServer({
111
- key: fs.readFileSync(path.join(currentDir, httpsOptions.keyPath)),
112
- cert: fs.readFileSync(path.join(currentDir, httpsOptions.certPath)),
113
- }, app);
114
- }
115
- else {
116
- try {
117
- const { cert, key } = (await devcert.certificateFor("localhost"));
118
- if (!cert || !key) {
119
- throw new Error("Invalid certificate generated");
120
- }
121
- httpServer = https.createServer({ cert, key }, app);
122
- }
123
- catch (err) {
124
- console.error("Failed to get HTTPS certificate:", err);
125
- throw new Error("Failed to start HTTPS server");
126
- }
127
- }
128
- httpServer.listen(port);
129
- }
130
- else {
131
- httpServer = app.listen(port);
132
- }
133
- const wsServer = new WebSocketServer({
134
- server: httpServer,
135
- path: "/graphql/subscriptions",
136
- });
137
- logger.info("WebSocket server available at /graphql/subscriptions");
138
- return { httpServer, wsServer };
139
- }
140
- /**
141
- * Private helper function that sets up common infrastructure before API initialization.
142
- * This includes auth configuration, database setup, and package manager initialization.
143
- */
144
- async function _setupCommonInfrastructure(options) {
145
- // Initialize OpenTelemetry tracing
146
- if (isTracingEnabled()) {
147
- await initTracing();
148
- }
149
- const port = options.port ?? DEFAULT_PORT;
150
- const app = options.express ?? express();
151
- // Setup auth configuration
152
- let admins = [];
153
- let users = [];
154
- let guests = [];
155
- let authEnabled = false;
156
- let freeEntry = false;
157
- if (options.configFile) {
158
- const config = getConfig(options.configFile);
159
- admins = config.auth?.admins?.map((a) => a.toLowerCase()) ?? [];
160
- users = config.auth?.users?.map((u) => u.toLowerCase()) ?? [];
161
- guests = config.auth?.guests?.map((g) => g.toLowerCase()) ?? [];
162
- authEnabled = config.auth?.enabled ?? false;
163
- freeEntry = config.auth?.freeEntry ?? false;
164
- }
165
- else if (options.auth) {
166
- admins = options.auth?.admins?.map((a) => a.toLowerCase()) ?? [];
167
- users = options.auth?.users?.map((u) => u.toLowerCase()) ?? [];
168
- guests = options.auth?.guests?.map((g) => g.toLowerCase()) ?? [];
169
- authEnabled = options.auth?.enabled ?? false;
170
- freeEntry = options.auth?.freeEntry ?? false;
171
- }
172
- const { AUTH_ENABLED, GUESTS, USERS, ADMINS, FREE_ENTRY, DOCUMENT_PERMISSIONS_ENABLED, SKIP_CREDENTIAL_VERIFICATION, } = process.env;
173
- if (AUTH_ENABLED !== undefined) {
174
- authEnabled = AUTH_ENABLED === "true";
175
- }
176
- if (GUESTS !== undefined) {
177
- guests = GUESTS.split(",").map((g) => g.toLowerCase());
178
- }
179
- if (USERS !== undefined) {
180
- users = USERS.split(",").map((u) => u.toLowerCase());
181
- }
182
- if (ADMINS !== undefined) {
183
- admins = ADMINS.split(",").map((a) => a.toLowerCase());
184
- }
185
- if (FREE_ENTRY !== undefined) {
186
- freeEntry = FREE_ENTRY === "true";
187
- }
188
- let skipCredentialVerification = false;
189
- if (SKIP_CREDENTIAL_VERIFICATION !== undefined) {
190
- skipCredentialVerification = SKIP_CREDENTIAL_VERIFICATION === "true";
191
- }
192
- // Health check endpoint (before auth middleware)
193
- app.get("/health", (_req, res) => {
194
- res.status(200).send("OK");
195
- });
196
- const logger = options.logger ?? defaultLogger;
197
- // add auth middleware if auth is enabled
198
- if (authEnabled) {
199
- logger.info("Setting up Auth middleware");
200
- const authService = new AuthService({
201
- enabled: authEnabled,
202
- guests,
203
- users,
204
- admins,
205
- freeEntry,
206
- skipCredentialVerification,
207
- });
208
- // Apply auth middleware to all routes including GraphQL
209
- app.use((req, res, next) => {
210
- authService.authenticate(req, res, next);
211
- });
212
- }
213
- const defaultRouter = express.Router();
214
- setupGraphQlExplorer(defaultRouter);
215
- app.use(config.basePath, defaultRouter);
216
- // Initialize database and analytics store
217
- const { relationalDb, analyticsStore } = await trace("reactor-api.init.database", { tags: { "resource.name": "database" } }, () => initializeDatabaseAndAnalytics(options.dbPath));
218
- // Use provided document permission service, or create one if env var is set
219
- let documentPermissionService = options.documentPermissionService;
220
- if (!documentPermissionService && DOCUMENT_PERMISSIONS_ENABLED === "true") {
221
- const { db } = getDbClient(options.dbPath);
222
- // Run document permission migrations
223
- await runMigrations(db);
224
- logger.info("Document permission migrations completed");
225
- documentPermissionService = new DocumentPermissionService(db);
226
- logger.info("Document permission service initialized");
227
- }
228
- // Initialize package manager
229
- const legacyReactor = options.legacyReactor ?? false;
230
- const packageLoader = options.packageLoader ?? new ImportPackageLoader({ legacyReactor });
231
- const loaders = [packageLoader];
232
- const packages = new PackageManager(loaders, {
233
- configFile: options.configFile,
234
- packages: options.packages ?? [],
235
- });
236
- return {
237
- port,
238
- app,
239
- auth: {
240
- enabled: authEnabled,
241
- guests,
242
- users,
243
- admins,
244
- freeEntry,
245
- },
246
- relationalDb,
247
- analyticsStore,
248
- documentPermissionService,
249
- packages,
250
- };
251
- }
252
- /**
253
- * Private helper function containing common setup logic for API initialization
254
- */
255
- async function _setupAPI(reactor, reactorClient, syncManager, app, port, packages, relationalDb, analyticsStore, documentPermissionService, processors, subgraphs, options, auth, legacyReactor, processorApp, reactorProcessorManager) {
256
- const module = {
257
- relationalDb,
258
- analyticsStore,
259
- processorApp,
260
- config: options.processorConfig,
261
- };
262
- const mcpServerEnabled = options.mcp ?? true;
263
- const logger = options.logger ?? defaultLogger;
264
- // initialize processors
265
- let processorManager;
266
- if (legacyReactor) {
267
- // LEGACY PATH - use document-drive ProcessorManager
268
- processorManager = new ProcessorManagerLegacy(reactor.listeners, reactor);
269
- for (const [packageName, fns] of [
270
- ...processors.entries(),
271
- ...Object.entries(options.processors ?? {}),
272
- ]) {
273
- const factories = fns.map((fn) => {
274
- try {
275
- return fn(module);
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;
285
- }
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 ProcessorManagerLegacy(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(module);
316
- }
317
- catch (e) {
318
- logger.error(`Error initializing processor factory for package ${packageName}:`, e);
319
- return null;
320
- }
321
- });
322
- // Filter and cast to the reactor types
323
- // When legacyReactor=false, PackageLoader loads processorFactory which
324
- // returns factories implementing reactor's IProcessor interface
325
- const validFactories = factories.filter((factory) => factory !== null && typeof factory === "function");
326
- if (!validFactories.length) {
327
- continue;
328
- }
329
- // Register with the new reactor ProcessorManager
330
- // Cast the results to ReactorProcessorRecord since the loaded factories
331
- // implement the new reactor interface when legacyReactor=false
332
- await reactorProcessorManager.registerFactory(packageName, async (driveHeader) => (await Promise.all(validFactories.map(async (factory) => {
333
- try {
334
- const result = await factory(driveHeader);
335
- return result;
336
- }
337
- catch (e) {
338
- logger.error(`Error creating processor for drive ${driveHeader.id}:`, e);
339
- return [];
340
- }
341
- }))).flat());
342
- }
343
- // No driveAdded event listener needed - ProcessorManager is a read model
344
- }
345
- // Start the server
346
- const { httpServer, wsServer } = await startServer(app, port, options.https, logger);
347
- // set up subgraph manager
348
- const coreSubgraphs = DefaultCoreSubgraphs.slice();
349
- coreSubgraphs.push(ReactorSubgraph);
350
- // Register Auth subgraph when document permission service is available
351
- if (documentPermissionService) {
352
- coreSubgraphs.push(AuthSubgraph);
353
- logger.info("Auth subgraph registered (document permissions enabled)");
354
- }
355
- const graphqlManager = await setupGraphQLManager(app, httpServer, wsServer, reactor, reactorClient, relationalDb, analyticsStore, syncManager, {
356
- extended: subgraphs,
357
- core: coreSubgraphs,
358
- }, logger.child(["graphql-manager"]), auth, documentPermissionService, options.enableDocumentModelSubgraphs, options.useNewDocumentModelSubgraph, port);
359
- // Set up event listeners
360
- setupEventListeners(packages, reactor, graphqlManager, processorManager, module);
361
- if (mcpServerEnabled) {
362
- await setupMcpServer(reactor, app);
363
- logger.info(`MCP server available at http://localhost:${port}/mcp`);
364
- }
365
- return {
366
- app,
367
- graphqlManager,
368
- processorManager,
369
- packages,
370
- };
371
- }
372
- /**
373
- * Starts the API server with pre-initialized drive server and client instances.
374
- *
375
- * @param driveServer - An already-initialized document drive server instance.
376
- * @param client - An already-initialized reactor client instance.
377
- * @param options - Additional options for server configuration.
378
- *
379
- * @returns The API server components.
380
- */
381
- export async function startAPI(driveServer, client, registry, syncManager, options, processorApp) {
382
- const { port, app, auth, relationalDb, analyticsStore, documentPermissionService, packages, } = await trace("reactor-api.setup.infrastructure", { tags: { "resource.name": "infrastructure" } }, () => _setupCommonInfrastructure(options));
383
- const { documentModels, processors, subgraphs } = await trace("reactor-api.packages.init", { tags: { "resource.name": "packages" } }, () => packages.init());
384
- // pass to legacy reactor
385
- driveServer.setDocumentModelModules(getUniqueDocumentModels([
386
- ...driveServer.getDocumentModelModules(),
387
- ...documentModels,
388
- ]));
389
- // pass to registry
390
- registry.registerModules(...documentModels);
391
- // startAPI always uses legacy reactor since it doesn't have ReactorClientModule
392
- const legacyReactor = true;
393
- return _setupAPI(driveServer, client, syncManager, app, port, packages, relationalDb, analyticsStore, documentPermissionService, processors, subgraphs, options, auth, legacyReactor, processorApp, undefined);
394
- }
395
- /**
396
- * Initializes and starts the API server using initializer functions.
397
- * This function first loads packages to get document models, then calls the initializer functions
398
- * to create the drive server and client instances with the appropriate dependencies.
399
- *
400
- * @param driveServerInitializer - Initializer function that creates the document drive server with document models.
401
- * @param clientInitializer - Initializer function that creates the reactor client module with the drive server.
402
- * @param options - Additional options for server configuration.
403
- *
404
- * @returns The API server components along with the created drive server and client instances.
405
- */
406
- export async function initializeAndStartAPI(driveServerInitializer, clientInitializer, options, processorApp) {
407
- const { port, app, auth, relationalDb, analyticsStore, documentPermissionService, packages, } = await trace("reactor-api.setup.infrastructure", { tags: { "resource.name": "infrastructure" } }, () => _setupCommonInfrastructure(options));
408
- const { documentModels, processors, subgraphs } = await trace("reactor-api.packages.init", { tags: { "resource.name": "packages" } }, () => packages.init());
409
- const reactor = await trace("reactor-api.drive-server.init", { tags: { "resource.name": "drive-server" } }, () => driveServerInitializer(documentModels));
410
- const reactorClientModule = await trace("reactor-api.reactor-client.init", { tags: { "resource.name": "reactor-client" } }, () => clientInitializer(reactor, documentModels));
411
- // Extract client and syncManager from the module
412
- const reactorClient = reactorClientModule.client;
413
- const syncManager = reactorClientModule.reactorModule?.syncModule?.syncManager;
414
- if (!syncManager) {
415
- throw new Error("SyncManager not available from ReactorClientModule");
416
- }
417
- const legacyReactor = options.legacyReactor ?? false;
418
- const reactorProcessorManager = reactorClientModule.reactorModule?.processorManager;
419
- const api = await _setupAPI(reactor, reactorClient, syncManager, app, port, packages, relationalDb, analyticsStore, documentPermissionService, processors, subgraphs, options, auth, legacyReactor, processorApp, reactorProcessorManager);
420
- return {
421
- ...api,
422
- driveServer: reactor,
423
- client: reactorClient,
424
- syncManager,
425
- };
426
- }
427
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
@@ -1,68 +0,0 @@
1
- import type { NextFunction, Request, Response } from "express";
2
- export interface AuthConfig {
3
- enabled: boolean;
4
- guests: string[];
5
- users: string[];
6
- admins: string[];
7
- freeEntry: boolean;
8
- cacheTtl?: number;
9
- skipCredentialVerification?: boolean;
10
- }
11
- export interface User {
12
- address: string;
13
- chainId: number;
14
- networkId: string;
15
- }
16
- export interface AuthenticatedRequest extends Request {
17
- user?: User;
18
- admins: string[];
19
- users: string[];
20
- guests: string[];
21
- freeEntry: boolean;
22
- }
23
- export declare class AuthService {
24
- private readonly config;
25
- constructor(config: AuthConfig);
26
- /**
27
- * Middleware function to authenticate requests
28
- */
29
- authenticate(req: AuthenticatedRequest, res: Response, next: NextFunction): Promise<void>;
30
- authenticateWebSocketConnection(connectionParams: Record<string, unknown>): Promise<User | null>;
31
- /**
32
- * Verify the auth bearer token
33
- */
34
- private verifyToken;
35
- /**
36
- * Extract user information from verification result
37
- */
38
- private extractUserFromVerification;
39
- /**
40
- * Check if user address is in allowed lists
41
- */
42
- private isUserAllowed;
43
- /**
44
- * Get additional context fields for GraphQL
45
- */
46
- getAdditionalContextFields(): {
47
- isGuest: (address: string) => boolean;
48
- isUser: (address: string) => boolean;
49
- isAdmin: (address: string) => boolean;
50
- };
51
- /**
52
- * Get user context for GraphQL
53
- */
54
- getUserContext(user?: User): {
55
- user?: undefined;
56
- } | {
57
- user: {
58
- address: string;
59
- chainId: number;
60
- networkId: string;
61
- };
62
- };
63
- /**
64
- * Verify that the credential still exists on the Renown API
65
- */
66
- private verifyCredentialExists;
67
- }
68
- //# sourceMappingURL=auth.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../../src/services/auth.service.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,IAAI;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAqB,SAAQ,OAAO;IACnD,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;gBAExB,MAAM,EAAE,UAAU;IAI9B;;OAEG;IACG,YAAY,CAChB,GAAG,EAAE,oBAAoB,EACzB,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC;IAiEV,+BAA+B,CACnC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IA4CvB;;OAEG;YACW,WAAW;IAIzB;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAqBnC;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,0BAA0B;2BAUH,MAAM;0BAIP,MAAM;2BAGL,MAAM;;IAM7B;;OAEG;IACH,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI;;;;;;;;;IAY1B;;OAEG;YACW,sBAAsB;CAgCrC"}