@powerhousedao/reactor-api 6.0.0-dev.16 → 6.0.0-dev.161

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 (322) hide show
  1. package/README.md +6 -0
  2. package/dist/index.d.mts +2948 -0
  3. package/dist/index.d.mts.map +1 -0
  4. package/dist/index.mjs +6365 -0
  5. package/dist/index.mjs.map +1 -0
  6. package/dist/src/packages/vite-loader.mjs +142 -0
  7. package/dist/src/packages/vite-loader.mjs.map +1 -0
  8. package/dist/types-Do4QTfT3.d.mts +37 -0
  9. package/dist/types-Do4QTfT3.d.mts.map +1 -0
  10. package/dist/utils-DEEhP99G.mjs +286 -0
  11. package/dist/utils-DEEhP99G.mjs.map +1 -0
  12. package/dist/vite-loader.d.mts +29 -0
  13. package/dist/vite-loader.d.mts.map +1 -0
  14. package/package.json +59 -62
  15. package/dist/codegen.d.ts +0 -4
  16. package/dist/codegen.d.ts.map +0 -1
  17. package/dist/codegen.js +0 -38
  18. package/dist/codegen.js.map +0 -1
  19. package/dist/index.d.ts +0 -14
  20. package/dist/index.d.ts.map +0 -1
  21. package/dist/index.js +0 -14
  22. package/dist/index.js.map +0 -1
  23. package/dist/src/config.d.ts +0 -7
  24. package/dist/src/config.d.ts.map +0 -1
  25. package/dist/src/config.js +0 -10
  26. package/dist/src/config.js.map +0 -1
  27. package/dist/src/graphql/analytics-subgraph.d.ts +0 -14
  28. package/dist/src/graphql/analytics-subgraph.d.ts.map +0 -1
  29. package/dist/src/graphql/analytics-subgraph.js +0 -26
  30. package/dist/src/graphql/analytics-subgraph.js.map +0 -1
  31. package/dist/src/graphql/auth/index.d.ts +0 -2
  32. package/dist/src/graphql/auth/index.d.ts.map +0 -1
  33. package/dist/src/graphql/auth/index.js +0 -2
  34. package/dist/src/graphql/auth/index.js.map +0 -1
  35. package/dist/src/graphql/auth/resolvers.d.ts +0 -149
  36. package/dist/src/graphql/auth/resolvers.d.ts.map +0 -1
  37. package/dist/src/graphql/auth/resolvers.js +0 -173
  38. package/dist/src/graphql/auth/resolvers.js.map +0 -1
  39. package/dist/src/graphql/auth/schema.graphql +0 -173
  40. package/dist/src/graphql/auth/subgraph.d.ts +0 -177
  41. package/dist/src/graphql/auth/subgraph.d.ts.map +0 -1
  42. package/dist/src/graphql/auth/subgraph.js +0 -340
  43. package/dist/src/graphql/auth/subgraph.js.map +0 -1
  44. package/dist/src/graphql/base-subgraph.d.ts +0 -20
  45. package/dist/src/graphql/base-subgraph.d.ts.map +0 -1
  46. package/dist/src/graphql/base-subgraph.js +0 -34
  47. package/dist/src/graphql/base-subgraph.js.map +0 -1
  48. package/dist/src/graphql/document-model-subgraph.d.ts +0 -51
  49. package/dist/src/graphql/document-model-subgraph.d.ts.map +0 -1
  50. package/dist/src/graphql/document-model-subgraph.js +0 -104
  51. package/dist/src/graphql/document-model-subgraph.js.map +0 -1
  52. package/dist/src/graphql/drive-subgraph.d.ts +0 -25
  53. package/dist/src/graphql/drive-subgraph.d.ts.map +0 -1
  54. package/dist/src/graphql/drive-subgraph.js +0 -487
  55. package/dist/src/graphql/drive-subgraph.js.map +0 -1
  56. package/dist/src/graphql/graphql-manager.d.ts +0 -47
  57. package/dist/src/graphql/graphql-manager.d.ts.map +0 -1
  58. package/dist/src/graphql/graphql-manager.js +0 -433
  59. package/dist/src/graphql/graphql-manager.js.map +0 -1
  60. package/dist/src/graphql/index.d.ts +0 -9
  61. package/dist/src/graphql/index.d.ts.map +0 -1
  62. package/dist/src/graphql/index.js +0 -9
  63. package/dist/src/graphql/index.js.map +0 -1
  64. package/dist/src/graphql/playground.d.ts +0 -2
  65. package/dist/src/graphql/playground.d.ts.map +0 -1
  66. package/dist/src/graphql/playground.js +0 -74
  67. package/dist/src/graphql/playground.js.map +0 -1
  68. package/dist/src/graphql/reactor/adapters.d.ts +0 -54
  69. package/dist/src/graphql/reactor/adapters.d.ts.map +0 -1
  70. package/dist/src/graphql/reactor/adapters.js +0 -236
  71. package/dist/src/graphql/reactor/adapters.js.map +0 -1
  72. package/dist/src/graphql/reactor/factory.d.ts +0 -84
  73. package/dist/src/graphql/reactor/factory.d.ts.map +0 -1
  74. package/dist/src/graphql/reactor/factory.js +0 -7
  75. package/dist/src/graphql/reactor/factory.js.map +0 -1
  76. package/dist/src/graphql/reactor/gen/graphql.d.ts +0 -1210
  77. package/dist/src/graphql/reactor/gen/graphql.d.ts.map +0 -1
  78. package/dist/src/graphql/reactor/gen/graphql.js +0 -496
  79. package/dist/src/graphql/reactor/gen/graphql.js.map +0 -1
  80. package/dist/src/graphql/reactor/index.d.ts +0 -4
  81. package/dist/src/graphql/reactor/index.d.ts.map +0 -1
  82. package/dist/src/graphql/reactor/index.js +0 -4
  83. package/dist/src/graphql/reactor/index.js.map +0 -1
  84. package/dist/src/graphql/reactor/operations.graphql +0 -253
  85. package/dist/src/graphql/reactor/pubsub.d.ts +0 -27
  86. package/dist/src/graphql/reactor/pubsub.d.ts.map +0 -1
  87. package/dist/src/graphql/reactor/pubsub.js +0 -93
  88. package/dist/src/graphql/reactor/pubsub.js.map +0 -1
  89. package/dist/src/graphql/reactor/requester.d.ts +0 -4
  90. package/dist/src/graphql/reactor/requester.d.ts.map +0 -1
  91. package/dist/src/graphql/reactor/requester.js +0 -22
  92. package/dist/src/graphql/reactor/requester.js.map +0 -1
  93. package/dist/src/graphql/reactor/requester.with-zod.d.ts +0 -4
  94. package/dist/src/graphql/reactor/requester.with-zod.d.ts.map +0 -1
  95. package/dist/src/graphql/reactor/requester.with-zod.js +0 -53
  96. package/dist/src/graphql/reactor/requester.with-zod.js.map +0 -1
  97. package/dist/src/graphql/reactor/resolvers.d.ts +0 -160
  98. package/dist/src/graphql/reactor/resolvers.d.ts.map +0 -1
  99. package/dist/src/graphql/reactor/resolvers.js +0 -504
  100. package/dist/src/graphql/reactor/resolvers.js.map +0 -1
  101. package/dist/src/graphql/reactor/schema.graphql +0 -408
  102. package/dist/src/graphql/reactor/subgraph.d.ts +0 -47
  103. package/dist/src/graphql/reactor/subgraph.d.ts.map +0 -1
  104. package/dist/src/graphql/reactor/subgraph.js +0 -534
  105. package/dist/src/graphql/reactor/subgraph.js.map +0 -1
  106. package/dist/src/graphql/reactor/validation.d.ts +0 -102
  107. package/dist/src/graphql/reactor/validation.d.ts.map +0 -1
  108. package/dist/src/graphql/reactor/validation.js +0 -73
  109. package/dist/src/graphql/reactor/validation.js.map +0 -1
  110. package/dist/src/graphql/system/env/getters.d.ts +0 -2
  111. package/dist/src/graphql/system/env/getters.d.ts.map +0 -1
  112. package/dist/src/graphql/system/env/getters.js +0 -4
  113. package/dist/src/graphql/system/env/getters.js.map +0 -1
  114. package/dist/src/graphql/system/env/index.d.ts +0 -2
  115. package/dist/src/graphql/system/env/index.d.ts.map +0 -1
  116. package/dist/src/graphql/system/env/index.js +0 -5
  117. package/dist/src/graphql/system/env/index.js.map +0 -1
  118. package/dist/src/graphql/system/index.d.ts +0 -3
  119. package/dist/src/graphql/system/index.d.ts.map +0 -1
  120. package/dist/src/graphql/system/index.js +0 -3
  121. package/dist/src/graphql/system/index.js.map +0 -1
  122. package/dist/src/graphql/system/system-subgraph.d.ts +0 -49
  123. package/dist/src/graphql/system/system-subgraph.d.ts.map +0 -1
  124. package/dist/src/graphql/system/system-subgraph.js +0 -130
  125. package/dist/src/graphql/system/system-subgraph.js.map +0 -1
  126. package/dist/src/graphql/system/types.d.ts +0 -2
  127. package/dist/src/graphql/system/types.d.ts.map +0 -1
  128. package/dist/src/graphql/system/types.js +0 -2
  129. package/dist/src/graphql/system/types.js.map +0 -1
  130. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts +0 -57
  131. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts.map +0 -1
  132. package/dist/src/graphql/temp-hack-rwa-type-defs.js +0 -2
  133. package/dist/src/graphql/temp-hack-rwa-type-defs.js.map +0 -1
  134. package/dist/src/graphql/types.d.ts +0 -103
  135. package/dist/src/graphql/types.d.ts.map +0 -1
  136. package/dist/src/graphql/types.js +0 -2
  137. package/dist/src/graphql/types.js.map +0 -1
  138. package/dist/src/graphql/utils.d.ts +0 -26
  139. package/dist/src/graphql/utils.d.ts.map +0 -1
  140. package/dist/src/graphql/utils.js +0 -100
  141. package/dist/src/graphql/utils.js.map +0 -1
  142. package/dist/src/graphql/websocket.d.ts +0 -3
  143. package/dist/src/graphql/websocket.d.ts.map +0 -1
  144. package/dist/src/graphql/websocket.js +0 -15
  145. package/dist/src/graphql/websocket.js.map +0 -1
  146. package/dist/src/migrations/001_create_document_permissions.d.ts +0 -4
  147. package/dist/src/migrations/001_create_document_permissions.d.ts.map +0 -1
  148. package/dist/src/migrations/001_create_document_permissions.js +0 -91
  149. package/dist/src/migrations/001_create_document_permissions.js.map +0 -1
  150. package/dist/src/migrations/index.d.ts +0 -10
  151. package/dist/src/migrations/index.d.ts.map +0 -1
  152. package/dist/src/migrations/index.js +0 -56
  153. package/dist/src/migrations/index.js.map +0 -1
  154. package/dist/src/packages/import-loader.d.ts +0 -16
  155. package/dist/src/packages/import-loader.d.ts.map +0 -1
  156. package/dist/src/packages/import-loader.js +0 -61
  157. package/dist/src/packages/import-loader.js.map +0 -1
  158. package/dist/src/packages/import-resolver.d.ts +0 -5
  159. package/dist/src/packages/import-resolver.d.ts.map +0 -1
  160. package/dist/src/packages/import-resolver.js +0 -127
  161. package/dist/src/packages/import-resolver.js.map +0 -1
  162. package/dist/src/packages/package-manager.d.ts +0 -34
  163. package/dist/src/packages/package-manager.d.ts.map +0 -1
  164. package/dist/src/packages/package-manager.js +0 -213
  165. package/dist/src/packages/package-manager.js.map +0 -1
  166. package/dist/src/packages/types.d.ts +0 -39
  167. package/dist/src/packages/types.d.ts.map +0 -1
  168. package/dist/src/packages/types.js +0 -2
  169. package/dist/src/packages/types.js.map +0 -1
  170. package/dist/src/packages/util.d.ts +0 -27
  171. package/dist/src/packages/util.d.ts.map +0 -1
  172. package/dist/src/packages/util.js +0 -97
  173. package/dist/src/packages/util.js.map +0 -1
  174. package/dist/src/packages/vite-loader.d.ts +0 -24
  175. package/dist/src/packages/vite-loader.d.ts.map +0 -1
  176. package/dist/src/packages/vite-loader.js +0 -172
  177. package/dist/src/packages/vite-loader.js.map +0 -1
  178. package/dist/src/server.d.ts +0 -73
  179. package/dist/src/server.d.ts.map +0 -1
  180. package/dist/src/server.js +0 -431
  181. package/dist/src/server.js.map +0 -1
  182. package/dist/src/services/auth.service.d.ts +0 -68
  183. package/dist/src/services/auth.service.d.ts.map +0 -1
  184. package/dist/src/services/auth.service.js +0 -199
  185. package/dist/src/services/auth.service.js.map +0 -1
  186. package/dist/src/services/document-permission.service.d.ts +0 -201
  187. package/dist/src/services/document-permission.service.d.ts.map +0 -1
  188. package/dist/src/services/document-permission.service.js +0 -636
  189. package/dist/src/services/document-permission.service.js.map +0 -1
  190. package/dist/src/sync/types.d.ts +0 -10
  191. package/dist/src/sync/types.d.ts.map +0 -1
  192. package/dist/src/sync/types.js +0 -2
  193. package/dist/src/sync/types.js.map +0 -1
  194. package/dist/src/sync/utils.d.ts +0 -7
  195. package/dist/src/sync/utils.d.ts.map +0 -1
  196. package/dist/src/sync/utils.js +0 -78
  197. package/dist/src/sync/utils.js.map +0 -1
  198. package/dist/src/tracing.d.ts +0 -4
  199. package/dist/src/tracing.d.ts.map +0 -1
  200. package/dist/src/tracing.js +0 -122
  201. package/dist/src/tracing.js.map +0 -1
  202. package/dist/src/types.d.ts +0 -18
  203. package/dist/src/types.d.ts.map +0 -1
  204. package/dist/src/types.js +0 -2
  205. package/dist/src/types.js.map +0 -1
  206. package/dist/src/utils/auth.d.ts +0 -3
  207. package/dist/src/utils/auth.d.ts.map +0 -1
  208. package/dist/src/utils/auth.js +0 -19
  209. package/dist/src/utils/auth.js.map +0 -1
  210. package/dist/src/utils/create-schema.d.ts +0 -11
  211. package/dist/src/utils/create-schema.d.ts.map +0 -1
  212. package/dist/src/utils/create-schema.js +0 -322
  213. package/dist/src/utils/create-schema.js.map +0 -1
  214. package/dist/src/utils/db.d.ts +0 -74
  215. package/dist/src/utils/db.d.ts.map +0 -1
  216. package/dist/src/utils/db.js +0 -101
  217. package/dist/src/utils/db.js.map +0 -1
  218. package/dist/src/utils/drive-url.d.ts +0 -2
  219. package/dist/src/utils/drive-url.d.ts.map +0 -1
  220. package/dist/src/utils/drive-url.js +0 -3
  221. package/dist/src/utils/drive-url.js.map +0 -1
  222. package/dist/src/utils/index.d.ts +0 -4
  223. package/dist/src/utils/index.d.ts.map +0 -1
  224. package/dist/src/utils/index.js +0 -4
  225. package/dist/src/utils/index.js.map +0 -1
  226. package/dist/test/benchmarks/load.bench.d.ts +0 -2
  227. package/dist/test/benchmarks/load.bench.d.ts.map +0 -1
  228. package/dist/test/benchmarks/load.bench.js +0 -73
  229. package/dist/test/benchmarks/load.bench.js.map +0 -1
  230. package/dist/test/benchmarks/sync.bench.d.ts +0 -2
  231. package/dist/test/benchmarks/sync.bench.d.ts.map +0 -1
  232. package/dist/test/benchmarks/sync.bench.js +0 -119
  233. package/dist/test/benchmarks/sync.bench.js.map +0 -1
  234. package/dist/test/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-catchup-duplicate.test.d.ts +0 -2
  303. package/dist/test/two-reactor-gql-catchup-duplicate.test.d.ts.map +0 -1
  304. package/dist/test/two-reactor-gql-catchup-duplicate.test.js +0 -264
  305. package/dist/test/two-reactor-gql-catchup-duplicate.test.js.map +0 -1
  306. package/dist/test/two-reactor-gql-sync.test.d.ts +0 -2
  307. package/dist/test/two-reactor-gql-sync.test.d.ts.map +0 -1
  308. package/dist/test/two-reactor-gql-sync.test.js +0 -348
  309. package/dist/test/two-reactor-gql-sync.test.js.map +0 -1
  310. package/dist/test/utils/gql-resolver-bridge.d.ts +0 -12
  311. package/dist/test/utils/gql-resolver-bridge.d.ts.map +0 -1
  312. package/dist/test/utils/gql-resolver-bridge.js +0 -60
  313. package/dist/test/utils/gql-resolver-bridge.js.map +0 -1
  314. package/dist/test/utils.d.ts +0 -10
  315. package/dist/test/utils.d.ts.map +0 -1
  316. package/dist/test/utils.js +0 -23
  317. package/dist/test/utils.js.map +0 -1
  318. package/dist/tsconfig.tsbuildinfo +0 -1
  319. package/dist/vitest.config.d.ts +0 -3
  320. package/dist/vitest.config.d.ts.map +0 -1
  321. package/dist/vitest.config.js +0 -38
  322. package/dist/vitest.config.js.map +0 -1
