@powerhousedao/reactor-api 6.0.2-staging.2 → 6.0.2-staging.3

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 (351) hide show
  1. package/README.md +6 -0
  2. package/dist/index.d.mts +2943 -0
  3. package/dist/index.d.mts.map +1 -0
  4. package/dist/index.mjs +6375 -0
  5. package/dist/index.mjs.map +1 -0
  6. package/dist/src/packages/https-hooks.d.mts +23 -7
  7. package/dist/src/packages/https-hooks.d.mts.map +1 -1
  8. package/dist/src/packages/https-hooks.mjs +73 -53
  9. package/dist/src/packages/https-hooks.mjs.map +1 -1
  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 +142 -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-DEEhP99G.mjs +286 -0
  17. package/dist/utils-DEEhP99G.mjs.map +1 -0
  18. package/package.json +45 -32
  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 -16
  24. package/dist/index.d.ts.map +0 -1
  25. package/dist/index.js +0 -16
  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/dev.d.ts +0 -2
  32. package/dist/src/dev.d.ts.map +0 -1
  33. package/dist/src/dev.js +0 -51
  34. package/dist/src/dev.js.map +0 -1
  35. package/dist/src/graphql/analytics-subgraph.d.ts +0 -14
  36. package/dist/src/graphql/analytics-subgraph.d.ts.map +0 -1
  37. package/dist/src/graphql/analytics-subgraph.js +0 -26
  38. package/dist/src/graphql/analytics-subgraph.js.map +0 -1
  39. package/dist/src/graphql/auth/index.d.ts +0 -2
  40. package/dist/src/graphql/auth/index.d.ts.map +0 -1
  41. package/dist/src/graphql/auth/index.js +0 -2
  42. package/dist/src/graphql/auth/index.js.map +0 -1
  43. package/dist/src/graphql/auth/resolvers.d.ts +0 -166
  44. package/dist/src/graphql/auth/resolvers.d.ts.map +0 -1
  45. package/dist/src/graphql/auth/resolvers.js +0 -227
  46. package/dist/src/graphql/auth/resolvers.js.map +0 -1
  47. package/dist/src/graphql/auth/schema.graphql +0 -195
  48. package/dist/src/graphql/auth/subgraph.d.ts +0 -202
  49. package/dist/src/graphql/auth/subgraph.d.ts.map +0 -1
  50. package/dist/src/graphql/auth/subgraph.js +0 -384
  51. package/dist/src/graphql/auth/subgraph.js.map +0 -1
  52. package/dist/src/graphql/base-subgraph.d.ts +0 -28
  53. package/dist/src/graphql/base-subgraph.d.ts.map +0 -1
  54. package/dist/src/graphql/base-subgraph.js +0 -126
  55. package/dist/src/graphql/base-subgraph.js.map +0 -1
  56. package/dist/src/graphql/document-model-subgraph.d.ts +0 -105
  57. package/dist/src/graphql/document-model-subgraph.d.ts.map +0 -1
  58. package/dist/src/graphql/document-model-subgraph.js +0 -312
  59. package/dist/src/graphql/document-model-subgraph.js.map +0 -1
  60. package/dist/src/graphql/graphql-manager.d.ts +0 -68
  61. package/dist/src/graphql/graphql-manager.d.ts.map +0 -1
  62. package/dist/src/graphql/graphql-manager.js +0 -589
  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/packages/index.d.ts +0 -2
  69. package/dist/src/graphql/packages/index.d.ts.map +0 -1
  70. package/dist/src/graphql/packages/index.js +0 -2
  71. package/dist/src/graphql/packages/index.js.map +0 -1
  72. package/dist/src/graphql/packages/resolvers.d.ts +0 -31
  73. package/dist/src/graphql/packages/resolvers.d.ts.map +0 -1
  74. package/dist/src/graphql/packages/resolvers.js +0 -37
  75. package/dist/src/graphql/packages/resolvers.js.map +0 -1
  76. package/dist/src/graphql/packages/schema.graphql +0 -50
  77. package/dist/src/graphql/packages/subgraph.d.ts +0 -55
  78. package/dist/src/graphql/packages/subgraph.d.ts.map +0 -1
  79. package/dist/src/graphql/packages/subgraph.js +0 -73
  80. package/dist/src/graphql/packages/subgraph.js.map +0 -1
  81. package/dist/src/graphql/playground.d.ts +0 -2
  82. package/dist/src/graphql/playground.d.ts.map +0 -1
  83. package/dist/src/graphql/playground.js +0 -81
  84. package/dist/src/graphql/playground.js.map +0 -1
  85. package/dist/src/graphql/reactor/adapters.d.ts +0 -62
  86. package/dist/src/graphql/reactor/adapters.d.ts.map +0 -1
  87. package/dist/src/graphql/reactor/adapters.js +0 -271
  88. package/dist/src/graphql/reactor/adapters.js.map +0 -1
  89. package/dist/src/graphql/reactor/factory.d.ts +0 -105
  90. package/dist/src/graphql/reactor/factory.d.ts.map +0 -1
  91. package/dist/src/graphql/reactor/factory.js +0 -7
  92. package/dist/src/graphql/reactor/factory.js.map +0 -1
  93. package/dist/src/graphql/reactor/gen/graphql.d.ts +0 -1489
  94. package/dist/src/graphql/reactor/gen/graphql.d.ts.map +0 -1
  95. package/dist/src/graphql/reactor/gen/graphql.js +0 -731
  96. package/dist/src/graphql/reactor/gen/graphql.js.map +0 -1
  97. package/dist/src/graphql/reactor/index.d.ts +0 -4
  98. package/dist/src/graphql/reactor/index.d.ts.map +0 -1
  99. package/dist/src/graphql/reactor/index.js +0 -4
  100. package/dist/src/graphql/reactor/index.js.map +0 -1
  101. package/dist/src/graphql/reactor/operations.graphql +0 -443
  102. package/dist/src/graphql/reactor/pubsub.d.ts +0 -27
  103. package/dist/src/graphql/reactor/pubsub.d.ts.map +0 -1
  104. package/dist/src/graphql/reactor/pubsub.js +0 -93
  105. package/dist/src/graphql/reactor/pubsub.js.map +0 -1
  106. package/dist/src/graphql/reactor/requester.d.ts +0 -4
  107. package/dist/src/graphql/reactor/requester.d.ts.map +0 -1
  108. package/dist/src/graphql/reactor/requester.js +0 -22
  109. package/dist/src/graphql/reactor/requester.js.map +0 -1
  110. package/dist/src/graphql/reactor/requester.with-zod.d.ts +0 -4
  111. package/dist/src/graphql/reactor/requester.with-zod.d.ts.map +0 -1
  112. package/dist/src/graphql/reactor/requester.with-zod.js +0 -129
  113. package/dist/src/graphql/reactor/requester.with-zod.js.map +0 -1
  114. package/dist/src/graphql/reactor/resolvers.d.ts +0 -223
  115. package/dist/src/graphql/reactor/resolvers.d.ts.map +0 -1
  116. package/dist/src/graphql/reactor/resolvers.js +0 -682
  117. package/dist/src/graphql/reactor/resolvers.js.map +0 -1
  118. package/dist/src/graphql/reactor/schema.graphql +0 -475
  119. package/dist/src/graphql/reactor/subgraph.d.ts +0 -18
  120. package/dist/src/graphql/reactor/subgraph.d.ts.map +0 -1
  121. package/dist/src/graphql/reactor/subgraph.js +0 -457
  122. package/dist/src/graphql/reactor/subgraph.js.map +0 -1
  123. package/dist/src/graphql/reactor/validation.d.ts +0 -348
  124. package/dist/src/graphql/reactor/validation.d.ts.map +0 -1
  125. package/dist/src/graphql/reactor/validation.js +0 -167
  126. package/dist/src/graphql/reactor/validation.js.map +0 -1
  127. package/dist/src/graphql/sse.d.ts +0 -42
  128. package/dist/src/graphql/sse.d.ts.map +0 -1
  129. package/dist/src/graphql/sse.js +0 -33
  130. package/dist/src/graphql/sse.js.map +0 -1
  131. package/dist/src/graphql/system/env/getters.d.ts +0 -2
  132. package/dist/src/graphql/system/env/getters.d.ts.map +0 -1
  133. package/dist/src/graphql/system/env/getters.js +0 -4
  134. package/dist/src/graphql/system/env/getters.js.map +0 -1
  135. package/dist/src/graphql/system/env/index.d.ts +0 -2
  136. package/dist/src/graphql/system/env/index.d.ts.map +0 -1
  137. package/dist/src/graphql/system/env/index.js +0 -5
  138. package/dist/src/graphql/system/env/index.js.map +0 -1
  139. package/dist/src/graphql/system/index.d.ts +0 -2
  140. package/dist/src/graphql/system/index.d.ts.map +0 -1
  141. package/dist/src/graphql/system/index.js +0 -2
  142. package/dist/src/graphql/system/index.js.map +0 -1
  143. package/dist/src/graphql/system/types.d.ts +0 -2
  144. package/dist/src/graphql/system/types.d.ts.map +0 -1
  145. package/dist/src/graphql/system/types.js +0 -2
  146. package/dist/src/graphql/system/types.js.map +0 -1
  147. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts +0 -57
  148. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts.map +0 -1
  149. package/dist/src/graphql/temp-hack-rwa-type-defs.js +0 -2
  150. package/dist/src/graphql/temp-hack-rwa-type-defs.js.map +0 -1
  151. package/dist/src/graphql/types.d.ts +0 -102
  152. package/dist/src/graphql/types.d.ts.map +0 -1
  153. package/dist/src/graphql/types.js +0 -2
  154. package/dist/src/graphql/types.js.map +0 -1
  155. package/dist/src/graphql/utils.d.ts +0 -9
  156. package/dist/src/graphql/utils.d.ts.map +0 -1
  157. package/dist/src/graphql/utils.js +0 -72
  158. package/dist/src/graphql/utils.js.map +0 -1
  159. package/dist/src/graphql/websocket.d.ts +0 -3
  160. package/dist/src/graphql/websocket.d.ts.map +0 -1
  161. package/dist/src/graphql/websocket.js +0 -15
  162. package/dist/src/graphql/websocket.js.map +0 -1
  163. package/dist/src/migrations/001_create_document_permissions.d.ts +0 -4
  164. package/dist/src/migrations/001_create_document_permissions.d.ts.map +0 -1
  165. package/dist/src/migrations/001_create_document_permissions.js +0 -91
  166. package/dist/src/migrations/001_create_document_permissions.js.map +0 -1
  167. package/dist/src/migrations/002_add_document_protection.d.ts +0 -4
  168. package/dist/src/migrations/002_add_document_protection.d.ts.map +0 -1
  169. package/dist/src/migrations/002_add_document_protection.js +0 -18
  170. package/dist/src/migrations/002_add_document_protection.js.map +0 -1
  171. package/dist/src/migrations/index.d.ts +0 -10
  172. package/dist/src/migrations/index.d.ts.map +0 -1
  173. package/dist/src/migrations/index.js +0 -58
  174. package/dist/src/migrations/index.js.map +0 -1
  175. package/dist/src/packages/http-loader.d.ts +0 -68
  176. package/dist/src/packages/http-loader.d.ts.map +0 -1
  177. package/dist/src/packages/http-loader.js +0 -176
  178. package/dist/src/packages/http-loader.js.map +0 -1
  179. package/dist/src/packages/import-loader.d.ts +0 -14
  180. package/dist/src/packages/import-loader.d.ts.map +0 -1
  181. package/dist/src/packages/import-loader.js +0 -46
  182. package/dist/src/packages/import-loader.js.map +0 -1
  183. package/dist/src/packages/import-resolver.d.ts +0 -5
  184. package/dist/src/packages/import-resolver.d.ts.map +0 -1
  185. package/dist/src/packages/import-resolver.js +0 -127
  186. package/dist/src/packages/import-resolver.js.map +0 -1
  187. package/dist/src/packages/package-manager.d.ts +0 -34
  188. package/dist/src/packages/package-manager.d.ts.map +0 -1
  189. package/dist/src/packages/package-manager.js +0 -213
  190. package/dist/src/packages/package-manager.js.map +0 -1
  191. package/dist/src/packages/types.d.ts +0 -38
  192. package/dist/src/packages/types.d.ts.map +0 -1
  193. package/dist/src/packages/types.js +0 -2
  194. package/dist/src/packages/types.js.map +0 -1
  195. package/dist/src/packages/util.d.ts +0 -27
  196. package/dist/src/packages/util.d.ts.map +0 -1
  197. package/dist/src/packages/util.js +0 -97
  198. package/dist/src/packages/util.js.map +0 -1
  199. package/dist/src/packages/vite-loader.d.ts +0 -24
  200. package/dist/src/packages/vite-loader.d.ts.map +0 -1
  201. package/dist/src/packages/vite-loader.js +0 -169
  202. package/dist/src/packages/vite-loader.js.map +0 -1
  203. package/dist/src/server.d.ts +0 -56
  204. package/dist/src/server.d.ts.map +0 -1
  205. package/dist/src/server.js +0 -365
  206. package/dist/src/server.js.map +0 -1
  207. package/dist/src/services/auth.service.d.ts +0 -56
  208. package/dist/src/services/auth.service.d.ts.map +0 -1
  209. package/dist/src/services/auth.service.js +0 -172
  210. package/dist/src/services/auth.service.js.map +0 -1
  211. package/dist/src/services/authorization.service.d.ts +0 -70
  212. package/dist/src/services/authorization.service.d.ts.map +0 -1
  213. package/dist/src/services/authorization.service.js +0 -155
  214. package/dist/src/services/authorization.service.js.map +0 -1
  215. package/dist/src/services/document-permission.service.d.ts +0 -241
  216. package/dist/src/services/document-permission.service.d.ts.map +0 -1
  217. package/dist/src/services/document-permission.service.js +0 -791
  218. package/dist/src/services/document-permission.service.js.map +0 -1
  219. package/dist/src/services/package-management.service.d.ts +0 -32
  220. package/dist/src/services/package-management.service.d.ts.map +0 -1
  221. package/dist/src/services/package-management.service.js +0 -95
  222. package/dist/src/services/package-management.service.js.map +0 -1
  223. package/dist/src/services/package-storage.d.ts +0 -23
  224. package/dist/src/services/package-storage.d.ts.map +0 -1
  225. package/dist/src/services/package-storage.js +0 -19
  226. package/dist/src/services/package-storage.js.map +0 -1
  227. package/dist/src/tracing.d.ts +0 -4
  228. package/dist/src/tracing.d.ts.map +0 -1
  229. package/dist/src/tracing.js +0 -140
  230. package/dist/src/tracing.js.map +0 -1
  231. package/dist/src/types.d.ts +0 -17
  232. package/dist/src/types.d.ts.map +0 -1
  233. package/dist/src/types.js +0 -2
  234. package/dist/src/types.js.map +0 -1
  235. package/dist/src/utils/auth.d.ts +0 -3
  236. package/dist/src/utils/auth.d.ts.map +0 -1
  237. package/dist/src/utils/auth.js +0 -12
  238. package/dist/src/utils/auth.js.map +0 -1
  239. package/dist/src/utils/create-schema.d.ts +0 -36
  240. package/dist/src/utils/create-schema.d.ts.map +0 -1
  241. package/dist/src/utils/create-schema.js +0 -725
  242. package/dist/src/utils/create-schema.js.map +0 -1
  243. package/dist/src/utils/db.d.ts +0 -82
  244. package/dist/src/utils/db.d.ts.map +0 -1
  245. package/dist/src/utils/db.js +0 -101
  246. package/dist/src/utils/db.js.map +0 -1
  247. package/dist/src/utils/drive-url.d.ts +0 -2
  248. package/dist/src/utils/drive-url.d.ts.map +0 -1
  249. package/dist/src/utils/drive-url.js +0 -3
  250. package/dist/src/utils/drive-url.js.map +0 -1
  251. package/dist/src/utils/index.d.ts +0 -4
  252. package/dist/src/utils/index.d.ts.map +0 -1
  253. package/dist/src/utils/index.js +0 -4
  254. package/dist/src/utils/index.js.map +0 -1
  255. package/dist/test/authorization.service.test.d.ts +0 -2
  256. package/dist/test/authorization.service.test.d.ts.map +0 -1
  257. package/dist/test/authorization.service.test.js +0 -252
  258. package/dist/test/authorization.service.test.js.map +0 -1
  259. package/dist/test/benchmarks/load.bench.d.ts +0 -2
  260. package/dist/test/benchmarks/load.bench.d.ts.map +0 -1
  261. package/dist/test/benchmarks/load.bench.js +0 -73
  262. package/dist/test/benchmarks/load.bench.js.map +0 -1
  263. package/dist/test/benchmarks/sync.bench.d.ts +0 -2
  264. package/dist/test/benchmarks/sync.bench.d.ts.map +0 -1
  265. package/dist/test/benchmarks/sync.bench.js +0 -119
  266. package/dist/test/benchmarks/sync.bench.js.map +0 -1
  267. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts +0 -2
  268. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts.map +0 -1
  269. package/dist/test/connect-switchboard-reshuffle-convergence.test.js +0 -203
  270. package/dist/test/connect-switchboard-reshuffle-convergence.test.js.map +0 -1
  271. package/dist/test/connect-switchboard-sync.test.d.ts +0 -2
  272. package/dist/test/connect-switchboard-sync.test.d.ts.map +0 -1
  273. package/dist/test/connect-switchboard-sync.test.js +0 -632
  274. package/dist/test/connect-switchboard-sync.test.js.map +0 -1
  275. package/dist/test/document-drive-subgraph.test.d.ts +0 -2
  276. package/dist/test/document-drive-subgraph.test.d.ts.map +0 -1
  277. package/dist/test/document-drive-subgraph.test.js +0 -249
  278. package/dist/test/document-drive-subgraph.test.js.map +0 -1
  279. package/dist/test/document-model-subgraph-permissions.test.d.ts +0 -2
  280. package/dist/test/document-model-subgraph-permissions.test.d.ts.map +0 -1
  281. package/dist/test/document-model-subgraph-permissions.test.js +0 -587
  282. package/dist/test/document-model-subgraph-permissions.test.js.map +0 -1
  283. package/dist/test/document-permission.service.test.d.ts +0 -2
  284. package/dist/test/document-permission.service.test.d.ts.map +0 -1
  285. package/dist/test/document-permission.service.test.js +0 -480
  286. package/dist/test/document-permission.service.test.js.map +0 -1
  287. package/dist/test/drive-info-endpoint.test.d.ts +0 -2
  288. package/dist/test/drive-info-endpoint.test.d.ts.map +0 -1
  289. package/dist/test/drive-info-endpoint.test.js +0 -123
  290. package/dist/test/drive-info-endpoint.test.js.map +0 -1
  291. package/dist/test/fault-injection-sync.test.d.ts +0 -2
  292. package/dist/test/fault-injection-sync.test.d.ts.map +0 -1
  293. package/dist/test/fault-injection-sync.test.js +0 -196
  294. package/dist/test/fault-injection-sync.test.js.map +0 -1
  295. package/dist/test/identity-integration.test.d.ts +0 -2
  296. package/dist/test/identity-integration.test.d.ts.map +0 -1
  297. package/dist/test/identity-integration.test.js +0 -349
  298. package/dist/test/identity-integration.test.js.map +0 -1
  299. package/dist/test/index.d.ts +0 -2
  300. package/dist/test/index.d.ts.map +0 -1
  301. package/dist/test/index.js +0 -2
  302. package/dist/test/index.js.map +0 -1
  303. package/dist/test/permissions-integration.test.d.ts +0 -2
  304. package/dist/test/permissions-integration.test.d.ts.map +0 -1
  305. package/dist/test/permissions-integration.test.js +0 -407
  306. package/dist/test/permissions-integration.test.js.map +0 -1
  307. package/dist/test/push-backfill.test.d.ts +0 -2
  308. package/dist/test/push-backfill.test.d.ts.map +0 -1
  309. package/dist/test/push-backfill.test.js +0 -298
  310. package/dist/test/push-backfill.test.js.map +0 -1
  311. package/dist/test/reactor-adapters.test.d.ts +0 -2
  312. package/dist/test/reactor-adapters.test.d.ts.map +0 -1
  313. package/dist/test/reactor-adapters.test.js +0 -379
  314. package/dist/test/reactor-adapters.test.js.map +0 -1
  315. package/dist/test/reactor-client.test.d.ts +0 -2
  316. package/dist/test/reactor-client.test.d.ts.map +0 -1
  317. package/dist/test/reactor-client.test.js +0 -371
  318. package/dist/test/reactor-client.test.js.map +0 -1
  319. package/dist/test/reactor-resolvers.test.d.ts +0 -2
  320. package/dist/test/reactor-resolvers.test.d.ts.map +0 -1
  321. package/dist/test/reactor-resolvers.test.js +0 -258
  322. package/dist/test/reactor-resolvers.test.js.map +0 -1
  323. package/dist/test/reactor-subgraph-permissions.test.d.ts +0 -2
  324. package/dist/test/reactor-subgraph-permissions.test.d.ts.map +0 -1
  325. package/dist/test/reactor-subgraph-permissions.test.js +0 -371
  326. package/dist/test/reactor-subgraph-permissions.test.js.map +0 -1
  327. package/dist/test/router.test.d.ts +0 -2
  328. package/dist/test/router.test.d.ts.map +0 -1
  329. package/dist/test/router.test.js +0 -38
  330. package/dist/test/router.test.js.map +0 -1
  331. package/dist/test/subscriptions-sse.test.d.ts +0 -2
  332. package/dist/test/subscriptions-sse.test.d.ts.map +0 -1
  333. package/dist/test/subscriptions-sse.test.js +0 -264
  334. package/dist/test/subscriptions-sse.test.js.map +0 -1
  335. package/dist/test/subscriptions.test.d.ts +0 -2
  336. package/dist/test/subscriptions.test.d.ts.map +0 -1
  337. package/dist/test/subscriptions.test.js +0 -248
  338. package/dist/test/subscriptions.test.js.map +0 -1
  339. package/dist/test/utils/gql-resolver-bridge.d.ts +0 -15
  340. package/dist/test/utils/gql-resolver-bridge.d.ts.map +0 -1
  341. package/dist/test/utils/gql-resolver-bridge.js +0 -89
  342. package/dist/test/utils/gql-resolver-bridge.js.map +0 -1
  343. package/dist/test/utils.d.ts +0 -10
  344. package/dist/test/utils.d.ts.map +0 -1
  345. package/dist/test/utils.js +0 -23
  346. package/dist/test/utils.js.map +0 -1
  347. package/dist/tsconfig.tsbuildinfo +0 -1
  348. package/dist/vitest.config.d.ts +0 -3
  349. package/dist/vitest.config.d.ts.map +0 -1
  350. package/dist/vitest.config.js +0 -38
  351. package/dist/vitest.config.js.map +0 -1
