@powerhousedao/reactor-api 6.0.0-dev.22 → 6.0.0-dev.221

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 (326) hide show
  1. package/README.md +6 -0
  2. package/dist/index.d.mts +3037 -0
  3. package/dist/index.d.mts.map +1 -0
  4. package/dist/index.mjs +6687 -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 +79 -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 +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-CVrD_vPF.mjs +287 -0
  17. package/dist/utils-CVrD_vPF.mjs.map +1 -0
  18. package/package.json +71 -63
  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 -7
  28. package/dist/src/config.d.ts.map +0 -1
  29. package/dist/src/config.js +0 -10
  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 -51
  53. package/dist/src/graphql/document-model-subgraph.d.ts.map +0 -1
  54. package/dist/src/graphql/document-model-subgraph.js +0 -104
  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 -487
  59. package/dist/src/graphql/drive-subgraph.js.map +0 -1
  60. package/dist/src/graphql/graphql-manager.d.ts +0 -47
  61. package/dist/src/graphql/graphql-manager.d.ts.map +0 -1
  62. package/dist/src/graphql/graphql-manager.js +0 -433
  63. package/dist/src/graphql/graphql-manager.js.map +0 -1
  64. package/dist/src/graphql/index.d.ts +0 -9
  65. package/dist/src/graphql/index.d.ts.map +0 -1
  66. package/dist/src/graphql/index.js +0 -9
  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 -84
  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 -1242
  81. package/dist/src/graphql/reactor/gen/graphql.d.ts.map +0 -1
  82. package/dist/src/graphql/reactor/gen/graphql.js +0 -496
  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 -253
  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 -53
  100. package/dist/src/graphql/reactor/requester.with-zod.js.map +0 -1
  101. package/dist/src/graphql/reactor/resolvers.d.ts +0 -175
  102. package/dist/src/graphql/reactor/resolvers.d.ts.map +0 -1
  103. package/dist/src/graphql/reactor/resolvers.js +0 -526
  104. package/dist/src/graphql/reactor/resolvers.js.map +0 -1
  105. package/dist/src/graphql/reactor/schema.graphql +0 -432
  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 -555
  109. package/dist/src/graphql/reactor/subgraph.js.map +0 -1
  110. package/dist/src/graphql/reactor/validation.d.ts +0 -102
  111. package/dist/src/graphql/reactor/validation.d.ts.map +0 -1
  112. package/dist/src/graphql/reactor/validation.js +0 -73
  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 -3
  123. package/dist/src/graphql/system/index.d.ts.map +0 -1
  124. package/dist/src/graphql/system/index.js +0 -3
  125. package/dist/src/graphql/system/index.js.map +0 -1
  126. package/dist/src/graphql/system/system-subgraph.d.ts +0 -49
  127. package/dist/src/graphql/system/system-subgraph.d.ts.map +0 -1
  128. package/dist/src/graphql/system/system-subgraph.js +0 -130
  129. package/dist/src/graphql/system/system-subgraph.js.map +0 -1
  130. package/dist/src/graphql/system/types.d.ts +0 -2
  131. package/dist/src/graphql/system/types.d.ts.map +0 -1
  132. package/dist/src/graphql/system/types.js +0 -2
  133. package/dist/src/graphql/system/types.js.map +0 -1
  134. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts +0 -57
  135. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts.map +0 -1
  136. package/dist/src/graphql/temp-hack-rwa-type-defs.js +0 -2
  137. package/dist/src/graphql/temp-hack-rwa-type-defs.js.map +0 -1
  138. package/dist/src/graphql/types.d.ts +0 -103
  139. package/dist/src/graphql/types.d.ts.map +0 -1
  140. package/dist/src/graphql/types.js +0 -2
  141. package/dist/src/graphql/types.js.map +0 -1
  142. package/dist/src/graphql/utils.d.ts +0 -26
  143. package/dist/src/graphql/utils.d.ts.map +0 -1
  144. package/dist/src/graphql/utils.js +0 -100
  145. package/dist/src/graphql/utils.js.map +0 -1
  146. package/dist/src/graphql/websocket.d.ts +0 -3
  147. package/dist/src/graphql/websocket.d.ts.map +0 -1
  148. package/dist/src/graphql/websocket.js +0 -15
  149. package/dist/src/graphql/websocket.js.map +0 -1
  150. package/dist/src/migrations/001_create_document_permissions.d.ts +0 -4
  151. package/dist/src/migrations/001_create_document_permissions.d.ts.map +0 -1
  152. package/dist/src/migrations/001_create_document_permissions.js +0 -91
  153. package/dist/src/migrations/001_create_document_permissions.js.map +0 -1
  154. package/dist/src/migrations/index.d.ts +0 -10
  155. package/dist/src/migrations/index.d.ts.map +0 -1
  156. package/dist/src/migrations/index.js +0 -56
  157. package/dist/src/migrations/index.js.map +0 -1
  158. package/dist/src/packages/import-loader.d.ts +0 -16
  159. package/dist/src/packages/import-loader.d.ts.map +0 -1
  160. package/dist/src/packages/import-loader.js +0 -61
  161. package/dist/src/packages/import-loader.js.map +0 -1
  162. package/dist/src/packages/import-resolver.d.ts +0 -5
  163. package/dist/src/packages/import-resolver.d.ts.map +0 -1
  164. package/dist/src/packages/import-resolver.js +0 -127
  165. package/dist/src/packages/import-resolver.js.map +0 -1
  166. package/dist/src/packages/package-manager.d.ts +0 -34
  167. package/dist/src/packages/package-manager.d.ts.map +0 -1
  168. package/dist/src/packages/package-manager.js +0 -213
  169. package/dist/src/packages/package-manager.js.map +0 -1
  170. package/dist/src/packages/types.d.ts +0 -39
  171. package/dist/src/packages/types.d.ts.map +0 -1
  172. package/dist/src/packages/types.js +0 -2
  173. package/dist/src/packages/types.js.map +0 -1
  174. package/dist/src/packages/util.d.ts +0 -27
  175. package/dist/src/packages/util.d.ts.map +0 -1
  176. package/dist/src/packages/util.js +0 -97
  177. package/dist/src/packages/util.js.map +0 -1
  178. package/dist/src/packages/vite-loader.d.ts +0 -24
  179. package/dist/src/packages/vite-loader.d.ts.map +0 -1
  180. package/dist/src/packages/vite-loader.js +0 -172
  181. package/dist/src/packages/vite-loader.js.map +0 -1
  182. package/dist/src/server.d.ts +0 -73
  183. package/dist/src/server.d.ts.map +0 -1
  184. package/dist/src/server.js +0 -431
  185. package/dist/src/server.js.map +0 -1
  186. package/dist/src/services/auth.service.d.ts +0 -68
  187. package/dist/src/services/auth.service.d.ts.map +0 -1
  188. package/dist/src/services/auth.service.js +0 -199
  189. package/dist/src/services/auth.service.js.map +0 -1
  190. package/dist/src/services/document-permission.service.d.ts +0 -201
  191. package/dist/src/services/document-permission.service.d.ts.map +0 -1
  192. package/dist/src/services/document-permission.service.js +0 -636
  193. package/dist/src/services/document-permission.service.js.map +0 -1
  194. package/dist/src/sync/types.d.ts +0 -10
  195. package/dist/src/sync/types.d.ts.map +0 -1
  196. package/dist/src/sync/types.js +0 -2
  197. package/dist/src/sync/types.js.map +0 -1
  198. package/dist/src/sync/utils.d.ts +0 -7
  199. package/dist/src/sync/utils.d.ts.map +0 -1
  200. package/dist/src/sync/utils.js +0 -78
  201. package/dist/src/sync/utils.js.map +0 -1
  202. package/dist/src/tracing.d.ts +0 -4
  203. package/dist/src/tracing.d.ts.map +0 -1
  204. package/dist/src/tracing.js +0 -122
  205. package/dist/src/tracing.js.map +0 -1
  206. package/dist/src/types.d.ts +0 -18
  207. package/dist/src/types.d.ts.map +0 -1
  208. package/dist/src/types.js +0 -2
  209. package/dist/src/types.js.map +0 -1
  210. package/dist/src/utils/auth.d.ts +0 -3
  211. package/dist/src/utils/auth.d.ts.map +0 -1
  212. package/dist/src/utils/auth.js +0 -19
  213. package/dist/src/utils/auth.js.map +0 -1
  214. package/dist/src/utils/create-schema.d.ts +0 -11
  215. package/dist/src/utils/create-schema.d.ts.map +0 -1
  216. package/dist/src/utils/create-schema.js +0 -322
  217. package/dist/src/utils/create-schema.js.map +0 -1
  218. package/dist/src/utils/db.d.ts +0 -74
  219. package/dist/src/utils/db.d.ts.map +0 -1
  220. package/dist/src/utils/db.js +0 -101
  221. package/dist/src/utils/db.js.map +0 -1
  222. package/dist/src/utils/drive-url.d.ts +0 -2
  223. package/dist/src/utils/drive-url.d.ts.map +0 -1
  224. package/dist/src/utils/drive-url.js +0 -3
  225. package/dist/src/utils/drive-url.js.map +0 -1
  226. package/dist/src/utils/index.d.ts +0 -4
  227. package/dist/src/utils/index.d.ts.map +0 -1
  228. package/dist/src/utils/index.js +0 -4
  229. package/dist/src/utils/index.js.map +0 -1
  230. package/dist/test/benchmarks/load.bench.d.ts +0 -2
  231. package/dist/test/benchmarks/load.bench.d.ts.map +0 -1
  232. package/dist/test/benchmarks/load.bench.js +0 -73
  233. package/dist/test/benchmarks/load.bench.js.map +0 -1
  234. package/dist/test/benchmarks/sync.bench.d.ts +0 -2
  235. package/dist/test/benchmarks/sync.bench.d.ts.map +0 -1
  236. package/dist/test/benchmarks/sync.bench.js +0 -119
  237. package/dist/test/benchmarks/sync.bench.js.map +0 -1
  238. package/dist/test/document-permission.service.test.d.ts +0 -2
  239. package/dist/test/document-permission.service.test.d.ts.map +0 -1
  240. package/dist/test/document-permission.service.test.js +0 -480
  241. package/dist/test/document-permission.service.test.js.map +0 -1
  242. package/dist/test/drive-handlers.d.ts +0 -4
  243. package/dist/test/drive-handlers.d.ts.map +0 -1
  244. package/dist/test/drive-handlers.js +0 -39
  245. package/dist/test/drive-handlers.js.map +0 -1
  246. package/dist/test/drive-subgraph-permissions.test.d.ts +0 -2
  247. package/dist/test/drive-subgraph-permissions.test.d.ts.map +0 -1
  248. package/dist/test/drive-subgraph-permissions.test.js +0 -195
  249. package/dist/test/drive-subgraph-permissions.test.js.map +0 -1
  250. package/dist/test/drive.test.d.ts +0 -2
  251. package/dist/test/drive.test.d.ts.map +0 -1
  252. package/dist/test/drive.test.js +0 -142
  253. package/dist/test/drive.test.js.map +0 -1
  254. package/dist/test/identity-integration.test.d.ts +0 -2
  255. package/dist/test/identity-integration.test.d.ts.map +0 -1
  256. package/dist/test/identity-integration.test.js +0 -349
  257. package/dist/test/identity-integration.test.js.map +0 -1
  258. package/dist/test/index.d.ts +0 -3
  259. package/dist/test/index.d.ts.map +0 -1
  260. package/dist/test/index.js +0 -3
  261. package/dist/test/index.js.map +0 -1
  262. package/dist/test/permissions-integration.test.d.ts +0 -2
  263. package/dist/test/permissions-integration.test.d.ts.map +0 -1
  264. package/dist/test/permissions-integration.test.js +0 -421
  265. package/dist/test/permissions-integration.test.js.map +0 -1
  266. package/dist/test/pull-responder-transmitter.test.d.ts +0 -2
  267. package/dist/test/pull-responder-transmitter.test.d.ts.map +0 -1
  268. package/dist/test/pull-responder-transmitter.test.js +0 -220
  269. package/dist/test/pull-responder-transmitter.test.js.map +0 -1
  270. package/dist/test/push-transmitter.test.d.ts +0 -2
  271. package/dist/test/push-transmitter.test.d.ts.map +0 -1
  272. package/dist/test/push-transmitter.test.js +0 -179
  273. package/dist/test/push-transmitter.test.js.map +0 -1
  274. package/dist/test/reactor-adapters.test.d.ts +0 -2
  275. package/dist/test/reactor-adapters.test.d.ts.map +0 -1
  276. package/dist/test/reactor-adapters.test.js +0 -379
  277. package/dist/test/reactor-adapters.test.js.map +0 -1
  278. package/dist/test/reactor-client.test.d.ts +0 -2
  279. package/dist/test/reactor-client.test.d.ts.map +0 -1
  280. package/dist/test/reactor-client.test.js +0 -212
  281. package/dist/test/reactor-client.test.js.map +0 -1
  282. package/dist/test/reactor-resolvers.test.d.ts +0 -2
  283. package/dist/test/reactor-resolvers.test.d.ts.map +0 -1
  284. package/dist/test/reactor-resolvers.test.js +0 -261
  285. package/dist/test/reactor-resolvers.test.js.map +0 -1
  286. package/dist/test/reactor-subgraph-permissions.test.d.ts +0 -2
  287. package/dist/test/reactor-subgraph-permissions.test.d.ts.map +0 -1
  288. package/dist/test/reactor-subgraph-permissions.test.js +0 -400
  289. package/dist/test/reactor-subgraph-permissions.test.js.map +0 -1
  290. package/dist/test/router.test.d.ts +0 -2
  291. package/dist/test/router.test.d.ts.map +0 -1
  292. package/dist/test/router.test.js +0 -38
  293. package/dist/test/router.test.js.map +0 -1
  294. package/dist/test/subscriptions.test.d.ts +0 -2
  295. package/dist/test/subscriptions.test.d.ts.map +0 -1
  296. package/dist/test/subscriptions.test.js +0 -246
  297. package/dist/test/subscriptions.test.js.map +0 -1
  298. package/dist/test/system.test.d.ts +0 -2
  299. package/dist/test/system.test.d.ts.map +0 -1
  300. package/dist/test/system.test.js +0 -211
  301. package/dist/test/system.test.js.map +0 -1
  302. package/dist/test/three-reactor-gql-sync.test.d.ts +0 -2
  303. package/dist/test/three-reactor-gql-sync.test.d.ts.map +0 -1
  304. package/dist/test/three-reactor-gql-sync.test.js +0 -368
  305. package/dist/test/three-reactor-gql-sync.test.js.map +0 -1
  306. package/dist/test/two-reactor-gql-catchup-duplicate.test.d.ts +0 -2
  307. package/dist/test/two-reactor-gql-catchup-duplicate.test.d.ts.map +0 -1
  308. package/dist/test/two-reactor-gql-catchup-duplicate.test.js +0 -264
  309. package/dist/test/two-reactor-gql-catchup-duplicate.test.js.map +0 -1
  310. package/dist/test/two-reactor-gql-sync.test.d.ts +0 -2
  311. package/dist/test/two-reactor-gql-sync.test.d.ts.map +0 -1
  312. package/dist/test/two-reactor-gql-sync.test.js +0 -348
  313. package/dist/test/two-reactor-gql-sync.test.js.map +0 -1
  314. package/dist/test/utils/gql-resolver-bridge.d.ts +0 -12
  315. package/dist/test/utils/gql-resolver-bridge.d.ts.map +0 -1
  316. package/dist/test/utils/gql-resolver-bridge.js +0 -60
  317. package/dist/test/utils/gql-resolver-bridge.js.map +0 -1
  318. package/dist/test/utils.d.ts +0 -10
  319. package/dist/test/utils.d.ts.map +0 -1
  320. package/dist/test/utils.js +0 -23
  321. package/dist/test/utils.js.map +0 -1
  322. package/dist/tsconfig.tsbuildinfo +0 -1
  323. package/dist/vitest.config.d.ts +0 -3
  324. package/dist/vitest.config.d.ts.map +0 -1
  325. package/dist/vitest.config.js +0 -38
  326. package/dist/vitest.config.js.map +0 -1
