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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. package/README.md +6 -0
  2. package/dist/index.d.mts +3085 -0
  3. package/dist/index.d.mts.map +1 -0
  4. package/dist/index.mjs +6720 -0
  5. package/dist/index.mjs.map +1 -0
  6. package/dist/src/packages/https-hooks.d.mts +39 -0
  7. package/dist/src/packages/https-hooks.d.mts.map +1 -0
  8. package/dist/src/packages/https-hooks.mjs +82 -0
  9. package/dist/src/packages/https-hooks.mjs.map +1 -0
  10. package/dist/src/packages/vite-loader.d.mts +29 -0
  11. package/dist/src/packages/vite-loader.d.mts.map +1 -0
  12. package/dist/src/packages/vite-loader.mjs +145 -0
  13. package/dist/src/packages/vite-loader.mjs.map +1 -0
  14. package/dist/types-Do4QTfT3.d.mts +37 -0
  15. package/dist/types-Do4QTfT3.d.mts.map +1 -0
  16. package/dist/utils-BFkbSO_H.mjs +296 -0
  17. package/dist/utils-BFkbSO_H.mjs.map +1 -0
  18. package/package.json +60 -42
  19. package/dist/codegen.d.ts +0 -4
  20. package/dist/codegen.d.ts.map +0 -1
  21. package/dist/codegen.js +0 -38
  22. package/dist/codegen.js.map +0 -1
  23. package/dist/index.d.ts +0 -14
  24. package/dist/index.d.ts.map +0 -1
  25. package/dist/index.js +0 -14
  26. package/dist/index.js.map +0 -1
  27. package/dist/src/config.d.ts +0 -6
  28. package/dist/src/config.d.ts.map +0 -1
  29. package/dist/src/config.js +0 -6
  30. package/dist/src/config.js.map +0 -1
  31. package/dist/src/graphql/analytics-subgraph.d.ts +0 -14
  32. package/dist/src/graphql/analytics-subgraph.d.ts.map +0 -1
  33. package/dist/src/graphql/analytics-subgraph.js +0 -26
  34. package/dist/src/graphql/analytics-subgraph.js.map +0 -1
  35. package/dist/src/graphql/auth/index.d.ts +0 -2
  36. package/dist/src/graphql/auth/index.d.ts.map +0 -1
  37. package/dist/src/graphql/auth/index.js +0 -2
  38. package/dist/src/graphql/auth/index.js.map +0 -1
  39. package/dist/src/graphql/auth/resolvers.d.ts +0 -149
  40. package/dist/src/graphql/auth/resolvers.d.ts.map +0 -1
  41. package/dist/src/graphql/auth/resolvers.js +0 -173
  42. package/dist/src/graphql/auth/resolvers.js.map +0 -1
  43. package/dist/src/graphql/auth/schema.graphql +0 -173
  44. package/dist/src/graphql/auth/subgraph.d.ts +0 -177
  45. package/dist/src/graphql/auth/subgraph.d.ts.map +0 -1
  46. package/dist/src/graphql/auth/subgraph.js +0 -340
  47. package/dist/src/graphql/auth/subgraph.js.map +0 -1
  48. package/dist/src/graphql/base-subgraph.d.ts +0 -20
  49. package/dist/src/graphql/base-subgraph.d.ts.map +0 -1
  50. package/dist/src/graphql/base-subgraph.js +0 -34
  51. package/dist/src/graphql/base-subgraph.js.map +0 -1
  52. package/dist/src/graphql/document-model-subgraph.d.ts +0 -103
  53. package/dist/src/graphql/document-model-subgraph.d.ts.map +0 -1
  54. package/dist/src/graphql/document-model-subgraph.js +0 -595
  55. package/dist/src/graphql/document-model-subgraph.js.map +0 -1
  56. package/dist/src/graphql/drive-subgraph.d.ts +0 -25
  57. package/dist/src/graphql/drive-subgraph.d.ts.map +0 -1
  58. package/dist/src/graphql/drive-subgraph.js +0 -488
  59. package/dist/src/graphql/drive-subgraph.js.map +0 -1
  60. package/dist/src/graphql/graphql-manager.d.ts +0 -52
  61. package/dist/src/graphql/graphql-manager.d.ts.map +0 -1
  62. package/dist/src/graphql/graphql-manager.js +0 -491
  63. package/dist/src/graphql/graphql-manager.js.map +0 -1
  64. package/dist/src/graphql/index.d.ts +0 -10
  65. package/dist/src/graphql/index.d.ts.map +0 -1
  66. package/dist/src/graphql/index.js +0 -10
  67. package/dist/src/graphql/index.js.map +0 -1
  68. package/dist/src/graphql/playground.d.ts +0 -2
  69. package/dist/src/graphql/playground.d.ts.map +0 -1
  70. package/dist/src/graphql/playground.js +0 -74
  71. package/dist/src/graphql/playground.js.map +0 -1
  72. package/dist/src/graphql/reactor/adapters.d.ts +0 -62
  73. package/dist/src/graphql/reactor/adapters.d.ts.map +0 -1
  74. package/dist/src/graphql/reactor/adapters.js +0 -270
  75. package/dist/src/graphql/reactor/adapters.js.map +0 -1
  76. package/dist/src/graphql/reactor/factory.d.ts +0 -95
  77. package/dist/src/graphql/reactor/factory.d.ts.map +0 -1
  78. package/dist/src/graphql/reactor/factory.js +0 -7
  79. package/dist/src/graphql/reactor/factory.js.map +0 -1
  80. package/dist/src/graphql/reactor/gen/graphql.d.ts +0 -1355
  81. package/dist/src/graphql/reactor/gen/graphql.d.ts.map +0 -1
  82. package/dist/src/graphql/reactor/gen/graphql.js +0 -615
  83. package/dist/src/graphql/reactor/gen/graphql.js.map +0 -1
  84. package/dist/src/graphql/reactor/index.d.ts +0 -4
  85. package/dist/src/graphql/reactor/index.d.ts.map +0 -1
  86. package/dist/src/graphql/reactor/index.js +0 -4
  87. package/dist/src/graphql/reactor/index.js.map +0 -1
  88. package/dist/src/graphql/reactor/operations.graphql +0 -336
  89. package/dist/src/graphql/reactor/pubsub.d.ts +0 -27
  90. package/dist/src/graphql/reactor/pubsub.d.ts.map +0 -1
  91. package/dist/src/graphql/reactor/pubsub.js +0 -93
  92. package/dist/src/graphql/reactor/pubsub.js.map +0 -1
  93. package/dist/src/graphql/reactor/requester.d.ts +0 -4
  94. package/dist/src/graphql/reactor/requester.d.ts.map +0 -1
  95. package/dist/src/graphql/reactor/requester.js +0 -22
  96. package/dist/src/graphql/reactor/requester.js.map +0 -1
  97. package/dist/src/graphql/reactor/requester.with-zod.d.ts +0 -4
  98. package/dist/src/graphql/reactor/requester.with-zod.d.ts.map +0 -1
  99. package/dist/src/graphql/reactor/requester.with-zod.js +0 -119
  100. package/dist/src/graphql/reactor/requester.with-zod.js.map +0 -1
  101. package/dist/src/graphql/reactor/resolvers.d.ts +0 -211
  102. package/dist/src/graphql/reactor/resolvers.d.ts.map +0 -1
  103. package/dist/src/graphql/reactor/resolvers.js +0 -595
  104. package/dist/src/graphql/reactor/resolvers.js.map +0 -1
  105. package/dist/src/graphql/reactor/schema.graphql +0 -469
  106. package/dist/src/graphql/reactor/subgraph.d.ts +0 -47
  107. package/dist/src/graphql/reactor/subgraph.d.ts.map +0 -1
  108. package/dist/src/graphql/reactor/subgraph.js +0 -522
  109. package/dist/src/graphql/reactor/subgraph.js.map +0 -1
  110. package/dist/src/graphql/reactor/validation.d.ts +0 -120
  111. package/dist/src/graphql/reactor/validation.d.ts.map +0 -1
  112. package/dist/src/graphql/reactor/validation.js +0 -87
  113. package/dist/src/graphql/reactor/validation.js.map +0 -1
  114. package/dist/src/graphql/system/env/getters.d.ts +0 -2
  115. package/dist/src/graphql/system/env/getters.d.ts.map +0 -1
  116. package/dist/src/graphql/system/env/getters.js +0 -4
  117. package/dist/src/graphql/system/env/getters.js.map +0 -1
  118. package/dist/src/graphql/system/env/index.d.ts +0 -2
  119. package/dist/src/graphql/system/env/index.d.ts.map +0 -1
  120. package/dist/src/graphql/system/env/index.js +0 -5
  121. package/dist/src/graphql/system/env/index.js.map +0 -1
  122. package/dist/src/graphql/system/index.d.ts +0 -2
  123. package/dist/src/graphql/system/index.d.ts.map +0 -1
  124. package/dist/src/graphql/system/index.js +0 -2
  125. package/dist/src/graphql/system/index.js.map +0 -1
  126. package/dist/src/graphql/system/types.d.ts +0 -2
  127. package/dist/src/graphql/system/types.d.ts.map +0 -1
  128. package/dist/src/graphql/system/types.js +0 -2
  129. package/dist/src/graphql/system/types.js.map +0 -1
  130. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts +0 -57
  131. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts.map +0 -1
  132. package/dist/src/graphql/temp-hack-rwa-type-defs.js +0 -2
  133. package/dist/src/graphql/temp-hack-rwa-type-defs.js.map +0 -1
  134. package/dist/src/graphql/types.d.ts +0 -103
  135. package/dist/src/graphql/types.d.ts.map +0 -1
  136. package/dist/src/graphql/types.js +0 -2
  137. package/dist/src/graphql/types.js.map +0 -1
  138. package/dist/src/graphql/utils.d.ts +0 -26
  139. package/dist/src/graphql/utils.d.ts.map +0 -1
  140. package/dist/src/graphql/utils.js +0 -104
  141. package/dist/src/graphql/utils.js.map +0 -1
  142. package/dist/src/graphql/websocket.d.ts +0 -3
  143. package/dist/src/graphql/websocket.d.ts.map +0 -1
  144. package/dist/src/graphql/websocket.js +0 -15
  145. package/dist/src/graphql/websocket.js.map +0 -1
  146. package/dist/src/migrations/001_create_document_permissions.d.ts +0 -4
  147. package/dist/src/migrations/001_create_document_permissions.d.ts.map +0 -1
  148. package/dist/src/migrations/001_create_document_permissions.js +0 -91
  149. package/dist/src/migrations/001_create_document_permissions.js.map +0 -1
  150. package/dist/src/migrations/index.d.ts +0 -10
  151. package/dist/src/migrations/index.d.ts.map +0 -1
  152. package/dist/src/migrations/index.js +0 -56
  153. package/dist/src/migrations/index.js.map +0 -1
  154. package/dist/src/packages/import-loader.d.ts +0 -16
  155. package/dist/src/packages/import-loader.d.ts.map +0 -1
  156. package/dist/src/packages/import-loader.js +0 -61
  157. package/dist/src/packages/import-loader.js.map +0 -1
  158. package/dist/src/packages/import-resolver.d.ts +0 -5
  159. package/dist/src/packages/import-resolver.d.ts.map +0 -1
  160. package/dist/src/packages/import-resolver.js +0 -127
  161. package/dist/src/packages/import-resolver.js.map +0 -1
  162. package/dist/src/packages/package-manager.d.ts +0 -34
  163. package/dist/src/packages/package-manager.d.ts.map +0 -1
  164. package/dist/src/packages/package-manager.js +0 -213
  165. package/dist/src/packages/package-manager.js.map +0 -1
  166. package/dist/src/packages/types.d.ts +0 -40
  167. package/dist/src/packages/types.d.ts.map +0 -1
  168. package/dist/src/packages/types.js +0 -2
  169. package/dist/src/packages/types.js.map +0 -1
  170. package/dist/src/packages/util.d.ts +0 -27
  171. package/dist/src/packages/util.d.ts.map +0 -1
  172. package/dist/src/packages/util.js +0 -97
  173. package/dist/src/packages/util.js.map +0 -1
  174. package/dist/src/packages/vite-loader.d.ts +0 -25
  175. package/dist/src/packages/vite-loader.d.ts.map +0 -1
  176. package/dist/src/packages/vite-loader.js +0 -182
  177. package/dist/src/packages/vite-loader.js.map +0 -1
  178. package/dist/src/server.d.ts +0 -80
  179. package/dist/src/server.d.ts.map +0 -1
  180. package/dist/src/server.js +0 -427
  181. package/dist/src/server.js.map +0 -1
  182. package/dist/src/services/auth.service.d.ts +0 -68
  183. package/dist/src/services/auth.service.d.ts.map +0 -1
  184. package/dist/src/services/auth.service.js +0 -190
  185. package/dist/src/services/auth.service.js.map +0 -1
  186. package/dist/src/services/document-permission.service.d.ts +0 -201
  187. package/dist/src/services/document-permission.service.d.ts.map +0 -1
  188. package/dist/src/services/document-permission.service.js +0 -636
  189. package/dist/src/services/document-permission.service.js.map +0 -1
  190. package/dist/src/sync/types.d.ts +0 -10
  191. package/dist/src/sync/types.d.ts.map +0 -1
  192. package/dist/src/sync/types.js +0 -2
  193. package/dist/src/sync/types.js.map +0 -1
  194. package/dist/src/sync/utils.d.ts +0 -7
  195. package/dist/src/sync/utils.d.ts.map +0 -1
  196. package/dist/src/sync/utils.js +0 -78
  197. package/dist/src/sync/utils.js.map +0 -1
  198. package/dist/src/tracing.d.ts +0 -4
  199. package/dist/src/tracing.d.ts.map +0 -1
  200. package/dist/src/tracing.js +0 -122
  201. package/dist/src/tracing.js.map +0 -1
  202. package/dist/src/types.d.ts +0 -18
  203. package/dist/src/types.d.ts.map +0 -1
  204. package/dist/src/types.js +0 -2
  205. package/dist/src/types.js.map +0 -1
  206. package/dist/src/utils/auth.d.ts +0 -3
  207. package/dist/src/utils/auth.d.ts.map +0 -1
  208. package/dist/src/utils/auth.js +0 -19
  209. package/dist/src/utils/auth.js.map +0 -1
  210. package/dist/src/utils/create-schema.d.ts +0 -31
  211. package/dist/src/utils/create-schema.d.ts.map +0 -1
  212. package/dist/src/utils/create-schema.js +0 -548
  213. package/dist/src/utils/create-schema.js.map +0 -1
  214. package/dist/src/utils/db.d.ts +0 -74
  215. package/dist/src/utils/db.d.ts.map +0 -1
  216. package/dist/src/utils/db.js +0 -101
  217. package/dist/src/utils/db.js.map +0 -1
  218. package/dist/src/utils/drive-url.d.ts +0 -2
  219. package/dist/src/utils/drive-url.d.ts.map +0 -1
  220. package/dist/src/utils/drive-url.js +0 -3
  221. package/dist/src/utils/drive-url.js.map +0 -1
  222. package/dist/src/utils/index.d.ts +0 -4
  223. package/dist/src/utils/index.d.ts.map +0 -1
  224. package/dist/src/utils/index.js +0 -4
  225. package/dist/src/utils/index.js.map +0 -1
  226. package/dist/test/benchmarks/load.bench.d.ts +0 -2
  227. package/dist/test/benchmarks/load.bench.d.ts.map +0 -1
  228. package/dist/test/benchmarks/load.bench.js +0 -73
  229. package/dist/test/benchmarks/load.bench.js.map +0 -1
  230. package/dist/test/benchmarks/sync.bench.d.ts +0 -2
  231. package/dist/test/benchmarks/sync.bench.d.ts.map +0 -1
  232. package/dist/test/benchmarks/sync.bench.js +0 -119
  233. package/dist/test/benchmarks/sync.bench.js.map +0 -1
  234. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts +0 -2
  235. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts.map +0 -1
  236. package/dist/test/connect-switchboard-reshuffle-convergence.test.js +0 -203
  237. package/dist/test/connect-switchboard-reshuffle-convergence.test.js.map +0 -1
  238. package/dist/test/connect-switchboard-sync.test.d.ts +0 -2
  239. package/dist/test/connect-switchboard-sync.test.d.ts.map +0 -1
  240. package/dist/test/connect-switchboard-sync.test.js +0 -581
  241. package/dist/test/connect-switchboard-sync.test.js.map +0 -1
  242. package/dist/test/document-drive-subgraph.test.d.ts +0 -2
  243. package/dist/test/document-drive-subgraph.test.d.ts.map +0 -1
  244. package/dist/test/document-drive-subgraph.test.js +0 -186
  245. package/dist/test/document-drive-subgraph.test.js.map +0 -1
  246. package/dist/test/document-model-subgraph-legacy-permissions.test.d.ts +0 -2
  247. package/dist/test/document-model-subgraph-legacy-permissions.test.d.ts.map +0 -1
  248. package/dist/test/document-model-subgraph-legacy-permissions.test.js +0 -518
  249. package/dist/test/document-model-subgraph-legacy-permissions.test.js.map +0 -1
  250. package/dist/test/document-model-subgraph-permissions.test.d.ts +0 -2
  251. package/dist/test/document-model-subgraph-permissions.test.d.ts.map +0 -1
  252. package/dist/test/document-model-subgraph-permissions.test.js +0 -635
  253. package/dist/test/document-model-subgraph-permissions.test.js.map +0 -1
  254. package/dist/test/document-model-subgraph.test.d.ts +0 -2
  255. package/dist/test/document-model-subgraph.test.d.ts.map +0 -1
  256. package/dist/test/document-model-subgraph.test.js +0 -441
  257. package/dist/test/document-model-subgraph.test.js.map +0 -1
  258. package/dist/test/document-permission.service.test.d.ts +0 -2
  259. package/dist/test/document-permission.service.test.d.ts.map +0 -1
  260. package/dist/test/document-permission.service.test.js +0 -480
  261. package/dist/test/document-permission.service.test.js.map +0 -1
  262. package/dist/test/drive-handlers.d.ts +0 -4
  263. package/dist/test/drive-handlers.d.ts.map +0 -1
  264. package/dist/test/drive-handlers.js +0 -39
  265. package/dist/test/drive-handlers.js.map +0 -1
  266. package/dist/test/drive-info-endpoint.test.d.ts +0 -2
  267. package/dist/test/drive-info-endpoint.test.d.ts.map +0 -1
  268. package/dist/test/drive-info-endpoint.test.js +0 -123
  269. package/dist/test/drive-info-endpoint.test.js.map +0 -1
  270. package/dist/test/drive-subgraph-permissions.test.d.ts +0 -2
  271. package/dist/test/drive-subgraph-permissions.test.d.ts.map +0 -1
  272. package/dist/test/drive-subgraph-permissions.test.js +0 -195
  273. package/dist/test/drive-subgraph-permissions.test.js.map +0 -1
  274. package/dist/test/drive.test.d.ts +0 -2
  275. package/dist/test/drive.test.d.ts.map +0 -1
  276. package/dist/test/drive.test.js +0 -142
  277. package/dist/test/drive.test.js.map +0 -1
  278. package/dist/test/identity-integration.test.d.ts +0 -2
  279. package/dist/test/identity-integration.test.d.ts.map +0 -1
  280. package/dist/test/identity-integration.test.js +0 -349
  281. package/dist/test/identity-integration.test.js.map +0 -1
  282. package/dist/test/index.d.ts +0 -3
  283. package/dist/test/index.d.ts.map +0 -1
  284. package/dist/test/index.js +0 -3
  285. package/dist/test/index.js.map +0 -1
  286. package/dist/test/permissions-integration.test.d.ts +0 -2
  287. package/dist/test/permissions-integration.test.d.ts.map +0 -1
  288. package/dist/test/permissions-integration.test.js +0 -421
  289. package/dist/test/permissions-integration.test.js.map +0 -1
  290. package/dist/test/pull-responder-transmitter.test.d.ts +0 -2
  291. package/dist/test/pull-responder-transmitter.test.d.ts.map +0 -1
  292. package/dist/test/pull-responder-transmitter.test.js +0 -220
  293. package/dist/test/pull-responder-transmitter.test.js.map +0 -1
  294. package/dist/test/push-backfill.test.d.ts +0 -2
  295. package/dist/test/push-backfill.test.d.ts.map +0 -1
  296. package/dist/test/push-backfill.test.js +0 -298
  297. package/dist/test/push-backfill.test.js.map +0 -1
  298. package/dist/test/push-transmitter.test.d.ts +0 -2
  299. package/dist/test/push-transmitter.test.d.ts.map +0 -1
  300. package/dist/test/push-transmitter.test.js +0 -179
  301. package/dist/test/push-transmitter.test.js.map +0 -1
  302. package/dist/test/reactor-adapters.test.d.ts +0 -2
  303. package/dist/test/reactor-adapters.test.d.ts.map +0 -1
  304. package/dist/test/reactor-adapters.test.js +0 -379
  305. package/dist/test/reactor-adapters.test.js.map +0 -1
  306. package/dist/test/reactor-client.test.d.ts +0 -2
  307. package/dist/test/reactor-client.test.d.ts.map +0 -1
  308. package/dist/test/reactor-client.test.js +0 -212
  309. package/dist/test/reactor-client.test.js.map +0 -1
  310. package/dist/test/reactor-resolvers.test.d.ts +0 -2
  311. package/dist/test/reactor-resolvers.test.d.ts.map +0 -1
  312. package/dist/test/reactor-resolvers.test.js +0 -258
  313. package/dist/test/reactor-resolvers.test.js.map +0 -1
  314. package/dist/test/reactor-subgraph-permissions.test.d.ts +0 -2
  315. package/dist/test/reactor-subgraph-permissions.test.d.ts.map +0 -1
  316. package/dist/test/reactor-subgraph-permissions.test.js +0 -397
  317. package/dist/test/reactor-subgraph-permissions.test.js.map +0 -1
  318. package/dist/test/router.test.d.ts +0 -2
  319. package/dist/test/router.test.d.ts.map +0 -1
  320. package/dist/test/router.test.js +0 -38
  321. package/dist/test/router.test.js.map +0 -1
  322. package/dist/test/subscriptions.test.d.ts +0 -2
  323. package/dist/test/subscriptions.test.d.ts.map +0 -1
  324. package/dist/test/subscriptions.test.js +0 -248
  325. package/dist/test/subscriptions.test.js.map +0 -1
  326. package/dist/test/utils/gql-resolver-bridge.d.ts +0 -15
  327. package/dist/test/utils/gql-resolver-bridge.d.ts.map +0 -1
  328. package/dist/test/utils/gql-resolver-bridge.js +0 -89
  329. package/dist/test/utils/gql-resolver-bridge.js.map +0 -1
  330. package/dist/test/utils.d.ts +0 -10
  331. package/dist/test/utils.d.ts.map +0 -1
  332. package/dist/test/utils.js +0 -23
  333. package/dist/test/utils.js.map +0 -1
  334. package/dist/tsconfig.tsbuildinfo +0 -1
  335. package/dist/vitest.config.d.ts +0 -3
  336. package/dist/vitest.config.d.ts.map +0 -1
  337. package/dist/vitest.config.js +0 -38
  338. package/dist/vitest.config.js.map +0 -1
