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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/README.md +6 -0
  2. package/dist/index.d.mts +2943 -0
  3. package/dist/index.d.mts.map +1 -0
  4. package/dist/index.mjs +6375 -0
  5. package/dist/index.mjs.map +1 -0
  6. package/dist/src/packages/https-hooks.d.mts +23 -7
  7. package/dist/src/packages/https-hooks.d.mts.map +1 -1
  8. package/dist/src/packages/https-hooks.mjs +73 -53
  9. package/dist/src/packages/https-hooks.mjs.map +1 -1
  10. package/dist/src/packages/vite-loader.d.mts +29 -0
  11. package/dist/src/packages/vite-loader.d.mts.map +1 -0
  12. package/dist/src/packages/vite-loader.mjs +142 -0
  13. package/dist/src/packages/vite-loader.mjs.map +1 -0
  14. package/dist/types-Do4QTfT3.d.mts +37 -0
  15. package/dist/types-Do4QTfT3.d.mts.map +1 -0
  16. package/dist/utils-DEEhP99G.mjs +286 -0
  17. package/dist/utils-DEEhP99G.mjs.map +1 -0
  18. package/package.json +45 -32
  19. package/dist/codegen.d.ts +0 -4
  20. package/dist/codegen.d.ts.map +0 -1
  21. package/dist/codegen.js +0 -38
  22. package/dist/codegen.js.map +0 -1
  23. package/dist/index.d.ts +0 -16
  24. package/dist/index.d.ts.map +0 -1
  25. package/dist/index.js +0 -16
  26. package/dist/index.js.map +0 -1
  27. package/dist/src/config.d.ts +0 -6
  28. package/dist/src/config.d.ts.map +0 -1
  29. package/dist/src/config.js +0 -6
  30. package/dist/src/config.js.map +0 -1
  31. package/dist/src/dev.d.ts +0 -2
  32. package/dist/src/dev.d.ts.map +0 -1
  33. package/dist/src/dev.js +0 -51
  34. package/dist/src/dev.js.map +0 -1
  35. package/dist/src/graphql/analytics-subgraph.d.ts +0 -14
  36. package/dist/src/graphql/analytics-subgraph.d.ts.map +0 -1
  37. package/dist/src/graphql/analytics-subgraph.js +0 -26
  38. package/dist/src/graphql/analytics-subgraph.js.map +0 -1
  39. package/dist/src/graphql/auth/index.d.ts +0 -2
  40. package/dist/src/graphql/auth/index.d.ts.map +0 -1
  41. package/dist/src/graphql/auth/index.js +0 -2
  42. package/dist/src/graphql/auth/index.js.map +0 -1
  43. package/dist/src/graphql/auth/resolvers.d.ts +0 -166
  44. package/dist/src/graphql/auth/resolvers.d.ts.map +0 -1
  45. package/dist/src/graphql/auth/resolvers.js +0 -227
  46. package/dist/src/graphql/auth/resolvers.js.map +0 -1
  47. package/dist/src/graphql/auth/schema.graphql +0 -195
  48. package/dist/src/graphql/auth/subgraph.d.ts +0 -202
  49. package/dist/src/graphql/auth/subgraph.d.ts.map +0 -1
  50. package/dist/src/graphql/auth/subgraph.js +0 -384
  51. package/dist/src/graphql/auth/subgraph.js.map +0 -1
  52. package/dist/src/graphql/base-subgraph.d.ts +0 -28
  53. package/dist/src/graphql/base-subgraph.d.ts.map +0 -1
  54. package/dist/src/graphql/base-subgraph.js +0 -126
  55. package/dist/src/graphql/base-subgraph.js.map +0 -1
  56. package/dist/src/graphql/document-model-subgraph.d.ts +0 -105
  57. package/dist/src/graphql/document-model-subgraph.d.ts.map +0 -1
  58. package/dist/src/graphql/document-model-subgraph.js +0 -312
  59. package/dist/src/graphql/document-model-subgraph.js.map +0 -1
  60. package/dist/src/graphql/graphql-manager.d.ts +0 -68
  61. package/dist/src/graphql/graphql-manager.d.ts.map +0 -1
  62. package/dist/src/graphql/graphql-manager.js +0 -589
  63. package/dist/src/graphql/graphql-manager.js.map +0 -1
  64. package/dist/src/graphql/index.d.ts +0 -10
  65. package/dist/src/graphql/index.d.ts.map +0 -1
  66. package/dist/src/graphql/index.js +0 -10
  67. package/dist/src/graphql/index.js.map +0 -1
  68. package/dist/src/graphql/packages/index.d.ts +0 -2
  69. package/dist/src/graphql/packages/index.d.ts.map +0 -1
  70. package/dist/src/graphql/packages/index.js +0 -2
  71. package/dist/src/graphql/packages/index.js.map +0 -1
  72. package/dist/src/graphql/packages/resolvers.d.ts +0 -31
  73. package/dist/src/graphql/packages/resolvers.d.ts.map +0 -1
  74. package/dist/src/graphql/packages/resolvers.js +0 -37
  75. package/dist/src/graphql/packages/resolvers.js.map +0 -1
  76. package/dist/src/graphql/packages/schema.graphql +0 -50
  77. package/dist/src/graphql/packages/subgraph.d.ts +0 -55
  78. package/dist/src/graphql/packages/subgraph.d.ts.map +0 -1
  79. package/dist/src/graphql/packages/subgraph.js +0 -73
  80. package/dist/src/graphql/packages/subgraph.js.map +0 -1
  81. package/dist/src/graphql/playground.d.ts +0 -2
  82. package/dist/src/graphql/playground.d.ts.map +0 -1
  83. package/dist/src/graphql/playground.js +0 -81
  84. package/dist/src/graphql/playground.js.map +0 -1
  85. package/dist/src/graphql/reactor/adapters.d.ts +0 -62
  86. package/dist/src/graphql/reactor/adapters.d.ts.map +0 -1
  87. package/dist/src/graphql/reactor/adapters.js +0 -271
  88. package/dist/src/graphql/reactor/adapters.js.map +0 -1
  89. package/dist/src/graphql/reactor/factory.d.ts +0 -105
  90. package/dist/src/graphql/reactor/factory.d.ts.map +0 -1
  91. package/dist/src/graphql/reactor/factory.js +0 -7
  92. package/dist/src/graphql/reactor/factory.js.map +0 -1
  93. package/dist/src/graphql/reactor/gen/graphql.d.ts +0 -1489
  94. package/dist/src/graphql/reactor/gen/graphql.d.ts.map +0 -1
  95. package/dist/src/graphql/reactor/gen/graphql.js +0 -731
  96. package/dist/src/graphql/reactor/gen/graphql.js.map +0 -1
  97. package/dist/src/graphql/reactor/index.d.ts +0 -4
  98. package/dist/src/graphql/reactor/index.d.ts.map +0 -1
  99. package/dist/src/graphql/reactor/index.js +0 -4
  100. package/dist/src/graphql/reactor/index.js.map +0 -1
  101. package/dist/src/graphql/reactor/operations.graphql +0 -443
  102. package/dist/src/graphql/reactor/pubsub.d.ts +0 -27
  103. package/dist/src/graphql/reactor/pubsub.d.ts.map +0 -1
  104. package/dist/src/graphql/reactor/pubsub.js +0 -93
  105. package/dist/src/graphql/reactor/pubsub.js.map +0 -1
  106. package/dist/src/graphql/reactor/requester.d.ts +0 -4
  107. package/dist/src/graphql/reactor/requester.d.ts.map +0 -1
  108. package/dist/src/graphql/reactor/requester.js +0 -22
  109. package/dist/src/graphql/reactor/requester.js.map +0 -1
  110. package/dist/src/graphql/reactor/requester.with-zod.d.ts +0 -4
  111. package/dist/src/graphql/reactor/requester.with-zod.d.ts.map +0 -1
  112. package/dist/src/graphql/reactor/requester.with-zod.js +0 -129
  113. package/dist/src/graphql/reactor/requester.with-zod.js.map +0 -1
  114. package/dist/src/graphql/reactor/resolvers.d.ts +0 -223
  115. package/dist/src/graphql/reactor/resolvers.d.ts.map +0 -1
  116. package/dist/src/graphql/reactor/resolvers.js +0 -682
  117. package/dist/src/graphql/reactor/resolvers.js.map +0 -1
  118. package/dist/src/graphql/reactor/schema.graphql +0 -475
  119. package/dist/src/graphql/reactor/subgraph.d.ts +0 -18
  120. package/dist/src/graphql/reactor/subgraph.d.ts.map +0 -1
  121. package/dist/src/graphql/reactor/subgraph.js +0 -457
  122. package/dist/src/graphql/reactor/subgraph.js.map +0 -1
  123. package/dist/src/graphql/reactor/validation.d.ts +0 -348
  124. package/dist/src/graphql/reactor/validation.d.ts.map +0 -1
  125. package/dist/src/graphql/reactor/validation.js +0 -167
  126. package/dist/src/graphql/reactor/validation.js.map +0 -1
  127. package/dist/src/graphql/sse.d.ts +0 -42
  128. package/dist/src/graphql/sse.d.ts.map +0 -1
  129. package/dist/src/graphql/sse.js +0 -33
  130. package/dist/src/graphql/sse.js.map +0 -1
  131. package/dist/src/graphql/system/env/getters.d.ts +0 -2
  132. package/dist/src/graphql/system/env/getters.d.ts.map +0 -1
  133. package/dist/src/graphql/system/env/getters.js +0 -4
  134. package/dist/src/graphql/system/env/getters.js.map +0 -1
  135. package/dist/src/graphql/system/env/index.d.ts +0 -2
  136. package/dist/src/graphql/system/env/index.d.ts.map +0 -1
  137. package/dist/src/graphql/system/env/index.js +0 -5
  138. package/dist/src/graphql/system/env/index.js.map +0 -1
  139. package/dist/src/graphql/system/index.d.ts +0 -2
  140. package/dist/src/graphql/system/index.d.ts.map +0 -1
  141. package/dist/src/graphql/system/index.js +0 -2
  142. package/dist/src/graphql/system/index.js.map +0 -1
  143. package/dist/src/graphql/system/types.d.ts +0 -2
  144. package/dist/src/graphql/system/types.d.ts.map +0 -1
  145. package/dist/src/graphql/system/types.js +0 -2
  146. package/dist/src/graphql/system/types.js.map +0 -1
  147. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts +0 -57
  148. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts.map +0 -1
  149. package/dist/src/graphql/temp-hack-rwa-type-defs.js +0 -2
  150. package/dist/src/graphql/temp-hack-rwa-type-defs.js.map +0 -1
  151. package/dist/src/graphql/types.d.ts +0 -102
  152. package/dist/src/graphql/types.d.ts.map +0 -1
  153. package/dist/src/graphql/types.js +0 -2
  154. package/dist/src/graphql/types.js.map +0 -1
  155. package/dist/src/graphql/utils.d.ts +0 -9
  156. package/dist/src/graphql/utils.d.ts.map +0 -1
  157. package/dist/src/graphql/utils.js +0 -72
  158. package/dist/src/graphql/utils.js.map +0 -1
  159. package/dist/src/graphql/websocket.d.ts +0 -3
  160. package/dist/src/graphql/websocket.d.ts.map +0 -1
  161. package/dist/src/graphql/websocket.js +0 -15
  162. package/dist/src/graphql/websocket.js.map +0 -1
  163. package/dist/src/migrations/001_create_document_permissions.d.ts +0 -4
  164. package/dist/src/migrations/001_create_document_permissions.d.ts.map +0 -1
  165. package/dist/src/migrations/001_create_document_permissions.js +0 -91
  166. package/dist/src/migrations/001_create_document_permissions.js.map +0 -1
  167. package/dist/src/migrations/002_add_document_protection.d.ts +0 -4
  168. package/dist/src/migrations/002_add_document_protection.d.ts.map +0 -1
  169. package/dist/src/migrations/002_add_document_protection.js +0 -18
  170. package/dist/src/migrations/002_add_document_protection.js.map +0 -1
  171. package/dist/src/migrations/index.d.ts +0 -10
  172. package/dist/src/migrations/index.d.ts.map +0 -1
  173. package/dist/src/migrations/index.js +0 -58
  174. package/dist/src/migrations/index.js.map +0 -1
  175. package/dist/src/packages/http-loader.d.ts +0 -68
  176. package/dist/src/packages/http-loader.d.ts.map +0 -1
  177. package/dist/src/packages/http-loader.js +0 -176
  178. package/dist/src/packages/http-loader.js.map +0 -1
  179. package/dist/src/packages/import-loader.d.ts +0 -14
  180. package/dist/src/packages/import-loader.d.ts.map +0 -1
  181. package/dist/src/packages/import-loader.js +0 -46
  182. package/dist/src/packages/import-loader.js.map +0 -1
  183. package/dist/src/packages/import-resolver.d.ts +0 -5
  184. package/dist/src/packages/import-resolver.d.ts.map +0 -1
  185. package/dist/src/packages/import-resolver.js +0 -127
  186. package/dist/src/packages/import-resolver.js.map +0 -1
  187. package/dist/src/packages/package-manager.d.ts +0 -34
  188. package/dist/src/packages/package-manager.d.ts.map +0 -1
  189. package/dist/src/packages/package-manager.js +0 -213
  190. package/dist/src/packages/package-manager.js.map +0 -1
  191. package/dist/src/packages/types.d.ts +0 -38
  192. package/dist/src/packages/types.d.ts.map +0 -1
  193. package/dist/src/packages/types.js +0 -2
  194. package/dist/src/packages/types.js.map +0 -1
  195. package/dist/src/packages/util.d.ts +0 -27
  196. package/dist/src/packages/util.d.ts.map +0 -1
  197. package/dist/src/packages/util.js +0 -97
  198. package/dist/src/packages/util.js.map +0 -1
  199. package/dist/src/packages/vite-loader.d.ts +0 -24
  200. package/dist/src/packages/vite-loader.d.ts.map +0 -1
  201. package/dist/src/packages/vite-loader.js +0 -169
  202. package/dist/src/packages/vite-loader.js.map +0 -1
  203. package/dist/src/server.d.ts +0 -56
  204. package/dist/src/server.d.ts.map +0 -1
  205. package/dist/src/server.js +0 -365
  206. package/dist/src/server.js.map +0 -1
  207. package/dist/src/services/auth.service.d.ts +0 -56
  208. package/dist/src/services/auth.service.d.ts.map +0 -1
  209. package/dist/src/services/auth.service.js +0 -172
  210. package/dist/src/services/auth.service.js.map +0 -1
  211. package/dist/src/services/authorization.service.d.ts +0 -70
  212. package/dist/src/services/authorization.service.d.ts.map +0 -1
  213. package/dist/src/services/authorization.service.js +0 -155
  214. package/dist/src/services/authorization.service.js.map +0 -1
  215. package/dist/src/services/document-permission.service.d.ts +0 -241
  216. package/dist/src/services/document-permission.service.d.ts.map +0 -1
  217. package/dist/src/services/document-permission.service.js +0 -791
  218. package/dist/src/services/document-permission.service.js.map +0 -1
  219. package/dist/src/services/package-management.service.d.ts +0 -32
  220. package/dist/src/services/package-management.service.d.ts.map +0 -1
  221. package/dist/src/services/package-management.service.js +0 -95
  222. package/dist/src/services/package-management.service.js.map +0 -1
  223. package/dist/src/services/package-storage.d.ts +0 -23
  224. package/dist/src/services/package-storage.d.ts.map +0 -1
  225. package/dist/src/services/package-storage.js +0 -19
  226. package/dist/src/services/package-storage.js.map +0 -1
  227. package/dist/src/tracing.d.ts +0 -4
  228. package/dist/src/tracing.d.ts.map +0 -1
  229. package/dist/src/tracing.js +0 -140
  230. package/dist/src/tracing.js.map +0 -1
  231. package/dist/src/types.d.ts +0 -17
  232. package/dist/src/types.d.ts.map +0 -1
  233. package/dist/src/types.js +0 -2
  234. package/dist/src/types.js.map +0 -1
  235. package/dist/src/utils/auth.d.ts +0 -3
  236. package/dist/src/utils/auth.d.ts.map +0 -1
  237. package/dist/src/utils/auth.js +0 -12
  238. package/dist/src/utils/auth.js.map +0 -1
  239. package/dist/src/utils/create-schema.d.ts +0 -36
  240. package/dist/src/utils/create-schema.d.ts.map +0 -1
  241. package/dist/src/utils/create-schema.js +0 -725
  242. package/dist/src/utils/create-schema.js.map +0 -1
  243. package/dist/src/utils/db.d.ts +0 -82
  244. package/dist/src/utils/db.d.ts.map +0 -1
  245. package/dist/src/utils/db.js +0 -101
  246. package/dist/src/utils/db.js.map +0 -1
  247. package/dist/src/utils/drive-url.d.ts +0 -2
  248. package/dist/src/utils/drive-url.d.ts.map +0 -1
  249. package/dist/src/utils/drive-url.js +0 -3
  250. package/dist/src/utils/drive-url.js.map +0 -1
  251. package/dist/src/utils/index.d.ts +0 -4
  252. package/dist/src/utils/index.d.ts.map +0 -1
  253. package/dist/src/utils/index.js +0 -4
  254. package/dist/src/utils/index.js.map +0 -1
  255. package/dist/test/authorization.service.test.d.ts +0 -2
  256. package/dist/test/authorization.service.test.d.ts.map +0 -1
  257. package/dist/test/authorization.service.test.js +0 -252
  258. package/dist/test/authorization.service.test.js.map +0 -1
  259. package/dist/test/benchmarks/load.bench.d.ts +0 -2
  260. package/dist/test/benchmarks/load.bench.d.ts.map +0 -1
  261. package/dist/test/benchmarks/load.bench.js +0 -73
  262. package/dist/test/benchmarks/load.bench.js.map +0 -1
  263. package/dist/test/benchmarks/sync.bench.d.ts +0 -2
  264. package/dist/test/benchmarks/sync.bench.d.ts.map +0 -1
  265. package/dist/test/benchmarks/sync.bench.js +0 -119
  266. package/dist/test/benchmarks/sync.bench.js.map +0 -1
  267. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts +0 -2
  268. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts.map +0 -1
  269. package/dist/test/connect-switchboard-reshuffle-convergence.test.js +0 -203
  270. package/dist/test/connect-switchboard-reshuffle-convergence.test.js.map +0 -1
  271. package/dist/test/connect-switchboard-sync.test.d.ts +0 -2
  272. package/dist/test/connect-switchboard-sync.test.d.ts.map +0 -1
  273. package/dist/test/connect-switchboard-sync.test.js +0 -632
  274. package/dist/test/connect-switchboard-sync.test.js.map +0 -1
  275. package/dist/test/document-drive-subgraph.test.d.ts +0 -2
  276. package/dist/test/document-drive-subgraph.test.d.ts.map +0 -1
  277. package/dist/test/document-drive-subgraph.test.js +0 -249
  278. package/dist/test/document-drive-subgraph.test.js.map +0 -1
  279. package/dist/test/document-model-subgraph-permissions.test.d.ts +0 -2
  280. package/dist/test/document-model-subgraph-permissions.test.d.ts.map +0 -1
  281. package/dist/test/document-model-subgraph-permissions.test.js +0 -587
  282. package/dist/test/document-model-subgraph-permissions.test.js.map +0 -1
  283. package/dist/test/document-permission.service.test.d.ts +0 -2
  284. package/dist/test/document-permission.service.test.d.ts.map +0 -1
  285. package/dist/test/document-permission.service.test.js +0 -480
  286. package/dist/test/document-permission.service.test.js.map +0 -1
  287. package/dist/test/drive-info-endpoint.test.d.ts +0 -2
  288. package/dist/test/drive-info-endpoint.test.d.ts.map +0 -1
  289. package/dist/test/drive-info-endpoint.test.js +0 -123
  290. package/dist/test/drive-info-endpoint.test.js.map +0 -1
  291. package/dist/test/fault-injection-sync.test.d.ts +0 -2
  292. package/dist/test/fault-injection-sync.test.d.ts.map +0 -1
  293. package/dist/test/fault-injection-sync.test.js +0 -196
  294. package/dist/test/fault-injection-sync.test.js.map +0 -1
  295. package/dist/test/identity-integration.test.d.ts +0 -2
  296. package/dist/test/identity-integration.test.d.ts.map +0 -1
  297. package/dist/test/identity-integration.test.js +0 -349
  298. package/dist/test/identity-integration.test.js.map +0 -1
  299. package/dist/test/index.d.ts +0 -2
  300. package/dist/test/index.d.ts.map +0 -1
  301. package/dist/test/index.js +0 -2
  302. package/dist/test/index.js.map +0 -1
  303. package/dist/test/permissions-integration.test.d.ts +0 -2
  304. package/dist/test/permissions-integration.test.d.ts.map +0 -1
  305. package/dist/test/permissions-integration.test.js +0 -407
  306. package/dist/test/permissions-integration.test.js.map +0 -1
  307. package/dist/test/push-backfill.test.d.ts +0 -2
  308. package/dist/test/push-backfill.test.d.ts.map +0 -1
  309. package/dist/test/push-backfill.test.js +0 -298
  310. package/dist/test/push-backfill.test.js.map +0 -1
  311. package/dist/test/reactor-adapters.test.d.ts +0 -2
  312. package/dist/test/reactor-adapters.test.d.ts.map +0 -1
  313. package/dist/test/reactor-adapters.test.js +0 -379
  314. package/dist/test/reactor-adapters.test.js.map +0 -1
  315. package/dist/test/reactor-client.test.d.ts +0 -2
  316. package/dist/test/reactor-client.test.d.ts.map +0 -1
  317. package/dist/test/reactor-client.test.js +0 -371
  318. package/dist/test/reactor-client.test.js.map +0 -1
  319. package/dist/test/reactor-resolvers.test.d.ts +0 -2
  320. package/dist/test/reactor-resolvers.test.d.ts.map +0 -1
  321. package/dist/test/reactor-resolvers.test.js +0 -258
  322. package/dist/test/reactor-resolvers.test.js.map +0 -1
  323. package/dist/test/reactor-subgraph-permissions.test.d.ts +0 -2
  324. package/dist/test/reactor-subgraph-permissions.test.d.ts.map +0 -1
  325. package/dist/test/reactor-subgraph-permissions.test.js +0 -371
  326. package/dist/test/reactor-subgraph-permissions.test.js.map +0 -1
  327. package/dist/test/router.test.d.ts +0 -2
  328. package/dist/test/router.test.d.ts.map +0 -1
  329. package/dist/test/router.test.js +0 -38
  330. package/dist/test/router.test.js.map +0 -1
  331. package/dist/test/subscriptions-sse.test.d.ts +0 -2
  332. package/dist/test/subscriptions-sse.test.d.ts.map +0 -1
  333. package/dist/test/subscriptions-sse.test.js +0 -264
  334. package/dist/test/subscriptions-sse.test.js.map +0 -1
  335. package/dist/test/subscriptions.test.d.ts +0 -2
  336. package/dist/test/subscriptions.test.d.ts.map +0 -1
  337. package/dist/test/subscriptions.test.js +0 -248
  338. package/dist/test/subscriptions.test.js.map +0 -1
  339. package/dist/test/utils/gql-resolver-bridge.d.ts +0 -15
  340. package/dist/test/utils/gql-resolver-bridge.d.ts.map +0 -1
  341. package/dist/test/utils/gql-resolver-bridge.js +0 -89
  342. package/dist/test/utils/gql-resolver-bridge.js.map +0 -1
  343. package/dist/test/utils.d.ts +0 -10
  344. package/dist/test/utils.d.ts.map +0 -1
  345. package/dist/test/utils.js +0 -23
  346. package/dist/test/utils.js.map +0 -1
  347. package/dist/tsconfig.tsbuildinfo +0 -1
  348. package/dist/vitest.config.d.ts +0 -3
  349. package/dist/vitest.config.d.ts.map +0 -1
  350. package/dist/vitest.config.js +0 -38
  351. package/dist/vitest.config.js.map +0 -1