@@ -1,176 +0,0 @@
1
- import { childLogger } from "document-drive";
2
- /**
3
- * Loads document models from an HTTP registry.
4
- * Uses Node.js module loader hooks to import directly from HTTP URLs.
5
- *
6
- * IMPORTANT: Requires https-hooks to be registered before use:
7
- * import { register } from "node:module";
8
- * register("@powerhousedao/reactor-api/https-hooks", import.meta.url);
9
- */
10
- export class HttpPackageLoader {
11
- registryUrl;
12
- logger = childLogger(["reactor-api", "http-loader"]);
13
- // Cache: documentType -> packageName
14
- documentTypeCache = new Map();
15
- // Cache: packageName -> DocumentModelModule[]
16
- packageModulesCache = new Map();
17
- // Callback to notify when a model is dynamically loaded
18
- onModelLoaded;
19
- constructor(options) {
20
- this.registryUrl = options.registryUrl.endsWith("/")
21
- ? options.registryUrl
22
- : `${options.registryUrl}/`;
23
- }
24
- /**
25
- * Set a callback to be notified when a model is dynamically loaded.
26
- * This is used to trigger subgraph generation for dynamically loaded models.
27
- */
28
- setOnModelLoaded(callback) {
29
- this.onModelLoaded = callback;
30
- }
31
- /**
32
- * Clear all caches. Useful for testing or when packages are updated.
33
- */
34
- clearCache() {
35
- this.documentTypeCache.clear();
36
- this.packageModulesCache.clear();
37
- }
38
- /**
39
- * Load document models from a package in the HTTP registry.
40
- * Imports directly from HTTP URL using Node.js loader hooks.
41
- */
42
- async loadDocumentModels(packageName) {
43
- if (!this.isValidPackageName(packageName)) {
44
- throw new Error(`Invalid package name: ${packageName}`);
45
- }
46
- const url = `${this.registryUrl}${packageName}/document-models.js`;
47
- try {
48
- this.logger.verbose(`Importing document-models from: ${url}`);
49
- // Direct import from HTTP URL - hooks handle the fetch
50
- const module = (await import(url));
51
- const models = Object.values(module).filter((m) => m !== null &&
52
- typeof m === "object" &&
53
- "documentModel" in m &&
54
- m.documentModel !== null);
55
- this.logger.verbose(`Loaded ${models.length} document models from ${packageName}`);
56
- return models;
57
- }
58
- catch (error) {
59
- const message = error instanceof Error ? error.message : String(error);
60
- throw new Error(`Failed to load document models from ${packageName}: ${message}`);
61
- }
62
- }
63
- /**
64
- * Load document models from multiple packages.
65
- * Continues loading even if some packages fail.
66
- */
67
- async loadPackages(packageNames, logger) {
68
- const allModels = [];
69
- for (const pkgName of packageNames) {
70
- const trimmedName = pkgName.trim();
71
- if (!trimmedName)
72
- continue;
73
- try {
74
- const models = await this.loadDocumentModels(trimmedName);
75
- allModels.push(...models);
76
- const logMsg = `Loaded ${models.length} document models from ${trimmedName}`;
77
- logger?.info(logMsg);
78
- this.logger.info(logMsg);
79
- }
80
- catch (error) {
81
- const errMsg = `Failed to load package ${trimmedName}`;
82
- logger?.error(errMsg, error);
83
- this.logger.error(errMsg, error);
84
- // Continue with other packages - don't fail startup
85
- }
86
- }
87
- return allModels;
88
- }
89
- /**
90
- * Load a specific document model by document type.
91
- * Implements IDocumentModelLoader interface.
92
- */
93
- async load(documentType) {
94
- // Step 1: Find which package contains this document type
95
- const packageName = await this.findPackageByDocumentType(documentType);
96
- // Step 2: Load all document models from that package (uses cache if available)
97
- let models;
98
- const cachedModels = this.packageModulesCache.get(packageName);
99
- if (cachedModels) {
100
- models = cachedModels;
101
- }
102
- else {
103
- models = await this.loadDocumentModels(packageName);
104
- this.packageModulesCache.set(packageName, models);
105
- }
106
- // Step 3: Find the specific model matching the document type
107
- const model = models.find((m) => m.documentModel.global.id === documentType);
108
- if (!model) {
109
- const availableTypes = models.map((m) => m.documentModel.global.id);
110
- throw new Error(`Document model ${documentType} not found in package ${packageName}. ` +
111
- `Available types: ${availableTypes.join(", ")}`);
112
- }
113
- this.logger.info(`Loaded document model "${documentType}" from package "${packageName}"`);
114
- // Notify listener about the dynamically loaded model
115
- if (this.onModelLoaded) {
116
- this.onModelLoaded(model);
117
- }
118
- return model;
119
- }
120
- /**
121
- * Find the package that contains a specific document type.
122
- * Queries the registry's /packages/by-document-type endpoint.
123
- */
124
- async findPackageByDocumentType(documentType) {
125
- // Check cache first
126
- const cached = this.documentTypeCache.get(documentType);
127
- if (cached) {
128
- return cached;
129
- }
130
- const encodedType = encodeURIComponent(documentType);
131
- const url = `${this.registryUrl}packages/by-document-type?type=${encodedType}`;
132
- const response = await fetch(url);
133
- if (!response.ok) {
134
- throw new Error(`Registry query failed for document type ${documentType}: ${response.status} ${response.statusText}`);
135
- }
136
- const packageNames = (await response.json());
137
- if (packageNames.length === 0) {
138
- throw new Error(`No package found containing document type: ${documentType}`);
139
- }
140
- // Return first match (sorted alphabetically for determinism)
141
- const packageName = packageNames.sort((a, b) => a.localeCompare(b))[0];
142
- // Cache the result
143
- this.documentTypeCache.set(documentType, packageName);
144
- return packageName;
145
- }
146
- isValidPackageName(name) {
147
- // npm package name pattern: optional scope + package name
148
- const pattern = /^(@[a-z0-9][-a-z0-9._]*\/)?[a-z0-9][-a-z0-9._]*$/i;
149
- return pattern.test(name) && !name.includes("..") && name.length <= 214;
150
- }
151
- /**
152
- * Get list of all loaded package names.
153
- */
154
- getLoadedPackages() {
155
- return Array.from(this.packageModulesCache.keys());
156
- }
157
- /**
158
- * Get the document model modules for a specific package from cache.
159
- */
160
- getPackageModules(packageName) {
161
- return this.packageModulesCache.get(packageName);
162
- }
163
- /**
164
- * Remove a package from all caches.
165
- */
166
- removeFromCache(packageName) {
167
- this.packageModulesCache.delete(packageName);
168
- // Remove document type entries that point to this package
169
- for (const [docType, pkg] of this.documentTypeCache) {
170
- if (pkg === packageName) {
171
- this.documentTypeCache.delete(docType);
172
- }
173
- }
174
- }
175
- }
176
- //# sourceMappingURL=http-loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-loader.js","sourceRoot":"","sources":["../../../src/packages/http-loader.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import type { SubgraphClass } from "@powerhousedao/reactor-api";
2
- import type { IProcessorHostModuleLegacy, ProcessorFactoryLegacy } from "document-drive";
3
- import type { DocumentModelModule } from "document-model";
4
- import type { IPackageLoader } from "../types.js";
5
- /**
6
- * This class is used to load packages using the import keyword.
7
- */
8
- export declare class ImportPackageLoader implements IPackageLoader {
9
- private readonly logger;
10
- loadDocumentModels(identifier: string): Promise<DocumentModelModule[]>;
11
- loadSubgraphs(identifier: string): Promise<SubgraphClass[]>;
12
- loadProcessors(identifier: string): Promise<((module: IProcessorHostModuleLegacy) => ProcessorFactoryLegacy) | null>;
13
- }
14
- //# sourceMappingURL=import-loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import-loader.d.ts","sourceRoot":"","sources":["../../../src/packages/import-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EACV,0BAA0B,EAC1B,sBAAsB,EACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOlD;;GAEG;AACH,qBAAa,mBAAoB,YAAW,cAAc;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiD;IAElE,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAiBtE,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAoB3D,cAAc,CAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CACR,CAAC,CAAC,MAAM,EAAE,0BAA0B,KAAK,sBAAsB,CAAC,GAAG,IAAI,CACxE;CAeF"}
@@ -1,46 +0,0 @@
1
- import { childLogger } from "document-drive";
2
- import { loadDocumentModels as loadDocumentModelsUtil, loadProcessors as loadProcessorsUtil, loadSubgraphs as loadSubgraphsUtil, } from "./util.js";
3
- /**
4
- * This class is used to load packages using the import keyword.
5
- */
6
- export class ImportPackageLoader {
7
- logger = childLogger(["reactor-api", "import-loader"]);
8
- async loadDocumentModels(identifier) {
9
- this.logger.verbose("Loading document models from package:", identifier);
10
- const pkgModule = await loadDocumentModelsUtil(identifier);
11
- if (pkgModule) {
12
- const models = Object.values(pkgModule);
13
- this.logger.verbose(` ➜ Loaded ${models.length} Document Models from: ${identifier}`);
14
- return models;
15
- }
16
- else {
17
- this.logger.verbose(` ➜ No Document Models found: ${identifier}`);
18
- return [];
19
- }
20
- }
21
- async loadSubgraphs(identifier) {
22
- this.logger.verbose("Loading subgraphs from package:", identifier);
23
- const pkgModule = await loadSubgraphsUtil(identifier);
24
- if (!pkgModule) {
25
- this.logger.verbose(` ➜ No Subgraphs found: ${identifier}`);
26
- return [];
27
- }
28
- const subgraphs = Object.values(pkgModule).map((subgraph) => {
29
- return Object.values(subgraph);
30
- });
31
- this.logger.verbose(` ➜ Loaded Subgraphs from: ${identifier}`);
32
- return subgraphs.flat();
33
- }
34
- async loadProcessors(identifier) {
35
- this.logger.verbose("Loading processors from package:", identifier);
36
- const pkgModule = await loadProcessorsUtil(identifier);
37
- const factory = pkgModule?.processorFactory;
38
- if (factory && typeof factory === "function") {
39
- this.logger.verbose(` ➜ Loaded Processor Factory from: ${identifier}`);
40
- return factory;
41
- }
42
- this.logger.verbose(` ➜ No Processor Factory found: ${identifier}`);
43
- return null;
44
- }
45
- }
46
- //# sourceMappingURL=import-loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import-loader.js","sourceRoot":"","sources":["../../../src/packages/import-loader.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EACL,kBAAkB,IAAI,sBAAsB,EAC5C,cAAc,IAAI,kBAAkB,EACpC,aAAa,IAAI,iBAAiB,GACnC,MAAM,WAAW,CAAC;AAEnB;;GAEG;AACH,MAAM,OAAO,mBAAmB;IACb,MAAM,GAAG,WAAW,CAAC,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;IAExE,KAAK,CAAC,kBAAkB,CAAC,UAAkB;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uCAAuC,EAAE,UAAU,CAAC,CAAC;QAEzE,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAE3D,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,OAAO,CACjB,eAAe,MAAM,CAAC,MAAM,0BAA0B,UAAU,EAAE,CACnE,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;YACpE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,UAAkB;QACpC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,iCAAiC,EAAE,UAAU,CAAC,CAAC;QAEnE,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAEtD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;YAE9D,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;QAEjE,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,UAAkB;QAIlB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,kCAAkC,EAAE,UAAU,CAAC,CAAC;QAEpE,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAEvD,MAAM,OAAO,GAAG,SAAS,EAAE,gBAAgB,CAAC;QAE5C,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uCAAuC,UAAU,EAAE,CAAC,CAAC;YACzE,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,oCAAoC,UAAU,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Attempts to resolve linked packages using various fallback strategies
3
- */
4
- export declare function resolveLinkedPackage<T>(packageName: string, subPath: string): Promise<T | null>;
5
- //# sourceMappingURL=import-resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import-resolver.d.ts","sourceRoot":"","sources":["../../../src/packages/import-resolver.ts"],"names":[],"mappings":"AAmJA;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAoBnB"}
@@ -1,127 +0,0 @@
1
- import path from "node:path";
2
- /**
3
- * Attempts to import from suggested Node.js paths
4
- */
5
- async function tryNodeSuggestedPaths(packageName, subPath) {
6
- const suggestedPaths = [
7
- `${packageName}/dist/${subPath}/index.js`,
8
- `${packageName}/dist/${subPath}.js`,
9
- ];
10
- for (const suggestedPath of suggestedPaths) {
11
- try {
12
- return (await import(/* @vite-ignore */ suggestedPath));
13
- }
14
- catch {
15
- // Continue to next attempt
16
- }
17
- }
18
- return null;
19
- }
20
- /**
21
- * Attempts to resolve package using import.meta.resolve
22
- */
23
- async function tryImportMetaResolve(packageName, subPath) {
24
- try {
25
- const resolvedUrl = import.meta.resolve?.(`${packageName}/package.json`);
26
- if (!resolvedUrl)
27
- return null;
28
- const packageRoot = path.dirname(new URL(resolvedUrl).pathname);
29
- const pathsToTry = [
30
- path.join(packageRoot, "dist", subPath, "index.js"),
31
- path.join(packageRoot, "dist", `${subPath}.js`),
32
- path.join(packageRoot, subPath, "index.js"),
33
- path.join(packageRoot, `${subPath}.js`),
34
- ];
35
- for (const attemptPath of pathsToTry) {
36
- try {
37
- return (await import(/* @vite-ignore */ attemptPath));
38
- }
39
- catch {
40
- // Continue to next attempt
41
- }
42
- }
43
- }
44
- catch {
45
- // import.meta.resolve failed
46
- }
47
- return null;
48
- }
49
- /**
50
- * Resolves symlinks in node_modules to find the real package location
51
- */
52
- async function resolveSymlinkedPaths(packageName, subPath) {
53
- const packageBaseName = packageName.includes("/")
54
- ? packageName.split("/").pop()
55
- : packageName;
56
- const nodeModulesPatterns = [
57
- path.join(process.cwd(), "node_modules", packageName),
58
- path.join(process.cwd(), "node_modules", packageBaseName || packageName),
59
- ];
60
- const workspacePatterns = [];
61
- for (const nodeModulesPath of nodeModulesPatterns) {
62
- try {
63
- const fs = await import("node:fs");
64
- if (fs.existsSync(nodeModulesPath)) {
65
- const realPath = fs.realpathSync(nodeModulesPath);
66
- workspacePatterns.push(path.join(realPath, "dist", subPath, "index.js"), path.join(realPath, "dist", `${subPath}.js`), path.join(realPath, subPath, "index.js"), path.join(realPath, `${subPath}.js`));
67
- }
68
- }
69
- catch {
70
- // Continue to next attempt
71
- }
72
- }
73
- return workspacePatterns;
74
- }
75
- /**
76
- * Generates common workspace pattern paths
77
- */
78
- function getCommonWorkspacePaths(packageName, subPath) {
79
- const packageBaseName = packageName.includes("/")
80
- ? packageName.split("/").pop()
81
- : packageName;
82
- const commonRoots = [process.cwd(), path.dirname(process.cwd())];
83
- const workspacePatterns = [];
84
- for (const root of commonRoots) {
85
- workspacePatterns.push(path.join(root, "packages", packageBaseName || packageName, "dist", subPath, "index.js"), path.join(root, "packages", packageBaseName || packageName, "dist", `${subPath}.js`));
86
- }
87
- return workspacePatterns;
88
- }
89
- /**
90
- * Attempts to import from a list of workspace patterns
91
- */
92
- async function tryWorkspacePatterns(patterns) {
93
- for (const workspacePath of patterns) {
94
- try {
95
- return (await import(/* @vite-ignore */ workspacePath));
96
- }
97
- catch {
98
- // Continue to next attempt
99
- }
100
- }
101
- return null;
102
- }
103
- /**
104
- * Attempts to resolve linked packages using various fallback strategies
105
- */
106
- export async function resolveLinkedPackage(packageName, subPath) {
107
- // Try Node.js suggested paths first
108
- let result = await tryNodeSuggestedPaths(packageName, subPath);
109
- if (result)
110
- return result;
111
- // Try import.meta.resolve
112
- result = await tryImportMetaResolve(packageName, subPath);
113
- if (result)
114
- return result;
115
- // Try symlink resolution
116
- const symlinkPaths = await resolveSymlinkedPaths(packageName, subPath);
117
- result = await tryWorkspacePatterns(symlinkPaths);
118
- if (result)
119
- return result;
120
- // Try common workspace patterns as final fallback
121
- const commonPaths = getCommonWorkspacePaths(packageName, subPath);
122
- result = await tryWorkspacePatterns(commonPaths);
123
- if (result)
124
- return result;
125
- return null;
126
- }
127
- //# sourceMappingURL=import-resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import-resolver.js","sourceRoot":"","sources":["../../../src/packages/import-resolver.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- import type { SubgraphClass } from "@powerhousedao/reactor-api";
2
- import type { IProcessorHostModuleLegacy, ProcessorFactoryLegacy } from "document-drive";
3
- import type { DocumentModelModule } from "document-model";
4
- import type { IPackageLoader, IPackageManager, IPackageManagerOptions, PackageManagerResult } from "./types.js";
5
- export declare function getUniqueDocumentModels(...documentModels: DocumentModelModule<any>[][]): DocumentModelModule[];
6
- export declare class PackageManager implements IPackageManager {
7
- protected options: IPackageManagerOptions;
8
- private readonly logger;
9
- private loaders;
10
- private docModelsMap;
11
- private subgraphsMap;
12
- private processorMap;
13
- private configWatcher;
14
- private debouncedUpdateCallbacks;
15
- private eventEmitter;
16
- constructor(loaders: IPackageLoader[], options: IPackageManagerOptions);
17
- init(): Promise<PackageManagerResult>;
18
- private loadPackages;
19
- private loadDocumentModels;
20
- private loadSubgraphs;
21
- private loadProcessors;
22
- private updateDocumentModelsForPackage;
23
- private subscribePackages;
24
- private getAllPackageNames;
25
- private getPackageNamesFromConfigFile;
26
- private initConfigFileWatcher;
27
- private updatePackagesMap;
28
- private updateSubgraphsMap;
29
- private updateProcessorsMap;
30
- onDocumentModelsChange(handler: (documentModels: Record<string, DocumentModelModule[]>) => void): void;
31
- onSubgraphsChange(handler: (subgraphs: Map<string, SubgraphClass[]>) => void): void;
32
- onProcessorsChange(handler: (processors: Map<string, ((module: IProcessorHostModuleLegacy) => ProcessorFactoryLegacy)[]>) => void): void;
33
- }
34
- //# sourceMappingURL=package-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../../src/packages/package-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EACV,0BAA0B,EAC1B,sBAAsB,EACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAK1D,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,sBAAsB,EAEtB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,uBAAuB,CACrC,GAAG,cAAc,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,EAAE,GAC9C,mBAAmB,EAAE,CAUvB;AAED,qBAAa,cAAe,YAAW,eAAe;IAyBlD,SAAS,CAAC,OAAO,EAAE,sBAAsB;IAxB3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmD;IAC1E,OAAO,CAAC,OAAO,CAA+B;IAE9C,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,YAAY,CAGhB;IACJ,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,wBAAwB,CAAiC;IACjE,OAAO,CAAC,YAAY,CASf;gBAGH,OAAO,EAAE,cAAc,EAAE,EACf,OAAO,EAAE,sBAAsB;IAM9B,IAAI,IAAI,OAAO,CAAC,oBAAoB,CAAC;YAQpC,YAAY;YA4BZ,kBAAkB;YA4ClB,aAAa;YA+Bb,cAAc;YA4Cd,8BAA8B;IAQ5C,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,6BAA6B;IAKrC,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,mBAAmB;IAkB3B,sBAAsB,CACpB,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,KAAK,IAAI,GACvE,IAAI;IAIP,iBAAiB,CACf,OAAO,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,KAAK,IAAI,GACzD,IAAI;IAIP,kBAAkB,CAChB,OAAO,EAAE,CACP,UAAU,EAAE,GAAG,CACb,MAAM,EACN,CAAC,CAAC,MAAM,EAAE,0BAA0B,KAAK,sBAAsB,CAAC,EAAE,CACnE,KACE,IAAI,GACR,IAAI;CAGR"}
@@ -1,213 +0,0 @@
1
- import { getConfig } from "@powerhousedao/config/node";
2
- import { childLogger, driveDocumentModelModule } from "document-drive";
3
- import { documentModelDocumentModelModule } from "document-model";
4
- import EventEmitter from "node:events";
5
- import { watchFile } from "node:fs";
6
- import { debounce } from "./util.js";
7
- export function getUniqueDocumentModels(...documentModels) {
8
- const uniqueModels = new Map();
9
- for (const models of documentModels) {
10
- for (const model of models) {
11
- uniqueModels.set(model.documentModel.global.id, model);
12
- }
13
- }
14
- return Array.from(uniqueModels.values());
15
- }
16
- export class PackageManager {
17
- options;
18
- logger = childLogger(["reactor-api", "package-manager"]);
19
- loaders;
20
- docModelsMap = new Map();
21
- subgraphsMap = new Map();
22
- processorMap = new Map();
23
- configWatcher;
24
- debouncedUpdateCallbacks = new Map();
25
- eventEmitter = new EventEmitter();
26
- constructor(loaders, options) {
27
- this.options = options;
28
- this.loaders = loaders;
29
- this.eventEmitter.setMaxListeners(0);
30
- }
31
- async init() {
32
- if (this.options.configFile) {
33
- this.initConfigFileWatcher(this.options.configFile);
34
- }
35
- return await this.loadPackages(this.getAllPackageNames());
36
- }
37
- async loadPackages(packages) {
38
- this.logger.info(`Loading packages: ${packages.join(", ")}`);
39
- const documentModelsMap = await this.loadDocumentModels(packages);
40
- const subgraphsMap = await this.loadSubgraphs(packages);
41
- const processorsMap = await this.loadProcessors(packages);
42
- this.updatePackagesMap(documentModelsMap);
43
- this.updateSubgraphsMap(subgraphsMap);
44
- this.updateProcessorsMap(processorsMap);
45
- try {
46
- this.subscribePackages(packages);
47
- }
48
- catch (error) {
49
- this.logger.error("Failed to subscribe to packages", error);
50
- }
51
- return {
52
- documentModels: getUniqueDocumentModels(...Array.from(documentModelsMap.values())),
53
- subgraphs: subgraphsMap,
54
- processors: processorsMap,
55
- };
56
- }
57
- async loadDocumentModels(packages) {
58
- this.logger.debug(`Loading document models from packages: ${packages.join(", ")}`);
59
- const documentModelModuleMap = new Map();
60
- // static prereqs
61
- documentModelModuleMap.set("document-drive", [
62
- driveDocumentModelModule,
63
- ]);
64
- documentModelModuleMap.set("document-model", [
65
- documentModelDocumentModelModule,
66
- ]);
67
- for (const pkg of packages) {
68
- const allDocumentModels = [];
69
- for (const loader of this.loaders) {
70
- try {
71
- const documentModels = await loader.loadDocumentModels(pkg);
72
- allDocumentModels.push(...documentModels);
73
- this.logger.debug(`Loaded document models from package ${pkg}`, documentModels.map((dm) => dm.documentModel.global.id));
74
- }
75
- catch (error) {
76
- this.logger.debug(`Failed to load document models from package ${pkg}`, error);
77
- }
78
- }
79
- documentModelModuleMap.set(pkg, allDocumentModels);
80
- }
81
- return documentModelModuleMap;
82
- }
83
- async loadSubgraphs(packages) {
84
- this.logger.debug(`Loading subgraphs from packages: ${packages.join(", ")}`);
85
- const subgraphsMap = new Map();
86
- for (const pkg of packages) {
87
- const allSubgraphs = [];
88
- for (const loader of this.loaders) {
89
- try {
90
- const subgraphs = await loader.loadSubgraphs(pkg);
91
- allSubgraphs.push(...subgraphs);
92
- }
93
- catch (error) {
94
- this.logger.debug(`Failed to load subgraphs from package ${pkg}`, error);
95
- }
96
- }
97
- subgraphsMap.set(pkg, allSubgraphs);
98
- }
99
- return subgraphsMap;
100
- }
101
- async loadProcessors(packages) {
102
- this.logger.debug(`Loading processors from packages: ${packages.join(", ")}`);
103
- const processorsMap = new Map();
104
- for (const pkg of packages) {
105
- const allProcessors = [];
106
- for (const loader of this.loaders) {
107
- try {
108
- const processors = await loader.loadProcessors(pkg);
109
- if (processors) {
110
- allProcessors.push(processors);
111
- }
112
- }
113
- catch (error) {
114
- this.logger.debug(`Failed to load processors from package ${pkg}`, error);
115
- }
116
- }
117
- processorsMap.set(pkg, allProcessors);
118
- }
119
- this.updateProcessorsMap(processorsMap);
120
- return processorsMap;
121
- }
122
- async updateDocumentModelsForPackage(pkg) {
123
- this.logger.debug(`Updating document models for package: ${pkg}`);
124
- const documentModels = await this.loadDocumentModels([pkg]);
125
- const documentModelsMap = new Map(this.docModelsMap);
126
- documentModelsMap.set(pkg, documentModels.get(pkg) ?? []);
127
- this.updatePackagesMap(documentModelsMap);
128
- }
129
- subscribePackages(packages) {
130
- const unsubs = [];
131
- for (const pkg of packages) {
132
- if (!this.debouncedUpdateCallbacks.has(pkg)) {
133
- this.debouncedUpdateCallbacks.set(pkg, debounce(() => this.updateDocumentModelsForPackage(pkg), 1000));
134
- }
135
- const debouncedCallback = this.debouncedUpdateCallbacks.get(pkg);
136
- for (const loader of this.loaders) {
137
- if (loader.onDocumentModelsChange) {
138
- const unsub = loader.onDocumentModelsChange(pkg, debouncedCallback);
139
- unsubs.push(unsub);
140
- }
141
- }
142
- }
143
- return () => {
144
- for (const unsub of unsubs) {
145
- unsub();
146
- }
147
- };
148
- }
149
- getAllPackageNames() {
150
- const packageNames = this.options.packages ?? [];
151
- if (this.options.configFile) {
152
- packageNames.push(...this.getPackageNamesFromConfigFile(this.options.configFile));
153
- }
154
- return packageNames;
155
- }
156
- getPackageNamesFromConfigFile(configFile) {
157
- const loadedConfig = getConfig(configFile);
158
- return loadedConfig.packages?.map((pkg) => pkg.packageName) ?? [];
159
- }
160
- initConfigFileWatcher(configFile) {
161
- if (!this.configWatcher) {
162
- this.configWatcher = watchFile(configFile, { interval: 100 }, (curr, prev) => {
163
- if (curr.mtime === prev.mtime) {
164
- return;
165
- }
166
- void this.loadPackages(this.getAllPackageNames());
167
- });
168
- }
169
- }
170
- updatePackagesMap(packagesMap) {
171
- const oldPackages = Array.from(this.docModelsMap.keys());
172
- const newPackages = Array.from(packagesMap.keys());
173
- oldPackages
174
- .filter((pkg) => !newPackages.includes(pkg))
175
- .forEach((pkg) => {
176
- this.logger.info(`Removed package: ${pkg}`);
177
- });
178
- this.docModelsMap = packagesMap;
179
- this.eventEmitter.emit("documentModelsChange", Object.fromEntries(packagesMap));
180
- }
181
- updateSubgraphsMap(subgraphsMap) {
182
- const oldPackages = Array.from(this.subgraphsMap.keys());
183
- const newPackages = Array.from(subgraphsMap.keys());
184
- oldPackages
185
- .filter((pkg) => !newPackages.includes(pkg))
186
- .forEach((pkg) => {
187
- this.logger.info(`Removed Subgraphs from: ${pkg}`);
188
- });
189
- this.subgraphsMap = subgraphsMap;
190
- this.eventEmitter.emit("subgraphsChange", subgraphsMap);
191
- }
192
- updateProcessorsMap(processorsMap) {
193
- const oldPackages = Array.from(this.processorMap.keys());
194
- const newPackages = Array.from(processorsMap.keys());
195
- oldPackages
196
- .filter((pkg) => !newPackages.includes(pkg))
197
- .forEach((pkg) => {
198
- this.logger.info(`Removed Processor Factories from: ${pkg}`);
199
- });
200
- this.processorMap = processorsMap;
201
- this.eventEmitter.emit("processorsChange", processorsMap);
202
- }
203
- onDocumentModelsChange(handler) {
204
- this.eventEmitter.on("documentModelsChange", handler);
205
- }
206
- onSubgraphsChange(handler) {
207
- this.eventEmitter.on("subgraphsChange", handler);
208
- }
209
- onProcessorsChange(handler) {
210
- this.eventEmitter.on("processorsChange", handler);
211
- }
212
- }
213
- //# sourceMappingURL=package-manager.js.map