@@ -1,548 +0,0 @@
1
- import { buildSubgraphSchema } from "@apollo/subgraph";
2
- import { typeDefs as scalarsTypeDefs } from "@powerhousedao/document-engineering/graphql";
3
- import { camelCase, pascalCase } from "change-case";
4
- import { childLogger } from "document-drive";
5
- import { Kind, print } from "graphql";
6
- import { gql } from "graphql-tag";
7
- import { GraphQLJSONObject } from "graphql-type-json";
8
- const logger = childLogger(["reactor-api", "create-schema"]);
9
- /**
10
- * Revision type - matches the definition in reactor/schema.graphql.
11
- * Used by PHDocument and document mutation results.
12
- */
13
- const RevisionType = `
14
- type Revision {
15
- scope: String!
16
- revision: Int!
17
- }
18
- `;
19
- /**
20
- * Strip scalar definitions from a DocumentNode to avoid duplicates
21
- * when combining with other schemas that define the same scalars.
22
- */
23
- const stripScalarDefinitions = (doc) => {
24
- const filteredDefinitions = doc.definitions.filter((def) => def.kind !== Kind.SCALAR_TYPE_DEFINITION);
25
- return print({ kind: Kind.DOCUMENT, definitions: filteredDefinitions });
26
- };
27
- export const buildSubgraphSchemaModule = (documentDriveServer, resolvers, typeDefs) => {
28
- const newResolvers = {
29
- ...resolvers,
30
- JSONObject: GraphQLJSONObject,
31
- };
32
- return {
33
- typeDefs: getDocumentModelTypeDefs(documentDriveServer, typeDefs),
34
- resolvers: newResolvers,
35
- };
36
- };
37
- export const createSchema = (documentDriveServer, resolvers, typeDefs) => {
38
- return buildSubgraphSchema(buildSubgraphSchemaModule(documentDriveServer, resolvers, typeDefs));
39
- };
40
- export function getDocumentModelSchemaName(documentModel) {
41
- return pascalCase(documentModel.name.replaceAll("/", " "));
42
- }
43
- export const getDocumentModelTypeDefs = (documentDriveServer, typeDefs) => {
44
- const documentModels = documentDriveServer.getDocumentModelModules();
45
- let dmSchema = "";
46
- const addedDocumentModels = new Set();
47
- documentModels.forEach(({ documentModel }) => {
48
- const dmSchemaName = getDocumentModelSchemaName(documentModel.global);
49
- if (addedDocumentModels.has(dmSchemaName)) {
50
- logger.debug(`Skipping document model with duplicate name: ${dmSchemaName}`);
51
- return;
52
- }
53
- addedDocumentModels.add(dmSchemaName);
54
- let tmpDmSchema = `
55
- ${documentModel.global.specifications
56
- .map((specification) => specification.state.global.schema
57
- .replaceAll("scalar DateTime", "")
58
- .replaceAll(/input (.*?) {[\s\S]*?}/g, ""))
59
- .join("\n")};
60
-
61
- ${documentModel.global.specifications
62
- .map((specification) => specification.state.local.schema
63
- .replaceAll("scalar DateTime", "")
64
- .replaceAll(/input (.*?) {[\s\S]*?}/g, "")
65
- .replaceAll("type AccountSnapshotLocalState", "")
66
- .replaceAll("type BudgetStatementLocalState", "")
67
- .replaceAll("type ScopeFrameworkLocalState", ""))
68
- .join("\n")};
69
-
70
- \n`;
71
- const found = tmpDmSchema.match(/(type|enum|union|interface)\s+(\w+)[\s{]/g);
72
- const trimmedFound = found?.map((f) => f
73
- .replaceAll("type ", "")
74
- .replaceAll("enum ", "")
75
- .replaceAll("union ", "")
76
- .replaceAll("interface ", "")
77
- .replaceAll("{", "")
78
- .trim());
79
- trimmedFound?.forEach((f) => {
80
- // Create a regex that matches the type name with proper boundaries
81
- const typeRegex = new RegExp(
82
- // Match type references in various GraphQL contexts
83
- `(?<![_A-Za-z0-9])(${f})(?![_A-Za-z0-9])|` + // Basic type references
84
- `\\[(${f})\\]|` + // Array types without nullability
85
- `\\[(${f})!\\]|` + // Array of non-null types
86
- `\\[(${f})\\]!|` + // Non-null array of types
87
- `\\[(${f})!\\]!`, // Non-null array of non-null types
88
- "g");
89
- tmpDmSchema = tmpDmSchema.replace(typeRegex, (match, p1, p2, p3, p4, p5) => {
90
- // If it's an array type, preserve the brackets and ! while replacing the type name
91
- if (match.startsWith("[")) {
92
- return match.replace(p2 || p3 || p4 || p5, `${dmSchemaName}_${p2 || p3 || p4 || p5}`);
93
- }
94
- // Basic type reference
95
- return `${dmSchemaName}_${p1}`;
96
- });
97
- });
98
- dmSchema += tmpDmSchema;
99
- dmSchema += `
100
- type ${dmSchemaName} implements IDocument {
101
- id: String!
102
- name: String!
103
- documentType: String!
104
- operations(skip: Int, first: Int): [Operation!]!
105
- revision: Int!
106
- createdAtUtcIso: DateTime!
107
- lastModifiedAtUtcIso: DateTime!
108
- ${dmSchemaName !== "DocumentModel" ? `initialState: ${dmSchemaName}_${dmSchemaName}State!` : ""}
109
- ${dmSchemaName !== "DocumentModel" ? `state: ${dmSchemaName}_${dmSchemaName}State!` : ""}
110
- stateJSON: JSONObject
111
- }\n`;
112
- });
113
- // add the mutation and query types
114
- const schema = gql `
115
- scalar JSONObject
116
- ${scalarsTypeDefs.join("\n").replaceAll(";", "")}
117
-
118
- type PHOperationContext {
119
- signer: Signer
120
- }
121
-
122
- type Signer {
123
- user: SignerUser
124
- app: SignerApp
125
- signatures: [String!]!
126
- }
127
-
128
- type SignerUser {
129
- address: String!
130
- networkId: String!
131
- chainId: Int!
132
- }
133
-
134
- type SignerApp {
135
- name: String!
136
- key: String!
137
- }
138
-
139
- type Operation {
140
- id: String!
141
- type: String!
142
- index: Int!
143
- timestampUtcMs: DateTime!
144
- hash: String!
145
- skip: Int
146
- inputText: String
147
- error: String
148
- context: PHOperationContext
149
- }
150
-
151
- interface IDocument {
152
- id: String!
153
- name: String!
154
- documentType: String!
155
- revision: Int!
156
- createdAtUtcIso: DateTime!
157
- lastModifiedAtUtcIso: DateTime!
158
- operations(first: Int, skip: Int): [Operation!]!
159
- stateJSON: JSONObject
160
- }
161
- ${dmSchema.replaceAll(";", "")}
162
-
163
- type GqlDocument implements IDocument {
164
- id: String!
165
- name: String!
166
- documentType: String!
167
- revision: Int!
168
- createdAtUtcIso: DateTime!
169
- lastModifiedAtUtcIso: DateTime!
170
- operations(first: Int, skip: Int): [Operation!]!
171
- stateJSON: JSONObject
172
- }
173
-
174
- type DriveDocument implements IDocument {
175
- id: String!
176
- name: String!
177
- documentType: String!
178
- revision: Int!
179
- createdAtUtcIso: DateTime!
180
- lastModifiedAtUtcIso: DateTime!
181
- operations(first: Int, skip: Int): [Operation!]!
182
- stateJSON: JSONObject
183
- }
184
-
185
- ${stripScalarDefinitions(typeDefs)}
186
- `;
187
- return schema;
188
- };
189
- /**
190
- * Extract type names from a GraphQL schema.
191
- * @param {string} schema - GraphQL schema string
192
- * @returns {string[]} Array of type names
193
- */
194
- function extractTypeNames(schema) {
195
- const found = schema.match(/(type|enum|union|interface|input)\s+(\w+)[\s{]/g);
196
- if (!found)
197
- return [];
198
- return found.map((f) => f
199
- .replaceAll("type ", "")
200
- .replaceAll("enum ", "")
201
- .replaceAll("union ", "")
202
- .replaceAll("interface ", "")
203
- .replaceAll("input ", "")
204
- .replaceAll("{", "")
205
- .trim());
206
- }
207
- /**
208
- * Extract input type definitions from a GraphQL schema.
209
- * @param {string} schema - GraphQL schema string
210
- * @param {Set<string>} excludeTypeNames - Type names to exclude from extraction
211
- * @returns {string} All input type definitions as a string
212
- */
213
- function extractInputTypeDefinitions(schema, excludeTypeNames = new Set()) {
214
- // Match input type blocks: input TypeName { ... }
215
- const inputTypeRegex = /input\s+(\w+)\s*\{[^}]*\}/g;
216
- const matches = [];
217
- let match;
218
- while ((match = inputTypeRegex.exec(schema)) !== null) {
219
- const typeName = match[1];
220
- // Skip if this type name is in the exclusion set
221
- if (!excludeTypeNames.has(typeName)) {
222
- matches.push(match[0]);
223
- }
224
- }
225
- if (matches.length === 0)
226
- return "";
227
- return matches.join("\n\n");
228
- }
229
- /**
230
- * Apply type prefixes to GraphQL schema to namespace types and avoid collisions.
231
- * Inlined from @powerhousedao/common/utils to avoid ES module import issues.
232
- * @param {string} schema - GraphQL schema string
233
- * @param {string} prefix - Prefix to apply to type names
234
- * @param {string[]} externalTypeNames - Type names from other schemas to also prefix
235
- * @returns {string} Schema with prefixed types
236
- */
237
- function applyGraphQLTypePrefixes(schema, prefix, externalTypeNames = []) {
238
- if (!schema || !schema.trim()) {
239
- return schema;
240
- }
241
- let processedSchema = schema;
242
- // Find types defined in this schema
243
- const localTypeNames = extractTypeNames(schema);
244
- // Combine with external type names (remove duplicates)
245
- const allTypeNames = [...new Set([...localTypeNames, ...externalTypeNames])];
246
- if (allTypeNames.length === 0) {
247
- return schema;
248
- }
249
- allTypeNames.forEach((typeName) => {
250
- const typeRegex = new RegExp(
251
- // Match type references in various GraphQL contexts
252
- `(?<![_A-Za-z0-9])(${typeName})(?![_A-Za-z0-9])|` +
253
- `\\[(${typeName})\\]|` +
254
- `\\[(${typeName})!\\]|` +
255
- `\\[(${typeName})\\]!|` +
256
- `\\[(${typeName})!\\]!`, "g");
257
- processedSchema = processedSchema.replace(typeRegex, (match, p1, p2, p3, p4, p5) => {
258
- if (match.startsWith("[")) {
259
- return match.replace((p2 || p3 || p4 || p5), `${prefix}_${p2 || p3 || p4 || p5}`);
260
- }
261
- // Basic type reference
262
- return `${prefix}_${p1}`;
263
- });
264
- });
265
- return processedSchema;
266
- }
267
- /**
268
- * Generate a GraphQL schema for a document model.
269
- *
270
- * @param documentModel - The document model global state
271
- * @param options - Schema generation options
272
- * @returns GraphQL DocumentNode
273
- */
274
- export function generateDocumentModelSchema(documentModel, options = {}) {
275
- const { useNewApi = false } = options;
276
- const specification = documentModel.specifications.at(-1);
277
- const documentName = getDocumentModelSchemaName(documentModel);
278
- const globalStateSchema = specification?.state.global.schema;
279
- const localStateSchema = specification?.state.local.schema;
280
- const globalStateTypeNames = extractTypeNames(globalStateSchema ?? "");
281
- const localStateTypeNames = extractTypeNames(localStateSchema ?? "");
282
- const stateTypeNames = [...globalStateTypeNames, ...localStateTypeNames];
283
- // Collect ALL type names from all operations' schemas
284
- const allOperationTypeNames = specification?.modules.flatMap((module) => module.operations.flatMap((op) => extractTypeNames(op.schema ?? ""))) ?? [];
285
- // Combine state types and all operation types for prefixing
286
- const allTypeNames = [
287
- ...new Set([...stateTypeNames, ...allOperationTypeNames]),
288
- ];
289
- // Extract input type definitions from state schema, excluding operation-specific inputs
290
- // (those are already defined in op.schema)
291
- const operationInputTypeNames = new Set(allOperationTypeNames);
292
- const stateInputTypes = extractInputTypeDefinitions(globalStateSchema ?? "", operationInputTypeNames);
293
- const prefixedStateInputTypes = applyGraphQLTypePrefixes(stateInputTypes, documentName, allTypeNames);
294
- // Helper to check if schema has actual GraphQL type definitions
295
- const hasValidSchema = (schema) => !!(schema && /\b(input|type|enum|union|interface)\s+\w+/.test(schema));
296
- // Process state schema types (remove input types, clean up, and prefix)
297
- const stateSchemaTypes = globalStateSchema
298
- ? applyGraphQLTypePrefixes(globalStateSchema
299
- .replaceAll("scalar DateTime", "")
300
- .replaceAll(/input (.*?) {[\s\S]*?}/g, ""), documentName, allTypeNames)
301
- : "";
302
- if (useNewApi) {
303
- // New API: flat queries, typed state, async mutations
304
- return generateNewApiSchema(documentName, specification, stateSchemaTypes, prefixedStateInputTypes, allTypeNames, hasValidSchema);
305
- }
306
- // Legacy API
307
- return generateLegacyApiSchema(documentName, specification, prefixedStateInputTypes, allTypeNames, hasValidSchema);
308
- }
309
- /**
310
- * Generate legacy API schema with nested queries
311
- */
312
- function generateLegacyApiSchema(documentName, specification, prefixedStateInputTypes, allTypeNames, hasValidSchema) {
313
- const createDocumentMutation = `${documentName}_createDocument(name:String!, driveId:String): String`;
314
- const operationMutations = specification?.modules
315
- .flatMap((module) => module.operations
316
- .filter((op) => op.name && hasValidSchema(op.schema))
317
- .map((op) => `${documentName}_${camelCase(op.name)}(
318
- driveId: String, docId: PHID, input: ${documentName}_${pascalCase(op.name)}Input): Int`))
319
- .join("\n ") ?? "";
320
- const moduleSchemas = specification?.modules
321
- .filter((module) => module.operations.some((op) => hasValidSchema(op.schema)))
322
- .map((module) => `"""
323
- Module: ${pascalCase(module.name)}
324
- """
325
- ${module.operations
326
- .filter((op) => hasValidSchema(op.schema))
327
- .map((op) => applyGraphQLTypePrefixes(op.schema ?? "", documentName, allTypeNames))
328
- .join("\n ")}`)
329
- .join("\n") ?? "";
330
- return gql `
331
- """
332
- Queries: ${documentName} Document
333
- """
334
-
335
- type ${documentName}Queries {
336
- getDocument(docId: PHID!, driveId: PHID): ${documentName}
337
- getDocuments(driveId: String!): [${documentName}!]
338
- }
339
-
340
- type Query {
341
- ${documentName}: ${documentName}Queries
342
- }
343
-
344
- """
345
- Mutations: ${documentName}
346
- """
347
- type Mutation {
348
- ${createDocumentMutation}
349
-
350
- ${operationMutations}
351
- }
352
-
353
- ${prefixedStateInputTypes
354
- ? `"""
355
- Input Types from State Schema
356
- """
357
- ${prefixedStateInputTypes}`
358
- : ""}
359
-
360
- ${moduleSchemas}`;
361
- }
362
- /**
363
- * Generate new API schema with flat queries, typed state, and async mutations.
364
- * Note: State schema types are NOT included here because they are already defined
365
- * in getDocumentModelTypeDefs() which is used during schema composition.
366
- * Including them here would cause duplicate type definitions.
367
- *
368
- * Special case: DocumentModel type doesn't have a typed state defined in
369
- * getDocumentModelTypeDefs(), so we use JSONObject for its state field.
370
- */
371
- function generateNewApiSchema(documentName, specification, _stateSchemaTypes, prefixedStateInputTypes, allTypeNames, hasValidSchema) {
372
- // Use full state type for all document models
373
- const stateType = `${documentName}_FullState!`;
374
- // Shared base types for document state structure (same for all document types)
375
- const sharedBaseTypes = `
376
- """Hash configuration for document state"""
377
- type ${documentName}_PHHashConfig {
378
- algorithm: String!
379
- encoding: String!
380
- }
381
-
382
- """Document scope state (same for all document types)"""
383
- type ${documentName}_PHDocumentScopeState {
384
- version: Int!
385
- hash: ${documentName}_PHHashConfig!
386
- isDeleted: Boolean
387
- deletedAtUtcIso: String
388
- deletedBy: String
389
- deletionReason: String
390
- }
391
- `;
392
- // Full state type with all scopes (auth, document, global, local)
393
- // Note: DocumentModel uses different naming convention (GlobalState suffix instead of State)
394
- // For local state, check if the specification defines a local state type
395
- const localSchema = specification?.state.local.schema ?? "";
396
- const hasLocalStateType = localSchema.includes(`type ${documentName}LocalState`);
397
- const globalStateType = documentName === "DocumentModel"
398
- ? `${documentName}_${documentName}GlobalState!`
399
- : `${documentName}_${documentName}State!`;
400
- const localStateType = !hasLocalStateType
401
- ? "JSONObject!"
402
- : `${documentName}_${documentName}LocalState!`;
403
- const fullStateType = `
404
- """Full state with all scopes for ${documentName}"""
405
- type ${documentName}_FullState {
406
- auth: JSONObject!
407
- document: ${documentName}_PHDocumentScopeState!
408
- global: ${globalStateType}
409
- local: ${localStateType}
410
- }
411
- `;
412
- // Common input types - use extend to avoid conflicts with other subgraphs
413
- const commonInputTypes = `
414
- input ${documentName}_ViewFilterInput {
415
- branch: String
416
- scopes: [String!]
417
- }
418
-
419
- input ${documentName}_PagingInput {
420
- limit: Int
421
- offset: Int
422
- cursor: String
423
- }
424
-
425
- input ${documentName}_SearchFilterInput {
426
- parentId: String
427
- identifiers: [String!]
428
- }
429
- `;
430
- // Revision type - imported from shared-schema.ts for consistency with ReactorSubgraph
431
- // Must be defined in each subgraph for Apollo Federation
432
- const revisionType = RevisionType;
433
- // Result types with typed state (or JSONObject for DocumentModel)
434
- // The state type (${documentName}_${documentName}State) is defined in getDocumentModelTypeDefs()
435
- // Uses revisionsList with shared Revision type to match ReactorSubgraph pattern
436
- const resultTypes = `
437
- """
438
- Mutation result type for ${documentName} operations with typed state.
439
- Matches ReactorSubgraph PHDocument pattern with revisionsList.
440
- """
441
- type ${documentName}MutationResult {
442
- id: String!
443
- slug: String
444
- name: String!
445
- documentType: String!
446
- state: ${stateType}
447
- revisionsList: [Revision!]!
448
- createdAtUtcIso: DateTime!
449
- lastModifiedAtUtcIso: DateTime!
450
- }
451
-
452
- """
453
- Document with children for ${documentName}
454
- """
455
- type ${documentName}_DocumentWithChildren {
456
- document: ${documentName}MutationResult!
457
- childIds: [String!]!
458
- }
459
-
460
- """
461
- Paginated result type for ${documentName} documents
462
- """
463
- type ${documentName}_DocumentResultPage {
464
- items: [${documentName}MutationResult!]!
465
- totalCount: Int!
466
- hasNextPage: Boolean!
467
- hasPreviousPage: Boolean!
468
- cursor: String
469
- }
470
- `;
471
- // Flat queries (not nested) - prefixed input types to avoid conflicts
472
- const queries = `
473
- type Query {
474
- """Get a specific ${documentName} document by identifier"""
475
- ${documentName}_document(identifier: String!, view: ${documentName}_ViewFilterInput): ${documentName}_DocumentWithChildren
476
-
477
- """Find ${documentName} documents by search criteria"""
478
- ${documentName}_findDocuments(search: ${documentName}_SearchFilterInput!, view: ${documentName}_ViewFilterInput, paging: ${documentName}_PagingInput): ${documentName}_DocumentResultPage!
479
-
480
- """Get children of a ${documentName} document"""
481
- ${documentName}_documentChildren(parentIdentifier: String!, view: ${documentName}_ViewFilterInput, paging: ${documentName}_PagingInput): ${documentName}_DocumentResultPage!
482
-
483
- """Get parents of a ${documentName} document"""
484
- ${documentName}_documentParents(childIdentifier: String!, view: ${documentName}_ViewFilterInput, paging: ${documentName}_PagingInput): ${documentName}_DocumentResultPage!
485
- }
486
- `;
487
- // Mutations: sync and async versions
488
- const createDocumentMutation = `${documentName}_createDocument(name: String!, parentIdentifier: String): ${documentName}MutationResult!`;
489
- const createEmptyDocumentMutation = `${documentName}_createEmptyDocument(parentIdentifier: String): ${documentName}MutationResult!`;
490
- const operationMutations = specification?.modules
491
- .flatMap((module) => module.operations
492
- .filter((op) => op.name && hasValidSchema(op.schema))
493
- .flatMap((op) => [
494
- // Sync mutation
495
- `${documentName}_${camelCase(op.name)}(docId: PHID!, input: ${documentName}_${pascalCase(op.name)}Input!): ${documentName}MutationResult!`,
496
- // Async mutation
497
- `${documentName}_${camelCase(op.name)}Async(docId: PHID!, input: ${documentName}_${pascalCase(op.name)}Input!): String!`,
498
- ]))
499
- .join("\n ") ?? "";
500
- const moduleSchemas = specification?.modules
501
- .filter((module) => module.operations.some((op) => hasValidSchema(op.schema)))
502
- .map((module) => `"""
503
- Module: ${pascalCase(module.name)}
504
- """
505
- ${module.operations
506
- .filter((op) => hasValidSchema(op.schema))
507
- .map((op) => applyGraphQLTypePrefixes(op.schema ?? "", documentName, allTypeNames))
508
- .join("\n ")}`)
509
- .join("\n") ?? "";
510
- return gql `
511
- scalar DateTime
512
- scalar JSONObject
513
-
514
- ${revisionType}
515
-
516
- ${sharedBaseTypes}
517
-
518
- ${fullStateType}
519
-
520
- ${commonInputTypes}
521
-
522
- ${resultTypes}
523
-
524
- """
525
- Queries: ${documentName} Document
526
- """
527
- ${queries}
528
-
529
- """
530
- Mutations: ${documentName}
531
- """
532
- type Mutation {
533
- ${createDocumentMutation}
534
- ${createEmptyDocumentMutation}
535
-
536
- ${operationMutations}
537
- }
538
-
539
- ${prefixedStateInputTypes
540
- ? `"""
541
- Input Types from State Schema
542
- """
543
- ${prefixedStateInputTypes}`
544
- : ""}
545
-
546
- ${moduleSchemas}`;
547
- }
548
- //# sourceMappingURL=create-schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-schema.js","sourceRoot":"","sources":["../../../src/utils/create-schema.ts"],"names":[],"mappings":"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"}
@@ -1,74 +0,0 @@
1
- import type { Knex } from "knex";
2
- import { type Generated, Kysely } from "kysely";
3
- /**
4
- * Permission levels for documents:
5
- * - READ: Can fetch and read the document
6
- * - WRITE: Can push updates and modify the document
7
- * - ADMIN: Can manage document permissions and settings
8
- */
9
- export type DocumentPermissionLevel = "READ" | "WRITE" | "ADMIN";
10
- /**
11
- * Database schema for document permissions
12
- */
13
- export interface DocumentPermissionDatabase {
14
- DocumentPermission: DocumentPermissionTable;
15
- Group: GroupTable;
16
- UserGroup: UserGroupTable;
17
- DocumentGroupPermission: DocumentGroupPermissionTable;
18
- OperationUserPermission: OperationUserPermissionTable;
19
- OperationGroupPermission: OperationGroupPermissionTable;
20
- }
21
- export interface DocumentPermissionTable {
22
- id: Generated<number>;
23
- documentId: string;
24
- userAddress: string;
25
- permission: DocumentPermissionLevel;
26
- grantedBy: string;
27
- createdAt: Date;
28
- updatedAt: Date;
29
- }
30
- export interface GroupTable {
31
- id: Generated<number>;
32
- name: string;
33
- description: string | null;
34
- createdAt: Date;
35
- updatedAt: Date;
36
- }
37
- export interface UserGroupTable {
38
- userAddress: string;
39
- groupId: number;
40
- createdAt: Date;
41
- }
42
- export interface DocumentGroupPermissionTable {
43
- id: Generated<number>;
44
- documentId: string;
45
- groupId: number;
46
- permission: DocumentPermissionLevel;
47
- grantedBy: string;
48
- createdAt: Date;
49
- updatedAt: Date;
50
- }
51
- export interface OperationUserPermissionTable {
52
- id: Generated<number>;
53
- documentId: string;
54
- operationType: string;
55
- userAddress: string;
56
- grantedBy: string;
57
- createdAt: Date;
58
- }
59
- export interface OperationGroupPermissionTable {
60
- id: Generated<number>;
61
- documentId: string;
62
- operationType: string;
63
- groupId: number;
64
- grantedBy: string;
65
- createdAt: Date;
66
- }
67
- type Db = Kysely<any>;
68
- export declare function getDbClient(connectionString?: string | undefined): {
69
- db: Db;
70
- knex: Knex;
71
- };
72
- export declare const initAnalyticsStoreSql: string[];
73
- export {};
74
- //# sourceMappingURL=db.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../src/utils/db.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhD;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,kBAAkB,EAAE,uBAAuB,CAAC;IAC5C,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,cAAc,CAAC;IAC1B,uBAAuB,EAAE,4BAA4B,CAAC;IACtD,uBAAuB,EAAE,4BAA4B,CAAC;IACtD,wBAAwB,EAAE,6BAA6B,CAAC;CACzD;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,uBAAuB,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAGD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,uBAAuB,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAGD,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,KAAK,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAYtB,wBAAgB,WAAW,CAAC,gBAAgB,GAAE,MAAM,GAAG,SAAqB,GAAG;IAC7E,EAAE,EAAE,EAAE,CAAC;IACP,IAAI,EAAE,IAAI,CAAC;CACZ,CA6BA;AAED,eAAO,MAAM,qBAAqB,UA2DjC,CAAC"}