@@ -1,407 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
2
- import { ReactorSubgraph } from "../src/graphql/reactor/subgraph.js";
3
- import { runMigrations } from "../src/migrations/index.js";
4
- import { DocumentPermissionService } from "../src/services/document-permission.service.js";
5
- import { getDbClient } from "../src/utils/db.js";
6
- /**
7
- * Integration tests for document permissions with the ReactorSubgraph.
8
- * These tests use a real DocumentPermissionService with an in-memory database.
9
- */
10
- describe("Permissions Integration Tests", () => {
11
- let documentPermissionService;
12
- let mockReactorClient;
13
- let reactorSubgraph;
14
- let db;
15
- // Mock document data
16
- const createMockDocument = (id, name) => ({
17
- header: {
18
- id,
19
- slug: id,
20
- name,
21
- documentType: "powerhouse/document-drive",
22
- revision: { global: 1 },
23
- createdAtUtcIso: new Date().toISOString(),
24
- lastModifiedAtUtcIso: new Date().toISOString(),
25
- },
26
- state: {
27
- global: { name },
28
- local: {},
29
- },
30
- initialState: {
31
- global: { name },
32
- local: {},
33
- },
34
- operations: {
35
- global: [],
36
- local: [],
37
- },
38
- attachments: {},
39
- clipboard: [],
40
- });
41
- const mockDocument = createMockDocument("doc-123", "Test Document");
42
- const mockChildDocument = createMockDocument("child-doc", "Child Document");
43
- const mockParentDocument = createMockDocument("parent-doc", "Parent Document");
44
- // Context factory
45
- const createContext = (options) => ({
46
- user: options.userAddress ? { address: options.userAddress } : undefined,
47
- isAdmin: () => options.isAdmin ?? false,
48
- });
49
- beforeEach(async () => {
50
- vi.clearAllMocks();
51
- // Create real in-memory database and permission service
52
- const { db: dbClient } = getDbClient();
53
- db = dbClient;
54
- await runMigrations(db);
55
- documentPermissionService = new DocumentPermissionService(db);
56
- // Create mock ReactorClient with parent hierarchy
57
- mockReactorClient = {
58
- get: vi.fn().mockImplementation(async (id) => {
59
- if (id === "doc-123")
60
- return mockDocument;
61
- if (id === "child-doc")
62
- return mockChildDocument;
63
- if (id === "parent-doc")
64
- return mockParentDocument;
65
- return null;
66
- }),
67
- getChildren: vi.fn().mockResolvedValue({
68
- results: [],
69
- options: { limit: 10, cursor: "" },
70
- }),
71
- getParents: vi.fn().mockImplementation(async (id) => {
72
- // child-doc has parent-doc as parent
73
- if (id === "child-doc") {
74
- return {
75
- results: [mockParentDocument],
76
- options: { limit: 10, cursor: "" },
77
- };
78
- }
79
- return {
80
- results: [],
81
- options: { limit: 10, cursor: "" },
82
- };
83
- }),
84
- find: vi.fn().mockResolvedValue({
85
- results: [mockDocument],
86
- options: { limit: 10, cursor: "" },
87
- }),
88
- create: vi.fn().mockResolvedValue(mockDocument),
89
- createEmpty: vi.fn().mockResolvedValue(mockDocument),
90
- execute: vi.fn().mockResolvedValue(mockDocument),
91
- executeAsync: vi.fn().mockResolvedValue("job-123"),
92
- rename: vi.fn().mockResolvedValue(mockDocument),
93
- addChildren: vi.fn().mockResolvedValue(mockParentDocument),
94
- removeChildren: vi.fn().mockResolvedValue(mockParentDocument),
95
- moveChildren: vi.fn().mockResolvedValue({
96
- source: mockParentDocument,
97
- target: mockParentDocument,
98
- }),
99
- deleteDocument: vi.fn().mockResolvedValue(true),
100
- deleteDocuments: vi.fn().mockResolvedValue(true),
101
- getDocumentModelModules: vi
102
- .fn()
103
- .mockResolvedValue({ results: [], options: {} }),
104
- getJobStatus: vi.fn(),
105
- waitForJob: vi.fn(),
106
- subscribe: vi.fn(),
107
- };
108
- reactorSubgraph = new ReactorSubgraph({
109
- reactorClient: mockReactorClient,
110
- documentPermissionService,
111
- relationalDb: {},
112
- analyticsStore: {},
113
- graphqlManager: {},
114
- syncManager: {},
115
- });
116
- });
117
- afterEach(async () => {
118
- await db.destroy();
119
- });
120
- describe("Document Query with Real Permission Service", () => {
121
- const callDocument = async (ctx, identifier) => {
122
- const query = reactorSubgraph.resolvers.Query?.document;
123
- return query(null, { identifier }, ctx);
124
- };
125
- it("should deny access when user has no permission", async () => {
126
- const ctx = createContext({ userAddress: "0xunpermitted" });
127
- await expect(callDocument(ctx, "doc-123")).rejects.toThrow("Forbidden");
128
- });
129
- it("should allow access when user has READ permission", async () => {
130
- await documentPermissionService.grantPermission("doc-123", "0xuser", "READ", "0xadmin");
131
- const ctx = createContext({ userAddress: "0xuser" });
132
- const result = await callDocument(ctx, "doc-123");
133
- expect(result).toBeDefined();
134
- expect(result.document.id).toBe("doc-123");
135
- });
136
- it("should allow access when user has WRITE permission", async () => {
137
- await documentPermissionService.grantPermission("doc-123", "0xuser", "WRITE", "0xadmin");
138
- const ctx = createContext({ userAddress: "0xuser" });
139
- const result = await callDocument(ctx, "doc-123");
140
- expect(result).toBeDefined();
141
- });
142
- it("should allow access when user has ADMIN permission", async () => {
143
- await documentPermissionService.grantPermission("doc-123", "0xuser", "ADMIN", "0xadmin");
144
- const ctx = createContext({ userAddress: "0xuser" });
145
- const result = await callDocument(ctx, "doc-123");
146
- expect(result).toBeDefined();
147
- });
148
- it("should allow access via group permission", async () => {
149
- const group = await documentPermissionService.createGroup("Readers");
150
- await documentPermissionService.addUserToGroup("0xuser", group.id);
151
- await documentPermissionService.grantGroupPermission("doc-123", group.id, "READ", "0xadmin");
152
- const ctx = createContext({ userAddress: "0xuser" });
153
- const result = await callDocument(ctx, "doc-123");
154
- expect(result).toBeDefined();
155
- });
156
- it("should be case-insensitive for user addresses", async () => {
157
- await documentPermissionService.grantPermission("doc-123", "0xABCDEF", "READ", "0xadmin");
158
- const ctx = createContext({ userAddress: "0xabcdef" });
159
- const result = await callDocument(ctx, "doc-123");
160
- expect(result).toBeDefined();
161
- });
162
- });
163
- describe("Permission Inheritance via Parent Hierarchy", () => {
164
- const callDocument = async (ctx, identifier) => {
165
- const query = reactorSubgraph.resolvers.Query?.document;
166
- return query(null, { identifier }, ctx);
167
- };
168
- it("should allow access to child when user has permission on parent", async () => {
169
- // Grant permission on parent document
170
- await documentPermissionService.grantPermission("parent-doc", "0xuser", "READ", "0xadmin");
171
- const ctx = createContext({ userAddress: "0xuser" });
172
- // Should be able to access child document via inheritance
173
- const result = await callDocument(ctx, "child-doc");
174
- expect(result).toBeDefined();
175
- expect(result.document.id).toBe("child-doc");
176
- });
177
- it("should deny access to child when user has no permission in hierarchy", async () => {
178
- // Grant permission on different document (not in hierarchy)
179
- await documentPermissionService.grantPermission("doc-123", "0xuser", "READ", "0xadmin");
180
- const ctx = createContext({ userAddress: "0xuser" });
181
- // Should not be able to access child document
182
- await expect(callDocument(ctx, "child-doc")).rejects.toThrow("Forbidden");
183
- });
184
- it("should allow direct permission even without parent permission", async () => {
185
- // Grant permission directly on child
186
- await documentPermissionService.grantPermission("child-doc", "0xuser", "READ", "0xadmin");
187
- const ctx = createContext({ userAddress: "0xuser" });
188
- const result = await callDocument(ctx, "child-doc");
189
- expect(result).toBeDefined();
190
- });
191
- it("should allow child access via group permission on parent", async () => {
192
- const group = await documentPermissionService.createGroup("ParentReaders");
193
- await documentPermissionService.addUserToGroup("0xuser", group.id);
194
- await documentPermissionService.grantGroupPermission("parent-doc", group.id, "READ", "0xadmin");
195
- const ctx = createContext({ userAddress: "0xuser" });
196
- const result = await callDocument(ctx, "child-doc");
197
- expect(result).toBeDefined();
198
- });
199
- });
200
- describe("Mutation Permissions with Real Permission Service", () => {
201
- describe("deleteDocument", () => {
202
- const callDeleteDocument = async (ctx, identifier) => {
203
- const mutation = reactorSubgraph.resolvers.Mutation
204
- ?.deleteDocument;
205
- return mutation(null, { identifier }, ctx);
206
- };
207
- it("should deny delete when user has only READ permission", async () => {
208
- await documentPermissionService.grantPermission("doc-123", "0xuser", "READ", "0xadmin");
209
- const ctx = createContext({ userAddress: "0xuser" });
210
- await expect(callDeleteDocument(ctx, "doc-123")).rejects.toThrow("Forbidden");
211
- });
212
- it("should allow delete when user has WRITE permission", async () => {
213
- await documentPermissionService.grantPermission("doc-123", "0xuser", "WRITE", "0xadmin");
214
- const ctx = createContext({ userAddress: "0xuser" });
215
- const result = await callDeleteDocument(ctx, "doc-123");
216
- expect(result).toBe(true);
217
- });
218
- it("should allow delete when user has ADMIN permission", async () => {
219
- await documentPermissionService.grantPermission("doc-123", "0xuser", "ADMIN", "0xadmin");
220
- const ctx = createContext({ userAddress: "0xuser" });
221
- const result = await callDeleteDocument(ctx, "doc-123");
222
- expect(result).toBe(true);
223
- });
224
- it("should allow delete via group WRITE permission", async () => {
225
- const group = await documentPermissionService.createGroup("Writers");
226
- await documentPermissionService.addUserToGroup("0xuser", group.id);
227
- await documentPermissionService.grantGroupPermission("doc-123", group.id, "WRITE", "0xadmin");
228
- const ctx = createContext({ userAddress: "0xuser" });
229
- const result = await callDeleteDocument(ctx, "doc-123");
230
- expect(result).toBe(true);
231
- });
232
- });
233
- describe("moveChildren", () => {
234
- const callMoveChildren = async (ctx, sourceId, targetId) => {
235
- const mutation = reactorSubgraph.resolvers.Mutation
236
- ?.moveChildren;
237
- return mutation(null, {
238
- sourceParentIdentifier: sourceId,
239
- targetParentIdentifier: targetId,
240
- documentIdentifiers: ["child-doc"],
241
- }, ctx);
242
- };
243
- it("should deny move when user lacks write permission on source", async () => {
244
- await documentPermissionService.grantPermission("parent-doc", "0xuser", "READ", "0xadmin");
245
- await documentPermissionService.grantPermission("doc-123", "0xuser", "WRITE", "0xadmin");
246
- const ctx = createContext({ userAddress: "0xuser" });
247
- await expect(callMoveChildren(ctx, "parent-doc", "doc-123")).rejects.toThrow("Forbidden");
248
- });
249
- it("should deny move when user lacks write permission on target", async () => {
250
- await documentPermissionService.grantPermission("parent-doc", "0xuser", "WRITE", "0xadmin");
251
- await documentPermissionService.grantPermission("doc-123", "0xuser", "READ", "0xadmin");
252
- const ctx = createContext({ userAddress: "0xuser" });
253
- await expect(callMoveChildren(ctx, "parent-doc", "doc-123")).rejects.toThrow("Forbidden");
254
- });
255
- it("should allow move when user has write permission on both", async () => {
256
- await documentPermissionService.grantPermission("parent-doc", "0xuser", "WRITE", "0xadmin");
257
- await documentPermissionService.grantPermission("doc-123", "0xuser", "WRITE", "0xadmin");
258
- const ctx = createContext({ userAddress: "0xuser" });
259
- const result = await callMoveChildren(ctx, "parent-doc", "doc-123");
260
- expect(result).toBeDefined();
261
- });
262
- });
263
- });
264
- describe("findDocuments Filtering with Real Permission Service", () => {
265
- const callFindDocuments = async (ctx) => {
266
- const query = reactorSubgraph.resolvers.Query?.findDocuments;
267
- return query(null, { search: { type: "powerhouse/document-drive" } }, ctx);
268
- };
269
- beforeEach(() => {
270
- // Setup find to return multiple documents
271
- const doc1 = createMockDocument("doc-1", "Doc 1");
272
- const doc2 = createMockDocument("doc-2", "Doc 2");
273
- const doc3 = createMockDocument("doc-3", "Doc 3");
274
- vi.mocked(mockReactorClient.find).mockResolvedValue({
275
- results: [doc1, doc2, doc3],
276
- options: { limit: 10 },
277
- });
278
- });
279
- it("should filter results based on user permissions", async () => {
280
- // Grant permission only on doc-1 and doc-3
281
- await documentPermissionService.grantPermission("doc-1", "0xuser", "READ", "0xadmin");
282
- await documentPermissionService.grantPermission("doc-3", "0xuser", "READ", "0xadmin");
283
- const ctx = createContext({ userAddress: "0xuser" });
284
- const result = await callFindDocuments(ctx);
285
- expect(result.items).toHaveLength(2);
286
- expect(result.items.map((d) => d.id).sort()).toEqual([
287
- "doc-1",
288
- "doc-3",
289
- ]);
290
- });
291
- it("should return empty when user has no permissions", async () => {
292
- const ctx = createContext({ userAddress: "0xunpermitted" });
293
- const result = await callFindDocuments(ctx);
294
- expect(result.items).toHaveLength(0);
295
- });
296
- it("should include documents accessible via groups", async () => {
297
- const group = await documentPermissionService.createGroup("DocReaders");
298
- await documentPermissionService.addUserToGroup("0xuser", group.id);
299
- await documentPermissionService.grantGroupPermission("doc-2", group.id, "READ", "0xadmin");
300
- const ctx = createContext({ userAddress: "0xuser" });
301
- const result = await callFindDocuments(ctx);
302
- expect(result.items).toHaveLength(1);
303
- expect(result.items[0].id).toBe("doc-2");
304
- });
305
- });
306
- describe("Global Role Override", () => {
307
- const callDocument = async (ctx) => {
308
- const query = reactorSubgraph.resolvers.Query?.document;
309
- return query(null, { identifier: "doc-123" }, ctx);
310
- };
311
- it("should allow admin access without document permission", async () => {
312
- // No document permission granted
313
- const ctx = createContext({ isAdmin: true, userAddress: "0xadmin" });
314
- const result = await callDocument(ctx);
315
- expect(result).toBeDefined();
316
- });
317
- it("global admin should take precedence over document permission check", async () => {
318
- // Grant conflicting permission (just to show global role wins)
319
- await documentPermissionService.grantPermission("doc-123", "0xother", "READ", "0xadmin");
320
- // This user has global admin but no document permission
321
- const ctx = createContext({ isAdmin: true, userAddress: "0xadmin" });
322
- const result = await callDocument(ctx);
323
- expect(result).toBeDefined();
324
- });
325
- });
326
- describe("Permission Revocation Flow", () => {
327
- const callDocument = async (ctx) => {
328
- const query = reactorSubgraph.resolvers.Query?.document;
329
- return query(null, { identifier: "doc-123" }, ctx);
330
- };
331
- it("should deny access after permission is revoked", async () => {
332
- // Grant permission
333
- await documentPermissionService.grantPermission("doc-123", "0xuser", "READ", "0xadmin");
334
- const ctx = createContext({ userAddress: "0xuser" });
335
- // Should have access
336
- const result1 = await callDocument(ctx);
337
- expect(result1).toBeDefined();
338
- // Revoke permission
339
- await documentPermissionService.revokePermission("doc-123", "0xuser");
340
- // Should no longer have access
341
- await expect(callDocument(ctx)).rejects.toThrow("Forbidden");
342
- });
343
- it("should deny access after group membership is removed", async () => {
344
- const group = await documentPermissionService.createGroup("TempReaders");
345
- await documentPermissionService.addUserToGroup("0xuser", group.id);
346
- await documentPermissionService.grantGroupPermission("doc-123", group.id, "READ", "0xadmin");
347
- const ctx = createContext({ userAddress: "0xuser" });
348
- // Should have access via group
349
- const result1 = await callDocument(ctx);
350
- expect(result1).toBeDefined();
351
- // Remove from group
352
- await documentPermissionService.removeUserFromGroup("0xuser", group.id);
353
- // Should no longer have access
354
- await expect(callDocument(ctx)).rejects.toThrow("Forbidden");
355
- });
356
- it("should deny access after group permission is revoked", async () => {
357
- const group = await documentPermissionService.createGroup("TempReaders");
358
- await documentPermissionService.addUserToGroup("0xuser", group.id);
359
- await documentPermissionService.grantGroupPermission("doc-123", group.id, "READ", "0xadmin");
360
- const ctx = createContext({ userAddress: "0xuser" });
361
- // Should have access via group
362
- const result1 = await callDocument(ctx);
363
- expect(result1).toBeDefined();
364
- // Revoke group permission
365
- await documentPermissionService.revokeGroupPermission("doc-123", group.id);
366
- // Should no longer have access
367
- await expect(callDocument(ctx)).rejects.toThrow("Forbidden");
368
- });
369
- });
370
- describe("Complex Permission Scenarios", () => {
371
- it("should use highest permission from multiple groups", async () => {
372
- const readersGroup = await documentPermissionService.createGroup("Readers");
373
- const writersGroup = await documentPermissionService.createGroup("Writers");
374
- await documentPermissionService.addUserToGroup("0xuser", readersGroup.id);
375
- await documentPermissionService.addUserToGroup("0xuser", writersGroup.id);
376
- await documentPermissionService.grantGroupPermission("doc-123", readersGroup.id, "READ", "0xadmin");
377
- await documentPermissionService.grantGroupPermission("doc-123", writersGroup.id, "WRITE", "0xadmin");
378
- const ctx = createContext({ userAddress: "0xuser" });
379
- // Should be able to delete (requires WRITE)
380
- const mutation = reactorSubgraph.resolvers.Mutation
381
- ?.deleteDocument;
382
- const result = await mutation(null, { identifier: "doc-123" }, ctx);
383
- expect(result).toBe(true);
384
- });
385
- it("should combine direct and group permissions", async () => {
386
- // User has direct READ on doc-123
387
- await documentPermissionService.grantPermission("doc-123", "0xuser", "READ", "0xadmin");
388
- // User is in group with WRITE on different document (parent-doc)
389
- const group = await documentPermissionService.createGroup("ParentWriters");
390
- await documentPermissionService.addUserToGroup("0xuser", group.id);
391
- await documentPermissionService.grantGroupPermission("parent-doc", group.id, "WRITE", "0xadmin");
392
- const ctx = createContext({ userAddress: "0xuser" });
393
- // Can read doc-123 (direct permission)
394
- const query = reactorSubgraph.resolvers.Query?.document;
395
- const readResult = await query(null, { identifier: "doc-123" }, ctx);
396
- expect(readResult).toBeDefined();
397
- // Cannot write doc-123 (only has READ)
398
- const deleteMutation = reactorSubgraph.resolvers.Mutation
399
- ?.deleteDocument;
400
- await expect(deleteMutation(null, { identifier: "doc-123" }, ctx)).rejects.toThrow("Forbidden");
401
- // Can write parent-doc (group permission)
402
- const deleteParent = await deleteMutation(null, { identifier: "parent-doc" }, ctx);
403
- expect(deleteParent).toBe(true);
404
- });
405
- });
406
- });
407
- //# sourceMappingURL=permissions-integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"permissions-integration.test.js","sourceRoot":"","sources":["../../test/permissions-integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=push-backfill.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"push-backfill.test.d.ts","sourceRoot":"","sources":["../../test/push-backfill.test.ts"],"names":[],"mappings":""}