@@ -1,534 +0,0 @@
1
- import { ConsoleLogger } from "@powerhousedao/reactor";
2
- import fs from "fs";
3
- import { GraphQLError } from "graphql";
4
- import { withFilter } from "graphql-subscriptions";
5
- import { gql } from "graphql-tag";
6
- import path from "path";
7
- import { fileURLToPath } from "url";
8
- import { BaseSubgraph } from "../base-subgraph.js";
9
- import { matchesJobFilter, matchesSearchFilter, toGqlDocumentChangeEvent, } from "./adapters.js";
10
- import { ensureGlobalDocumentSubscription, ensureJobSubscription, getPubSub, SUBSCRIPTION_TRIGGERS, } from "./pubsub.js";
11
- import * as resolvers from "./resolvers.js";
12
- const __filename = fileURLToPath(import.meta.url);
13
- const __dirname = path.dirname(__filename);
14
- export class ReactorSubgraph extends BaseSubgraph {
15
- // temp
16
- logger = new ConsoleLogger(["ReactorSubgraph"]);
17
- constructor(args) {
18
- super(args);
19
- this.logger.verbose(`constructor()`);
20
- }
21
- name = "r/:reactor";
22
- hasSubscriptions = true;
23
- /**
24
- * Check if user has global read access (admin, user, or guest)
25
- */
26
- hasGlobalReadAccess(ctx) {
27
- const isGlobalAdmin = ctx.isAdmin?.(ctx.user?.address ?? "");
28
- const isGlobalUser = ctx.isUser?.(ctx.user?.address ?? "");
29
- const isGlobalGuest = ctx.isGuest?.(ctx.user?.address ?? "") ||
30
- process.env.FREE_ENTRY === "true";
31
- return !!(isGlobalAdmin || isGlobalUser || isGlobalGuest);
32
- }
33
- /**
34
- * Check if user has global write access (admin or user, not guest)
35
- */
36
- hasGlobalWriteAccess(ctx) {
37
- const isGlobalAdmin = ctx.isAdmin?.(ctx.user?.address ?? "");
38
- const isGlobalUser = ctx.isUser?.(ctx.user?.address ?? "");
39
- return !!(isGlobalAdmin || isGlobalUser);
40
- }
41
- /**
42
- * Get the parent IDs function for hierarchical permission checks
43
- */
44
- getParentIdsFn() {
45
- return resolvers.createGetParentIdsFn(this.reactorClient);
46
- }
47
- /**
48
- * Check if user can read a document (with hierarchy)
49
- */
50
- async canReadDocument(documentId, ctx) {
51
- // Global access allows reading
52
- if (this.hasGlobalReadAccess(ctx)) {
53
- return true;
54
- }
55
- // Check document-level permissions with hierarchy
56
- if (this.documentPermissionService) {
57
- return this.documentPermissionService.canRead(documentId, ctx.user?.address, this.getParentIdsFn());
58
- }
59
- return false;
60
- }
61
- /**
62
- * Check if user can write to a document (with hierarchy)
63
- */
64
- async canWriteDocument(documentId, ctx) {
65
- // Global write access allows writing
66
- if (this.hasGlobalWriteAccess(ctx)) {
67
- return true;
68
- }
69
- // Check document-level permissions with hierarchy
70
- if (this.documentPermissionService) {
71
- return this.documentPermissionService.canWrite(documentId, ctx.user?.address, this.getParentIdsFn());
72
- }
73
- return false;
74
- }
75
- /**
76
- * Throw an error if user cannot read the document
77
- */
78
- async assertCanRead(documentId, ctx) {
79
- const canRead = await this.canReadDocument(documentId, ctx);
80
- if (!canRead) {
81
- throw new GraphQLError("Forbidden: insufficient permissions to read this document");
82
- }
83
- }
84
- /**
85
- * Throw an error if user cannot write to the document
86
- */
87
- async assertCanWrite(documentId, ctx) {
88
- const canWrite = await this.canWriteDocument(documentId, ctx);
89
- if (!canWrite) {
90
- throw new GraphQLError("Forbidden: insufficient permissions to write to this document");
91
- }
92
- }
93
- /**
94
- * Check if user can execute specific operations on a document.
95
- * Only checks operations that have restrictions set.
96
- * Throws an error if any operation is restricted and user lacks permission.
97
- */
98
- async assertCanExecuteOperations(documentId, actions, ctx) {
99
- // Skip if no permission service
100
- if (!this.documentPermissionService) {
101
- return;
102
- }
103
- // Global admins bypass operation-level restrictions
104
- if (ctx.isAdmin?.(ctx.user?.address ?? "")) {
105
- return;
106
- }
107
- for (const action of actions) {
108
- if (!action || typeof action !== "object") {
109
- continue;
110
- }
111
- const actionObj = action;
112
- const operationType = actionObj.type;
113
- if (typeof operationType !== "string") {
114
- continue;
115
- }
116
- // Check if this operation has any restrictions set
117
- const isRestricted = await this.documentPermissionService.isOperationRestricted(documentId, operationType);
118
- if (isRestricted) {
119
- // Operation is restricted, check if user has permission
120
- const canExecute = await this.documentPermissionService.canExecuteOperation(documentId, operationType, ctx.user?.address);
121
- if (!canExecute) {
122
- throw new GraphQLError(`Forbidden: insufficient permissions to execute operation "${operationType}" on this document`);
123
- }
124
- }
125
- }
126
- }
127
- // Load schema from file
128
- typeDefs = gql(fs.readFileSync(path.join(__dirname, "schema.graphql"), "utf-8"));
129
- resolvers = {
130
- Query: {
131
- documentModels: async (_parent, args) => {
132
- this.logger.debug("documentModels(@args)", args);
133
- try {
134
- return await resolvers.documentModels(this.reactorClient, args);
135
- }
136
- catch (error) {
137
- this.logger.error("Error in documentModels: @Error", error);
138
- throw error;
139
- }
140
- },
141
- document: async (_parent, args, ctx) => {
142
- this.logger.debug("document(@args)", args);
143
- try {
144
- // Resolve the document ID first
145
- const doc = await resolvers.document(this.reactorClient, args);
146
- if (doc) {
147
- await this.assertCanRead(doc.document.id, ctx);
148
- }
149
- return doc;
150
- }
151
- catch (error) {
152
- this.logger.error("Error in document: @Error", error);
153
- throw error;
154
- }
155
- },
156
- documentChildren: async (_parent, args, ctx) => {
157
- this.logger.debug("documentChildren(@args)", args);
158
- try {
159
- // First resolve the parent to get its ID and check permission
160
- const parent = await resolvers.document(this.reactorClient, {
161
- identifier: args.parentIdentifier,
162
- view: args.view,
163
- });
164
- if (parent) {
165
- await this.assertCanRead(parent.document.id, ctx);
166
- }
167
- return await resolvers.documentChildren(this.reactorClient, args);
168
- }
169
- catch (error) {
170
- this.logger.error("Error in documentChildren: @Error", error);
171
- throw error;
172
- }
173
- },
174
- documentParents: async (_parent, args, ctx) => {
175
- this.logger.debug("documentParents(@args)", args);
176
- try {
177
- // First resolve the child to get its ID and check permission
178
- const child = await resolvers.document(this.reactorClient, {
179
- identifier: args.childIdentifier,
180
- view: args.view,
181
- });
182
- if (child) {
183
- await this.assertCanRead(child.document.id, ctx);
184
- }
185
- return await resolvers.documentParents(this.reactorClient, args);
186
- }
187
- catch (error) {
188
- this.logger.error("Error in documentParents: @Error", error);
189
- throw error;
190
- }
191
- },
192
- findDocuments: async (_parent, args, ctx) => {
193
- this.logger.debug("findDocuments(@args)", args);
194
- try {
195
- const result = await resolvers.findDocuments(this.reactorClient, args);
196
- // Filter results to only include documents the user can read
197
- if (!this.hasGlobalReadAccess(ctx) &&
198
- this.documentPermissionService) {
199
- const filteredItems = [];
200
- for (const item of result.items) {
201
- const canRead = await this.canReadDocument(item.id, ctx);
202
- if (canRead) {
203
- filteredItems.push(item);
204
- }
205
- }
206
- return {
207
- ...result,
208
- items: filteredItems,
209
- totalCount: filteredItems.length,
210
- };
211
- }
212
- return result;
213
- }
214
- catch (error) {
215
- this.logger.error("Error in findDocuments: @Error", error);
216
- throw error;
217
- }
218
- },
219
- jobStatus: async (_parent, args) => {
220
- this.logger.debug("jobStatus(@args)", args);
221
- try {
222
- return await resolvers.jobStatus(this.reactorClient, args);
223
- }
224
- catch (error) {
225
- this.logger.error("Error in jobStatus: @Error", error);
226
- throw error;
227
- }
228
- },
229
- pollSyncEnvelopes: async (_parent, args) => {
230
- this.logger.debug("pollSyncEnvelopes(@args)", args);
231
- try {
232
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
233
- return await resolvers.pollSyncEnvelopes(this.syncManager, args);
234
- }
235
- catch (error) {
236
- this.logger.error("Error in pollSyncEnvelopes(@args): @Error", error);
237
- throw error;
238
- }
239
- },
240
- },
241
- Mutation: {
242
- createDocument: async (_parent, args, ctx) => {
243
- this.logger.debug("createDocument(@args)", args);
244
- try {
245
- // If creating under a parent, check write permission on parent
246
- if (args.parentIdentifier) {
247
- const parent = await resolvers.document(this.reactorClient, {
248
- identifier: args.parentIdentifier,
249
- });
250
- if (parent) {
251
- await this.assertCanWrite(parent.document.id, ctx);
252
- }
253
- }
254
- else if (!this.hasGlobalWriteAccess(ctx)) {
255
- throw new GraphQLError("Forbidden: insufficient permissions to create documents");
256
- }
257
- return await resolvers.createDocument(this.reactorClient, args);
258
- }
259
- catch (error) {
260
- this.logger.error("Error in createDocument(@args): @Error", error);
261
- throw error;
262
- }
263
- },
264
- createEmptyDocument: async (_parent, args, ctx) => {
265
- this.logger.debug("createEmptyDocument(@args)", args);
266
- try {
267
- // If creating under a parent, check write permission on parent
268
- if (args.parentIdentifier) {
269
- const parent = await resolvers.document(this.reactorClient, {
270
- identifier: args.parentIdentifier,
271
- });
272
- if (parent) {
273
- await this.assertCanWrite(parent.document.id, ctx);
274
- }
275
- }
276
- else if (!this.hasGlobalWriteAccess(ctx)) {
277
- throw new GraphQLError("Forbidden: insufficient permissions to create documents");
278
- }
279
- return await resolvers.createEmptyDocument(this.reactorClient, args);
280
- }
281
- catch (error) {
282
- this.logger.error("Error in createEmptyDocument(@args): @Error", error);
283
- throw error;
284
- }
285
- },
286
- mutateDocument: async (_parent, args, ctx) => {
287
- this.logger.debug("mutateDocument(@args)", args);
288
- try {
289
- // Resolve document and check write permission
290
- const doc = await resolvers.document(this.reactorClient, {
291
- identifier: args.documentIdentifier,
292
- view: args.view,
293
- });
294
- if (doc) {
295
- await this.assertCanWrite(doc.document.id, ctx);
296
- // Check operation-level permissions for each action
297
- await this.assertCanExecuteOperations(doc.document.id, args.actions, ctx);
298
- }
299
- return await resolvers.mutateDocument(this.reactorClient, args);
300
- }
301
- catch (error) {
302
- this.logger.error("Error in mutateDocument(@args): @Error", error);
303
- throw error;
304
- }
305
- },
306
- mutateDocumentAsync: async (_parent, args, ctx) => {
307
- this.logger.debug("mutateDocumentAsync(@args)", args);
308
- try {
309
- // Resolve document and check write permission
310
- const doc = await resolvers.document(this.reactorClient, {
311
- identifier: args.documentIdentifier,
312
- view: args.view,
313
- });
314
- if (doc) {
315
- await this.assertCanWrite(doc.document.id, ctx);
316
- // Check operation-level permissions for each action
317
- await this.assertCanExecuteOperations(doc.document.id, args.actions, ctx);
318
- }
319
- return await resolvers.mutateDocumentAsync(this.reactorClient, args);
320
- }
321
- catch (error) {
322
- this.logger.error("Error in mutateDocumentAsync(@args): @Error", error);
323
- throw error;
324
- }
325
- },
326
- renameDocument: async (_parent, args, ctx) => {
327
- this.logger.debug("renameDocument(@args)", args);
328
- try {
329
- // Resolve document and check write permission
330
- const doc = await resolvers.document(this.reactorClient, {
331
- identifier: args.documentIdentifier,
332
- });
333
- if (doc) {
334
- await this.assertCanWrite(doc.document.id, ctx);
335
- }
336
- return await resolvers.renameDocument(this.reactorClient, args);
337
- }
338
- catch (error) {
339
- this.logger.error("Error in renameDocument(@args): @Error", error);
340
- throw error;
341
- }
342
- },
343
- addChildren: async (_parent, args, ctx) => {
344
- this.logger.debug("addChildren(@args)", args);
345
- try {
346
- // Check write permission on parent
347
- const parent = await resolvers.document(this.reactorClient, {
348
- identifier: args.parentIdentifier,
349
- });
350
- if (parent) {
351
- await this.assertCanWrite(parent.document.id, ctx);
352
- }
353
- return await resolvers.addChildren(this.reactorClient, args);
354
- }
355
- catch (error) {
356
- this.logger.error("Error in addChildren(@args): @Error", error);
357
- throw error;
358
- }
359
- },
360
- removeChildren: async (_parent, args, ctx) => {
361
- this.logger.debug("removeChildren(@args)", args);
362
- try {
363
- // Check write permission on parent
364
- const parent = await resolvers.document(this.reactorClient, {
365
- identifier: args.parentIdentifier,
366
- });
367
- if (parent) {
368
- await this.assertCanWrite(parent.document.id, ctx);
369
- }
370
- return await resolvers.removeChildren(this.reactorClient, args);
371
- }
372
- catch (error) {
373
- this.logger.error("Error in removeChildren(@args): @Error", error);
374
- throw error;
375
- }
376
- },
377
- moveChildren: async (_parent, args, ctx) => {
378
- this.logger.debug("moveChildren(@args)", args);
379
- try {
380
- // Check write permission on both source and target parents
381
- const sourceParent = await resolvers.document(this.reactorClient, {
382
- identifier: args.sourceParentIdentifier,
383
- });
384
- if (sourceParent) {
385
- await this.assertCanWrite(sourceParent.document.id, ctx);
386
- }
387
- const targetParent = await resolvers.document(this.reactorClient, {
388
- identifier: args.targetParentIdentifier,
389
- });
390
- if (targetParent) {
391
- await this.assertCanWrite(targetParent.document.id, ctx);
392
- }
393
- return await resolvers.moveChildren(this.reactorClient, args);
394
- }
395
- catch (error) {
396
- this.logger.error("Error in moveChildren(@args): @Error @args", error, args);
397
- throw error;
398
- }
399
- },
400
- deleteDocument: async (_parent, args, ctx) => {
401
- this.logger.debug("deleteDocument(@args)", args);
402
- try {
403
- // Check write permission on document
404
- const doc = await resolvers.document(this.reactorClient, {
405
- identifier: args.identifier,
406
- });
407
- if (doc) {
408
- await this.assertCanWrite(doc.document.id, ctx);
409
- }
410
- return await resolvers.deleteDocument(this.reactorClient, args);
411
- }
412
- catch (error) {
413
- this.logger.error("Error in deleteDocument(@args): @Error", error);
414
- throw error;
415
- }
416
- },
417
- deleteDocuments: async (_parent, args, ctx) => {
418
- this.logger.debug("deleteDocuments(@args)", args);
419
- try {
420
- // Check write permission on each document
421
- for (const identifier of args.identifiers) {
422
- const doc = await resolvers.document(this.reactorClient, {
423
- identifier,
424
- });
425
- if (doc) {
426
- await this.assertCanWrite(doc.document.id, ctx);
427
- }
428
- }
429
- return await resolvers.deleteDocuments(this.reactorClient, args);
430
- }
431
- catch (error) {
432
- this.logger.error("Error in deleteDocuments(@args): @Error", error);
433
- throw error;
434
- }
435
- },
436
- touchChannel: async (_parent, args) => {
437
- this.logger.debug("touchChannel(@args)", args);
438
- try {
439
- return await resolvers.touchChannel(this.syncManager, args);
440
- }
441
- catch (error) {
442
- this.logger.error("Error in touchChannel(@args): @Error", error);
443
- throw error;
444
- }
445
- },
446
- pushSyncEnvelope: async (_parent, args) => {
447
- this.logger.debug("pushSyncEnvelope(@args)", args);
448
- try {
449
- // Convert readonly arrays to mutable arrays for the resolver
450
- const mutableArgs = {
451
- envelope: {
452
- type: args.envelope.type,
453
- channelMeta: { id: args.envelope.channelMeta.id },
454
- operations: args.envelope.operations
455
- ? args.envelope.operations.map((op) => ({
456
- operation: op.operation,
457
- context: {
458
- documentId: op.context.documentId,
459
- documentType: op.context.documentType,
460
- scope: op.context.scope,
461
- branch: op.context.branch,
462
- },
463
- }))
464
- : null,
465
- cursor: args.envelope.cursor
466
- ? {
467
- remoteName: args.envelope.cursor.remoteName,
468
- cursorOrdinal: args.envelope.cursor.cursorOrdinal,
469
- lastSyncedAtUtcMs: args.envelope.cursor.lastSyncedAtUtcMs,
470
- }
471
- : null,
472
- },
473
- };
474
- return await resolvers.pushSyncEnvelope(this.syncManager, mutableArgs);
475
- }
476
- catch (error) {
477
- this.logger.error("Error in pushSyncEnvelope(@args): @Error", error);
478
- throw error;
479
- }
480
- },
481
- },
482
- Subscription: {
483
- documentChanges: {
484
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
485
- subscribe: withFilter(
486
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
487
- (() => {
488
- this.logger.debug("documentChanges(@args) subscription started");
489
- ensureGlobalDocumentSubscription(this.reactorClient);
490
- return getPubSub().asyncIterableIterator(SUBSCRIPTION_TRIGGERS.DOCUMENT_CHANGES);
491
- }),
492
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
493
- ((payload, args) => {
494
- if (!payload) {
495
- return false;
496
- }
497
- const search = {
498
- type: args.search.type ?? undefined,
499
- parentId: args.search.parentId ?? undefined,
500
- };
501
- return matchesSearchFilter(payload.documentChanges, search);
502
- })),
503
- resolve: (payload) => {
504
- return toGqlDocumentChangeEvent(payload.documentChanges);
505
- },
506
- },
507
- jobChanges: {
508
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
509
- subscribe: withFilter(
510
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
511
- ((_parent, args) => {
512
- this.logger.debug("jobChanges(@args) subscription started", args);
513
- ensureJobSubscription(this.reactorClient, args.jobId);
514
- return getPubSub().asyncIterableIterator(SUBSCRIPTION_TRIGGERS.JOB_CHANGES);
515
- }),
516
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
517
- ((payload, args) => {
518
- if (!payload) {
519
- return false;
520
- }
521
- return matchesJobFilter(payload, args);
522
- })),
523
- resolve: (payload) => {
524
- return payload.jobChanges;
525
- },
526
- },
527
- },
528
- };
529
- onSetup() {
530
- this.logger.debug("Setting up ReactorSubgraph");
531
- return Promise.resolve();
532
- }
533
- }
534
- //# sourceMappingURL=subgraph.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../../src/graphql/reactor/subgraph.ts"],"names":[],"mappings":"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"}
@@ -1,102 +0,0 @@
1
- import { z } from "zod";
2
- export declare const JSONObjectDTO: z.ZodUnknown;
3
- export declare const DateTimeDTO: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
4
- export declare const DocumentModelStateDTO: z.ZodObject<{
5
- id: z.ZodString;
6
- name: z.ZodString;
7
- namespace: z.ZodOptional<z.ZodNullable<z.ZodString>>;
8
- version: z.ZodOptional<z.ZodNullable<z.ZodString>>;
9
- specification: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
10
- }, z.core.$strip>;
11
- export declare const DocumentModelResultPageDTO: z.ZodObject<{
12
- items: z.ZodArray<z.ZodObject<{
13
- id: z.ZodString;
14
- name: z.ZodString;
15
- namespace: z.ZodOptional<z.ZodNullable<z.ZodString>>;
16
- version: z.ZodOptional<z.ZodNullable<z.ZodString>>;
17
- specification: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
18
- }, z.core.$strip>>;
19
- totalCount: z.ZodNumber;
20
- hasNextPage: z.ZodBoolean;
21
- hasPreviousPage: z.ZodBoolean;
22
- cursor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
23
- }, z.core.$strip>;
24
- export declare const PHDocumentDTO: z.ZodObject<{
25
- id: z.ZodString;
26
- slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
27
- name: z.ZodString;
28
- documentType: z.ZodString;
29
- state: z.ZodUnknown;
30
- revision: z.ZodNumber;
31
- created: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
32
- lastModified: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
33
- parentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
34
- }, z.core.$strip>;
35
- export declare const PHDocumentResultPageDTO: z.ZodObject<{
36
- items: z.ZodArray<z.ZodObject<{
37
- id: z.ZodString;
38
- slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
39
- name: z.ZodString;
40
- documentType: z.ZodString;
41
- state: z.ZodUnknown;
42
- revision: z.ZodNumber;
43
- created: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
44
- lastModified: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
45
- parentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
46
- }, z.core.$strip>>;
47
- totalCount: z.ZodNumber;
48
- hasNextPage: z.ZodBoolean;
49
- hasPreviousPage: z.ZodBoolean;
50
- cursor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
51
- }, z.core.$strip>;
52
- export declare const DocumentWithChildrenDTO: z.ZodObject<{
53
- document: z.ZodObject<{
54
- id: z.ZodString;
55
- slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
56
- name: z.ZodString;
57
- documentType: z.ZodString;
58
- state: z.ZodUnknown;
59
- revision: z.ZodNumber;
60
- created: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
61
- lastModified: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
62
- parentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
63
- }, z.core.$strip>;
64
- childIds: z.ZodArray<z.ZodString>;
65
- }, z.core.$strip>;
66
- export declare const MoveChildrenResultDTO: z.ZodObject<{
67
- source: z.ZodObject<{
68
- id: z.ZodString;
69
- slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
70
- name: z.ZodString;
71
- documentType: z.ZodString;
72
- state: z.ZodUnknown;
73
- revision: z.ZodNumber;
74
- created: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
75
- lastModified: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
76
- parentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
77
- }, z.core.$strip>;
78
- target: z.ZodObject<{
79
- id: z.ZodString;
80
- slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
81
- name: z.ZodString;
82
- documentType: z.ZodString;
83
- state: z.ZodUnknown;
84
- revision: z.ZodNumber;
85
- created: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
86
- lastModified: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
87
- parentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
88
- }, z.core.$strip>;
89
- }, z.core.$strip>;
90
- export declare const JobInfoDTO: z.ZodObject<{
91
- id: z.ZodString;
92
- status: z.ZodString;
93
- result: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
94
- error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
95
- createdAt: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
96
- completedAt: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodDate]>>>;
97
- }, z.core.$strip>;
98
- export declare const DocumentChangeContextDTO: z.ZodObject<{
99
- parentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
100
- childId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
101
- }, z.core.$strip>;
102
- //# sourceMappingURL=validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/graphql/reactor/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,aAAa,cAAc,CAAC;AACzC,eAAO,MAAM,WAAW,+CAAkC,CAAC;AAE3D,eAAO,MAAM,qBAAqB;;;;;;iBAQxB,CAAC;AAEX,eAAO,MAAM,0BAA0B;;;;;;;;;;;;iBAQ7B,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;;;iBAYhB,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;iBAQ1B,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;iBAK1B,CAAC;AAEX,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;iBAKxB,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;iBASb,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;iBAK3B,CAAC"}