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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. package/README.md +6 -0
  2. package/dist/index.d.mts +3085 -0
  3. package/dist/index.d.mts.map +1 -0
  4. package/dist/index.mjs +6720 -0
  5. package/dist/index.mjs.map +1 -0
  6. package/dist/src/packages/https-hooks.d.mts +39 -0
  7. package/dist/src/packages/https-hooks.d.mts.map +1 -0
  8. package/dist/src/packages/https-hooks.mjs +82 -0
  9. package/dist/src/packages/https-hooks.mjs.map +1 -0
  10. package/dist/src/packages/vite-loader.d.mts +29 -0
  11. package/dist/src/packages/vite-loader.d.mts.map +1 -0
  12. package/dist/src/packages/vite-loader.mjs +145 -0
  13. package/dist/src/packages/vite-loader.mjs.map +1 -0
  14. package/dist/types-Do4QTfT3.d.mts +37 -0
  15. package/dist/types-Do4QTfT3.d.mts.map +1 -0
  16. package/dist/utils-BFkbSO_H.mjs +296 -0
  17. package/dist/utils-BFkbSO_H.mjs.map +1 -0
  18. package/package.json +60 -42
  19. package/dist/codegen.d.ts +0 -4
  20. package/dist/codegen.d.ts.map +0 -1
  21. package/dist/codegen.js +0 -38
  22. package/dist/codegen.js.map +0 -1
  23. package/dist/index.d.ts +0 -14
  24. package/dist/index.d.ts.map +0 -1
  25. package/dist/index.js +0 -14
  26. package/dist/index.js.map +0 -1
  27. package/dist/src/config.d.ts +0 -6
  28. package/dist/src/config.d.ts.map +0 -1
  29. package/dist/src/config.js +0 -6
  30. package/dist/src/config.js.map +0 -1
  31. package/dist/src/graphql/analytics-subgraph.d.ts +0 -14
  32. package/dist/src/graphql/analytics-subgraph.d.ts.map +0 -1
  33. package/dist/src/graphql/analytics-subgraph.js +0 -26
  34. package/dist/src/graphql/analytics-subgraph.js.map +0 -1
  35. package/dist/src/graphql/auth/index.d.ts +0 -2
  36. package/dist/src/graphql/auth/index.d.ts.map +0 -1
  37. package/dist/src/graphql/auth/index.js +0 -2
  38. package/dist/src/graphql/auth/index.js.map +0 -1
  39. package/dist/src/graphql/auth/resolvers.d.ts +0 -149
  40. package/dist/src/graphql/auth/resolvers.d.ts.map +0 -1
  41. package/dist/src/graphql/auth/resolvers.js +0 -173
  42. package/dist/src/graphql/auth/resolvers.js.map +0 -1
  43. package/dist/src/graphql/auth/schema.graphql +0 -173
  44. package/dist/src/graphql/auth/subgraph.d.ts +0 -177
  45. package/dist/src/graphql/auth/subgraph.d.ts.map +0 -1
  46. package/dist/src/graphql/auth/subgraph.js +0 -340
  47. package/dist/src/graphql/auth/subgraph.js.map +0 -1
  48. package/dist/src/graphql/base-subgraph.d.ts +0 -20
  49. package/dist/src/graphql/base-subgraph.d.ts.map +0 -1
  50. package/dist/src/graphql/base-subgraph.js +0 -34
  51. package/dist/src/graphql/base-subgraph.js.map +0 -1
  52. package/dist/src/graphql/document-model-subgraph.d.ts +0 -103
  53. package/dist/src/graphql/document-model-subgraph.d.ts.map +0 -1
  54. package/dist/src/graphql/document-model-subgraph.js +0 -595
  55. package/dist/src/graphql/document-model-subgraph.js.map +0 -1
  56. package/dist/src/graphql/drive-subgraph.d.ts +0 -25
  57. package/dist/src/graphql/drive-subgraph.d.ts.map +0 -1
  58. package/dist/src/graphql/drive-subgraph.js +0 -488
  59. package/dist/src/graphql/drive-subgraph.js.map +0 -1
  60. package/dist/src/graphql/graphql-manager.d.ts +0 -52
  61. package/dist/src/graphql/graphql-manager.d.ts.map +0 -1
  62. package/dist/src/graphql/graphql-manager.js +0 -491
  63. package/dist/src/graphql/graphql-manager.js.map +0 -1
  64. package/dist/src/graphql/index.d.ts +0 -10
  65. package/dist/src/graphql/index.d.ts.map +0 -1
  66. package/dist/src/graphql/index.js +0 -10
  67. package/dist/src/graphql/index.js.map +0 -1
  68. package/dist/src/graphql/playground.d.ts +0 -2
  69. package/dist/src/graphql/playground.d.ts.map +0 -1
  70. package/dist/src/graphql/playground.js +0 -74
  71. package/dist/src/graphql/playground.js.map +0 -1
  72. package/dist/src/graphql/reactor/adapters.d.ts +0 -62
  73. package/dist/src/graphql/reactor/adapters.d.ts.map +0 -1
  74. package/dist/src/graphql/reactor/adapters.js +0 -270
  75. package/dist/src/graphql/reactor/adapters.js.map +0 -1
  76. package/dist/src/graphql/reactor/factory.d.ts +0 -95
  77. package/dist/src/graphql/reactor/factory.d.ts.map +0 -1
  78. package/dist/src/graphql/reactor/factory.js +0 -7
  79. package/dist/src/graphql/reactor/factory.js.map +0 -1
  80. package/dist/src/graphql/reactor/gen/graphql.d.ts +0 -1355
  81. package/dist/src/graphql/reactor/gen/graphql.d.ts.map +0 -1
  82. package/dist/src/graphql/reactor/gen/graphql.js +0 -615
  83. package/dist/src/graphql/reactor/gen/graphql.js.map +0 -1
  84. package/dist/src/graphql/reactor/index.d.ts +0 -4
  85. package/dist/src/graphql/reactor/index.d.ts.map +0 -1
  86. package/dist/src/graphql/reactor/index.js +0 -4
  87. package/dist/src/graphql/reactor/index.js.map +0 -1
  88. package/dist/src/graphql/reactor/operations.graphql +0 -336
  89. package/dist/src/graphql/reactor/pubsub.d.ts +0 -27
  90. package/dist/src/graphql/reactor/pubsub.d.ts.map +0 -1
  91. package/dist/src/graphql/reactor/pubsub.js +0 -93
  92. package/dist/src/graphql/reactor/pubsub.js.map +0 -1
  93. package/dist/src/graphql/reactor/requester.d.ts +0 -4
  94. package/dist/src/graphql/reactor/requester.d.ts.map +0 -1
  95. package/dist/src/graphql/reactor/requester.js +0 -22
  96. package/dist/src/graphql/reactor/requester.js.map +0 -1
  97. package/dist/src/graphql/reactor/requester.with-zod.d.ts +0 -4
  98. package/dist/src/graphql/reactor/requester.with-zod.d.ts.map +0 -1
  99. package/dist/src/graphql/reactor/requester.with-zod.js +0 -119
  100. package/dist/src/graphql/reactor/requester.with-zod.js.map +0 -1
  101. package/dist/src/graphql/reactor/resolvers.d.ts +0 -211
  102. package/dist/src/graphql/reactor/resolvers.d.ts.map +0 -1
  103. package/dist/src/graphql/reactor/resolvers.js +0 -595
  104. package/dist/src/graphql/reactor/resolvers.js.map +0 -1
  105. package/dist/src/graphql/reactor/schema.graphql +0 -469
  106. package/dist/src/graphql/reactor/subgraph.d.ts +0 -47
  107. package/dist/src/graphql/reactor/subgraph.d.ts.map +0 -1
  108. package/dist/src/graphql/reactor/subgraph.js +0 -522
  109. package/dist/src/graphql/reactor/subgraph.js.map +0 -1
  110. package/dist/src/graphql/reactor/validation.d.ts +0 -120
  111. package/dist/src/graphql/reactor/validation.d.ts.map +0 -1
  112. package/dist/src/graphql/reactor/validation.js +0 -87
  113. package/dist/src/graphql/reactor/validation.js.map +0 -1
  114. package/dist/src/graphql/system/env/getters.d.ts +0 -2
  115. package/dist/src/graphql/system/env/getters.d.ts.map +0 -1
  116. package/dist/src/graphql/system/env/getters.js +0 -4
  117. package/dist/src/graphql/system/env/getters.js.map +0 -1
  118. package/dist/src/graphql/system/env/index.d.ts +0 -2
  119. package/dist/src/graphql/system/env/index.d.ts.map +0 -1
  120. package/dist/src/graphql/system/env/index.js +0 -5
  121. package/dist/src/graphql/system/env/index.js.map +0 -1
  122. package/dist/src/graphql/system/index.d.ts +0 -2
  123. package/dist/src/graphql/system/index.d.ts.map +0 -1
  124. package/dist/src/graphql/system/index.js +0 -2
  125. package/dist/src/graphql/system/index.js.map +0 -1
  126. package/dist/src/graphql/system/types.d.ts +0 -2
  127. package/dist/src/graphql/system/types.d.ts.map +0 -1
  128. package/dist/src/graphql/system/types.js +0 -2
  129. package/dist/src/graphql/system/types.js.map +0 -1
  130. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts +0 -57
  131. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts.map +0 -1
  132. package/dist/src/graphql/temp-hack-rwa-type-defs.js +0 -2
  133. package/dist/src/graphql/temp-hack-rwa-type-defs.js.map +0 -1
  134. package/dist/src/graphql/types.d.ts +0 -103
  135. package/dist/src/graphql/types.d.ts.map +0 -1
  136. package/dist/src/graphql/types.js +0 -2
  137. package/dist/src/graphql/types.js.map +0 -1
  138. package/dist/src/graphql/utils.d.ts +0 -26
  139. package/dist/src/graphql/utils.d.ts.map +0 -1
  140. package/dist/src/graphql/utils.js +0 -104
  141. package/dist/src/graphql/utils.js.map +0 -1
  142. package/dist/src/graphql/websocket.d.ts +0 -3
  143. package/dist/src/graphql/websocket.d.ts.map +0 -1
  144. package/dist/src/graphql/websocket.js +0 -15
  145. package/dist/src/graphql/websocket.js.map +0 -1
  146. package/dist/src/migrations/001_create_document_permissions.d.ts +0 -4
  147. package/dist/src/migrations/001_create_document_permissions.d.ts.map +0 -1
  148. package/dist/src/migrations/001_create_document_permissions.js +0 -91
  149. package/dist/src/migrations/001_create_document_permissions.js.map +0 -1
  150. package/dist/src/migrations/index.d.ts +0 -10
  151. package/dist/src/migrations/index.d.ts.map +0 -1
  152. package/dist/src/migrations/index.js +0 -56
  153. package/dist/src/migrations/index.js.map +0 -1
  154. package/dist/src/packages/import-loader.d.ts +0 -16
  155. package/dist/src/packages/import-loader.d.ts.map +0 -1
  156. package/dist/src/packages/import-loader.js +0 -61
  157. package/dist/src/packages/import-loader.js.map +0 -1
  158. package/dist/src/packages/import-resolver.d.ts +0 -5
  159. package/dist/src/packages/import-resolver.d.ts.map +0 -1
  160. package/dist/src/packages/import-resolver.js +0 -127
  161. package/dist/src/packages/import-resolver.js.map +0 -1
  162. package/dist/src/packages/package-manager.d.ts +0 -34
  163. package/dist/src/packages/package-manager.d.ts.map +0 -1
  164. package/dist/src/packages/package-manager.js +0 -213
  165. package/dist/src/packages/package-manager.js.map +0 -1
  166. package/dist/src/packages/types.d.ts +0 -40
  167. package/dist/src/packages/types.d.ts.map +0 -1
  168. package/dist/src/packages/types.js +0 -2
  169. package/dist/src/packages/types.js.map +0 -1
  170. package/dist/src/packages/util.d.ts +0 -27
  171. package/dist/src/packages/util.d.ts.map +0 -1
  172. package/dist/src/packages/util.js +0 -97
  173. package/dist/src/packages/util.js.map +0 -1
  174. package/dist/src/packages/vite-loader.d.ts +0 -25
  175. package/dist/src/packages/vite-loader.d.ts.map +0 -1
  176. package/dist/src/packages/vite-loader.js +0 -182
  177. package/dist/src/packages/vite-loader.js.map +0 -1
  178. package/dist/src/server.d.ts +0 -80
  179. package/dist/src/server.d.ts.map +0 -1
  180. package/dist/src/server.js +0 -427
  181. package/dist/src/server.js.map +0 -1
  182. package/dist/src/services/auth.service.d.ts +0 -68
  183. package/dist/src/services/auth.service.d.ts.map +0 -1
  184. package/dist/src/services/auth.service.js +0 -190
  185. package/dist/src/services/auth.service.js.map +0 -1
  186. package/dist/src/services/document-permission.service.d.ts +0 -201
  187. package/dist/src/services/document-permission.service.d.ts.map +0 -1
  188. package/dist/src/services/document-permission.service.js +0 -636
  189. package/dist/src/services/document-permission.service.js.map +0 -1
  190. package/dist/src/sync/types.d.ts +0 -10
  191. package/dist/src/sync/types.d.ts.map +0 -1
  192. package/dist/src/sync/types.js +0 -2
  193. package/dist/src/sync/types.js.map +0 -1
  194. package/dist/src/sync/utils.d.ts +0 -7
  195. package/dist/src/sync/utils.d.ts.map +0 -1
  196. package/dist/src/sync/utils.js +0 -78
  197. package/dist/src/sync/utils.js.map +0 -1
  198. package/dist/src/tracing.d.ts +0 -4
  199. package/dist/src/tracing.d.ts.map +0 -1
  200. package/dist/src/tracing.js +0 -122
  201. package/dist/src/tracing.js.map +0 -1
  202. package/dist/src/types.d.ts +0 -18
  203. package/dist/src/types.d.ts.map +0 -1
  204. package/dist/src/types.js +0 -2
  205. package/dist/src/types.js.map +0 -1
  206. package/dist/src/utils/auth.d.ts +0 -3
  207. package/dist/src/utils/auth.d.ts.map +0 -1
  208. package/dist/src/utils/auth.js +0 -19
  209. package/dist/src/utils/auth.js.map +0 -1
  210. package/dist/src/utils/create-schema.d.ts +0 -31
  211. package/dist/src/utils/create-schema.d.ts.map +0 -1
  212. package/dist/src/utils/create-schema.js +0 -548
  213. package/dist/src/utils/create-schema.js.map +0 -1
  214. package/dist/src/utils/db.d.ts +0 -74
  215. package/dist/src/utils/db.d.ts.map +0 -1
  216. package/dist/src/utils/db.js +0 -101
  217. package/dist/src/utils/db.js.map +0 -1
  218. package/dist/src/utils/drive-url.d.ts +0 -2
  219. package/dist/src/utils/drive-url.d.ts.map +0 -1
  220. package/dist/src/utils/drive-url.js +0 -3
  221. package/dist/src/utils/drive-url.js.map +0 -1
  222. package/dist/src/utils/index.d.ts +0 -4
  223. package/dist/src/utils/index.d.ts.map +0 -1
  224. package/dist/src/utils/index.js +0 -4
  225. package/dist/src/utils/index.js.map +0 -1
  226. package/dist/test/benchmarks/load.bench.d.ts +0 -2
  227. package/dist/test/benchmarks/load.bench.d.ts.map +0 -1
  228. package/dist/test/benchmarks/load.bench.js +0 -73
  229. package/dist/test/benchmarks/load.bench.js.map +0 -1
  230. package/dist/test/benchmarks/sync.bench.d.ts +0 -2
  231. package/dist/test/benchmarks/sync.bench.d.ts.map +0 -1
  232. package/dist/test/benchmarks/sync.bench.js +0 -119
  233. package/dist/test/benchmarks/sync.bench.js.map +0 -1
  234. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts +0 -2
  235. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts.map +0 -1
  236. package/dist/test/connect-switchboard-reshuffle-convergence.test.js +0 -203
  237. package/dist/test/connect-switchboard-reshuffle-convergence.test.js.map +0 -1
  238. package/dist/test/connect-switchboard-sync.test.d.ts +0 -2
  239. package/dist/test/connect-switchboard-sync.test.d.ts.map +0 -1
  240. package/dist/test/connect-switchboard-sync.test.js +0 -581
  241. package/dist/test/connect-switchboard-sync.test.js.map +0 -1
  242. package/dist/test/document-drive-subgraph.test.d.ts +0 -2
  243. package/dist/test/document-drive-subgraph.test.d.ts.map +0 -1
  244. package/dist/test/document-drive-subgraph.test.js +0 -186
  245. package/dist/test/document-drive-subgraph.test.js.map +0 -1
  246. package/dist/test/document-model-subgraph-legacy-permissions.test.d.ts +0 -2
  247. package/dist/test/document-model-subgraph-legacy-permissions.test.d.ts.map +0 -1
  248. package/dist/test/document-model-subgraph-legacy-permissions.test.js +0 -518
  249. package/dist/test/document-model-subgraph-legacy-permissions.test.js.map +0 -1
  250. package/dist/test/document-model-subgraph-permissions.test.d.ts +0 -2
  251. package/dist/test/document-model-subgraph-permissions.test.d.ts.map +0 -1
  252. package/dist/test/document-model-subgraph-permissions.test.js +0 -635
  253. package/dist/test/document-model-subgraph-permissions.test.js.map +0 -1
  254. package/dist/test/document-model-subgraph.test.d.ts +0 -2
  255. package/dist/test/document-model-subgraph.test.d.ts.map +0 -1
  256. package/dist/test/document-model-subgraph.test.js +0 -441
  257. package/dist/test/document-model-subgraph.test.js.map +0 -1
  258. package/dist/test/document-permission.service.test.d.ts +0 -2
  259. package/dist/test/document-permission.service.test.d.ts.map +0 -1
  260. package/dist/test/document-permission.service.test.js +0 -480
  261. package/dist/test/document-permission.service.test.js.map +0 -1
  262. package/dist/test/drive-handlers.d.ts +0 -4
  263. package/dist/test/drive-handlers.d.ts.map +0 -1
  264. package/dist/test/drive-handlers.js +0 -39
  265. package/dist/test/drive-handlers.js.map +0 -1
  266. package/dist/test/drive-info-endpoint.test.d.ts +0 -2
  267. package/dist/test/drive-info-endpoint.test.d.ts.map +0 -1
  268. package/dist/test/drive-info-endpoint.test.js +0 -123
  269. package/dist/test/drive-info-endpoint.test.js.map +0 -1
  270. package/dist/test/drive-subgraph-permissions.test.d.ts +0 -2
  271. package/dist/test/drive-subgraph-permissions.test.d.ts.map +0 -1
  272. package/dist/test/drive-subgraph-permissions.test.js +0 -195
  273. package/dist/test/drive-subgraph-permissions.test.js.map +0 -1
  274. package/dist/test/drive.test.d.ts +0 -2
  275. package/dist/test/drive.test.d.ts.map +0 -1
  276. package/dist/test/drive.test.js +0 -142
  277. package/dist/test/drive.test.js.map +0 -1
  278. package/dist/test/identity-integration.test.d.ts +0 -2
  279. package/dist/test/identity-integration.test.d.ts.map +0 -1
  280. package/dist/test/identity-integration.test.js +0 -349
  281. package/dist/test/identity-integration.test.js.map +0 -1
  282. package/dist/test/index.d.ts +0 -3
  283. package/dist/test/index.d.ts.map +0 -1
  284. package/dist/test/index.js +0 -3
  285. package/dist/test/index.js.map +0 -1
  286. package/dist/test/permissions-integration.test.d.ts +0 -2
  287. package/dist/test/permissions-integration.test.d.ts.map +0 -1
  288. package/dist/test/permissions-integration.test.js +0 -421
  289. package/dist/test/permissions-integration.test.js.map +0 -1
  290. package/dist/test/pull-responder-transmitter.test.d.ts +0 -2
  291. package/dist/test/pull-responder-transmitter.test.d.ts.map +0 -1
  292. package/dist/test/pull-responder-transmitter.test.js +0 -220
  293. package/dist/test/pull-responder-transmitter.test.js.map +0 -1
  294. package/dist/test/push-backfill.test.d.ts +0 -2
  295. package/dist/test/push-backfill.test.d.ts.map +0 -1
  296. package/dist/test/push-backfill.test.js +0 -298
  297. package/dist/test/push-backfill.test.js.map +0 -1
  298. package/dist/test/push-transmitter.test.d.ts +0 -2
  299. package/dist/test/push-transmitter.test.d.ts.map +0 -1
  300. package/dist/test/push-transmitter.test.js +0 -179
  301. package/dist/test/push-transmitter.test.js.map +0 -1
  302. package/dist/test/reactor-adapters.test.d.ts +0 -2
  303. package/dist/test/reactor-adapters.test.d.ts.map +0 -1
  304. package/dist/test/reactor-adapters.test.js +0 -379
  305. package/dist/test/reactor-adapters.test.js.map +0 -1
  306. package/dist/test/reactor-client.test.d.ts +0 -2
  307. package/dist/test/reactor-client.test.d.ts.map +0 -1
  308. package/dist/test/reactor-client.test.js +0 -212
  309. package/dist/test/reactor-client.test.js.map +0 -1
  310. package/dist/test/reactor-resolvers.test.d.ts +0 -2
  311. package/dist/test/reactor-resolvers.test.d.ts.map +0 -1
  312. package/dist/test/reactor-resolvers.test.js +0 -258
  313. package/dist/test/reactor-resolvers.test.js.map +0 -1
  314. package/dist/test/reactor-subgraph-permissions.test.d.ts +0 -2
  315. package/dist/test/reactor-subgraph-permissions.test.d.ts.map +0 -1
  316. package/dist/test/reactor-subgraph-permissions.test.js +0 -397
  317. package/dist/test/reactor-subgraph-permissions.test.js.map +0 -1
  318. package/dist/test/router.test.d.ts +0 -2
  319. package/dist/test/router.test.d.ts.map +0 -1
  320. package/dist/test/router.test.js +0 -38
  321. package/dist/test/router.test.js.map +0 -1
  322. package/dist/test/subscriptions.test.d.ts +0 -2
  323. package/dist/test/subscriptions.test.d.ts.map +0 -1
  324. package/dist/test/subscriptions.test.js +0 -248
  325. package/dist/test/subscriptions.test.js.map +0 -1
  326. package/dist/test/utils/gql-resolver-bridge.d.ts +0 -15
  327. package/dist/test/utils/gql-resolver-bridge.d.ts.map +0 -1
  328. package/dist/test/utils/gql-resolver-bridge.js +0 -89
  329. package/dist/test/utils/gql-resolver-bridge.js.map +0 -1
  330. package/dist/test/utils.d.ts +0 -10
  331. package/dist/test/utils.d.ts.map +0 -1
  332. package/dist/test/utils.js +0 -23
  333. package/dist/test/utils.js.map +0 -1
  334. package/dist/tsconfig.tsbuildinfo +0 -1
  335. package/dist/vitest.config.d.ts +0 -3
  336. package/dist/vitest.config.d.ts.map +0 -1
  337. package/dist/vitest.config.js +0 -38
  338. package/dist/vitest.config.js.map +0 -1
