@powerhousedao/reactor-api 6.0.0-dev.2 → 6.0.0-dev.200

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 (318) 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 +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-DEEhP99G.mjs +286 -0
  17. package/dist/utils-DEEhP99G.mjs.map +1 -0
  18. package/package.json +71 -65
  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 -46
  61. package/dist/src/graphql/graphql-manager.d.ts.map +0 -1
  62. package/dist/src/graphql/graphql-manager.js +0 -416
  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 -54
  73. package/dist/src/graphql/reactor/adapters.d.ts.map +0 -1
  74. package/dist/src/graphql/reactor/adapters.js +0 -236
  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 -1210
  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 -159
  102. package/dist/src/graphql/reactor/resolvers.d.ts.map +0 -1
  103. package/dist/src/graphql/reactor/resolvers.js +0 -501
  104. package/dist/src/graphql/reactor/resolvers.js.map +0 -1
  105. package/dist/src/graphql/reactor/schema.graphql +0 -429
  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 -534
  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 -14
  159. package/dist/src/packages/import-loader.d.ts.map +0 -1
  160. package/dist/src/packages/import-loader.js +0 -52
  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 -35
  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 -26
  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 -23
  179. package/dist/src/packages/vite-loader.d.ts.map +0 -1
  180. package/dist/src/packages/vite-loader.js +0 -159
  181. package/dist/src/packages/vite-loader.js.map +0 -1
  182. package/dist/src/server.d.ts +0 -70
  183. package/dist/src/server.d.ts.map +0 -1
  184. package/dist/src/server.js +0 -367
  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 -275
  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/index.d.ts +0 -3
  223. package/dist/src/utils/index.d.ts.map +0 -1
  224. package/dist/src/utils/index.js +0 -3
  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/document-permission.service.test.d.ts +0 -2
  235. package/dist/test/document-permission.service.test.d.ts.map +0 -1
  236. package/dist/test/document-permission.service.test.js +0 -480
  237. package/dist/test/document-permission.service.test.js.map +0 -1
  238. package/dist/test/drive-handlers.d.ts +0 -4
  239. package/dist/test/drive-handlers.d.ts.map +0 -1
  240. package/dist/test/drive-handlers.js +0 -39
  241. package/dist/test/drive-handlers.js.map +0 -1
  242. package/dist/test/drive-subgraph-permissions.test.d.ts +0 -2
  243. package/dist/test/drive-subgraph-permissions.test.d.ts.map +0 -1
  244. package/dist/test/drive-subgraph-permissions.test.js +0 -195
  245. package/dist/test/drive-subgraph-permissions.test.js.map +0 -1
  246. package/dist/test/drive.test.d.ts +0 -2
  247. package/dist/test/drive.test.d.ts.map +0 -1
  248. package/dist/test/drive.test.js +0 -142
  249. package/dist/test/drive.test.js.map +0 -1
  250. package/dist/test/identity-integration.test.d.ts +0 -2
  251. package/dist/test/identity-integration.test.d.ts.map +0 -1
  252. package/dist/test/identity-integration.test.js +0 -349
  253. package/dist/test/identity-integration.test.js.map +0 -1
  254. package/dist/test/index.d.ts +0 -3
  255. package/dist/test/index.d.ts.map +0 -1
  256. package/dist/test/index.js +0 -3
  257. package/dist/test/index.js.map +0 -1
  258. package/dist/test/permissions-integration.test.d.ts +0 -2
  259. package/dist/test/permissions-integration.test.d.ts.map +0 -1
  260. package/dist/test/permissions-integration.test.js +0 -421
  261. package/dist/test/permissions-integration.test.js.map +0 -1
  262. package/dist/test/pull-responder-transmitter.test.d.ts +0 -2
  263. package/dist/test/pull-responder-transmitter.test.d.ts.map +0 -1
  264. package/dist/test/pull-responder-transmitter.test.js +0 -220
  265. package/dist/test/pull-responder-transmitter.test.js.map +0 -1
  266. package/dist/test/push-transmitter.test.d.ts +0 -2
  267. package/dist/test/push-transmitter.test.d.ts.map +0 -1
  268. package/dist/test/push-transmitter.test.js +0 -179
  269. package/dist/test/push-transmitter.test.js.map +0 -1
  270. package/dist/test/reactor-adapters.test.d.ts +0 -2
  271. package/dist/test/reactor-adapters.test.d.ts.map +0 -1
  272. package/dist/test/reactor-adapters.test.js +0 -379
  273. package/dist/test/reactor-adapters.test.js.map +0 -1
  274. package/dist/test/reactor-client.test.d.ts +0 -2
  275. package/dist/test/reactor-client.test.d.ts.map +0 -1
  276. package/dist/test/reactor-client.test.js +0 -212
  277. package/dist/test/reactor-client.test.js.map +0 -1
  278. package/dist/test/reactor-resolvers.test.d.ts +0 -2
  279. package/dist/test/reactor-resolvers.test.d.ts.map +0 -1
  280. package/dist/test/reactor-resolvers.test.js +0 -261
  281. package/dist/test/reactor-resolvers.test.js.map +0 -1
  282. package/dist/test/reactor-subgraph-permissions.test.d.ts +0 -2
  283. package/dist/test/reactor-subgraph-permissions.test.d.ts.map +0 -1
  284. package/dist/test/reactor-subgraph-permissions.test.js +0 -400
  285. package/dist/test/reactor-subgraph-permissions.test.js.map +0 -1
  286. package/dist/test/router.test.d.ts +0 -2
  287. package/dist/test/router.test.d.ts.map +0 -1
  288. package/dist/test/router.test.js +0 -38
  289. package/dist/test/router.test.js.map +0 -1
  290. package/dist/test/subscriptions.test.d.ts +0 -2
  291. package/dist/test/subscriptions.test.d.ts.map +0 -1
  292. package/dist/test/subscriptions.test.js +0 -246
  293. package/dist/test/subscriptions.test.js.map +0 -1
  294. package/dist/test/system.test.d.ts +0 -2
  295. package/dist/test/system.test.d.ts.map +0 -1
  296. package/dist/test/system.test.js +0 -211
  297. package/dist/test/system.test.js.map +0 -1
  298. package/dist/test/three-reactor-gql-sync.test.d.ts +0 -2
  299. package/dist/test/three-reactor-gql-sync.test.d.ts.map +0 -1
  300. package/dist/test/three-reactor-gql-sync.test.js +0 -368
  301. package/dist/test/three-reactor-gql-sync.test.js.map +0 -1
  302. package/dist/test/two-reactor-gql-sync.test.d.ts +0 -2
  303. package/dist/test/two-reactor-gql-sync.test.d.ts.map +0 -1
  304. package/dist/test/two-reactor-gql-sync.test.js +0 -348
  305. package/dist/test/two-reactor-gql-sync.test.js.map +0 -1
  306. package/dist/test/utils/gql-resolver-bridge.d.ts +0 -12
  307. package/dist/test/utils/gql-resolver-bridge.d.ts.map +0 -1
  308. package/dist/test/utils/gql-resolver-bridge.js +0 -60
  309. package/dist/test/utils/gql-resolver-bridge.js.map +0 -1
  310. package/dist/test/utils.d.ts +0 -10
  311. package/dist/test/utils.d.ts.map +0 -1
  312. package/dist/test/utils.js +0 -23
  313. package/dist/test/utils.js.map +0 -1
  314. package/dist/tsconfig.tsbuildinfo +0 -1
  315. package/dist/vitest.config.d.ts +0 -3
  316. package/dist/vitest.config.d.ts.map +0 -1
  317. package/dist/vitest.config.js +0 -38
  318. 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":""}