@@ -1,400 +0,0 @@
1
- import { beforeEach, describe, expect, it, vi } from "vitest";
2
- import { ReactorSubgraph } from "../src/graphql/reactor/subgraph.js";
3
- describe("ReactorSubgraph Permission Checks", () => {
4
- let mockDocumentPermissionService;
5
- let mockReactorClient;
6
- let reactorSubgraph;
7
- // Mock document data with full structure expected by resolvers
8
- const createMockDocument = (id, name) => ({
9
- header: {
10
- id,
11
- slug: id,
12
- name,
13
- documentType: "test/document",
14
- revision: { global: 1 },
15
- createdAtUtcIso: new Date().toISOString(),
16
- lastModifiedAtUtcIso: new Date().toISOString(),
17
- },
18
- state: {
19
- global: { name },
20
- local: {},
21
- },
22
- initialState: {
23
- global: { name },
24
- local: {},
25
- },
26
- operations: {
27
- global: [],
28
- local: [],
29
- },
30
- attachments: {},
31
- clipboard: [],
32
- });
33
- const mockDocument = createMockDocument("doc-123", "Test Document");
34
- const mockParentDocument = createMockDocument("parent-123", "Parent Document");
35
- // Helper to create context with different permission levels
36
- const createContext = (options) => ({
37
- user: options.userAddress ? { address: options.userAddress } : undefined,
38
- isAdmin: () => options.isAdmin ?? false,
39
- isUser: () => options.isUser ?? false,
40
- isGuest: () => options.isGuest ?? false,
41
- });
42
- beforeEach(() => {
43
- vi.clearAllMocks();
44
- // Create mock DocumentPermissionService
45
- mockDocumentPermissionService = {
46
- canReadDocument: vi.fn().mockResolvedValue(false),
47
- canWriteDocument: vi.fn().mockResolvedValue(false),
48
- canRead: vi.fn().mockResolvedValue(false),
49
- canWrite: vi.fn().mockResolvedValue(false),
50
- };
51
- // Create mock ReactorClient
52
- // Note: get() returns { document, childIds }
53
- mockReactorClient = {
54
- get: vi.fn().mockResolvedValue({ document: mockDocument, childIds: [] }),
55
- getChildren: vi.fn().mockResolvedValue({
56
- results: [],
57
- options: { limit: 10, cursor: "" },
58
- }),
59
- getParents: vi.fn().mockResolvedValue({
60
- results: [],
61
- options: { limit: 10, cursor: "" },
62
- }),
63
- find: vi.fn().mockResolvedValue({
64
- results: [mockDocument],
65
- options: { limit: 10, cursor: "" },
66
- }),
67
- create: vi.fn().mockResolvedValue(mockDocument),
68
- createEmpty: vi.fn().mockResolvedValue(mockDocument),
69
- execute: vi.fn().mockResolvedValue(mockDocument),
70
- executeAsync: vi.fn().mockResolvedValue("job-123"),
71
- rename: vi.fn().mockResolvedValue(mockDocument),
72
- addChildren: vi.fn().mockResolvedValue(mockParentDocument),
73
- removeChildren: vi.fn().mockResolvedValue(mockParentDocument),
74
- moveChildren: vi.fn().mockResolvedValue({
75
- source: mockParentDocument,
76
- target: mockParentDocument,
77
- }),
78
- deleteDocument: vi.fn().mockResolvedValue(true),
79
- deleteDocuments: vi.fn().mockResolvedValue(true),
80
- getDocumentModelModules: vi
81
- .fn()
82
- .mockResolvedValue({ results: [], options: {} }),
83
- getJobStatus: vi.fn(),
84
- waitForJob: vi.fn(),
85
- subscribe: vi.fn(),
86
- };
87
- reactorSubgraph = new ReactorSubgraph({
88
- reactorClient: mockReactorClient,
89
- documentPermissionService: mockDocumentPermissionService,
90
- reactor: {},
91
- relationalDb: {},
92
- analyticsStore: {},
93
- graphqlManager: {},
94
- });
95
- });
96
- describe("Query: document", () => {
97
- const callDocument = async (ctx) => {
98
- const query = reactorSubgraph.resolvers.Query?.document;
99
- return query(null, { identifier: "doc-123" }, ctx);
100
- };
101
- describe("Global Role Access", () => {
102
- it("should allow access when user is global admin", async () => {
103
- const ctx = createContext({ isAdmin: true, userAddress: "0xadmin" });
104
- const result = await callDocument(ctx);
105
- expect(result).toBeDefined();
106
- expect(mockDocumentPermissionService.canRead).not.toHaveBeenCalled();
107
- });
108
- it("should allow access when user is global user", async () => {
109
- const ctx = createContext({ isUser: true, userAddress: "0xuser" });
110
- const result = await callDocument(ctx);
111
- expect(result).toBeDefined();
112
- expect(mockDocumentPermissionService.canRead).not.toHaveBeenCalled();
113
- });
114
- it("should allow access when user is global guest", async () => {
115
- const ctx = createContext({ isGuest: true, userAddress: "0xguest" });
116
- const result = await callDocument(ctx);
117
- expect(result).toBeDefined();
118
- expect(mockDocumentPermissionService.canRead).not.toHaveBeenCalled();
119
- });
120
- });
121
- describe("Document Permission Access", () => {
122
- it("should allow access when user has document read permission", async () => {
123
- vi.mocked(mockDocumentPermissionService.canRead).mockResolvedValue(true);
124
- const ctx = createContext({ userAddress: "0xpermitted" });
125
- const result = await callDocument(ctx);
126
- expect(result).toBeDefined();
127
- expect(mockDocumentPermissionService.canRead).toHaveBeenCalled();
128
- });
129
- it("should deny access when user has no permissions", async () => {
130
- vi.mocked(mockDocumentPermissionService.canRead).mockResolvedValue(false);
131
- const ctx = createContext({ userAddress: "0xunpermitted" });
132
- await expect(callDocument(ctx)).rejects.toThrow("Forbidden");
133
- });
134
- });
135
- });
136
- describe("Query: documentChildren", () => {
137
- const callDocumentChildren = async (ctx) => {
138
- const query = reactorSubgraph.resolvers.Query?.documentChildren;
139
- return query(null, { parentIdentifier: "parent-123" }, ctx);
140
- };
141
- it("should allow access when user is global admin", async () => {
142
- const ctx = createContext({ isAdmin: true, userAddress: "0xadmin" });
143
- const result = await callDocumentChildren(ctx);
144
- expect(result).toBeDefined();
145
- });
146
- it("should check permission on parent document", async () => {
147
- vi.mocked(mockDocumentPermissionService.canRead).mockResolvedValue(true);
148
- const ctx = createContext({ userAddress: "0xpermitted" });
149
- await callDocumentChildren(ctx);
150
- expect(mockDocumentPermissionService.canRead).toHaveBeenCalled();
151
- });
152
- it("should deny access when user cannot read parent", async () => {
153
- vi.mocked(mockDocumentPermissionService.canRead).mockResolvedValue(false);
154
- const ctx = createContext({ userAddress: "0xunpermitted" });
155
- await expect(callDocumentChildren(ctx)).rejects.toThrow("Forbidden");
156
- });
157
- });
158
- describe("Query: findDocuments", () => {
159
- const callFindDocuments = async (ctx) => {
160
- const query = reactorSubgraph.resolvers.Query?.findDocuments;
161
- return query(null, { search: { type: "test/document" } }, ctx);
162
- };
163
- it("should return all results for global admin", async () => {
164
- const ctx = createContext({ isAdmin: true, userAddress: "0xadmin" });
165
- const result = await callFindDocuments(ctx);
166
- expect(result.items).toHaveLength(1);
167
- expect(mockDocumentPermissionService.canRead).not.toHaveBeenCalled();
168
- });
169
- it("should filter results based on permissions when no global access", async () => {
170
- // First document: user has permission
171
- // Setup: canRead returns true for first call
172
- vi.mocked(mockDocumentPermissionService.canRead).mockResolvedValue(true);
173
- const ctx = createContext({ userAddress: "0xpermitted" });
174
- const result = await callFindDocuments(ctx);
175
- expect(result.items).toHaveLength(1);
176
- expect(mockDocumentPermissionService.canRead).toHaveBeenCalled();
177
- });
178
- it("should return empty results when user has no permissions", async () => {
179
- vi.mocked(mockDocumentPermissionService.canRead).mockResolvedValue(false);
180
- const ctx = createContext({ userAddress: "0xunpermitted" });
181
- const result = await callFindDocuments(ctx);
182
- expect(result.items).toHaveLength(0);
183
- });
184
- });
185
- describe("Mutation: createDocument", () => {
186
- const callCreateDocument = async (ctx, parentIdentifier) => {
187
- const mutation = reactorSubgraph.resolvers.Mutation
188
- ?.createDocument;
189
- return mutation(null, {
190
- document: { documentType: "test/document", state: {} },
191
- parentIdentifier,
192
- }, ctx);
193
- };
194
- // Helper to verify permission passed (may fail later validation, but NOT due to "Forbidden")
195
- const expectPermissionPassed = async (promise) => {
196
- try {
197
- await promise;
198
- }
199
- catch (error) {
200
- // If we get here, make sure it's NOT a permission error
201
- expect(error.message).not.toContain("Forbidden");
202
- }
203
- };
204
- describe("Without Parent", () => {
205
- it("should allow when user is global admin", async () => {
206
- const ctx = createContext({ isAdmin: true, userAddress: "0xadmin" });
207
- // Permission check passes, may fail later validation
208
- await expectPermissionPassed(callCreateDocument(ctx));
209
- expect(mockDocumentPermissionService.canWrite).not.toHaveBeenCalled();
210
- });
211
- it("should allow when user is global user", async () => {
212
- const ctx = createContext({ isUser: true, userAddress: "0xuser" });
213
- // Permission check passes, may fail later validation
214
- await expectPermissionPassed(callCreateDocument(ctx));
215
- expect(mockDocumentPermissionService.canWrite).not.toHaveBeenCalled();
216
- });
217
- it("should deny when user is only guest", async () => {
218
- const ctx = createContext({ isGuest: true, userAddress: "0xguest" });
219
- await expect(callCreateDocument(ctx)).rejects.toThrow("Forbidden");
220
- });
221
- it("should deny when no global access", async () => {
222
- const ctx = createContext({ userAddress: "0xunpermitted" });
223
- await expect(callCreateDocument(ctx)).rejects.toThrow("Forbidden");
224
- });
225
- });
226
- describe("With Parent", () => {
227
- it("should check write permission on parent", async () => {
228
- vi.mocked(mockDocumentPermissionService.canWrite).mockResolvedValue(true);
229
- const ctx = createContext({ userAddress: "0xpermitted" });
230
- // Permission check passes, may fail later validation
231
- await expectPermissionPassed(callCreateDocument(ctx, "parent-123"));
232
- expect(mockDocumentPermissionService.canWrite).toHaveBeenCalled();
233
- });
234
- it("should deny when user cannot write to parent", async () => {
235
- vi.mocked(mockDocumentPermissionService.canWrite).mockResolvedValue(false);
236
- const ctx = createContext({ userAddress: "0xunpermitted" });
237
- await expect(callCreateDocument(ctx, "parent-123")).rejects.toThrow("Forbidden");
238
- });
239
- });
240
- });
241
- describe("Mutation: mutateDocument", () => {
242
- const callMutateDocument = async (ctx) => {
243
- const mutation = reactorSubgraph.resolvers.Mutation
244
- ?.mutateDocument;
245
- return mutation(null, { documentIdentifier: "doc-123", actions: [] }, ctx);
246
- };
247
- // Helper to verify permission passed (may fail later validation, but NOT due to "Forbidden")
248
- const expectPermissionPassed = async (promise) => {
249
- try {
250
- await promise;
251
- }
252
- catch (error) {
253
- // If we get here, make sure it's NOT a permission error
254
- expect(error.message).not.toContain("Forbidden");
255
- }
256
- };
257
- it("should allow when user is global admin", async () => {
258
- const ctx = createContext({ isAdmin: true, userAddress: "0xadmin" });
259
- // Permission check passes, may fail later validation (document model not found)
260
- await expectPermissionPassed(callMutateDocument(ctx));
261
- expect(mockDocumentPermissionService.canWrite).not.toHaveBeenCalled();
262
- });
263
- it("should allow when user has write permission", async () => {
264
- vi.mocked(mockDocumentPermissionService.canWrite).mockResolvedValue(true);
265
- const ctx = createContext({ userAddress: "0xpermitted" });
266
- // Permission check passes, may fail later validation
267
- await expectPermissionPassed(callMutateDocument(ctx));
268
- expect(mockDocumentPermissionService.canWrite).toHaveBeenCalled();
269
- });
270
- it("should deny when user has no write permission", async () => {
271
- vi.mocked(mockDocumentPermissionService.canWrite).mockResolvedValue(false);
272
- const ctx = createContext({ userAddress: "0xunpermitted" });
273
- await expect(callMutateDocument(ctx)).rejects.toThrow("Forbidden");
274
- });
275
- });
276
- describe("Mutation: deleteDocument", () => {
277
- const callDeleteDocument = async (ctx) => {
278
- const mutation = reactorSubgraph.resolvers.Mutation
279
- ?.deleteDocument;
280
- return mutation(null, { identifier: "doc-123" }, ctx);
281
- };
282
- it("should allow when user is global admin", async () => {
283
- const ctx = createContext({ isAdmin: true, userAddress: "0xadmin" });
284
- const result = await callDeleteDocument(ctx);
285
- expect(result).toBe(true);
286
- });
287
- it("should allow when user has write permission", async () => {
288
- vi.mocked(mockDocumentPermissionService.canWrite).mockResolvedValue(true);
289
- const ctx = createContext({ userAddress: "0xpermitted" });
290
- const result = await callDeleteDocument(ctx);
291
- expect(result).toBe(true);
292
- });
293
- it("should deny when user has no write permission", async () => {
294
- vi.mocked(mockDocumentPermissionService.canWrite).mockResolvedValue(false);
295
- const ctx = createContext({ userAddress: "0xunpermitted" });
296
- await expect(callDeleteDocument(ctx)).rejects.toThrow("Forbidden");
297
- });
298
- });
299
- describe("Mutation: moveChildren", () => {
300
- const callMoveChildren = async (ctx) => {
301
- const mutation = reactorSubgraph.resolvers.Mutation
302
- ?.moveChildren;
303
- return mutation(null, {
304
- sourceParentIdentifier: "parent-123",
305
- targetParentIdentifier: "parent-456",
306
- documentIdentifiers: ["doc-123"],
307
- }, ctx);
308
- };
309
- it("should allow when user is global admin", async () => {
310
- const ctx = createContext({ isAdmin: true, userAddress: "0xadmin" });
311
- const result = await callMoveChildren(ctx);
312
- expect(result).toBeDefined();
313
- });
314
- it("should check write permission on both parents", async () => {
315
- vi.mocked(mockDocumentPermissionService.canWrite).mockResolvedValue(true);
316
- const ctx = createContext({ userAddress: "0xpermitted" });
317
- await callMoveChildren(ctx);
318
- // Should be called twice - once for source, once for target
319
- expect(mockDocumentPermissionService.canWrite).toHaveBeenCalledTimes(2);
320
- });
321
- it("should deny when user cannot write to source parent", async () => {
322
- vi.mocked(mockDocumentPermissionService.canWrite).mockResolvedValueOnce(false);
323
- const ctx = createContext({ userAddress: "0xunpermitted" });
324
- await expect(callMoveChildren(ctx)).rejects.toThrow("Forbidden");
325
- });
326
- it("should deny when user cannot write to target parent", async () => {
327
- vi.mocked(mockDocumentPermissionService.canWrite)
328
- .mockResolvedValueOnce(true) // source parent
329
- .mockResolvedValueOnce(false); // target parent
330
- const ctx = createContext({ userAddress: "0xunpermitted" });
331
- await expect(callMoveChildren(ctx)).rejects.toThrow("Forbidden");
332
- });
333
- });
334
- describe("Permission Inheritance", () => {
335
- it("should allow access to child when user has permission on parent", async () => {
336
- // Setup: canRead checks parent hierarchy and finds permission on parent
337
- vi.mocked(mockDocumentPermissionService.canRead).mockResolvedValue(true);
338
- const ctx = createContext({ userAddress: "0xpermitted" });
339
- const query = reactorSubgraph.resolvers.Query?.document;
340
- const result = await query(null, { identifier: "child-doc" }, ctx);
341
- expect(result).toBeDefined();
342
- // The canRead should be called with getParentIdsFn which handles hierarchy
343
- expect(mockDocumentPermissionService.canRead).toHaveBeenCalled();
344
- });
345
- });
346
- describe("AUTH_ENABLED=false behavior", () => {
347
- it("should allow all access when all global roles return true", async () => {
348
- // When AUTH_ENABLED=false, isAdmin/isUser/isGuest all return true
349
- const ctx = createContext({
350
- isAdmin: true,
351
- isUser: true,
352
- isGuest: true,
353
- userAddress: "0xanyone",
354
- });
355
- // Test document query - permission check passes
356
- const docResult = await reactorSubgraph.resolvers.Query?.document(null, { identifier: "doc-123" }, ctx);
357
- expect(docResult).toBeDefined();
358
- // Test mutation - permission check passes, may fail later validation
359
- // but should NOT throw "Forbidden"
360
- try {
361
- await reactorSubgraph.resolvers.Mutation?.mutateDocument(null, { documentIdentifier: "doc-123", actions: [] }, ctx);
362
- }
363
- catch (error) {
364
- // Ensure it's not a permission error
365
- expect(error.message).not.toContain("Forbidden");
366
- }
367
- // Permission service should never be called (global roles bypass)
368
- expect(mockDocumentPermissionService.canRead).not.toHaveBeenCalled();
369
- expect(mockDocumentPermissionService.canWrite).not.toHaveBeenCalled();
370
- });
371
- });
372
- describe("Edge Cases", () => {
373
- it("should handle document not found gracefully", async () => {
374
- // When get() returns null, the resolver throws an error
375
- vi.mocked(mockReactorClient.get).mockResolvedValue(null);
376
- const ctx = createContext({ isAdmin: true, userAddress: "0xadmin" });
377
- const query = reactorSubgraph.resolvers.Query?.document;
378
- // Should throw an error (not Forbidden, but a processing error)
379
- await expect(query(null, { identifier: "non-existent" }, ctx)).rejects.toThrow();
380
- });
381
- it("should throw error when document is null in result", async () => {
382
- // When get() returns { document: null, childIds: [] }, resolver throws
383
- // because it tries to access document.header
384
- vi.mocked(mockReactorClient.get).mockResolvedValue({
385
- document: null,
386
- childIds: [],
387
- });
388
- const ctx = createContext({ isAdmin: true, userAddress: "0xadmin" });
389
- const query = reactorSubgraph.resolvers.Query?.document;
390
- // The resolver throws when trying to convert null document to GraphQL
391
- await expect(query(null, { identifier: "non-existent" }, ctx)).rejects.toThrow();
392
- });
393
- it("should handle unauthenticated user (no user address)", async () => {
394
- const ctx = createContext({});
395
- const query = reactorSubgraph.resolvers.Query?.document;
396
- await expect(query(null, { identifier: "doc-123" }, ctx)).rejects.toThrow("Forbidden");
397
- });
398
- });
399
- });
400
- //# sourceMappingURL=reactor-subgraph-permissions.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reactor-subgraph-permissions.test.js","sourceRoot":"","sources":["../../test/reactor-subgraph-permissions.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=router.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.test.d.ts","sourceRoot":"","sources":["../../test/router.test.ts"],"names":[],"mappings":""}
@@ -1,38 +0,0 @@
1
- import { documentModelDocumentModelModule } from "document-model";
2
- import { describe, expect, it } from "vitest";
3
- const documentModels = [
4
- documentModelDocumentModelModule,
5
- ];
6
- describe.skip("Reactor Router", () => {
7
- it("should be initialized", () => {
8
- // const app = express();
9
- // const knex = getDbClient();
10
- // const reactor = new ReactorBuilder(documentModels).build();
11
- // const reactorRouter = new GraphQLManager("/", app, reactor, knex);
12
- expect(true).toBe(true);
13
- });
14
- // it("should be able to add a new subgraph", async () => {
15
- // const driveServer = new ReactorBuilder(documentModels).build();
16
- // await driveServer.initialize();
17
- // const newSubgraph = {
18
- // name: "newSubgraph",
19
- // getSchema: (documentDriveServer: IDocumentDriveServer) =>
20
- // buildSubgraphSchema([
21
- // {
22
- // typeDefs: getDocumentModelTypeDefs(
23
- // documentDriveServer,
24
- // `
25
- // type Query {
26
- // hello: String
27
- // }
28
- // `,
29
- // ),
30
- // resolvers: { Query: { hello: () => "world" } },
31
- // },
32
- // ]),
33
- // };
34
- // await addSubgraph(newSubgraph);
35
- // expect(reactorRouter.stack.length).gte(3);
36
- // });
37
- });
38
- //# sourceMappingURL=router.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.test.js","sourceRoot":"","sources":["../../test/router.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,MAAM,cAAc,GAAG;IACrB,gCAAgC;CACG,CAAC;AAEtC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,yBAAyB;QACzB,8BAA8B;QAC9B,8DAA8D;QAC9D,qEAAqE;QACrE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,2DAA2D;IAC3D,oEAAoE;IACpE,oCAAoC;IACpC,0BAA0B;IAC1B,2BAA2B;IAC3B,gEAAgE;IAChE,8BAA8B;IAC9B,YAAY;IACZ,gDAAgD;IAChD,mCAAmC;IACnC,gBAAgB;IAChB,2BAA2B;IAC3B,8BAA8B;IAC9B,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,4DAA4D;IAC5D,aAAa;IACb,YAAY;IACZ,OAAO;IAEP,oCAAoC;IACpC,+CAA+C;IAC/C,MAAM;AACR,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=subscriptions.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscriptions.test.d.ts","sourceRoot":"","sources":["../../test/subscriptions.test.ts"],"names":[],"mappings":""}