@@ -1,595 +0,0 @@
1
- import { batchOperationsByDocument, consolidateSyncOperations, sortEnvelopesByFirstOperationTimestamp, SyncOperation, trimMailboxFromAckOrdinal, } from "@powerhousedao/reactor";
2
- import { GraphQLError } from "graphql";
3
- import { fromInputMaybe, serializeOperationForGraphQL, toDocumentModelResultPage, toGqlJobInfo, toGqlPhDocument, toMutableArray, toOperationResultPage, toPhDocumentResultPage, validateActions, } from "./adapters.js";
4
- export async function documentModels(reactorClient, args) {
5
- const namespace = fromInputMaybe(args.namespace);
6
- let paging;
7
- if (args.paging) {
8
- const cursor = fromInputMaybe(args.paging.cursor);
9
- const limit = fromInputMaybe(args.paging.limit);
10
- if (cursor || limit) {
11
- paging = {
12
- cursor: cursor || "",
13
- limit: limit || 10,
14
- };
15
- }
16
- }
17
- let result;
18
- try {
19
- result = await reactorClient.getDocumentModelModules(namespace, paging);
20
- }
21
- catch (error) {
22
- throw new GraphQLError(`Failed to fetch document models: ${error instanceof Error ? error.message : "Unknown error"}`);
23
- }
24
- try {
25
- return toDocumentModelResultPage(result);
26
- }
27
- catch (error) {
28
- throw new GraphQLError(`Failed to convert document models to GraphQL: ${error instanceof Error ? error.message : "Unknown error"}`);
29
- }
30
- }
31
- export async function document(reactorClient, args) {
32
- let view;
33
- if (args.view) {
34
- view = {
35
- branch: fromInputMaybe(args.view.branch),
36
- scopes: toMutableArray(fromInputMaybe(args.view.scopes)),
37
- };
38
- }
39
- let result;
40
- try {
41
- result = await reactorClient.get(args.identifier, view);
42
- }
43
- catch (error) {
44
- throw new GraphQLError(`Failed to fetch document: ${error instanceof Error ? error.message : "Unknown error"}`);
45
- }
46
- let children;
47
- try {
48
- children = await reactorClient.getChildren(args.identifier, view);
49
- }
50
- catch (error) {
51
- throw new GraphQLError(`Failed to fetch children: ${error instanceof Error ? error.message : "Unknown error"}`);
52
- }
53
- try {
54
- return {
55
- document: toGqlPhDocument(result),
56
- childIds: children.results.map((child) => child.header.id),
57
- };
58
- }
59
- catch (error) {
60
- throw new GraphQLError(`Failed to convert document to GraphQL: ${error instanceof Error ? error.message : "Unknown error"}`);
61
- }
62
- }
63
- export async function documentChildren(reactorClient, args) {
64
- let view;
65
- if (args.view) {
66
- view = {
67
- branch: fromInputMaybe(args.view.branch),
68
- scopes: toMutableArray(fromInputMaybe(args.view.scopes)),
69
- };
70
- }
71
- let paging;
72
- if (args.paging) {
73
- const cursor = fromInputMaybe(args.paging.cursor);
74
- const limit = fromInputMaybe(args.paging.limit);
75
- if (cursor || limit) {
76
- paging = {
77
- cursor: cursor || "",
78
- limit: limit || 10,
79
- };
80
- }
81
- }
82
- let result;
83
- try {
84
- result = await reactorClient.getChildren(args.parentIdentifier, view, paging);
85
- }
86
- catch (error) {
87
- throw new GraphQLError(`Failed to fetch document children: ${error instanceof Error ? error.message : "Unknown error"}`);
88
- }
89
- try {
90
- return toPhDocumentResultPage(result);
91
- }
92
- catch (error) {
93
- throw new GraphQLError(`Failed to convert document children to GraphQL: ${error instanceof Error ? error.message : "Unknown error"}`);
94
- }
95
- }
96
- export async function documentParents(reactorClient, args) {
97
- let view;
98
- if (args.view) {
99
- view = {
100
- branch: fromInputMaybe(args.view.branch),
101
- scopes: toMutableArray(fromInputMaybe(args.view.scopes)),
102
- };
103
- }
104
- let paging;
105
- if (args.paging) {
106
- const cursor = fromInputMaybe(args.paging.cursor);
107
- const limit = fromInputMaybe(args.paging.limit);
108
- if (cursor || limit) {
109
- paging = {
110
- cursor: cursor || "",
111
- limit: limit || 10,
112
- };
113
- }
114
- }
115
- let result;
116
- try {
117
- result = await reactorClient.getParents(args.childIdentifier, view, paging);
118
- }
119
- catch (error) {
120
- throw new GraphQLError(`Failed to fetch document parents: ${error instanceof Error ? error.message : "Unknown error"}`);
121
- }
122
- try {
123
- return toPhDocumentResultPage(result);
124
- }
125
- catch (error) {
126
- throw new GraphQLError(`Failed to convert document parents to GraphQL: ${error instanceof Error ? error.message : "Unknown error"}`);
127
- }
128
- }
129
- export async function findDocuments(reactorClient, args) {
130
- let view;
131
- if (args.view) {
132
- view = {
133
- branch: fromInputMaybe(args.view.branch),
134
- scopes: toMutableArray(fromInputMaybe(args.view.scopes)),
135
- };
136
- }
137
- let paging;
138
- if (args.paging) {
139
- const cursor = fromInputMaybe(args.paging.cursor);
140
- const limit = fromInputMaybe(args.paging.limit);
141
- if (cursor || limit) {
142
- paging = {
143
- cursor: cursor || "",
144
- limit: limit || 10,
145
- };
146
- }
147
- }
148
- const search = {
149
- type: fromInputMaybe(args.search.type),
150
- parentId: fromInputMaybe(args.search.parentId),
151
- };
152
- let result;
153
- try {
154
- result = await reactorClient.find(search, view, paging);
155
- }
156
- catch (error) {
157
- throw new GraphQLError(`Failed to find documents: ${error instanceof Error ? error.message : "Unknown error"}`);
158
- }
159
- try {
160
- return toPhDocumentResultPage(result);
161
- }
162
- catch (error) {
163
- throw new GraphQLError(`Failed to convert documents to GraphQL: ${error instanceof Error ? error.message : "Unknown error"}`);
164
- }
165
- }
166
- export async function jobStatus(reactorClient, args) {
167
- let result;
168
- try {
169
- result = await reactorClient.getJobStatus(args.jobId);
170
- }
171
- catch (error) {
172
- throw new GraphQLError(`Failed to fetch job status: ${error instanceof Error ? error.message : "Unknown error"}`);
173
- }
174
- try {
175
- return toGqlJobInfo(result);
176
- }
177
- catch (error) {
178
- throw new GraphQLError(`Failed to convert job status to GraphQL: ${error instanceof Error ? error.message : "Unknown error"}`);
179
- }
180
- }
181
- export async function documentOperations(reactorClient, args) {
182
- let view;
183
- const branch = fromInputMaybe(args.filter.branch);
184
- const scopes = toMutableArray(fromInputMaybe(args.filter.scopes));
185
- if (branch || scopes) {
186
- view = { branch, scopes };
187
- }
188
- const actionTypes = toMutableArray(fromInputMaybe(args.filter.actionTypes));
189
- const sinceRevision = fromInputMaybe(args.filter.sinceRevision);
190
- const timestampFrom = fromInputMaybe(args.filter.timestampFrom);
191
- const timestampTo = fromInputMaybe(args.filter.timestampTo);
192
- let operationFilter;
193
- if ((actionTypes && actionTypes.length > 0) ||
194
- sinceRevision !== undefined ||
195
- timestampFrom ||
196
- timestampTo) {
197
- operationFilter = {
198
- actionTypes: actionTypes && actionTypes.length > 0 ? actionTypes : undefined,
199
- sinceRevision,
200
- timestampFrom: timestampFrom || undefined,
201
- timestampTo: timestampTo || undefined,
202
- };
203
- }
204
- let paging;
205
- if (args.paging) {
206
- const cursor = fromInputMaybe(args.paging.cursor);
207
- const limit = fromInputMaybe(args.paging.limit);
208
- if (cursor || limit) {
209
- paging = {
210
- cursor: cursor || "",
211
- limit: limit || 100,
212
- };
213
- }
214
- }
215
- let result;
216
- try {
217
- result = await reactorClient.getOperations(args.filter.documentId, view, operationFilter, paging);
218
- }
219
- catch (error) {
220
- throw new GraphQLError(`Failed to fetch document operations: ${error instanceof Error ? error.message : "Unknown error"}`);
221
- }
222
- try {
223
- return toOperationResultPage(result);
224
- }
225
- catch (error) {
226
- throw new GraphQLError(`Failed to convert operations to GraphQL: ${error instanceof Error ? error.message : "Unknown error"}`);
227
- }
228
- }
229
- export async function createDocument(reactorClient, args) {
230
- // Validate that document is a PHDocument
231
- if (!args.document || typeof args.document !== "object") {
232
- throw new GraphQLError("Invalid document: must be an object");
233
- }
234
- const document = args.document;
235
- // Validate required fields
236
- if (!document.header || typeof document.header !== "object") {
237
- throw new GraphQLError("Invalid document: missing or invalid header");
238
- }
239
- const parentIdentifier = fromInputMaybe(args.parentIdentifier);
240
- let result;
241
- try {
242
- result = await reactorClient.create(document, parentIdentifier);
243
- }
244
- catch (error) {
245
- throw new GraphQLError(`Failed to create document: ${error instanceof Error ? error.message : "Unknown error"}`);
246
- }
247
- try {
248
- return toGqlPhDocument(result);
249
- }
250
- catch (error) {
251
- throw new GraphQLError(`Failed to convert created document to GraphQL: ${error instanceof Error ? error.message : "Unknown error"}`);
252
- }
253
- }
254
- export async function createEmptyDocument(reactorClient, args) {
255
- const parentIdentifier = fromInputMaybe(args.parentIdentifier);
256
- let result;
257
- try {
258
- result = await reactorClient.createEmpty(args.documentType, {
259
- parentIdentifier,
260
- });
261
- }
262
- catch (error) {
263
- throw new GraphQLError(`Failed to create empty document: ${error instanceof Error ? error.message : "Unknown error"}`);
264
- }
265
- try {
266
- return toGqlPhDocument(result);
267
- }
268
- catch (error) {
269
- throw new GraphQLError(`Failed to convert created document to GraphQL: ${error instanceof Error ? error.message : "Unknown error"}`);
270
- }
271
- }
272
- export async function mutateDocument(reactorClient, args) {
273
- // Validate actions
274
- let validatedActions;
275
- try {
276
- validatedActions = validateActions(args.actions);
277
- }
278
- catch (error) {
279
- if (error instanceof GraphQLError) {
280
- throw error;
281
- }
282
- throw new GraphQLError(`Action validation failed: ${error instanceof Error ? error.message : "Unknown error"}`);
283
- }
284
- // Extract branch from view filter (default to "main")
285
- const branch = args.view?.branch ?? "main";
286
- let result;
287
- try {
288
- result = await reactorClient.execute(args.documentIdentifier, branch, validatedActions);
289
- }
290
- catch (error) {
291
- throw new GraphQLError(`Failed to mutate document: ${error instanceof Error ? error.message : "Unknown error"}`);
292
- }
293
- try {
294
- return toGqlPhDocument(result);
295
- }
296
- catch (error) {
297
- throw new GraphQLError(`Failed to convert mutated document to GraphQL: ${error instanceof Error ? error.message : "Unknown error"}`);
298
- }
299
- }
300
- export async function mutateDocumentAsync(reactorClient, args) {
301
- // Validate actions
302
- let validatedActions;
303
- try {
304
- validatedActions = validateActions(args.actions);
305
- }
306
- catch (error) {
307
- if (error instanceof GraphQLError) {
308
- throw error;
309
- }
310
- throw new GraphQLError(`Action validation failed: ${error instanceof Error ? error.message : "Unknown error"}`);
311
- }
312
- // Extract branch from view filter (default to "main")
313
- const branch = args.view?.branch ?? "main";
314
- let result;
315
- try {
316
- result = await reactorClient.executeAsync(args.documentIdentifier, branch, validatedActions);
317
- }
318
- catch (error) {
319
- throw new GraphQLError(`Failed to submit document mutation: ${error instanceof Error ? error.message : "Unknown error"}`);
320
- }
321
- return result.id;
322
- }
323
- export async function renameDocument(reactorClient, args, signal) {
324
- const branch = fromInputMaybe(args.branch);
325
- let result;
326
- try {
327
- result = await reactorClient.rename(args.documentIdentifier, args.name, branch, signal);
328
- }
329
- catch (error) {
330
- throw new GraphQLError(`Failed to rename document: ${error instanceof Error ? error.message : "Unknown error"}`);
331
- }
332
- try {
333
- return toGqlPhDocument(result);
334
- }
335
- catch (error) {
336
- throw new GraphQLError(`Failed to convert renamed document to GraphQL: ${error instanceof Error ? error.message : "Unknown error"}`);
337
- }
338
- }
339
- export async function addChildren(reactorClient, args) {
340
- const branch = fromInputMaybe(args.branch);
341
- const documentIdentifiers = [...args.documentIdentifiers];
342
- let result;
343
- try {
344
- result = await reactorClient.addChildren(args.parentIdentifier, documentIdentifiers, branch);
345
- }
346
- catch (error) {
347
- throw new GraphQLError(`Failed to add children: ${error instanceof Error ? error.message : "Unknown error"}`);
348
- }
349
- try {
350
- return toGqlPhDocument(result);
351
- }
352
- catch (error) {
353
- throw new GraphQLError(`Failed to convert document to GraphQL: ${error instanceof Error ? error.message : "Unknown error"}`);
354
- }
355
- }
356
- export async function removeChildren(reactorClient, args) {
357
- const branch = fromInputMaybe(args.branch);
358
- const documentIdentifiers = [...args.documentIdentifiers];
359
- let result;
360
- try {
361
- result = await reactorClient.removeChildren(args.parentIdentifier, documentIdentifiers, branch);
362
- }
363
- catch (error) {
364
- throw new GraphQLError(`Failed to remove children: ${error instanceof Error ? error.message : "Unknown error"}`);
365
- }
366
- try {
367
- return toGqlPhDocument(result);
368
- }
369
- catch (error) {
370
- throw new GraphQLError(`Failed to convert document to GraphQL: ${error instanceof Error ? error.message : "Unknown error"}`);
371
- }
372
- }
373
- export async function moveChildren(reactorClient, args) {
374
- const branch = fromInputMaybe(args.branch);
375
- const documentIdentifiers = [...args.documentIdentifiers];
376
- let result;
377
- try {
378
- result = await reactorClient.moveChildren(args.sourceParentIdentifier, args.targetParentIdentifier, documentIdentifiers, branch);
379
- }
380
- catch (error) {
381
- throw new GraphQLError(`Failed to move children: ${error instanceof Error ? error.message : "Unknown error"}`);
382
- }
383
- try {
384
- return {
385
- source: toGqlPhDocument(result.source),
386
- target: toGqlPhDocument(result.target),
387
- };
388
- }
389
- catch (error) {
390
- throw new GraphQLError(`Failed to convert documents to GraphQL: ${error instanceof Error ? error.message : "Unknown error"}`);
391
- }
392
- }
393
- export async function deleteDocument(reactorClient, args) {
394
- const propagate = fromInputMaybe(args.propagate);
395
- try {
396
- await reactorClient.deleteDocument(args.identifier, propagate);
397
- return true;
398
- }
399
- catch (error) {
400
- throw new GraphQLError(`Failed to delete document: ${error instanceof Error ? error.message : "Unknown error"}`);
401
- }
402
- }
403
- export async function deleteDocuments(reactorClient, args) {
404
- const propagate = fromInputMaybe(args.propagate);
405
- const identifiers = [...args.identifiers];
406
- try {
407
- await reactorClient.deleteDocuments(identifiers, propagate);
408
- return true;
409
- }
410
- catch (error) {
411
- throw new GraphQLError(`Failed to delete documents: ${error instanceof Error ? error.message : "Unknown error"}`);
412
- }
413
- }
414
- export async function touchChannel(syncManager, args) {
415
- try {
416
- syncManager.getById(args.input.id);
417
- return true;
418
- }
419
- catch {
420
- // getById will throw if the remote does not exist
421
- }
422
- const filter = {
423
- documentId: [...args.input.filter.documentId],
424
- scope: [...args.input.filter.scope],
425
- branch: args.input.filter.branch,
426
- };
427
- const options = {
428
- sinceTimestampUtcMs: args.input.sinceTimestampUtcMs,
429
- };
430
- try {
431
- await syncManager.add(args.input.name, args.input.collectionId, {
432
- type: "polling",
433
- parameters: {},
434
- }, filter, options, args.input.id);
435
- }
436
- catch (error) {
437
- throw new GraphQLError(`Failed to create channel: ${error instanceof Error ? error.message : "Unknown error"}`);
438
- }
439
- return true;
440
- }
441
- /**
442
- * Polls the switchboard for new sync envelopes and acknowledges previously
443
- * received operations.
444
- *
445
- * Ordinal frames of reference:
446
- * - `outboxAck` / `outboxLatest`: switchboard's ordinals (used to trim/filter
447
- * the switchboard's outbox)
448
- * - `ackOrdinal` in the response: the pushing client's ordinals (highest
449
- * client ordinal the switchboard has successfully applied, so the client
450
- * can trim its own outbox)
451
- */
452
- export function pollSyncEnvelopes(syncManager, args) {
453
- let remote;
454
- try {
455
- remote = syncManager.getById(args.channelId);
456
- }
457
- catch (error) {
458
- throw new GraphQLError(`Channel not found: ${error instanceof Error ? error.message : "Unknown error"}`);
459
- }
460
- const deadLetters = remote.channel.deadLetter.items.map((syncOp) => ({
461
- documentId: syncOp.documentId,
462
- error: syncOp.error?.message ?? "Unknown error",
463
- jobId: syncOp.jobId,
464
- branch: syncOp.branch,
465
- scopes: syncOp.scopes,
466
- operationCount: syncOp.operations.length,
467
- }));
468
- // trim outbox
469
- if (args.outboxAck > 0) {
470
- trimMailboxFromAckOrdinal(remote.channel.outbox, args.outboxAck);
471
- }
472
- let operations = remote.channel.outbox.items;
473
- // filter remaining outbox operations by outboxLatest
474
- operations = operations.filter((syncOp) => {
475
- let maxOrdinal = 0;
476
- for (const op of syncOp.operations) {
477
- maxOrdinal = Math.max(maxOrdinal, op.context.ordinal);
478
- }
479
- if (maxOrdinal > args.outboxLatest) {
480
- return true;
481
- }
482
- return false;
483
- });
484
- if (operations.length === 0) {
485
- return {
486
- envelopes: [],
487
- ackOrdinal: remote.channel.inbox.ackOrdinal,
488
- deadLetters,
489
- };
490
- }
491
- let maxOrdinal = args.outboxLatest;
492
- for (const syncOp of operations) {
493
- for (const op of syncOp.operations) {
494
- const opOrdinal = op.context.ordinal;
495
- if (opOrdinal > maxOrdinal) {
496
- maxOrdinal = opOrdinal;
497
- }
498
- }
499
- }
500
- const envelopes = operations.map((syncOp) => ({
501
- type: "OPERATIONS",
502
- channelMeta: {
503
- id: args.channelId,
504
- },
505
- operations: syncOp.operations.map((op) => ({
506
- operation: serializeOperationForGraphQL(op.operation),
507
- context: op.context,
508
- })),
509
- cursor: {
510
- remoteName: remote.name,
511
- cursorOrdinal: maxOrdinal,
512
- lastSyncedAtUtcMs: Date.now().toString(),
513
- },
514
- key: syncOp.jobId || undefined,
515
- dependsOn: syncOp.jobDependencies.filter(Boolean).length > 0
516
- ? syncOp.jobDependencies.filter(Boolean)
517
- : undefined,
518
- }));
519
- return {
520
- envelopes: sortEnvelopesByFirstOperationTimestamp(envelopes),
521
- ackOrdinal: remote.channel.inbox.ackOrdinal,
522
- deadLetters,
523
- };
524
- }
525
- /**
526
- * Receives sync envelopes pushed by a client and adds them to the
527
- * appropriate channel inboxes.
528
- *
529
- * The `ordinal` in each operation's context is the client's local ordinal.
530
- * It must be preserved because the inbox mailbox tracks applied ordinals
531
- * and returns the highest one as `ackOrdinal` in pollSyncEnvelopes.
532
- */
533
- export function pushSyncEnvelopes(syncManager, args) {
534
- const sortedEnvelopes = sortEnvelopesByFirstOperationTimestamp(args.envelopes);
535
- const remoteSyncOps = new Map();
536
- for (const envelope of sortedEnvelopes) {
537
- let remote;
538
- try {
539
- remote = syncManager.getById(envelope.channelMeta.id);
540
- }
541
- catch (error) {
542
- throw new GraphQLError(`Channel not found: ${error instanceof Error ? error.message : "Unknown error"}`);
543
- }
544
- if (!envelope.operations || envelope.operations.length === 0) {
545
- continue;
546
- }
547
- const operations = envelope.operations.map((op) => ({
548
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
549
- operation: op.operation,
550
- context: {
551
- documentId: op.context.documentId,
552
- documentType: op.context.documentType,
553
- scope: op.context.scope,
554
- branch: op.context.branch,
555
- ordinal: op.context.ordinal,
556
- },
557
- }));
558
- const batches = batchOperationsByDocument(operations);
559
- for (const batch of batches) {
560
- const syncOpId = `syncop-${envelope.channelMeta.id}-${Date.now()}-${crypto.randomUUID()}`;
561
- const jobId = envelope.key ?? "";
562
- const jobDependencies = envelope.dependsOn ?? [];
563
- const syncOp = new SyncOperation(syncOpId, jobId, jobDependencies, remote.name, batch.documentId, [batch.scope], batch.branch, batch.operations);
564
- if (!remoteSyncOps.has(remote)) {
565
- remoteSyncOps.set(remote, []);
566
- }
567
- remoteSyncOps.get(remote).push(syncOp);
568
- }
569
- }
570
- for (const [remote, syncOps] of remoteSyncOps) {
571
- const consolidated = consolidateSyncOperations(syncOps);
572
- const validKeys = new Set(consolidated.map((op) => op.jobId).filter(Boolean));
573
- for (const syncOp of consolidated) {
574
- syncOp.jobDependencies = syncOp.jobDependencies.filter((dep) => validKeys.has(dep));
575
- }
576
- remote.channel.inbox.add(...consolidated);
577
- }
578
- return Promise.resolve(true);
579
- }
580
- /**
581
- * Create a getParentIds function using the reactor client
582
- */
583
- export function createGetParentIdsFn(reactorClient) {
584
- return async (documentId) => {
585
- try {
586
- const result = await reactorClient.getParents(documentId);
587
- return result.results.map((doc) => doc.header.id);
588
- }
589
- catch {
590
- // If document has no parents or error, return empty array
591
- return [];
592
- }
593
- };
594
- }
595
- //# sourceMappingURL=resolvers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../../../src/graphql/reactor/resolvers.ts"],"names":[],"mappings":"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"}