@chorus-aidlc/chorus 0.7.0 → 0.8.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 (282) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +319 -319
  3. package/.next/standalone/.next/app-path-routes-manifest.json +40 -40
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +36 -36
  6. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +1 -1
  7. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +1 -1
  9. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +1 -1
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +1 -1
  16. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +2 -2
  18. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page.js +1 -1
  20. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page.js.nft.json +1 -1
  21. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page.js +1 -1
  23. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
  26. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +1 -1
  29. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
  31. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
  33. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
  36. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +2 -2
  39. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -2
  41. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  45. package/.next/standalone/.next/server/app/_not-found.rsc +6 -6
  46. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/admin/companies/new.html +1 -1
  49. package/.next/standalone/.next/server/app/admin/companies/new.rsc +6 -6
  50. package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/admin/companies.html +1 -1
  52. package/.next/standalone/.next/server/app/admin/companies.rsc +6 -6
  53. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/admin.html +1 -1
  55. package/.next/standalone/.next/server/app/admin.rsc +6 -6
  56. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  61. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  70. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/comments/route.js +1 -1
  76. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js +1 -1
  78. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  83. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  86. package/.next/standalone/.next/server/app/api/mcp/route.js +3 -3
  87. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/me/assignments/route.js +1 -1
  89. package/.next/standalone/.next/server/app/api/me/assignments/route.js.nft.json +1 -1
  90. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/api/mentionables/route.js +1 -1
  92. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  93. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  95. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  96. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  102. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  103. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
  104. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js.nft.json +1 -1
  105. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  106. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js +1 -1
  107. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  108. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  111. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route.js +1 -1
  112. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route.js +1 -1
  114. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route.js +1 -1
  116. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route.js +1 -1
  119. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  120. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  121. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  123. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route.js +1 -1
  124. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  125. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route.js +1 -1
  126. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route.js +1 -1
  128. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  129. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route.js +1 -1
  130. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route.js +1 -1
  132. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  133. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  135. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  136. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  138. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  139. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  140. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  141. package/.next/standalone/.next/server/app/index.html +1 -1
  142. package/.next/standalone/.next/server/app/index.rsc +6 -6
  143. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  144. package/.next/standalone/.next/server/app/login/admin.html +1 -1
  145. package/.next/standalone/.next/server/app/login/admin.rsc +6 -6
  146. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/login/callback.html +1 -1
  148. package/.next/standalone/.next/server/app/login/callback.rsc +6 -6
  149. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  150. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/app/login/pick-workspace.html +1 -1
  152. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +6 -6
  153. package/.next/standalone/.next/server/app/login/silent-refresh/page_client-reference-manifest.js +1 -1
  154. package/.next/standalone/.next/server/app/login/silent-refresh.html +1 -1
  155. package/.next/standalone/.next/server/app/login/silent-refresh.rsc +6 -6
  156. package/.next/standalone/.next/server/app/login.html +1 -1
  157. package/.next/standalone/.next/server/app/login.rsc +6 -6
  158. package/.next/standalone/.next/server/app/onboarding/page.js +4 -3
  159. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/onboarding.html +1 -1
  162. package/.next/standalone/.next/server/app/onboarding.rsc +7 -7
  163. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  164. package/.next/standalone/.next/server/app/projects.html +1 -1
  165. package/.next/standalone/.next/server/app/projects.rsc +7 -7
  166. package/.next/standalone/.next/server/app/settings.html +1 -1
  167. package/.next/standalone/.next/server/app/settings.rsc +8 -8
  168. package/.next/standalone/.next/server/app-paths-manifest.json +40 -40
  169. package/.next/standalone/.next/server/chunks/1002.js +1 -1
  170. package/.next/standalone/.next/server/chunks/1596.js +2 -2
  171. package/.next/standalone/.next/server/chunks/1673.js +1 -0
  172. package/.next/standalone/.next/server/chunks/1871.js +1 -1
  173. package/.next/standalone/.next/server/chunks/2570.js +1 -1
  174. package/.next/standalone/.next/server/chunks/2618.js +1 -1
  175. package/.next/standalone/.next/server/chunks/2961.js +1 -1
  176. package/.next/standalone/.next/server/chunks/{2675.js → 3139.js} +1 -1
  177. package/.next/standalone/.next/server/chunks/3405.js +1 -0
  178. package/.next/standalone/.next/server/chunks/4294.js +1 -0
  179. package/.next/standalone/.next/server/chunks/{8251.js → 5044.js} +1 -1
  180. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  181. package/.next/standalone/.next/server/chunks/6207.js +1 -1
  182. package/.next/standalone/.next/server/chunks/6836.js +1 -0
  183. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  184. package/.next/standalone/.next/server/chunks/8322.js +2 -2
  185. package/.next/standalone/.next/server/chunks/8881.js +1 -1
  186. package/.next/standalone/.next/server/chunks/920.js +1 -1
  187. package/.next/standalone/.next/server/chunks/937.js +2 -2
  188. package/.next/standalone/.next/server/chunks/9508.js +2 -2
  189. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  190. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  191. package/.next/standalone/.next/server/next-font-manifest.js +1 -1
  192. package/.next/standalone/.next/server/next-font-manifest.json +1 -1
  193. package/.next/standalone/.next/server/pages/404.html +1 -1
  194. package/.next/standalone/.next/server/pages/500.html +1 -1
  195. package/.next/standalone/.next/server/pages-manifest.json +1 -1
  196. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  197. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  198. package/.next/standalone/.next/static/chunks/10739-a14d0dc7271f247e.js +1 -0
  199. package/.next/standalone/.next/static/chunks/19126-f1bc396538752bce.js +1 -0
  200. package/.next/standalone/.next/static/chunks/{53664-a2be2eaacce03f0f.js → 23588-66d80958224a8544.js} +1 -1
  201. package/.next/standalone/.next/static/chunks/32190-a110356fb68a4333.js +1 -0
  202. package/.next/standalone/.next/static/chunks/{4860.d626399834b496e5.js → 4860.15c9ae5b6268c6fc.js} +1 -1
  203. package/.next/standalone/.next/static/chunks/65371-d3686d82abca6495.js +1 -0
  204. package/.next/standalone/.next/static/chunks/70317-49653c6dce23f1d9.js +1 -0
  205. package/.next/standalone/.next/static/chunks/8731-7869a6ed671c63a3.js +1 -0
  206. package/.next/standalone/.next/static/chunks/{99373.aedaca88297c6d8b.js → 99373.9939e11f5b4e0615.js} +1 -1
  207. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-719f0815a37f19be.js +1 -0
  208. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-bc8c3c0362de377c.js +1 -0
  209. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-c1c4b5798c494341.js +1 -0
  210. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-29ac4172940780e0.js +1 -0
  211. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/{page-2d820769aa7bcaf6.js → page-e59232665c3a0412.js} +1 -1
  212. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/ideas/{page-dec0e71221d77928.js → page-9b1e02b5e2cfb410.js} +1 -1
  213. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-567e98e9e90a7ef1.js +1 -0
  214. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/{page-bc66567cb9c40bf0.js → page-31f4ffd9778a39ed.js} +1 -1
  215. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/{page-86cfeb421fa97830.js → page-8eded17e1e44522d.js} +1 -1
  216. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/{page-7fe70579023330da.js → page-e5c99f2020b904f5.js} +1 -1
  217. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/{page-8c51993bb3866a55.js → page-7947010e9684fbcf.js} +1 -1
  218. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-a01b45dbe80aeecf.js +1 -0
  219. package/.next/standalone/.next/static/chunks/app/{layout-22f1a931323bbb60.js → layout-482dee7dace72c88.js} +1 -1
  220. package/.next/standalone/.next/static/chunks/app/onboarding/page-ac0593c045c64013.js +1 -0
  221. package/.next/standalone/.next/static/chunks/{webpack-da41e6b9f3fe2f48.js → webpack-1bb984dd0934fa96.js} +1 -1
  222. package/.next/standalone/.next/static/css/84edd78de243cde6.css +1 -0
  223. package/.next/standalone/.next/static/css/{ca9796ac54f96058.css → a577d38ad6d7491b.css} +1 -1
  224. package/.next/standalone/.next/static/media/0f1bdadaf30e2d5f-s.woff2 +0 -0
  225. package/.next/standalone/.next/static/media/22a5144ee8d83bca-s.p.woff2 +0 -0
  226. package/.next/standalone/.next/static/media/2c34d62a75506231-s.woff2 +0 -0
  227. package/.next/standalone/.next/static/media/601f5c280d60caca-s.woff2 +0 -0
  228. package/.next/standalone/.next/static/media/9766a7e9e2e0ad5a-s.woff2 +0 -0
  229. package/.next/standalone/.next/static/media/a115172161b307bb-s.woff2 +0 -0
  230. package/.next/standalone/.next/static/media/aa016aab0e6d1295-s.woff2 +0 -0
  231. package/.next/standalone/.next/static/media/b66cf8e69499582a-s.woff2 +0 -0
  232. package/.next/standalone/.next/static/media/d100b2a099e34044-s.woff2 +0 -0
  233. package/.next/standalone/.next/static/media/f5271587012faf78-s.p.woff2 +0 -0
  234. package/.next/standalone/.next/static/media/f639721981034f88-s.woff2 +0 -0
  235. package/.next/standalone/package.json +1 -1
  236. package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +7 -1
  237. package/.next/standalone/public/chorus-plugin/agents/proposal-reviewer.md +1 -1
  238. package/.next/standalone/public/chorus-plugin/agents/task-reviewer.md +1 -1
  239. package/.next/standalone/public/chorus-plugin/bin/on-post-verify-task.sh +190 -0
  240. package/.next/standalone/public/chorus-plugin/bin/on-session-start.sh +58 -0
  241. package/.next/standalone/public/chorus-plugin/bin/test-syntax.sh +1 -0
  242. package/.next/standalone/public/chorus-plugin/bin/tests/test-on-post-verify-task.sh +365 -0
  243. package/.next/standalone/public/chorus-plugin/hooks/hooks.json +9 -0
  244. package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +2 -1
  245. package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +9 -1
  246. package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +1 -1
  247. package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +436 -0
  248. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +11 -1
  249. package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +1 -1
  250. package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
  251. package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +26 -4
  252. package/.next/standalone/public/install-opencode.sh +284 -0
  253. package/README.md +44 -10
  254. package/README.zh.md +24 -10
  255. package/chorus.mjs +56 -12
  256. package/package.json +1 -1
  257. package/.next/standalone/.next/server/chunks/1639.js +0 -1
  258. package/.next/standalone/.next/server/chunks/3300.js +0 -1
  259. package/.next/standalone/.next/server/chunks/8584.js +0 -1
  260. package/.next/standalone/.next/server/chunks/9051.js +0 -1
  261. package/.next/standalone/.next/static/chunks/10739-5c185aa0432f5d56.js +0 -1
  262. package/.next/standalone/.next/static/chunks/19126-858a24cab6fd338a.js +0 -1
  263. package/.next/standalone/.next/static/chunks/29445-04c4ab36da85b7da.js +0 -1
  264. package/.next/standalone/.next/static/chunks/39611-cc227784ed679a6d.js +0 -1
  265. package/.next/standalone/.next/static/chunks/96919-8cbf6310c703e7af.js +0 -1
  266. package/.next/standalone/.next/static/chunks/99513-24849ff68a8098e1.js +0 -1
  267. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-acddb9c84f5d1607.js +0 -1
  268. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-b4c6141dd26cc506.js +0 -1
  269. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-4bf7bff8d68509f9.js +0 -1
  270. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-37a0cea0ba40c31b.js +0 -1
  271. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-355321010dd82e56.js +0 -1
  272. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-8db25385236a9bbf.js +0 -1
  273. package/.next/standalone/.next/static/chunks/app/onboarding/page-e9409a2935c3c480.js +0 -1
  274. package/.next/standalone/.next/static/css/de70bee13400563f.css +0 -1
  275. package/.next/standalone/.next/static/media/4cf2300e9c8272f7-s.p.woff2 +0 -0
  276. package/.next/standalone/.next/static/media/747892c23ea88013-s.woff2 +0 -0
  277. package/.next/standalone/.next/static/media/8d697b304b401681-s.woff2 +0 -0
  278. package/.next/standalone/.next/static/media/93f479601ee12b01-s.p.woff2 +0 -0
  279. package/.next/standalone/.next/static/media/9610d9e46709d722-s.woff2 +0 -0
  280. package/.next/standalone/.next/static/media/ba015fad6dcf6784-s.woff2 +0 -0
  281. /package/.next/standalone/.next/static/{CQcM9hNpa5m8P_K5qveuk → CqUAJ6h-gVfCxU6FvVekP}/_buildManifest.js +0 -0
  282. /package/.next/standalone/.next/static/{CQcM9hNpa5m8P_K5qveuk → CqUAJ6h-gVfCxU6FvVekP}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- exports.id=937,exports.ids=[937],exports.modules={881:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(41138);function e(a){setTimeout(function(){throw a},0)}b.default=function(a,b,c){return"function"==typeof b&&a.then(a=>{let f;(f=void 0!==c&&Object(c).spread&&Array.isArray(a)?d.tryCatch(b).apply(void 0,[null].concat(a)):void 0===a?d.tryCatch(b)(null):d.tryCatch(b)(null,a))===d.errorObj&&e(f.e)},a=>{if(!a){let b=Error(a+"");Object.assign(b,{cause:a}),a=b}let c=d.tryCatch(b)(a);c===d.errorObj&&e(c.e)}),a}},950:(a,b,c)=>{a.exports=function(a){function b(a){let c,e,f,g=null;function h(...a){if(!h.enabled)return;let d=Number(new Date);h.diff=d-(c||d),h.prev=c,h.curr=d,c=d,a[0]=b.coerce(a[0]),"string"!=typeof a[0]&&a.unshift("%O");let e=0;a[0]=a[0].replace(/%([a-zA-Z%])/g,(c,d)=>{if("%%"===c)return"%";e++;let f=b.formatters[d];if("function"==typeof f){let b=a[e];c=f.call(h,b),a.splice(e,1),e--}return c}),b.formatArgs.call(h,a),(h.log||b.log).apply(h,a)}return h.namespace=a,h.useColors=b.useColors(),h.color=b.selectColor(a),h.extend=d,h.destroy=b.destroy,Object.defineProperty(h,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==g?g:(e!==b.namespaces&&(e=b.namespaces,f=b.enabled(a)),f),set:a=>{g=a}}),"function"==typeof b.init&&b.init(h),h}function d(a,c){let d=b(this.namespace+(void 0===c?":":c)+a);return d.log=this.log,d}function e(a,b){let c=0,d=0,e=-1,f=0;for(;c<a.length;)if(d<b.length&&(b[d]===a[c]||"*"===b[d]))"*"===b[d]?(e=d,f=c):c++,d++;else{if(-1===e)return!1;d=e+1,c=++f}for(;d<b.length&&"*"===b[d];)d++;return d===b.length}return b.debug=b,b.default=b,b.coerce=function(a){return a instanceof Error?a.stack||a.message:a},b.disable=function(){let a=[...b.names,...b.skips.map(a=>"-"+a)].join(",");return b.enable(""),a},b.enable=function(a){for(let c of(b.save(a),b.namespaces=a,b.names=[],b.skips=[],("string"==typeof a?a:"").trim().replace(/\s+/g,",").split(",").filter(Boolean)))"-"===c[0]?b.skips.push(c.slice(1)):b.names.push(c)},b.enabled=function(a){for(let c of b.skips)if(e(a,c))return!1;for(let c of b.names)if(e(a,c))return!0;return!1},b.humanize=c(32011),b.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(a).forEach(c=>{b[c]=a[c]}),b.names=[],b.skips=[],b.formatters={},b.selectColor=function(a){let c=0;for(let b=0;b<a.length;b++)c=(c<<5)-c+a.charCodeAt(b)|0;return b.colors[Math.abs(c)%b.colors.length]},b.enable(b.load()),b}},3820:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(91645),e=c(34631),f=c(54187),g=c(18797);class h extends g.default{constructor(a){super(a.disconnectTimeout),this.options=a}connect(a){let b,{options:c}=this;return this.connecting=!0,"path"in c&&c.path?b={path:c.path}:(b={},"port"in c&&null!=c.port&&(b.port=c.port),"host"in c&&null!=c.host&&(b.host=c.host),"family"in c&&null!=c.family&&(b.family=c.family)),c.tls&&Object.assign(b,c.tls),new Promise((a,g)=>{process.nextTick(()=>{if(!this.connecting)return void g(Error(f.CONNECTION_CLOSED_ERROR_MSG));try{c.tls?this.stream=(0,e.connect)(b):this.stream=(0,d.createConnection)(b)}catch(a){g(a);return}this.stream.once("error",a=>{this.firstError=a}),a(this.stream)})})}}b.default=h},9666:function(a,b,c){"use strict";var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.getKeyIndexes=b.hasFlag=b.exists=b.list=void 0;let e=d(c(39176));b.list=Object.keys(e.default);let f={};function g(a){"string"!=typeof a&&(a=String(a));let b=a.indexOf("->");return -1===b?a.length:b}b.list.forEach(a=>{f[a]=e.default[a].flags.reduce(function(a,b){return a[b]=!0,a},{})}),b.exists=function(a,b){return a=(null==b?void 0:b.caseInsensitive)?String(a).toLowerCase():a,!!e.default[a]},b.hasFlag=function(a,b,c){if(!f[a=(null==c?void 0:c.nameCaseInsensitive)?String(a).toLowerCase():a])throw Error("Unknown command "+a);return!!f[a][b]},b.getKeyIndexes=function(a,b,c){a=(null==c?void 0:c.nameCaseInsensitive)?String(a).toLowerCase():a;let d=e.default[a];if(!d)throw Error("Unknown command "+a);if(!Array.isArray(b))throw Error("Expect args to be an array");let f=[],h=!!(c&&c.parseExternalKey),i=(a,b)=>{let c=[],d=Number(a[b]);for(let a=0;a<d;a++)c.push(a+b+1);return c},j=(a,b,c)=>{for(let d=b;d<a.length-1;d+=1)if(String(a[d]).toLowerCase()===c.toLowerCase())return d+1;return null};switch(a){case"zunionstore":case"zinterstore":case"zdiffstore":f.push(0,...i(b,1));break;case"eval":case"evalsha":case"eval_ro":case"evalsha_ro":case"fcall":case"fcall_ro":case"blmpop":case"bzmpop":f.push(...i(b,1));break;case"sintercard":case"lmpop":case"zunion":case"zinter":case"zmpop":case"zintercard":case"zdiff":f.push(...i(b,0));break;case"georadius":{f.push(0);let a=j(b,5,"STORE");a&&f.push(a);let c=j(b,5,"STOREDIST");c&&f.push(c);break}case"georadiusbymember":{f.push(0);let a=j(b,4,"STORE");a&&f.push(a);let c=j(b,4,"STOREDIST");c&&f.push(c);break}case"sort":case"sort_ro":f.push(0);for(let a=1;a<b.length-1;a++){let c=b[a];if("string"!=typeof c)continue;let d=c.toUpperCase();"GET"===d?(a+=1,"#"!==(c=b[a])&&(h?f.push([a,g(c)]):f.push(a))):"BY"===d?(a+=1,h?f.push([a,g(b[a])]):f.push(a)):"STORE"===d&&(a+=1,f.push(a))}break;case"migrate":if(""===b[2])for(let a=5;a<b.length-1;a++){let c=b[a];if("string"==typeof c&&"KEYS"===c.toUpperCase()){for(let c=a+1;c<b.length;c++)f.push(c);break}}else f.push(2);break;case"xreadgroup":case"xread":for(let c=3*("xread"!==a);c<b.length-1;c++)if("STREAMS"===String(b[c]).toUpperCase()){for(let a=c+1;a<=c+(b.length-1-c)/2;a++)f.push(a);break}break;default:if(d.step>0){let a=d.keyStart-1,c=d.keyStop>0?d.keyStop:b.length+d.keyStop+1;for(let b=a;b<c;b+=d.step)f.push(b)}}return f}},10713:(a,b,c)=>{"use strict";c.d(b,{B:()=>s});var d=c(94735),e=c(55511),f=c(29229),g=c.n(f),h=c(37614);let i=h.A.child({module:"redis"}),j=function(){if(process.env.REDIS_URL)return process.env.REDIS_URL;let a=process.env.REDIS_HOST;if(!a)return;let b=process.env.REDIS_PORT||"6379",c=process.env.REDIS_USERNAME||"default",d=process.env.REDIS_PASSWORD,e="rediss";return d?`${e}://${c}:${encodeURIComponent(d)}@${a}:${b}`:`${e}://${a}:${b}`}(),k=globalThis;function l(a){let b=new(g())(j,{lazyConnect:!0,maxRetriesPerRequest:null,retryStrategy(b){let c=Math.min(200*b,5e3);return i.warn({name:a,delay:c,attempt:b},"Reconnecting"),c}});return b.on("error",b=>{i.error({name:a,err:b},"Redis error")}),b.on("connect",()=>{i.info({name:a},"Connected")}),b}function m(){return j?(k.redisPub||(k.redisPub=l("pub")),k.redisPub):null}function n(){return j?(k.redisSub||(k.redisSub=l("sub")),k.redisSub):null}let o=h.A.child({module:"event-bus"}),p="chorus:events";class q extends d.EventEmitter{static{this.THROTTLE_WINDOW_MS=2e3}static{this.EVICTION_INTERVAL_MS=3e4}static{this.EVICTION_TTL_MS=3e4}async connect(){if(this._connected||!j)return;this._connected=!0;let a=n(),b=m();a&&(await a.connect(),b&&await b.connect(),await a.subscribe(p),a.on("message",(a,b)=>{try{let a=JSON.parse(b);if(a._origin===this._instanceId)return;let c=null!==a.data&&"object"==typeof a.data?{...a.data,_remote:!0}:a.data;super.emit(a.channel,c)}catch{}}))}emit(a,...b){if("string"==typeof a&&j){let c=m();if(c&&"ready"===c.status){let d={_origin:this._instanceId,channel:a,data:b[0]};c.publish(p,JSON.stringify(d)).catch(()=>{})}}return super.emit(a,...b)}emitPresence(a){let b=`${a.agentUuid}:${a.entityType}:${a.entityUuid}${a.subEntityType?`:${a.subEntityType}`:""}${a.subEntityUuid?`:${a.subEntityUuid}`:""}`,c=Date.now(),d=this._presenceThrottle.get(b);d&&c-d<q.THROTTLE_WINDOW_MS||(this._presenceThrottle.set(b,c),this._ensureEvictionTimer(),this.emit("presence",a))}_ensureEvictionTimer(){!this._evictionTimer&&(this._evictionTimer=setInterval(()=>{let a=Date.now();for(let[b,c]of this._presenceThrottle)a-c>=q.EVICTION_TTL_MS&&this._presenceThrottle.delete(b);0===this._presenceThrottle.size&&(clearInterval(this._evictionTimer),this._evictionTimer=null)},q.EVICTION_INTERVAL_MS),this._evictionTimer&&"object"==typeof this._evictionTimer&&"unref"in this._evictionTimer&&this._evictionTimer.unref())}get _throttleMapSize(){return this._presenceThrottle.size}_resetPresenceState(){this._presenceThrottle.clear(),this._evictionTimer&&(clearInterval(this._evictionTimer),this._evictionTimer=null)}emitChange(a){this.emit("change",a)}async disconnect(){let a=m(),b=n();b&&await b.quit().catch(()=>{}),a&&await a.quit().catch(()=>{}),this._connected=!1}constructor(...a){super(...a),this._connected=!1,this._instanceId=(0,e.randomUUID)(),this._presenceThrottle=new Map,this._evictionTimer=null}}let r=globalThis,s=r.chorusEventBus??=new q;j&&s.connect().catch(a=>{o.error({err:a},"Redis connect failed, falling back to memory")})},11309:(a,b,c)=>{"use strict";c.d(b,{UE:()=>f,sL:()=>e});var d=c(96009),e=class extends Error{name="DriverAdapterError";cause;constructor(a){super("string"==typeof a.message?a.message:a.kind),this.cause=a}};(0,d.y)("driver-adapter-utils");var f={Int32:0,Int64:1,Float:2,Double:3,Numeric:4,Boolean:5,Character:6,Text:7,Date:8,Time:9,DateTime:10,Json:11,Enum:12,Bytes:13,Set:14,Uuid:15,Int32Array:64,Int64Array:65,FloatArray:66,DoubleArray:67,NumericArray:68,BooleanArray:69,CharacterArray:70,TextArray:71,DateArray:72,TimeArray:73,DateTimeArray:74,JsonArray:75,EnumArray:76,BytesArray:77,UuidArray:78,UnknownNumber:128};Error("Not implemented: queryRaw"),Error("Not implemented: executeRaw"),Error("Not implemented: startTransaction"),Error("Not implemented: executeScript"),Error("Not implemented: dispose")},12590:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(55511),e=c(14642),f=c(881);class g{constructor(a,b=null,c="",f=!1){this.lua=a,this.numberOfKeys=b,this.keyPrefix=c,this.readOnly=f,this.sha=(0,d.createHash)("sha1").update(a).digest("hex");let g=this.sha,h=new WeakSet;this.Command=class extends e.default{toWritable(b){let c=this.reject;return this.reject=a=>{-1!==a.message.indexOf("NOSCRIPT")&&h.delete(b),c.call(this,a)},h.has(b)?"eval"===this.name&&(this.name="evalsha",this.args[0]=g):(h.add(b),this.name="eval",this.args[0]=a),super.toWritable(b)}}}execute(a,b,c,d){"number"==typeof this.numberOfKeys&&b.unshift(this.numberOfKeys),this.keyPrefix&&(c.keyPrefix=this.keyPrefix),this.readOnly&&(c.readOnly=!0);let e=new this.Command("evalsha",[this.sha,...b],c);return e.promise=e.promise.catch(d=>{if(-1===d.message.indexOf("NOSCRIPT"))throw d;let e=new this.Command("evalsha",[this.sha,...b],c);return(a.isPipeline?a.redis:a).sendCommand(e)}),(0,f.default)(e.promise,d),a.sendCommand(e)}}b.default=g},14642:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(9666),e=c(91957),f=c(881),g=c(54187),h=c(85316);class i{constructor(a,b=[],c={},d){if(this.name=a,this.inTransaction=!1,this.isResolved=!1,this.transformed=!1,this.replyEncoding=c.replyEncoding,this.errorStack=c.errorStack,this.args=b.flat(),this.callback=d,this.initPromise(),c.keyPrefix){let a=c.keyPrefix instanceof Buffer,b=a?c.keyPrefix:null;this._iterateKeys(d=>d instanceof Buffer?(null===b&&(b=Buffer.from(c.keyPrefix)),Buffer.concat([b,d])):a?Buffer.concat([c.keyPrefix,Buffer.from(String(d))]):c.keyPrefix+d)}c.readOnly&&(this.isReadOnly=!0)}static checkFlag(a,b){return b=b.toLowerCase(),!!this.getFlagMap()[a][b]}static setArgumentTransformer(a,b){this._transformer.argument[a]=b}static setReplyTransformer(a,b){this._transformer.reply[a]=b}static getFlagMap(){return this.flagMap||(this.flagMap=Object.keys(i.FLAGS).reduce((a,b)=>(a[b]={},i.FLAGS[b].forEach(c=>{a[b][c]=!0}),a),{})),this.flagMap}getSlot(){if(void 0===this.slot){let a=this.getKeys()[0];this.slot=null==a?null:e(a)}return this.slot}getKeys(){return this._iterateKeys()}toWritable(a){let b,c="*"+(this.args.length+1)+"\r\n$"+Buffer.byteLength(this.name)+"\r\n"+this.name+"\r\n";if(this.bufferMode){let a=new l;a.push(c);for(let b=0;b<this.args.length;++b){let c=this.args[b];c instanceof Buffer?0===c.length?a.push("$0\r\n\r\n"):(a.push("$"+c.length+"\r\n"),a.push(c),a.push("\r\n")):a.push("$"+Buffer.byteLength(c)+"\r\n"+c+"\r\n")}b=a.toBuffer()}else{b=c;for(let a=0;a<this.args.length;++a){let c=this.args[a];b+="$"+Buffer.byteLength(c)+"\r\n"+c+"\r\n"}}return b}stringifyArguments(){for(let a=0;a<this.args.length;++a){let b=this.args[a];"string"==typeof b||(b instanceof Buffer?this.bufferMode=!0:this.args[a]=(0,g.toArg)(b))}}transformReply(a){this.replyEncoding&&(a=(0,g.convertBufferToString)(a,this.replyEncoding));let b=i._transformer.reply[this.name];return b&&(a=b(a)),a}setTimeout(a){this._commandTimeoutTimer||(this._commandTimeoutTimer=setTimeout(()=>{this.isResolved||this.reject(Error("Command timed out"))},a))}setBlockingTimeout(a){if(a<=0)return;this._blockingTimeoutTimer&&(clearTimeout(this._blockingTimeoutTimer),this._blockingTimeoutTimer=void 0);let b=Date.now();void 0===this._blockingDeadline&&(this._blockingDeadline=b+a);let c=this._blockingDeadline-b;if(c<=0)return void this.resolve(null);this._blockingTimeoutTimer=setTimeout(()=>{if(this.isResolved){this._blockingTimeoutTimer=void 0;return}this._blockingTimeoutTimer=void 0,this.resolve(null)},c)}extractBlockingTimeout(){let a=this.args;if(!a||0===a.length)return;let b=this.name.toLowerCase();return i.checkFlag("LAST_ARG_TIMEOUT_COMMANDS",b)?(0,h.parseSecondsArgument)(a[a.length-1]):i.checkFlag("FIRST_ARG_TIMEOUT_COMMANDS",b)?(0,h.parseSecondsArgument)(a[0]):i.checkFlag("BLOCK_OPTION_COMMANDS",b)?(0,h.parseBlockOption)(a):void 0}_clearTimers(){let a=this._commandTimeoutTimer;a&&(clearTimeout(a),delete this._commandTimeoutTimer);let b=this._blockingTimeoutTimer;b&&(clearTimeout(b),delete this._blockingTimeoutTimer)}initPromise(){let a=new Promise((a,b)=>{if(!this.transformed){this.transformed=!0;let a=i._transformer.argument[this.name];a&&(this.args=a(this.args)),this.stringifyArguments()}this.resolve=this._convertValue(a),this.reject=a=>{this._clearTimers(),this.errorStack?b((0,g.optimizeErrorStack)(a,this.errorStack.stack,__dirname)):b(a)}});this.promise=(0,f.default)(a,this.callback)}_iterateKeys(a=a=>a){if(void 0===this.keys&&(this.keys=[],(0,d.exists)(this.name,{caseInsensitive:!0})))for(let b of(0,d.getKeyIndexes)(this.name,this.args,{nameCaseInsensitive:!0}))this.args[b]=a(this.args[b]),this.keys.push(this.args[b]);return this.keys}_convertValue(a){return b=>{try{this._clearTimers(),a(this.transformReply(b)),this.isResolved=!0}catch(a){this.reject(a)}return this.promise}}}b.default=i,i.FLAGS={VALID_IN_SUBSCRIBER_MODE:["subscribe","psubscribe","unsubscribe","punsubscribe","ssubscribe","sunsubscribe","ping","quit"],VALID_IN_MONITOR_MODE:["monitor","auth"],ENTER_SUBSCRIBER_MODE:["subscribe","psubscribe","ssubscribe"],EXIT_SUBSCRIBER_MODE:["unsubscribe","punsubscribe","sunsubscribe"],WILL_DISCONNECT:["quit"],HANDSHAKE_COMMANDS:["auth","select","client","readonly","info"],IGNORE_RECONNECT_ON_ERROR:["client"],BLOCKING_COMMANDS:["blpop","brpop","brpoplpush","blmove","bzpopmin","bzpopmax","bzmpop","blmpop","xread","xreadgroup"],LAST_ARG_TIMEOUT_COMMANDS:["blpop","brpop","brpoplpush","blmove","bzpopmin","bzpopmax"],FIRST_ARG_TIMEOUT_COMMANDS:["bzmpop","blmpop"],BLOCK_OPTION_COMMANDS:["xread","xreadgroup"]},i._transformer={argument:{},reply:{}};let j=function(a){if(1===a.length){if(a[0]instanceof Map)return(0,g.convertMapToArray)(a[0]);if("object"==typeof a[0]&&null!==a[0])return(0,g.convertObjectToArray)(a[0])}return a},k=function(a){if(2===a.length){if(a[1]instanceof Map)return[a[0]].concat((0,g.convertMapToArray)(a[1]));if("object"==typeof a[1]&&null!==a[1])return[a[0]].concat((0,g.convertObjectToArray)(a[1]))}return a};i.setArgumentTransformer("mset",j),i.setArgumentTransformer("msetnx",j),i.setArgumentTransformer("hset",k),i.setArgumentTransformer("hmset",k),i.setReplyTransformer("hgetall",function(a){if(Array.isArray(a)){let b={};for(let c=0;c<a.length;c+=2){let d=a[c],e=a[c+1];d in b?Object.defineProperty(b,d,{value:e,configurable:!0,enumerable:!0,writable:!0}):b[d]=e}return b}return a});class l{constructor(){this.length=0,this.items=[]}push(a){this.length+=Buffer.byteLength(a),this.items.push(a)}toBuffer(){let a=Buffer.allocUnsafe(this.length),b=0;for(let c of this.items){let d=Buffer.byteLength(c);Buffer.isBuffer(c)?c.copy(a,b):a.write(c,b,d),b+=d}return a}}},15121:(a,b,c)=>{"use strict";let d=c(12412);class e extends Error{get name(){return this.constructor.name}}class f extends e{constructor(a,b,c){d(b),d.strictEqual(typeof c,"number");let e=Error.stackTraceLimit;Error.stackTraceLimit=2,super(a),Error.stackTraceLimit=e,this.offset=c,this.buffer=b}get name(){return this.constructor.name}}class g extends e{constructor(a){let b=Error.stackTraceLimit;Error.stackTraceLimit=2,super(a),Error.stackTraceLimit=b}get name(){return this.constructor.name}}class h extends e{get name(){return this.constructor.name}}class i extends h{get name(){return this.constructor.name}}a.exports={RedisError:e,ParserError:f,ReplyError:g,AbortError:h,InterruptError:i}},15789:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.SentinelIterator=void 0;let d=c(91645),e=c(54187),f=c(34631),g=c(47824);b.SentinelIterator=g.default;let h=c(18797),i=c(88568),j=c(23142),k=(0,e.Debug)("SentinelConnector");class l extends h.default{constructor(a){if(super(a.disconnectTimeout),this.options=a,this.emitter=null,this.failoverDetector=null,!this.options.sentinels.length)throw Error("Requires at least one sentinel to connect to.");if(!this.options.name)throw Error("Requires the name of master.");this.sentinelIterator=new g.default(this.options.sentinels)}check(a){let b=!a.role||this.options.role===a.role;return b||(k("role invalid, expected %s, but got %s",this.options.role,a.role),this.sentinelIterator.next(),this.sentinelIterator.next(),this.sentinelIterator.reset(!0)),b}disconnect(){super.disconnect(),this.failoverDetector&&this.failoverDetector.cleanup()}connect(a){let b;this.connecting=!0,this.retryAttempts=0;let c=async()=>{let g=this.sentinelIterator.next();if(g.done){this.sentinelIterator.reset(!1);let d="function"==typeof this.options.sentinelRetryStrategy?this.options.sentinelRetryStrategy(++this.retryAttempts):null,e="number"!=typeof d?"All sentinels are unreachable and retry is disabled.":`All sentinels are unreachable. Retrying from scratch after ${d}ms.`;b&&(e+=` Last error: ${b.message}`),k(e);let f=Error(e);if("number"==typeof d)return a("error",f),await new Promise(a=>setTimeout(a,d)),c();throw f}let h=null,i=null;try{h=await this.resolve(g.value)}catch(a){i=a}if(!this.connecting)throw Error(e.CONNECTION_CLOSED_ERROR_MSG);let j=g.value.host+":"+g.value.port;if(h)return k("resolved: %s:%s from sentinel %s",h.host,h.port,j),this.options.enableTLSForSentinelMode&&this.options.tls?(Object.assign(h,this.options.tls),this.stream=(0,f.connect)(h),this.stream.once("secureConnect",this.initFailoverDetector.bind(this))):(this.stream=(0,d.createConnection)(h),this.stream.once("connect",this.initFailoverDetector.bind(this))),this.stream.once("error",a=>{this.firstError=a}),this.stream;{let d=i?"failed to connect to sentinel "+j+" because "+i.message:"connected to sentinel "+j+" successfully, but got an invalid reply: "+h;return k(d),a("sentinelError",Error(d)),i&&(b=i),c()}};return c()}async updateSentinels(a){if(!this.options.updateSentinels)return;let b=await a.sentinel("sentinels",this.options.name);Array.isArray(b)&&(b.map(e.packObject).forEach(a=>{if(-1===(a.flags?a.flags.split(","):[]).indexOf("disconnected")&&a.ip&&a.port){let b=this.sentinelNatResolve(m(a));this.sentinelIterator.add(b)&&k("adding sentinel %s:%s",b.host,b.port)}}),k("Updated internal sentinels: %s",this.sentinelIterator))}async resolveMaster(a){let b=await a.sentinel("get-master-addr-by-name",this.options.name);return await this.updateSentinels(a),this.sentinelNatResolve(Array.isArray(b)?{host:b[0],port:Number(b[1])}:null)}async resolveSlave(a){let b=await a.sentinel("slaves",this.options.name);if(!Array.isArray(b))return null;let c=b.map(e.packObject).filter(a=>a.flags&&!a.flags.match(/(disconnected|s_down|o_down)/));return this.sentinelNatResolve(function(a,b){let c;if(0===a.length)return null;if("function"==typeof b)c=b(a);else if(null!==b&&"object"==typeof b){let d=Array.isArray(b)?b:[b];d.sort((a,b)=>(a.prio||(a.prio=1),b.prio||(b.prio=1),a.prio<b.prio)?-1:+(a.prio>b.prio));for(let b=0;b<d.length;b++){for(let e=0;e<a.length;e++){let f=a[e];if(f.ip===d[b].ip&&f.port===d[b].port){c=f;break}}if(c)break}}return c||(c=(0,e.sample)(a)),m(c)}(c,this.options.preferredSlaves))}sentinelNatResolve(a){if(!a||!this.options.natMap)return a;let b=`${a.host}:${a.port}`,c=a;return"function"==typeof this.options.natMap?c=this.options.natMap(b)||a:"object"==typeof this.options.natMap&&(c=this.options.natMap[b]||a),c}connectToSentinel(a,b){return new i.default({port:a.port||26379,host:a.host,username:this.options.sentinelUsername||null,password:this.options.sentinelPassword||null,family:a.family||("path"in this.options&&this.options.path?void 0:this.options.family),tls:this.options.sentinelTLS,retryStrategy:null,enableReadyCheck:!1,connectTimeout:this.options.connectTimeout,commandTimeout:this.options.sentinelCommandTimeout,...b})}async resolve(a){let b=this.connectToSentinel(a);b.on("error",n);try{if("slave"===this.options.role)return await this.resolveSlave(b);return await this.resolveMaster(b)}finally{b.disconnect()}}async initFailoverDetector(){var a;if(!this.options.failoverDetector)return;this.sentinelIterator.reset(!0);let b=[];for(;b.length<this.options.sentinelMaxConnections;){let{done:a,value:c}=this.sentinelIterator.next();if(a)break;let d=this.connectToSentinel(c,{lazyConnect:!0,retryStrategy:this.options.sentinelReconnectStrategy});d.on("reconnecting",()=>{var a;null==(a=this.emitter)||a.emit("sentinelReconnecting")}),b.push({address:c,client:d})}this.sentinelIterator.reset(!1),this.failoverDetector&&this.failoverDetector.cleanup(),this.failoverDetector=new j.FailoverDetector(this,b),await this.failoverDetector.subscribe(),null==(a=this.emitter)||a.emit("failoverSubscribed")}}function m(a){return{host:a.ip,port:Number(a.port)}}function n(){}b.default=l},16688:(a,b,c)=>{"use strict";a.exports=c(63145)},17751:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(54187),e=c(37970),f=c(91957),g=c(34103),h=(0,d.Debug)("cluster:subscriberGroup");class i{constructor(a){this.subscriberGroupEmitter=a,this.shardedSubscribers=new Map,this.clusterSlots=[],this.subscriberToSlotsIndex=new Map,this.channels=new Map,this.failedAttemptsByNode=new Map,this.isResetting=!1,this.pendingReset=null,this.handleSubscriberConnectFailed=(a,b)=>{let c=(this.failedAttemptsByNode.get(b)||0)+1;this.failedAttemptsByNode.set(b,c);let d=Math.min(c,i.MAX_RETRY_ATTEMPTS),e=Math.min(i.BASE_BACKOFF_MS*2**d,i.MAX_BACKOFF_MS),f=Math.floor(.5*e*(Math.random()-.5)),g=Math.max(0,e+f);h("Failed to connect subscriber for %s. Refreshing slots in %dms",b,g),this.subscriberGroupEmitter.emit("subscriberConnectFailed",{delay:g,error:a})},this.handleSubscriberConnectSucceeded=a=>{this.failedAttemptsByNode.delete(a)}}getResponsibleSubscriber(a){let b=this.clusterSlots[a][0];return this.shardedSubscribers.get(b)}addChannels(a){let b=f(a[0]);for(let c of a)if(f(c)!==b)return -1;let c=this.channels.get(b);return c?this.channels.set(b,c.concat(a)):this.channels.set(b,a),Array.from(this.channels.values()).reduce((a,b)=>a+b.length,0)}removeChannels(a){let b=f(a[0]);for(let c of a)if(f(c)!==b)return -1;let c=this.channels.get(b);if(c){let d=c.filter(b=>!a.includes(b));this.channels.set(b,d)}return Array.from(this.channels.values()).reduce((a,b)=>a+b.length,0)}stop(){for(let a of this.shardedSubscribers.values())a.stop();this.pendingReset=null,this.shardedSubscribers.clear(),this.subscriberToSlotsIndex.clear()}start(){let a=[];for(let b of this.shardedSubscribers.values())b.isStarted()||a.push(b.start().then(()=>{this.handleSubscriberConnectSucceeded(b.getNodeKey())}).catch(a=>{this.handleSubscriberConnectFailed(a,b.getNodeKey())}));return Promise.all(a)}async reset(a,b){if(this.isResetting){this.pendingReset={slots:a,nodes:b};return}this.isResetting=!0;try{let c=this._refreshSlots(a),d=this.hasUnhealthySubscribers();if(!c&&!d)return void h("No topology change detected or failed subscribers. Skipping reset.");for(let[a,b]of this.shardedSubscribers){if(this.subscriberToSlotsIndex.has(a)&&b.isStarted()){h("Skipping deleting subscriber for %s",a);continue}h("Removing subscriber for %s",a),b.stop(),this.shardedSubscribers.delete(a),this.subscriberGroupEmitter.emit("-subscriber")}let f=[];for(let[a,c]of this.subscriberToSlotsIndex){if(this.shardedSubscribers.has(a)){h("Skipping creating new subscriber for %s",a);continue}h("Creating new subscriber for %s",a);let c=b.find(b=>(0,e.getNodeKey)(b.options)===a);if(!c){h("Failed to find node for key %s",a);continue}let d=new g.default(this.subscriberGroupEmitter,c.options);this.shardedSubscribers.set(a,d),f.push(d.start().then(()=>{this.handleSubscriberConnectSucceeded(a)}).catch(b=>{this.handleSubscriberConnectFailed(b,a)})),this.subscriberGroupEmitter.emit("+subscriber")}await Promise.all(f),this._resubscribe(),this.subscriberGroupEmitter.emit("subscribersReady")}finally{if(this.isResetting=!1,this.pendingReset){let{slots:a,nodes:b}=this.pendingReset;this.pendingReset=null,await this.reset(a,b)}}}_refreshSlots(a){if(this._slotsAreEqual(a))return h("Nothing to refresh because the new cluster map is equal to the previous one."),!1;h("Refreshing the slots of the subscriber group."),this.subscriberToSlotsIndex=new Map;for(let b=0;b<a.length;b++){let c=a[b][0];this.subscriberToSlotsIndex.has(c)||this.subscriberToSlotsIndex.set(c,[]),this.subscriberToSlotsIndex.get(c).push(Number(b))}return this.clusterSlots=JSON.parse(JSON.stringify(a)),!0}_resubscribe(){this.shardedSubscribers&&this.shardedSubscribers.forEach((a,b)=>{let c=this.subscriberToSlotsIndex.get(b);c&&c.forEach(c=>{let d=a.getInstance(),e=this.channels.get(c);if(e&&e.length>0){if("end"===d.status)return;"ready"===d.status?d.ssubscribe(...e).catch(a=>{h("Failed to ssubscribe on node %s: %s",b,a)}):d.once("ready",()=>{d.ssubscribe(...e).catch(a=>{h("Failed to ssubscribe on node %s: %s",b,a)})})}})})}_slotsAreEqual(a){return void 0!==this.clusterSlots&&JSON.stringify(this.clusterSlots)===JSON.stringify(a)}hasUnhealthySubscribers(){let a=Array.from(this.shardedSubscribers.values()).some(a=>!a.isStarted()),b=Array.from(this.subscriberToSlotsIndex.keys()).some(a=>!this.shardedSubscribers.has(a));return a||b}}b.default=i,i.MAX_RETRY_ATTEMPTS=10,i.MAX_BACKOFF_MS=2e3,i.BASE_BACKOFF_MS=100},18797:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=(0,c(54187).Debug)("AbstractConnector");class e{constructor(a){this.connecting=!1,this.disconnectTimeout=a}check(a){return!0}disconnect(){if(this.connecting=!1,this.stream){let a=this.stream,b=setTimeout(()=>{d("stream %s:%s still open, destroying it",a.remoteAddress,a.remotePort),a.destroy()},this.disconnectTimeout);a.on("close",()=>clearTimeout(b)),a.end()}}}b.default=e},19140:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(54187),e=c(73380),f=(0,d.Debug)("delayqueue");class g{constructor(){this.queues={},this.timeouts={}}push(a,b,c){let d=c.callback||process.nextTick;this.queues[a]||(this.queues[a]=new e),this.queues[a].push(b),this.timeouts[a]||(this.timeouts[a]=setTimeout(()=>{d(()=>{this.timeouts[a]=null,this.execute(a)})},c.timeout))}execute(a){let b=this.queues[a];if(!b)return;let{length:c}=b;if(c)for(f("send %d commands in %s queue",c,a),this.queues[a]=null;b.length>0;)b.shift()()}}b.default=g},19283:(a,b,c)=>{b.formatArgs=function(b){if(b[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+b[0]+(this.useColors?"%c ":" ")+"+"+a.exports.humanize(this.diff),!this.useColors)return;let c="color: "+this.color;b.splice(1,0,c,"color: inherit");let d=0,e=0;b[0].replace(/%[a-zA-Z%]/g,a=>{"%%"!==a&&(d++,"%c"===a&&(e=d))}),b.splice(e,0,c)},b.save=function(a){try{a?b.storage.setItem("debug",a):b.storage.removeItem("debug")}catch(a){}},b.load=function(){let a;try{a=b.storage.getItem("debug")||b.storage.getItem("DEBUG")}catch(a){}return!a&&"undefined"!=typeof process&&"env"in process&&(a=process.env.DEBUG),a},b.useColors=function(){let a;return"undefined"!=typeof window&&!!window.process&&("renderer"===window.process.type||!!window.process.__nwjs)||!("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(a=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(a[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},b.storage=function(){try{return localStorage}catch(a){}}(),b.destroy=(()=>{let a=!1;return()=>{a||(a=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),b.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],b.log=console.debug||console.log||(()=>{}),a.exports=c(950)(b);let{formatters:d}=a.exports;d.j=function(a){try{return JSON.stringify(a)}catch(a){return"[UnexpectedJSONParseError]: "+a.message}}},20354:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.DEFAULT_CLUSTER_OPTIONS=void 0;let d=c(14985);b.DEFAULT_CLUSTER_OPTIONS={clusterRetryStrategy:a=>Math.min(100+2*a,2e3),enableOfflineQueue:!0,enableReadyCheck:!0,scaleReads:"master",maxRedirections:16,retryDelayOnMoved:0,retryDelayOnFailover:100,retryDelayOnClusterDown:100,retryDelayOnTryAgain:100,slotsRefreshTimeout:1e3,useSRVRecords:!1,resolveSrv:d.resolveSrv,dnsLookup:d.lookup,enableAutoPipelining:!1,autoPipeliningIgnoredCommands:[],shardedSubscribers:!1}},22009:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.SentinelConnector=b.StandaloneConnector=void 0,b.StandaloneConnector=c(3820).default,b.SentinelConnector=c(15789).default},22618:(a,b,c)=>{"use strict";let d,e=c(21820),f=c(83997),g=c(47823),{env:h}=process;function i(a){return 0!==a&&{level:a,hasBasic:!0,has256:a>=2,has16m:a>=3}}function j(a,b){if(0===d)return 0;if(g("color=16m")||g("color=full")||g("color=truecolor"))return 3;if(g("color=256"))return 2;if(a&&!b&&void 0===d)return 0;let c=d||0;if("dumb"===h.TERM)return c;if("win32"===process.platform){let a=e.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in h)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(a=>a in h)||"codeship"===h.CI_NAME?1:c;if("TEAMCITY_VERSION"in h)return+!!/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(h.TEAMCITY_VERSION);if("truecolor"===h.COLORTERM)return 3;if("TERM_PROGRAM"in h){let a=parseInt((h.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(h.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(h.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(h.TERM)||"COLORTERM"in h?1:c}g("no-color")||g("no-colors")||g("color=false")||g("color=never")?d=0:(g("color")||g("colors")||g("color=true")||g("color=always"))&&(d=1),"FORCE_COLOR"in h&&(d="true"===h.FORCE_COLOR?1:"false"===h.FORCE_COLOR?0:0===h.FORCE_COLOR.length?1:Math.min(parseInt(h.FORCE_COLOR,10),3)),a.exports={supportsColor:function(a){return i(j(a,a&&a.isTTY))},stdout:i(j(!0,f.isatty(1))),stderr:i(j(!0,f.isatty(2)))}},23142:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.FailoverDetector=void 0;let d=(0,c(54187).Debug)("FailoverDetector"),e="+switch-master";class f{constructor(a,b){this.isDisconnected=!1,this.connector=a,this.sentinels=b}cleanup(){for(let a of(this.isDisconnected=!0,this.sentinels))a.client.disconnect()}async subscribe(){d("Starting FailoverDetector");let a=[];for(let b of this.sentinels){let c=b.client.subscribe(e).catch(a=>{d("Failed to subscribe to failover messages on sentinel %s:%s (%s)",b.address.host||"127.0.0.1",b.address.port||26739,a.message)});a.push(c),b.client.on("message",a=>{this.isDisconnected||a!==e||this.disconnect()})}await Promise.all(a)}disconnect(){this.isDisconnected=!0,d("Failover detected, disconnecting"),this.connector.disconnect()}}b.FailoverDetector=f},23865:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(14642),e=c(54187),f=c(16688),g=c(43504),h=(0,e.Debug)("dataHandler");class i{constructor(a,b){this.redis=a;let c=new f({stringNumbers:b.stringNumbers,returnBuffers:!0,returnError:a=>{this.returnError(a)},returnFatalError:a=>{this.returnFatalError(a)},returnReply:a=>{this.returnReply(a)}});a.stream.prependListener("data",a=>{c.execute(a)}),a.stream.resume()}returnFatalError(a){a.message+=". Please report this.",this.redis.recoverFromFatalError(a,a,{offlineQueue:!1})}returnError(a){let b=this.shiftCommand(a);if(b){if(a.command={name:b.command.name,args:b.command.args},"ssubscribe"==b.command.name&&a.message.includes("MOVED"))return void this.redis.emit("moved");this.redis.handleReconnection(a,b)}}returnReply(a){if(this.handleMonitorReply(a)||this.handleSubscriberReply(a))return;let b=this.shiftCommand(a);b&&(d.default.checkFlag("ENTER_SUBSCRIBER_MODE",b.command.name)?(this.redis.condition.subscriber=new g.default,this.redis.condition.subscriber.add(b.command.name,a[1].toString()),k(b.command,a[2])||this.redis.commandQueue.unshift(b)):d.default.checkFlag("EXIT_SUBSCRIBER_MODE",b.command.name)?l(b.command,a[2])||this.redis.commandQueue.unshift(b):b.command.resolve(a))}handleSubscriberReply(a){if(!this.redis.condition.subscriber)return!1;let b=Array.isArray(a)?a[0].toString():null;switch(h('receive reply "%s" in subscriber mode',b),b){case"message":this.redis.listeners("message").length>0&&this.redis.emit("message",a[1].toString(),a[2]?a[2].toString():""),this.redis.emit("messageBuffer",a[1],a[2]);break;case"pmessage":{let b=a[1].toString();this.redis.listeners("pmessage").length>0&&this.redis.emit("pmessage",b,a[2].toString(),a[3].toString()),this.redis.emit("pmessageBuffer",b,a[2],a[3]);break}case"smessage":this.redis.listeners("smessage").length>0&&this.redis.emit("smessage",a[1].toString(),a[2]?a[2].toString():""),this.redis.emit("smessageBuffer",a[1],a[2]);break;case"ssubscribe":case"subscribe":case"psubscribe":{let c=a[1].toString();this.redis.condition.subscriber.add(b,c);let d=this.shiftCommand(a);if(!d)return;k(d.command,a[2])||this.redis.commandQueue.unshift(d);break}case"sunsubscribe":case"unsubscribe":case"punsubscribe":{let c=a[1]?a[1].toString():null;c&&this.redis.condition.subscriber.del(b,c);let d=a[2];0===Number(d)&&(this.redis.condition.subscriber=!1);let e=this.shiftCommand(a);if(!e)return;l(e.command,d)||this.redis.commandQueue.unshift(e);break}default:{let b=this.shiftCommand(a);if(!b)return;b.command.resolve(a)}}return!0}handleMonitorReply(a){if("monitoring"!==this.redis.status)return!1;let b=a.toString();if("OK"===b)return!1;let c=b.indexOf(" "),d=b.slice(0,c),e=b.indexOf('"'),f=b.slice(e+1,-1).split('" "').map(a=>a.replace(/\\"/g,'"')),g=b.slice(c+2,e-2).split(" ");return this.redis.emit("monitor",d,f,g[1],g[0]),!0}shiftCommand(a){let b=this.redis.commandQueue.shift();if(!b){let b=Error("Command queue state error. If you can reproduce this, please report it."+(a instanceof Error?` Last error: ${a.message}`:` Last reply: ${a.toString()}`));return this.redis.emit("error",b),null}return b}}b.default=i;let j=new WeakMap;function k(a,b){let c=j.has(a)?j.get(a):a.args.length;return(c-=1)<=0?(a.resolve(b),j.delete(a),!0):(j.set(a,c),!1)}function l(a,b){let c=j.has(a)?j.get(a):a.args.length;return 0===c?0===Number(b)&&(j.delete(a),a.resolve(b),!0):(c-=1)<=0?(a.resolve(b),!0):(j.set(a,c),!1)}},24281:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.addTransactionSupport=void 0;let d=c(54187),e=c(881),f=c(82161);b.addTransactionSupport=function(a){a.pipeline=function(a){let b=new f.default(this);return Array.isArray(a)&&b.addBatch(a),b};let{multi:b}=a;a.multi=function(a,c){if(void 0!==c||Array.isArray(a)||(c=a,a=null),c&&!1===c.pipeline)return b.call(this);let g=new f.default(this);g.multi(),Array.isArray(a)&&g.addBatch(a);let h=g.exec;g.exec=function(a){if(this.isCluster&&!this.redis.slots.length)return"wait"===this.redis.status&&this.redis.connect().catch(d.noop),(0,e.default)(new Promise((a,b)=>{this.redis.delayUntilReady(c=>{if(c)return void b(c);this.exec(g).then(a,b)})}),a);if(this._transactions>0&&h.call(g),this.nodeifiedPromise)return h.call(g);let b=h.call(g);return(0,e.default)(b.then(function(a){let b=a[a.length-1];if(void 0===b)throw Error("Pipeline cannot be used to send any commands when the `exec()` has been called on it.");if(b[0]){b[0].previousErrors=[];for(let c=0;c<a.length-1;++c)a[c][0]&&b[0].previousErrors.push(a[c][0]);throw b[0]}return(0,d.wrapMultiResult)(b[1])}),a)};let{execBuffer:i}=g;return g.execBuffer=function(a){return this._transactions>0&&i.call(g),g.exec(a)},g};let{exec:c}=a;a.exec=function(a){return(0,e.default)(c.call(this).then(function(a){return Array.isArray(a)&&(a=(0,d.wrapMultiResult)(a)),a}),a)}}},27509:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.executeWithAutoPipelining=b.getFirstValueInFlattenedArray=b.shouldUseAutoPipelining=b.notAllowedAutoPipelineCommands=b.kCallbacks=b.kExec=void 0;let d=c(77318),e=c(91957),f=c(881),g=c(9666);function h(a){for(let b=0;b<a.length;b++){let c=a[b];if("string"==typeof c)return c;if(Array.isArray(c)||(0,d.isArguments)(c)){if(0===c.length)continue;return c[0]}let e=[c].flat();if(e.length>0)return e[0]}}b.kExec=Symbol("exec"),b.kCallbacks=Symbol("callbacks"),b.notAllowedAutoPipelineCommands=["auth","info","script","quit","cluster","pipeline","multi","subscribe","psubscribe","unsubscribe","unpsubscribe","select","client"],b.shouldUseAutoPipelining=function(a,c,d){return c&&a.options.enableAutoPipelining&&!a.isPipeline&&!b.notAllowedAutoPipelineCommands.includes(d)&&!a.options.autoPipeliningIgnoredCommands.includes(d)},b.getFirstValueInFlattenedArray=h,b.executeWithAutoPipelining=function a(c,i,j,k,l){if(c.isCluster&&!c.slots.length)return"wait"===c.status&&c.connect().catch(d.noop),(0,f.default)(new Promise(function(b,d){c.delayUntilReady(e=>{if(e)return void d(e);a(c,i,j,k,null).then(b,d)})}),l);let m=c.options.keyPrefix||"",n=c.isCluster?c.slots[e(`${m}${h(k)}`)].join(","):"main";if(c.isCluster&&"master"!==c.options.scaleReads&&(n+=(0,g.exists)(j)&&(0,g.hasFlag)(j,"readonly")?":read":":write"),!c._autoPipelines.has(n)){let a=c.pipeline();a[b.kExec]=!1,a[b.kCallbacks]=[],c._autoPipelines.set(n,a)}let o=c._autoPipelines.get(n);o[b.kExec]||(o[b.kExec]=!0,setImmediate(function a(c,d){if(c._runningAutoPipelines.has(d)||!c._autoPipelines.has(d))return;c._runningAutoPipelines.add(d);let e=c._autoPipelines.get(d);c._autoPipelines.delete(d);let f=e[b.kCallbacks];e[b.kCallbacks]=null,e.exec(function(b,e){if(c._runningAutoPipelines.delete(d),b)for(let a=0;a<f.length;a++)process.nextTick(f[a],b);else for(let a=0;a<f.length;a++)process.nextTick(f[a],...e[a]);c._autoPipelines.has(d)&&a(c,d)})},c,n));let p=new Promise(function(a,c){o[b.kCallbacks].push(function(b,d){if(b)return void c(b);a(d)}),"call"===i&&k.unshift(j),o[i](...k)});return(0,f.default)(p,l)}},29229:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.print=b.ReplyError=b.SentinelIterator=b.SentinelConnector=b.AbstractConnector=b.Pipeline=b.ScanStream=b.Command=b.Cluster=b.Redis=b.default=void 0,b=a.exports=c(88568).default;var d=c(88568);Object.defineProperty(b,"default",{enumerable:!0,get:function(){return d.default}});var e=c(88568);Object.defineProperty(b,"Redis",{enumerable:!0,get:function(){return e.default}});var f=c(55058);Object.defineProperty(b,"Cluster",{enumerable:!0,get:function(){return f.default}});var g=c(14642);Object.defineProperty(b,"Command",{enumerable:!0,get:function(){return g.default}});var h=c(30644);Object.defineProperty(b,"ScanStream",{enumerable:!0,get:function(){return h.default}});var i=c(82161);Object.defineProperty(b,"Pipeline",{enumerable:!0,get:function(){return i.default}});var j=c(18797);Object.defineProperty(b,"AbstractConnector",{enumerable:!0,get:function(){return j.default}});var k=c(15789);Object.defineProperty(b,"SentinelConnector",{enumerable:!0,get:function(){return k.default}}),Object.defineProperty(b,"SentinelIterator",{enumerable:!0,get:function(){return k.SentinelIterator}}),b.ReplyError=c(44400).ReplyError,Object.defineProperty(b,"Promise",{get:()=>(console.warn("ioredis v5 does not support plugging third-party Promise library anymore. Native Promise will be used."),Promise),set(a){console.warn("ioredis v5 does not support plugging third-party Promise library anymore. Native Promise will be used.")}}),b.print=function(a,b){a?console.log("Error: "+a):console.log("Reply: "+b)}},30577:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(44400);class e extends d.RedisError{constructor(a,b){super(a),this.lastNodeError=b,Error.captureStackTrace(this,this.constructor)}get name(){return this.constructor.name}}b.default=e,e.defaultMessage="Failed to refresh slots cache."},30644:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(27910);class e extends d.Readable{constructor(a){super(a),this.opt=a,this._redisCursor="0",this._redisDrained=!1}_read(){if(this._redisDrained)return void this.push(null);let a=[this._redisCursor];this.opt.key&&a.unshift(this.opt.key),this.opt.match&&a.push("MATCH",this.opt.match),this.opt.type&&a.push("TYPE",this.opt.type),this.opt.count&&a.push("COUNT",String(this.opt.count)),this.opt.noValues&&a.push("NOVALUES"),this.opt.redis[this.opt.command](a,(a,b)=>{if(a)return void this.emit("error",a);this._redisCursor=b[0]instanceof Buffer?b[0].toString():b[0],"0"===this._redisCursor&&(this._redisDrained=!0),this.push(b[1])})}close(){this._redisDrained=!0}}b.default=e},32011:a=>{function b(a,b,c,d){return Math.round(a/c)+" "+d+(b>=1.5*c?"s":"")}a.exports=function(a,c){c=c||{};var d,e,f,g,h=typeof a;if("string"===h&&a.length>0){var i=a;if(!((i=String(i)).length>100)){var j=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(i);if(j){var k=parseFloat(j[1]);switch((j[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*k;case"weeks":case"week":case"w":return 6048e5*k;case"days":case"day":case"d":return 864e5*k;case"hours":case"hour":case"hrs":case"hr":case"h":return 36e5*k;case"minutes":case"minute":case"mins":case"min":case"m":return 6e4*k;case"seconds":case"second":case"secs":case"sec":case"s":return 1e3*k;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return k;default:break}}}return}if("number"===h&&isFinite(a)){return c.long?(e=Math.abs(d=a))>=864e5?b(d,e,864e5,"day"):e>=36e5?b(d,e,36e5,"hour"):e>=6e4?b(d,e,6e4,"minute"):e>=1e3?b(d,e,1e3,"second"):d+" ms":(g=Math.abs(f=a))>=864e5?Math.round(f/864e5)+"d":g>=36e5?Math.round(f/36e5)+"h":g>=6e4?Math.round(f/6e4)+"m":g>=1e3?Math.round(f/1e3)+"s":f+"ms"}throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(a))}},34103:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(37970),e=c(54187),f=c(88568),g=(0,e.Debug)("cluster:subscriberGroup:shardedSubscriber");class h{constructor(a,b){for(let c of(this.emitter=a,this.started=!1,this.instance=null,this.messageListeners=new Map,this.onEnd=()=>{this.started=!1,this.emitter.emit("-node",this.instance,this.nodeKey)},this.onError=a=>{this.emitter.emit("nodeError",a,this.nodeKey)},this.onMoved=()=>{this.emitter.emit("moved")},this.instance=new f.default({port:b.port,host:b.host,username:b.username,password:b.password,enableReadyCheck:!1,offlineQueue:!0,connectionName:(0,d.getConnectionName)("ssubscriber",b.connectionName),lazyConnect:!0,tls:b.tls,retryStrategy:null}),this.nodeKey=(0,d.getNodeKey)(b),this.instance.once("end",this.onEnd),this.instance.on("error",this.onError),this.instance.on("moved",this.onMoved),["smessage","smessageBuffer"])){let a=(...a)=>{this.emitter.emit(c,...a)};this.messageListeners.set(c,a),this.instance.on(c,a)}}async start(){if(this.started)return void g("already started %s",this.nodeKey);try{await this.instance.connect(),g("started %s",this.nodeKey),this.started=!0}catch(a){throw g("failed to start %s: %s",this.nodeKey,a),this.started=!1,a}}stop(){this.started=!1,this.instance&&(this.instance.disconnect(),this.instance.removeAllListeners(),this.messageListeners.clear(),this.instance=null),g("stopped %s",this.nodeKey)}isStarted(){return this.started}getInstance(){return this.instance}getNodeKey(){return this.nodeKey}}b.default=h},37422:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{z:()=>q});var e=c(97494),f=c(80037),g=c(64939),h=c(37614),i=a([g,f]);[g,f]=i.then?(await i)():i;let j=process.env.DATABASE_URL||(process.env.DB_HOST?`postgresql://${process.env.DB_USERNAME}:${encodeURIComponent(process.env.DB_PASSWORD||"")}@${process.env.DB_HOST}:${process.env.DB_PORT||"5432"}/${process.env.DB_NAME||"chorus"}`:void 0),k=globalThis,l=k.pool??new g.default.Pool({connectionString:j,...process.env.DB_HOST?{ssl:{rejectUnauthorized:!1}}:{}});k.pool||l.on("error",a=>{h.A.child({module:"pg-pool"}).warn({err:a.message},"Idle connection evicted")});let m=new f.M(l),n=h.A.child({module:"prisma"}),o=k.prisma??new e.m3({adapter:m,log:[{emit:"event",level:"error"}]}),p=h.A.child({module:"pg-pool"}),q=o.$extends({query:{async $allOperations({args:a,query:b}){let c;for(let d=0;d<=3;d++)try{return await b(a)}catch(a){if(a instanceof Error&&("code"in a&&"P1017"===a.code||a.message.includes("Connection terminated")||a.message.includes("Server has closed the connection"))&&d<3){p.warn("Stale connection evicted (attempt %d/%d)",d+1,3),c=a;continue}throw a}throw c}}});k.prisma||"function"!=typeof o.$on||(o.$on("query",a=>{n.debug({duration:a.duration},a.query)}),o.$on("warn",a=>{n.warn(a.message)}),o.$on("error",a=>{n.error(a.message)})),d()}catch(a){d(a)}})},37614:(a,b,c)=>{"use strict";c.d(b,{A:()=>e});var d=c(74552);let e=c.n(d)()({level:process.env.LOG_LEVEL||"info",base:{service:"chorus"},...{}})},37970:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.getConnectionName=b.weightSrvRecords=b.groupSrvRecords=b.getUniqueHostnamesFromOptions=b.normalizeNodeOptions=b.nodeKeyToRedisOptions=b.getNodeKey=void 0;let d=c(54187),e=c(91645);b.getNodeKey=function(a){return a.port=a.port||6379,a.host=a.host||"127.0.0.1",a.host+":"+a.port},b.nodeKeyToRedisOptions=function(a){let b=a.lastIndexOf(":");if(-1===b)throw Error(`Invalid node key ${a}`);return{host:a.slice(0,b),port:Number(a.slice(b+1))}},b.normalizeNodeOptions=function(a){return a.map(a=>{let b={};if("object"==typeof a)Object.assign(b,a);else if("string"==typeof a)Object.assign(b,(0,d.parseURL)(a));else if("number"==typeof a)b.port=a;else throw Error("Invalid argument "+a);return"string"==typeof b.port&&(b.port=parseInt(b.port,10)),delete b.db,b.port||(b.port=6379),b.host||(b.host="127.0.0.1"),(0,d.resolveTLSProfile)(b)})},b.getUniqueHostnamesFromOptions=function(a){let b={};return a.forEach(a=>{b[a.host]=!0}),Object.keys(b).filter(a=>!(0,e.isIP)(a))},b.groupSrvRecords=function(a){let b={};for(let c of a)b.hasOwnProperty(c.priority)?(b[c.priority].totalWeight+=c.weight,b[c.priority].records.push(c)):b[c.priority]={totalWeight:c.weight,records:[c]};return b},b.weightSrvRecords=function(a){if(1===a.records.length)return a.totalWeight=0,a.records.shift();let b=Math.floor(Math.random()*(a.totalWeight+a.records.length)),c=0;for(let[d,e]of a.records.entries())if((c+=1+e.weight)>b)return a.totalWeight-=e.weight,a.records.splice(d,1),e},b.getConnectionName=function(a,b){let c=`ioredis-cluster(${a})`;return b?`${c}:${b}`:c}},38002:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let c=`-----BEGIN CERTIFICATE-----
1
+ exports.id=937,exports.ids=[937],exports.modules={881:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(41138);function e(a){setTimeout(function(){throw a},0)}b.default=function(a,b,c){return"function"==typeof b&&a.then(a=>{let f;(f=void 0!==c&&Object(c).spread&&Array.isArray(a)?d.tryCatch(b).apply(void 0,[null].concat(a)):void 0===a?d.tryCatch(b)(null):d.tryCatch(b)(null,a))===d.errorObj&&e(f.e)},a=>{if(!a){let b=Error(a+"");Object.assign(b,{cause:a}),a=b}let c=d.tryCatch(b)(a);c===d.errorObj&&e(c.e)}),a}},950:(a,b,c)=>{a.exports=function(a){function b(a){let c,e,f,g=null;function h(...a){if(!h.enabled)return;let d=Number(new Date);h.diff=d-(c||d),h.prev=c,h.curr=d,c=d,a[0]=b.coerce(a[0]),"string"!=typeof a[0]&&a.unshift("%O");let e=0;a[0]=a[0].replace(/%([a-zA-Z%])/g,(c,d)=>{if("%%"===c)return"%";e++;let f=b.formatters[d];if("function"==typeof f){let b=a[e];c=f.call(h,b),a.splice(e,1),e--}return c}),b.formatArgs.call(h,a),(h.log||b.log).apply(h,a)}return h.namespace=a,h.useColors=b.useColors(),h.color=b.selectColor(a),h.extend=d,h.destroy=b.destroy,Object.defineProperty(h,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==g?g:(e!==b.namespaces&&(e=b.namespaces,f=b.enabled(a)),f),set:a=>{g=a}}),"function"==typeof b.init&&b.init(h),h}function d(a,c){let d=b(this.namespace+(void 0===c?":":c)+a);return d.log=this.log,d}function e(a,b){let c=0,d=0,e=-1,f=0;for(;c<a.length;)if(d<b.length&&(b[d]===a[c]||"*"===b[d]))"*"===b[d]?(e=d,f=c):c++,d++;else{if(-1===e)return!1;d=e+1,c=++f}for(;d<b.length&&"*"===b[d];)d++;return d===b.length}return b.debug=b,b.default=b,b.coerce=function(a){return a instanceof Error?a.stack||a.message:a},b.disable=function(){let a=[...b.names,...b.skips.map(a=>"-"+a)].join(",");return b.enable(""),a},b.enable=function(a){for(let c of(b.save(a),b.namespaces=a,b.names=[],b.skips=[],("string"==typeof a?a:"").trim().replace(/\s+/g,",").split(",").filter(Boolean)))"-"===c[0]?b.skips.push(c.slice(1)):b.names.push(c)},b.enabled=function(a){for(let c of b.skips)if(e(a,c))return!1;for(let c of b.names)if(e(a,c))return!0;return!1},b.humanize=c(32011),b.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(a).forEach(c=>{b[c]=a[c]}),b.names=[],b.skips=[],b.formatters={},b.selectColor=function(a){let c=0;for(let b=0;b<a.length;b++)c=(c<<5)-c+a.charCodeAt(b)|0;return b.colors[Math.abs(c)%b.colors.length]},b.enable(b.load()),b}},3820:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(91645),e=c(34631),f=c(54187),g=c(18797);class h extends g.default{constructor(a){super(a.disconnectTimeout),this.options=a}connect(a){let b,{options:c}=this;return this.connecting=!0,"path"in c&&c.path?b={path:c.path}:(b={},"port"in c&&null!=c.port&&(b.port=c.port),"host"in c&&null!=c.host&&(b.host=c.host),"family"in c&&null!=c.family&&(b.family=c.family)),c.tls&&Object.assign(b,c.tls),new Promise((a,g)=>{process.nextTick(()=>{if(!this.connecting)return void g(Error(f.CONNECTION_CLOSED_ERROR_MSG));try{c.tls?this.stream=(0,e.connect)(b):this.stream=(0,d.createConnection)(b)}catch(a){g(a);return}this.stream.once("error",a=>{this.firstError=a}),a(this.stream)})})}}b.default=h},9666:function(a,b,c){"use strict";var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.getKeyIndexes=b.hasFlag=b.exists=b.list=void 0;let e=d(c(39176));b.list=Object.keys(e.default);let f={};function g(a){"string"!=typeof a&&(a=String(a));let b=a.indexOf("->");return -1===b?a.length:b}b.list.forEach(a=>{f[a]=e.default[a].flags.reduce(function(a,b){return a[b]=!0,a},{})}),b.exists=function(a,b){return a=(null==b?void 0:b.caseInsensitive)?String(a).toLowerCase():a,!!e.default[a]},b.hasFlag=function(a,b,c){if(!f[a=(null==c?void 0:c.nameCaseInsensitive)?String(a).toLowerCase():a])throw Error("Unknown command "+a);return!!f[a][b]},b.getKeyIndexes=function(a,b,c){a=(null==c?void 0:c.nameCaseInsensitive)?String(a).toLowerCase():a;let d=e.default[a];if(!d)throw Error("Unknown command "+a);if(!Array.isArray(b))throw Error("Expect args to be an array");let f=[],h=!!(c&&c.parseExternalKey),i=(a,b)=>{let c=[],d=Number(a[b]);for(let a=0;a<d;a++)c.push(a+b+1);return c},j=(a,b,c)=>{for(let d=b;d<a.length-1;d+=1)if(String(a[d]).toLowerCase()===c.toLowerCase())return d+1;return null};switch(a){case"zunionstore":case"zinterstore":case"zdiffstore":f.push(0,...i(b,1));break;case"eval":case"evalsha":case"eval_ro":case"evalsha_ro":case"fcall":case"fcall_ro":case"blmpop":case"bzmpop":f.push(...i(b,1));break;case"sintercard":case"lmpop":case"zunion":case"zinter":case"zmpop":case"zintercard":case"zdiff":f.push(...i(b,0));break;case"georadius":{f.push(0);let a=j(b,5,"STORE");a&&f.push(a);let c=j(b,5,"STOREDIST");c&&f.push(c);break}case"georadiusbymember":{f.push(0);let a=j(b,4,"STORE");a&&f.push(a);let c=j(b,4,"STOREDIST");c&&f.push(c);break}case"sort":case"sort_ro":f.push(0);for(let a=1;a<b.length-1;a++){let c=b[a];if("string"!=typeof c)continue;let d=c.toUpperCase();"GET"===d?(a+=1,"#"!==(c=b[a])&&(h?f.push([a,g(c)]):f.push(a))):"BY"===d?(a+=1,h?f.push([a,g(b[a])]):f.push(a)):"STORE"===d&&(a+=1,f.push(a))}break;case"migrate":if(""===b[2])for(let a=5;a<b.length-1;a++){let c=b[a];if("string"==typeof c&&"KEYS"===c.toUpperCase()){for(let c=a+1;c<b.length;c++)f.push(c);break}}else f.push(2);break;case"xreadgroup":case"xread":for(let c=3*("xread"!==a);c<b.length-1;c++)if("STREAMS"===String(b[c]).toUpperCase()){for(let a=c+1;a<=c+(b.length-1-c)/2;a++)f.push(a);break}break;default:if(d.step>0){let a=d.keyStart-1,c=d.keyStop>0?d.keyStop:b.length+d.keyStop+1;for(let b=a;b<c;b+=d.step)f.push(b)}}return f}},10713:(a,b,c)=>{"use strict";c.d(b,{B:()=>s});var d=c(94735),e=c(55511),f=c(29229),g=c.n(f),h=c(37614);let i=h.A.child({module:"redis"}),j=function(){if(process.env.REDIS_URL)return process.env.REDIS_URL;let a=process.env.REDIS_HOST;if(!a)return;let b=process.env.REDIS_PORT||"6379",c=process.env.REDIS_USERNAME||"default",d=process.env.REDIS_PASSWORD,e="rediss";return d?`${e}://${c}:${encodeURIComponent(d)}@${a}:${b}`:`${e}://${a}:${b}`}(),k=globalThis;function l(a){let b=new(g())(j,{lazyConnect:!0,maxRetriesPerRequest:null,retryStrategy(b){let c=Math.min(200*b,5e3);return i.warn({name:a,delay:c,attempt:b},"Reconnecting"),c}});return b.on("error",b=>{i.error({name:a,err:b},"Redis error")}),b.on("connect",()=>{i.info({name:a},"Connected")}),b}function m(){return j?(k.redisPub||(k.redisPub=l("pub")),k.redisPub):null}function n(){return j?(k.redisSub||(k.redisSub=l("sub")),k.redisSub):null}let o=h.A.child({module:"event-bus"}),p="chorus:events";class q extends d.EventEmitter{static{this.THROTTLE_WINDOW_MS=2e3}static{this.EVICTION_INTERVAL_MS=3e4}static{this.EVICTION_TTL_MS=3e4}async connect(){if(this._connected||!j)return;this._connected=!0;let a=n(),b=m();a&&(await a.connect(),b&&await b.connect(),await a.subscribe(p),a.on("message",(a,b)=>{try{let a=JSON.parse(b);if(a._origin===this._instanceId)return;let c=null!==a.data&&"object"==typeof a.data?{...a.data,_remote:!0}:a.data;super.emit(a.channel,c)}catch{}}))}emit(a,...b){if("string"==typeof a&&j){let c=m();if(c&&"ready"===c.status){let d={_origin:this._instanceId,channel:a,data:b[0]};c.publish(p,JSON.stringify(d)).catch(()=>{})}}return super.emit(a,...b)}emitPresence(a){let b=`${a.agentUuid}:${a.entityType}:${a.entityUuid}${a.subEntityType?`:${a.subEntityType}`:""}${a.subEntityUuid?`:${a.subEntityUuid}`:""}`,c=Date.now(),d=this._presenceThrottle.get(b);d&&c-d<q.THROTTLE_WINDOW_MS||(this._presenceThrottle.set(b,c),this._ensureEvictionTimer(),this.emit("presence",a))}_ensureEvictionTimer(){!this._evictionTimer&&(this._evictionTimer=setInterval(()=>{let a=Date.now();for(let[b,c]of this._presenceThrottle)a-c>=q.EVICTION_TTL_MS&&this._presenceThrottle.delete(b);0===this._presenceThrottle.size&&(clearInterval(this._evictionTimer),this._evictionTimer=null)},q.EVICTION_INTERVAL_MS),this._evictionTimer&&"object"==typeof this._evictionTimer&&"unref"in this._evictionTimer&&this._evictionTimer.unref())}get _throttleMapSize(){return this._presenceThrottle.size}_resetPresenceState(){this._presenceThrottle.clear(),this._evictionTimer&&(clearInterval(this._evictionTimer),this._evictionTimer=null)}emitChange(a){this.emit("change",a)}async disconnect(){let a=m(),b=n();b&&await b.quit().catch(()=>{}),a&&await a.quit().catch(()=>{}),this._connected=!1}constructor(...a){super(...a),this._connected=!1,this._instanceId=(0,e.randomUUID)(),this._presenceThrottle=new Map,this._evictionTimer=null}}let r=globalThis,s=r.chorusEventBus??=new q;j&&s.connect().catch(a=>{o.error({err:a},"Redis connect failed, falling back to memory")})},11309:(a,b,c)=>{"use strict";c.d(b,{UE:()=>f,sL:()=>e});var d=c(96009),e=class extends Error{name="DriverAdapterError";cause;constructor(a){super("string"==typeof a.message?a.message:a.kind),this.cause=a}};(0,d.y)("driver-adapter-utils");var f={Int32:0,Int64:1,Float:2,Double:3,Numeric:4,Boolean:5,Character:6,Text:7,Date:8,Time:9,DateTime:10,Json:11,Enum:12,Bytes:13,Set:14,Uuid:15,Int32Array:64,Int64Array:65,FloatArray:66,DoubleArray:67,NumericArray:68,BooleanArray:69,CharacterArray:70,TextArray:71,DateArray:72,TimeArray:73,DateTimeArray:74,JsonArray:75,EnumArray:76,BytesArray:77,UuidArray:78,UnknownNumber:128};Error("Not implemented: queryRaw"),Error("Not implemented: executeRaw"),Error("Not implemented: startTransaction"),Error("Not implemented: executeScript"),Error("Not implemented: dispose")},12590:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(55511),e=c(14642),f=c(881);class g{constructor(a,b=null,c="",f=!1){this.lua=a,this.numberOfKeys=b,this.keyPrefix=c,this.readOnly=f,this.sha=(0,d.createHash)("sha1").update(a).digest("hex");let g=this.sha,h=new WeakSet;this.Command=class extends e.default{toWritable(b){let c=this.reject;return this.reject=a=>{-1!==a.message.indexOf("NOSCRIPT")&&h.delete(b),c.call(this,a)},h.has(b)?"eval"===this.name&&(this.name="evalsha",this.args[0]=g):(h.add(b),this.name="eval",this.args[0]=a),super.toWritable(b)}}}execute(a,b,c,d){"number"==typeof this.numberOfKeys&&b.unshift(this.numberOfKeys),this.keyPrefix&&(c.keyPrefix=this.keyPrefix),this.readOnly&&(c.readOnly=!0);let e=new this.Command("evalsha",[this.sha,...b],c);return e.promise=e.promise.catch(d=>{if(-1===d.message.indexOf("NOSCRIPT"))throw d;let e=new this.Command("evalsha",[this.sha,...b],c);return(a.isPipeline?a.redis:a).sendCommand(e)}),(0,f.default)(e.promise,d),a.sendCommand(e)}}b.default=g},14642:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(9666),e=c(91957),f=c(881),g=c(54187),h=c(85316);class i{constructor(a,b=[],c={},d){if(this.name=a,this.inTransaction=!1,this.isResolved=!1,this.transformed=!1,this.replyEncoding=c.replyEncoding,this.errorStack=c.errorStack,this.args=b.flat(),this.callback=d,this.initPromise(),c.keyPrefix){let a=c.keyPrefix instanceof Buffer,b=a?c.keyPrefix:null;this._iterateKeys(d=>d instanceof Buffer?(null===b&&(b=Buffer.from(c.keyPrefix)),Buffer.concat([b,d])):a?Buffer.concat([c.keyPrefix,Buffer.from(String(d))]):c.keyPrefix+d)}c.readOnly&&(this.isReadOnly=!0)}static checkFlag(a,b){return b=b.toLowerCase(),!!this.getFlagMap()[a][b]}static setArgumentTransformer(a,b){this._transformer.argument[a]=b}static setReplyTransformer(a,b){this._transformer.reply[a]=b}static getFlagMap(){return this.flagMap||(this.flagMap=Object.keys(i.FLAGS).reduce((a,b)=>(a[b]={},i.FLAGS[b].forEach(c=>{a[b][c]=!0}),a),{})),this.flagMap}getSlot(){if(void 0===this.slot){let a=this.getKeys()[0];this.slot=null==a?null:e(a)}return this.slot}getKeys(){return this._iterateKeys()}toWritable(a){let b,c="*"+(this.args.length+1)+"\r\n$"+Buffer.byteLength(this.name)+"\r\n"+this.name+"\r\n";if(this.bufferMode){let a=new l;a.push(c);for(let b=0;b<this.args.length;++b){let c=this.args[b];c instanceof Buffer?0===c.length?a.push("$0\r\n\r\n"):(a.push("$"+c.length+"\r\n"),a.push(c),a.push("\r\n")):a.push("$"+Buffer.byteLength(c)+"\r\n"+c+"\r\n")}b=a.toBuffer()}else{b=c;for(let a=0;a<this.args.length;++a){let c=this.args[a];b+="$"+Buffer.byteLength(c)+"\r\n"+c+"\r\n"}}return b}stringifyArguments(){for(let a=0;a<this.args.length;++a){let b=this.args[a];"string"==typeof b||(b instanceof Buffer?this.bufferMode=!0:this.args[a]=(0,g.toArg)(b))}}transformReply(a){this.replyEncoding&&(a=(0,g.convertBufferToString)(a,this.replyEncoding));let b=i._transformer.reply[this.name];return b&&(a=b(a)),a}setTimeout(a){this._commandTimeoutTimer||(this._commandTimeoutTimer=setTimeout(()=>{this.isResolved||this.reject(Error("Command timed out"))},a))}setBlockingTimeout(a){if(a<=0)return;this._blockingTimeoutTimer&&(clearTimeout(this._blockingTimeoutTimer),this._blockingTimeoutTimer=void 0);let b=Date.now();void 0===this._blockingDeadline&&(this._blockingDeadline=b+a);let c=this._blockingDeadline-b;if(c<=0)return void this.resolve(null);this._blockingTimeoutTimer=setTimeout(()=>{if(this.isResolved){this._blockingTimeoutTimer=void 0;return}this._blockingTimeoutTimer=void 0,this.resolve(null)},c)}extractBlockingTimeout(){let a=this.args;if(!a||0===a.length)return;let b=this.name.toLowerCase();return i.checkFlag("LAST_ARG_TIMEOUT_COMMANDS",b)?(0,h.parseSecondsArgument)(a[a.length-1]):i.checkFlag("FIRST_ARG_TIMEOUT_COMMANDS",b)?(0,h.parseSecondsArgument)(a[0]):i.checkFlag("BLOCK_OPTION_COMMANDS",b)?(0,h.parseBlockOption)(a):void 0}_clearTimers(){let a=this._commandTimeoutTimer;a&&(clearTimeout(a),delete this._commandTimeoutTimer);let b=this._blockingTimeoutTimer;b&&(clearTimeout(b),delete this._blockingTimeoutTimer)}initPromise(){let a=new Promise((a,b)=>{if(!this.transformed){this.transformed=!0;let a=i._transformer.argument[this.name];a&&(this.args=a(this.args)),this.stringifyArguments()}this.resolve=this._convertValue(a),this.reject=a=>{this._clearTimers(),this.errorStack?b((0,g.optimizeErrorStack)(a,this.errorStack.stack,__dirname)):b(a)}});this.promise=(0,f.default)(a,this.callback)}_iterateKeys(a=a=>a){if(void 0===this.keys&&(this.keys=[],(0,d.exists)(this.name,{caseInsensitive:!0})))for(let b of(0,d.getKeyIndexes)(this.name,this.args,{nameCaseInsensitive:!0}))this.args[b]=a(this.args[b]),this.keys.push(this.args[b]);return this.keys}_convertValue(a){return b=>{try{this._clearTimers(),a(this.transformReply(b)),this.isResolved=!0}catch(a){this.reject(a)}return this.promise}}}b.default=i,i.FLAGS={VALID_IN_SUBSCRIBER_MODE:["subscribe","psubscribe","unsubscribe","punsubscribe","ssubscribe","sunsubscribe","ping","quit"],VALID_IN_MONITOR_MODE:["monitor","auth"],ENTER_SUBSCRIBER_MODE:["subscribe","psubscribe","ssubscribe"],EXIT_SUBSCRIBER_MODE:["unsubscribe","punsubscribe","sunsubscribe"],WILL_DISCONNECT:["quit"],HANDSHAKE_COMMANDS:["auth","select","client","readonly","info"],IGNORE_RECONNECT_ON_ERROR:["client"],BLOCKING_COMMANDS:["blpop","brpop","brpoplpush","blmove","bzpopmin","bzpopmax","bzmpop","blmpop","xread","xreadgroup"],LAST_ARG_TIMEOUT_COMMANDS:["blpop","brpop","brpoplpush","blmove","bzpopmin","bzpopmax"],FIRST_ARG_TIMEOUT_COMMANDS:["bzmpop","blmpop"],BLOCK_OPTION_COMMANDS:["xread","xreadgroup"]},i._transformer={argument:{},reply:{}};let j=function(a){if(1===a.length){if(a[0]instanceof Map)return(0,g.convertMapToArray)(a[0]);if("object"==typeof a[0]&&null!==a[0])return(0,g.convertObjectToArray)(a[0])}return a},k=function(a){if(2===a.length){if(a[1]instanceof Map)return[a[0]].concat((0,g.convertMapToArray)(a[1]));if("object"==typeof a[1]&&null!==a[1])return[a[0]].concat((0,g.convertObjectToArray)(a[1]))}return a};i.setArgumentTransformer("mset",j),i.setArgumentTransformer("msetnx",j),i.setArgumentTransformer("hset",k),i.setArgumentTransformer("hmset",k),i.setReplyTransformer("hgetall",function(a){if(Array.isArray(a)){let b={};for(let c=0;c<a.length;c+=2){let d=a[c],e=a[c+1];d in b?Object.defineProperty(b,d,{value:e,configurable:!0,enumerable:!0,writable:!0}):b[d]=e}return b}return a});class l{constructor(){this.length=0,this.items=[]}push(a){this.length+=Buffer.byteLength(a),this.items.push(a)}toBuffer(){let a=Buffer.allocUnsafe(this.length),b=0;for(let c of this.items){let d=Buffer.byteLength(c);Buffer.isBuffer(c)?c.copy(a,b):a.write(c,b,d),b+=d}return a}}},15121:(a,b,c)=>{"use strict";let d=c(12412);class e extends Error{get name(){return this.constructor.name}}class f extends e{constructor(a,b,c){d(b),d.strictEqual(typeof c,"number");let e=Error.stackTraceLimit;Error.stackTraceLimit=2,super(a),Error.stackTraceLimit=e,this.offset=c,this.buffer=b}get name(){return this.constructor.name}}class g extends e{constructor(a){let b=Error.stackTraceLimit;Error.stackTraceLimit=2,super(a),Error.stackTraceLimit=b}get name(){return this.constructor.name}}class h extends e{get name(){return this.constructor.name}}class i extends h{get name(){return this.constructor.name}}a.exports={RedisError:e,ParserError:f,ReplyError:g,AbortError:h,InterruptError:i}},15789:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.SentinelIterator=void 0;let d=c(91645),e=c(54187),f=c(34631),g=c(47824);b.SentinelIterator=g.default;let h=c(18797),i=c(88568),j=c(23142),k=(0,e.Debug)("SentinelConnector");class l extends h.default{constructor(a){if(super(a.disconnectTimeout),this.options=a,this.emitter=null,this.failoverDetector=null,!this.options.sentinels.length)throw Error("Requires at least one sentinel to connect to.");if(!this.options.name)throw Error("Requires the name of master.");this.sentinelIterator=new g.default(this.options.sentinels)}check(a){let b=!a.role||this.options.role===a.role;return b||(k("role invalid, expected %s, but got %s",this.options.role,a.role),this.sentinelIterator.next(),this.sentinelIterator.next(),this.sentinelIterator.reset(!0)),b}disconnect(){super.disconnect(),this.failoverDetector&&this.failoverDetector.cleanup()}connect(a){let b;this.connecting=!0,this.retryAttempts=0;let c=async()=>{let g=this.sentinelIterator.next();if(g.done){this.sentinelIterator.reset(!1);let d="function"==typeof this.options.sentinelRetryStrategy?this.options.sentinelRetryStrategy(++this.retryAttempts):null,e="number"!=typeof d?"All sentinels are unreachable and retry is disabled.":`All sentinels are unreachable. Retrying from scratch after ${d}ms.`;b&&(e+=` Last error: ${b.message}`),k(e);let f=Error(e);if("number"==typeof d)return a("error",f),await new Promise(a=>setTimeout(a,d)),c();throw f}let h=null,i=null;try{h=await this.resolve(g.value)}catch(a){i=a}if(!this.connecting)throw Error(e.CONNECTION_CLOSED_ERROR_MSG);let j=g.value.host+":"+g.value.port;if(h)return k("resolved: %s:%s from sentinel %s",h.host,h.port,j),this.options.enableTLSForSentinelMode&&this.options.tls?(Object.assign(h,this.options.tls),this.stream=(0,f.connect)(h),this.stream.once("secureConnect",this.initFailoverDetector.bind(this))):(this.stream=(0,d.createConnection)(h),this.stream.once("connect",this.initFailoverDetector.bind(this))),this.stream.once("error",a=>{this.firstError=a}),this.stream;{let d=i?"failed to connect to sentinel "+j+" because "+i.message:"connected to sentinel "+j+" successfully, but got an invalid reply: "+h;return k(d),a("sentinelError",Error(d)),i&&(b=i),c()}};return c()}async updateSentinels(a){if(!this.options.updateSentinels)return;let b=await a.sentinel("sentinels",this.options.name);Array.isArray(b)&&(b.map(e.packObject).forEach(a=>{if(-1===(a.flags?a.flags.split(","):[]).indexOf("disconnected")&&a.ip&&a.port){let b=this.sentinelNatResolve(m(a));this.sentinelIterator.add(b)&&k("adding sentinel %s:%s",b.host,b.port)}}),k("Updated internal sentinels: %s",this.sentinelIterator))}async resolveMaster(a){let b=await a.sentinel("get-master-addr-by-name",this.options.name);return await this.updateSentinels(a),this.sentinelNatResolve(Array.isArray(b)?{host:b[0],port:Number(b[1])}:null)}async resolveSlave(a){let b=await a.sentinel("slaves",this.options.name);if(!Array.isArray(b))return null;let c=b.map(e.packObject).filter(a=>a.flags&&!a.flags.match(/(disconnected|s_down|o_down)/));return this.sentinelNatResolve(function(a,b){let c;if(0===a.length)return null;if("function"==typeof b)c=b(a);else if(null!==b&&"object"==typeof b){let d=Array.isArray(b)?b:[b];d.sort((a,b)=>(a.prio||(a.prio=1),b.prio||(b.prio=1),a.prio<b.prio)?-1:+(a.prio>b.prio));for(let b=0;b<d.length;b++){for(let e=0;e<a.length;e++){let f=a[e];if(f.ip===d[b].ip&&f.port===d[b].port){c=f;break}}if(c)break}}return c||(c=(0,e.sample)(a)),m(c)}(c,this.options.preferredSlaves))}sentinelNatResolve(a){if(!a||!this.options.natMap)return a;let b=`${a.host}:${a.port}`,c=a;return"function"==typeof this.options.natMap?c=this.options.natMap(b)||a:"object"==typeof this.options.natMap&&(c=this.options.natMap[b]||a),c}connectToSentinel(a,b){return new i.default({port:a.port||26379,host:a.host,username:this.options.sentinelUsername||null,password:this.options.sentinelPassword||null,family:a.family||("path"in this.options&&this.options.path?void 0:this.options.family),tls:this.options.sentinelTLS,retryStrategy:null,enableReadyCheck:!1,connectTimeout:this.options.connectTimeout,commandTimeout:this.options.sentinelCommandTimeout,...b})}async resolve(a){let b=this.connectToSentinel(a);b.on("error",n);try{if("slave"===this.options.role)return await this.resolveSlave(b);return await this.resolveMaster(b)}finally{b.disconnect()}}async initFailoverDetector(){var a;if(!this.options.failoverDetector)return;this.sentinelIterator.reset(!0);let b=[];for(;b.length<this.options.sentinelMaxConnections;){let{done:a,value:c}=this.sentinelIterator.next();if(a)break;let d=this.connectToSentinel(c,{lazyConnect:!0,retryStrategy:this.options.sentinelReconnectStrategy});d.on("reconnecting",()=>{var a;null==(a=this.emitter)||a.emit("sentinelReconnecting")}),b.push({address:c,client:d})}this.sentinelIterator.reset(!1),this.failoverDetector&&this.failoverDetector.cleanup(),this.failoverDetector=new j.FailoverDetector(this,b),await this.failoverDetector.subscribe(),null==(a=this.emitter)||a.emit("failoverSubscribed")}}function m(a){return{host:a.ip,port:Number(a.port)}}function n(){}b.default=l},16688:(a,b,c)=>{"use strict";a.exports=c(63145)},17751:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(54187),e=c(37970),f=c(91957),g=c(34103),h=(0,d.Debug)("cluster:subscriberGroup");class i{constructor(a){this.subscriberGroupEmitter=a,this.shardedSubscribers=new Map,this.clusterSlots=[],this.subscriberToSlotsIndex=new Map,this.channels=new Map,this.failedAttemptsByNode=new Map,this.isResetting=!1,this.pendingReset=null,this.handleSubscriberConnectFailed=(a,b)=>{let c=(this.failedAttemptsByNode.get(b)||0)+1;this.failedAttemptsByNode.set(b,c);let d=Math.min(c,i.MAX_RETRY_ATTEMPTS),e=Math.min(i.BASE_BACKOFF_MS*2**d,i.MAX_BACKOFF_MS),f=Math.floor(.5*e*(Math.random()-.5)),g=Math.max(0,e+f);h("Failed to connect subscriber for %s. Refreshing slots in %dms",b,g),this.subscriberGroupEmitter.emit("subscriberConnectFailed",{delay:g,error:a})},this.handleSubscriberConnectSucceeded=a=>{this.failedAttemptsByNode.delete(a)}}getResponsibleSubscriber(a){let b=this.clusterSlots[a][0];return this.shardedSubscribers.get(b)}addChannels(a){let b=f(a[0]);for(let c of a)if(f(c)!==b)return -1;let c=this.channels.get(b);return c?this.channels.set(b,c.concat(a)):this.channels.set(b,a),Array.from(this.channels.values()).reduce((a,b)=>a+b.length,0)}removeChannels(a){let b=f(a[0]);for(let c of a)if(f(c)!==b)return -1;let c=this.channels.get(b);if(c){let d=c.filter(b=>!a.includes(b));this.channels.set(b,d)}return Array.from(this.channels.values()).reduce((a,b)=>a+b.length,0)}stop(){for(let a of this.shardedSubscribers.values())a.stop();this.pendingReset=null,this.shardedSubscribers.clear(),this.subscriberToSlotsIndex.clear()}start(){let a=[];for(let b of this.shardedSubscribers.values())b.isStarted()||a.push(b.start().then(()=>{this.handleSubscriberConnectSucceeded(b.getNodeKey())}).catch(a=>{this.handleSubscriberConnectFailed(a,b.getNodeKey())}));return Promise.all(a)}async reset(a,b){if(this.isResetting){this.pendingReset={slots:a,nodes:b};return}this.isResetting=!0;try{let c=this._refreshSlots(a),d=this.hasUnhealthySubscribers();if(!c&&!d)return void h("No topology change detected or failed subscribers. Skipping reset.");for(let[a,b]of this.shardedSubscribers){if(this.subscriberToSlotsIndex.has(a)&&b.isStarted()){h("Skipping deleting subscriber for %s",a);continue}h("Removing subscriber for %s",a),b.stop(),this.shardedSubscribers.delete(a),this.subscriberGroupEmitter.emit("-subscriber")}let f=[];for(let[a,c]of this.subscriberToSlotsIndex){if(this.shardedSubscribers.has(a)){h("Skipping creating new subscriber for %s",a);continue}h("Creating new subscriber for %s",a);let c=b.find(b=>(0,e.getNodeKey)(b.options)===a);if(!c){h("Failed to find node for key %s",a);continue}let d=new g.default(this.subscriberGroupEmitter,c.options);this.shardedSubscribers.set(a,d),f.push(d.start().then(()=>{this.handleSubscriberConnectSucceeded(a)}).catch(b=>{this.handleSubscriberConnectFailed(b,a)})),this.subscriberGroupEmitter.emit("+subscriber")}await Promise.all(f),this._resubscribe(),this.subscriberGroupEmitter.emit("subscribersReady")}finally{if(this.isResetting=!1,this.pendingReset){let{slots:a,nodes:b}=this.pendingReset;this.pendingReset=null,await this.reset(a,b)}}}_refreshSlots(a){if(this._slotsAreEqual(a))return h("Nothing to refresh because the new cluster map is equal to the previous one."),!1;h("Refreshing the slots of the subscriber group."),this.subscriberToSlotsIndex=new Map;for(let b=0;b<a.length;b++){let c=a[b][0];this.subscriberToSlotsIndex.has(c)||this.subscriberToSlotsIndex.set(c,[]),this.subscriberToSlotsIndex.get(c).push(Number(b))}return this.clusterSlots=JSON.parse(JSON.stringify(a)),!0}_resubscribe(){this.shardedSubscribers&&this.shardedSubscribers.forEach((a,b)=>{let c=this.subscriberToSlotsIndex.get(b);c&&c.forEach(c=>{let d=a.getInstance(),e=this.channels.get(c);if(e&&e.length>0){if("end"===d.status)return;"ready"===d.status?d.ssubscribe(...e).catch(a=>{h("Failed to ssubscribe on node %s: %s",b,a)}):d.once("ready",()=>{d.ssubscribe(...e).catch(a=>{h("Failed to ssubscribe on node %s: %s",b,a)})})}})})}_slotsAreEqual(a){return void 0!==this.clusterSlots&&JSON.stringify(this.clusterSlots)===JSON.stringify(a)}hasUnhealthySubscribers(){let a=Array.from(this.shardedSubscribers.values()).some(a=>!a.isStarted()),b=Array.from(this.subscriberToSlotsIndex.keys()).some(a=>!this.shardedSubscribers.has(a));return a||b}}b.default=i,i.MAX_RETRY_ATTEMPTS=10,i.MAX_BACKOFF_MS=2e3,i.BASE_BACKOFF_MS=100},18797:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=(0,c(54187).Debug)("AbstractConnector");class e{constructor(a){this.connecting=!1,this.disconnectTimeout=a}check(a){return!0}disconnect(){if(this.connecting=!1,this.stream){let a=this.stream,b=setTimeout(()=>{d("stream %s:%s still open, destroying it",a.remoteAddress,a.remotePort),a.destroy()},this.disconnectTimeout);a.on("close",()=>clearTimeout(b)),a.end()}}}b.default=e},19140:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(54187),e=c(73380),f=(0,d.Debug)("delayqueue");class g{constructor(){this.queues={},this.timeouts={}}push(a,b,c){let d=c.callback||process.nextTick;this.queues[a]||(this.queues[a]=new e),this.queues[a].push(b),this.timeouts[a]||(this.timeouts[a]=setTimeout(()=>{d(()=>{this.timeouts[a]=null,this.execute(a)})},c.timeout))}execute(a){let b=this.queues[a];if(!b)return;let{length:c}=b;if(c)for(f("send %d commands in %s queue",c,a),this.queues[a]=null;b.length>0;)b.shift()()}}b.default=g},19283:(a,b,c)=>{b.formatArgs=function(b){if(b[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+b[0]+(this.useColors?"%c ":" ")+"+"+a.exports.humanize(this.diff),!this.useColors)return;let c="color: "+this.color;b.splice(1,0,c,"color: inherit");let d=0,e=0;b[0].replace(/%[a-zA-Z%]/g,a=>{"%%"!==a&&(d++,"%c"===a&&(e=d))}),b.splice(e,0,c)},b.save=function(a){try{a?b.storage.setItem("debug",a):b.storage.removeItem("debug")}catch(a){}},b.load=function(){let a;try{a=b.storage.getItem("debug")||b.storage.getItem("DEBUG")}catch(a){}return!a&&"undefined"!=typeof process&&"env"in process&&(a=process.env.DEBUG),a},b.useColors=function(){let a;return"undefined"!=typeof window&&!!window.process&&("renderer"===window.process.type||!!window.process.__nwjs)||!("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(a=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(a[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},b.storage=function(){try{return localStorage}catch(a){}}(),b.destroy=(()=>{let a=!1;return()=>{a||(a=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),b.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],b.log=console.debug||console.log||(()=>{}),a.exports=c(950)(b);let{formatters:d}=a.exports;d.j=function(a){try{return JSON.stringify(a)}catch(a){return"[UnexpectedJSONParseError]: "+a.message}}},20354:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.DEFAULT_CLUSTER_OPTIONS=void 0;let d=c(14985);b.DEFAULT_CLUSTER_OPTIONS={clusterRetryStrategy:a=>Math.min(100+2*a,2e3),enableOfflineQueue:!0,enableReadyCheck:!0,scaleReads:"master",maxRedirections:16,retryDelayOnMoved:0,retryDelayOnFailover:100,retryDelayOnClusterDown:100,retryDelayOnTryAgain:100,slotsRefreshTimeout:1e3,useSRVRecords:!1,resolveSrv:d.resolveSrv,dnsLookup:d.lookup,enableAutoPipelining:!1,autoPipeliningIgnoredCommands:[],shardedSubscribers:!1}},22009:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.SentinelConnector=b.StandaloneConnector=void 0,b.StandaloneConnector=c(3820).default,b.SentinelConnector=c(15789).default},22618:(a,b,c)=>{"use strict";let d,e=c(21820),f=c(83997),g=c(47823),{env:h}=process;function i(a){return 0!==a&&{level:a,hasBasic:!0,has256:a>=2,has16m:a>=3}}function j(a,b){if(0===d)return 0;if(g("color=16m")||g("color=full")||g("color=truecolor"))return 3;if(g("color=256"))return 2;if(a&&!b&&void 0===d)return 0;let c=d||0;if("dumb"===h.TERM)return c;if("win32"===process.platform){let a=e.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in h)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(a=>a in h)||"codeship"===h.CI_NAME?1:c;if("TEAMCITY_VERSION"in h)return+!!/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(h.TEAMCITY_VERSION);if("truecolor"===h.COLORTERM)return 3;if("TERM_PROGRAM"in h){let a=parseInt((h.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(h.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(h.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(h.TERM)||"COLORTERM"in h?1:c}g("no-color")||g("no-colors")||g("color=false")||g("color=never")?d=0:(g("color")||g("colors")||g("color=true")||g("color=always"))&&(d=1),"FORCE_COLOR"in h&&(d="true"===h.FORCE_COLOR?1:"false"===h.FORCE_COLOR?0:0===h.FORCE_COLOR.length?1:Math.min(parseInt(h.FORCE_COLOR,10),3)),a.exports={supportsColor:function(a){return i(j(a,a&&a.isTTY))},stdout:i(j(!0,f.isatty(1))),stderr:i(j(!0,f.isatty(2)))}},23142:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.FailoverDetector=void 0;let d=(0,c(54187).Debug)("FailoverDetector"),e="+switch-master";class f{constructor(a,b){this.isDisconnected=!1,this.connector=a,this.sentinels=b}cleanup(){for(let a of(this.isDisconnected=!0,this.sentinels))a.client.disconnect()}async subscribe(){d("Starting FailoverDetector");let a=[];for(let b of this.sentinels){let c=b.client.subscribe(e).catch(a=>{d("Failed to subscribe to failover messages on sentinel %s:%s (%s)",b.address.host||"127.0.0.1",b.address.port||26739,a.message)});a.push(c),b.client.on("message",a=>{this.isDisconnected||a!==e||this.disconnect()})}await Promise.all(a)}disconnect(){this.isDisconnected=!0,d("Failover detected, disconnecting"),this.connector.disconnect()}}b.FailoverDetector=f},23865:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(14642),e=c(54187),f=c(16688),g=c(43504),h=(0,e.Debug)("dataHandler");class i{constructor(a,b){this.redis=a;let c=new f({stringNumbers:b.stringNumbers,returnBuffers:!0,returnError:a=>{this.returnError(a)},returnFatalError:a=>{this.returnFatalError(a)},returnReply:a=>{this.returnReply(a)}});a.stream.prependListener("data",a=>{c.execute(a)}),a.stream.resume()}returnFatalError(a){a.message+=". Please report this.",this.redis.recoverFromFatalError(a,a,{offlineQueue:!1})}returnError(a){let b=this.shiftCommand(a);if(b){if(a.command={name:b.command.name,args:b.command.args},"ssubscribe"==b.command.name&&a.message.includes("MOVED"))return void this.redis.emit("moved");this.redis.handleReconnection(a,b)}}returnReply(a){if(this.handleMonitorReply(a)||this.handleSubscriberReply(a))return;let b=this.shiftCommand(a);b&&(d.default.checkFlag("ENTER_SUBSCRIBER_MODE",b.command.name)?(this.redis.condition.subscriber=new g.default,this.redis.condition.subscriber.add(b.command.name,a[1].toString()),k(b.command,a[2])||this.redis.commandQueue.unshift(b)):d.default.checkFlag("EXIT_SUBSCRIBER_MODE",b.command.name)?l(b.command,a[2])||this.redis.commandQueue.unshift(b):b.command.resolve(a))}handleSubscriberReply(a){if(!this.redis.condition.subscriber)return!1;let b=Array.isArray(a)?a[0].toString():null;switch(h('receive reply "%s" in subscriber mode',b),b){case"message":this.redis.listeners("message").length>0&&this.redis.emit("message",a[1].toString(),a[2]?a[2].toString():""),this.redis.emit("messageBuffer",a[1],a[2]);break;case"pmessage":{let b=a[1].toString();this.redis.listeners("pmessage").length>0&&this.redis.emit("pmessage",b,a[2].toString(),a[3].toString()),this.redis.emit("pmessageBuffer",b,a[2],a[3]);break}case"smessage":this.redis.listeners("smessage").length>0&&this.redis.emit("smessage",a[1].toString(),a[2]?a[2].toString():""),this.redis.emit("smessageBuffer",a[1],a[2]);break;case"ssubscribe":case"subscribe":case"psubscribe":{let c=a[1].toString();this.redis.condition.subscriber.add(b,c);let d=this.shiftCommand(a);if(!d)return;k(d.command,a[2])||this.redis.commandQueue.unshift(d);break}case"sunsubscribe":case"unsubscribe":case"punsubscribe":{let c=a[1]?a[1].toString():null;c&&this.redis.condition.subscriber.del(b,c);let d=a[2];0===Number(d)&&(this.redis.condition.subscriber=!1);let e=this.shiftCommand(a);if(!e)return;l(e.command,d)||this.redis.commandQueue.unshift(e);break}default:{let b=this.shiftCommand(a);if(!b)return;b.command.resolve(a)}}return!0}handleMonitorReply(a){if("monitoring"!==this.redis.status)return!1;let b=a.toString();if("OK"===b)return!1;let c=b.indexOf(" "),d=b.slice(0,c),e=b.indexOf('"'),f=b.slice(e+1,-1).split('" "').map(a=>a.replace(/\\"/g,'"')),g=b.slice(c+2,e-2).split(" ");return this.redis.emit("monitor",d,f,g[1],g[0]),!0}shiftCommand(a){let b=this.redis.commandQueue.shift();if(!b){let b=Error("Command queue state error. If you can reproduce this, please report it."+(a instanceof Error?` Last error: ${a.message}`:` Last reply: ${a.toString()}`));return this.redis.emit("error",b),null}return b}}b.default=i;let j=new WeakMap;function k(a,b){let c=j.has(a)?j.get(a):a.args.length;return(c-=1)<=0?(a.resolve(b),j.delete(a),!0):(j.set(a,c),!1)}function l(a,b){let c=j.has(a)?j.get(a):a.args.length;return 0===c?0===Number(b)&&(j.delete(a),a.resolve(b),!0):(c-=1)<=0?(a.resolve(b),!0):(j.set(a,c),!1)}},24281:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.addTransactionSupport=void 0;let d=c(54187),e=c(881),f=c(82161);b.addTransactionSupport=function(a){a.pipeline=function(a){let b=new f.default(this);return Array.isArray(a)&&b.addBatch(a),b};let{multi:b}=a;a.multi=function(a,c){if(void 0!==c||Array.isArray(a)||(c=a,a=null),c&&!1===c.pipeline)return b.call(this);let g=new f.default(this);g.multi(),Array.isArray(a)&&g.addBatch(a);let h=g.exec;g.exec=function(a){if(this.isCluster&&!this.redis.slots.length)return"wait"===this.redis.status&&this.redis.connect().catch(d.noop),(0,e.default)(new Promise((a,b)=>{this.redis.delayUntilReady(c=>{if(c)return void b(c);this.exec(g).then(a,b)})}),a);if(this._transactions>0&&h.call(g),this.nodeifiedPromise)return h.call(g);let b=h.call(g);return(0,e.default)(b.then(function(a){let b=a[a.length-1];if(void 0===b)throw Error("Pipeline cannot be used to send any commands when the `exec()` has been called on it.");if(b[0]){b[0].previousErrors=[];for(let c=0;c<a.length-1;++c)a[c][0]&&b[0].previousErrors.push(a[c][0]);throw b[0]}return(0,d.wrapMultiResult)(b[1])}),a)};let{execBuffer:i}=g;return g.execBuffer=function(a){return this._transactions>0&&i.call(g),g.exec(a)},g};let{exec:c}=a;a.exec=function(a){return(0,e.default)(c.call(this).then(function(a){return Array.isArray(a)&&(a=(0,d.wrapMultiResult)(a)),a}),a)}}},27509:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.executeWithAutoPipelining=b.getFirstValueInFlattenedArray=b.shouldUseAutoPipelining=b.notAllowedAutoPipelineCommands=b.kCallbacks=b.kExec=void 0;let d=c(77318),e=c(91957),f=c(881),g=c(9666);function h(a){for(let b=0;b<a.length;b++){let c=a[b];if("string"==typeof c)return c;if(Array.isArray(c)||(0,d.isArguments)(c)){if(0===c.length)continue;return c[0]}let e=[c].flat();if(e.length>0)return e[0]}}b.kExec=Symbol("exec"),b.kCallbacks=Symbol("callbacks"),b.notAllowedAutoPipelineCommands=["auth","info","script","quit","cluster","pipeline","multi","subscribe","psubscribe","unsubscribe","unpsubscribe","select","client"],b.shouldUseAutoPipelining=function(a,c,d){return c&&a.options.enableAutoPipelining&&!a.isPipeline&&!b.notAllowedAutoPipelineCommands.includes(d)&&!a.options.autoPipeliningIgnoredCommands.includes(d)},b.getFirstValueInFlattenedArray=h,b.executeWithAutoPipelining=function a(c,i,j,k,l){if(c.isCluster&&!c.slots.length)return"wait"===c.status&&c.connect().catch(d.noop),(0,f.default)(new Promise(function(b,d){c.delayUntilReady(e=>{if(e)return void d(e);a(c,i,j,k,null).then(b,d)})}),l);let m=c.options.keyPrefix||"",n=c.isCluster?c.slots[e(`${m}${h(k)}`)].join(","):"main";if(c.isCluster&&"master"!==c.options.scaleReads&&(n+=(0,g.exists)(j)&&(0,g.hasFlag)(j,"readonly")?":read":":write"),!c._autoPipelines.has(n)){let a=c.pipeline();a[b.kExec]=!1,a[b.kCallbacks]=[],c._autoPipelines.set(n,a)}let o=c._autoPipelines.get(n);o[b.kExec]||(o[b.kExec]=!0,setImmediate(function a(c,d){if(c._runningAutoPipelines.has(d)||!c._autoPipelines.has(d))return;c._runningAutoPipelines.add(d);let e=c._autoPipelines.get(d);c._autoPipelines.delete(d);let f=e[b.kCallbacks];e[b.kCallbacks]=null,e.exec(function(b,e){if(c._runningAutoPipelines.delete(d),b)for(let a=0;a<f.length;a++)process.nextTick(f[a],b);else for(let a=0;a<f.length;a++)process.nextTick(f[a],...e[a]);c._autoPipelines.has(d)&&a(c,d)})},c,n));let p=new Promise(function(a,c){o[b.kCallbacks].push(function(b,d){if(b)return void c(b);a(d)}),"call"===i&&k.unshift(j),o[i](...k)});return(0,f.default)(p,l)}},29229:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.print=b.ReplyError=b.SentinelIterator=b.SentinelConnector=b.AbstractConnector=b.Pipeline=b.ScanStream=b.Command=b.Cluster=b.Redis=b.default=void 0,b=a.exports=c(88568).default;var d=c(88568);Object.defineProperty(b,"default",{enumerable:!0,get:function(){return d.default}});var e=c(88568);Object.defineProperty(b,"Redis",{enumerable:!0,get:function(){return e.default}});var f=c(55058);Object.defineProperty(b,"Cluster",{enumerable:!0,get:function(){return f.default}});var g=c(14642);Object.defineProperty(b,"Command",{enumerable:!0,get:function(){return g.default}});var h=c(30644);Object.defineProperty(b,"ScanStream",{enumerable:!0,get:function(){return h.default}});var i=c(82161);Object.defineProperty(b,"Pipeline",{enumerable:!0,get:function(){return i.default}});var j=c(18797);Object.defineProperty(b,"AbstractConnector",{enumerable:!0,get:function(){return j.default}});var k=c(15789);Object.defineProperty(b,"SentinelConnector",{enumerable:!0,get:function(){return k.default}}),Object.defineProperty(b,"SentinelIterator",{enumerable:!0,get:function(){return k.SentinelIterator}}),b.ReplyError=c(44400).ReplyError,Object.defineProperty(b,"Promise",{get:()=>(console.warn("ioredis v5 does not support plugging third-party Promise library anymore. Native Promise will be used."),Promise),set(a){console.warn("ioredis v5 does not support plugging third-party Promise library anymore. Native Promise will be used.")}}),b.print=function(a,b){a?console.log("Error: "+a):console.log("Reply: "+b)}},30577:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(44400);class e extends d.RedisError{constructor(a,b){super(a),this.lastNodeError=b,Error.captureStackTrace(this,this.constructor)}get name(){return this.constructor.name}}b.default=e,e.defaultMessage="Failed to refresh slots cache."},30644:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(27910);class e extends d.Readable{constructor(a){super(a),this.opt=a,this._redisCursor="0",this._redisDrained=!1}_read(){if(this._redisDrained)return void this.push(null);let a=[this._redisCursor];this.opt.key&&a.unshift(this.opt.key),this.opt.match&&a.push("MATCH",this.opt.match),this.opt.type&&a.push("TYPE",this.opt.type),this.opt.count&&a.push("COUNT",String(this.opt.count)),this.opt.noValues&&a.push("NOVALUES"),this.opt.redis[this.opt.command](a,(a,b)=>{if(a)return void this.emit("error",a);this._redisCursor=b[0]instanceof Buffer?b[0].toString():b[0],"0"===this._redisCursor&&(this._redisDrained=!0),this.push(b[1])})}close(){this._redisDrained=!0}}b.default=e},32011:a=>{function b(a,b,c,d){return Math.round(a/c)+" "+d+(b>=1.5*c?"s":"")}a.exports=function(a,c){c=c||{};var d,e,f,g,h=typeof a;if("string"===h&&a.length>0){var i=a;if(!((i=String(i)).length>100)){var j=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(i);if(j){var k=parseFloat(j[1]);switch((j[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*k;case"weeks":case"week":case"w":return 6048e5*k;case"days":case"day":case"d":return 864e5*k;case"hours":case"hour":case"hrs":case"hr":case"h":return 36e5*k;case"minutes":case"minute":case"mins":case"min":case"m":return 6e4*k;case"seconds":case"second":case"secs":case"sec":case"s":return 1e3*k;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return k;default:break}}}return}if("number"===h&&isFinite(a)){return c.long?(e=Math.abs(d=a))>=864e5?b(d,e,864e5,"day"):e>=36e5?b(d,e,36e5,"hour"):e>=6e4?b(d,e,6e4,"minute"):e>=1e3?b(d,e,1e3,"second"):d+" ms":(g=Math.abs(f=a))>=864e5?Math.round(f/864e5)+"d":g>=36e5?Math.round(f/36e5)+"h":g>=6e4?Math.round(f/6e4)+"m":g>=1e3?Math.round(f/1e3)+"s":f+"ms"}throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(a))}},34103:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(37970),e=c(54187),f=c(88568),g=(0,e.Debug)("cluster:subscriberGroup:shardedSubscriber");class h{constructor(a,b){for(let c of(this.emitter=a,this.started=!1,this.instance=null,this.messageListeners=new Map,this.onEnd=()=>{this.started=!1,this.emitter.emit("-node",this.instance,this.nodeKey)},this.onError=a=>{this.emitter.emit("nodeError",a,this.nodeKey)},this.onMoved=()=>{this.emitter.emit("moved")},this.instance=new f.default({port:b.port,host:b.host,username:b.username,password:b.password,enableReadyCheck:!1,offlineQueue:!0,connectionName:(0,d.getConnectionName)("ssubscriber",b.connectionName),lazyConnect:!0,tls:b.tls,retryStrategy:null}),this.nodeKey=(0,d.getNodeKey)(b),this.instance.once("end",this.onEnd),this.instance.on("error",this.onError),this.instance.on("moved",this.onMoved),["smessage","smessageBuffer"])){let a=(...a)=>{this.emitter.emit(c,...a)};this.messageListeners.set(c,a),this.instance.on(c,a)}}async start(){if(this.started)return void g("already started %s",this.nodeKey);try{await this.instance.connect(),g("started %s",this.nodeKey),this.started=!0}catch(a){throw g("failed to start %s: %s",this.nodeKey,a),this.started=!1,a}}stop(){this.started=!1,this.instance&&(this.instance.disconnect(),this.instance.removeAllListeners(),this.messageListeners.clear(),this.instance=null),g("stopped %s",this.nodeKey)}isStarted(){return this.started}getInstance(){return this.instance}getNodeKey(){return this.nodeKey}}b.default=h},37422:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{z:()=>r});var e=c(97494),f=c(80037),g=c(64939),h=c(37614),i=a([g,f]);[g,f]=i.then?(await i)():i;let j=process.env.DATABASE_URL||(process.env.DB_HOST?`postgresql://${process.env.DB_USERNAME}:${encodeURIComponent(process.env.DB_PASSWORD||"")}@${process.env.DB_HOST}:${process.env.DB_PORT||"5432"}/${process.env.DB_NAME||"chorus"}`:void 0),k=globalThis,l="1"===process.env.CHORUS_USE_PGLITE,m=k.pool??new g.default.Pool({connectionString:j,...l?{max:1}:{},...process.env.DB_HOST?{ssl:{rejectUnauthorized:!1}}:{}});k.pool||m.on("error",a=>{h.A.child({module:"pg-pool"}).warn({err:a.message},"Idle connection evicted")});let n=new f.M(m),o=h.A.child({module:"prisma"}),p=k.prisma??new e.m3({adapter:n,log:[{emit:"event",level:"error"}]}),q=h.A.child({module:"pg-pool"}),r=p.$extends({query:{async $allOperations({args:a,query:b}){let c;for(let d=0;d<=3;d++)try{return await b(a)}catch(a){if(a instanceof Error&&("code"in a&&"P1017"===a.code||a.message.includes("Connection terminated")||a.message.includes("Server has closed the connection"))&&d<3){q.warn("Stale connection evicted (attempt %d/%d)",d+1,3),c=a;continue}throw a}throw c}}});k.prisma||"function"!=typeof p.$on||(p.$on("query",a=>{o.debug({duration:a.duration},a.query)}),p.$on("warn",a=>{o.warn(a.message)}),p.$on("error",a=>{o.error(a.message)})),d()}catch(a){d(a)}})},37614:(a,b,c)=>{"use strict";c.d(b,{A:()=>e});var d=c(74552);let e=c.n(d)()({level:process.env.LOG_LEVEL||"info",base:{service:"chorus"},...{}})},37970:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.getConnectionName=b.weightSrvRecords=b.groupSrvRecords=b.getUniqueHostnamesFromOptions=b.normalizeNodeOptions=b.nodeKeyToRedisOptions=b.getNodeKey=void 0;let d=c(54187),e=c(91645);b.getNodeKey=function(a){return a.port=a.port||6379,a.host=a.host||"127.0.0.1",a.host+":"+a.port},b.nodeKeyToRedisOptions=function(a){let b=a.lastIndexOf(":");if(-1===b)throw Error(`Invalid node key ${a}`);return{host:a.slice(0,b),port:Number(a.slice(b+1))}},b.normalizeNodeOptions=function(a){return a.map(a=>{let b={};if("object"==typeof a)Object.assign(b,a);else if("string"==typeof a)Object.assign(b,(0,d.parseURL)(a));else if("number"==typeof a)b.port=a;else throw Error("Invalid argument "+a);return"string"==typeof b.port&&(b.port=parseInt(b.port,10)),delete b.db,b.port||(b.port=6379),b.host||(b.host="127.0.0.1"),(0,d.resolveTLSProfile)(b)})},b.getUniqueHostnamesFromOptions=function(a){let b={};return a.forEach(a=>{b[a.host]=!0}),Object.keys(b).filter(a=>!(0,e.isIP)(a))},b.groupSrvRecords=function(a){let b={};for(let c of a)b.hasOwnProperty(c.priority)?(b[c.priority].totalWeight+=c.weight,b[c.priority].records.push(c)):b[c.priority]={totalWeight:c.weight,records:[c]};return b},b.weightSrvRecords=function(a){if(1===a.records.length)return a.totalWeight=0,a.records.shift();let b=Math.floor(Math.random()*(a.totalWeight+a.records.length)),c=0;for(let[d,e]of a.records.entries())if((c+=1+e.weight)>b)return a.totalWeight-=e.weight,a.records.splice(d,1),e},b.getConnectionName=function(a,b){let c=`ioredis-cluster(${a})`;return b?`${c}:${b}`:c}},38002:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let c=`-----BEGIN CERTIFICATE-----
2
2
  MIIDTzCCAjegAwIBAgIJAKSVpiDswLcwMA0GCSqGSIb3DQEBBQUAMD4xFjAUBgNV
3
3
  BAoMDUdhcmFudGlhIERhdGExJDAiBgNVBAMMG1NTTCBDZXJ0aWZpY2F0aW9uIEF1
4
4
  dGhvcml0eTAeFw0xMzEwMDExMjE0NTVaFw0yMzA5MjkxMjE0NTVaMD4xFjAUBgNV
@@ -136,4 +136,4 @@ jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
136
136
  mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
137
137
  Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
138
138
  WD9f
139
- -----END CERTIFICATE-----`;b.default={RedisCloudFixed:{ca:c},RedisCloudFlexible:{ca:c}}},39176:a=>{"use strict";a.exports=JSON.parse('{"acl":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"append":{"arity":3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"asking":{"arity":1,"flags":["fast"],"keyStart":0,"keyStop":0,"step":0},"auth":{"arity":-2,"flags":["noscript","loading","stale","fast","no_auth","allow_busy"],"keyStart":0,"keyStop":0,"step":0},"bgrewriteaof":{"arity":1,"flags":["admin","noscript","no_async_loading"],"keyStart":0,"keyStop":0,"step":0},"bgsave":{"arity":-1,"flags":["admin","noscript","no_async_loading"],"keyStart":0,"keyStop":0,"step":0},"bitcount":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"bitfield":{"arity":-2,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"bitfield_ro":{"arity":-2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"bitop":{"arity":-4,"flags":["write","denyoom"],"keyStart":2,"keyStop":-1,"step":1},"bitpos":{"arity":-3,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"blmove":{"arity":6,"flags":["write","denyoom","noscript","blocking"],"keyStart":1,"keyStop":2,"step":1},"blmpop":{"arity":-5,"flags":["write","blocking","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"blpop":{"arity":-3,"flags":["write","noscript","blocking"],"keyStart":1,"keyStop":-2,"step":1},"brpop":{"arity":-3,"flags":["write","noscript","blocking"],"keyStart":1,"keyStop":-2,"step":1},"brpoplpush":{"arity":4,"flags":["write","denyoom","noscript","blocking"],"keyStart":1,"keyStop":2,"step":1},"bzmpop":{"arity":-5,"flags":["write","blocking","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"bzpopmax":{"arity":-3,"flags":["write","noscript","blocking","fast"],"keyStart":1,"keyStop":-2,"step":1},"bzpopmin":{"arity":-3,"flags":["write","noscript","blocking","fast"],"keyStart":1,"keyStop":-2,"step":1},"client":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"cluster":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"command":{"arity":-1,"flags":["loading","stale"],"keyStart":0,"keyStop":0,"step":0},"config":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"copy":{"arity":-3,"flags":["write","denyoom"],"keyStart":1,"keyStop":2,"step":1},"dbsize":{"arity":1,"flags":["readonly","fast"],"keyStart":0,"keyStop":0,"step":0},"debug":{"arity":-2,"flags":["admin","noscript","loading","stale"],"keyStart":0,"keyStop":0,"step":0},"decr":{"arity":2,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"decrby":{"arity":3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"del":{"arity":-2,"flags":["write"],"keyStart":1,"keyStop":-1,"step":1},"discard":{"arity":1,"flags":["noscript","loading","stale","fast","allow_busy"],"keyStart":0,"keyStop":0,"step":0},"dump":{"arity":2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"echo":{"arity":2,"flags":["fast"],"keyStart":0,"keyStop":0,"step":0},"eval":{"arity":-3,"flags":["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"eval_ro":{"arity":-3,"flags":["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"evalsha":{"arity":-3,"flags":["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"evalsha_ro":{"arity":-3,"flags":["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"exec":{"arity":1,"flags":["noscript","loading","stale","skip_slowlog"],"keyStart":0,"keyStop":0,"step":0},"exists":{"arity":-2,"flags":["readonly","fast"],"keyStart":1,"keyStop":-1,"step":1},"expire":{"arity":-3,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"expireat":{"arity":-3,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"expiretime":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"failover":{"arity":-1,"flags":["admin","noscript","stale"],"keyStart":0,"keyStop":0,"step":0},"fcall":{"arity":-3,"flags":["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"fcall_ro":{"arity":-3,"flags":["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"flushall":{"arity":-1,"flags":["write"],"keyStart":0,"keyStop":0,"step":0},"flushdb":{"arity":-1,"flags":["write"],"keyStart":0,"keyStop":0,"step":0},"function":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"geoadd":{"arity":-5,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"geodist":{"arity":-4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"geohash":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"geopos":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"georadius":{"arity":-6,"flags":["write","denyoom","movablekeys"],"keyStart":1,"keyStop":1,"step":1},"georadius_ro":{"arity":-6,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"georadiusbymember":{"arity":-5,"flags":["write","denyoom","movablekeys"],"keyStart":1,"keyStop":1,"step":1},"georadiusbymember_ro":{"arity":-5,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"geosearch":{"arity":-7,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"geosearchstore":{"arity":-8,"flags":["write","denyoom"],"keyStart":1,"keyStop":2,"step":1},"get":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"getbit":{"arity":3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"getdel":{"arity":2,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"getex":{"arity":-2,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"getrange":{"arity":4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"getset":{"arity":3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"hdel":{"arity":-3,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"hello":{"arity":-1,"flags":["noscript","loading","stale","fast","no_auth","allow_busy"],"keyStart":0,"keyStop":0,"step":0},"hexists":{"arity":3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"hexpire":{"arity":-6,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"hpexpire":{"arity":-6,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"hget":{"arity":3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"hgetall":{"arity":2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"hincrby":{"arity":4,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"hincrbyfloat":{"arity":4,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"hkeys":{"arity":2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"hlen":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"hmget":{"arity":-3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"hmset":{"arity":-4,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"hrandfield":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"hscan":{"arity":-3,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"hset":{"arity":-4,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"hsetnx":{"arity":4,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"hstrlen":{"arity":3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"hvals":{"arity":2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"incr":{"arity":2,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"incrby":{"arity":3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"incrbyfloat":{"arity":3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"info":{"arity":-1,"flags":["loading","stale"],"keyStart":0,"keyStop":0,"step":0},"keys":{"arity":2,"flags":["readonly"],"keyStart":0,"keyStop":0,"step":0},"lastsave":{"arity":1,"flags":["loading","stale","fast"],"keyStart":0,"keyStop":0,"step":0},"latency":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"lcs":{"arity":-3,"flags":["readonly"],"keyStart":1,"keyStop":2,"step":1},"lindex":{"arity":3,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"linsert":{"arity":5,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"llen":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"lmove":{"arity":5,"flags":["write","denyoom"],"keyStart":1,"keyStop":2,"step":1},"lmpop":{"arity":-4,"flags":["write","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"lolwut":{"arity":-1,"flags":["readonly","fast"],"keyStart":0,"keyStop":0,"step":0},"lpop":{"arity":-2,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"lpos":{"arity":-3,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"lpush":{"arity":-3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"lpushx":{"arity":-3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"lrange":{"arity":4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"lrem":{"arity":4,"flags":["write"],"keyStart":1,"keyStop":1,"step":1},"lset":{"arity":4,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"ltrim":{"arity":4,"flags":["write"],"keyStart":1,"keyStop":1,"step":1},"memory":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"mget":{"arity":-2,"flags":["readonly","fast"],"keyStart":1,"keyStop":-1,"step":1},"migrate":{"arity":-6,"flags":["write","movablekeys"],"keyStart":3,"keyStop":3,"step":1},"module":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"monitor":{"arity":1,"flags":["admin","noscript","loading","stale"],"keyStart":0,"keyStop":0,"step":0},"move":{"arity":3,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"mset":{"arity":-3,"flags":["write","denyoom"],"keyStart":1,"keyStop":-1,"step":2},"msetnx":{"arity":-3,"flags":["write","denyoom"],"keyStart":1,"keyStop":-1,"step":2},"multi":{"arity":1,"flags":["noscript","loading","stale","fast","allow_busy"],"keyStart":0,"keyStop":0,"step":0},"object":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"persist":{"arity":2,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"pexpire":{"arity":-3,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"pexpireat":{"arity":-3,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"pexpiretime":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"pfadd":{"arity":-2,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"pfcount":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":-1,"step":1},"pfdebug":{"arity":3,"flags":["write","denyoom","admin"],"keyStart":2,"keyStop":2,"step":1},"pfmerge":{"arity":-2,"flags":["write","denyoom"],"keyStart":1,"keyStop":-1,"step":1},"pfselftest":{"arity":1,"flags":["admin"],"keyStart":0,"keyStop":0,"step":0},"ping":{"arity":-1,"flags":["fast"],"keyStart":0,"keyStop":0,"step":0},"psetex":{"arity":4,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"psubscribe":{"arity":-2,"flags":["pubsub","noscript","loading","stale"],"keyStart":0,"keyStop":0,"step":0},"psync":{"arity":-3,"flags":["admin","noscript","no_async_loading","no_multi"],"keyStart":0,"keyStop":0,"step":0},"pttl":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"publish":{"arity":3,"flags":["pubsub","loading","stale","fast"],"keyStart":0,"keyStop":0,"step":0},"pubsub":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"punsubscribe":{"arity":-1,"flags":["pubsub","noscript","loading","stale"],"keyStart":0,"keyStop":0,"step":0},"quit":{"arity":-1,"flags":["noscript","loading","stale","fast","no_auth","allow_busy"],"keyStart":0,"keyStop":0,"step":0},"randomkey":{"arity":1,"flags":["readonly"],"keyStart":0,"keyStop":0,"step":0},"readonly":{"arity":1,"flags":["loading","stale","fast"],"keyStart":0,"keyStop":0,"step":0},"readwrite":{"arity":1,"flags":["loading","stale","fast"],"keyStart":0,"keyStop":0,"step":0},"rename":{"arity":3,"flags":["write"],"keyStart":1,"keyStop":2,"step":1},"renamenx":{"arity":3,"flags":["write","fast"],"keyStart":1,"keyStop":2,"step":1},"replconf":{"arity":-1,"flags":["admin","noscript","loading","stale","allow_busy"],"keyStart":0,"keyStop":0,"step":0},"replicaof":{"arity":3,"flags":["admin","noscript","stale","no_async_loading"],"keyStart":0,"keyStop":0,"step":0},"reset":{"arity":1,"flags":["noscript","loading","stale","fast","no_auth","allow_busy"],"keyStart":0,"keyStop":0,"step":0},"restore":{"arity":-4,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"restore-asking":{"arity":-4,"flags":["write","denyoom","asking"],"keyStart":1,"keyStop":1,"step":1},"role":{"arity":1,"flags":["noscript","loading","stale","fast"],"keyStart":0,"keyStop":0,"step":0},"rpop":{"arity":-2,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"rpoplpush":{"arity":3,"flags":["write","denyoom"],"keyStart":1,"keyStop":2,"step":1},"rpush":{"arity":-3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"rpushx":{"arity":-3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"sadd":{"arity":-3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"save":{"arity":1,"flags":["admin","noscript","no_async_loading","no_multi"],"keyStart":0,"keyStop":0,"step":0},"scan":{"arity":-2,"flags":["readonly"],"keyStart":0,"keyStop":0,"step":0},"scard":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"script":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"sdiff":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":-1,"step":1},"sdiffstore":{"arity":-3,"flags":["write","denyoom"],"keyStart":1,"keyStop":-1,"step":1},"select":{"arity":2,"flags":["loading","stale","fast"],"keyStart":0,"keyStop":0,"step":0},"set":{"arity":-3,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"setbit":{"arity":4,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"setex":{"arity":4,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"setnx":{"arity":3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"setrange":{"arity":4,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"shutdown":{"arity":-1,"flags":["admin","noscript","loading","stale","no_multi","allow_busy"],"keyStart":0,"keyStop":0,"step":0},"sinter":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":-1,"step":1},"sintercard":{"arity":-3,"flags":["readonly","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"sinterstore":{"arity":-3,"flags":["write","denyoom"],"keyStart":1,"keyStop":-1,"step":1},"sismember":{"arity":3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"slaveof":{"arity":3,"flags":["admin","noscript","stale","no_async_loading"],"keyStart":0,"keyStop":0,"step":0},"slowlog":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"smembers":{"arity":2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"smismember":{"arity":-3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"smove":{"arity":4,"flags":["write","fast"],"keyStart":1,"keyStop":2,"step":1},"sort":{"arity":-2,"flags":["write","denyoom","movablekeys"],"keyStart":1,"keyStop":1,"step":1},"sort_ro":{"arity":-2,"flags":["readonly","movablekeys"],"keyStart":1,"keyStop":1,"step":1},"spop":{"arity":-2,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"spublish":{"arity":3,"flags":["pubsub","loading","stale","fast"],"keyStart":1,"keyStop":1,"step":1},"srandmember":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"srem":{"arity":-3,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"sscan":{"arity":-3,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"ssubscribe":{"arity":-2,"flags":["pubsub","noscript","loading","stale"],"keyStart":1,"keyStop":-1,"step":1},"strlen":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"subscribe":{"arity":-2,"flags":["pubsub","noscript","loading","stale"],"keyStart":0,"keyStop":0,"step":0},"substr":{"arity":4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"sunion":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":-1,"step":1},"sunionstore":{"arity":-3,"flags":["write","denyoom"],"keyStart":1,"keyStop":-1,"step":1},"sunsubscribe":{"arity":-1,"flags":["pubsub","noscript","loading","stale"],"keyStart":1,"keyStop":-1,"step":1},"swapdb":{"arity":3,"flags":["write","fast"],"keyStart":0,"keyStop":0,"step":0},"sync":{"arity":1,"flags":["admin","noscript","no_async_loading","no_multi"],"keyStart":0,"keyStop":0,"step":0},"time":{"arity":1,"flags":["loading","stale","fast"],"keyStart":0,"keyStop":0,"step":0},"touch":{"arity":-2,"flags":["readonly","fast"],"keyStart":1,"keyStop":-1,"step":1},"ttl":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"type":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"unlink":{"arity":-2,"flags":["write","fast"],"keyStart":1,"keyStop":-1,"step":1},"unsubscribe":{"arity":-1,"flags":["pubsub","noscript","loading","stale"],"keyStart":0,"keyStop":0,"step":0},"unwatch":{"arity":1,"flags":["noscript","loading","stale","fast","allow_busy"],"keyStart":0,"keyStop":0,"step":0},"wait":{"arity":3,"flags":["noscript"],"keyStart":0,"keyStop":0,"step":0},"watch":{"arity":-2,"flags":["noscript","loading","stale","fast","allow_busy"],"keyStart":1,"keyStop":-1,"step":1},"xack":{"arity":-4,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"xadd":{"arity":-5,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"xautoclaim":{"arity":-6,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"xclaim":{"arity":-6,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"xdel":{"arity":-3,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"xdelex":{"arity":-5,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"xgroup":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"xinfo":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"xlen":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"xpending":{"arity":-3,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"xrange":{"arity":-4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"xread":{"arity":-4,"flags":["readonly","blocking","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"xreadgroup":{"arity":-7,"flags":["write","blocking","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"xrevrange":{"arity":-4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"xsetid":{"arity":-3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"xtrim":{"arity":-4,"flags":["write"],"keyStart":1,"keyStop":1,"step":1},"zadd":{"arity":-4,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"zcard":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"zcount":{"arity":4,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"zdiff":{"arity":-3,"flags":["readonly","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"zdiffstore":{"arity":-4,"flags":["write","denyoom","movablekeys"],"keyStart":1,"keyStop":1,"step":1},"zincrby":{"arity":4,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"zinter":{"arity":-3,"flags":["readonly","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"zintercard":{"arity":-3,"flags":["readonly","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"zinterstore":{"arity":-4,"flags":["write","denyoom","movablekeys"],"keyStart":1,"keyStop":1,"step":1},"zlexcount":{"arity":4,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"zmpop":{"arity":-4,"flags":["write","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"zmscore":{"arity":-3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"zpopmax":{"arity":-2,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"zpopmin":{"arity":-2,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"zrandmember":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"zrange":{"arity":-4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"zrangebylex":{"arity":-4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"zrangebyscore":{"arity":-4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"zrangestore":{"arity":-5,"flags":["write","denyoom"],"keyStart":1,"keyStop":2,"step":1},"zrank":{"arity":3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"zrem":{"arity":-3,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"zremrangebylex":{"arity":4,"flags":["write"],"keyStart":1,"keyStop":1,"step":1},"zremrangebyrank":{"arity":4,"flags":["write"],"keyStart":1,"keyStop":1,"step":1},"zremrangebyscore":{"arity":4,"flags":["write"],"keyStart":1,"keyStop":1,"step":1},"zrevrange":{"arity":-4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"zrevrangebylex":{"arity":-4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"zrevrangebyscore":{"arity":-4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"zrevrank":{"arity":3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"zscan":{"arity":-3,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"zscore":{"arity":3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"zunion":{"arity":-3,"flags":["readonly","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"zunionstore":{"arity":-4,"flags":["write","denyoom","movablekeys"],"keyStart":1,"keyStop":1,"step":1}}')},41138:(a,b)=>{"use strict";let c;function d(a,d){try{let a=c;return c=null,a.apply(this,arguments)}catch(a){return b.errorObj.e=a,b.errorObj}}Object.defineProperty(b,"__esModule",{value:!0}),b.tryCatch=b.errorObj=void 0,b.errorObj={e:{}},b.tryCatch=function(a){return c=a,d}},43504:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});class c{constructor(){this.set={subscribe:{},psubscribe:{},ssubscribe:{}}}add(a,b){this.set[d(a)][b]=!0}del(a,b){delete this.set[d(a)][b]}channels(a){return Object.keys(this.set[d(a)])}isEmpty(){return 0===this.channels("subscribe").length&&0===this.channels("psubscribe").length&&0===this.channels("ssubscribe").length}}function d(a){return"unsubscribe"===a?"subscribe":"punsubscribe"===a?"psubscribe":"sunsubscribe"===a?"ssubscribe":a}b.default=c},44400:(a,b,c)=>{"use strict";a.exports=55>process.version.charCodeAt(1)&&46===process.version.charCodeAt(2)?c(79651):c(15121)},47611:a=>{var b=/^(?:0|[1-9]\d*)$/;function c(a,b,c){switch(c.length){case 0:return a.call(b);case 1:return a.call(b,c[0]);case 2:return a.call(b,c[0],c[1]);case 3:return a.call(b,c[0],c[1],c[2])}return a.apply(b,c)}var d=Object.prototype,e=d.hasOwnProperty,f=d.toString,g=d.propertyIsEnumerable,h=Math.max;function i(a,b,c,f){return void 0===a||l(a,d[c])&&!e.call(f,c)?b:a}function j(a,b){return b=h(void 0===b?a.length-1:b,0),function(){for(var d=arguments,e=-1,f=h(d.length-b,0),g=Array(f);++e<f;)g[e]=d[b+e];e=-1;for(var i=Array(b+1);++e<b;)i[e]=d[e];return i[b]=g,c(a,this,i)}}function k(a,c){return!!(c=null==c?0x1fffffffffffff:c)&&("number"==typeof a||b.test(a))&&a>-1&&a%1==0&&a<c}function l(a,b){return a===b||a!=a&&b!=b}var m=Array.isArray;function n(a){var b,c,d;return null!=a&&"number"==typeof(b=a.length)&&b>-1&&b%1==0&&b<=0x1fffffffffffff&&"[object Function]"!=(d=o(c=a)?f.call(c):"")&&"[object GeneratorFunction]"!=d}function o(a){var b=typeof a;return!!a&&("object"==b||"function"==b)}var p=function(a){return j(function(b,c){var d=-1,e=c.length,f=e>1?c[e-1]:void 0,g=e>2?c[2]:void 0;for(f=a.length>3&&"function"==typeof f?(e--,f):void 0,g&&function(a,b,c){if(!o(c))return!1;var d=typeof b;return("number"==d?!!(n(c)&&k(b,c.length)):"string"==d&&b in c)&&l(c[b],a)}(c[0],c[1],g)&&(f=e<3?void 0:f,e=1),b=Object(b);++d<e;){var h=c[d];h&&a(b,h,d,f)}return b})}(function(a,b,c,h){var i;!function(a,b,c,d){c||(c={});for(var f=-1,g=b.length;++f<g;){var h=b[f],i=d?d(c[h],a[h],h,c,a):void 0;!function(a,b,c){var d=a[b];e.call(a,b)&&l(d,c)&&(void 0!==c||b in a)||(a[b]=c)}(c,h,void 0===i?a[h]:i)}}(b,n(i=b)?function(a,b){var c,d,h,i=m(a)||(h=d=c=a)&&"object"==typeof h&&n(d)&&e.call(c,"callee")&&(!g.call(c,"callee")||"[object Arguments]"==f.call(c))?function(a,b){for(var c=-1,d=Array(a);++c<a;)d[c]=b(c);return d}(a.length,String):[],j=i.length,l=!!j;for(var o in a)(b||e.call(a,o))&&!(l&&("length"==o||k(o,j)))&&i.push(o);return i}(i,!0):function(a){if(!o(a)){var b,c,f=a,g=[];if(null!=f)for(var h in Object(f))g.push(h);return g}var i=(c=(b=a)&&b.constructor,b===("function"==typeof c&&c.prototype||d)),j=[];for(var k in a)"constructor"==k&&(i||!e.call(a,k))||j.push(k);return j}(i),a,h)});a.exports=j(function(a){return a.push(void 0,i),c(p,void 0,a)})},47823:a=>{"use strict";a.exports=(a,b=process.argv)=>{let c=a.startsWith("-")?"":1===a.length?"-":"--",d=b.indexOf(c+a),e=b.indexOf("--");return -1!==d&&(-1===e||d<e)}},47824:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});class c{constructor(a){this.cursor=0,this.sentinels=a.slice(0)}next(){let a=this.cursor>=this.sentinels.length;return{done:a,value:a?void 0:this.sentinels[this.cursor++]}}reset(a){a&&this.sentinels.length>1&&1!==this.cursor&&this.sentinels.unshift(...this.sentinels.splice(this.cursor-1)),this.cursor=0}add(a){for(let c=0;c<this.sentinels.length;c++){var b;if(b=this.sentinels[c],(a.host||"127.0.0.1")===(b.host||"127.0.0.1")&&(a.port||26379)===(b.port||26379))return!1}return this.sentinels.push(a),!0}toString(){return`${JSON.stringify(this.sentinels)} @${this.cursor}`}}b.default=c},51601:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(44400);class e extends d.AbortError{constructor(a){super(`Reached the max retries per request limit (which is ${a}). Refer to "maxRetriesPerRequest" option for details.`),Error.captureStackTrace(this,this.constructor)}get name(){return this.constructor.name}}b.default=e},52580:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.readyHandler=b.errorHandler=b.closeHandler=b.connectHandler=void 0;let d=c(44400),e=c(14642),f=c(93367),g=c(54187),h=c(23865),i=(0,g.Debug)("connection");function j(a){let b=new d.AbortError("Command aborted due to connection close");return b.command={name:a.name,args:a.args},b}b.connectHandler=function(a){return function(){var c;a.setStatus("connect"),a.resetCommandQueue();let d=!1,{connectionEpoch:e}=a;a.condition.auth&&a.auth(a.condition.auth,function(b){e===a.connectionEpoch&&b&&(-1!==b.message.indexOf("no password is set")?console.warn("[WARN] Redis server does not require a password, but a password was supplied."):-1!==b.message.indexOf("without any password configured for the default user")?console.warn("[WARN] This Redis server's `default` user does not require a password, but a password was supplied"):-1!==b.message.indexOf("wrong number of arguments for 'auth' command")?console.warn("[ERROR] The server returned \"wrong number of arguments for 'auth' command\". You are probably passing both username and password to Redis version 5 or below. You should only pass the 'password' option for Redis version 5 and under."):(d=!0,a.recoverFromFatalError(b,b)))}),a.condition.select&&a.select(a.condition.select).catch(b=>{a.silentEmit("error",b)}),new h.default(a,{stringNumbers:a.options.stringNumbers});let f=[];a.options.connectionName&&(i("set the connection name [%s]",a.options.connectionName),f.push(a.client("setname",a.options.connectionName).catch(g.noop))),a.options.disableClientInfo||(i("set the client info"),f.push((0,g.getPackageMeta)().then(b=>a.client("SETINFO","LIB-VER",b.version).catch(g.noop)).catch(g.noop)),f.push(a.client("SETINFO","LIB-NAME",(null==(c=a.options)?void 0:c.clientInfoTag)?`ioredis(${a.options.clientInfoTag})`:"ioredis").catch(g.noop))),Promise.all(f).catch(g.noop).finally(()=>{a.options.enableReadyCheck||b.readyHandler(a)(),a.options.enableReadyCheck&&a._readyCheck(function(c,f){e===a.connectionEpoch&&(c?d||a.recoverFromFatalError(Error("Ready check failed: "+c.message),c):a.connector.check(f)?b.readyHandler(a)():a.disconnect(!0))})})}},b.closeHandler=function(a){return function(){let c=a.status;if(a.setStatus("close"),a.commandQueue.length&&function(a){var b;let c=0;for(let d=0;d<a.length;){let e=null==(b=a.peekAt(d))?void 0:b.command,f=e.pipelineIndex;if((void 0===f||0===f)&&(c=0),void 0!==f&&f!==c++){a.remove(d,1),e.reject(j(e));continue}d++}}(a.commandQueue),a.offlineQueue.length&&function(a){var b;for(let c=0;c<a.length;){let d=null==(b=a.peekAt(c))?void 0:b.command;if("multi"===d.name)break;if("exec"===d.name){a.remove(c,1),d.reject(j(d));break}d.inTransaction?(a.remove(c,1),d.reject(j(d))):c++}}(a.offlineQueue),"ready"===c&&(a.prevCondition||(a.prevCondition=a.condition),a.commandQueue.length&&(a.prevCommandQueue=a.commandQueue)),a.manuallyClosing)return a.manuallyClosing=!1,i("skip reconnecting since the connection is manually closed."),b();if("function"!=typeof a.options.retryStrategy)return i("skip reconnecting because `retryStrategy` is not a function"),b();let d=a.options.retryStrategy(++a.retryAttempts);if("number"!=typeof d)return i("skip reconnecting because `retryStrategy` doesn't return a number"),b();i("reconnect in %sms",d),a.setStatus("reconnecting",d),a.reconnectTimeout=setTimeout(function(){a.reconnectTimeout=null,a.connect().catch(g.noop)},d);let{maxRetriesPerRequest:e}=a.options;"number"==typeof e&&(e<0?i("maxRetriesPerRequest is negative, ignoring..."):0==a.retryAttempts%(e+1)&&(i("reach maxRetriesPerRequest limitation, flushing command queue..."),a.flushQueue(new f.MaxRetriesPerRequestError(e))))};function b(){a.setStatus("end"),a.flushQueue(Error(g.CONNECTION_CLOSED_ERROR_MSG))}},b.errorHandler=function(a){return function(b){i("error: %s",b),a.silentEmit("error",b)}},b.readyHandler=function(a){return function(){if(a.setStatus("ready"),a.retryAttempts=0,a.options.monitor){a.call("monitor").then(()=>a.setStatus("monitoring"),b=>a.emit("error",b));let{sendCommand:b}=a;a.sendCommand=function(c){return e.default.checkFlag("VALID_IN_MONITOR_MODE",c.name)?b.call(a,c):(c.reject(Error("Connection is in monitoring mode, can't process commands.")),c.promise)},a.once("close",function(){delete a.sendCommand});return}let b=a.prevCondition?a.prevCondition.select:a.condition.select;if(a.options.readOnly&&(i("set the connection to readonly mode"),a.readonly().catch(g.noop)),a.prevCondition){let c=a.prevCondition;if(a.prevCondition=null,c.subscriber&&a.options.autoResubscribe){a.condition.select!==b&&(i("connect to db [%d]",b),a.select(b));let d=c.subscriber.channels("subscribe");d.length&&(i("subscribe %d channels",d.length),a.subscribe(d));let e=c.subscriber.channels("psubscribe");e.length&&(i("psubscribe %d channels",e.length),a.psubscribe(e));let f=c.subscriber.channels("ssubscribe");if(f.length)for(let b of(i("ssubscribe %s",f.length),f))a.ssubscribe(b)}}if(a.prevCommandQueue)if(a.options.autoResendUnfulfilledCommands)for(i("resend %d unfulfilled commands",a.prevCommandQueue.length);a.prevCommandQueue.length>0;){let b=a.prevCommandQueue.shift();b.select!==a.condition.select&&"select"!==b.command.name&&a.select(b.select),a.sendCommand(b.command,b.stream)}else a.prevCommandQueue=null;if(a.offlineQueue.length){i("send %d commands in offline queue",a.offlineQueue.length);let b=a.offlineQueue;for(a.resetOfflineQueue();b.length>0;){let c=b.shift();c.select!==a.condition.select&&"select"!==c.command.name&&a.select(c.select),a.sendCommand(c.command,c.stream)}}a.condition.select!==b&&(i("connect to db [%d]",b),a.select(b))}}},52634:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(37970),e=c(54187),f=c(88568),g=(0,e.Debug)("cluster:subscriber");class h{constructor(a,b,c=!1){this.connectionPool=a,this.emitter=b,this.isSharded=c,this.started=!1,this.subscriber=null,this.slotRange=[],this.onSubscriberEnd=()=>{if(!this.started)return void g("subscriber has disconnected, but ClusterSubscriber is not started, so not reconnecting.");g("subscriber has disconnected, selecting a new one..."),this.selectSubscriber()},this.connectionPool.on("-node",(a,b)=>{this.started&&this.subscriber&&(0,d.getNodeKey)(this.subscriber.options)===b&&(g("subscriber has left, selecting a new one..."),this.selectSubscriber())}),this.connectionPool.on("+node",()=>{this.started&&!this.subscriber&&(g("a new node is discovered and there is no subscriber, selecting a new one..."),this.selectSubscriber())})}getInstance(){return this.subscriber}associateSlotRange(a){return this.isSharded&&(this.slotRange=a),this.slotRange}start(){this.started=!0,this.selectSubscriber(),g("started")}stop(){this.started=!1,this.subscriber&&(this.subscriber.disconnect(),this.subscriber=null)}isStarted(){return this.started}selectSubscriber(){let a=this.lastActiveSubscriber;a&&(a.off("end",this.onSubscriberEnd),a.disconnect()),this.subscriber&&(this.subscriber.off("end",this.onSubscriberEnd),this.subscriber.disconnect());let b=(0,e.sample)(this.connectionPool.getNodes());if(!b){g("selecting subscriber failed since there is no node discovered in the cluster yet"),this.subscriber=null;return}let{options:c}=b;g("selected a subscriber %s:%s",c.host,c.port);let h="subscriber";this.isSharded&&(h="ssubscriber"),this.subscriber=new f.default({port:c.port,host:c.host,username:c.username,password:c.password,enableReadyCheck:!0,connectionName:(0,d.getConnectionName)(h,c.connectionName),lazyConnect:!0,tls:c.tls,retryStrategy:null}),this.subscriber.on("error",e.noop),this.subscriber.on("moved",()=>{this.emitter.emit("forceRefresh")}),this.subscriber.once("end",this.onSubscriberEnd);let i={subscribe:[],psubscribe:[],ssubscribe:[]};if(a){let b=a.condition||a.prevCondition;b&&b.subscriber&&(i.subscribe=b.subscriber.channels("subscribe"),i.psubscribe=b.subscriber.channels("psubscribe"),i.ssubscribe=b.subscriber.channels("ssubscribe"))}if(i.subscribe.length||i.psubscribe.length||i.ssubscribe.length){let a=0;for(let b of["subscribe","psubscribe","ssubscribe"]){let c=i[b];if(0!=c.length)if(g("%s %d channels",b,c.length),"ssubscribe"===b)for(let d of c)a+=1,this.subscriber[b](d).then(()=>{--a||(this.lastActiveSubscriber=this.subscriber)}).catch(()=>{g("failed to ssubscribe to channel: %s",d)});else a+=1,this.subscriber[b](c).then(()=>{--a||(this.lastActiveSubscriber=this.subscriber)}).catch(()=>{g("failed to %s %d channels",b,c.length)})}}else this.lastActiveSubscriber=this.subscriber;for(let a of["message","messageBuffer"])this.subscriber.on(a,(b,c)=>{this.emitter.emit(a,b,c)});for(let a of["pmessage","pmessageBuffer"])this.subscriber.on(a,(b,c,d)=>{this.emitter.emit(a,b,c,d)});if(!0==this.isSharded)for(let a of["smessage","smessageBuffer"])this.subscriber.on(a,(b,c)=>{this.emitter.emit(a,b,c)})}}b.default=h},53172:(a,b)=>{"use strict";function c(a){let b=null!=a;return function(c){let d=c.length-1;if(1===d)return[];if("}"!==c[d])throw Error("Invalid array text - must end with }");let e=0;if("["===c[0]&&(e=c.indexOf("=")+1),"{"!==c[e++])throw Error("Invalid array text - must start with {");let f=[],g=f,h=[],i=e,j="",k=!0;for(;e<d;++e){let f=c[e];if('"'===f){i=++e;let d=c.indexOf('"',i),f=c.indexOf("\\",i);for(;-1!==f&&f<d;)e=f,j+=c.slice(i,e),i=++e,d===e++&&(d=c.indexOf('"',e)),f=c.indexOf("\\",e);e=d,j+=c.slice(i,e),g.push(b?a(j):j),j="",k=!1}else if("{"===f){let a=[];g.push(a),h.push(g),g=a,i=e+1,k=!0}else if(","===f)k=!0;else if("}"===f){k=!1;let a=h.pop();if(void 0===a)throw Error("Invalid array text - too many '}'");g=a}else if(k){for(i=e;","!==(f=c[e])&&"}"!==f&&e<d;)++e;let h=c.slice(i,e--);g.push("NULL"===h?null:b?a(h):h),k=!1}else throw Error("Was expecting delimeter")}return f}}let d=c();b.q=(a,b)=>null!=b?c(b)(a):d(a)},54187:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.noop=b.defaults=b.Debug=b.getPackageMeta=b.zipMap=b.CONNECTION_CLOSED_ERROR_MSG=b.shuffle=b.sample=b.resolveTLSProfile=b.parseURL=b.optimizeErrorStack=b.toArg=b.convertMapToArray=b.convertObjectToArray=b.timeout=b.packObject=b.isInt=b.wrapMultiResult=b.convertBufferToString=void 0;let d=c(29021),e=c(33873),f=c(79551),g=c(77318);Object.defineProperty(b,"defaults",{enumerable:!0,get:function(){return g.defaults}}),Object.defineProperty(b,"noop",{enumerable:!0,get:function(){return g.noop}}),b.Debug=c(89070).default;let h=c(38002);function i(a){let b=parseFloat(a);return!isNaN(a)&&(0|b)===b}b.convertBufferToString=function a(b,c){if(b instanceof Buffer)return b.toString(c);if(Array.isArray(b)){let d=b.length,e=Array(d);for(let f=0;f<d;++f)e[f]=b[f]instanceof Buffer&&"utf8"===c?b[f].toString():a(b[f],c);return e}return b},b.wrapMultiResult=function(a){if(!a)return null;let b=[],c=a.length;for(let d=0;d<c;++d){let c=a[d];c instanceof Error?b.push([c]):b.push([null,c])}return b},b.isInt=i,b.packObject=function(a){let b={},c=a.length;for(let d=1;d<c;d+=2)b[a[d-1]]=a[d];return b},b.timeout=function(a,b){let c=null,d=function(){c&&(clearTimeout(c),c=null,a.apply(this,arguments))};return c=setTimeout(d,b,Error("timeout")),d},b.convertObjectToArray=function(a){let b=[],c=Object.keys(a);for(let d=0,e=c.length;d<e;d++)b.push(c[d],a[c[d]]);return b},b.convertMapToArray=function(a){let b=[],c=0;return a.forEach(function(a,d){b[c]=d,b[c+1]=a,c+=2}),b},b.toArg=function(a){return null==a?"":String(a)},b.optimizeErrorStack=function(a,b,c){let d,e=b.split("\n"),f="";for(d=1;d<e.length&&-1!==e[d].indexOf(c);++d);for(let a=d;a<e.length;++a)f+="\n"+e[a];if(a.stack){let b=a.stack.indexOf("\n");a.stack=a.stack.slice(0,b)+f}return a},b.parseURL=function(a){if(i(a))return{port:a};let b=(0,f.parse)(a,!0,!0);b.slashes||"/"===a[0]||(a="//"+a,b=(0,f.parse)(a,!0,!0));let c=b.query||{},d={};if(b.auth){let a=b.auth.indexOf(":");d.username=-1===a?b.auth:b.auth.slice(0,a),d.password=-1===a?"":b.auth.slice(a+1)}if(b.pathname&&("redis:"===b.protocol||"rediss:"===b.protocol?b.pathname.length>1&&(d.db=b.pathname.slice(1)):d.path=b.pathname),b.host&&(d.host=b.hostname),b.port&&(d.port=b.port),"string"==typeof c.family){let a=Number.parseInt(c.family,10);Number.isNaN(a)||(d.family=a)}return(0,g.defaults)(d,c),d},b.resolveTLSProfile=function(a){let b=null==a?void 0:a.tls;"string"==typeof b&&(b={profile:b});let c=h.default[null==b?void 0:b.profile];return c&&(b=Object.assign({},c,b),delete b.profile,a=Object.assign({},a,{tls:b})),a},b.sample=function(a,b=0){let c=a.length;return b>=c?null:a[b+Math.floor(Math.random()*(c-b))]},b.shuffle=function(a){let b=a.length;for(;b>0;){let c=Math.floor(Math.random()*b);b--,[a[b],a[c]]=[a[c],a[b]]}return a},b.CONNECTION_CLOSED_ERROR_MSG="Connection is closed.",b.zipMap=function(a,b){let c=new Map;return a.forEach((a,d)=>{c.set(a,b[d])}),c};let j=null;b.getPackageMeta=async function(){if(j)return j;try{let a=(0,e.resolve)(__dirname,"..","..","package.json"),b=await d.promises.readFile(a,"utf8");return j={version:JSON.parse(b).version}}catch(a){return j={version:"error-fetching-version"}}}},55058:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(9666),e=c(94735),f=c(44400),g=c(881),h=c(14642),i=c(30577),j=c(88568),k=c(30644),l=c(24281),m=c(54187),n=c(87630),o=c(96637),p=c(20354),q=c(52634),r=c(62948),s=c(19140),t=c(37970),u=c(73380),v=c(17751),w=(0,m.Debug)("cluster"),x=new WeakSet;class y extends o.default{constructor(a,b={}){if(super(),this.slots=[],this._groupsIds={},this._groupsBySlot=Array(16384),this.isCluster=!0,this.retryAttempts=0,this.delayQueue=new s.default,this.offlineQueue=new u,this.isRefreshing=!1,this._refreshSlotsCacheCallbacks=[],this._autoPipelines=new Map,this._runningAutoPipelines=new Set,this._readyDelayedCallbacks=[],this.connectionEpoch=0,e.EventEmitter.call(this),this.startupNodes=a,this.options=(0,m.defaults)({},b,p.DEFAULT_CLUSTER_OPTIONS,this.options),this.options.shardedSubscribers&&this.createShardedSubscriberGroup(),this.options.redisOptions&&this.options.redisOptions.keyPrefix&&!this.options.keyPrefix&&(this.options.keyPrefix=this.options.redisOptions.keyPrefix),"function"!=typeof this.options.scaleReads&&-1===["all","master","slave"].indexOf(this.options.scaleReads))throw Error('Invalid option scaleReads "'+this.options.scaleReads+'". Expected "all", "master", "slave" or a custom function');this.connectionPool=new r.default(this.options.redisOptions),this.connectionPool.on("-node",(a,b)=>{this.emit("-node",a)}),this.connectionPool.on("+node",a=>{this.emit("+node",a)}),this.connectionPool.on("drain",()=>{this.setStatus("close")}),this.connectionPool.on("nodeError",(a,b)=>{this.emit("node error",a,b)}),this.subscriber=new q.default(this.connectionPool,this),this.options.scripts&&Object.entries(this.options.scripts).forEach(([a,b])=>{this.defineCommand(a,b)}),this.options.lazyConnect?this.setStatus("wait"):this.connect().catch(a=>{w("connecting failed: %s",a)})}connect(){return new Promise((a,b)=>{if("connecting"===this.status||"connect"===this.status||"ready"===this.status)return void b(Error("Redis is already connecting/connected"));let c=++this.connectionEpoch;this.setStatus("connecting"),this.resolveStartupNodeHostnames().then(d=>{let e;if(this.connectionEpoch!==c){w("discard connecting after resolving startup nodes because epoch not match: %d != %d",c,this.connectionEpoch),b(new f.RedisError("Connection is discarded because a new connection is made"));return}if("connecting"!==this.status){w("discard connecting after resolving startup nodes because the status changed to %s",this.status),b(new f.RedisError("Connection is aborted"));return}this.connectionPool.reset(d),this.options.shardedSubscribers&&this.shardedSubscribers.reset(this.slots,this.connectionPool.getNodes("all")).catch(a=>{w("Error while starting subscribers: %s",a)});let g=()=>{this.setStatus("ready"),this.retryAttempts=0,this.executeOfflineCommands(),this.resetNodesRefreshInterval(),a()},h=()=>{this.invokeReadyDelayedCallbacks(void 0),this.removeListener("close",e),this.manuallyClosing=!1,this.setStatus("connect"),this.options.enableReadyCheck?this.readyCheck((a,b)=>{a||b?(w("Ready check failed (%s). Reconnecting...",a||b),"connect"===this.status&&this.disconnect(!0)):g()}):g()};e=()=>{let a=Error("None of startup nodes is available");this.removeListener("refresh",h),this.invokeReadyDelayedCallbacks(a),b(a)},this.once("refresh",h),this.once("close",e),this.once("close",this.handleCloseEvent.bind(this)),this.refreshSlotsCache(a=>{a&&a.message===i.default.defaultMessage&&(j.default.prototype.silentEmit.call(this,"error",a),this.connectionPool.reset([]))}),this.subscriber.start(),this.options.shardedSubscribers&&this.shardedSubscribers.start().catch(a=>{w("Error while starting subscribers: %s",a)})}).catch(a=>{this.setStatus("close"),this.handleCloseEvent(a),this.invokeReadyDelayedCallbacks(a),b(a)})})}disconnect(a=!1){let b=this.status;this.setStatus("disconnecting"),a||(this.manuallyClosing=!0),this.reconnectTimeout&&!a&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null,w("Canceled reconnecting attempts")),this.clearNodesRefreshInterval(),this.subscriber.stop(),this.options.shardedSubscribers&&this.shardedSubscribers.stop(),"wait"===b?(this.setStatus("close"),this.handleCloseEvent()):this.connectionPool.reset([])}quit(a){let b=this.status;if(this.setStatus("disconnecting"),this.manuallyClosing=!0,this.reconnectTimeout&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.clearNodesRefreshInterval(),this.subscriber.stop(),this.options.shardedSubscribers&&this.shardedSubscribers.stop(),"wait"===b){let b=(0,g.default)(Promise.resolve("OK"),a);return setImmediate((function(){this.setStatus("close"),this.handleCloseEvent()}).bind(this)),b}return(0,g.default)(Promise.all(this.nodes().map(a=>a.quit().catch(a=>{if(a.message===m.CONNECTION_CLOSED_ERROR_MSG)return"OK";throw a}))).then(()=>"OK"),a)}duplicate(a=[],b={}){return new y(a.length>0?a:this.startupNodes.slice(0),Object.assign({},this.options,b))}nodes(a="all"){if("all"!==a&&"master"!==a&&"slave"!==a)throw Error('Invalid role "'+a+'". Expected "all", "master" or "slave"');return this.connectionPool.getNodes(a)}delayUntilReady(a){this._readyDelayedCallbacks.push(a)}get autoPipelineQueueSize(){let a=0;for(let b of this._autoPipelines.values())a+=b.length;return a}refreshSlotsCache(a){if(a&&this._refreshSlotsCacheCallbacks.push(a),this.isRefreshing)return;this.isRefreshing=!0;let b=this,c=a=>{for(let b of(this.isRefreshing=!1,this._refreshSlotsCacheCallbacks))b(a);this._refreshSlotsCacheCallbacks=[]},d=(0,m.shuffle)(this.connectionPool.getNodes()),e=null;!function a(f){if(f===d.length)return c(new i.default(i.default.defaultMessage,e));let g=d[f],h=`${g.options.host}:${g.options.port}`;w("getting slot cache from %s",h),b.getInfoFromNode(g,function(d){switch(b.status){case"close":case"end":return c(Error("Cluster is disconnected."));case"disconnecting":return c(Error("Cluster is disconnecting."))}d?(b.emit("node error",d,h),e=d,a(f+1)):(b.emit("refresh"),c())})}(0)}sendCommand(a,b,c){if("wait"===this.status&&this.connect().catch(m.noop),"end"===this.status)return a.reject(Error(m.CONNECTION_CLOSED_ERROR_MSG)),a.promise;let e=this.options.scaleReads;"master"!==e&&(a.isReadOnly||(0,d.exists)(a.name)&&(0,d.hasFlag)(a.name,"readonly")||(e="master"));let g=c?c.slot:a.getSlot(),i={},j=this;if(!c&&!x.has(a)){x.add(a);let b=a.reject;a.reject=function(c){let d=k.bind(null,!0);j.handleError(c,i,{moved:function(b,c){w("command %s is moved to %s",a.name,c),g=Number(b),j.slots[b]?j.slots[b][0]=c:j.slots[b]=[c],j._groupsBySlot[b]=j._groupsIds[j.slots[b].join(";")],j.connectionPool.findOrCreate(j.natMapper(c)),k(),w("refreshing slot caches... (triggered by MOVED error)"),j.refreshSlotsCache()},ask:function(b,c){w("command %s is required to ask %s:%s",a.name,c);let d=j.natMapper(c);j.connectionPool.findOrCreate(d),k(!1,`${d.host}:${d.port}`)},tryagain:d,clusterDown:d,connectionClosed:d,maxRedirections:function(c){b.call(a,c)},defaults:function(){b.call(a,c)}})}}function k(d,i){let k;if("end"===j.status)return void a.reject(new f.AbortError("Cluster is ended."));if("ready"===j.status||"cluster"===a.name){if(c&&c.redis)k=c.redis;else if(h.default.checkFlag("ENTER_SUBSCRIBER_MODE",a.name)||h.default.checkFlag("EXIT_SUBSCRIBER_MODE",a.name)){if(j.options.shardedSubscribers&&("ssubscribe"==a.name||"sunsubscribe"==a.name)){let b=j.shardedSubscribers.getResponsibleSubscriber(g);if(!b)return void a.reject(new f.AbortError(`No sharded subscriber for slot: ${g}`));let c=-1;"ssubscribe"==a.name&&(c=j.shardedSubscribers.addChannels(a.getKeys())),"sunsubscribe"==a.name&&(c=j.shardedSubscribers.removeChannels(a.getKeys())),-1!==c?k=b.getInstance():a.reject(new f.AbortError("Possible CROSSSLOT error: All channels must hash to the same slot"))}else k=j.subscriber.getInstance();if(!k)return void a.reject(new f.AbortError("No subscriber for the cluster"))}else{if(!d){if("number"==typeof g&&j.slots[g]){let b=j.slots[g];if("function"==typeof e){let c=b.map(function(a){return j.connectionPool.getInstanceByKey(a)});Array.isArray(k=e(c,a))&&(k=(0,m.sample)(k)),k||(k=c[0])}else{let a;a="all"===e?(0,m.sample)(b):"slave"===e&&b.length>1?(0,m.sample)(b,1):b[0],k=j.connectionPool.getInstanceByKey(a)}}i&&(k=j.connectionPool.getInstanceByKey(i)).asking()}k||(k=("function"==typeof e?null:j.connectionPool.getSampleInstance(e))||j.connectionPool.getSampleInstance("all"))}c&&!c.redis&&(c.redis=k)}k?k.sendCommand(a,b):j.options.enableOfflineQueue?j.offlineQueue.push({command:a,stream:b,node:c}):a.reject(Error("Cluster isn't ready and enableOfflineQueue options is false"))}return k(),a.promise}sscanStream(a,b){return this.createScanStream("sscan",{key:a,options:b})}sscanBufferStream(a,b){return this.createScanStream("sscanBuffer",{key:a,options:b})}hscanStream(a,b){return this.createScanStream("hscan",{key:a,options:b})}hscanBufferStream(a,b){return this.createScanStream("hscanBuffer",{key:a,options:b})}zscanStream(a,b){return this.createScanStream("zscan",{key:a,options:b})}zscanBufferStream(a,b){return this.createScanStream("zscanBuffer",{key:a,options:b})}handleError(a,b,c){if(void 0===b.value?b.value=this.options.maxRedirections:b.value-=1,b.value<=0)return void c.maxRedirections(Error("Too many Cluster redirections. Last error: "+a));let d=a.message.split(" ");if("MOVED"===d[0]){let a=this.options.retryDelayOnMoved;a&&"number"==typeof a?this.delayQueue.push("moved",c.moved.bind(null,d[1],d[2]),{timeout:a}):c.moved(d[1],d[2])}else"ASK"===d[0]?c.ask(d[1],d[2]):"TRYAGAIN"===d[0]?this.delayQueue.push("tryagain",c.tryagain,{timeout:this.options.retryDelayOnTryAgain}):"CLUSTERDOWN"===d[0]&&this.options.retryDelayOnClusterDown>0?this.delayQueue.push("clusterdown",c.connectionClosed,{timeout:this.options.retryDelayOnClusterDown,callback:this.refreshSlotsCache.bind(this)}):a.message===m.CONNECTION_CLOSED_ERROR_MSG&&this.options.retryDelayOnFailover>0&&"ready"===this.status?this.delayQueue.push("failover",c.connectionClosed,{timeout:this.options.retryDelayOnFailover,callback:this.refreshSlotsCache.bind(this)}):c.defaults()}resetOfflineQueue(){this.offlineQueue=new u}clearNodesRefreshInterval(){this.slotsTimer&&(clearTimeout(this.slotsTimer),this.slotsTimer=null)}resetNodesRefreshInterval(){if(this.slotsTimer||!this.options.slotsRefreshInterval)return;let a=()=>{this.slotsTimer=setTimeout(()=>{w('refreshing slot caches... (triggered by "slotsRefreshInterval" option)'),this.refreshSlotsCache(()=>{a()})},this.options.slotsRefreshInterval)};a()}setStatus(a){w("status: %s -> %s",this.status||"[empty]",a),this.status=a,process.nextTick(()=>{this.emit(a)})}handleCloseEvent(a){var b;let c;a&&w("closed because %s",a),this.manuallyClosing||"function"!=typeof this.options.clusterRetryStrategy||(c=this.options.clusterRetryStrategy.call(this,++this.retryAttempts,a)),"number"==typeof c?(this.setStatus("reconnecting"),this.reconnectTimeout=setTimeout(()=>{this.reconnectTimeout=null,w("Cluster is disconnected. Retrying after %dms",c),this.connect().catch(function(a){w("Got error %s when reconnecting. Ignoring...",a)})},c)):(this.options.shardedSubscribers&&(null==(b=this.subscriberGroupEmitter)||b.removeAllListeners()),this.setStatus("end"),this.flushQueue(Error("None of startup nodes is available")))}flushQueue(a){let b;for(;b=this.offlineQueue.shift();)b.command.reject(a)}executeOfflineCommands(){if(this.offlineQueue.length){let a;w("send %d commands in offline queue",this.offlineQueue.length);let b=this.offlineQueue;for(this.resetOfflineQueue();a=b.shift();)this.sendCommand(a.command,a.stream,a.node)}}natMapper(a){let b="string"==typeof a?a:`${a.host}:${a.port}`,c=null;return(this.options.natMap&&"function"==typeof this.options.natMap?c=this.options.natMap(b):this.options.natMap&&"object"==typeof this.options.natMap&&(c=this.options.natMap[b]),c)?(w("NAT mapping %s -> %O",b,c),Object.assign({},c)):"string"==typeof a?(0,t.nodeKeyToRedisOptions)(a):a}getInfoFromNode(a,b){if(!a)return b(Error("Node is disconnected"));let c=a.duplicate({enableOfflineQueue:!0,enableReadyCheck:!1,retryStrategy:null,connectionName:(0,t.getConnectionName)("refresher",this.options.redisOptions&&this.options.redisOptions.connectionName)});c.on("error",m.noop),c.cluster("SLOTS",(0,m.timeout)((a,d)=>{if(c.disconnect(),a)return w("error encountered running CLUSTER.SLOTS: %s",a),b(a);if("disconnecting"===this.status||"close"===this.status||"end"===this.status){w("ignore CLUSTER.SLOTS results (count: %d) since cluster status is %s",d.length,this.status),b();return}let e=[];w("cluster slots result count: %d",d.length);for(let a=0;a<d.length;++a){let b=d[a],c=b[0],f=b[1],g=[];for(let a=2;a<b.length;a++){if(!b[a][0])continue;let c=this.natMapper({host:b[a][0],port:b[a][1]});c.readOnly=2!==a,e.push(c),g.push(c.host+":"+c.port)}w("cluster slots result [%d]: slots %d~%d served by %s",a,c,f,g);for(let a=c;a<=f;a++)this.slots[a]=g}this._groupsIds=Object.create(null);let f=0;for(let a=0;a<16384;a++){let b=(this.slots[a]||[]).join(";");if(!b.length){this._groupsBySlot[a]=void 0;continue}this._groupsIds[b]||(this._groupsIds[b]=++f),this._groupsBySlot[a]=this._groupsIds[b]}this.connectionPool.reset(e),this.options.shardedSubscribers&&this.shardedSubscribers.reset(this.slots,this.connectionPool.getNodes("all")).catch(a=>{w("Error while starting subscribers: %s",a)}),b()},this.options.slotsRefreshTimeout))}invokeReadyDelayedCallbacks(a){for(let b of this._readyDelayedCallbacks)process.nextTick(b,a);this._readyDelayedCallbacks=[]}readyCheck(a){this.cluster("INFO",(b,c)=>{let d;if(b)return a(b);if("string"!=typeof c)return a();let e=c.split("\r\n");for(let a=0;a<e.length;++a){let b=e[a].split(":");if("cluster_state"===b[0]){d=b[1];break}}"fail"===d?(w("cluster state not ok (%s)",d),a(null,d)):a()})}resolveSrv(a){return new Promise((b,c)=>{this.options.resolveSrv(a,(a,d)=>{if(a)return c(a);let e=this,f=(0,t.groupSrvRecords)(d),g=Object.keys(f).sort((a,b)=>parseInt(a)-parseInt(b));!function a(d){if(!g.length)return c(d);let h=f[g[0]],i=(0,t.weightSrvRecords)(h);h.records.length||g.shift(),e.dnsLookup(i.name).then(a=>b({host:a,port:i.port}),a)}()})})}dnsLookup(a){return new Promise((b,c)=>{this.options.dnsLookup(a,(d,e)=>{d?(w("failed to resolve hostname %s to IP: %s",a,d.message),c(d)):(w("resolved hostname %s to IP %s",a,e),b(e))})})}async resolveStartupNodeHostnames(){if(!Array.isArray(this.startupNodes)||0===this.startupNodes.length)throw Error("`startupNodes` should contain at least one node.");let a=(0,t.normalizeNodeOptions)(this.startupNodes),b=(0,t.getUniqueHostnamesFromOptions)(a);if(0===b.length)return a;let c=await Promise.all(b.map((this.options.useSRVRecords?this.resolveSrv:this.dnsLookup).bind(this))),d=(0,m.zipMap)(b,c);return a.map(a=>{let b=d.get(a.host);return b?this.options.useSRVRecords?Object.assign({},a,b):Object.assign({},a,{host:b}):a})}createScanStream(a,{key:b,options:c={}}){return new k.default({objectMode:!0,key:b,redis:this,command:a,...c})}createShardedSubscriberGroup(){this.subscriberGroupEmitter=new e.EventEmitter,this.shardedSubscribers=new v.default(this.subscriberGroupEmitter);let a=a=>{a instanceof i.default&&this.disconnect(!0)};for(let b of(this.subscriberGroupEmitter.on("-node",(b,c)=>{this.emit("-node",b,c),this.refreshSlotsCache(a)}),this.subscriberGroupEmitter.on("subscriberConnectFailed",({delay:b,error:c})=>{this.emit("error",c),setTimeout(()=>{this.refreshSlotsCache(a)},b)}),this.subscriberGroupEmitter.on("moved",()=>{this.refreshSlotsCache(a)}),this.subscriberGroupEmitter.on("-subscriber",()=>{this.emit("-subscriber")}),this.subscriberGroupEmitter.on("+subscriber",()=>{this.emit("+subscriber")}),this.subscriberGroupEmitter.on("nodeError",(a,b)=>{this.emit("nodeError",a,b)}),this.subscriberGroupEmitter.on("subscribersReady",()=>{this.emit("subscribersReady")}),["smessage","smessageBuffer"]))this.subscriberGroupEmitter.on(b,(a,c,d)=>{this.emit(b,a,c,d)})}}(0,n.default)(y,e.EventEmitter),(0,l.addTransactionSupport)(y.prototype),b.default=y},59519:(a,b,c)=>{"undefined"==typeof process||"renderer"===process.type||process.__nwjs?a.exports=c(19283):a.exports=c(68694)},60937:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handleActivity:()=>p});var e=c(10713),f=c(37422),g=c(68199),h=c(37614),i=a([f,g]);[f,g]=i.then?(await i)():i;let q=h.A.child({module:"notification-listener"}),r={task_assigned:"taskAssigned",task_status_changed:"taskStatusChanged",task_submitted_for_verify:"taskVerified",task_verified:"taskVerified",task_reopened:"taskReopened",proposal_submitted:"proposalSubmitted",proposal_approved:"proposalApproved",proposal_rejected:"proposalRejected",idea_claimed:"ideaClaimed",comment_added:"commentAdded",elaboration_requested:"elaborationRequested",elaboration_answered:"elaborationAnswered",mentioned:"mentioned"};async function j(a,b){switch(a){case"task":{let a=await f.z.task.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Task"}case"idea":{let a=await f.z.idea.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Idea"}case"proposal":{let a=await f.z.proposal.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Proposal"}case"document":{let a=await f.z.document.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Document"}default:return"Unknown"}}async function k(a,b){if("user"===a){let a=await f.z.user.findUnique({where:{uuid:b},select:{name:!0,email:!0}});return a?.name||a?.email||"Unknown User"}if("agent"===a){let a=await f.z.agent.findUnique({where:{uuid:b},select:{name:!0}});return a?.name??"Unknown Agent"}return"Unknown"}async function l(a){let b=await f.z.project.findUnique({where:{uuid:a},select:{name:!0}});return b?.name??"Unknown Project"}async function m(a,b){if("user"===a)return{type:"user",uuid:b};if("agent"===a){let a=await f.z.agent.findUnique({where:{uuid:b},select:{ownerUuid:!0}});if(a?.ownerUuid)return{type:"user",uuid:a.ownerUuid}}return null}async function n(a,b,c,d,e,g){switch(a){case"task_assigned":{let a=await f.z.task.findUnique({where:{uuid:c},select:{assigneeType:!0,assigneeUuid:!0}});if(a?.assigneeType&&a?.assigneeUuid)return[{type:a.assigneeType,uuid:a.assigneeUuid}];return[]}case"task_status_changed":{let a=await f.z.task.findUnique({where:{uuid:c},select:{assigneeType:!0,assigneeUuid:!0,createdByUuid:!0}});if(!a)return[];let b=[];a.assigneeType&&a.assigneeUuid&&b.push({type:a.assigneeType,uuid:a.assigneeUuid});let d=await o(a.createdByUuid);return d&&b.push({type:d,uuid:a.createdByUuid}),b}case"task_submitted_for_verify":{let a=[],b=await m(e,g);b&&a.push(b);let d=await f.z.task.findUnique({where:{uuid:c},select:{createdByUuid:!0}});if(d){let b=await o(d.createdByUuid);b&&a.push({type:b,uuid:d.createdByUuid})}return a}case"task_verified":{let a=await f.z.task.findUnique({where:{uuid:c},select:{assigneeType:!0,assigneeUuid:!0}});if(a?.assigneeType&&a?.assigneeUuid)return[{type:a.assigneeType,uuid:a.assigneeUuid}];return[]}case"task_reopened":{let a=await f.z.task.findUnique({where:{uuid:c},select:{assigneeType:!0,assigneeUuid:!0}});if(a?.assigneeType&&a?.assigneeUuid)return[{type:a.assigneeType,uuid:a.assigneeUuid}];return[]}case"proposal_approved":case"proposal_rejected":{let a=await f.z.proposal.findUnique({where:{uuid:c},select:{createdByUuid:!0,createdByType:!0}});if(a)return[{type:a.createdByType,uuid:a.createdByUuid}];return[]}case"idea_claimed":{let a=await f.z.idea.findUnique({where:{uuid:c},select:{createdByUuid:!0,assigneeType:!0,assigneeUuid:!0}});if(a){let b=[{type:"user",uuid:a.createdByUuid}];return a.assigneeType&&a.assigneeUuid&&b.push({type:a.assigneeType,uuid:a.assigneeUuid}),b}return[]}case"elaboration_requested":{let a=await f.z.idea.findUnique({where:{uuid:c},select:{createdByUuid:!0}});if(!a)return[];let b=[];b.push({type:"user",uuid:a.createdByUuid});let d=await m(e,g);return d&&b.push(d),b}case"elaboration_answered":{let a=await f.z.idea.findUnique({where:{uuid:c},select:{assigneeType:!0,assigneeUuid:!0,createdByUuid:!0}});if(!a)return[];let b=[];return a.assigneeType&&a.assigneeUuid&&b.push({type:a.assigneeType,uuid:a.assigneeUuid}),b.push({type:"user",uuid:a.createdByUuid}),b}case"comment_added":{let a=[];if("task"===b){let b=await f.z.task.findUnique({where:{uuid:c},select:{assigneeType:!0,assigneeUuid:!0,createdByUuid:!0}});if(b){b.assigneeType&&b.assigneeUuid&&a.push({type:b.assigneeType,uuid:b.assigneeUuid});let c=await o(b.createdByUuid);c&&a.push({type:c,uuid:b.createdByUuid})}}else if("idea"===b){let b=await f.z.idea.findUnique({where:{uuid:c},select:{assigneeType:!0,assigneeUuid:!0,createdByUuid:!0}});b&&(b.assigneeType&&b.assigneeUuid&&a.push({type:b.assigneeType,uuid:b.assigneeUuid}),a.push({type:"user",uuid:b.createdByUuid}))}else if("proposal"===b){let b=await f.z.proposal.findUnique({where:{uuid:c},select:{createdByUuid:!0,createdByType:!0}});b&&a.push({type:b.createdByType,uuid:b.createdByUuid})}else if("document"===b){let b=await f.z.document.findUnique({where:{uuid:c},select:{createdByUuid:!0}});if(b){let c=await o(b.createdByUuid);c&&a.push({type:c,uuid:b.createdByUuid})}}return a.filter(a=>a.uuid!==g)}default:return[]}}async function o(a){return await f.z.user.findUnique({where:{uuid:a},select:{uuid:!0}})?"user":await f.z.agent.findUnique({where:{uuid:a},select:{uuid:!0}})?"agent":null}async function p(a){var b,c;let d=(b=a.action,c=a.targetType,({"task:assigned":"task_assigned","task:status_changed":"task_status_changed","task:submitted":"task_submitted_for_verify","task:verified":"task_verified","task:reopened":"task_reopened","idea:assigned":"idea_claimed","proposal:approved":"proposal_approved","proposal:rejected_to_draft":"proposal_rejected","task:comment_added":"comment_added","idea:comment_added":"comment_added","proposal:comment_added":"comment_added","document:comment_added":"comment_added","idea:elaboration_started":"elaboration_requested","idea:elaboration_answered":"elaboration_answered","idea:elaboration_followup":"elaboration_requested","idea:elaboration_resolved":"elaboration_answered","idea:elaboration_skipped":"elaboration_answered"})[`${c}:${b}`]??null);if(d)try{let[b,c,e]=await Promise.all([j(a.targetType,a.targetUuid),k(a.actorType,a.actorUuid),l(a.projectUuid)]),f=await n(d,a.targetType,a.targetUuid,a.companyUuid,a.actorType,a.actorUuid);if(0===f.length)return;let h=new Set,i=f.filter(a=>{let b=`${a.type}:${a.uuid}`;return!h.has(b)&&(h.add(b),!0)}).filter(b=>b.type!==a.actorType||b.uuid!==a.actorUuid);if(0===i.length)return;let m=r[d],o=[];for(let b of i)(!m||(await g.lX(a.companyUuid,b.type,b.uuid))[m])&&o.push(b);if(0===o.length)return;let p=function(a,b,c,d){let e="object"==typeof d&&null!==d?d:{};switch(a){case"task_assigned":return`${b} assigned you to task "${c}"`;case"task_status_changed":return`${b} changed the status of task "${c}"`;case"task_submitted_for_verify":return`${b} submitted task "${c}" for verification`;case"task_verified":return`Task "${c}" has been verified`;case"task_reopened":return`Task "${c}" has been reopened`;case"proposal_submitted":return`${b} submitted proposal "${c}" for review`;case"proposal_approved":{let a="string"==typeof e.reviewNote?e.reviewNote.trim():"";return a?`Proposal "${c}" has been approved. Note: ${a}`:`Proposal "${c}" has been approved`}case"proposal_rejected":{let a="string"==typeof e.reviewNote?e.reviewNote.trim():"";return a?`Proposal "${c}" has been rejected. Reason: ${a}`:`Proposal "${c}" has been rejected`}case"idea_claimed":return`${b} claimed idea "${c}"`;case"comment_added":return`${b} commented on "${c}"`;case"elaboration_requested":return`${b} requested elaboration on idea "${c}"`;case"elaboration_answered":return`${b} answered elaboration questions for idea "${c}"`;default:return`${b} performed an action on "${c}"`}}(d,c,b,a.value),q=o.map(f=>({companyUuid:a.companyUuid,projectUuid:a.projectUuid,recipientType:f.type,recipientUuid:f.uuid,entityType:a.targetType,entityUuid:a.targetUuid,entityTitle:b,projectName:e,action:d,message:p,actorType:a.actorType,actorUuid:a.actorUuid,actorName:c}));await g.Xm(q)}catch(a){q.error({err:a},"Failed to process activity")}}e.B.on("activity",a=>{a._remote||p(a)}),q.info("Subscribed to activity events"),d()}catch(a){d(a)}})},62948:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(94735),e=c(54187),f=c(37970),g=c(88568),h=(0,e.Debug)("cluster:connectionPool");class i extends d.EventEmitter{constructor(a){super(),this.redisOptions=a,this.nodes={all:{},master:{},slave:{}},this.specifiedOptions={}}getNodes(a="all"){let b=this.nodes[a];return Object.keys(b).map(a=>b[a])}getInstanceByKey(a){return this.nodes.all[a]}getSampleInstance(a){let b=Object.keys(this.nodes[a]),c=(0,e.sample)(b);return this.nodes[a][c]}addMasterNode(a){let b=(0,f.getNodeKey)(a.options),c=this.createRedisFromOptions(a,a.options.readOnly);return!a.options.readOnly&&(this.nodes.all[b]=c,this.nodes.master[b]=c,!0)}createRedisFromOptions(a,b){return new g.default((0,e.defaults)({retryStrategy:null,enableOfflineQueue:!0,readOnly:b},a,this.redisOptions,{lazyConnect:!0}))}findOrCreate(a,b=!1){let c,d=(0,f.getNodeKey)(a);return b=!!b,this.specifiedOptions[d]?Object.assign(a,this.specifiedOptions[d]):this.specifiedOptions[d]=a,this.nodes.all[d]?(c=this.nodes.all[d]).options.readOnly!==b&&(c.options.readOnly=b,h("Change role of %s to %s",d,b?"slave":"master"),c[b?"readonly":"readwrite"]().catch(e.noop),b?(delete this.nodes.master[d],this.nodes.slave[d]=c):(delete this.nodes.slave[d],this.nodes.master[d]=c)):(h("Connecting to %s as %s",d,b?"slave":"master"),c=this.createRedisFromOptions(a,b),this.nodes.all[d]=c,this.nodes[b?"slave":"master"][d]=c,c.once("end",()=>{this.removeNode(d),this.emit("-node",c,d),Object.keys(this.nodes.all).length||this.emit("drain")}),this.emit("+node",c,d),c.on("error",function(a){this.emit("nodeError",a,d)})),c}reset(a){h("Reset with %O",a);let b={};a.forEach(a=>{let c=(0,f.getNodeKey)(a);a.readOnly&&b[c]||(b[c]=a)}),Object.keys(this.nodes.all).forEach(a=>{b[a]||(h("Disconnect %s because the node does not hold any slot",a),this.nodes.all[a].disconnect(),this.removeNode(a))}),Object.keys(b).forEach(a=>{let c=b[a];this.findOrCreate(c,c.readOnly)})}removeNode(a){let{nodes:b}=this;b.all[a]&&(h("Remove %s from the pool",a),delete b.all[a]),delete b.master[a],delete b.slave[a]}}b.default=i},63145:(a,b,c)=>{"use strict";let d=c(79428).Buffer,e=new(c(41204)).StringDecoder,f=c(44400),g=f.ReplyError,h=f.ParserError;var i=d.allocUnsafe(32768),j=0,k=null,l=0,m=0;function n(a){let b=a.offset,c=a.buffer,d=c.length-1;for(var e=b;e<d;)if(13===c[e++]){if(a.offset=e+1,!0===a.optionReturnBuffers)return a.buffer.slice(b,e-1);return a.buffer.toString("utf8",b,e-1)}}function o(a){let b=a.buffer.length-1;for(var c=a.offset,d=0;c<b;){let b=a.buffer[c++];if(13===b)return a.offset=c+1,d;d=10*d+(b-48)}}function p(a,b,c){a.arrayCache.push(b),a.arrayPos.push(c)}function q(a){let b=a.arrayCache.pop();var c=a.arrayPos.pop();if(a.arrayCache.length){let d=q(a);if(void 0===d)return void p(a,b,c);b[c++]=d}return r(a,b,c)}function r(a,b,c){let d=a.buffer.length;for(;c<b.length;){let e=a.offset;if(a.offset>=d)return void p(a,b,c);let f=s(a,a.buffer[a.offset++]);if(void 0===f){a.arrayCache.length||a.bufferCache.length||(a.offset=e),p(a,b,c);return}b[c]=f,c++}return b}function s(a,b){switch(b){case 36:let c=o(a);if(void 0===c)return;if(c<0)return null;let d=a.offset+c;if(d+2>a.buffer.length){a.bigStrSize=d+2,a.totalChunkSize=a.buffer.length,a.bufferCache.push(a.buffer);return}let e=a.offset;return(a.offset=d+2,!0===a.optionReturnBuffers)?a.buffer.slice(e,d):a.buffer.toString("utf8",e,d);case 43:return n(a);case 42:let f=o(a);return void 0===f?void 0:f<0?null:r(a,Array(f),0);case 58:return!0===a.optionStringNumbers?function(a){let b=a.buffer.length-1;var c=a.offset,d=0,e="";for(45===a.buffer[c]&&(e+="-",c++);c<b;){var f=a.buffer[c++];if(13===f)return a.offset=c+1,0!==d&&(e+=d),e;d>0x19999998?(e+=10*d+(f-48),d=0):48===f&&0===d?e+=0:d=10*d+(f-48)}}(a):function(a){let b=a.buffer.length-1;var c=a.offset,d=0,e=1;for(45===a.buffer[c]&&(e=-1,c++);c<b;){let b=a.buffer[c++];if(13===b)return a.offset=c+1,e*d;d=10*d+(b-48)}}(a);case 45:var i=n(a);if(void 0!==i)return!0===a.optionReturnBuffers&&(i=i.toString()),new g(i);return;default:let j=new h("Protocol error, got "+JSON.stringify(String.fromCharCode(b))+" as reply type byte",JSON.stringify(a.buffer),a.offset);a.buffer=null,a.returnFatalError(j);return}}function t(){if(i.length>51200)if(1===l||m>2*l){let a=Math.floor(i.length/10),b=a<j?j:a;j=0,i=i.slice(b,i.length)}else m++,l--;else clearInterval(k),l=0,m=0,k=null}class u{constructor(a){if(!a)throw TypeError("Options are mandatory.");if("function"!=typeof a.returnError||"function"!=typeof a.returnReply)throw TypeError("The returnReply and returnError options have to be functions.");this.setReturnBuffers(!!a.returnBuffers),this.setStringNumbers(!!a.stringNumbers),this.returnError=a.returnError,this.returnFatalError=a.returnFatalError||a.returnError,this.returnReply=a.returnReply,this.reset()}reset(){this.offset=0,this.buffer=null,this.bigStrSize=0,this.totalChunkSize=0,this.bufferCache=[],this.arrayCache=[],this.arrayPos=[]}setReturnBuffers(a){if("boolean"!=typeof a)throw TypeError("The returnBuffers argument has to be a boolean");this.optionReturnBuffers=a}setStringNumbers(a){if("boolean"!=typeof a)throw TypeError("The stringNumbers argument has to be a boolean");this.optionStringNumbers=a}execute(a){if(null===this.buffer)this.buffer=a,this.offset=0;else if(0===this.bigStrSize){let b=this.buffer.length,c=b-this.offset,e=d.allocUnsafe(c+a.length);if(this.buffer.copy(e,0,this.offset,b),a.copy(e,c,0,a.length),this.buffer=e,this.offset=0,this.arrayCache.length){let a=q(this);if(void 0===a)return;this.returnReply(a)}}else if(this.totalChunkSize+a.length>=this.bigStrSize){this.bufferCache.push(a);var b=this.optionReturnBuffers?function(a){let b=a.bufferCache,c=a.offset,e=a.bigStrSize-c-2;var f=b.length,g=a.bigStrSize-a.totalChunkSize;if(a.offset=g,g<=2){if(2===f)return b[0].slice(c,b[0].length+g-2);f--,g=b[b.length-2].length+g}i.length<e+j&&(j>0x6f00000&&(j=0x3200000),i=d.allocUnsafe(e*(e>0x4b00000?2:3)+j),j=0,l++,null===k&&(k=setInterval(t,50)));let h=j;b[0].copy(i,h,c,b[0].length),j+=b[0].length-c;for(var m=1;m<f-1;m++)b[m].copy(i,j),j+=b[m].length;return b[m].copy(i,j,0,g-2),j+=g-2,i.slice(h,j)}(this):function(a){let b=a.bufferCache,c=a.offset;var d=b.length,f=a.bigStrSize-a.totalChunkSize;if(a.offset=f,f<=2){if(2===d)return b[0].toString("utf8",c,b[0].length+f-2);d--,f=b[b.length-2].length+f}for(var g=e.write(b[0].slice(c)),h=1;h<d-1;h++)g+=e.write(b[h]);return g+e.end(b[h].slice(0,f-2))}(this);if(this.bigStrSize=0,this.bufferCache=[],this.buffer=a,this.arrayCache.length&&(this.arrayCache[0][this.arrayPos[0]++]=b,void 0===(b=q(this))))return;this.returnReply(b)}else{this.bufferCache.push(a),this.totalChunkSize+=a.length;return}for(;this.offset<this.buffer.length;){let a=this.offset,b=this.buffer[this.offset++],c=s(this,b);if(void 0===c){this.arrayCache.length||this.bufferCache.length||(this.offset=a);return}45===b?this.returnError(c):this.returnReply(c)}this.buffer=null}}a.exports=u},68199:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Xm:()=>i,lX:()=>k});var e=c(37422),f=c(10713),g=a([e]);function h(a){return{uuid:a.uuid,projectUuid:a.projectUuid,projectName:a.projectName,recipientType:a.recipientType,recipientUuid:a.recipientUuid,entityType:a.entityType,entityUuid:a.entityUuid,entityTitle:a.entityTitle,action:a.action,message:a.message,actorType:a.actorType,actorUuid:a.actorUuid,actorName:a.actorName,readAt:a.readAt?.toISOString()??null,archivedAt:a.archivedAt?.toISOString()??null,createdAt:a.createdAt.toISOString()}}async function i(a){let b=await Promise.all(a.map(a=>e.z.notification.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,recipientType:a.recipientType,recipientUuid:a.recipientUuid,entityType:a.entityType,entityUuid:a.entityUuid,entityTitle:a.entityTitle,projectName:a.projectName,action:a.action,message:a.message,actorType:a.actorType,actorUuid:a.actorUuid,actorName:a.actorName}}))),c=new Set;for(let b of a)c.add(`${b.recipientType}:${b.recipientUuid}:${b.companyUuid}`);for(let d of c){let[c,e,g]=d.split(":"),h=await j(g,c,e),i=b.find(a=>a.recipientType===c&&a.recipientUuid===e),k=a.find(a=>a.recipientType===c&&a.recipientUuid===e);f.B.emit(`notification:${c}:${e}`,{type:"new_notification",notificationUuid:i?.uuid,unreadCount:h,action:k?.action,actorName:k?.actorName,entityTitle:k?.entityTitle,entityType:k?.entityType,entityUuid:k?.entityUuid,projectUuid:k?.projectUuid})}return b.map(h)}async function j(a,b,c){return e.z.notification.count({where:{companyUuid:a,recipientType:b,recipientUuid:c,readAt:null,archivedAt:null}})}async function k(a,b,c){let d=await e.z.notificationPreference.findUnique({where:{ownerType_ownerUuid:{ownerType:b,ownerUuid:c}}});return d||(d=await e.z.notificationPreference.create({data:{companyUuid:a,ownerType:b,ownerUuid:c}})),{uuid:d.uuid,ownerType:d.ownerType,ownerUuid:d.ownerUuid,taskAssigned:d.taskAssigned,taskStatusChanged:d.taskStatusChanged,taskVerified:d.taskVerified,taskReopened:d.taskReopened,proposalSubmitted:d.proposalSubmitted,proposalApproved:d.proposalApproved,proposalRejected:d.proposalRejected,ideaClaimed:d.ideaClaimed,commentAdded:d.commentAdded,elaborationRequested:d.elaborationRequested,elaborationAnswered:d.elaborationAnswered,mentioned:d.mentioned}}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},68694:(a,b,c)=>{let d=c(83997),e=c(28354);b.init=function(a){a.inspectOpts={};let c=Object.keys(b.inspectOpts);for(let d=0;d<c.length;d++)a.inspectOpts[c[d]]=b.inspectOpts[c[d]]},b.log=function(...a){return process.stderr.write(e.formatWithOptions(b.inspectOpts,...a)+"\n")},b.formatArgs=function(c){let{namespace:d,useColors:e}=this;if(e){let b=this.color,e="\x1b[3"+(b<8?b:"8;5;"+b),f=` ${e};1m${d} \u001B[0m`;c[0]=f+c[0].split("\n").join("\n"+f),c.push(e+"m+"+a.exports.humanize(this.diff)+"\x1b[0m")}else c[0]=(b.inspectOpts.hideDate?"":new Date().toISOString()+" ")+d+" "+c[0]},b.save=function(a){a?process.env.DEBUG=a:delete process.env.DEBUG},b.load=function(){return process.env.DEBUG},b.useColors=function(){return"colors"in b.inspectOpts?!!b.inspectOpts.colors:d.isatty(process.stderr.fd)},b.destroy=e.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),b.colors=[6,2,3,4,5,1];try{let a=c(22618);a&&(a.stderr||a).level>=2&&(b.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(a){}b.inspectOpts=Object.keys(process.env).filter(a=>/^debug_/i.test(a)).reduce((a,b)=>{let c=b.substring(6).toLowerCase().replace(/_([a-z])/g,(a,b)=>b.toUpperCase()),d=process.env[b];return d=!!/^(yes|on|true|enabled)$/i.test(d)||!/^(no|off|false|disabled)$/i.test(d)&&("null"===d?null:Number(d)),a[c]=d,a},{}),a.exports=c(950)(b);let{formatters:f}=a.exports;f.o=function(a){return this.inspectOpts.colors=this.useColors,e.inspect(a,this.inspectOpts).split("\n").map(a=>a.trim()).join(" ")},f.O=function(a){return this.inspectOpts.colors=this.useColors,e.inspect(a,this.inspectOpts)}},73380:a=>{"use strict";function b(a,b){var b=b||{};this._capacity=b.capacity,this._head=0,this._tail=0,Array.isArray(a)?this._fromArray(a):(this._capacityMask=3,this._list=[,,,,])}b.prototype.peekAt=function(a){var b=a;if(b===(0|b)){var c=this.size();if(!(b>=c)&&!(b<-c))return b<0&&(b+=c),b=this._head+b&this._capacityMask,this._list[b]}},b.prototype.get=function(a){return this.peekAt(a)},b.prototype.peek=function(){if(this._head!==this._tail)return this._list[this._head]},b.prototype.peekFront=function(){return this.peek()},b.prototype.peekBack=function(){return this.peekAt(-1)},Object.defineProperty(b.prototype,"length",{get:function(){return this.size()}}),b.prototype.size=function(){return this._head===this._tail?0:this._head<this._tail?this._tail-this._head:this._capacityMask+1-(this._head-this._tail)},b.prototype.unshift=function(a){if(0==arguments.length)return this.size();var b=this._list.length;return(this._head=this._head-1+b&this._capacityMask,this._list[this._head]=a,this._tail===this._head&&this._growArray(),this._capacity&&this.size()>this._capacity&&this.pop(),this._head<this._tail)?this._tail-this._head:this._capacityMask+1-(this._head-this._tail)},b.prototype.shift=function(){var a=this._head;if(a!==this._tail){var b=this._list[a];return this._list[a]=void 0,this._head=a+1&this._capacityMask,a<2&&this._tail>1e4&&this._tail<=this._list.length>>>2&&this._shrinkArray(),b}},b.prototype.push=function(a){if(0==arguments.length)return this.size();var b=this._tail;return(this._list[b]=a,this._tail=b+1&this._capacityMask,this._tail===this._head&&this._growArray(),this._capacity&&this.size()>this._capacity&&this.shift(),this._head<this._tail)?this._tail-this._head:this._capacityMask+1-(this._head-this._tail)},b.prototype.pop=function(){var a=this._tail;if(a!==this._head){var b=this._list.length;this._tail=a-1+b&this._capacityMask;var c=this._list[this._tail];return this._list[this._tail]=void 0,this._head<2&&a>1e4&&a<=b>>>2&&this._shrinkArray(),c}},b.prototype.removeOne=function(a){var b,c=a;if(c===(0|c)&&this._head!==this._tail){var d=this.size(),e=this._list.length;if(!(c>=d)&&!(c<-d)){c<0&&(c+=d),c=this._head+c&this._capacityMask;var f=this._list[c];if(a<d/2){for(b=a;b>0;b--)this._list[c]=this._list[c=c-1+e&this._capacityMask];this._list[c]=void 0,this._head=this._head+1+e&this._capacityMask}else{for(b=d-1-a;b>0;b--)this._list[c]=this._list[c=c+1+e&this._capacityMask];this._list[c]=void 0,this._tail=this._tail-1+e&this._capacityMask}return f}}},b.prototype.remove=function(a,b){var c,d,e=a,f=b;if(e===(0|e)&&this._head!==this._tail){var g=this.size(),h=this._list.length;if(!(e>=g)&&!(e<-g)&&!(b<1)){if(e<0&&(e+=g),1===b||!b)return(c=[,])[0]=this.removeOne(e),c;if(0===e&&e+b>=g)return c=this.toArray(),this.clear(),c;for(e+b>g&&(b=g-e),c=Array(b),d=0;d<b;d++)c[d]=this._list[this._head+e+d&this._capacityMask];if(e=this._head+e&this._capacityMask,a+b===g){for(this._tail=this._tail-b+h&this._capacityMask,d=b;d>0;d--)this._list[e=e+1+h&this._capacityMask]=void 0;return c}if(0===a){for(this._head=this._head+b+h&this._capacityMask,d=b-1;d>0;d--)this._list[e=e+1+h&this._capacityMask]=void 0;return c}if(e<g/2){for(this._head=this._head+a+b+h&this._capacityMask,d=a;d>0;d--)this.unshift(this._list[e=e-1+h&this._capacityMask]);for(e=this._head-1+h&this._capacityMask;f>0;)this._list[e=e-1+h&this._capacityMask]=void 0,f--;a<0&&(this._tail=e)}else{for(this._tail=e,e=e+b+h&this._capacityMask,d=g-(b+a);d>0;d--)this.push(this._list[e++]);for(e=this._tail;f>0;)this._list[e=e+1+h&this._capacityMask]=void 0,f--}return this._head<2&&this._tail>1e4&&this._tail<=h>>>2&&this._shrinkArray(),c}}},b.prototype.splice=function(a,b){var c=a;if(c===(0|c)){var d=this.size();if(c<0&&(c+=d),!(c>d))if(!(arguments.length>2))return this.remove(c,b);else{var e,f,g,h=arguments.length,i=this._list.length,j=2;if(!d||c<d/2){for(e=0,f=Array(c);e<c;e++)f[e]=this._list[this._head+e&this._capacityMask];for(0===b?(g=[],c>0&&(this._head=this._head+c+i&this._capacityMask)):(g=this.remove(c,b),this._head=this._head+c+i&this._capacityMask);h>j;)this.unshift(arguments[--h]);for(e=c;e>0;e--)this.unshift(f[e-1])}else{var k=(f=Array(d-(c+b))).length;for(e=0;e<k;e++)f[e]=this._list[this._head+c+b+e&this._capacityMask];for(0===b?(g=[],c!=d&&(this._tail=this._head+c+i&this._capacityMask)):(g=this.remove(c,b),this._tail=this._tail-k+i&this._capacityMask);j<h;)this.push(arguments[j++]);for(e=0;e<k;e++)this.push(f[e])}return g}}},b.prototype.clear=function(){this._list=Array(this._list.length),this._head=0,this._tail=0},b.prototype.isEmpty=function(){return this._head===this._tail},b.prototype.toArray=function(){return this._copyArray(!1)},b.prototype._fromArray=function(a){var b=a.length,c=this._nextPowerOf2(b);this._list=Array(c),this._capacityMask=c-1,this._tail=b;for(var d=0;d<b;d++)this._list[d]=a[d]},b.prototype._copyArray=function(a,b){var c,d=this._list,e=d.length,f=this.length;if((b|=f)==f&&this._head<this._tail)return this._list.slice(this._head,this._tail);var g=Array(b),h=0;if(a||this._head>this._tail){for(c=this._head;c<e;c++)g[h++]=d[c];for(c=0;c<this._tail;c++)g[h++]=d[c]}else for(c=this._head;c<this._tail;c++)g[h++]=d[c];return g},b.prototype._growArray=function(){if(0!=this._head){var a=this._copyArray(!0,this._list.length<<1);this._tail=this._list.length,this._head=0,this._list=a}else this._tail=this._list.length,this._list.length<<=1;this._capacityMask=this._capacityMask<<1|1},b.prototype._shrinkArray=function(){this._list.length>>>=1,this._capacityMask>>>=1},b.prototype._nextPowerOf2=function(a){return Math.max(1<<Math.log(a)/Math.log(2)+1,4)},a.exports=b},77210:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.DEFAULT_REDIS_OPTIONS=void 0,b.DEFAULT_REDIS_OPTIONS={port:6379,host:"localhost",family:0,connectTimeout:1e4,disconnectTimeout:2e3,retryStrategy:function(a){return Math.min(50*a,2e3)},keepAlive:0,noDelay:!0,connectionName:null,disableClientInfo:!1,clientInfoTag:void 0,sentinels:null,name:null,role:"master",sentinelRetryStrategy:function(a){return Math.min(10*a,1e3)},sentinelReconnectStrategy:function(){return 6e4},natMap:null,enableTLSForSentinelMode:!1,updateSentinels:!0,failoverDetector:!1,username:null,password:null,db:0,enableOfflineQueue:!0,enableReadyCheck:!0,autoResubscribe:!0,autoResendUnfulfilledCommands:!0,lazyConnect:!1,keyPrefix:"",reconnectOnError:null,readOnly:!1,stringNumbers:!1,maxRetriesPerRequest:20,maxLoadingRetryTime:1e4,enableAutoPipelining:!1,autoPipeliningIgnoredCommands:[],sentinelMaxConnections:10,blockingTimeoutGrace:100}},77318:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.isArguments=b.defaults=b.noop=void 0,b.defaults=c(47611),b.isArguments=c(93293),b.noop=function(){}},79651:(a,b,c)=>{"use strict";let d=c(12412),e=c(28354);function f(a){Object.defineProperty(this,"message",{value:a||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}function g(a,b,c){d(b),d.strictEqual(typeof c,"number"),Object.defineProperty(this,"message",{value:a||"",configurable:!0,writable:!0});let e=Error.stackTraceLimit;Error.stackTraceLimit=2,Error.captureStackTrace(this,this.constructor),Error.stackTraceLimit=e,this.offset=c,this.buffer=b}function h(a){Object.defineProperty(this,"message",{value:a||"",configurable:!0,writable:!0});let b=Error.stackTraceLimit;Error.stackTraceLimit=2,Error.captureStackTrace(this,this.constructor),Error.stackTraceLimit=b}function i(a){Object.defineProperty(this,"message",{value:a||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}function j(a){Object.defineProperty(this,"message",{value:a||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}e.inherits(f,Error),Object.defineProperty(f.prototype,"name",{value:"RedisError",configurable:!0,writable:!0}),e.inherits(g,f),Object.defineProperty(g.prototype,"name",{value:"ParserError",configurable:!0,writable:!0}),e.inherits(h,f),Object.defineProperty(h.prototype,"name",{value:"ReplyError",configurable:!0,writable:!0}),e.inherits(i,f),Object.defineProperty(i.prototype,"name",{value:"AbortError",configurable:!0,writable:!0}),e.inherits(j,i),Object.defineProperty(j.prototype,"name",{value:"InterruptError",configurable:!0,writable:!0}),a.exports={RedisError:f,ParserError:g,ReplyError:h,AbortError:i,InterruptError:j}},80037:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{M:()=>J});var e=c(96009),f=c(11309),g=c(64939),h=c(53172),i=a([g]);g=(i.then?(await i)():i)[0];var j="@prisma/adapter-pg",{types:k}=g.default,{builtins:l,getTypeParser:m}=k,n={NAME:19},o={BIT_ARRAY:1561,BOOL_ARRAY:1e3,BYTEA_ARRAY:1001,BPCHAR_ARRAY:1014,CHAR_ARRAY:1002,CIDR_ARRAY:651,DATE_ARRAY:1182,FLOAT4_ARRAY:1021,FLOAT8_ARRAY:1022,INET_ARRAY:1041,INT2_ARRAY:1005,INT4_ARRAY:1007,INT8_ARRAY:1016,JSONB_ARRAY:3807,JSON_ARRAY:199,MONEY_ARRAY:791,NUMERIC_ARRAY:1231,OID_ARRAY:1028,TEXT_ARRAY:1009,TIMESTAMP_ARRAY:1115,TIMESTAMPTZ_ARRAY:1185,TIME_ARRAY:1183,UUID_ARRAY:2951,VARBIT_ARRAY:1563,VARCHAR_ARRAY:1015,XML_ARRAY:143},p=class a extends Error{static typeNames={16:"bool",17:"bytea",18:"char",19:"name",20:"int8",21:"int2",22:"int2vector",23:"int4",24:"regproc",25:"text",26:"oid",27:"tid",28:"xid",29:"cid",30:"oidvector",32:"pg_ddl_command",71:"pg_type",75:"pg_attribute",81:"pg_proc",83:"pg_class",114:"json",142:"xml",194:"pg_node_tree",269:"table_am_handler",325:"index_am_handler",600:"point",601:"lseg",602:"path",603:"box",604:"polygon",628:"line",650:"cidr",700:"float4",701:"float8",705:"unknown",718:"circle",774:"macaddr8",790:"money",829:"macaddr",869:"inet",1033:"aclitem",1042:"bpchar",1043:"varchar",1082:"date",1083:"time",1114:"timestamp",1184:"timestamptz",1186:"interval",1266:"timetz",1560:"bit",1562:"varbit",1700:"numeric",1790:"refcursor",2202:"regprocedure",2203:"regoper",2204:"regoperator",2205:"regclass",2206:"regtype",2249:"record",2275:"cstring",2276:"any",2277:"anyarray",2278:"void",2279:"trigger",2280:"language_handler",2281:"internal",2283:"anyelement",2287:"_record",2776:"anynonarray",2950:"uuid",2970:"txid_snapshot",3115:"fdw_handler",3220:"pg_lsn",3310:"tsm_handler",3361:"pg_ndistinct",3402:"pg_dependencies",3500:"anyenum",3614:"tsvector",3615:"tsquery",3642:"gtsvector",3734:"regconfig",3769:"regdictionary",3802:"jsonb",3831:"anyrange",3838:"event_trigger",3904:"int4range",3906:"numrange",3908:"tsrange",3910:"tstzrange",3912:"daterange",3926:"int8range",4072:"jsonpath",4089:"regnamespace",4096:"regrole",4191:"regcollation",4451:"int4multirange",4532:"nummultirange",4533:"tsmultirange",4534:"tstzmultirange",4535:"datemultirange",4536:"int8multirange",4537:"anymultirange",4538:"anycompatiblemultirange",4600:"pg_brin_bloom_summary",4601:"pg_brin_minmax_multi_summary",5017:"pg_mcv_list",5038:"pg_snapshot",5069:"xid8",5077:"anycompatible",5078:"anycompatiblearray",5079:"anycompatiblenonarray",5080:"anycompatiblerange"};type;constructor(b){super(),this.type=a.typeNames[b]||"Unknown",this.message=`Unsupported column type ${this.type}`}};function q(a){return b=>(0,h.q)(b,a)}function r(a){return a}function s(a){return a}function t(a){return`${a.replace(" ","T")}+00:00`}function u(a){return a.replace(" ","T").replace(/[+-]\d{2}(:\d{2})?$/,"+00:00")}function v(a){return a}function w(a){return a.slice(1)}function x(a){return a}var y=m(l.BYTEA),z=m(o.BYTEA_ARRAY);function A(a){return a}var B={[l.NUMERIC]:r,[o.NUMERIC_ARRAY]:q(r),[l.TIME]:v,[o.TIME_ARRAY]:q(v),[l.TIMETZ]:function(a){return a.replace(/[+-]\d{2}(:\d{2})?$/,"")},[l.DATE]:s,[o.DATE_ARRAY]:q(s),[l.TIMESTAMP]:t,[o.TIMESTAMP_ARRAY]:q(t),[l.TIMESTAMPTZ]:u,[o.TIMESTAMPTZ_ARRAY]:q(u),[l.MONEY]:w,[o.MONEY_ARRAY]:q(w),[l.JSON]:x,[o.JSON_ARRAY]:q(x),[l.JSONB]:x,[o.JSONB_ARRAY]:q(x),[l.BYTEA]:function(a){return y(a)},[o.BYTEA_ARRAY]:z,[o.BIT_ARRAY]:q(A),[o.VARBIT_ARRAY]:q(A),[o.XML_ARRAY]:q(function(a){return a})},C=new Set(["UNABLE_TO_GET_ISSUER_CERT","UNABLE_TO_GET_CRL","UNABLE_TO_DECRYPT_CERT_SIGNATURE","UNABLE_TO_DECRYPT_CRL_SIGNATURE","UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY","CERT_SIGNATURE_FAILURE","CRL_SIGNATURE_FAILURE","CERT_NOT_YET_VALID","CERT_HAS_EXPIRED","CRL_NOT_YET_VALID","CRL_HAS_EXPIRED","ERROR_IN_CERT_NOT_BEFORE_FIELD","ERROR_IN_CERT_NOT_AFTER_FIELD","ERROR_IN_CRL_LAST_UPDATE_FIELD","ERROR_IN_CRL_NEXT_UPDATE_FIELD","DEPTH_ZERO_SELF_SIGNED_CERT","SELF_SIGNED_CERT_IN_CHAIN","UNABLE_TO_GET_ISSUER_CERT_LOCALLY","UNABLE_TO_VERIFY_LEAF_SIGNATURE","CERT_CHAIN_TOO_LONG","CERT_REVOKED","INVALID_CA","INVALID_PURPOSE","CERT_UNTRUSTED","CERT_REJECTED","HOSTNAME_MISMATCH","ERR_TLS_CERT_ALTNAME_FORMAT","ERR_TLS_CERT_ALTNAME_INVALID"]),D=new Set(["ENOTFOUND","ECONNREFUSED","ECONNRESET","ETIMEDOUT"]),E=g.default.types,F=(0,e.y)("prisma:driver-adapter:pg"),G=class{constructor(a,b){this.client=a,this.pgOptions=b}provider="postgres";adapterName=j;async queryRaw(a){F("[js::query_raw] %O",a);let{fields:b,rows:c}=await this.performIO(a),d=b.map(a=>a.name),e=[];try{e=b.map(a=>(function(a){switch(a){case l.INT2:case l.INT4:return f.UE.Int32;case l.INT8:return f.UE.Int64;case l.FLOAT4:return f.UE.Float;case l.FLOAT8:return f.UE.Double;case l.BOOL:return f.UE.Boolean;case l.DATE:return f.UE.Date;case l.TIME:case l.TIMETZ:return f.UE.Time;case l.TIMESTAMP:case l.TIMESTAMPTZ:return f.UE.DateTime;case l.NUMERIC:case l.MONEY:return f.UE.Numeric;case l.JSON:case l.JSONB:return f.UE.Json;case l.UUID:return f.UE.Uuid;case l.OID:return f.UE.Int64;case l.BPCHAR:case l.TEXT:case l.VARCHAR:case l.BIT:case l.VARBIT:case l.INET:case l.CIDR:case l.XML:case n.NAME:return f.UE.Text;case l.BYTEA:return f.UE.Bytes;case o.INT2_ARRAY:case o.INT4_ARRAY:return f.UE.Int32Array;case o.FLOAT4_ARRAY:return f.UE.FloatArray;case o.FLOAT8_ARRAY:return f.UE.DoubleArray;case o.NUMERIC_ARRAY:case o.MONEY_ARRAY:return f.UE.NumericArray;case o.BOOL_ARRAY:return f.UE.BooleanArray;case o.CHAR_ARRAY:return f.UE.CharacterArray;case o.BPCHAR_ARRAY:case o.TEXT_ARRAY:case o.VARCHAR_ARRAY:case o.VARBIT_ARRAY:case o.BIT_ARRAY:case o.INET_ARRAY:case o.CIDR_ARRAY:case o.XML_ARRAY:return f.UE.TextArray;case o.DATE_ARRAY:return f.UE.DateArray;case o.TIME_ARRAY:return f.UE.TimeArray;case o.TIMESTAMP_ARRAY:case o.TIMESTAMPTZ_ARRAY:return f.UE.DateTimeArray;case o.JSON_ARRAY:case o.JSONB_ARRAY:return f.UE.JsonArray;case o.BYTEA_ARRAY:return f.UE.BytesArray;case o.UUID_ARRAY:return f.UE.UuidArray;case o.INT8_ARRAY:case o.OID_ARRAY:return f.UE.Int64Array;default:if(a>=16384)return f.UE.Text;throw new p(a)}})(a.dataTypeID))}catch(a){if(a instanceof p)throw new f.sL({kind:"UnsupportedNativeDataType",type:a.type});throw a}let g=this.pgOptions?.userDefinedTypeParser;if(g)for(let a=0;a<b.length;a++){let d=b[a];if(d.dataTypeID>=16384&&!Object.hasOwn(B,d.dataTypeID))for(let b=0;b<c.length;b++)c[b][a]=await g(d.dataTypeID,c[b][a],this)}return{columnNames:d,columnTypes:e,rows:c}}async executeRaw(a){return F("[js::execute_raw] %O",a),(await this.performIO(a)).rowCount??0}async performIO(a){let{sql:b,args:c}=a,d=c.map((b,c)=>(function a(b,c){if(null===b)return null;if(Array.isArray(b)&&"list"===c.arity)return b.map(b=>a(b,c));if("string"==typeof b&&"datetime"===c.scalarType&&(b=new Date(b)),b instanceof Date)switch(c.dbType){case"TIME":case"TIMETZ":var d=b;let e=(a,b=2)=>String(a).padStart(b,"0"),f=d.getUTCMilliseconds();return e(d.getUTCHours())+":"+e(d.getUTCMinutes())+":"+e(d.getUTCSeconds())+(f?"."+String(f).padStart(3,"0"):"");case"DATE":var g=b;let h=(a,b=2)=>String(a).padStart(b,"0");return h(g.getUTCFullYear(),4)+"-"+h(g.getUTCMonth()+1)+"-"+h(g.getUTCDate());default:var i=b;let j=(a,b=2)=>String(a).padStart(b,"0"),k=i.getUTCMilliseconds();return j(i.getUTCFullYear(),4)+"-"+j(i.getUTCMonth()+1)+"-"+j(i.getUTCDate())+" "+j(i.getUTCHours())+":"+j(i.getUTCMinutes())+":"+j(i.getUTCSeconds())+(k?"."+String(k).padStart(3,"0"):"")}return"string"==typeof b&&"bytes"===c.scalarType?Buffer.from(b,"base64"):ArrayBuffer.isView(b)?new Uint8Array(b.buffer,b.byteOffset,b.byteLength):b})(b,a.argTypes[c]));try{return await this.client.query({text:b,values:d,rowMode:"array",types:{getTypeParser:(a,b)=>"text"===b&&B[a]?B[a]:E.getTypeParser(a,b)}},d)}catch(a){this.onError(a)}}onError(a){throw F("Error in performIO: %O",a),new f.sL(function(a){if(b=a,"string"==typeof b.code&&"string"==typeof b.syscall&&"number"==typeof b.errno&&D.has(b.code)){var b,c,d=a;switch(d.code){case"ENOTFOUND":case"ECONNREFUSED":return{kind:"DatabaseNotReachable",host:d.address??d.hostname,port:d.port};case"ECONNRESET":return{kind:"ConnectionClosed"};case"ETIMEDOUT":return{kind:"SocketTimeout"}}return}if(function(a){if("string"==typeof a.code)return C.has(a.code);switch(a.message){case"The server does not support SSL connections":case"There was an error establishing an SSL connection":return!0}return!1}(a))return{kind:"TlsConnectionError",reason:a.message};if(c=a,"string"==typeof c.code&&"string"==typeof c.message&&"string"==typeof c.severity&&("string"==typeof c.detail||void 0===c.detail)&&("string"==typeof c.column||void 0===c.column)&&("string"==typeof c.hint||void 0===c.hint))return{originalCode:a.code,originalMessage:a.message,...function(a){switch(a.code){case"22001":return{kind:"LengthMismatch",column:a.column};case"22003":return{kind:"ValueOutOfRange",cause:a.message};case"22P02":return{kind:"InvalidInputValue",message:a.message};case"23505":{let b=a.detail?.match(/Key \(([^)]+)\)/)?.at(1)?.split(", ");return{kind:"UniqueConstraintViolation",constraint:void 0!==b?{fields:b}:void 0}}case"23502":{let b=a.detail?.match(/Key \(([^)]+)\)/)?.at(1)?.split(", ");return{kind:"NullConstraintViolation",constraint:void 0!==b?{fields:b}:void 0}}case"23503":{let b;return a.column?b={fields:[a.column]}:a.constraint&&(b={index:a.constraint}),{kind:"ForeignKeyConstraintViolation",constraint:b}}case"3D000":return{kind:"DatabaseDoesNotExist",db:a.message.split(" ").at(1)?.split('"').at(1)};case"28000":return{kind:"DatabaseAccessDenied",db:a.message.split(",").find(a=>a.startsWith(" database"))?.split('"').at(1)};case"28P01":return{kind:"AuthenticationFailed",user:a.message.split(" ").pop()?.split('"').at(1)};case"40001":return{kind:"TransactionWriteConflict"};case"42P01":return{kind:"TableDoesNotExist",table:a.message.split(" ").at(1)?.split('"').at(1)};case"42703":return{kind:"ColumnNotFound",column:a.message.split(" ").at(1)?.split('"').at(1)};case"42P04":return{kind:"DatabaseAlreadyExists",db:a.message.split(" ").at(1)?.split('"').at(1)};case"53300":return{kind:"TooManyConnections",cause:a.message};default:return{kind:"postgres",code:a.code??"N/A",severity:a.severity??"N/A",message:a.message,detail:a.detail,column:a.column,hint:a.hint}}}(a)};throw a}(a))}},H=class extends G{constructor(a,b,c,d){super(a,c),this.options=b,this.pgOptions=c,this.cleanup=d}async commit(){F("[js::commit]"),this.cleanup?.(),this.client.release()}async rollback(){F("[js::rollback]"),this.cleanup?.(),this.client.release()}},I=class extends G{constructor(a,b,c){super(a),this.pgOptions=b,this.release=c}async startTransaction(a){let b={usePhantomQuery:!1};F("%s options: %O","[js::startTransaction]",b);let c=await this.client.connect().catch(a=>this.onError(a)),d=a=>{F(`Error from pool connection: ${a.message} %O`,a),this.pgOptions?.onConnectionError?.(a)};c.on("error",d);let e=()=>{c.removeListener("error",d)};try{let d=new H(c,b,this.pgOptions,e);return await d.executeRaw({sql:"BEGIN",args:[],argTypes:[]}),a&&await d.executeRaw({sql:`SET TRANSACTION ISOLATION LEVEL ${a}`,args:[],argTypes:[]}),d}catch(a){e(),c.release(a),this.onError(a)}}async executeScript(a){for(let b of a.split(";").map(a=>a.trim()).filter(a=>a.length>0))try{await this.client.query(b)}catch(a){this.onError(a)}}getConnectionInfo(){return{schemaName:this.pgOptions?.schema,supportsRelationJoins:!0}}async dispose(){return this.release?.()}underlyingDriver(){return this.client}},J=class{constructor(a,b){this.options=b,a instanceof g.default.Pool?(this.externalPool=a,this.config=a.options):(this.externalPool=null,this.config=a)}provider="postgres";adapterName=j;config;externalPool;async connect(){let a=this.externalPool??new g.default.Pool(this.config),b=a=>{F(`Error from idle pool client: ${a.message} %O`,a),this.options?.onPoolError?.(a)};return a.on("error",b),new I(a,this.options,async()=>{this.externalPool?this.options?.disposeExternalPool?(await this.externalPool.end(),this.externalPool=null):this.externalPool.removeListener("error",b):await a.end()})}async connectToShadowDb(){let a=await this.connect(),b=`prisma_migrate_shadow_db_${globalThis.crypto.randomUUID()}`;await a.executeScript(`CREATE DATABASE "${b}"`);let c=new g.default.Pool({...this.config,database:b});return new I(c,void 0,async()=>{await a.executeScript(`DROP DATABASE "${b}"`),await c.end()})}};d()}catch(a){d(a)}})},82161:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(91957),e=c(9666),f=c(881),g=c(28354),h=c(14642),i=c(54187),j=c(96637);class k extends j.default{constructor(a){super(),this.redis=a,this.isPipeline=!0,this.replyPending=0,this._queue=[],this._result=[],this._transactions=0,this._shaToScript={},this.isCluster="Cluster"===this.redis.constructor.name||this.redis.isCluster,this.options=a.options,Object.keys(a.scriptsSet).forEach(b=>{let c=a.scriptsSet[b];this._shaToScript[c.sha]=c,this[b]=a[b],this[b+"Buffer"]=a[b+"Buffer"]}),a.addedBuiltinSet.forEach(b=>{this[b]=a[b],this[b+"Buffer"]=a[b+"Buffer"]}),this.promise=new Promise((a,b)=>{this.resolve=a,this.reject=b});let b=this;Object.defineProperty(this,"length",{get:function(){return b._queue.length}})}fillResult(a,b){if("exec"===this._queue[b].name&&Array.isArray(a[1])){let c=a[1].length;for(let d=0;d<c;d++){if(a[1][d]instanceof Error)continue;let e=this._queue[b-(c-d)];try{a[1][d]=e.transformReply(a[1][d])}catch(b){a[1][d]=b}}}if(this._result[b]=a,--this.replyPending)return;if(this.isCluster){let a,b=!0;for(let c=0;c<this._result.length;++c){let d=this._result[c][0],f=this._queue[c];if(d){if("exec"===f.name&&"EXECABORT Transaction discarded because of previous errors."===d.message)continue;if(a){if(a.name!==d.name||a.message!==d.message){b=!1;break}}else a={name:d.name,message:d.message}}else if(!f.inTransaction&&!((0,e.exists)(f.name,{caseInsensitive:!0})&&(0,e.hasFlag)(f.name,"readonly",{nameCaseInsensitive:!0}))){b=!1;break}}if(a&&b){let b=this,c=a.message.split(" "),d=this._queue,e=!1;this._queue=[];for(let a=0;a<d.length;++a){if("ASK"===c[0]&&!e&&"asking"!==d[a].name&&(!d[a-1]||"asking"!==d[a-1].name)){let a=new h.default("asking");a.ignore=!0,this.sendCommand(a)}d[a].initPromise(),this.sendCommand(d[a]),e=d[a].inTransaction}let f=!0;void 0===this.leftRedirections&&(this.leftRedirections={});let g=function(){b.exec()},i=this.redis;if(i.handleError(a,this.leftRedirections,{moved:function(a,d){b.preferKey=d,i.slots[c[1]]?i.slots[c[1]][0]!==d&&(i.slots[c[1]]=[d]):i.slots[c[1]]=[d],i._groupsBySlot[c[1]]=i._groupsIds[i.slots[c[1]].join(";")],i.refreshSlotsCache(),b.exec()},ask:function(a,c){b.preferKey=c,b.exec()},tryagain:g,clusterDown:g,connectionClosed:g,maxRedirections:()=>{f=!1},defaults:()=>{f=!1}}),f)return}}let c=0;for(let a=0;a<this._queue.length-c;++a)this._queue[a+c].ignore&&(c+=1),this._result[a]=this._result[a+c];this.resolve(this._result.slice(0,this._result.length-c))}sendCommand(a){this._transactions>0&&(a.inTransaction=!0);let b=this._queue.length;return a.pipelineIndex=b,a.promise.then(a=>{this.fillResult([null,a],b)}).catch(a=>{this.fillResult([a],b)}),this._queue.push(a),this}addBatch(a){let b,c,d;for(let e=0;e<a.length;++e)c=(b=a[e])[0],d=b.slice(1),this[c].apply(this,d);return this}}b.default=k;let l=k.prototype.multi;k.prototype.multi=function(){return this._transactions+=1,l.apply(this,arguments)};let m=k.prototype.execBuffer;k.prototype.execBuffer=(0,g.deprecate)(function(){return this._transactions>0&&(this._transactions-=1),m.apply(this,arguments)},"Pipeline#execBuffer: Use Pipeline#exec instead"),k.prototype.exec=function(a){let b;if(this.isCluster&&!this.redis.slots.length)return"wait"===this.redis.status&&this.redis.connect().catch(i.noop),a&&!this.nodeifiedPromise&&(this.nodeifiedPromise=!0,(0,f.default)(this.promise,a)),this.redis.delayUntilReady(b=>{if(b)return void this.reject(b);this.exec(a)}),this.promise;if(this._transactions>0)return this._transactions-=1,m.apply(this,arguments);if(this.nodeifiedPromise||(this.nodeifiedPromise=!0,(0,f.default)(this.promise,a)),this._queue.length||this.resolve([]),this.isCluster){let a=[];for(let b=0;b<this._queue.length;b++){let c=this._queue[b].getKeys();if(c.length&&a.push(c[0]),c.length&&0>d.generateMulti(c))return this.reject(Error("All the keys in a pipeline command should belong to the same slot")),this.promise}if(a.length){if((b=function(a,b){let c=d(b[0]),e=a._groupsBySlot[c];for(let c=1;c<b.length;c++)if(a._groupsBySlot[d(b[c])]!==e)return -1;return c}(this.redis,a))<0)return this.reject(Error("All keys in the pipeline should belong to the same slots allocation group")),this.promise}else b=16384*Math.random()|0}let c=this;return function(){let a,d,e=c.replyPending=c._queue.length;c.isCluster&&(a={slot:b,redis:c.redis.connectionPool.nodes.all[c.preferKey]});let f="",g={isPipeline:!0,destination:c.isCluster?a:{redis:c.redis},write(a){"string"!=typeof a?(d||(d=[]),f&&(d.push(Buffer.from(f,"utf8")),f=""),d.push(a)):f+=a,--e||(d?(f&&d.push(Buffer.from(f,"utf8")),g.destination.redis.stream.write(Buffer.concat(d))):g.destination.redis.stream.write(f),e=c._queue.length,f="",d=void 0)}};for(let b=0;b<c._queue.length;++b)c.redis.sendCommand(c._queue[b],g,a);c.promise}(),this.promise}},85316:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.parseBlockOption=b.parseSecondsArgument=void 0;let c=a=>{if("number"==typeof a)return a;if(Buffer.isBuffer(a))return c(a.toString());if("string"==typeof a){let b=Number(a);return Number.isFinite(b)?b:void 0}},d=a=>"string"==typeof a?a:Buffer.isBuffer(a)?a.toString():void 0;b.parseSecondsArgument=a=>{let b=c(a);if(void 0!==b)return b<=0?0:1e3*b},b.parseBlockOption=a=>{for(let b=0;b<a.length;b++){let e=d(a[b]);if(e&&"block"===e.toLowerCase()){let d=c(a[b+1]);if(void 0===d)return;if(d<=0)return 0;return d}}return null}},87630:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.default=function(a,b){Object.getOwnPropertyNames(b.prototype).forEach(c=>{Object.defineProperty(a.prototype,c,Object.getOwnPropertyDescriptor(b.prototype,c))})}},88568:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(9666),e=c(94735),f=c(881),g=c(55058),h=c(14642),i=c(22009),j=c(15789),k=c(52580),l=c(77210),m=c(30644),n=c(24281),o=c(54187),p=c(87630),q=c(96637),r=c(77318),s=c(73380),t=(0,o.Debug)("redis");class u extends q.default{constructor(a,b,c){if(super(),this.status="wait",this.isCluster=!1,this.reconnectTimeout=null,this.connectionEpoch=0,this.retryAttempts=0,this.manuallyClosing=!1,this._autoPipelines=new Map,this._runningAutoPipelines=new Set,this.parseOptions(a,b,c),e.EventEmitter.call(this),this.resetCommandQueue(),this.resetOfflineQueue(),this.options.Connector)this.connector=new this.options.Connector(this.options);else if(this.options.sentinels){let a=new j.default(this.options);a.emitter=this,this.connector=a}else this.connector=new i.StandaloneConnector(this.options);this.options.scripts&&Object.entries(this.options.scripts).forEach(([a,b])=>{this.defineCommand(a,b)}),this.options.lazyConnect?this.setStatus("wait"):this.connect().catch(r.noop)}static createClient(...a){return new u(...a)}get autoPipelineQueueSize(){let a=0;for(let b of this._autoPipelines.values())a+=b.length;return a}connect(a){let b=new Promise((a,b)=>{if("connecting"===this.status||"connect"===this.status||"ready"===this.status)return void b(Error("Redis is already connecting/connected"));this.connectionEpoch+=1,this.setStatus("connecting");let{options:c}=this;this.condition={select:c.db,auth:c.username?[c.username,c.password]:c.password,subscriber:!1};let d=this;(0,f.default)(this.connector.connect(function(a,b){d.silentEmit(a,b)}),function(e,f){if(e){d.flushQueue(e),d.silentEmit("error",e),b(e),d.setStatus("end");return}let g=c.tls?"secureConnect":"connect";if("sentinels"in c&&c.sentinels&&!c.enableTLSForSentinelMode&&(g="connect"),d.stream=f,c.noDelay&&f.setNoDelay(!0),"number"==typeof c.keepAlive&&(f.connecting?f.once(g,()=>{f.setKeepAlive(!0,c.keepAlive)}):f.setKeepAlive(!0,c.keepAlive)),f.connecting){if(f.once(g,k.connectHandler(d)),c.connectTimeout){let a=!1;f.setTimeout(c.connectTimeout,function(){if(a)return;f.setTimeout(0),f.destroy();let b=Error("connect ETIMEDOUT");b.errorno="ETIMEDOUT",b.code="ETIMEDOUT",b.syscall="connect",k.errorHandler(d)(b)}),f.once(g,function(){a=!0,f.setTimeout(0)})}}else if(f.destroyed){let a=d.connector.firstError;a&&process.nextTick(()=>{k.errorHandler(d)(a)}),process.nextTick(k.closeHandler(d))}else process.nextTick(k.connectHandler(d));f.destroyed||(f.once("error",k.errorHandler(d)),f.once("close",k.closeHandler(d)));let h=function(){d.removeListener("close",i),a()};var i=function(){d.removeListener("ready",h),b(Error(o.CONNECTION_CLOSED_ERROR_MSG))};d.once("ready",h),d.once("close",i)})});return(0,f.default)(b,a)}disconnect(a=!1){a||(this.manuallyClosing=!0),this.reconnectTimeout&&!a&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),"wait"===this.status?k.closeHandler(this)():this.connector.disconnect()}end(){this.disconnect()}duplicate(a){return new u({...this.options,...a})}get mode(){var a;return this.options.monitor?"monitor":(null==(a=this.condition)?void 0:a.subscriber)?"subscriber":"normal"}monitor(a){let b=this.duplicate({monitor:!0,lazyConnect:!1});return(0,f.default)(new Promise(function(a,c){b.once("error",c),b.once("monitoring",function(){a(b)})}),a)}sendCommand(a,b){var c,e;if("wait"===this.status&&this.connect().catch(r.noop),"end"===this.status)return a.reject(Error(o.CONNECTION_CLOSED_ERROR_MSG)),a.promise;if((null==(c=this.condition)?void 0:c.subscriber)&&!h.default.checkFlag("VALID_IN_SUBSCRIBER_MODE",a.name))return a.reject(Error("Connection in subscriber mode, only subscriber commands may be used")),a.promise;"number"==typeof this.options.commandTimeout&&a.setTimeout(this.options.commandTimeout);let f=this.getBlockingTimeoutInMs(a),g="ready"===this.status||!b&&"connect"===this.status&&(0,d.exists)(a.name,{caseInsensitive:!0})&&((0,d.hasFlag)(a.name,"loading",{nameCaseInsensitive:!0})||h.default.checkFlag("HANDSHAKE_COMMANDS",a.name));if(this.stream&&this.stream.writable?this.stream._writableState&&this.stream._writableState.ended&&(g=!1):g=!1,g)t.enabled&&t("write command[%s]: %d -> %s(%o)",this._getDescription(),null==(e=this.condition)?void 0:e.select,a.name,a.args),b?"isPipeline"in b&&b.isPipeline?b.write(a.toWritable(b.destination.redis.stream)):b.write(a.toWritable(b)):this.stream.write(a.toWritable(this.stream)),this.commandQueue.push({command:a,stream:b,select:this.condition.select}),void 0!==f&&a.setBlockingTimeout(f),h.default.checkFlag("WILL_DISCONNECT",a.name)&&(this.manuallyClosing=!0),void 0!==this.options.socketTimeout&&void 0===this.socketTimeoutTimer&&this.setSocketTimeout();else{if(!this.options.enableOfflineQueue)return a.reject(Error("Stream isn't writeable and enableOfflineQueue options is false")),a.promise;if("quit"===a.name&&0===this.offlineQueue.length)return this.disconnect(),a.resolve(Buffer.from("OK")),a.promise;if(t.enabled&&t("queue command[%s]: %d -> %s(%o)",this._getDescription(),this.condition.select,a.name,a.args),this.offlineQueue.push({command:a,stream:b,select:this.condition.select}),h.default.checkFlag("BLOCKING_COMMANDS",a.name)){let b=this.getConfiguredBlockingTimeout();void 0!==b&&a.setBlockingTimeout(b)}}if("select"===a.name&&(0,o.isInt)(a.args[0])){let b=parseInt(a.args[0],10);this.condition.select!==b&&(this.condition.select=b,this.emit("select",b),t("switch to db [%d]",this.condition.select))}return a.promise}getBlockingTimeoutInMs(a){var b;if(!h.default.checkFlag("BLOCKING_COMMANDS",a.name))return;let c=this.getConfiguredBlockingTimeout();if(void 0===c)return;let d=a.extractBlockingTimeout();return"number"==typeof d?d>0?d+(null!=(b=this.options.blockingTimeoutGrace)?b:l.DEFAULT_REDIS_OPTIONS.blockingTimeoutGrace):c:null===d?c:void 0}getConfiguredBlockingTimeout(){if("number"==typeof this.options.blockingTimeout&&this.options.blockingTimeout>0)return this.options.blockingTimeout}setSocketTimeout(){this.socketTimeoutTimer=setTimeout(()=>{this.stream.destroy(Error(`Socket timeout. Expecting data, but didn't receive any in ${this.options.socketTimeout}ms.`)),this.socketTimeoutTimer=void 0},this.options.socketTimeout),this.stream.once("data",()=>{clearTimeout(this.socketTimeoutTimer),this.socketTimeoutTimer=void 0,0!==this.commandQueue.length&&this.setSocketTimeout()})}scanStream(a){return this.createScanStream("scan",{options:a})}scanBufferStream(a){return this.createScanStream("scanBuffer",{options:a})}sscanStream(a,b){return this.createScanStream("sscan",{key:a,options:b})}sscanBufferStream(a,b){return this.createScanStream("sscanBuffer",{key:a,options:b})}hscanStream(a,b){return this.createScanStream("hscan",{key:a,options:b})}hscanBufferStream(a,b){return this.createScanStream("hscanBuffer",{key:a,options:b})}zscanStream(a,b){return this.createScanStream("zscan",{key:a,options:b})}zscanBufferStream(a,b){return this.createScanStream("zscanBuffer",{key:a,options:b})}silentEmit(a,b){let c;if("error"!==a||(c=b,"end"!==this.status&&(!this.manuallyClosing||!(c instanceof Error)||c.message!==o.CONNECTION_CLOSED_ERROR_MSG&&"connect"!==c.syscall&&"read"!==c.syscall)))return this.listeners(a).length>0?this.emit.apply(this,arguments):(c&&c instanceof Error&&console.error("[ioredis] Unhandled error event:",c.stack),!1)}recoverFromFatalError(a,b,c){this.flushQueue(b,c),this.silentEmit("error",b),this.disconnect(!0)}handleReconnection(a,b){var c;let d=!1;switch(this.options.reconnectOnError&&!h.default.checkFlag("IGNORE_RECONNECT_ON_ERROR",b.command.name)&&(d=this.options.reconnectOnError(a)),d){case 1:case!0:"reconnecting"!==this.status&&this.disconnect(!0),b.command.reject(a);break;case 2:"reconnecting"!==this.status&&this.disconnect(!0),(null==(c=this.condition)?void 0:c.select)!==b.select&&"select"!==b.command.name&&this.select(b.select),this.sendCommand(b.command);break;default:b.command.reject(a)}}_getDescription(){let a;return a="path"in this.options&&this.options.path?this.options.path:this.stream&&this.stream.remoteAddress&&this.stream.remotePort?this.stream.remoteAddress+":"+this.stream.remotePort:"host"in this.options&&this.options.host?this.options.host+":"+this.options.port:"",this.options.connectionName&&(a+=` (${this.options.connectionName})`),a}resetCommandQueue(){this.commandQueue=new s}resetOfflineQueue(){this.offlineQueue=new s}parseOptions(...a){let b={},c=!1;for(let d=0;d<a.length;++d){let e=a[d];if(null!=e)if("object"==typeof e)(0,r.defaults)(b,e);else if("string"==typeof e)(0,r.defaults)(b,(0,o.parseURL)(e)),e.startsWith("rediss://")&&(c=!0);else if("number"==typeof e)b.port=e;else throw Error("Invalid argument "+e)}c&&(0,r.defaults)(b,{tls:!0}),(0,r.defaults)(b,u.defaultOptions),"string"==typeof b.port&&(b.port=parseInt(b.port,10)),"string"==typeof b.db&&(b.db=parseInt(b.db,10)),this.options=(0,o.resolveTLSProfile)(b)}setStatus(a,b){t.enabled&&t("status[%s]: %s -> %s",this._getDescription(),this.status||"[empty]",a),this.status=a,process.nextTick(this.emit.bind(this,a,b))}createScanStream(a,{key:b,options:c={}}){return new m.default({objectMode:!0,key:b,redis:this,command:a,...c})}flushQueue(a,b){let c;if((b=(0,r.defaults)({},b,{offlineQueue:!0,commandQueue:!0})).offlineQueue)for(;c=this.offlineQueue.shift();)c.command.reject(a);if(b.commandQueue&&this.commandQueue.length>0)for(this.stream&&this.stream.removeAllListeners("data");c=this.commandQueue.shift();)c.command.reject(a)}_readyCheck(a){let b=this;this.info(function(c,d){if(c)return c.message&&c.message.includes("NOPERM")?(console.warn(`Skipping the ready check because INFO command fails: "${c.message}". You can disable ready check with "enableReadyCheck". More: https://github.com/luin/ioredis/wiki/Disable-ready-check.`),a(null,{})):a(c);if("string"!=typeof d)return a(null,d);let e={},f=d.split("\r\n");for(let a=0;a<f.length;++a){let[b,...c]=f[a].split(":"),d=c.join(":");d&&(e[b]=d)}if(e.loading&&"0"!==e.loading){let c=1e3*(e.loading_eta_seconds||1),d=b.options.maxLoadingRetryTime&&b.options.maxLoadingRetryTime<c?b.options.maxLoadingRetryTime:c;t("Redis server still loading, trying again in "+d+"ms"),setTimeout(function(){b._readyCheck(a)},d)}else a(null,e)}).catch(r.noop)}}u.Cluster=g.default,u.Command=h.default,u.defaultOptions=l.DEFAULT_REDIS_OPTIONS,(0,p.default)(u,e.EventEmitter),(0,n.addTransactionSupport)(u.prototype),b.default=u},89070:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.genRedactedString=b.getStringValue=b.MAX_ARGUMENT_LENGTH=void 0;let d=c(59519);function e(a){if(null!==a)switch(typeof a){case"boolean":case"number":return;case"object":if(Buffer.isBuffer(a))return a.toString("hex");if(Array.isArray(a))return a.join(",");try{return JSON.stringify(a)}catch(a){return}case"string":return a}}function f(a,b){let{length:c}=a;return c<=b?a:a.slice(0,b)+' ... <REDACTED full-length="'+c+'">'}b.MAX_ARGUMENT_LENGTH=200,b.getStringValue=e,b.genRedactedString=f,b.default=function(a){let b=(0,d.default)(`ioredis:${a}`);function c(...a){if(b.enabled){for(let b=1;b<a.length;b++){let c=e(a[b]);"string"==typeof c&&c.length>200&&(a[b]=f(c,200))}return b.apply(null,a)}}return Object.defineProperties(c,{namespace:{get:()=>b.namespace},enabled:{get:()=>b.enabled},destroy:{get:()=>b.destroy},log:{get:()=>b.log,set(a){b.log=a}}}),c}},91957:a=>{var b=[0,4129,8258,12387,16516,20645,24774,28903,33032,37161,41290,45419,49548,53677,57806,61935,4657,528,12915,8786,21173,17044,29431,25302,37689,33560,45947,41818,54205,50076,62463,58334,9314,13379,1056,5121,25830,29895,17572,21637,42346,46411,34088,38153,58862,62927,50604,54669,13907,9842,5649,1584,30423,26358,22165,18100,46939,42874,38681,34616,63455,59390,55197,51132,18628,22757,26758,30887,2112,6241,10242,14371,51660,55789,59790,63919,35144,39273,43274,47403,23285,19156,31415,27286,6769,2640,14899,10770,56317,52188,64447,60318,39801,35672,47931,43802,27814,31879,19684,23749,11298,15363,3168,7233,60846,64911,52716,56781,44330,48395,36200,40265,32407,28342,24277,20212,15891,11826,7761,3696,65439,61374,57309,53244,48923,44858,40793,36728,37256,33193,45514,41451,53516,49453,61774,57711,4224,161,12482,8419,20484,16421,28742,24679,33721,37784,41979,46042,49981,54044,58239,62302,689,4752,8947,13010,16949,21012,25207,29270,46570,42443,38312,34185,62830,58703,54572,50445,13538,9411,5280,1153,29798,25671,21540,17413,42971,47098,34713,38840,59231,63358,50973,55100,9939,14066,1681,5808,26199,30326,17941,22068,55628,51565,63758,59695,39368,35305,47498,43435,22596,18533,30726,26663,6336,2273,14466,10403,52093,56156,60223,64286,35833,39896,43963,48026,19061,23124,27191,31254,2801,6864,10931,14994,64814,60687,56684,52557,48554,44427,40424,36297,31782,27655,23652,19525,15522,11395,7392,3265,61215,65342,53085,57212,44955,49082,36825,40952,28183,32310,20053,24180,11923,16050,3793,7920],c=function(a){for(var b,c=0,d=0,e=[],f=a.length;c<f;c++)(b=a.charCodeAt(c))<128?e[d++]=b:(b<2048?e[d++]=b>>6|192:((64512&b)==55296&&c+1<a.length&&(64512&a.charCodeAt(c+1))==56320?(b=65536+((1023&b)<<10)+(1023&a.charCodeAt(++c)),e[d++]=b>>18|240,e[d++]=b>>12&63|128):e[d++]=b>>12|224,e[d++]=b>>6&63|128),e[d++]=63&b|128);return e},d=a.exports=function(a){for(var d,e=0,f=-1,g=0,h=0,i="string"==typeof a?c(a):a,j=i.length;e<j;){if(d=i[e++],-1===f)123===d&&(f=e);else if(125!==d)h=b[(d^h>>8)&255]^h<<8;else if(e-1!==f)return 16383&h;g=b[(d^g>>8)&255]^g<<8}return 16383&g};a.exports.generateMulti=function(a){for(var b=1,c=a.length,e=d(a[0]);b<c;)if(d(a[b++])!==e)return -1;return e}},93293:a=>{var b=Object.prototype,c=b.hasOwnProperty,d=b.toString,e=b.propertyIsEnumerable;a.exports=function(a){var b,f,g,h,i,j,k,l;return!!(g=b=a)&&"object"==typeof g&&null!=(f=b)&&"number"==typeof(h=f.length)&&h>-1&&h%1==0&&h<=0x1fffffffffffff&&"[object Function]"!=(k=typeof(j=i=f),l=j&&("object"==k||"function"==k)?d.call(i):"")&&"[object GeneratorFunction]"!=l&&c.call(a,"callee")&&(!e.call(a,"callee")||"[object Arguments]"==d.call(a))}},93367:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.MaxRetriesPerRequestError=void 0,b.MaxRetriesPerRequestError=c(51601).default},96009:(a,b,c)=>{"use strict";c.d(b,{y:()=>S});var d,e,f,g,h=Object.defineProperty,i={};((a,b)=>{for(var c in b)h(a,c,{get:b[c],enumerable:!0})})(i,{$:()=>k,bgBlack:()=>E,bgBlue:()=>I,bgCyan:()=>K,bgGreen:()=>G,bgMagenta:()=>J,bgRed:()=>F,bgWhite:()=>L,bgYellow:()=>H,black:()=>u,blue:()=>y,bold:()=>n,cyan:()=>A,dim:()=>o,gray:()=>C,green:()=>w,grey:()=>D,hidden:()=>s,inverse:()=>r,italic:()=>p,magenta:()=>z,red:()=>v,reset:()=>m,strikethrough:()=>t,underline:()=>q,white:()=>B,yellow:()=>x});var j=!0;"undefined"!=typeof process&&({FORCE_COLOR:d,NODE_DISABLE_COLORS:e,NO_COLOR:f,TERM:g}=process.env||{},j=process.stdout&&process.stdout.isTTY);var k={enabled:!e&&null==f&&"dumb"!==g&&(null!=d&&"0"!==d||j)};function l(a,b){let c=RegExp(`\\x1b\\[${b}m`,"g"),d=`\x1b[${a}m`,e=`\x1b[${b}m`;return function(a){return k.enabled&&null!=a?d+(~(""+a).indexOf(e)?a.replace(c,e+d):a)+e:a}}var m=l(0,0),n=l(1,22),o=l(2,22),p=l(3,23),q=l(4,24),r=l(7,27),s=l(8,28),t=l(9,29),u=l(30,39),v=l(31,39),w=l(32,39),x=l(33,39),y=l(34,39),z=l(35,39),A=l(36,39),B=l(37,39),C=l(90,39),D=l(90,39),E=l(40,49),F=l(41,49),G=l(42,49),H=l(43,49),I=l(44,49),J=l(45,49),K=l(46,49),L=l(47,49),M=["green","yellow","blue","magenta","cyan","red"],N=[],O=Date.now(),P=0,Q="undefined"!=typeof process?process.env:{};globalThis.DEBUG??=Q.DEBUG??"",globalThis.DEBUG_COLORS??=!Q.DEBUG_COLORS||"true"===Q.DEBUG_COLORS;var R={enable(a){"string"==typeof a&&(globalThis.DEBUG=a)},disable(){let a=globalThis.DEBUG;return globalThis.DEBUG="",a},enabled(a){let b=globalThis.DEBUG.split(",").map(a=>a.replace(/[.+?^${}()|[\]\\]/g,"\\$&")),c=b.some(b=>""!==b&&"-"!==b[0]&&a.match(RegExp(b.split("*").join(".*")+"$"))),d=b.some(b=>""!==b&&"-"===b[0]&&a.match(RegExp(b.slice(1).split("*").join(".*")+"$")));return c&&!d},log:(...a)=>{let[b,c,...d]=a;(console.warn??console.log)(`${b} ${c}`,...d)},formatters:{}},S=new Proxy(function(a){let b={color:M[P++%M.length],enabled:R.enabled(a),namespace:a,log:R.log,extend:()=>{}};return new Proxy((...a)=>{let{enabled:c,namespace:d,color:e,log:f}=b;if(0!==a.length&&N.push([d,...a]),N.length>100&&N.shift(),R.enabled(d)||c){let b=a.map(a=>"string"==typeof a?a:function(a,b=2){let c=new Set;return JSON.stringify(a,(a,b)=>{if("object"==typeof b&&null!==b){if(c.has(b))return"[Circular *]";c.add(b)}else if("bigint"==typeof b)return b.toString();return b},b)}(a)),c=`+${Date.now()-O}ms`;O=Date.now(),globalThis.DEBUG_COLORS?f(i[e](n(d)),...b,i[e](c)):f(d,...b,c)}},{get:(a,c)=>b[c],set:(a,c,d)=>b[c]=d})},{get:(a,b)=>R[b],set:(a,b,c)=>R[b]=c})},96637:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(9666),e=c(27509),f=c(14642),g=c(12590);class h{constructor(){this.options={},this.scriptsSet={},this.addedBuiltinSet=new Set}getBuiltinCommands(){return i.slice(0)}createBuiltinCommand(a){return{string:j(null,a,"utf8"),buffer:j(null,a,null)}}addBuiltinCommand(a){this.addedBuiltinSet.add(a),this[a]=j(a,a,"utf8"),this[a+"Buffer"]=j(a+"Buffer",a,null)}defineCommand(a,b){let c=new g.default(b.lua,b.numberOfKeys,this.options.keyPrefix,b.readOnly);this.scriptsSet[a]=c,this[a]=k(a,a,c,"utf8"),this[a+"Buffer"]=k(a+"Buffer",a,c,null)}sendCommand(a,b,c){throw Error('"sendCommand" is not implemented')}}let i=d.list.filter(a=>"monitor"!==a);function j(a,b,c){return void 0===c&&(c=b,b=null),function(...d){let g=b||d.shift(),h=d[d.length-1];"function"==typeof h?d.pop():h=void 0;let i={errorStack:this.options.showFriendlyErrorStack?Error():void 0,keyPrefix:this.options.keyPrefix,replyEncoding:c};return(0,e.shouldUseAutoPipelining)(this,a,g)?(0,e.executeWithAutoPipelining)(this,a,g,d,h):this.sendCommand(new f.default(g,d,i,h))}}function k(a,b,c,d){return function(...f){let g="function"==typeof f[f.length-1]?f.pop():void 0,h={replyEncoding:d};return(this.options.showFriendlyErrorStack&&(h.errorStack=Error()),(0,e.shouldUseAutoPipelining)(this,a,b))?(0,e.executeWithAutoPipelining)(this,a,b,f,g):c.execute(this,f,h,g)}}i.push("sentinel"),i.forEach(function(a){h.prototype[a]=j(a,a,"utf8"),h.prototype[a+"Buffer"]=j(a+"Buffer",a,null)}),h.prototype.call=j("call","utf8"),h.prototype.callBuffer=j("callBuffer",null),h.prototype.send_command=h.prototype.call,b.default=h},97494:(a,b,c)=>{"use strict";c.d(b,{m3:()=>i});var d=c(76760),e=c(73136),f=c(26849);let g={previewFeatures:[],clientVersion:"7.3.0",engineVersion:"9d6ad21cbbceab97458517b147a6a09ff43aa735",activeProvider:"postgresql",inlineSchema:'// prisma/schema.prisma\n\ngenerator client {\n provider = "prisma-client"\n output = "../src/generated/prisma"\n}\n\ndatasource db {\n provider = "postgresql"\n relationMode = "prisma" // Relations managed by Prisma, no DB-level foreign key constraints\n}\n\n// Tenant\nmodel Company {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n name String\n // Email domain matching (used to identify Company during login)\n emailDomains String[] @default([]) // e.g., ["example.com", "example.org"]\n // OIDC configuration (per-Company login, PKCE only, no Client Secret)\n oidcIssuer String? // OIDC Provider URL\n oidcClientId String? // Client ID\n oidcEnabled Boolean @default(false)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n users User[]\n agents Agent[]\n apiKeys ApiKey[]\n projects Project[]\n ideas Idea[]\n documents Document[]\n tasks Task[]\n proposals Proposal[]\n activities Activity[]\n comments Comment[]\n sessions AgentSession[]\n}\n\n// User (human, OIDC login)\nmodel User {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n oidcSub String // OIDC subject\n email String?\n name String?\n avatarUrl String?\n createdAt DateTime @default(now())\n\n ownedAgents Agent[]\n\n @@unique([companyUuid, oidcSub])\n @@index([companyUuid])\n}\n\n// Agent (e.g., Claude Code)\nmodel Agent {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n name String\n roles String[] @default(["developer"]) // pm | developer (multi-select)\n permissions String[] @default([]) // Custom permission bits (resource:action); merged with role presets at auth time\n // Agent persona definition (Zero Context Injection)\n persona String? // Custom persona description (brief)\n systemPrompt String? // Full system prompt (optional, overrides default template)\n ownerUuid String? // User\'s UUID\n owner User? @relation(fields: [ownerUuid], references: [uuid])\n lastActiveAt DateTime?\n createdAt DateTime @default(now())\n\n apiKeys ApiKey[]\n sessions AgentSession[]\n\n @@index([companyUuid])\n @@index([ownerUuid])\n}\n\n// API Key (independently managed, supports rotation and revocation)\nmodel ApiKey {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n agentUuid String // Agent\'s UUID\n agent Agent @relation(fields: [agentUuid], references: [uuid], onDelete: Cascade)\n keyHash String @unique // API Key stored as hash\n keyPrefix String // Key prefix for display (e.g., "cho_xxx...")\n name String? // Optional descriptive name\n lastUsed DateTime?\n expiresAt DateTime?\n revokedAt DateTime?\n createdAt DateTime @default(now())\n\n @@index([companyUuid])\n @@index([agentUuid])\n}\n\n// Project Group (single-level grouping of projects)\nmodel ProjectGroup {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n name String\n description String? @default("")\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([companyUuid])\n}\n\n// Project\nmodel Project {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n name String\n description String?\n groupUuid String? // nullable FK → ProjectGroup.uuid\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n ideas Idea[]\n documents Document[]\n tasks Task[]\n proposals Proposal[]\n activities Activity[]\n\n @@index([companyUuid])\n @@index([groupUuid])\n}\n\n// Idea (raw human input)\nmodel Idea {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n projectUuid String\n project Project @relation(fields: [projectUuid], references: [uuid], onDelete: Cascade)\n title String\n content String? // Text content\n attachments Json? // Attachment list [{type, url, name}]\n // Status and assignment (ARCHITECTURE.md \xa77.3)\n status String @default("open") // open | elaborating | elaborated (3-state model; post-elaboration status derived from Proposal+Task)\n assigneeType String? // user | agent\n assigneeUuid String? // User or Agent UUID (polymorphic)\n assignedAt DateTime? // Assignment timestamp\n assignedByUuid String? // User UUID (human assignment)\n // Elaboration (AI-DLC Stage 3 — structured requirements clarification)\n elaborationDepth String? // "minimal" | "standard" | "comprehensive"\n elaborationStatus String? // "pending_answers" | "validating" | "resolved"\n createdByUuid String // User UUID\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([companyUuid])\n @@index([projectUuid])\n @@index([status])\n @@index([assigneeUuid])\n}\n\n// Document (PRD, tech design, etc. — Proposal output)\nmodel Document {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n projectUuid String\n project Project @relation(fields: [projectUuid], references: [uuid], onDelete: Cascade)\n type String // prd | tech_design | adr | ...\n title String\n content String? // Markdown content\n version Int @default(1)\n proposalUuid String? // Source Proposal UUID (traceable)\n createdByUuid String // User or Agent UUID\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([companyUuid])\n @@index([projectUuid])\n @@index([proposalUuid])\n}\n\n// Task (Proposal output or manually created)\nmodel Task {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n projectUuid String\n project Project @relation(fields: [projectUuid], references: [uuid], onDelete: Cascade)\n title String\n description String?\n // Status and assignment (ARCHITECTURE.md \xa77.2)\n status String @default("open") // open | assigned | in_progress | to_verify | done | closed\n priority String @default("medium") // low | medium | high\n storyPoints Float? // Effort estimate (unit: Agent hours)\n acceptanceCriteria String? // Acceptance criteria (Markdown)\n assigneeType String? // user | agent\n assigneeUuid String? // User or Agent UUID (polymorphic)\n assignedAt DateTime? // Assignment timestamp\n assignedByUuid String? // User UUID (human assignment)\n proposalUuid String? // Source Proposal UUID (traceable, optional)\n createdByUuid String // User or Agent UUID\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n // Task dependencies (DAG)\n dependsOn TaskDependency[] @relation("taskDependencies")\n dependedBy TaskDependency[] @relation("taskDependedBy")\n // Session checkins\n sessionCheckins SessionTaskCheckin[]\n // Structured acceptance criteria (independent table)\n acceptanceCriteriaItems AcceptanceCriterion[]\n\n @@index([companyUuid])\n @@index([projectUuid])\n @@index([proposalUuid])\n @@index([assigneeUuid])\n @@index([status])\n}\n\n// Task dependency (DAG edge)\nmodel TaskDependency {\n id Int @id @default(autoincrement())\n taskUuid String\n dependsOnUuid String\n task Task @relation("taskDependencies", fields: [taskUuid], references: [uuid], onDelete: Cascade)\n dependsOn Task @relation("taskDependedBy", fields: [dependsOnUuid], references: [uuid], onDelete: Cascade)\n createdAt DateTime @default(now())\n\n @@unique([taskUuid, dependsOnUuid])\n @@index([taskUuid])\n @@index([dependsOnUuid])\n}\n\n// Acceptance Criterion (independent table — per-row atomic updates, no concurrent write conflicts)\nmodel AcceptanceCriterion {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n taskUuid String\n task Task @relation(fields: [taskUuid], references: [uuid], onDelete: Cascade)\n description String\n required Boolean @default(true)\n // Dev self-check (developer fills during work)\n devStatus String @default("pending") // pending | passed | failed\n devEvidence String?\n devMarkedByType String? // "user" | "agent"\n devMarkedBy String? // UUID of marker\n devMarkedAt DateTime?\n // Admin verification (admin/user fills during verify)\n status String @default("pending") // pending | passed | failed\n evidence String?\n markedByType String? // "user" | "agent"\n markedBy String? // UUID of marker\n markedAt DateTime?\n sortOrder Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([taskUuid])\n}\n\n// Proposal (container model: created by Agent/human, approved by human, contains document drafts and task drafts)\nmodel Proposal {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n projectUuid String\n project Project @relation(fields: [projectUuid], references: [uuid], onDelete: Cascade)\n title String\n description String?\n\n // Input source (what the Proposal is based on)\n inputType String // idea | document\n inputUuids Json // Array of UUID strings\n\n // Container contents (can include both documents and tasks)\n documentDrafts Json? // Document draft list [{type, title, content}]\n taskDrafts Json? // Task draft list [{title, description, storyPoints, priority, acceptanceCriteria}]\n\n // Status and approval\n status String @default("draft") // draft | pending | approved | rejected | revised\n createdByUuid String // Agent or User UUID\n createdByType String @default("agent") // agent | user\n reviewedByUuid String? // User UUID\n reviewNote String? // Review note\n reviewedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([companyUuid])\n @@index([projectUuid])\n @@index([status])\n}\n\n// Comment (can comment on Idea, Proposal, Task, Document)\nmodel Comment {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n targetType String // idea | proposal | task | document\n targetUuid String // UUID of target entity (idea/proposal/task/document)\n content String\n authorType String // user | agent\n authorUuid String // User or Agent UUID\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([companyUuid])\n @@index([targetType, targetUuid])\n}\n\n// Activity stream (project-level) — generic design\nmodel Activity {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n projectUuid String\n project Project @relation(fields: [projectUuid], references: [uuid], onDelete: Cascade)\n // Target entity (generic design)\n targetType String // idea | task | proposal | document\n targetUuid String // Target entity UUID\n // Action info\n actorType String // user | agent\n actorUuid String // Actor UUID\n action String // created | assigned | released | status_changed | submitted | approved | rejected | comment_added\n value Json? // Action result value (e.g., new status, assignment target info)\n // Session attribution (denormalized to avoid joins)\n sessionUuid String?\n sessionName String?\n createdAt DateTime @default(now())\n\n @@index([companyUuid])\n @@index([projectUuid])\n @@index([targetType, targetUuid])\n @@index([createdAt])\n}\n\n// Agent Session (sub-session for swarm mode observability)\nmodel AgentSession {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n agentUuid String\n agent Agent @relation(fields: [agentUuid], references: [uuid], onDelete: Cascade)\n name String\n description String?\n status String @default("active") // active | inactive | closed\n lastActiveAt DateTime @default(now())\n expiresAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n taskCheckins SessionTaskCheckin[]\n\n @@index([companyUuid])\n @@index([agentUuid])\n @@index([status])\n}\n\n// Session-Task checkin relation (many-to-many)\nmodel SessionTaskCheckin {\n id Int @id @default(autoincrement())\n sessionUuid String\n session AgentSession @relation(fields: [sessionUuid], references: [uuid], onDelete: Cascade)\n taskUuid String\n task Task @relation(fields: [taskUuid], references: [uuid], onDelete: Cascade)\n checkinAt DateTime @default(now())\n checkoutAt DateTime?\n\n @@unique([sessionUuid, taskUuid])\n @@index([sessionUuid])\n @@index([taskUuid])\n}\n\n// Notification\nmodel Notification {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n projectUuid String\n // Recipient (polymorphic: user | agent)\n recipientType String // user | agent\n recipientUuid String\n // Related entity\n entityType String // task | idea | proposal | document | comment\n entityUuid String\n entityTitle String // Denormalized to avoid joins\n projectName String // Denormalized for project badge UI\n // Action info\n action String // assigned | status_changed | verified | reopened | submitted | approved | rejected | claimed | comment_added\n message String // Human-readable message\n actorType String // user | agent\n actorUuid String\n actorName String // Denormalized to avoid joins\n // Status\n readAt DateTime?\n archivedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([recipientType, recipientUuid, readAt])\n @@index([companyUuid, recipientUuid])\n @@index([entityType, entityUuid])\n @@index([projectUuid])\n}\n\n// Notification preferences\nmodel NotificationPreference {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n ownerType String // user | agent\n ownerUuid String\n // Toggle for each notification type (all enabled by default)\n taskAssigned Boolean @default(true)\n taskStatusChanged Boolean @default(true)\n taskVerified Boolean @default(true)\n taskReopened Boolean @default(true)\n proposalSubmitted Boolean @default(true)\n proposalApproved Boolean @default(true)\n proposalRejected Boolean @default(true)\n ideaClaimed Boolean @default(true)\n commentAdded Boolean @default(true)\n elaborationRequested Boolean @default(true)\n elaborationAnswered Boolean @default(true)\n mentioned Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([ownerType, ownerUuid])\n @@index([companyUuid])\n}\n\n// Mention (tracks @mentions in comments, tasks, ideas)\nmodel Mention {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n // Source: where the mention occurred\n sourceType String // comment | task | idea\n sourceUuid String // UUID of the comment, task, or idea\n // Target: who was mentioned\n mentionedType String // user | agent\n mentionedUuid String\n // Actor: who wrote the mention\n actorType String // user | agent\n actorUuid String\n createdAt DateTime @default(now())\n\n @@index([companyUuid])\n @@index([mentionedType, mentionedUuid])\n @@index([sourceType, sourceUuid])\n}\n\n// Elaboration Round (AI-DLC Stage 3 — structured requirements clarification)\nmodel ElaborationRound {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n ideaUuid String\n roundNumber Int\n status String @default("pending_answers") // pending_answers | answered | validated | needs_followup\n createdByType String // agent | user\n createdByUuid String\n validatedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n questions ElaborationQuestion[]\n\n @@index([ideaUuid])\n @@index([companyUuid])\n}\n\n// Elaboration Question (individual Q&A item within a round)\nmodel ElaborationQuestion {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n roundUuid String\n round ElaborationRound @relation(fields: [roundUuid], references: [uuid], onDelete: Cascade)\n questionId String // Round-scoped ID: "q1", "q2", etc.\n text String\n category String // functional | non_functional | business_context | technical_context | user_scenario | scope\n options Json // [{id, label, description?}] — 2-5 options\n required Boolean @default(true)\n // Answer (null = unanswered)\n selectedOptionId String?\n customText String?\n answeredAt DateTime?\n answeredByType String? // user | agent\n answeredByUuid String?\n // Validation issue (null = no issue)\n issueType String? // contradiction | ambiguity | incomplete\n issueDescription String?\n\n @@unique([roundUuid, questionId])\n @@index([roundUuid])\n}\n',runtimeDataModel:{models:{},enums:{},types:{}}};async function h(a){let{Buffer:b}=await Promise.resolve().then(c.t.bind(c,4573,23)),d=b.from(a,"base64");return new WebAssembly.Module(d)}g.runtimeDataModel=JSON.parse('{"models":{"Company":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"name","kind":"scalar","type":"String"},{"name":"emailDomains","kind":"scalar","type":"String"},{"name":"oidcIssuer","kind":"scalar","type":"String"},{"name":"oidcClientId","kind":"scalar","type":"String"},{"name":"oidcEnabled","kind":"scalar","type":"Boolean"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"users","kind":"object","type":"User","relationName":"CompanyToUser"},{"name":"agents","kind":"object","type":"Agent","relationName":"AgentToCompany"},{"name":"apiKeys","kind":"object","type":"ApiKey","relationName":"ApiKeyToCompany"},{"name":"projects","kind":"object","type":"Project","relationName":"CompanyToProject"},{"name":"ideas","kind":"object","type":"Idea","relationName":"CompanyToIdea"},{"name":"documents","kind":"object","type":"Document","relationName":"CompanyToDocument"},{"name":"tasks","kind":"object","type":"Task","relationName":"CompanyToTask"},{"name":"proposals","kind":"object","type":"Proposal","relationName":"CompanyToProposal"},{"name":"activities","kind":"object","type":"Activity","relationName":"ActivityToCompany"},{"name":"comments","kind":"object","type":"Comment","relationName":"CommentToCompany"},{"name":"sessions","kind":"object","type":"AgentSession","relationName":"AgentSessionToCompany"}],"dbName":null},"User":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CompanyToUser"},{"name":"oidcSub","kind":"scalar","type":"String"},{"name":"email","kind":"scalar","type":"String"},{"name":"name","kind":"scalar","type":"String"},{"name":"avatarUrl","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"ownedAgents","kind":"object","type":"Agent","relationName":"AgentToUser"}],"dbName":null},"Agent":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"AgentToCompany"},{"name":"name","kind":"scalar","type":"String"},{"name":"roles","kind":"scalar","type":"String"},{"name":"permissions","kind":"scalar","type":"String"},{"name":"persona","kind":"scalar","type":"String"},{"name":"systemPrompt","kind":"scalar","type":"String"},{"name":"ownerUuid","kind":"scalar","type":"String"},{"name":"owner","kind":"object","type":"User","relationName":"AgentToUser"},{"name":"lastActiveAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"apiKeys","kind":"object","type":"ApiKey","relationName":"AgentToApiKey"},{"name":"sessions","kind":"object","type":"AgentSession","relationName":"AgentToAgentSession"}],"dbName":null},"ApiKey":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"ApiKeyToCompany"},{"name":"agentUuid","kind":"scalar","type":"String"},{"name":"agent","kind":"object","type":"Agent","relationName":"AgentToApiKey"},{"name":"keyHash","kind":"scalar","type":"String"},{"name":"keyPrefix","kind":"scalar","type":"String"},{"name":"name","kind":"scalar","type":"String"},{"name":"lastUsed","kind":"scalar","type":"DateTime"},{"name":"expiresAt","kind":"scalar","type":"DateTime"},{"name":"revokedAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"}],"dbName":null},"ProjectGroup":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"name","kind":"scalar","type":"String"},{"name":"description","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Project":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CompanyToProject"},{"name":"name","kind":"scalar","type":"String"},{"name":"description","kind":"scalar","type":"String"},{"name":"groupUuid","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"ideas","kind":"object","type":"Idea","relationName":"IdeaToProject"},{"name":"documents","kind":"object","type":"Document","relationName":"DocumentToProject"},{"name":"tasks","kind":"object","type":"Task","relationName":"ProjectToTask"},{"name":"proposals","kind":"object","type":"Proposal","relationName":"ProjectToProposal"},{"name":"activities","kind":"object","type":"Activity","relationName":"ActivityToProject"}],"dbName":null},"Idea":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CompanyToIdea"},{"name":"projectUuid","kind":"scalar","type":"String"},{"name":"project","kind":"object","type":"Project","relationName":"IdeaToProject"},{"name":"title","kind":"scalar","type":"String"},{"name":"content","kind":"scalar","type":"String"},{"name":"attachments","kind":"scalar","type":"Json"},{"name":"status","kind":"scalar","type":"String"},{"name":"assigneeType","kind":"scalar","type":"String"},{"name":"assigneeUuid","kind":"scalar","type":"String"},{"name":"assignedAt","kind":"scalar","type":"DateTime"},{"name":"assignedByUuid","kind":"scalar","type":"String"},{"name":"elaborationDepth","kind":"scalar","type":"String"},{"name":"elaborationStatus","kind":"scalar","type":"String"},{"name":"createdByUuid","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Document":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CompanyToDocument"},{"name":"projectUuid","kind":"scalar","type":"String"},{"name":"project","kind":"object","type":"Project","relationName":"DocumentToProject"},{"name":"type","kind":"scalar","type":"String"},{"name":"title","kind":"scalar","type":"String"},{"name":"content","kind":"scalar","type":"String"},{"name":"version","kind":"scalar","type":"Int"},{"name":"proposalUuid","kind":"scalar","type":"String"},{"name":"createdByUuid","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Task":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CompanyToTask"},{"name":"projectUuid","kind":"scalar","type":"String"},{"name":"project","kind":"object","type":"Project","relationName":"ProjectToTask"},{"name":"title","kind":"scalar","type":"String"},{"name":"description","kind":"scalar","type":"String"},{"name":"status","kind":"scalar","type":"String"},{"name":"priority","kind":"scalar","type":"String"},{"name":"storyPoints","kind":"scalar","type":"Float"},{"name":"acceptanceCriteria","kind":"scalar","type":"String"},{"name":"assigneeType","kind":"scalar","type":"String"},{"name":"assigneeUuid","kind":"scalar","type":"String"},{"name":"assignedAt","kind":"scalar","type":"DateTime"},{"name":"assignedByUuid","kind":"scalar","type":"String"},{"name":"proposalUuid","kind":"scalar","type":"String"},{"name":"createdByUuid","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"dependsOn","kind":"object","type":"TaskDependency","relationName":"taskDependencies"},{"name":"dependedBy","kind":"object","type":"TaskDependency","relationName":"taskDependedBy"},{"name":"sessionCheckins","kind":"object","type":"SessionTaskCheckin","relationName":"SessionTaskCheckinToTask"},{"name":"acceptanceCriteriaItems","kind":"object","type":"AcceptanceCriterion","relationName":"AcceptanceCriterionToTask"}],"dbName":null},"TaskDependency":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"taskUuid","kind":"scalar","type":"String"},{"name":"dependsOnUuid","kind":"scalar","type":"String"},{"name":"task","kind":"object","type":"Task","relationName":"taskDependencies"},{"name":"dependsOn","kind":"object","type":"Task","relationName":"taskDependedBy"},{"name":"createdAt","kind":"scalar","type":"DateTime"}],"dbName":null},"AcceptanceCriterion":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"taskUuid","kind":"scalar","type":"String"},{"name":"task","kind":"object","type":"Task","relationName":"AcceptanceCriterionToTask"},{"name":"description","kind":"scalar","type":"String"},{"name":"required","kind":"scalar","type":"Boolean"},{"name":"devStatus","kind":"scalar","type":"String"},{"name":"devEvidence","kind":"scalar","type":"String"},{"name":"devMarkedByType","kind":"scalar","type":"String"},{"name":"devMarkedBy","kind":"scalar","type":"String"},{"name":"devMarkedAt","kind":"scalar","type":"DateTime"},{"name":"status","kind":"scalar","type":"String"},{"name":"evidence","kind":"scalar","type":"String"},{"name":"markedByType","kind":"scalar","type":"String"},{"name":"markedBy","kind":"scalar","type":"String"},{"name":"markedAt","kind":"scalar","type":"DateTime"},{"name":"sortOrder","kind":"scalar","type":"Int"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Proposal":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CompanyToProposal"},{"name":"projectUuid","kind":"scalar","type":"String"},{"name":"project","kind":"object","type":"Project","relationName":"ProjectToProposal"},{"name":"title","kind":"scalar","type":"String"},{"name":"description","kind":"scalar","type":"String"},{"name":"inputType","kind":"scalar","type":"String"},{"name":"inputUuids","kind":"scalar","type":"Json"},{"name":"documentDrafts","kind":"scalar","type":"Json"},{"name":"taskDrafts","kind":"scalar","type":"Json"},{"name":"status","kind":"scalar","type":"String"},{"name":"createdByUuid","kind":"scalar","type":"String"},{"name":"createdByType","kind":"scalar","type":"String"},{"name":"reviewedByUuid","kind":"scalar","type":"String"},{"name":"reviewNote","kind":"scalar","type":"String"},{"name":"reviewedAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Comment":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CommentToCompany"},{"name":"targetType","kind":"scalar","type":"String"},{"name":"targetUuid","kind":"scalar","type":"String"},{"name":"content","kind":"scalar","type":"String"},{"name":"authorType","kind":"scalar","type":"String"},{"name":"authorUuid","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Activity":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"ActivityToCompany"},{"name":"projectUuid","kind":"scalar","type":"String"},{"name":"project","kind":"object","type":"Project","relationName":"ActivityToProject"},{"name":"targetType","kind":"scalar","type":"String"},{"name":"targetUuid","kind":"scalar","type":"String"},{"name":"actorType","kind":"scalar","type":"String"},{"name":"actorUuid","kind":"scalar","type":"String"},{"name":"action","kind":"scalar","type":"String"},{"name":"value","kind":"scalar","type":"Json"},{"name":"sessionUuid","kind":"scalar","type":"String"},{"name":"sessionName","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"}],"dbName":null},"AgentSession":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"AgentSessionToCompany"},{"name":"agentUuid","kind":"scalar","type":"String"},{"name":"agent","kind":"object","type":"Agent","relationName":"AgentToAgentSession"},{"name":"name","kind":"scalar","type":"String"},{"name":"description","kind":"scalar","type":"String"},{"name":"status","kind":"scalar","type":"String"},{"name":"lastActiveAt","kind":"scalar","type":"DateTime"},{"name":"expiresAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"taskCheckins","kind":"object","type":"SessionTaskCheckin","relationName":"AgentSessionToSessionTaskCheckin"}],"dbName":null},"SessionTaskCheckin":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"sessionUuid","kind":"scalar","type":"String"},{"name":"session","kind":"object","type":"AgentSession","relationName":"AgentSessionToSessionTaskCheckin"},{"name":"taskUuid","kind":"scalar","type":"String"},{"name":"task","kind":"object","type":"Task","relationName":"SessionTaskCheckinToTask"},{"name":"checkinAt","kind":"scalar","type":"DateTime"},{"name":"checkoutAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Notification":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"projectUuid","kind":"scalar","type":"String"},{"name":"recipientType","kind":"scalar","type":"String"},{"name":"recipientUuid","kind":"scalar","type":"String"},{"name":"entityType","kind":"scalar","type":"String"},{"name":"entityUuid","kind":"scalar","type":"String"},{"name":"entityTitle","kind":"scalar","type":"String"},{"name":"projectName","kind":"scalar","type":"String"},{"name":"action","kind":"scalar","type":"String"},{"name":"message","kind":"scalar","type":"String"},{"name":"actorType","kind":"scalar","type":"String"},{"name":"actorUuid","kind":"scalar","type":"String"},{"name":"actorName","kind":"scalar","type":"String"},{"name":"readAt","kind":"scalar","type":"DateTime"},{"name":"archivedAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"NotificationPreference":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"ownerType","kind":"scalar","type":"String"},{"name":"ownerUuid","kind":"scalar","type":"String"},{"name":"taskAssigned","kind":"scalar","type":"Boolean"},{"name":"taskStatusChanged","kind":"scalar","type":"Boolean"},{"name":"taskVerified","kind":"scalar","type":"Boolean"},{"name":"taskReopened","kind":"scalar","type":"Boolean"},{"name":"proposalSubmitted","kind":"scalar","type":"Boolean"},{"name":"proposalApproved","kind":"scalar","type":"Boolean"},{"name":"proposalRejected","kind":"scalar","type":"Boolean"},{"name":"ideaClaimed","kind":"scalar","type":"Boolean"},{"name":"commentAdded","kind":"scalar","type":"Boolean"},{"name":"elaborationRequested","kind":"scalar","type":"Boolean"},{"name":"elaborationAnswered","kind":"scalar","type":"Boolean"},{"name":"mentioned","kind":"scalar","type":"Boolean"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Mention":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"sourceType","kind":"scalar","type":"String"},{"name":"sourceUuid","kind":"scalar","type":"String"},{"name":"mentionedType","kind":"scalar","type":"String"},{"name":"mentionedUuid","kind":"scalar","type":"String"},{"name":"actorType","kind":"scalar","type":"String"},{"name":"actorUuid","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"}],"dbName":null},"ElaborationRound":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"ideaUuid","kind":"scalar","type":"String"},{"name":"roundNumber","kind":"scalar","type":"Int"},{"name":"status","kind":"scalar","type":"String"},{"name":"createdByType","kind":"scalar","type":"String"},{"name":"createdByUuid","kind":"scalar","type":"String"},{"name":"validatedAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"questions","kind":"object","type":"ElaborationQuestion","relationName":"ElaborationQuestionToElaborationRound"}],"dbName":null},"ElaborationQuestion":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"roundUuid","kind":"scalar","type":"String"},{"name":"round","kind":"object","type":"ElaborationRound","relationName":"ElaborationQuestionToElaborationRound"},{"name":"questionId","kind":"scalar","type":"String"},{"name":"text","kind":"scalar","type":"String"},{"name":"category","kind":"scalar","type":"String"},{"name":"options","kind":"scalar","type":"Json"},{"name":"required","kind":"scalar","type":"Boolean"},{"name":"selectedOptionId","kind":"scalar","type":"String"},{"name":"customText","kind":"scalar","type":"String"},{"name":"answeredAt","kind":"scalar","type":"DateTime"},{"name":"answeredByType","kind":"scalar","type":"String"},{"name":"answeredByUuid","kind":"scalar","type":"String"},{"name":"issueType","kind":"scalar","type":"String"},{"name":"issueDescription","kind":"scalar","type":"String"}],"dbName":null}},"enums":{},"types":{}}'),g.compilerWasm={getRuntime:async()=>await Promise.resolve().then(c.bind(c,75811)),getQueryCompilerWasmModule:async()=>{let{wasm:a}=await Promise.resolve().then(c.bind(c,44865));return await h(a)},importName:"./query_compiler_fast_bg.js"},f.PrismaClientKnownRequestError,f.PrismaClientUnknownRequestError,f.PrismaClientRustPanicError,f.PrismaClientInitializationError,f.PrismaClientValidationError,f.sqltag,f.empty,f.join,f.raw,f.Sql,f.Decimal,f.Extensions.getExtensionContext,f.NullTypes.DbNull,f.NullTypes.JsonNull,f.NullTypes.AnyNull,f.DbNull,f.JsonNull,f.AnyNull,f.makeStrictEnum({ReadUncommitted:"ReadUncommitted",ReadCommitted:"ReadCommitted",RepeatableRead:"RepeatableRead",Serializable:"Serializable"}),f.Extensions.defineExtension,globalThis.__dirname=d.dirname((0,e.fileURLToPath)("file:///home/ubuntu/dev/ai-pm/src/generated/prisma/client.ts"));let i=f.getPrismaClient(g)}};
139
+ -----END CERTIFICATE-----`;b.default={RedisCloudFixed:{ca:c},RedisCloudFlexible:{ca:c}}},39176:a=>{"use strict";a.exports=JSON.parse('{"acl":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"append":{"arity":3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"asking":{"arity":1,"flags":["fast"],"keyStart":0,"keyStop":0,"step":0},"auth":{"arity":-2,"flags":["noscript","loading","stale","fast","no_auth","allow_busy"],"keyStart":0,"keyStop":0,"step":0},"bgrewriteaof":{"arity":1,"flags":["admin","noscript","no_async_loading"],"keyStart":0,"keyStop":0,"step":0},"bgsave":{"arity":-1,"flags":["admin","noscript","no_async_loading"],"keyStart":0,"keyStop":0,"step":0},"bitcount":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"bitfield":{"arity":-2,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"bitfield_ro":{"arity":-2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"bitop":{"arity":-4,"flags":["write","denyoom"],"keyStart":2,"keyStop":-1,"step":1},"bitpos":{"arity":-3,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"blmove":{"arity":6,"flags":["write","denyoom","noscript","blocking"],"keyStart":1,"keyStop":2,"step":1},"blmpop":{"arity":-5,"flags":["write","blocking","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"blpop":{"arity":-3,"flags":["write","noscript","blocking"],"keyStart":1,"keyStop":-2,"step":1},"brpop":{"arity":-3,"flags":["write","noscript","blocking"],"keyStart":1,"keyStop":-2,"step":1},"brpoplpush":{"arity":4,"flags":["write","denyoom","noscript","blocking"],"keyStart":1,"keyStop":2,"step":1},"bzmpop":{"arity":-5,"flags":["write","blocking","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"bzpopmax":{"arity":-3,"flags":["write","noscript","blocking","fast"],"keyStart":1,"keyStop":-2,"step":1},"bzpopmin":{"arity":-3,"flags":["write","noscript","blocking","fast"],"keyStart":1,"keyStop":-2,"step":1},"client":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"cluster":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"command":{"arity":-1,"flags":["loading","stale"],"keyStart":0,"keyStop":0,"step":0},"config":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"copy":{"arity":-3,"flags":["write","denyoom"],"keyStart":1,"keyStop":2,"step":1},"dbsize":{"arity":1,"flags":["readonly","fast"],"keyStart":0,"keyStop":0,"step":0},"debug":{"arity":-2,"flags":["admin","noscript","loading","stale"],"keyStart":0,"keyStop":0,"step":0},"decr":{"arity":2,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"decrby":{"arity":3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"del":{"arity":-2,"flags":["write"],"keyStart":1,"keyStop":-1,"step":1},"discard":{"arity":1,"flags":["noscript","loading","stale","fast","allow_busy"],"keyStart":0,"keyStop":0,"step":0},"dump":{"arity":2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"echo":{"arity":2,"flags":["fast"],"keyStart":0,"keyStop":0,"step":0},"eval":{"arity":-3,"flags":["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"eval_ro":{"arity":-3,"flags":["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"evalsha":{"arity":-3,"flags":["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"evalsha_ro":{"arity":-3,"flags":["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"exec":{"arity":1,"flags":["noscript","loading","stale","skip_slowlog"],"keyStart":0,"keyStop":0,"step":0},"exists":{"arity":-2,"flags":["readonly","fast"],"keyStart":1,"keyStop":-1,"step":1},"expire":{"arity":-3,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"expireat":{"arity":-3,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"expiretime":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"failover":{"arity":-1,"flags":["admin","noscript","stale"],"keyStart":0,"keyStop":0,"step":0},"fcall":{"arity":-3,"flags":["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"fcall_ro":{"arity":-3,"flags":["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"flushall":{"arity":-1,"flags":["write"],"keyStart":0,"keyStop":0,"step":0},"flushdb":{"arity":-1,"flags":["write"],"keyStart":0,"keyStop":0,"step":0},"function":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"geoadd":{"arity":-5,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"geodist":{"arity":-4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"geohash":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"geopos":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"georadius":{"arity":-6,"flags":["write","denyoom","movablekeys"],"keyStart":1,"keyStop":1,"step":1},"georadius_ro":{"arity":-6,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"georadiusbymember":{"arity":-5,"flags":["write","denyoom","movablekeys"],"keyStart":1,"keyStop":1,"step":1},"georadiusbymember_ro":{"arity":-5,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"geosearch":{"arity":-7,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"geosearchstore":{"arity":-8,"flags":["write","denyoom"],"keyStart":1,"keyStop":2,"step":1},"get":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"getbit":{"arity":3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"getdel":{"arity":2,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"getex":{"arity":-2,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"getrange":{"arity":4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"getset":{"arity":3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"hdel":{"arity":-3,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"hello":{"arity":-1,"flags":["noscript","loading","stale","fast","no_auth","allow_busy"],"keyStart":0,"keyStop":0,"step":0},"hexists":{"arity":3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"hexpire":{"arity":-6,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"hpexpire":{"arity":-6,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"hget":{"arity":3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"hgetall":{"arity":2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"hincrby":{"arity":4,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"hincrbyfloat":{"arity":4,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"hkeys":{"arity":2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"hlen":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"hmget":{"arity":-3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"hmset":{"arity":-4,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"hrandfield":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"hscan":{"arity":-3,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"hset":{"arity":-4,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"hsetnx":{"arity":4,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"hstrlen":{"arity":3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"hvals":{"arity":2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"incr":{"arity":2,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"incrby":{"arity":3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"incrbyfloat":{"arity":3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"info":{"arity":-1,"flags":["loading","stale"],"keyStart":0,"keyStop":0,"step":0},"keys":{"arity":2,"flags":["readonly"],"keyStart":0,"keyStop":0,"step":0},"lastsave":{"arity":1,"flags":["loading","stale","fast"],"keyStart":0,"keyStop":0,"step":0},"latency":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"lcs":{"arity":-3,"flags":["readonly"],"keyStart":1,"keyStop":2,"step":1},"lindex":{"arity":3,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"linsert":{"arity":5,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"llen":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"lmove":{"arity":5,"flags":["write","denyoom"],"keyStart":1,"keyStop":2,"step":1},"lmpop":{"arity":-4,"flags":["write","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"lolwut":{"arity":-1,"flags":["readonly","fast"],"keyStart":0,"keyStop":0,"step":0},"lpop":{"arity":-2,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"lpos":{"arity":-3,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"lpush":{"arity":-3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"lpushx":{"arity":-3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"lrange":{"arity":4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"lrem":{"arity":4,"flags":["write"],"keyStart":1,"keyStop":1,"step":1},"lset":{"arity":4,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"ltrim":{"arity":4,"flags":["write"],"keyStart":1,"keyStop":1,"step":1},"memory":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"mget":{"arity":-2,"flags":["readonly","fast"],"keyStart":1,"keyStop":-1,"step":1},"migrate":{"arity":-6,"flags":["write","movablekeys"],"keyStart":3,"keyStop":3,"step":1},"module":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"monitor":{"arity":1,"flags":["admin","noscript","loading","stale"],"keyStart":0,"keyStop":0,"step":0},"move":{"arity":3,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"mset":{"arity":-3,"flags":["write","denyoom"],"keyStart":1,"keyStop":-1,"step":2},"msetnx":{"arity":-3,"flags":["write","denyoom"],"keyStart":1,"keyStop":-1,"step":2},"multi":{"arity":1,"flags":["noscript","loading","stale","fast","allow_busy"],"keyStart":0,"keyStop":0,"step":0},"object":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"persist":{"arity":2,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"pexpire":{"arity":-3,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"pexpireat":{"arity":-3,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"pexpiretime":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"pfadd":{"arity":-2,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"pfcount":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":-1,"step":1},"pfdebug":{"arity":3,"flags":["write","denyoom","admin"],"keyStart":2,"keyStop":2,"step":1},"pfmerge":{"arity":-2,"flags":["write","denyoom"],"keyStart":1,"keyStop":-1,"step":1},"pfselftest":{"arity":1,"flags":["admin"],"keyStart":0,"keyStop":0,"step":0},"ping":{"arity":-1,"flags":["fast"],"keyStart":0,"keyStop":0,"step":0},"psetex":{"arity":4,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"psubscribe":{"arity":-2,"flags":["pubsub","noscript","loading","stale"],"keyStart":0,"keyStop":0,"step":0},"psync":{"arity":-3,"flags":["admin","noscript","no_async_loading","no_multi"],"keyStart":0,"keyStop":0,"step":0},"pttl":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"publish":{"arity":3,"flags":["pubsub","loading","stale","fast"],"keyStart":0,"keyStop":0,"step":0},"pubsub":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"punsubscribe":{"arity":-1,"flags":["pubsub","noscript","loading","stale"],"keyStart":0,"keyStop":0,"step":0},"quit":{"arity":-1,"flags":["noscript","loading","stale","fast","no_auth","allow_busy"],"keyStart":0,"keyStop":0,"step":0},"randomkey":{"arity":1,"flags":["readonly"],"keyStart":0,"keyStop":0,"step":0},"readonly":{"arity":1,"flags":["loading","stale","fast"],"keyStart":0,"keyStop":0,"step":0},"readwrite":{"arity":1,"flags":["loading","stale","fast"],"keyStart":0,"keyStop":0,"step":0},"rename":{"arity":3,"flags":["write"],"keyStart":1,"keyStop":2,"step":1},"renamenx":{"arity":3,"flags":["write","fast"],"keyStart":1,"keyStop":2,"step":1},"replconf":{"arity":-1,"flags":["admin","noscript","loading","stale","allow_busy"],"keyStart":0,"keyStop":0,"step":0},"replicaof":{"arity":3,"flags":["admin","noscript","stale","no_async_loading"],"keyStart":0,"keyStop":0,"step":0},"reset":{"arity":1,"flags":["noscript","loading","stale","fast","no_auth","allow_busy"],"keyStart":0,"keyStop":0,"step":0},"restore":{"arity":-4,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"restore-asking":{"arity":-4,"flags":["write","denyoom","asking"],"keyStart":1,"keyStop":1,"step":1},"role":{"arity":1,"flags":["noscript","loading","stale","fast"],"keyStart":0,"keyStop":0,"step":0},"rpop":{"arity":-2,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"rpoplpush":{"arity":3,"flags":["write","denyoom"],"keyStart":1,"keyStop":2,"step":1},"rpush":{"arity":-3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"rpushx":{"arity":-3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"sadd":{"arity":-3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"save":{"arity":1,"flags":["admin","noscript","no_async_loading","no_multi"],"keyStart":0,"keyStop":0,"step":0},"scan":{"arity":-2,"flags":["readonly"],"keyStart":0,"keyStop":0,"step":0},"scard":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"script":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"sdiff":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":-1,"step":1},"sdiffstore":{"arity":-3,"flags":["write","denyoom"],"keyStart":1,"keyStop":-1,"step":1},"select":{"arity":2,"flags":["loading","stale","fast"],"keyStart":0,"keyStop":0,"step":0},"set":{"arity":-3,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"setbit":{"arity":4,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"setex":{"arity":4,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"setnx":{"arity":3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"setrange":{"arity":4,"flags":["write","denyoom"],"keyStart":1,"keyStop":1,"step":1},"shutdown":{"arity":-1,"flags":["admin","noscript","loading","stale","no_multi","allow_busy"],"keyStart":0,"keyStop":0,"step":0},"sinter":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":-1,"step":1},"sintercard":{"arity":-3,"flags":["readonly","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"sinterstore":{"arity":-3,"flags":["write","denyoom"],"keyStart":1,"keyStop":-1,"step":1},"sismember":{"arity":3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"slaveof":{"arity":3,"flags":["admin","noscript","stale","no_async_loading"],"keyStart":0,"keyStop":0,"step":0},"slowlog":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"smembers":{"arity":2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"smismember":{"arity":-3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"smove":{"arity":4,"flags":["write","fast"],"keyStart":1,"keyStop":2,"step":1},"sort":{"arity":-2,"flags":["write","denyoom","movablekeys"],"keyStart":1,"keyStop":1,"step":1},"sort_ro":{"arity":-2,"flags":["readonly","movablekeys"],"keyStart":1,"keyStop":1,"step":1},"spop":{"arity":-2,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"spublish":{"arity":3,"flags":["pubsub","loading","stale","fast"],"keyStart":1,"keyStop":1,"step":1},"srandmember":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"srem":{"arity":-3,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"sscan":{"arity":-3,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"ssubscribe":{"arity":-2,"flags":["pubsub","noscript","loading","stale"],"keyStart":1,"keyStop":-1,"step":1},"strlen":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"subscribe":{"arity":-2,"flags":["pubsub","noscript","loading","stale"],"keyStart":0,"keyStop":0,"step":0},"substr":{"arity":4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"sunion":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":-1,"step":1},"sunionstore":{"arity":-3,"flags":["write","denyoom"],"keyStart":1,"keyStop":-1,"step":1},"sunsubscribe":{"arity":-1,"flags":["pubsub","noscript","loading","stale"],"keyStart":1,"keyStop":-1,"step":1},"swapdb":{"arity":3,"flags":["write","fast"],"keyStart":0,"keyStop":0,"step":0},"sync":{"arity":1,"flags":["admin","noscript","no_async_loading","no_multi"],"keyStart":0,"keyStop":0,"step":0},"time":{"arity":1,"flags":["loading","stale","fast"],"keyStart":0,"keyStop":0,"step":0},"touch":{"arity":-2,"flags":["readonly","fast"],"keyStart":1,"keyStop":-1,"step":1},"ttl":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"type":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"unlink":{"arity":-2,"flags":["write","fast"],"keyStart":1,"keyStop":-1,"step":1},"unsubscribe":{"arity":-1,"flags":["pubsub","noscript","loading","stale"],"keyStart":0,"keyStop":0,"step":0},"unwatch":{"arity":1,"flags":["noscript","loading","stale","fast","allow_busy"],"keyStart":0,"keyStop":0,"step":0},"wait":{"arity":3,"flags":["noscript"],"keyStart":0,"keyStop":0,"step":0},"watch":{"arity":-2,"flags":["noscript","loading","stale","fast","allow_busy"],"keyStart":1,"keyStop":-1,"step":1},"xack":{"arity":-4,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"xadd":{"arity":-5,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"xautoclaim":{"arity":-6,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"xclaim":{"arity":-6,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"xdel":{"arity":-3,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"xdelex":{"arity":-5,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"xgroup":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"xinfo":{"arity":-2,"flags":[],"keyStart":0,"keyStop":0,"step":0},"xlen":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"xpending":{"arity":-3,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"xrange":{"arity":-4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"xread":{"arity":-4,"flags":["readonly","blocking","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"xreadgroup":{"arity":-7,"flags":["write","blocking","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"xrevrange":{"arity":-4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"xsetid":{"arity":-3,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"xtrim":{"arity":-4,"flags":["write"],"keyStart":1,"keyStop":1,"step":1},"zadd":{"arity":-4,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"zcard":{"arity":2,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"zcount":{"arity":4,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"zdiff":{"arity":-3,"flags":["readonly","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"zdiffstore":{"arity":-4,"flags":["write","denyoom","movablekeys"],"keyStart":1,"keyStop":1,"step":1},"zincrby":{"arity":4,"flags":["write","denyoom","fast"],"keyStart":1,"keyStop":1,"step":1},"zinter":{"arity":-3,"flags":["readonly","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"zintercard":{"arity":-3,"flags":["readonly","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"zinterstore":{"arity":-4,"flags":["write","denyoom","movablekeys"],"keyStart":1,"keyStop":1,"step":1},"zlexcount":{"arity":4,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"zmpop":{"arity":-4,"flags":["write","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"zmscore":{"arity":-3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"zpopmax":{"arity":-2,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"zpopmin":{"arity":-2,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"zrandmember":{"arity":-2,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"zrange":{"arity":-4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"zrangebylex":{"arity":-4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"zrangebyscore":{"arity":-4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"zrangestore":{"arity":-5,"flags":["write","denyoom"],"keyStart":1,"keyStop":2,"step":1},"zrank":{"arity":3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"zrem":{"arity":-3,"flags":["write","fast"],"keyStart":1,"keyStop":1,"step":1},"zremrangebylex":{"arity":4,"flags":["write"],"keyStart":1,"keyStop":1,"step":1},"zremrangebyrank":{"arity":4,"flags":["write"],"keyStart":1,"keyStop":1,"step":1},"zremrangebyscore":{"arity":4,"flags":["write"],"keyStart":1,"keyStop":1,"step":1},"zrevrange":{"arity":-4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"zrevrangebylex":{"arity":-4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"zrevrangebyscore":{"arity":-4,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"zrevrank":{"arity":3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"zscan":{"arity":-3,"flags":["readonly"],"keyStart":1,"keyStop":1,"step":1},"zscore":{"arity":3,"flags":["readonly","fast"],"keyStart":1,"keyStop":1,"step":1},"zunion":{"arity":-3,"flags":["readonly","movablekeys"],"keyStart":0,"keyStop":0,"step":0},"zunionstore":{"arity":-4,"flags":["write","denyoom","movablekeys"],"keyStart":1,"keyStop":1,"step":1}}')},41138:(a,b)=>{"use strict";let c;function d(a,d){try{let a=c;return c=null,a.apply(this,arguments)}catch(a){return b.errorObj.e=a,b.errorObj}}Object.defineProperty(b,"__esModule",{value:!0}),b.tryCatch=b.errorObj=void 0,b.errorObj={e:{}},b.tryCatch=function(a){return c=a,d}},43504:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});class c{constructor(){this.set={subscribe:{},psubscribe:{},ssubscribe:{}}}add(a,b){this.set[d(a)][b]=!0}del(a,b){delete this.set[d(a)][b]}channels(a){return Object.keys(this.set[d(a)])}isEmpty(){return 0===this.channels("subscribe").length&&0===this.channels("psubscribe").length&&0===this.channels("ssubscribe").length}}function d(a){return"unsubscribe"===a?"subscribe":"punsubscribe"===a?"psubscribe":"sunsubscribe"===a?"ssubscribe":a}b.default=c},44400:(a,b,c)=>{"use strict";a.exports=55>process.version.charCodeAt(1)&&46===process.version.charCodeAt(2)?c(79651):c(15121)},47611:a=>{var b=/^(?:0|[1-9]\d*)$/;function c(a,b,c){switch(c.length){case 0:return a.call(b);case 1:return a.call(b,c[0]);case 2:return a.call(b,c[0],c[1]);case 3:return a.call(b,c[0],c[1],c[2])}return a.apply(b,c)}var d=Object.prototype,e=d.hasOwnProperty,f=d.toString,g=d.propertyIsEnumerable,h=Math.max;function i(a,b,c,f){return void 0===a||l(a,d[c])&&!e.call(f,c)?b:a}function j(a,b){return b=h(void 0===b?a.length-1:b,0),function(){for(var d=arguments,e=-1,f=h(d.length-b,0),g=Array(f);++e<f;)g[e]=d[b+e];e=-1;for(var i=Array(b+1);++e<b;)i[e]=d[e];return i[b]=g,c(a,this,i)}}function k(a,c){return!!(c=null==c?0x1fffffffffffff:c)&&("number"==typeof a||b.test(a))&&a>-1&&a%1==0&&a<c}function l(a,b){return a===b||a!=a&&b!=b}var m=Array.isArray;function n(a){var b,c,d;return null!=a&&"number"==typeof(b=a.length)&&b>-1&&b%1==0&&b<=0x1fffffffffffff&&"[object Function]"!=(d=o(c=a)?f.call(c):"")&&"[object GeneratorFunction]"!=d}function o(a){var b=typeof a;return!!a&&("object"==b||"function"==b)}var p=function(a){return j(function(b,c){var d=-1,e=c.length,f=e>1?c[e-1]:void 0,g=e>2?c[2]:void 0;for(f=a.length>3&&"function"==typeof f?(e--,f):void 0,g&&function(a,b,c){if(!o(c))return!1;var d=typeof b;return("number"==d?!!(n(c)&&k(b,c.length)):"string"==d&&b in c)&&l(c[b],a)}(c[0],c[1],g)&&(f=e<3?void 0:f,e=1),b=Object(b);++d<e;){var h=c[d];h&&a(b,h,d,f)}return b})}(function(a,b,c,h){var i;!function(a,b,c,d){c||(c={});for(var f=-1,g=b.length;++f<g;){var h=b[f],i=d?d(c[h],a[h],h,c,a):void 0;!function(a,b,c){var d=a[b];e.call(a,b)&&l(d,c)&&(void 0!==c||b in a)||(a[b]=c)}(c,h,void 0===i?a[h]:i)}}(b,n(i=b)?function(a,b){var c,d,h,i=m(a)||(h=d=c=a)&&"object"==typeof h&&n(d)&&e.call(c,"callee")&&(!g.call(c,"callee")||"[object Arguments]"==f.call(c))?function(a,b){for(var c=-1,d=Array(a);++c<a;)d[c]=b(c);return d}(a.length,String):[],j=i.length,l=!!j;for(var o in a)(b||e.call(a,o))&&!(l&&("length"==o||k(o,j)))&&i.push(o);return i}(i,!0):function(a){if(!o(a)){var b,c,f=a,g=[];if(null!=f)for(var h in Object(f))g.push(h);return g}var i=(c=(b=a)&&b.constructor,b===("function"==typeof c&&c.prototype||d)),j=[];for(var k in a)"constructor"==k&&(i||!e.call(a,k))||j.push(k);return j}(i),a,h)});a.exports=j(function(a){return a.push(void 0,i),c(p,void 0,a)})},47823:a=>{"use strict";a.exports=(a,b=process.argv)=>{let c=a.startsWith("-")?"":1===a.length?"-":"--",d=b.indexOf(c+a),e=b.indexOf("--");return -1!==d&&(-1===e||d<e)}},47824:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});class c{constructor(a){this.cursor=0,this.sentinels=a.slice(0)}next(){let a=this.cursor>=this.sentinels.length;return{done:a,value:a?void 0:this.sentinels[this.cursor++]}}reset(a){a&&this.sentinels.length>1&&1!==this.cursor&&this.sentinels.unshift(...this.sentinels.splice(this.cursor-1)),this.cursor=0}add(a){for(let c=0;c<this.sentinels.length;c++){var b;if(b=this.sentinels[c],(a.host||"127.0.0.1")===(b.host||"127.0.0.1")&&(a.port||26379)===(b.port||26379))return!1}return this.sentinels.push(a),!0}toString(){return`${JSON.stringify(this.sentinels)} @${this.cursor}`}}b.default=c},51601:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(44400);class e extends d.AbortError{constructor(a){super(`Reached the max retries per request limit (which is ${a}). Refer to "maxRetriesPerRequest" option for details.`),Error.captureStackTrace(this,this.constructor)}get name(){return this.constructor.name}}b.default=e},52580:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.readyHandler=b.errorHandler=b.closeHandler=b.connectHandler=void 0;let d=c(44400),e=c(14642),f=c(93367),g=c(54187),h=c(23865),i=(0,g.Debug)("connection");function j(a){let b=new d.AbortError("Command aborted due to connection close");return b.command={name:a.name,args:a.args},b}b.connectHandler=function(a){return function(){var c;a.setStatus("connect"),a.resetCommandQueue();let d=!1,{connectionEpoch:e}=a;a.condition.auth&&a.auth(a.condition.auth,function(b){e===a.connectionEpoch&&b&&(-1!==b.message.indexOf("no password is set")?console.warn("[WARN] Redis server does not require a password, but a password was supplied."):-1!==b.message.indexOf("without any password configured for the default user")?console.warn("[WARN] This Redis server's `default` user does not require a password, but a password was supplied"):-1!==b.message.indexOf("wrong number of arguments for 'auth' command")?console.warn("[ERROR] The server returned \"wrong number of arguments for 'auth' command\". You are probably passing both username and password to Redis version 5 or below. You should only pass the 'password' option for Redis version 5 and under."):(d=!0,a.recoverFromFatalError(b,b)))}),a.condition.select&&a.select(a.condition.select).catch(b=>{a.silentEmit("error",b)}),new h.default(a,{stringNumbers:a.options.stringNumbers});let f=[];a.options.connectionName&&(i("set the connection name [%s]",a.options.connectionName),f.push(a.client("setname",a.options.connectionName).catch(g.noop))),a.options.disableClientInfo||(i("set the client info"),f.push((0,g.getPackageMeta)().then(b=>a.client("SETINFO","LIB-VER",b.version).catch(g.noop)).catch(g.noop)),f.push(a.client("SETINFO","LIB-NAME",(null==(c=a.options)?void 0:c.clientInfoTag)?`ioredis(${a.options.clientInfoTag})`:"ioredis").catch(g.noop))),Promise.all(f).catch(g.noop).finally(()=>{a.options.enableReadyCheck||b.readyHandler(a)(),a.options.enableReadyCheck&&a._readyCheck(function(c,f){e===a.connectionEpoch&&(c?d||a.recoverFromFatalError(Error("Ready check failed: "+c.message),c):a.connector.check(f)?b.readyHandler(a)():a.disconnect(!0))})})}},b.closeHandler=function(a){return function(){let c=a.status;if(a.setStatus("close"),a.commandQueue.length&&function(a){var b;let c=0;for(let d=0;d<a.length;){let e=null==(b=a.peekAt(d))?void 0:b.command,f=e.pipelineIndex;if((void 0===f||0===f)&&(c=0),void 0!==f&&f!==c++){a.remove(d,1),e.reject(j(e));continue}d++}}(a.commandQueue),a.offlineQueue.length&&function(a){var b;for(let c=0;c<a.length;){let d=null==(b=a.peekAt(c))?void 0:b.command;if("multi"===d.name)break;if("exec"===d.name){a.remove(c,1),d.reject(j(d));break}d.inTransaction?(a.remove(c,1),d.reject(j(d))):c++}}(a.offlineQueue),"ready"===c&&(a.prevCondition||(a.prevCondition=a.condition),a.commandQueue.length&&(a.prevCommandQueue=a.commandQueue)),a.manuallyClosing)return a.manuallyClosing=!1,i("skip reconnecting since the connection is manually closed."),b();if("function"!=typeof a.options.retryStrategy)return i("skip reconnecting because `retryStrategy` is not a function"),b();let d=a.options.retryStrategy(++a.retryAttempts);if("number"!=typeof d)return i("skip reconnecting because `retryStrategy` doesn't return a number"),b();i("reconnect in %sms",d),a.setStatus("reconnecting",d),a.reconnectTimeout=setTimeout(function(){a.reconnectTimeout=null,a.connect().catch(g.noop)},d);let{maxRetriesPerRequest:e}=a.options;"number"==typeof e&&(e<0?i("maxRetriesPerRequest is negative, ignoring..."):0==a.retryAttempts%(e+1)&&(i("reach maxRetriesPerRequest limitation, flushing command queue..."),a.flushQueue(new f.MaxRetriesPerRequestError(e))))};function b(){a.setStatus("end"),a.flushQueue(Error(g.CONNECTION_CLOSED_ERROR_MSG))}},b.errorHandler=function(a){return function(b){i("error: %s",b),a.silentEmit("error",b)}},b.readyHandler=function(a){return function(){if(a.setStatus("ready"),a.retryAttempts=0,a.options.monitor){a.call("monitor").then(()=>a.setStatus("monitoring"),b=>a.emit("error",b));let{sendCommand:b}=a;a.sendCommand=function(c){return e.default.checkFlag("VALID_IN_MONITOR_MODE",c.name)?b.call(a,c):(c.reject(Error("Connection is in monitoring mode, can't process commands.")),c.promise)},a.once("close",function(){delete a.sendCommand});return}let b=a.prevCondition?a.prevCondition.select:a.condition.select;if(a.options.readOnly&&(i("set the connection to readonly mode"),a.readonly().catch(g.noop)),a.prevCondition){let c=a.prevCondition;if(a.prevCondition=null,c.subscriber&&a.options.autoResubscribe){a.condition.select!==b&&(i("connect to db [%d]",b),a.select(b));let d=c.subscriber.channels("subscribe");d.length&&(i("subscribe %d channels",d.length),a.subscribe(d));let e=c.subscriber.channels("psubscribe");e.length&&(i("psubscribe %d channels",e.length),a.psubscribe(e));let f=c.subscriber.channels("ssubscribe");if(f.length)for(let b of(i("ssubscribe %s",f.length),f))a.ssubscribe(b)}}if(a.prevCommandQueue)if(a.options.autoResendUnfulfilledCommands)for(i("resend %d unfulfilled commands",a.prevCommandQueue.length);a.prevCommandQueue.length>0;){let b=a.prevCommandQueue.shift();b.select!==a.condition.select&&"select"!==b.command.name&&a.select(b.select),a.sendCommand(b.command,b.stream)}else a.prevCommandQueue=null;if(a.offlineQueue.length){i("send %d commands in offline queue",a.offlineQueue.length);let b=a.offlineQueue;for(a.resetOfflineQueue();b.length>0;){let c=b.shift();c.select!==a.condition.select&&"select"!==c.command.name&&a.select(c.select),a.sendCommand(c.command,c.stream)}}a.condition.select!==b&&(i("connect to db [%d]",b),a.select(b))}}},52634:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(37970),e=c(54187),f=c(88568),g=(0,e.Debug)("cluster:subscriber");class h{constructor(a,b,c=!1){this.connectionPool=a,this.emitter=b,this.isSharded=c,this.started=!1,this.subscriber=null,this.slotRange=[],this.onSubscriberEnd=()=>{if(!this.started)return void g("subscriber has disconnected, but ClusterSubscriber is not started, so not reconnecting.");g("subscriber has disconnected, selecting a new one..."),this.selectSubscriber()},this.connectionPool.on("-node",(a,b)=>{this.started&&this.subscriber&&(0,d.getNodeKey)(this.subscriber.options)===b&&(g("subscriber has left, selecting a new one..."),this.selectSubscriber())}),this.connectionPool.on("+node",()=>{this.started&&!this.subscriber&&(g("a new node is discovered and there is no subscriber, selecting a new one..."),this.selectSubscriber())})}getInstance(){return this.subscriber}associateSlotRange(a){return this.isSharded&&(this.slotRange=a),this.slotRange}start(){this.started=!0,this.selectSubscriber(),g("started")}stop(){this.started=!1,this.subscriber&&(this.subscriber.disconnect(),this.subscriber=null)}isStarted(){return this.started}selectSubscriber(){let a=this.lastActiveSubscriber;a&&(a.off("end",this.onSubscriberEnd),a.disconnect()),this.subscriber&&(this.subscriber.off("end",this.onSubscriberEnd),this.subscriber.disconnect());let b=(0,e.sample)(this.connectionPool.getNodes());if(!b){g("selecting subscriber failed since there is no node discovered in the cluster yet"),this.subscriber=null;return}let{options:c}=b;g("selected a subscriber %s:%s",c.host,c.port);let h="subscriber";this.isSharded&&(h="ssubscriber"),this.subscriber=new f.default({port:c.port,host:c.host,username:c.username,password:c.password,enableReadyCheck:!0,connectionName:(0,d.getConnectionName)(h,c.connectionName),lazyConnect:!0,tls:c.tls,retryStrategy:null}),this.subscriber.on("error",e.noop),this.subscriber.on("moved",()=>{this.emitter.emit("forceRefresh")}),this.subscriber.once("end",this.onSubscriberEnd);let i={subscribe:[],psubscribe:[],ssubscribe:[]};if(a){let b=a.condition||a.prevCondition;b&&b.subscriber&&(i.subscribe=b.subscriber.channels("subscribe"),i.psubscribe=b.subscriber.channels("psubscribe"),i.ssubscribe=b.subscriber.channels("ssubscribe"))}if(i.subscribe.length||i.psubscribe.length||i.ssubscribe.length){let a=0;for(let b of["subscribe","psubscribe","ssubscribe"]){let c=i[b];if(0!=c.length)if(g("%s %d channels",b,c.length),"ssubscribe"===b)for(let d of c)a+=1,this.subscriber[b](d).then(()=>{--a||(this.lastActiveSubscriber=this.subscriber)}).catch(()=>{g("failed to ssubscribe to channel: %s",d)});else a+=1,this.subscriber[b](c).then(()=>{--a||(this.lastActiveSubscriber=this.subscriber)}).catch(()=>{g("failed to %s %d channels",b,c.length)})}}else this.lastActiveSubscriber=this.subscriber;for(let a of["message","messageBuffer"])this.subscriber.on(a,(b,c)=>{this.emitter.emit(a,b,c)});for(let a of["pmessage","pmessageBuffer"])this.subscriber.on(a,(b,c,d)=>{this.emitter.emit(a,b,c,d)});if(!0==this.isSharded)for(let a of["smessage","smessageBuffer"])this.subscriber.on(a,(b,c)=>{this.emitter.emit(a,b,c)})}}b.default=h},53172:(a,b)=>{"use strict";function c(a){let b=null!=a;return function(c){let d=c.length-1;if(1===d)return[];if("}"!==c[d])throw Error("Invalid array text - must end with }");let e=0;if("["===c[0]&&(e=c.indexOf("=")+1),"{"!==c[e++])throw Error("Invalid array text - must start with {");let f=[],g=f,h=[],i=e,j="",k=!0;for(;e<d;++e){let f=c[e];if('"'===f){i=++e;let d=c.indexOf('"',i),f=c.indexOf("\\",i);for(;-1!==f&&f<d;)e=f,j+=c.slice(i,e),i=++e,d===e++&&(d=c.indexOf('"',e)),f=c.indexOf("\\",e);e=d,j+=c.slice(i,e),g.push(b?a(j):j),j="",k=!1}else if("{"===f){let a=[];g.push(a),h.push(g),g=a,i=e+1,k=!0}else if(","===f)k=!0;else if("}"===f){k=!1;let a=h.pop();if(void 0===a)throw Error("Invalid array text - too many '}'");g=a}else if(k){for(i=e;","!==(f=c[e])&&"}"!==f&&e<d;)++e;let h=c.slice(i,e--);g.push("NULL"===h?null:b?a(h):h),k=!1}else throw Error("Was expecting delimeter")}return f}}let d=c();b.q=(a,b)=>null!=b?c(b)(a):d(a)},54187:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.noop=b.defaults=b.Debug=b.getPackageMeta=b.zipMap=b.CONNECTION_CLOSED_ERROR_MSG=b.shuffle=b.sample=b.resolveTLSProfile=b.parseURL=b.optimizeErrorStack=b.toArg=b.convertMapToArray=b.convertObjectToArray=b.timeout=b.packObject=b.isInt=b.wrapMultiResult=b.convertBufferToString=void 0;let d=c(29021),e=c(33873),f=c(79551),g=c(77318);Object.defineProperty(b,"defaults",{enumerable:!0,get:function(){return g.defaults}}),Object.defineProperty(b,"noop",{enumerable:!0,get:function(){return g.noop}}),b.Debug=c(89070).default;let h=c(38002);function i(a){let b=parseFloat(a);return!isNaN(a)&&(0|b)===b}b.convertBufferToString=function a(b,c){if(b instanceof Buffer)return b.toString(c);if(Array.isArray(b)){let d=b.length,e=Array(d);for(let f=0;f<d;++f)e[f]=b[f]instanceof Buffer&&"utf8"===c?b[f].toString():a(b[f],c);return e}return b},b.wrapMultiResult=function(a){if(!a)return null;let b=[],c=a.length;for(let d=0;d<c;++d){let c=a[d];c instanceof Error?b.push([c]):b.push([null,c])}return b},b.isInt=i,b.packObject=function(a){let b={},c=a.length;for(let d=1;d<c;d+=2)b[a[d-1]]=a[d];return b},b.timeout=function(a,b){let c=null,d=function(){c&&(clearTimeout(c),c=null,a.apply(this,arguments))};return c=setTimeout(d,b,Error("timeout")),d},b.convertObjectToArray=function(a){let b=[],c=Object.keys(a);for(let d=0,e=c.length;d<e;d++)b.push(c[d],a[c[d]]);return b},b.convertMapToArray=function(a){let b=[],c=0;return a.forEach(function(a,d){b[c]=d,b[c+1]=a,c+=2}),b},b.toArg=function(a){return null==a?"":String(a)},b.optimizeErrorStack=function(a,b,c){let d,e=b.split("\n"),f="";for(d=1;d<e.length&&-1!==e[d].indexOf(c);++d);for(let a=d;a<e.length;++a)f+="\n"+e[a];if(a.stack){let b=a.stack.indexOf("\n");a.stack=a.stack.slice(0,b)+f}return a},b.parseURL=function(a){if(i(a))return{port:a};let b=(0,f.parse)(a,!0,!0);b.slashes||"/"===a[0]||(a="//"+a,b=(0,f.parse)(a,!0,!0));let c=b.query||{},d={};if(b.auth){let a=b.auth.indexOf(":");d.username=-1===a?b.auth:b.auth.slice(0,a),d.password=-1===a?"":b.auth.slice(a+1)}if(b.pathname&&("redis:"===b.protocol||"rediss:"===b.protocol?b.pathname.length>1&&(d.db=b.pathname.slice(1)):d.path=b.pathname),b.host&&(d.host=b.hostname),b.port&&(d.port=b.port),"string"==typeof c.family){let a=Number.parseInt(c.family,10);Number.isNaN(a)||(d.family=a)}return(0,g.defaults)(d,c),d},b.resolveTLSProfile=function(a){let b=null==a?void 0:a.tls;"string"==typeof b&&(b={profile:b});let c=h.default[null==b?void 0:b.profile];return c&&(b=Object.assign({},c,b),delete b.profile,a=Object.assign({},a,{tls:b})),a},b.sample=function(a,b=0){let c=a.length;return b>=c?null:a[b+Math.floor(Math.random()*(c-b))]},b.shuffle=function(a){let b=a.length;for(;b>0;){let c=Math.floor(Math.random()*b);b--,[a[b],a[c]]=[a[c],a[b]]}return a},b.CONNECTION_CLOSED_ERROR_MSG="Connection is closed.",b.zipMap=function(a,b){let c=new Map;return a.forEach((a,d)=>{c.set(a,b[d])}),c};let j=null;b.getPackageMeta=async function(){if(j)return j;try{let a=(0,e.resolve)(__dirname,"..","..","package.json"),b=await d.promises.readFile(a,"utf8");return j={version:JSON.parse(b).version}}catch(a){return j={version:"error-fetching-version"}}}},55058:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(9666),e=c(94735),f=c(44400),g=c(881),h=c(14642),i=c(30577),j=c(88568),k=c(30644),l=c(24281),m=c(54187),n=c(87630),o=c(96637),p=c(20354),q=c(52634),r=c(62948),s=c(19140),t=c(37970),u=c(73380),v=c(17751),w=(0,m.Debug)("cluster"),x=new WeakSet;class y extends o.default{constructor(a,b={}){if(super(),this.slots=[],this._groupsIds={},this._groupsBySlot=Array(16384),this.isCluster=!0,this.retryAttempts=0,this.delayQueue=new s.default,this.offlineQueue=new u,this.isRefreshing=!1,this._refreshSlotsCacheCallbacks=[],this._autoPipelines=new Map,this._runningAutoPipelines=new Set,this._readyDelayedCallbacks=[],this.connectionEpoch=0,e.EventEmitter.call(this),this.startupNodes=a,this.options=(0,m.defaults)({},b,p.DEFAULT_CLUSTER_OPTIONS,this.options),this.options.shardedSubscribers&&this.createShardedSubscriberGroup(),this.options.redisOptions&&this.options.redisOptions.keyPrefix&&!this.options.keyPrefix&&(this.options.keyPrefix=this.options.redisOptions.keyPrefix),"function"!=typeof this.options.scaleReads&&-1===["all","master","slave"].indexOf(this.options.scaleReads))throw Error('Invalid option scaleReads "'+this.options.scaleReads+'". Expected "all", "master", "slave" or a custom function');this.connectionPool=new r.default(this.options.redisOptions),this.connectionPool.on("-node",(a,b)=>{this.emit("-node",a)}),this.connectionPool.on("+node",a=>{this.emit("+node",a)}),this.connectionPool.on("drain",()=>{this.setStatus("close")}),this.connectionPool.on("nodeError",(a,b)=>{this.emit("node error",a,b)}),this.subscriber=new q.default(this.connectionPool,this),this.options.scripts&&Object.entries(this.options.scripts).forEach(([a,b])=>{this.defineCommand(a,b)}),this.options.lazyConnect?this.setStatus("wait"):this.connect().catch(a=>{w("connecting failed: %s",a)})}connect(){return new Promise((a,b)=>{if("connecting"===this.status||"connect"===this.status||"ready"===this.status)return void b(Error("Redis is already connecting/connected"));let c=++this.connectionEpoch;this.setStatus("connecting"),this.resolveStartupNodeHostnames().then(d=>{let e;if(this.connectionEpoch!==c){w("discard connecting after resolving startup nodes because epoch not match: %d != %d",c,this.connectionEpoch),b(new f.RedisError("Connection is discarded because a new connection is made"));return}if("connecting"!==this.status){w("discard connecting after resolving startup nodes because the status changed to %s",this.status),b(new f.RedisError("Connection is aborted"));return}this.connectionPool.reset(d),this.options.shardedSubscribers&&this.shardedSubscribers.reset(this.slots,this.connectionPool.getNodes("all")).catch(a=>{w("Error while starting subscribers: %s",a)});let g=()=>{this.setStatus("ready"),this.retryAttempts=0,this.executeOfflineCommands(),this.resetNodesRefreshInterval(),a()},h=()=>{this.invokeReadyDelayedCallbacks(void 0),this.removeListener("close",e),this.manuallyClosing=!1,this.setStatus("connect"),this.options.enableReadyCheck?this.readyCheck((a,b)=>{a||b?(w("Ready check failed (%s). Reconnecting...",a||b),"connect"===this.status&&this.disconnect(!0)):g()}):g()};e=()=>{let a=Error("None of startup nodes is available");this.removeListener("refresh",h),this.invokeReadyDelayedCallbacks(a),b(a)},this.once("refresh",h),this.once("close",e),this.once("close",this.handleCloseEvent.bind(this)),this.refreshSlotsCache(a=>{a&&a.message===i.default.defaultMessage&&(j.default.prototype.silentEmit.call(this,"error",a),this.connectionPool.reset([]))}),this.subscriber.start(),this.options.shardedSubscribers&&this.shardedSubscribers.start().catch(a=>{w("Error while starting subscribers: %s",a)})}).catch(a=>{this.setStatus("close"),this.handleCloseEvent(a),this.invokeReadyDelayedCallbacks(a),b(a)})})}disconnect(a=!1){let b=this.status;this.setStatus("disconnecting"),a||(this.manuallyClosing=!0),this.reconnectTimeout&&!a&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null,w("Canceled reconnecting attempts")),this.clearNodesRefreshInterval(),this.subscriber.stop(),this.options.shardedSubscribers&&this.shardedSubscribers.stop(),"wait"===b?(this.setStatus("close"),this.handleCloseEvent()):this.connectionPool.reset([])}quit(a){let b=this.status;if(this.setStatus("disconnecting"),this.manuallyClosing=!0,this.reconnectTimeout&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.clearNodesRefreshInterval(),this.subscriber.stop(),this.options.shardedSubscribers&&this.shardedSubscribers.stop(),"wait"===b){let b=(0,g.default)(Promise.resolve("OK"),a);return setImmediate((function(){this.setStatus("close"),this.handleCloseEvent()}).bind(this)),b}return(0,g.default)(Promise.all(this.nodes().map(a=>a.quit().catch(a=>{if(a.message===m.CONNECTION_CLOSED_ERROR_MSG)return"OK";throw a}))).then(()=>"OK"),a)}duplicate(a=[],b={}){return new y(a.length>0?a:this.startupNodes.slice(0),Object.assign({},this.options,b))}nodes(a="all"){if("all"!==a&&"master"!==a&&"slave"!==a)throw Error('Invalid role "'+a+'". Expected "all", "master" or "slave"');return this.connectionPool.getNodes(a)}delayUntilReady(a){this._readyDelayedCallbacks.push(a)}get autoPipelineQueueSize(){let a=0;for(let b of this._autoPipelines.values())a+=b.length;return a}refreshSlotsCache(a){if(a&&this._refreshSlotsCacheCallbacks.push(a),this.isRefreshing)return;this.isRefreshing=!0;let b=this,c=a=>{for(let b of(this.isRefreshing=!1,this._refreshSlotsCacheCallbacks))b(a);this._refreshSlotsCacheCallbacks=[]},d=(0,m.shuffle)(this.connectionPool.getNodes()),e=null;!function a(f){if(f===d.length)return c(new i.default(i.default.defaultMessage,e));let g=d[f],h=`${g.options.host}:${g.options.port}`;w("getting slot cache from %s",h),b.getInfoFromNode(g,function(d){switch(b.status){case"close":case"end":return c(Error("Cluster is disconnected."));case"disconnecting":return c(Error("Cluster is disconnecting."))}d?(b.emit("node error",d,h),e=d,a(f+1)):(b.emit("refresh"),c())})}(0)}sendCommand(a,b,c){if("wait"===this.status&&this.connect().catch(m.noop),"end"===this.status)return a.reject(Error(m.CONNECTION_CLOSED_ERROR_MSG)),a.promise;let e=this.options.scaleReads;"master"!==e&&(a.isReadOnly||(0,d.exists)(a.name)&&(0,d.hasFlag)(a.name,"readonly")||(e="master"));let g=c?c.slot:a.getSlot(),i={},j=this;if(!c&&!x.has(a)){x.add(a);let b=a.reject;a.reject=function(c){let d=k.bind(null,!0);j.handleError(c,i,{moved:function(b,c){w("command %s is moved to %s",a.name,c),g=Number(b),j.slots[b]?j.slots[b][0]=c:j.slots[b]=[c],j._groupsBySlot[b]=j._groupsIds[j.slots[b].join(";")],j.connectionPool.findOrCreate(j.natMapper(c)),k(),w("refreshing slot caches... (triggered by MOVED error)"),j.refreshSlotsCache()},ask:function(b,c){w("command %s is required to ask %s:%s",a.name,c);let d=j.natMapper(c);j.connectionPool.findOrCreate(d),k(!1,`${d.host}:${d.port}`)},tryagain:d,clusterDown:d,connectionClosed:d,maxRedirections:function(c){b.call(a,c)},defaults:function(){b.call(a,c)}})}}function k(d,i){let k;if("end"===j.status)return void a.reject(new f.AbortError("Cluster is ended."));if("ready"===j.status||"cluster"===a.name){if(c&&c.redis)k=c.redis;else if(h.default.checkFlag("ENTER_SUBSCRIBER_MODE",a.name)||h.default.checkFlag("EXIT_SUBSCRIBER_MODE",a.name)){if(j.options.shardedSubscribers&&("ssubscribe"==a.name||"sunsubscribe"==a.name)){let b=j.shardedSubscribers.getResponsibleSubscriber(g);if(!b)return void a.reject(new f.AbortError(`No sharded subscriber for slot: ${g}`));let c=-1;"ssubscribe"==a.name&&(c=j.shardedSubscribers.addChannels(a.getKeys())),"sunsubscribe"==a.name&&(c=j.shardedSubscribers.removeChannels(a.getKeys())),-1!==c?k=b.getInstance():a.reject(new f.AbortError("Possible CROSSSLOT error: All channels must hash to the same slot"))}else k=j.subscriber.getInstance();if(!k)return void a.reject(new f.AbortError("No subscriber for the cluster"))}else{if(!d){if("number"==typeof g&&j.slots[g]){let b=j.slots[g];if("function"==typeof e){let c=b.map(function(a){return j.connectionPool.getInstanceByKey(a)});Array.isArray(k=e(c,a))&&(k=(0,m.sample)(k)),k||(k=c[0])}else{let a;a="all"===e?(0,m.sample)(b):"slave"===e&&b.length>1?(0,m.sample)(b,1):b[0],k=j.connectionPool.getInstanceByKey(a)}}i&&(k=j.connectionPool.getInstanceByKey(i)).asking()}k||(k=("function"==typeof e?null:j.connectionPool.getSampleInstance(e))||j.connectionPool.getSampleInstance("all"))}c&&!c.redis&&(c.redis=k)}k?k.sendCommand(a,b):j.options.enableOfflineQueue?j.offlineQueue.push({command:a,stream:b,node:c}):a.reject(Error("Cluster isn't ready and enableOfflineQueue options is false"))}return k(),a.promise}sscanStream(a,b){return this.createScanStream("sscan",{key:a,options:b})}sscanBufferStream(a,b){return this.createScanStream("sscanBuffer",{key:a,options:b})}hscanStream(a,b){return this.createScanStream("hscan",{key:a,options:b})}hscanBufferStream(a,b){return this.createScanStream("hscanBuffer",{key:a,options:b})}zscanStream(a,b){return this.createScanStream("zscan",{key:a,options:b})}zscanBufferStream(a,b){return this.createScanStream("zscanBuffer",{key:a,options:b})}handleError(a,b,c){if(void 0===b.value?b.value=this.options.maxRedirections:b.value-=1,b.value<=0)return void c.maxRedirections(Error("Too many Cluster redirections. Last error: "+a));let d=a.message.split(" ");if("MOVED"===d[0]){let a=this.options.retryDelayOnMoved;a&&"number"==typeof a?this.delayQueue.push("moved",c.moved.bind(null,d[1],d[2]),{timeout:a}):c.moved(d[1],d[2])}else"ASK"===d[0]?c.ask(d[1],d[2]):"TRYAGAIN"===d[0]?this.delayQueue.push("tryagain",c.tryagain,{timeout:this.options.retryDelayOnTryAgain}):"CLUSTERDOWN"===d[0]&&this.options.retryDelayOnClusterDown>0?this.delayQueue.push("clusterdown",c.connectionClosed,{timeout:this.options.retryDelayOnClusterDown,callback:this.refreshSlotsCache.bind(this)}):a.message===m.CONNECTION_CLOSED_ERROR_MSG&&this.options.retryDelayOnFailover>0&&"ready"===this.status?this.delayQueue.push("failover",c.connectionClosed,{timeout:this.options.retryDelayOnFailover,callback:this.refreshSlotsCache.bind(this)}):c.defaults()}resetOfflineQueue(){this.offlineQueue=new u}clearNodesRefreshInterval(){this.slotsTimer&&(clearTimeout(this.slotsTimer),this.slotsTimer=null)}resetNodesRefreshInterval(){if(this.slotsTimer||!this.options.slotsRefreshInterval)return;let a=()=>{this.slotsTimer=setTimeout(()=>{w('refreshing slot caches... (triggered by "slotsRefreshInterval" option)'),this.refreshSlotsCache(()=>{a()})},this.options.slotsRefreshInterval)};a()}setStatus(a){w("status: %s -> %s",this.status||"[empty]",a),this.status=a,process.nextTick(()=>{this.emit(a)})}handleCloseEvent(a){var b;let c;a&&w("closed because %s",a),this.manuallyClosing||"function"!=typeof this.options.clusterRetryStrategy||(c=this.options.clusterRetryStrategy.call(this,++this.retryAttempts,a)),"number"==typeof c?(this.setStatus("reconnecting"),this.reconnectTimeout=setTimeout(()=>{this.reconnectTimeout=null,w("Cluster is disconnected. Retrying after %dms",c),this.connect().catch(function(a){w("Got error %s when reconnecting. Ignoring...",a)})},c)):(this.options.shardedSubscribers&&(null==(b=this.subscriberGroupEmitter)||b.removeAllListeners()),this.setStatus("end"),this.flushQueue(Error("None of startup nodes is available")))}flushQueue(a){let b;for(;b=this.offlineQueue.shift();)b.command.reject(a)}executeOfflineCommands(){if(this.offlineQueue.length){let a;w("send %d commands in offline queue",this.offlineQueue.length);let b=this.offlineQueue;for(this.resetOfflineQueue();a=b.shift();)this.sendCommand(a.command,a.stream,a.node)}}natMapper(a){let b="string"==typeof a?a:`${a.host}:${a.port}`,c=null;return(this.options.natMap&&"function"==typeof this.options.natMap?c=this.options.natMap(b):this.options.natMap&&"object"==typeof this.options.natMap&&(c=this.options.natMap[b]),c)?(w("NAT mapping %s -> %O",b,c),Object.assign({},c)):"string"==typeof a?(0,t.nodeKeyToRedisOptions)(a):a}getInfoFromNode(a,b){if(!a)return b(Error("Node is disconnected"));let c=a.duplicate({enableOfflineQueue:!0,enableReadyCheck:!1,retryStrategy:null,connectionName:(0,t.getConnectionName)("refresher",this.options.redisOptions&&this.options.redisOptions.connectionName)});c.on("error",m.noop),c.cluster("SLOTS",(0,m.timeout)((a,d)=>{if(c.disconnect(),a)return w("error encountered running CLUSTER.SLOTS: %s",a),b(a);if("disconnecting"===this.status||"close"===this.status||"end"===this.status){w("ignore CLUSTER.SLOTS results (count: %d) since cluster status is %s",d.length,this.status),b();return}let e=[];w("cluster slots result count: %d",d.length);for(let a=0;a<d.length;++a){let b=d[a],c=b[0],f=b[1],g=[];for(let a=2;a<b.length;a++){if(!b[a][0])continue;let c=this.natMapper({host:b[a][0],port:b[a][1]});c.readOnly=2!==a,e.push(c),g.push(c.host+":"+c.port)}w("cluster slots result [%d]: slots %d~%d served by %s",a,c,f,g);for(let a=c;a<=f;a++)this.slots[a]=g}this._groupsIds=Object.create(null);let f=0;for(let a=0;a<16384;a++){let b=(this.slots[a]||[]).join(";");if(!b.length){this._groupsBySlot[a]=void 0;continue}this._groupsIds[b]||(this._groupsIds[b]=++f),this._groupsBySlot[a]=this._groupsIds[b]}this.connectionPool.reset(e),this.options.shardedSubscribers&&this.shardedSubscribers.reset(this.slots,this.connectionPool.getNodes("all")).catch(a=>{w("Error while starting subscribers: %s",a)}),b()},this.options.slotsRefreshTimeout))}invokeReadyDelayedCallbacks(a){for(let b of this._readyDelayedCallbacks)process.nextTick(b,a);this._readyDelayedCallbacks=[]}readyCheck(a){this.cluster("INFO",(b,c)=>{let d;if(b)return a(b);if("string"!=typeof c)return a();let e=c.split("\r\n");for(let a=0;a<e.length;++a){let b=e[a].split(":");if("cluster_state"===b[0]){d=b[1];break}}"fail"===d?(w("cluster state not ok (%s)",d),a(null,d)):a()})}resolveSrv(a){return new Promise((b,c)=>{this.options.resolveSrv(a,(a,d)=>{if(a)return c(a);let e=this,f=(0,t.groupSrvRecords)(d),g=Object.keys(f).sort((a,b)=>parseInt(a)-parseInt(b));!function a(d){if(!g.length)return c(d);let h=f[g[0]],i=(0,t.weightSrvRecords)(h);h.records.length||g.shift(),e.dnsLookup(i.name).then(a=>b({host:a,port:i.port}),a)}()})})}dnsLookup(a){return new Promise((b,c)=>{this.options.dnsLookup(a,(d,e)=>{d?(w("failed to resolve hostname %s to IP: %s",a,d.message),c(d)):(w("resolved hostname %s to IP %s",a,e),b(e))})})}async resolveStartupNodeHostnames(){if(!Array.isArray(this.startupNodes)||0===this.startupNodes.length)throw Error("`startupNodes` should contain at least one node.");let a=(0,t.normalizeNodeOptions)(this.startupNodes),b=(0,t.getUniqueHostnamesFromOptions)(a);if(0===b.length)return a;let c=await Promise.all(b.map((this.options.useSRVRecords?this.resolveSrv:this.dnsLookup).bind(this))),d=(0,m.zipMap)(b,c);return a.map(a=>{let b=d.get(a.host);return b?this.options.useSRVRecords?Object.assign({},a,b):Object.assign({},a,{host:b}):a})}createScanStream(a,{key:b,options:c={}}){return new k.default({objectMode:!0,key:b,redis:this,command:a,...c})}createShardedSubscriberGroup(){this.subscriberGroupEmitter=new e.EventEmitter,this.shardedSubscribers=new v.default(this.subscriberGroupEmitter);let a=a=>{a instanceof i.default&&this.disconnect(!0)};for(let b of(this.subscriberGroupEmitter.on("-node",(b,c)=>{this.emit("-node",b,c),this.refreshSlotsCache(a)}),this.subscriberGroupEmitter.on("subscriberConnectFailed",({delay:b,error:c})=>{this.emit("error",c),setTimeout(()=>{this.refreshSlotsCache(a)},b)}),this.subscriberGroupEmitter.on("moved",()=>{this.refreshSlotsCache(a)}),this.subscriberGroupEmitter.on("-subscriber",()=>{this.emit("-subscriber")}),this.subscriberGroupEmitter.on("+subscriber",()=>{this.emit("+subscriber")}),this.subscriberGroupEmitter.on("nodeError",(a,b)=>{this.emit("nodeError",a,b)}),this.subscriberGroupEmitter.on("subscribersReady",()=>{this.emit("subscribersReady")}),["smessage","smessageBuffer"]))this.subscriberGroupEmitter.on(b,(a,c,d)=>{this.emit(b,a,c,d)})}}(0,n.default)(y,e.EventEmitter),(0,l.addTransactionSupport)(y.prototype),b.default=y},59519:(a,b,c)=>{"undefined"==typeof process||"renderer"===process.type||process.__nwjs?a.exports=c(19283):a.exports=c(68694)},60937:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handleActivity:()=>p});var e=c(10713),f=c(37422),g=c(68199),h=c(37614),i=a([f,g]);[f,g]=i.then?(await i)():i;let q=h.A.child({module:"notification-listener"}),r={task_assigned:"taskAssigned",task_status_changed:"taskStatusChanged",task_submitted_for_verify:"taskVerified",task_verified:"taskVerified",task_reopened:"taskReopened",proposal_submitted:"proposalSubmitted",proposal_approved:"proposalApproved",proposal_rejected:"proposalRejected",idea_claimed:"ideaClaimed",comment_added:"commentAdded",elaboration_requested:"elaborationRequested",elaboration_answered:"elaborationAnswered",mentioned:"mentioned"};async function j(a,b){switch(a){case"task":{let a=await f.z.task.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Task"}case"idea":{let a=await f.z.idea.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Idea"}case"proposal":{let a=await f.z.proposal.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Proposal"}case"document":{let a=await f.z.document.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Document"}default:return"Unknown"}}async function k(a,b){if("user"===a){let a=await f.z.user.findUnique({where:{uuid:b},select:{name:!0,email:!0}});return a?.name||a?.email||"Unknown User"}if("agent"===a){let a=await f.z.agent.findUnique({where:{uuid:b},select:{name:!0}});return a?.name??"Unknown Agent"}return"Unknown"}async function l(a){let b=await f.z.project.findUnique({where:{uuid:a},select:{name:!0}});return b?.name??"Unknown Project"}async function m(a,b){if("user"===a)return{type:"user",uuid:b};if("agent"===a){let a=await f.z.agent.findUnique({where:{uuid:b},select:{ownerUuid:!0}});if(a?.ownerUuid)return{type:"user",uuid:a.ownerUuid}}return null}async function n(a,b,c,d,e,g){switch(a){case"task_assigned":{let a=await f.z.task.findUnique({where:{uuid:c},select:{assigneeType:!0,assigneeUuid:!0}});if(a?.assigneeType&&a?.assigneeUuid)return[{type:a.assigneeType,uuid:a.assigneeUuid}];return[]}case"task_status_changed":{let a=await f.z.task.findUnique({where:{uuid:c},select:{assigneeType:!0,assigneeUuid:!0,createdByUuid:!0}});if(!a)return[];let b=[];a.assigneeType&&a.assigneeUuid&&b.push({type:a.assigneeType,uuid:a.assigneeUuid});let d=await o(a.createdByUuid);return d&&b.push({type:d,uuid:a.createdByUuid}),b}case"task_submitted_for_verify":{let a=[],b=await m(e,g);b&&a.push(b);let d=await f.z.task.findUnique({where:{uuid:c},select:{createdByUuid:!0}});if(d){let b=await o(d.createdByUuid);b&&a.push({type:b,uuid:d.createdByUuid})}return a}case"task_verified":{let a=await f.z.task.findUnique({where:{uuid:c},select:{assigneeType:!0,assigneeUuid:!0}});if(a?.assigneeType&&a?.assigneeUuid)return[{type:a.assigneeType,uuid:a.assigneeUuid}];return[]}case"task_reopened":{let a=await f.z.task.findUnique({where:{uuid:c},select:{assigneeType:!0,assigneeUuid:!0}});if(a?.assigneeType&&a?.assigneeUuid)return[{type:a.assigneeType,uuid:a.assigneeUuid}];return[]}case"proposal_approved":case"proposal_rejected":{let a=await f.z.proposal.findUnique({where:{uuid:c},select:{createdByUuid:!0,createdByType:!0}});if(a)return[{type:a.createdByType,uuid:a.createdByUuid}];return[]}case"idea_claimed":{let a=await f.z.idea.findUnique({where:{uuid:c},select:{createdByUuid:!0,assigneeType:!0,assigneeUuid:!0}});if(a){let b=[{type:"user",uuid:a.createdByUuid}];return a.assigneeType&&a.assigneeUuid&&b.push({type:a.assigneeType,uuid:a.assigneeUuid}),b}return[]}case"elaboration_requested":{let a=await f.z.idea.findUnique({where:{uuid:c},select:{createdByUuid:!0}});if(!a)return[];let b=[];b.push({type:"user",uuid:a.createdByUuid});let d=await m(e,g);return d&&b.push(d),b}case"elaboration_answered":{let a=await f.z.idea.findUnique({where:{uuid:c},select:{assigneeType:!0,assigneeUuid:!0,createdByUuid:!0}});if(!a)return[];let b=[];return a.assigneeType&&a.assigneeUuid&&b.push({type:a.assigneeType,uuid:a.assigneeUuid}),b.push({type:"user",uuid:a.createdByUuid}),b}case"comment_added":{let a=[];if("task"===b){let b=await f.z.task.findUnique({where:{uuid:c},select:{assigneeType:!0,assigneeUuid:!0,createdByUuid:!0}});if(b){b.assigneeType&&b.assigneeUuid&&a.push({type:b.assigneeType,uuid:b.assigneeUuid});let c=await o(b.createdByUuid);c&&a.push({type:c,uuid:b.createdByUuid})}}else if("idea"===b){let b=await f.z.idea.findUnique({where:{uuid:c},select:{assigneeType:!0,assigneeUuid:!0,createdByUuid:!0}});b&&(b.assigneeType&&b.assigneeUuid&&a.push({type:b.assigneeType,uuid:b.assigneeUuid}),a.push({type:"user",uuid:b.createdByUuid}))}else if("proposal"===b){let b=await f.z.proposal.findUnique({where:{uuid:c},select:{createdByUuid:!0,createdByType:!0}});b&&a.push({type:b.createdByType,uuid:b.createdByUuid})}else if("document"===b){let b=await f.z.document.findUnique({where:{uuid:c},select:{createdByUuid:!0}});if(b){let c=await o(b.createdByUuid);c&&a.push({type:c,uuid:b.createdByUuid})}}return a.filter(a=>a.uuid!==g)}default:return[]}}async function o(a){return await f.z.user.findUnique({where:{uuid:a},select:{uuid:!0}})?"user":await f.z.agent.findUnique({where:{uuid:a},select:{uuid:!0}})?"agent":null}async function p(a){var b,c;let d=(b=a.action,c=a.targetType,({"task:assigned":"task_assigned","task:status_changed":"task_status_changed","task:submitted":"task_submitted_for_verify","task:verified":"task_verified","task:reopened":"task_reopened","idea:assigned":"idea_claimed","proposal:approved":"proposal_approved","proposal:rejected_to_draft":"proposal_rejected","task:comment_added":"comment_added","idea:comment_added":"comment_added","proposal:comment_added":"comment_added","document:comment_added":"comment_added","idea:elaboration_started":"elaboration_requested","idea:elaboration_answered":"elaboration_answered","idea:elaboration_followup":"elaboration_requested","idea:elaboration_resolved":"elaboration_answered","idea:elaboration_skipped":"elaboration_answered"})[`${c}:${b}`]??null);if(d)try{let[b,c,e]=await Promise.all([j(a.targetType,a.targetUuid),k(a.actorType,a.actorUuid),l(a.projectUuid)]),f=await n(d,a.targetType,a.targetUuid,a.companyUuid,a.actorType,a.actorUuid);if(0===f.length)return;let h=new Set,i=f.filter(a=>{let b=`${a.type}:${a.uuid}`;return!h.has(b)&&(h.add(b),!0)}).filter(b=>b.type!==a.actorType||b.uuid!==a.actorUuid);if(0===i.length)return;let m=r[d],o=[];for(let b of i)(!m||(await g.lX(a.companyUuid,b.type,b.uuid))[m])&&o.push(b);if(0===o.length)return;let p=function(a,b,c,d){let e="object"==typeof d&&null!==d?d:{};switch(a){case"task_assigned":return`${b} assigned you to task "${c}"`;case"task_status_changed":return`${b} changed the status of task "${c}"`;case"task_submitted_for_verify":return`${b} submitted task "${c}" for verification`;case"task_verified":return`Task "${c}" has been verified`;case"task_reopened":return`Task "${c}" has been reopened`;case"proposal_submitted":return`${b} submitted proposal "${c}" for review`;case"proposal_approved":{let a="string"==typeof e.reviewNote?e.reviewNote.trim():"";return a?`Proposal "${c}" has been approved. Note: ${a}`:`Proposal "${c}" has been approved`}case"proposal_rejected":{let a="string"==typeof e.reviewNote?e.reviewNote.trim():"";return a?`Proposal "${c}" has been rejected. Reason: ${a}`:`Proposal "${c}" has been rejected`}case"idea_claimed":return`${b} claimed idea "${c}"`;case"comment_added":return`${b} commented on "${c}"`;case"elaboration_requested":return`${b} requested elaboration on idea "${c}"`;case"elaboration_answered":return`${b} answered elaboration questions for idea "${c}"`;default:return`${b} performed an action on "${c}"`}}(d,c,b,a.value),q=o.map(f=>({companyUuid:a.companyUuid,projectUuid:a.projectUuid,recipientType:f.type,recipientUuid:f.uuid,entityType:a.targetType,entityUuid:a.targetUuid,entityTitle:b,projectName:e,action:d,message:p,actorType:a.actorType,actorUuid:a.actorUuid,actorName:c}));await g.Xm(q)}catch(a){q.error({err:a},"Failed to process activity")}}e.B.on("activity",a=>{a._remote||p(a)}),q.info("Subscribed to activity events"),d()}catch(a){d(a)}})},62948:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(94735),e=c(54187),f=c(37970),g=c(88568),h=(0,e.Debug)("cluster:connectionPool");class i extends d.EventEmitter{constructor(a){super(),this.redisOptions=a,this.nodes={all:{},master:{},slave:{}},this.specifiedOptions={}}getNodes(a="all"){let b=this.nodes[a];return Object.keys(b).map(a=>b[a])}getInstanceByKey(a){return this.nodes.all[a]}getSampleInstance(a){let b=Object.keys(this.nodes[a]),c=(0,e.sample)(b);return this.nodes[a][c]}addMasterNode(a){let b=(0,f.getNodeKey)(a.options),c=this.createRedisFromOptions(a,a.options.readOnly);return!a.options.readOnly&&(this.nodes.all[b]=c,this.nodes.master[b]=c,!0)}createRedisFromOptions(a,b){return new g.default((0,e.defaults)({retryStrategy:null,enableOfflineQueue:!0,readOnly:b},a,this.redisOptions,{lazyConnect:!0}))}findOrCreate(a,b=!1){let c,d=(0,f.getNodeKey)(a);return b=!!b,this.specifiedOptions[d]?Object.assign(a,this.specifiedOptions[d]):this.specifiedOptions[d]=a,this.nodes.all[d]?(c=this.nodes.all[d]).options.readOnly!==b&&(c.options.readOnly=b,h("Change role of %s to %s",d,b?"slave":"master"),c[b?"readonly":"readwrite"]().catch(e.noop),b?(delete this.nodes.master[d],this.nodes.slave[d]=c):(delete this.nodes.slave[d],this.nodes.master[d]=c)):(h("Connecting to %s as %s",d,b?"slave":"master"),c=this.createRedisFromOptions(a,b),this.nodes.all[d]=c,this.nodes[b?"slave":"master"][d]=c,c.once("end",()=>{this.removeNode(d),this.emit("-node",c,d),Object.keys(this.nodes.all).length||this.emit("drain")}),this.emit("+node",c,d),c.on("error",function(a){this.emit("nodeError",a,d)})),c}reset(a){h("Reset with %O",a);let b={};a.forEach(a=>{let c=(0,f.getNodeKey)(a);a.readOnly&&b[c]||(b[c]=a)}),Object.keys(this.nodes.all).forEach(a=>{b[a]||(h("Disconnect %s because the node does not hold any slot",a),this.nodes.all[a].disconnect(),this.removeNode(a))}),Object.keys(b).forEach(a=>{let c=b[a];this.findOrCreate(c,c.readOnly)})}removeNode(a){let{nodes:b}=this;b.all[a]&&(h("Remove %s from the pool",a),delete b.all[a]),delete b.master[a],delete b.slave[a]}}b.default=i},63145:(a,b,c)=>{"use strict";let d=c(79428).Buffer,e=new(c(41204)).StringDecoder,f=c(44400),g=f.ReplyError,h=f.ParserError;var i=d.allocUnsafe(32768),j=0,k=null,l=0,m=0;function n(a){let b=a.offset,c=a.buffer,d=c.length-1;for(var e=b;e<d;)if(13===c[e++]){if(a.offset=e+1,!0===a.optionReturnBuffers)return a.buffer.slice(b,e-1);return a.buffer.toString("utf8",b,e-1)}}function o(a){let b=a.buffer.length-1;for(var c=a.offset,d=0;c<b;){let b=a.buffer[c++];if(13===b)return a.offset=c+1,d;d=10*d+(b-48)}}function p(a,b,c){a.arrayCache.push(b),a.arrayPos.push(c)}function q(a){let b=a.arrayCache.pop();var c=a.arrayPos.pop();if(a.arrayCache.length){let d=q(a);if(void 0===d)return void p(a,b,c);b[c++]=d}return r(a,b,c)}function r(a,b,c){let d=a.buffer.length;for(;c<b.length;){let e=a.offset;if(a.offset>=d)return void p(a,b,c);let f=s(a,a.buffer[a.offset++]);if(void 0===f){a.arrayCache.length||a.bufferCache.length||(a.offset=e),p(a,b,c);return}b[c]=f,c++}return b}function s(a,b){switch(b){case 36:let c=o(a);if(void 0===c)return;if(c<0)return null;let d=a.offset+c;if(d+2>a.buffer.length){a.bigStrSize=d+2,a.totalChunkSize=a.buffer.length,a.bufferCache.push(a.buffer);return}let e=a.offset;return(a.offset=d+2,!0===a.optionReturnBuffers)?a.buffer.slice(e,d):a.buffer.toString("utf8",e,d);case 43:return n(a);case 42:let f=o(a);return void 0===f?void 0:f<0?null:r(a,Array(f),0);case 58:return!0===a.optionStringNumbers?function(a){let b=a.buffer.length-1;var c=a.offset,d=0,e="";for(45===a.buffer[c]&&(e+="-",c++);c<b;){var f=a.buffer[c++];if(13===f)return a.offset=c+1,0!==d&&(e+=d),e;d>0x19999998?(e+=10*d+(f-48),d=0):48===f&&0===d?e+=0:d=10*d+(f-48)}}(a):function(a){let b=a.buffer.length-1;var c=a.offset,d=0,e=1;for(45===a.buffer[c]&&(e=-1,c++);c<b;){let b=a.buffer[c++];if(13===b)return a.offset=c+1,e*d;d=10*d+(b-48)}}(a);case 45:var i=n(a);if(void 0!==i)return!0===a.optionReturnBuffers&&(i=i.toString()),new g(i);return;default:let j=new h("Protocol error, got "+JSON.stringify(String.fromCharCode(b))+" as reply type byte",JSON.stringify(a.buffer),a.offset);a.buffer=null,a.returnFatalError(j);return}}function t(){if(i.length>51200)if(1===l||m>2*l){let a=Math.floor(i.length/10),b=a<j?j:a;j=0,i=i.slice(b,i.length)}else m++,l--;else clearInterval(k),l=0,m=0,k=null}class u{constructor(a){if(!a)throw TypeError("Options are mandatory.");if("function"!=typeof a.returnError||"function"!=typeof a.returnReply)throw TypeError("The returnReply and returnError options have to be functions.");this.setReturnBuffers(!!a.returnBuffers),this.setStringNumbers(!!a.stringNumbers),this.returnError=a.returnError,this.returnFatalError=a.returnFatalError||a.returnError,this.returnReply=a.returnReply,this.reset()}reset(){this.offset=0,this.buffer=null,this.bigStrSize=0,this.totalChunkSize=0,this.bufferCache=[],this.arrayCache=[],this.arrayPos=[]}setReturnBuffers(a){if("boolean"!=typeof a)throw TypeError("The returnBuffers argument has to be a boolean");this.optionReturnBuffers=a}setStringNumbers(a){if("boolean"!=typeof a)throw TypeError("The stringNumbers argument has to be a boolean");this.optionStringNumbers=a}execute(a){if(null===this.buffer)this.buffer=a,this.offset=0;else if(0===this.bigStrSize){let b=this.buffer.length,c=b-this.offset,e=d.allocUnsafe(c+a.length);if(this.buffer.copy(e,0,this.offset,b),a.copy(e,c,0,a.length),this.buffer=e,this.offset=0,this.arrayCache.length){let a=q(this);if(void 0===a)return;this.returnReply(a)}}else if(this.totalChunkSize+a.length>=this.bigStrSize){this.bufferCache.push(a);var b=this.optionReturnBuffers?function(a){let b=a.bufferCache,c=a.offset,e=a.bigStrSize-c-2;var f=b.length,g=a.bigStrSize-a.totalChunkSize;if(a.offset=g,g<=2){if(2===f)return b[0].slice(c,b[0].length+g-2);f--,g=b[b.length-2].length+g}i.length<e+j&&(j>0x6f00000&&(j=0x3200000),i=d.allocUnsafe(e*(e>0x4b00000?2:3)+j),j=0,l++,null===k&&(k=setInterval(t,50)));let h=j;b[0].copy(i,h,c,b[0].length),j+=b[0].length-c;for(var m=1;m<f-1;m++)b[m].copy(i,j),j+=b[m].length;return b[m].copy(i,j,0,g-2),j+=g-2,i.slice(h,j)}(this):function(a){let b=a.bufferCache,c=a.offset;var d=b.length,f=a.bigStrSize-a.totalChunkSize;if(a.offset=f,f<=2){if(2===d)return b[0].toString("utf8",c,b[0].length+f-2);d--,f=b[b.length-2].length+f}for(var g=e.write(b[0].slice(c)),h=1;h<d-1;h++)g+=e.write(b[h]);return g+e.end(b[h].slice(0,f-2))}(this);if(this.bigStrSize=0,this.bufferCache=[],this.buffer=a,this.arrayCache.length&&(this.arrayCache[0][this.arrayPos[0]++]=b,void 0===(b=q(this))))return;this.returnReply(b)}else{this.bufferCache.push(a),this.totalChunkSize+=a.length;return}for(;this.offset<this.buffer.length;){let a=this.offset,b=this.buffer[this.offset++],c=s(this,b);if(void 0===c){this.arrayCache.length||this.bufferCache.length||(this.offset=a);return}45===b?this.returnError(c):this.returnReply(c)}this.buffer=null}}a.exports=u},68199:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Xm:()=>i,lX:()=>k});var e=c(37422),f=c(10713),g=a([e]);function h(a){return{uuid:a.uuid,projectUuid:a.projectUuid,projectName:a.projectName,recipientType:a.recipientType,recipientUuid:a.recipientUuid,entityType:a.entityType,entityUuid:a.entityUuid,entityTitle:a.entityTitle,action:a.action,message:a.message,actorType:a.actorType,actorUuid:a.actorUuid,actorName:a.actorName,readAt:a.readAt?.toISOString()??null,archivedAt:a.archivedAt?.toISOString()??null,createdAt:a.createdAt.toISOString()}}async function i(a){let b=await Promise.all(a.map(a=>e.z.notification.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,recipientType:a.recipientType,recipientUuid:a.recipientUuid,entityType:a.entityType,entityUuid:a.entityUuid,entityTitle:a.entityTitle,projectName:a.projectName,action:a.action,message:a.message,actorType:a.actorType,actorUuid:a.actorUuid,actorName:a.actorName}}))),c=new Set;for(let b of a)c.add(`${b.recipientType}:${b.recipientUuid}:${b.companyUuid}`);for(let d of c){let[c,e,g]=d.split(":"),h=await j(g,c,e),i=b.find(a=>a.recipientType===c&&a.recipientUuid===e),k=a.find(a=>a.recipientType===c&&a.recipientUuid===e);f.B.emit(`notification:${c}:${e}`,{type:"new_notification",notificationUuid:i?.uuid,unreadCount:h,action:k?.action,actorName:k?.actorName,entityTitle:k?.entityTitle,entityType:k?.entityType,entityUuid:k?.entityUuid,projectUuid:k?.projectUuid})}return b.map(h)}async function j(a,b,c){return e.z.notification.count({where:{companyUuid:a,recipientType:b,recipientUuid:c,readAt:null,archivedAt:null}})}async function k(a,b,c){let d=await e.z.notificationPreference.findUnique({where:{ownerType_ownerUuid:{ownerType:b,ownerUuid:c}}});return d||(d=await e.z.notificationPreference.create({data:{companyUuid:a,ownerType:b,ownerUuid:c}})),{uuid:d.uuid,ownerType:d.ownerType,ownerUuid:d.ownerUuid,taskAssigned:d.taskAssigned,taskStatusChanged:d.taskStatusChanged,taskVerified:d.taskVerified,taskReopened:d.taskReopened,proposalSubmitted:d.proposalSubmitted,proposalApproved:d.proposalApproved,proposalRejected:d.proposalRejected,ideaClaimed:d.ideaClaimed,commentAdded:d.commentAdded,elaborationRequested:d.elaborationRequested,elaborationAnswered:d.elaborationAnswered,mentioned:d.mentioned}}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},68694:(a,b,c)=>{let d=c(83997),e=c(28354);b.init=function(a){a.inspectOpts={};let c=Object.keys(b.inspectOpts);for(let d=0;d<c.length;d++)a.inspectOpts[c[d]]=b.inspectOpts[c[d]]},b.log=function(...a){return process.stderr.write(e.formatWithOptions(b.inspectOpts,...a)+"\n")},b.formatArgs=function(c){let{namespace:d,useColors:e}=this;if(e){let b=this.color,e="\x1b[3"+(b<8?b:"8;5;"+b),f=` ${e};1m${d} \u001B[0m`;c[0]=f+c[0].split("\n").join("\n"+f),c.push(e+"m+"+a.exports.humanize(this.diff)+"\x1b[0m")}else c[0]=(b.inspectOpts.hideDate?"":new Date().toISOString()+" ")+d+" "+c[0]},b.save=function(a){a?process.env.DEBUG=a:delete process.env.DEBUG},b.load=function(){return process.env.DEBUG},b.useColors=function(){return"colors"in b.inspectOpts?!!b.inspectOpts.colors:d.isatty(process.stderr.fd)},b.destroy=e.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),b.colors=[6,2,3,4,5,1];try{let a=c(22618);a&&(a.stderr||a).level>=2&&(b.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(a){}b.inspectOpts=Object.keys(process.env).filter(a=>/^debug_/i.test(a)).reduce((a,b)=>{let c=b.substring(6).toLowerCase().replace(/_([a-z])/g,(a,b)=>b.toUpperCase()),d=process.env[b];return d=!!/^(yes|on|true|enabled)$/i.test(d)||!/^(no|off|false|disabled)$/i.test(d)&&("null"===d?null:Number(d)),a[c]=d,a},{}),a.exports=c(950)(b);let{formatters:f}=a.exports;f.o=function(a){return this.inspectOpts.colors=this.useColors,e.inspect(a,this.inspectOpts).split("\n").map(a=>a.trim()).join(" ")},f.O=function(a){return this.inspectOpts.colors=this.useColors,e.inspect(a,this.inspectOpts)}},73380:a=>{"use strict";function b(a,b){var b=b||{};this._capacity=b.capacity,this._head=0,this._tail=0,Array.isArray(a)?this._fromArray(a):(this._capacityMask=3,this._list=[,,,,])}b.prototype.peekAt=function(a){var b=a;if(b===(0|b)){var c=this.size();if(!(b>=c)&&!(b<-c))return b<0&&(b+=c),b=this._head+b&this._capacityMask,this._list[b]}},b.prototype.get=function(a){return this.peekAt(a)},b.prototype.peek=function(){if(this._head!==this._tail)return this._list[this._head]},b.prototype.peekFront=function(){return this.peek()},b.prototype.peekBack=function(){return this.peekAt(-1)},Object.defineProperty(b.prototype,"length",{get:function(){return this.size()}}),b.prototype.size=function(){return this._head===this._tail?0:this._head<this._tail?this._tail-this._head:this._capacityMask+1-(this._head-this._tail)},b.prototype.unshift=function(a){if(0==arguments.length)return this.size();var b=this._list.length;return(this._head=this._head-1+b&this._capacityMask,this._list[this._head]=a,this._tail===this._head&&this._growArray(),this._capacity&&this.size()>this._capacity&&this.pop(),this._head<this._tail)?this._tail-this._head:this._capacityMask+1-(this._head-this._tail)},b.prototype.shift=function(){var a=this._head;if(a!==this._tail){var b=this._list[a];return this._list[a]=void 0,this._head=a+1&this._capacityMask,a<2&&this._tail>1e4&&this._tail<=this._list.length>>>2&&this._shrinkArray(),b}},b.prototype.push=function(a){if(0==arguments.length)return this.size();var b=this._tail;return(this._list[b]=a,this._tail=b+1&this._capacityMask,this._tail===this._head&&this._growArray(),this._capacity&&this.size()>this._capacity&&this.shift(),this._head<this._tail)?this._tail-this._head:this._capacityMask+1-(this._head-this._tail)},b.prototype.pop=function(){var a=this._tail;if(a!==this._head){var b=this._list.length;this._tail=a-1+b&this._capacityMask;var c=this._list[this._tail];return this._list[this._tail]=void 0,this._head<2&&a>1e4&&a<=b>>>2&&this._shrinkArray(),c}},b.prototype.removeOne=function(a){var b,c=a;if(c===(0|c)&&this._head!==this._tail){var d=this.size(),e=this._list.length;if(!(c>=d)&&!(c<-d)){c<0&&(c+=d),c=this._head+c&this._capacityMask;var f=this._list[c];if(a<d/2){for(b=a;b>0;b--)this._list[c]=this._list[c=c-1+e&this._capacityMask];this._list[c]=void 0,this._head=this._head+1+e&this._capacityMask}else{for(b=d-1-a;b>0;b--)this._list[c]=this._list[c=c+1+e&this._capacityMask];this._list[c]=void 0,this._tail=this._tail-1+e&this._capacityMask}return f}}},b.prototype.remove=function(a,b){var c,d,e=a,f=b;if(e===(0|e)&&this._head!==this._tail){var g=this.size(),h=this._list.length;if(!(e>=g)&&!(e<-g)&&!(b<1)){if(e<0&&(e+=g),1===b||!b)return(c=[,])[0]=this.removeOne(e),c;if(0===e&&e+b>=g)return c=this.toArray(),this.clear(),c;for(e+b>g&&(b=g-e),c=Array(b),d=0;d<b;d++)c[d]=this._list[this._head+e+d&this._capacityMask];if(e=this._head+e&this._capacityMask,a+b===g){for(this._tail=this._tail-b+h&this._capacityMask,d=b;d>0;d--)this._list[e=e+1+h&this._capacityMask]=void 0;return c}if(0===a){for(this._head=this._head+b+h&this._capacityMask,d=b-1;d>0;d--)this._list[e=e+1+h&this._capacityMask]=void 0;return c}if(e<g/2){for(this._head=this._head+a+b+h&this._capacityMask,d=a;d>0;d--)this.unshift(this._list[e=e-1+h&this._capacityMask]);for(e=this._head-1+h&this._capacityMask;f>0;)this._list[e=e-1+h&this._capacityMask]=void 0,f--;a<0&&(this._tail=e)}else{for(this._tail=e,e=e+b+h&this._capacityMask,d=g-(b+a);d>0;d--)this.push(this._list[e++]);for(e=this._tail;f>0;)this._list[e=e+1+h&this._capacityMask]=void 0,f--}return this._head<2&&this._tail>1e4&&this._tail<=h>>>2&&this._shrinkArray(),c}}},b.prototype.splice=function(a,b){var c=a;if(c===(0|c)){var d=this.size();if(c<0&&(c+=d),!(c>d))if(!(arguments.length>2))return this.remove(c,b);else{var e,f,g,h=arguments.length,i=this._list.length,j=2;if(!d||c<d/2){for(e=0,f=Array(c);e<c;e++)f[e]=this._list[this._head+e&this._capacityMask];for(0===b?(g=[],c>0&&(this._head=this._head+c+i&this._capacityMask)):(g=this.remove(c,b),this._head=this._head+c+i&this._capacityMask);h>j;)this.unshift(arguments[--h]);for(e=c;e>0;e--)this.unshift(f[e-1])}else{var k=(f=Array(d-(c+b))).length;for(e=0;e<k;e++)f[e]=this._list[this._head+c+b+e&this._capacityMask];for(0===b?(g=[],c!=d&&(this._tail=this._head+c+i&this._capacityMask)):(g=this.remove(c,b),this._tail=this._tail-k+i&this._capacityMask);j<h;)this.push(arguments[j++]);for(e=0;e<k;e++)this.push(f[e])}return g}}},b.prototype.clear=function(){this._list=Array(this._list.length),this._head=0,this._tail=0},b.prototype.isEmpty=function(){return this._head===this._tail},b.prototype.toArray=function(){return this._copyArray(!1)},b.prototype._fromArray=function(a){var b=a.length,c=this._nextPowerOf2(b);this._list=Array(c),this._capacityMask=c-1,this._tail=b;for(var d=0;d<b;d++)this._list[d]=a[d]},b.prototype._copyArray=function(a,b){var c,d=this._list,e=d.length,f=this.length;if((b|=f)==f&&this._head<this._tail)return this._list.slice(this._head,this._tail);var g=Array(b),h=0;if(a||this._head>this._tail){for(c=this._head;c<e;c++)g[h++]=d[c];for(c=0;c<this._tail;c++)g[h++]=d[c]}else for(c=this._head;c<this._tail;c++)g[h++]=d[c];return g},b.prototype._growArray=function(){if(0!=this._head){var a=this._copyArray(!0,this._list.length<<1);this._tail=this._list.length,this._head=0,this._list=a}else this._tail=this._list.length,this._list.length<<=1;this._capacityMask=this._capacityMask<<1|1},b.prototype._shrinkArray=function(){this._list.length>>>=1,this._capacityMask>>>=1},b.prototype._nextPowerOf2=function(a){return Math.max(1<<Math.log(a)/Math.log(2)+1,4)},a.exports=b},77210:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.DEFAULT_REDIS_OPTIONS=void 0,b.DEFAULT_REDIS_OPTIONS={port:6379,host:"localhost",family:0,connectTimeout:1e4,disconnectTimeout:2e3,retryStrategy:function(a){return Math.min(50*a,2e3)},keepAlive:0,noDelay:!0,connectionName:null,disableClientInfo:!1,clientInfoTag:void 0,sentinels:null,name:null,role:"master",sentinelRetryStrategy:function(a){return Math.min(10*a,1e3)},sentinelReconnectStrategy:function(){return 6e4},natMap:null,enableTLSForSentinelMode:!1,updateSentinels:!0,failoverDetector:!1,username:null,password:null,db:0,enableOfflineQueue:!0,enableReadyCheck:!0,autoResubscribe:!0,autoResendUnfulfilledCommands:!0,lazyConnect:!1,keyPrefix:"",reconnectOnError:null,readOnly:!1,stringNumbers:!1,maxRetriesPerRequest:20,maxLoadingRetryTime:1e4,enableAutoPipelining:!1,autoPipeliningIgnoredCommands:[],sentinelMaxConnections:10,blockingTimeoutGrace:100}},77318:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.isArguments=b.defaults=b.noop=void 0,b.defaults=c(47611),b.isArguments=c(93293),b.noop=function(){}},79651:(a,b,c)=>{"use strict";let d=c(12412),e=c(28354);function f(a){Object.defineProperty(this,"message",{value:a||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}function g(a,b,c){d(b),d.strictEqual(typeof c,"number"),Object.defineProperty(this,"message",{value:a||"",configurable:!0,writable:!0});let e=Error.stackTraceLimit;Error.stackTraceLimit=2,Error.captureStackTrace(this,this.constructor),Error.stackTraceLimit=e,this.offset=c,this.buffer=b}function h(a){Object.defineProperty(this,"message",{value:a||"",configurable:!0,writable:!0});let b=Error.stackTraceLimit;Error.stackTraceLimit=2,Error.captureStackTrace(this,this.constructor),Error.stackTraceLimit=b}function i(a){Object.defineProperty(this,"message",{value:a||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}function j(a){Object.defineProperty(this,"message",{value:a||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}e.inherits(f,Error),Object.defineProperty(f.prototype,"name",{value:"RedisError",configurable:!0,writable:!0}),e.inherits(g,f),Object.defineProperty(g.prototype,"name",{value:"ParserError",configurable:!0,writable:!0}),e.inherits(h,f),Object.defineProperty(h.prototype,"name",{value:"ReplyError",configurable:!0,writable:!0}),e.inherits(i,f),Object.defineProperty(i.prototype,"name",{value:"AbortError",configurable:!0,writable:!0}),e.inherits(j,i),Object.defineProperty(j.prototype,"name",{value:"InterruptError",configurable:!0,writable:!0}),a.exports={RedisError:f,ParserError:g,ReplyError:h,AbortError:i,InterruptError:j}},80037:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{M:()=>J});var e=c(96009),f=c(11309),g=c(64939),h=c(53172),i=a([g]);g=(i.then?(await i)():i)[0];var j="@prisma/adapter-pg",{types:k}=g.default,{builtins:l,getTypeParser:m}=k,n={NAME:19},o={BIT_ARRAY:1561,BOOL_ARRAY:1e3,BYTEA_ARRAY:1001,BPCHAR_ARRAY:1014,CHAR_ARRAY:1002,CIDR_ARRAY:651,DATE_ARRAY:1182,FLOAT4_ARRAY:1021,FLOAT8_ARRAY:1022,INET_ARRAY:1041,INT2_ARRAY:1005,INT4_ARRAY:1007,INT8_ARRAY:1016,JSONB_ARRAY:3807,JSON_ARRAY:199,MONEY_ARRAY:791,NUMERIC_ARRAY:1231,OID_ARRAY:1028,TEXT_ARRAY:1009,TIMESTAMP_ARRAY:1115,TIMESTAMPTZ_ARRAY:1185,TIME_ARRAY:1183,UUID_ARRAY:2951,VARBIT_ARRAY:1563,VARCHAR_ARRAY:1015,XML_ARRAY:143},p=class a extends Error{static typeNames={16:"bool",17:"bytea",18:"char",19:"name",20:"int8",21:"int2",22:"int2vector",23:"int4",24:"regproc",25:"text",26:"oid",27:"tid",28:"xid",29:"cid",30:"oidvector",32:"pg_ddl_command",71:"pg_type",75:"pg_attribute",81:"pg_proc",83:"pg_class",114:"json",142:"xml",194:"pg_node_tree",269:"table_am_handler",325:"index_am_handler",600:"point",601:"lseg",602:"path",603:"box",604:"polygon",628:"line",650:"cidr",700:"float4",701:"float8",705:"unknown",718:"circle",774:"macaddr8",790:"money",829:"macaddr",869:"inet",1033:"aclitem",1042:"bpchar",1043:"varchar",1082:"date",1083:"time",1114:"timestamp",1184:"timestamptz",1186:"interval",1266:"timetz",1560:"bit",1562:"varbit",1700:"numeric",1790:"refcursor",2202:"regprocedure",2203:"regoper",2204:"regoperator",2205:"regclass",2206:"regtype",2249:"record",2275:"cstring",2276:"any",2277:"anyarray",2278:"void",2279:"trigger",2280:"language_handler",2281:"internal",2283:"anyelement",2287:"_record",2776:"anynonarray",2950:"uuid",2970:"txid_snapshot",3115:"fdw_handler",3220:"pg_lsn",3310:"tsm_handler",3361:"pg_ndistinct",3402:"pg_dependencies",3500:"anyenum",3614:"tsvector",3615:"tsquery",3642:"gtsvector",3734:"regconfig",3769:"regdictionary",3802:"jsonb",3831:"anyrange",3838:"event_trigger",3904:"int4range",3906:"numrange",3908:"tsrange",3910:"tstzrange",3912:"daterange",3926:"int8range",4072:"jsonpath",4089:"regnamespace",4096:"regrole",4191:"regcollation",4451:"int4multirange",4532:"nummultirange",4533:"tsmultirange",4534:"tstzmultirange",4535:"datemultirange",4536:"int8multirange",4537:"anymultirange",4538:"anycompatiblemultirange",4600:"pg_brin_bloom_summary",4601:"pg_brin_minmax_multi_summary",5017:"pg_mcv_list",5038:"pg_snapshot",5069:"xid8",5077:"anycompatible",5078:"anycompatiblearray",5079:"anycompatiblenonarray",5080:"anycompatiblerange"};type;constructor(b){super(),this.type=a.typeNames[b]||"Unknown",this.message=`Unsupported column type ${this.type}`}};function q(a){return b=>(0,h.q)(b,a)}function r(a){return a}function s(a){return a}function t(a){return`${a.replace(" ","T")}+00:00`}function u(a){return a.replace(" ","T").replace(/[+-]\d{2}(:\d{2})?$/,"+00:00")}function v(a){return a}function w(a){return a.slice(1)}function x(a){return a}var y=m(l.BYTEA),z=m(o.BYTEA_ARRAY);function A(a){return a}var B={[l.NUMERIC]:r,[o.NUMERIC_ARRAY]:q(r),[l.TIME]:v,[o.TIME_ARRAY]:q(v),[l.TIMETZ]:function(a){return a.replace(/[+-]\d{2}(:\d{2})?$/,"")},[l.DATE]:s,[o.DATE_ARRAY]:q(s),[l.TIMESTAMP]:t,[o.TIMESTAMP_ARRAY]:q(t),[l.TIMESTAMPTZ]:u,[o.TIMESTAMPTZ_ARRAY]:q(u),[l.MONEY]:w,[o.MONEY_ARRAY]:q(w),[l.JSON]:x,[o.JSON_ARRAY]:q(x),[l.JSONB]:x,[o.JSONB_ARRAY]:q(x),[l.BYTEA]:function(a){return y(a)},[o.BYTEA_ARRAY]:z,[o.BIT_ARRAY]:q(A),[o.VARBIT_ARRAY]:q(A),[o.XML_ARRAY]:q(function(a){return a})},C=new Set(["UNABLE_TO_GET_ISSUER_CERT","UNABLE_TO_GET_CRL","UNABLE_TO_DECRYPT_CERT_SIGNATURE","UNABLE_TO_DECRYPT_CRL_SIGNATURE","UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY","CERT_SIGNATURE_FAILURE","CRL_SIGNATURE_FAILURE","CERT_NOT_YET_VALID","CERT_HAS_EXPIRED","CRL_NOT_YET_VALID","CRL_HAS_EXPIRED","ERROR_IN_CERT_NOT_BEFORE_FIELD","ERROR_IN_CERT_NOT_AFTER_FIELD","ERROR_IN_CRL_LAST_UPDATE_FIELD","ERROR_IN_CRL_NEXT_UPDATE_FIELD","DEPTH_ZERO_SELF_SIGNED_CERT","SELF_SIGNED_CERT_IN_CHAIN","UNABLE_TO_GET_ISSUER_CERT_LOCALLY","UNABLE_TO_VERIFY_LEAF_SIGNATURE","CERT_CHAIN_TOO_LONG","CERT_REVOKED","INVALID_CA","INVALID_PURPOSE","CERT_UNTRUSTED","CERT_REJECTED","HOSTNAME_MISMATCH","ERR_TLS_CERT_ALTNAME_FORMAT","ERR_TLS_CERT_ALTNAME_INVALID"]),D=new Set(["ENOTFOUND","ECONNREFUSED","ECONNRESET","ETIMEDOUT"]),E=g.default.types,F=(0,e.y)("prisma:driver-adapter:pg"),G=class{constructor(a,b){this.client=a,this.pgOptions=b}provider="postgres";adapterName=j;async queryRaw(a){F("[js::query_raw] %O",a);let{fields:b,rows:c}=await this.performIO(a),d=b.map(a=>a.name),e=[];try{e=b.map(a=>(function(a){switch(a){case l.INT2:case l.INT4:return f.UE.Int32;case l.INT8:return f.UE.Int64;case l.FLOAT4:return f.UE.Float;case l.FLOAT8:return f.UE.Double;case l.BOOL:return f.UE.Boolean;case l.DATE:return f.UE.Date;case l.TIME:case l.TIMETZ:return f.UE.Time;case l.TIMESTAMP:case l.TIMESTAMPTZ:return f.UE.DateTime;case l.NUMERIC:case l.MONEY:return f.UE.Numeric;case l.JSON:case l.JSONB:return f.UE.Json;case l.UUID:return f.UE.Uuid;case l.OID:return f.UE.Int64;case l.BPCHAR:case l.TEXT:case l.VARCHAR:case l.BIT:case l.VARBIT:case l.INET:case l.CIDR:case l.XML:case n.NAME:return f.UE.Text;case l.BYTEA:return f.UE.Bytes;case o.INT2_ARRAY:case o.INT4_ARRAY:return f.UE.Int32Array;case o.FLOAT4_ARRAY:return f.UE.FloatArray;case o.FLOAT8_ARRAY:return f.UE.DoubleArray;case o.NUMERIC_ARRAY:case o.MONEY_ARRAY:return f.UE.NumericArray;case o.BOOL_ARRAY:return f.UE.BooleanArray;case o.CHAR_ARRAY:return f.UE.CharacterArray;case o.BPCHAR_ARRAY:case o.TEXT_ARRAY:case o.VARCHAR_ARRAY:case o.VARBIT_ARRAY:case o.BIT_ARRAY:case o.INET_ARRAY:case o.CIDR_ARRAY:case o.XML_ARRAY:return f.UE.TextArray;case o.DATE_ARRAY:return f.UE.DateArray;case o.TIME_ARRAY:return f.UE.TimeArray;case o.TIMESTAMP_ARRAY:case o.TIMESTAMPTZ_ARRAY:return f.UE.DateTimeArray;case o.JSON_ARRAY:case o.JSONB_ARRAY:return f.UE.JsonArray;case o.BYTEA_ARRAY:return f.UE.BytesArray;case o.UUID_ARRAY:return f.UE.UuidArray;case o.INT8_ARRAY:case o.OID_ARRAY:return f.UE.Int64Array;default:if(a>=16384)return f.UE.Text;throw new p(a)}})(a.dataTypeID))}catch(a){if(a instanceof p)throw new f.sL({kind:"UnsupportedNativeDataType",type:a.type});throw a}let g=this.pgOptions?.userDefinedTypeParser;if(g)for(let a=0;a<b.length;a++){let d=b[a];if(d.dataTypeID>=16384&&!Object.hasOwn(B,d.dataTypeID))for(let b=0;b<c.length;b++)c[b][a]=await g(d.dataTypeID,c[b][a],this)}return{columnNames:d,columnTypes:e,rows:c}}async executeRaw(a){return F("[js::execute_raw] %O",a),(await this.performIO(a)).rowCount??0}async performIO(a){let{sql:b,args:c}=a,d=c.map((b,c)=>(function a(b,c){if(null===b)return null;if(Array.isArray(b)&&"list"===c.arity)return b.map(b=>a(b,c));if("string"==typeof b&&"datetime"===c.scalarType&&(b=new Date(b)),b instanceof Date)switch(c.dbType){case"TIME":case"TIMETZ":var d=b;let e=(a,b=2)=>String(a).padStart(b,"0"),f=d.getUTCMilliseconds();return e(d.getUTCHours())+":"+e(d.getUTCMinutes())+":"+e(d.getUTCSeconds())+(f?"."+String(f).padStart(3,"0"):"");case"DATE":var g=b;let h=(a,b=2)=>String(a).padStart(b,"0");return h(g.getUTCFullYear(),4)+"-"+h(g.getUTCMonth()+1)+"-"+h(g.getUTCDate());default:var i=b;let j=(a,b=2)=>String(a).padStart(b,"0"),k=i.getUTCMilliseconds();return j(i.getUTCFullYear(),4)+"-"+j(i.getUTCMonth()+1)+"-"+j(i.getUTCDate())+" "+j(i.getUTCHours())+":"+j(i.getUTCMinutes())+":"+j(i.getUTCSeconds())+(k?"."+String(k).padStart(3,"0"):"")}return"string"==typeof b&&"bytes"===c.scalarType?Buffer.from(b,"base64"):ArrayBuffer.isView(b)?new Uint8Array(b.buffer,b.byteOffset,b.byteLength):b})(b,a.argTypes[c]));try{return await this.client.query({text:b,values:d,rowMode:"array",types:{getTypeParser:(a,b)=>"text"===b&&B[a]?B[a]:E.getTypeParser(a,b)}},d)}catch(a){this.onError(a)}}onError(a){throw F("Error in performIO: %O",a),new f.sL(function(a){if(b=a,"string"==typeof b.code&&"string"==typeof b.syscall&&"number"==typeof b.errno&&D.has(b.code)){var b,c,d=a;switch(d.code){case"ENOTFOUND":case"ECONNREFUSED":return{kind:"DatabaseNotReachable",host:d.address??d.hostname,port:d.port};case"ECONNRESET":return{kind:"ConnectionClosed"};case"ETIMEDOUT":return{kind:"SocketTimeout"}}return}if(function(a){if("string"==typeof a.code)return C.has(a.code);switch(a.message){case"The server does not support SSL connections":case"There was an error establishing an SSL connection":return!0}return!1}(a))return{kind:"TlsConnectionError",reason:a.message};if(c=a,"string"==typeof c.code&&"string"==typeof c.message&&"string"==typeof c.severity&&("string"==typeof c.detail||void 0===c.detail)&&("string"==typeof c.column||void 0===c.column)&&("string"==typeof c.hint||void 0===c.hint))return{originalCode:a.code,originalMessage:a.message,...function(a){switch(a.code){case"22001":return{kind:"LengthMismatch",column:a.column};case"22003":return{kind:"ValueOutOfRange",cause:a.message};case"22P02":return{kind:"InvalidInputValue",message:a.message};case"23505":{let b=a.detail?.match(/Key \(([^)]+)\)/)?.at(1)?.split(", ");return{kind:"UniqueConstraintViolation",constraint:void 0!==b?{fields:b}:void 0}}case"23502":{let b=a.detail?.match(/Key \(([^)]+)\)/)?.at(1)?.split(", ");return{kind:"NullConstraintViolation",constraint:void 0!==b?{fields:b}:void 0}}case"23503":{let b;return a.column?b={fields:[a.column]}:a.constraint&&(b={index:a.constraint}),{kind:"ForeignKeyConstraintViolation",constraint:b}}case"3D000":return{kind:"DatabaseDoesNotExist",db:a.message.split(" ").at(1)?.split('"').at(1)};case"28000":return{kind:"DatabaseAccessDenied",db:a.message.split(",").find(a=>a.startsWith(" database"))?.split('"').at(1)};case"28P01":return{kind:"AuthenticationFailed",user:a.message.split(" ").pop()?.split('"').at(1)};case"40001":return{kind:"TransactionWriteConflict"};case"42P01":return{kind:"TableDoesNotExist",table:a.message.split(" ").at(1)?.split('"').at(1)};case"42703":return{kind:"ColumnNotFound",column:a.message.split(" ").at(1)?.split('"').at(1)};case"42P04":return{kind:"DatabaseAlreadyExists",db:a.message.split(" ").at(1)?.split('"').at(1)};case"53300":return{kind:"TooManyConnections",cause:a.message};default:return{kind:"postgres",code:a.code??"N/A",severity:a.severity??"N/A",message:a.message,detail:a.detail,column:a.column,hint:a.hint}}}(a)};throw a}(a))}},H=class extends G{constructor(a,b,c,d){super(a,c),this.options=b,this.pgOptions=c,this.cleanup=d}async commit(){F("[js::commit]"),this.cleanup?.(),this.client.release()}async rollback(){F("[js::rollback]"),this.cleanup?.(),this.client.release()}},I=class extends G{constructor(a,b,c){super(a),this.pgOptions=b,this.release=c}async startTransaction(a){let b={usePhantomQuery:!1};F("%s options: %O","[js::startTransaction]",b);let c=await this.client.connect().catch(a=>this.onError(a)),d=a=>{F(`Error from pool connection: ${a.message} %O`,a),this.pgOptions?.onConnectionError?.(a)};c.on("error",d);let e=()=>{c.removeListener("error",d)};try{let d=new H(c,b,this.pgOptions,e);return await d.executeRaw({sql:"BEGIN",args:[],argTypes:[]}),a&&await d.executeRaw({sql:`SET TRANSACTION ISOLATION LEVEL ${a}`,args:[],argTypes:[]}),d}catch(a){e(),c.release(a),this.onError(a)}}async executeScript(a){for(let b of a.split(";").map(a=>a.trim()).filter(a=>a.length>0))try{await this.client.query(b)}catch(a){this.onError(a)}}getConnectionInfo(){return{schemaName:this.pgOptions?.schema,supportsRelationJoins:!0}}async dispose(){return this.release?.()}underlyingDriver(){return this.client}},J=class{constructor(a,b){this.options=b,a instanceof g.default.Pool?(this.externalPool=a,this.config=a.options):(this.externalPool=null,this.config=a)}provider="postgres";adapterName=j;config;externalPool;async connect(){let a=this.externalPool??new g.default.Pool(this.config),b=a=>{F(`Error from idle pool client: ${a.message} %O`,a),this.options?.onPoolError?.(a)};return a.on("error",b),new I(a,this.options,async()=>{this.externalPool?this.options?.disposeExternalPool?(await this.externalPool.end(),this.externalPool=null):this.externalPool.removeListener("error",b):await a.end()})}async connectToShadowDb(){let a=await this.connect(),b=`prisma_migrate_shadow_db_${globalThis.crypto.randomUUID()}`;await a.executeScript(`CREATE DATABASE "${b}"`);let c=new g.default.Pool({...this.config,database:b});return new I(c,void 0,async()=>{await a.executeScript(`DROP DATABASE "${b}"`),await c.end()})}};d()}catch(a){d(a)}})},82161:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(91957),e=c(9666),f=c(881),g=c(28354),h=c(14642),i=c(54187),j=c(96637);class k extends j.default{constructor(a){super(),this.redis=a,this.isPipeline=!0,this.replyPending=0,this._queue=[],this._result=[],this._transactions=0,this._shaToScript={},this.isCluster="Cluster"===this.redis.constructor.name||this.redis.isCluster,this.options=a.options,Object.keys(a.scriptsSet).forEach(b=>{let c=a.scriptsSet[b];this._shaToScript[c.sha]=c,this[b]=a[b],this[b+"Buffer"]=a[b+"Buffer"]}),a.addedBuiltinSet.forEach(b=>{this[b]=a[b],this[b+"Buffer"]=a[b+"Buffer"]}),this.promise=new Promise((a,b)=>{this.resolve=a,this.reject=b});let b=this;Object.defineProperty(this,"length",{get:function(){return b._queue.length}})}fillResult(a,b){if("exec"===this._queue[b].name&&Array.isArray(a[1])){let c=a[1].length;for(let d=0;d<c;d++){if(a[1][d]instanceof Error)continue;let e=this._queue[b-(c-d)];try{a[1][d]=e.transformReply(a[1][d])}catch(b){a[1][d]=b}}}if(this._result[b]=a,--this.replyPending)return;if(this.isCluster){let a,b=!0;for(let c=0;c<this._result.length;++c){let d=this._result[c][0],f=this._queue[c];if(d){if("exec"===f.name&&"EXECABORT Transaction discarded because of previous errors."===d.message)continue;if(a){if(a.name!==d.name||a.message!==d.message){b=!1;break}}else a={name:d.name,message:d.message}}else if(!f.inTransaction&&!((0,e.exists)(f.name,{caseInsensitive:!0})&&(0,e.hasFlag)(f.name,"readonly",{nameCaseInsensitive:!0}))){b=!1;break}}if(a&&b){let b=this,c=a.message.split(" "),d=this._queue,e=!1;this._queue=[];for(let a=0;a<d.length;++a){if("ASK"===c[0]&&!e&&"asking"!==d[a].name&&(!d[a-1]||"asking"!==d[a-1].name)){let a=new h.default("asking");a.ignore=!0,this.sendCommand(a)}d[a].initPromise(),this.sendCommand(d[a]),e=d[a].inTransaction}let f=!0;void 0===this.leftRedirections&&(this.leftRedirections={});let g=function(){b.exec()},i=this.redis;if(i.handleError(a,this.leftRedirections,{moved:function(a,d){b.preferKey=d,i.slots[c[1]]?i.slots[c[1]][0]!==d&&(i.slots[c[1]]=[d]):i.slots[c[1]]=[d],i._groupsBySlot[c[1]]=i._groupsIds[i.slots[c[1]].join(";")],i.refreshSlotsCache(),b.exec()},ask:function(a,c){b.preferKey=c,b.exec()},tryagain:g,clusterDown:g,connectionClosed:g,maxRedirections:()=>{f=!1},defaults:()=>{f=!1}}),f)return}}let c=0;for(let a=0;a<this._queue.length-c;++a)this._queue[a+c].ignore&&(c+=1),this._result[a]=this._result[a+c];this.resolve(this._result.slice(0,this._result.length-c))}sendCommand(a){this._transactions>0&&(a.inTransaction=!0);let b=this._queue.length;return a.pipelineIndex=b,a.promise.then(a=>{this.fillResult([null,a],b)}).catch(a=>{this.fillResult([a],b)}),this._queue.push(a),this}addBatch(a){let b,c,d;for(let e=0;e<a.length;++e)c=(b=a[e])[0],d=b.slice(1),this[c].apply(this,d);return this}}b.default=k;let l=k.prototype.multi;k.prototype.multi=function(){return this._transactions+=1,l.apply(this,arguments)};let m=k.prototype.execBuffer;k.prototype.execBuffer=(0,g.deprecate)(function(){return this._transactions>0&&(this._transactions-=1),m.apply(this,arguments)},"Pipeline#execBuffer: Use Pipeline#exec instead"),k.prototype.exec=function(a){let b;if(this.isCluster&&!this.redis.slots.length)return"wait"===this.redis.status&&this.redis.connect().catch(i.noop),a&&!this.nodeifiedPromise&&(this.nodeifiedPromise=!0,(0,f.default)(this.promise,a)),this.redis.delayUntilReady(b=>{if(b)return void this.reject(b);this.exec(a)}),this.promise;if(this._transactions>0)return this._transactions-=1,m.apply(this,arguments);if(this.nodeifiedPromise||(this.nodeifiedPromise=!0,(0,f.default)(this.promise,a)),this._queue.length||this.resolve([]),this.isCluster){let a=[];for(let b=0;b<this._queue.length;b++){let c=this._queue[b].getKeys();if(c.length&&a.push(c[0]),c.length&&0>d.generateMulti(c))return this.reject(Error("All the keys in a pipeline command should belong to the same slot")),this.promise}if(a.length){if((b=function(a,b){let c=d(b[0]),e=a._groupsBySlot[c];for(let c=1;c<b.length;c++)if(a._groupsBySlot[d(b[c])]!==e)return -1;return c}(this.redis,a))<0)return this.reject(Error("All keys in the pipeline should belong to the same slots allocation group")),this.promise}else b=16384*Math.random()|0}let c=this;return function(){let a,d,e=c.replyPending=c._queue.length;c.isCluster&&(a={slot:b,redis:c.redis.connectionPool.nodes.all[c.preferKey]});let f="",g={isPipeline:!0,destination:c.isCluster?a:{redis:c.redis},write(a){"string"!=typeof a?(d||(d=[]),f&&(d.push(Buffer.from(f,"utf8")),f=""),d.push(a)):f+=a,--e||(d?(f&&d.push(Buffer.from(f,"utf8")),g.destination.redis.stream.write(Buffer.concat(d))):g.destination.redis.stream.write(f),e=c._queue.length,f="",d=void 0)}};for(let b=0;b<c._queue.length;++b)c.redis.sendCommand(c._queue[b],g,a);c.promise}(),this.promise}},85316:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.parseBlockOption=b.parseSecondsArgument=void 0;let c=a=>{if("number"==typeof a)return a;if(Buffer.isBuffer(a))return c(a.toString());if("string"==typeof a){let b=Number(a);return Number.isFinite(b)?b:void 0}},d=a=>"string"==typeof a?a:Buffer.isBuffer(a)?a.toString():void 0;b.parseSecondsArgument=a=>{let b=c(a);if(void 0!==b)return b<=0?0:1e3*b},b.parseBlockOption=a=>{for(let b=0;b<a.length;b++){let e=d(a[b]);if(e&&"block"===e.toLowerCase()){let d=c(a[b+1]);if(void 0===d)return;if(d<=0)return 0;return d}}return null}},87630:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.default=function(a,b){Object.getOwnPropertyNames(b.prototype).forEach(c=>{Object.defineProperty(a.prototype,c,Object.getOwnPropertyDescriptor(b.prototype,c))})}},88568:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(9666),e=c(94735),f=c(881),g=c(55058),h=c(14642),i=c(22009),j=c(15789),k=c(52580),l=c(77210),m=c(30644),n=c(24281),o=c(54187),p=c(87630),q=c(96637),r=c(77318),s=c(73380),t=(0,o.Debug)("redis");class u extends q.default{constructor(a,b,c){if(super(),this.status="wait",this.isCluster=!1,this.reconnectTimeout=null,this.connectionEpoch=0,this.retryAttempts=0,this.manuallyClosing=!1,this._autoPipelines=new Map,this._runningAutoPipelines=new Set,this.parseOptions(a,b,c),e.EventEmitter.call(this),this.resetCommandQueue(),this.resetOfflineQueue(),this.options.Connector)this.connector=new this.options.Connector(this.options);else if(this.options.sentinels){let a=new j.default(this.options);a.emitter=this,this.connector=a}else this.connector=new i.StandaloneConnector(this.options);this.options.scripts&&Object.entries(this.options.scripts).forEach(([a,b])=>{this.defineCommand(a,b)}),this.options.lazyConnect?this.setStatus("wait"):this.connect().catch(r.noop)}static createClient(...a){return new u(...a)}get autoPipelineQueueSize(){let a=0;for(let b of this._autoPipelines.values())a+=b.length;return a}connect(a){let b=new Promise((a,b)=>{if("connecting"===this.status||"connect"===this.status||"ready"===this.status)return void b(Error("Redis is already connecting/connected"));this.connectionEpoch+=1,this.setStatus("connecting");let{options:c}=this;this.condition={select:c.db,auth:c.username?[c.username,c.password]:c.password,subscriber:!1};let d=this;(0,f.default)(this.connector.connect(function(a,b){d.silentEmit(a,b)}),function(e,f){if(e){d.flushQueue(e),d.silentEmit("error",e),b(e),d.setStatus("end");return}let g=c.tls?"secureConnect":"connect";if("sentinels"in c&&c.sentinels&&!c.enableTLSForSentinelMode&&(g="connect"),d.stream=f,c.noDelay&&f.setNoDelay(!0),"number"==typeof c.keepAlive&&(f.connecting?f.once(g,()=>{f.setKeepAlive(!0,c.keepAlive)}):f.setKeepAlive(!0,c.keepAlive)),f.connecting){if(f.once(g,k.connectHandler(d)),c.connectTimeout){let a=!1;f.setTimeout(c.connectTimeout,function(){if(a)return;f.setTimeout(0),f.destroy();let b=Error("connect ETIMEDOUT");b.errorno="ETIMEDOUT",b.code="ETIMEDOUT",b.syscall="connect",k.errorHandler(d)(b)}),f.once(g,function(){a=!0,f.setTimeout(0)})}}else if(f.destroyed){let a=d.connector.firstError;a&&process.nextTick(()=>{k.errorHandler(d)(a)}),process.nextTick(k.closeHandler(d))}else process.nextTick(k.connectHandler(d));f.destroyed||(f.once("error",k.errorHandler(d)),f.once("close",k.closeHandler(d)));let h=function(){d.removeListener("close",i),a()};var i=function(){d.removeListener("ready",h),b(Error(o.CONNECTION_CLOSED_ERROR_MSG))};d.once("ready",h),d.once("close",i)})});return(0,f.default)(b,a)}disconnect(a=!1){a||(this.manuallyClosing=!0),this.reconnectTimeout&&!a&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),"wait"===this.status?k.closeHandler(this)():this.connector.disconnect()}end(){this.disconnect()}duplicate(a){return new u({...this.options,...a})}get mode(){var a;return this.options.monitor?"monitor":(null==(a=this.condition)?void 0:a.subscriber)?"subscriber":"normal"}monitor(a){let b=this.duplicate({monitor:!0,lazyConnect:!1});return(0,f.default)(new Promise(function(a,c){b.once("error",c),b.once("monitoring",function(){a(b)})}),a)}sendCommand(a,b){var c,e;if("wait"===this.status&&this.connect().catch(r.noop),"end"===this.status)return a.reject(Error(o.CONNECTION_CLOSED_ERROR_MSG)),a.promise;if((null==(c=this.condition)?void 0:c.subscriber)&&!h.default.checkFlag("VALID_IN_SUBSCRIBER_MODE",a.name))return a.reject(Error("Connection in subscriber mode, only subscriber commands may be used")),a.promise;"number"==typeof this.options.commandTimeout&&a.setTimeout(this.options.commandTimeout);let f=this.getBlockingTimeoutInMs(a),g="ready"===this.status||!b&&"connect"===this.status&&(0,d.exists)(a.name,{caseInsensitive:!0})&&((0,d.hasFlag)(a.name,"loading",{nameCaseInsensitive:!0})||h.default.checkFlag("HANDSHAKE_COMMANDS",a.name));if(this.stream&&this.stream.writable?this.stream._writableState&&this.stream._writableState.ended&&(g=!1):g=!1,g)t.enabled&&t("write command[%s]: %d -> %s(%o)",this._getDescription(),null==(e=this.condition)?void 0:e.select,a.name,a.args),b?"isPipeline"in b&&b.isPipeline?b.write(a.toWritable(b.destination.redis.stream)):b.write(a.toWritable(b)):this.stream.write(a.toWritable(this.stream)),this.commandQueue.push({command:a,stream:b,select:this.condition.select}),void 0!==f&&a.setBlockingTimeout(f),h.default.checkFlag("WILL_DISCONNECT",a.name)&&(this.manuallyClosing=!0),void 0!==this.options.socketTimeout&&void 0===this.socketTimeoutTimer&&this.setSocketTimeout();else{if(!this.options.enableOfflineQueue)return a.reject(Error("Stream isn't writeable and enableOfflineQueue options is false")),a.promise;if("quit"===a.name&&0===this.offlineQueue.length)return this.disconnect(),a.resolve(Buffer.from("OK")),a.promise;if(t.enabled&&t("queue command[%s]: %d -> %s(%o)",this._getDescription(),this.condition.select,a.name,a.args),this.offlineQueue.push({command:a,stream:b,select:this.condition.select}),h.default.checkFlag("BLOCKING_COMMANDS",a.name)){let b=this.getConfiguredBlockingTimeout();void 0!==b&&a.setBlockingTimeout(b)}}if("select"===a.name&&(0,o.isInt)(a.args[0])){let b=parseInt(a.args[0],10);this.condition.select!==b&&(this.condition.select=b,this.emit("select",b),t("switch to db [%d]",this.condition.select))}return a.promise}getBlockingTimeoutInMs(a){var b;if(!h.default.checkFlag("BLOCKING_COMMANDS",a.name))return;let c=this.getConfiguredBlockingTimeout();if(void 0===c)return;let d=a.extractBlockingTimeout();return"number"==typeof d?d>0?d+(null!=(b=this.options.blockingTimeoutGrace)?b:l.DEFAULT_REDIS_OPTIONS.blockingTimeoutGrace):c:null===d?c:void 0}getConfiguredBlockingTimeout(){if("number"==typeof this.options.blockingTimeout&&this.options.blockingTimeout>0)return this.options.blockingTimeout}setSocketTimeout(){this.socketTimeoutTimer=setTimeout(()=>{this.stream.destroy(Error(`Socket timeout. Expecting data, but didn't receive any in ${this.options.socketTimeout}ms.`)),this.socketTimeoutTimer=void 0},this.options.socketTimeout),this.stream.once("data",()=>{clearTimeout(this.socketTimeoutTimer),this.socketTimeoutTimer=void 0,0!==this.commandQueue.length&&this.setSocketTimeout()})}scanStream(a){return this.createScanStream("scan",{options:a})}scanBufferStream(a){return this.createScanStream("scanBuffer",{options:a})}sscanStream(a,b){return this.createScanStream("sscan",{key:a,options:b})}sscanBufferStream(a,b){return this.createScanStream("sscanBuffer",{key:a,options:b})}hscanStream(a,b){return this.createScanStream("hscan",{key:a,options:b})}hscanBufferStream(a,b){return this.createScanStream("hscanBuffer",{key:a,options:b})}zscanStream(a,b){return this.createScanStream("zscan",{key:a,options:b})}zscanBufferStream(a,b){return this.createScanStream("zscanBuffer",{key:a,options:b})}silentEmit(a,b){let c;if("error"!==a||(c=b,"end"!==this.status&&(!this.manuallyClosing||!(c instanceof Error)||c.message!==o.CONNECTION_CLOSED_ERROR_MSG&&"connect"!==c.syscall&&"read"!==c.syscall)))return this.listeners(a).length>0?this.emit.apply(this,arguments):(c&&c instanceof Error&&console.error("[ioredis] Unhandled error event:",c.stack),!1)}recoverFromFatalError(a,b,c){this.flushQueue(b,c),this.silentEmit("error",b),this.disconnect(!0)}handleReconnection(a,b){var c;let d=!1;switch(this.options.reconnectOnError&&!h.default.checkFlag("IGNORE_RECONNECT_ON_ERROR",b.command.name)&&(d=this.options.reconnectOnError(a)),d){case 1:case!0:"reconnecting"!==this.status&&this.disconnect(!0),b.command.reject(a);break;case 2:"reconnecting"!==this.status&&this.disconnect(!0),(null==(c=this.condition)?void 0:c.select)!==b.select&&"select"!==b.command.name&&this.select(b.select),this.sendCommand(b.command);break;default:b.command.reject(a)}}_getDescription(){let a;return a="path"in this.options&&this.options.path?this.options.path:this.stream&&this.stream.remoteAddress&&this.stream.remotePort?this.stream.remoteAddress+":"+this.stream.remotePort:"host"in this.options&&this.options.host?this.options.host+":"+this.options.port:"",this.options.connectionName&&(a+=` (${this.options.connectionName})`),a}resetCommandQueue(){this.commandQueue=new s}resetOfflineQueue(){this.offlineQueue=new s}parseOptions(...a){let b={},c=!1;for(let d=0;d<a.length;++d){let e=a[d];if(null!=e)if("object"==typeof e)(0,r.defaults)(b,e);else if("string"==typeof e)(0,r.defaults)(b,(0,o.parseURL)(e)),e.startsWith("rediss://")&&(c=!0);else if("number"==typeof e)b.port=e;else throw Error("Invalid argument "+e)}c&&(0,r.defaults)(b,{tls:!0}),(0,r.defaults)(b,u.defaultOptions),"string"==typeof b.port&&(b.port=parseInt(b.port,10)),"string"==typeof b.db&&(b.db=parseInt(b.db,10)),this.options=(0,o.resolveTLSProfile)(b)}setStatus(a,b){t.enabled&&t("status[%s]: %s -> %s",this._getDescription(),this.status||"[empty]",a),this.status=a,process.nextTick(this.emit.bind(this,a,b))}createScanStream(a,{key:b,options:c={}}){return new m.default({objectMode:!0,key:b,redis:this,command:a,...c})}flushQueue(a,b){let c;if((b=(0,r.defaults)({},b,{offlineQueue:!0,commandQueue:!0})).offlineQueue)for(;c=this.offlineQueue.shift();)c.command.reject(a);if(b.commandQueue&&this.commandQueue.length>0)for(this.stream&&this.stream.removeAllListeners("data");c=this.commandQueue.shift();)c.command.reject(a)}_readyCheck(a){let b=this;this.info(function(c,d){if(c)return c.message&&c.message.includes("NOPERM")?(console.warn(`Skipping the ready check because INFO command fails: "${c.message}". You can disable ready check with "enableReadyCheck". More: https://github.com/luin/ioredis/wiki/Disable-ready-check.`),a(null,{})):a(c);if("string"!=typeof d)return a(null,d);let e={},f=d.split("\r\n");for(let a=0;a<f.length;++a){let[b,...c]=f[a].split(":"),d=c.join(":");d&&(e[b]=d)}if(e.loading&&"0"!==e.loading){let c=1e3*(e.loading_eta_seconds||1),d=b.options.maxLoadingRetryTime&&b.options.maxLoadingRetryTime<c?b.options.maxLoadingRetryTime:c;t("Redis server still loading, trying again in "+d+"ms"),setTimeout(function(){b._readyCheck(a)},d)}else a(null,e)}).catch(r.noop)}}u.Cluster=g.default,u.Command=h.default,u.defaultOptions=l.DEFAULT_REDIS_OPTIONS,(0,p.default)(u,e.EventEmitter),(0,n.addTransactionSupport)(u.prototype),b.default=u},89070:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.genRedactedString=b.getStringValue=b.MAX_ARGUMENT_LENGTH=void 0;let d=c(59519);function e(a){if(null!==a)switch(typeof a){case"boolean":case"number":return;case"object":if(Buffer.isBuffer(a))return a.toString("hex");if(Array.isArray(a))return a.join(",");try{return JSON.stringify(a)}catch(a){return}case"string":return a}}function f(a,b){let{length:c}=a;return c<=b?a:a.slice(0,b)+' ... <REDACTED full-length="'+c+'">'}b.MAX_ARGUMENT_LENGTH=200,b.getStringValue=e,b.genRedactedString=f,b.default=function(a){let b=(0,d.default)(`ioredis:${a}`);function c(...a){if(b.enabled){for(let b=1;b<a.length;b++){let c=e(a[b]);"string"==typeof c&&c.length>200&&(a[b]=f(c,200))}return b.apply(null,a)}}return Object.defineProperties(c,{namespace:{get:()=>b.namespace},enabled:{get:()=>b.enabled},destroy:{get:()=>b.destroy},log:{get:()=>b.log,set(a){b.log=a}}}),c}},91957:a=>{var b=[0,4129,8258,12387,16516,20645,24774,28903,33032,37161,41290,45419,49548,53677,57806,61935,4657,528,12915,8786,21173,17044,29431,25302,37689,33560,45947,41818,54205,50076,62463,58334,9314,13379,1056,5121,25830,29895,17572,21637,42346,46411,34088,38153,58862,62927,50604,54669,13907,9842,5649,1584,30423,26358,22165,18100,46939,42874,38681,34616,63455,59390,55197,51132,18628,22757,26758,30887,2112,6241,10242,14371,51660,55789,59790,63919,35144,39273,43274,47403,23285,19156,31415,27286,6769,2640,14899,10770,56317,52188,64447,60318,39801,35672,47931,43802,27814,31879,19684,23749,11298,15363,3168,7233,60846,64911,52716,56781,44330,48395,36200,40265,32407,28342,24277,20212,15891,11826,7761,3696,65439,61374,57309,53244,48923,44858,40793,36728,37256,33193,45514,41451,53516,49453,61774,57711,4224,161,12482,8419,20484,16421,28742,24679,33721,37784,41979,46042,49981,54044,58239,62302,689,4752,8947,13010,16949,21012,25207,29270,46570,42443,38312,34185,62830,58703,54572,50445,13538,9411,5280,1153,29798,25671,21540,17413,42971,47098,34713,38840,59231,63358,50973,55100,9939,14066,1681,5808,26199,30326,17941,22068,55628,51565,63758,59695,39368,35305,47498,43435,22596,18533,30726,26663,6336,2273,14466,10403,52093,56156,60223,64286,35833,39896,43963,48026,19061,23124,27191,31254,2801,6864,10931,14994,64814,60687,56684,52557,48554,44427,40424,36297,31782,27655,23652,19525,15522,11395,7392,3265,61215,65342,53085,57212,44955,49082,36825,40952,28183,32310,20053,24180,11923,16050,3793,7920],c=function(a){for(var b,c=0,d=0,e=[],f=a.length;c<f;c++)(b=a.charCodeAt(c))<128?e[d++]=b:(b<2048?e[d++]=b>>6|192:((64512&b)==55296&&c+1<a.length&&(64512&a.charCodeAt(c+1))==56320?(b=65536+((1023&b)<<10)+(1023&a.charCodeAt(++c)),e[d++]=b>>18|240,e[d++]=b>>12&63|128):e[d++]=b>>12|224,e[d++]=b>>6&63|128),e[d++]=63&b|128);return e},d=a.exports=function(a){for(var d,e=0,f=-1,g=0,h=0,i="string"==typeof a?c(a):a,j=i.length;e<j;){if(d=i[e++],-1===f)123===d&&(f=e);else if(125!==d)h=b[(d^h>>8)&255]^h<<8;else if(e-1!==f)return 16383&h;g=b[(d^g>>8)&255]^g<<8}return 16383&g};a.exports.generateMulti=function(a){for(var b=1,c=a.length,e=d(a[0]);b<c;)if(d(a[b++])!==e)return -1;return e}},93293:a=>{var b=Object.prototype,c=b.hasOwnProperty,d=b.toString,e=b.propertyIsEnumerable;a.exports=function(a){var b,f,g,h,i,j,k,l;return!!(g=b=a)&&"object"==typeof g&&null!=(f=b)&&"number"==typeof(h=f.length)&&h>-1&&h%1==0&&h<=0x1fffffffffffff&&"[object Function]"!=(k=typeof(j=i=f),l=j&&("object"==k||"function"==k)?d.call(i):"")&&"[object GeneratorFunction]"!=l&&c.call(a,"callee")&&(!e.call(a,"callee")||"[object Arguments]"==d.call(a))}},93367:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.MaxRetriesPerRequestError=void 0,b.MaxRetriesPerRequestError=c(51601).default},96009:(a,b,c)=>{"use strict";c.d(b,{y:()=>S});var d,e,f,g,h=Object.defineProperty,i={};((a,b)=>{for(var c in b)h(a,c,{get:b[c],enumerable:!0})})(i,{$:()=>k,bgBlack:()=>E,bgBlue:()=>I,bgCyan:()=>K,bgGreen:()=>G,bgMagenta:()=>J,bgRed:()=>F,bgWhite:()=>L,bgYellow:()=>H,black:()=>u,blue:()=>y,bold:()=>n,cyan:()=>A,dim:()=>o,gray:()=>C,green:()=>w,grey:()=>D,hidden:()=>s,inverse:()=>r,italic:()=>p,magenta:()=>z,red:()=>v,reset:()=>m,strikethrough:()=>t,underline:()=>q,white:()=>B,yellow:()=>x});var j=!0;"undefined"!=typeof process&&({FORCE_COLOR:d,NODE_DISABLE_COLORS:e,NO_COLOR:f,TERM:g}=process.env||{},j=process.stdout&&process.stdout.isTTY);var k={enabled:!e&&null==f&&"dumb"!==g&&(null!=d&&"0"!==d||j)};function l(a,b){let c=RegExp(`\\x1b\\[${b}m`,"g"),d=`\x1b[${a}m`,e=`\x1b[${b}m`;return function(a){return k.enabled&&null!=a?d+(~(""+a).indexOf(e)?a.replace(c,e+d):a)+e:a}}var m=l(0,0),n=l(1,22),o=l(2,22),p=l(3,23),q=l(4,24),r=l(7,27),s=l(8,28),t=l(9,29),u=l(30,39),v=l(31,39),w=l(32,39),x=l(33,39),y=l(34,39),z=l(35,39),A=l(36,39),B=l(37,39),C=l(90,39),D=l(90,39),E=l(40,49),F=l(41,49),G=l(42,49),H=l(43,49),I=l(44,49),J=l(45,49),K=l(46,49),L=l(47,49),M=["green","yellow","blue","magenta","cyan","red"],N=[],O=Date.now(),P=0,Q="undefined"!=typeof process?process.env:{};globalThis.DEBUG??=Q.DEBUG??"",globalThis.DEBUG_COLORS??=!Q.DEBUG_COLORS||"true"===Q.DEBUG_COLORS;var R={enable(a){"string"==typeof a&&(globalThis.DEBUG=a)},disable(){let a=globalThis.DEBUG;return globalThis.DEBUG="",a},enabled(a){let b=globalThis.DEBUG.split(",").map(a=>a.replace(/[.+?^${}()|[\]\\]/g,"\\$&")),c=b.some(b=>""!==b&&"-"!==b[0]&&a.match(RegExp(b.split("*").join(".*")+"$"))),d=b.some(b=>""!==b&&"-"===b[0]&&a.match(RegExp(b.slice(1).split("*").join(".*")+"$")));return c&&!d},log:(...a)=>{let[b,c,...d]=a;(console.warn??console.log)(`${b} ${c}`,...d)},formatters:{}},S=new Proxy(function(a){let b={color:M[P++%M.length],enabled:R.enabled(a),namespace:a,log:R.log,extend:()=>{}};return new Proxy((...a)=>{let{enabled:c,namespace:d,color:e,log:f}=b;if(0!==a.length&&N.push([d,...a]),N.length>100&&N.shift(),R.enabled(d)||c){let b=a.map(a=>"string"==typeof a?a:function(a,b=2){let c=new Set;return JSON.stringify(a,(a,b)=>{if("object"==typeof b&&null!==b){if(c.has(b))return"[Circular *]";c.add(b)}else if("bigint"==typeof b)return b.toString();return b},b)}(a)),c=`+${Date.now()-O}ms`;O=Date.now(),globalThis.DEBUG_COLORS?f(i[e](n(d)),...b,i[e](c)):f(d,...b,c)}},{get:(a,c)=>b[c],set:(a,c,d)=>b[c]=d})},{get:(a,b)=>R[b],set:(a,b,c)=>R[b]=c})},96637:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(9666),e=c(27509),f=c(14642),g=c(12590);class h{constructor(){this.options={},this.scriptsSet={},this.addedBuiltinSet=new Set}getBuiltinCommands(){return i.slice(0)}createBuiltinCommand(a){return{string:j(null,a,"utf8"),buffer:j(null,a,null)}}addBuiltinCommand(a){this.addedBuiltinSet.add(a),this[a]=j(a,a,"utf8"),this[a+"Buffer"]=j(a+"Buffer",a,null)}defineCommand(a,b){let c=new g.default(b.lua,b.numberOfKeys,this.options.keyPrefix,b.readOnly);this.scriptsSet[a]=c,this[a]=k(a,a,c,"utf8"),this[a+"Buffer"]=k(a+"Buffer",a,c,null)}sendCommand(a,b,c){throw Error('"sendCommand" is not implemented')}}let i=d.list.filter(a=>"monitor"!==a);function j(a,b,c){return void 0===c&&(c=b,b=null),function(...d){let g=b||d.shift(),h=d[d.length-1];"function"==typeof h?d.pop():h=void 0;let i={errorStack:this.options.showFriendlyErrorStack?Error():void 0,keyPrefix:this.options.keyPrefix,replyEncoding:c};return(0,e.shouldUseAutoPipelining)(this,a,g)?(0,e.executeWithAutoPipelining)(this,a,g,d,h):this.sendCommand(new f.default(g,d,i,h))}}function k(a,b,c,d){return function(...f){let g="function"==typeof f[f.length-1]?f.pop():void 0,h={replyEncoding:d};return(this.options.showFriendlyErrorStack&&(h.errorStack=Error()),(0,e.shouldUseAutoPipelining)(this,a,b))?(0,e.executeWithAutoPipelining)(this,a,b,f,g):c.execute(this,f,h,g)}}i.push("sentinel"),i.forEach(function(a){h.prototype[a]=j(a,a,"utf8"),h.prototype[a+"Buffer"]=j(a+"Buffer",a,null)}),h.prototype.call=j("call","utf8"),h.prototype.callBuffer=j("callBuffer",null),h.prototype.send_command=h.prototype.call,b.default=h},97494:(a,b,c)=>{"use strict";c.d(b,{m3:()=>i});var d=c(76760),e=c(73136),f=c(26849);let g={previewFeatures:[],clientVersion:"7.3.0",engineVersion:"9d6ad21cbbceab97458517b147a6a09ff43aa735",activeProvider:"postgresql",inlineSchema:'// prisma/schema.prisma\n\ngenerator client {\n provider = "prisma-client"\n output = "../src/generated/prisma"\n}\n\ndatasource db {\n provider = "postgresql"\n relationMode = "prisma" // Relations managed by Prisma, no DB-level foreign key constraints\n}\n\n// Tenant\nmodel Company {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n name String\n // Email domain matching (used to identify Company during login)\n emailDomains String[] @default([]) // e.g., ["example.com", "example.org"]\n // OIDC configuration (per-Company login, PKCE only, no Client Secret)\n oidcIssuer String? // OIDC Provider URL\n oidcClientId String? // Client ID\n oidcEnabled Boolean @default(false)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n users User[]\n agents Agent[]\n apiKeys ApiKey[]\n projects Project[]\n ideas Idea[]\n documents Document[]\n tasks Task[]\n proposals Proposal[]\n activities Activity[]\n comments Comment[]\n sessions AgentSession[]\n}\n\n// User (human, OIDC login)\nmodel User {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n oidcSub String // OIDC subject\n email String?\n name String?\n avatarUrl String?\n createdAt DateTime @default(now())\n\n ownedAgents Agent[]\n\n @@unique([companyUuid, oidcSub])\n @@index([companyUuid])\n}\n\n// Agent (e.g., Claude Code)\nmodel Agent {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n name String\n roles String[] @default(["developer"]) // pm | developer (multi-select)\n permissions String[] @default([]) // Custom permission bits (resource:action); merged with role presets at auth time\n // Agent persona definition (Zero Context Injection)\n persona String? // Custom persona description (brief)\n systemPrompt String? // Full system prompt (optional, overrides default template)\n ownerUuid String? // User\'s UUID\n owner User? @relation(fields: [ownerUuid], references: [uuid])\n lastActiveAt DateTime?\n createdAt DateTime @default(now())\n\n apiKeys ApiKey[]\n sessions AgentSession[]\n\n @@index([companyUuid])\n @@index([ownerUuid])\n}\n\n// API Key (independently managed, supports rotation and revocation)\nmodel ApiKey {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n agentUuid String // Agent\'s UUID\n agent Agent @relation(fields: [agentUuid], references: [uuid], onDelete: Cascade)\n keyHash String @unique // API Key stored as hash\n keyPrefix String // Key prefix for display (e.g., "cho_xxx...")\n name String? // Optional descriptive name\n lastUsed DateTime?\n expiresAt DateTime?\n revokedAt DateTime?\n createdAt DateTime @default(now())\n\n @@index([companyUuid])\n @@index([agentUuid])\n}\n\n// Project Group (single-level grouping of projects)\nmodel ProjectGroup {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n name String\n description String? @default("")\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([companyUuid])\n}\n\n// Project\nmodel Project {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n name String\n description String?\n groupUuid String? // nullable FK → ProjectGroup.uuid\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n ideas Idea[]\n documents Document[]\n tasks Task[]\n proposals Proposal[]\n activities Activity[]\n\n @@index([companyUuid])\n @@index([groupUuid])\n}\n\n// Idea (raw human input)\nmodel Idea {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n projectUuid String\n project Project @relation(fields: [projectUuid], references: [uuid], onDelete: Cascade)\n title String\n content String? // Text content\n attachments Json? // Attachment list [{type, url, name}]\n // Status and assignment (ARCHITECTURE.md \xa77.3)\n status String @default("open") // open | elaborating | elaborated (3-state model; post-elaboration status derived from Proposal+Task)\n assigneeType String? // user | agent\n assigneeUuid String? // User or Agent UUID (polymorphic)\n assignedAt DateTime? // Assignment timestamp\n assignedByUuid String? // User UUID (human assignment)\n // Elaboration (AI-DLC Stage 3 — structured requirements clarification)\n elaborationDepth String? // "minimal" | "standard" | "comprehensive"\n elaborationStatus String? // "pending_answers" | "validating" | "resolved"\n createdByUuid String // User UUID\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([companyUuid])\n @@index([projectUuid])\n @@index([status])\n @@index([assigneeUuid])\n}\n\n// Document (PRD, tech design, etc. — Proposal output)\nmodel Document {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n projectUuid String\n project Project @relation(fields: [projectUuid], references: [uuid], onDelete: Cascade)\n type String // prd | tech_design | adr | ...\n title String\n content String? // Markdown content\n version Int @default(1)\n proposalUuid String? // Source Proposal UUID (traceable)\n createdByUuid String // User or Agent UUID\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([companyUuid])\n @@index([projectUuid])\n @@index([proposalUuid])\n}\n\n// Task (Proposal output or manually created)\nmodel Task {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n projectUuid String\n project Project @relation(fields: [projectUuid], references: [uuid], onDelete: Cascade)\n title String\n description String?\n // Status and assignment (ARCHITECTURE.md \xa77.2)\n status String @default("open") // open | assigned | in_progress | to_verify | done | closed\n priority String @default("medium") // low | medium | high\n storyPoints Float? // Effort estimate (unit: Agent hours)\n acceptanceCriteria String? // Acceptance criteria (Markdown)\n assigneeType String? // user | agent\n assigneeUuid String? // User or Agent UUID (polymorphic)\n assignedAt DateTime? // Assignment timestamp\n assignedByUuid String? // User UUID (human assignment)\n proposalUuid String? // Source Proposal UUID (traceable, optional)\n createdByUuid String // User or Agent UUID\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n // Task dependencies (DAG)\n dependsOn TaskDependency[] @relation("taskDependencies")\n dependedBy TaskDependency[] @relation("taskDependedBy")\n // Session checkins\n sessionCheckins SessionTaskCheckin[]\n // Structured acceptance criteria (independent table)\n acceptanceCriteriaItems AcceptanceCriterion[]\n\n @@index([companyUuid])\n @@index([projectUuid])\n @@index([proposalUuid])\n @@index([assigneeUuid])\n @@index([status])\n}\n\n// Task dependency (DAG edge)\nmodel TaskDependency {\n id Int @id @default(autoincrement())\n taskUuid String\n dependsOnUuid String\n task Task @relation("taskDependencies", fields: [taskUuid], references: [uuid], onDelete: Cascade)\n dependsOn Task @relation("taskDependedBy", fields: [dependsOnUuid], references: [uuid], onDelete: Cascade)\n createdAt DateTime @default(now())\n\n @@unique([taskUuid, dependsOnUuid])\n @@index([taskUuid])\n @@index([dependsOnUuid])\n}\n\n// Acceptance Criterion (independent table — per-row atomic updates, no concurrent write conflicts)\nmodel AcceptanceCriterion {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n taskUuid String\n task Task @relation(fields: [taskUuid], references: [uuid], onDelete: Cascade)\n description String\n required Boolean @default(true)\n // Dev self-check (developer fills during work)\n devStatus String @default("pending") // pending | passed | failed\n devEvidence String?\n devMarkedByType String? // "user" | "agent"\n devMarkedBy String? // UUID of marker\n devMarkedAt DateTime?\n // Admin verification (admin/user fills during verify)\n status String @default("pending") // pending | passed | failed\n evidence String?\n markedByType String? // "user" | "agent"\n markedBy String? // UUID of marker\n markedAt DateTime?\n sortOrder Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([taskUuid])\n}\n\n// Proposal (container model: created by Agent/human, approved by human, contains document drafts and task drafts)\nmodel Proposal {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n projectUuid String\n project Project @relation(fields: [projectUuid], references: [uuid], onDelete: Cascade)\n title String\n description String?\n\n // Input source (what the Proposal is based on)\n inputType String // idea | document\n inputUuids Json // Array of UUID strings\n\n // Container contents (can include both documents and tasks)\n documentDrafts Json? // Document draft list [{type, title, content}]\n taskDrafts Json? // Task draft list [{title, description, storyPoints, priority, acceptanceCriteria}]\n\n // Status and approval\n status String @default("draft") // draft | pending | approved | rejected | revised\n createdByUuid String // Agent or User UUID\n createdByType String @default("agent") // agent | user\n reviewedByUuid String? // User UUID\n reviewNote String? // Review note\n reviewedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([companyUuid])\n @@index([projectUuid])\n @@index([status])\n}\n\n// Comment (can comment on Idea, Proposal, Task, Document)\nmodel Comment {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n targetType String // idea | proposal | task | document\n targetUuid String // UUID of target entity (idea/proposal/task/document)\n content String\n authorType String // user | agent\n authorUuid String // User or Agent UUID\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([companyUuid])\n @@index([targetType, targetUuid])\n}\n\n// Activity stream (project-level) — generic design\nmodel Activity {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n projectUuid String\n project Project @relation(fields: [projectUuid], references: [uuid], onDelete: Cascade)\n // Target entity (generic design)\n targetType String // idea | task | proposal | document\n targetUuid String // Target entity UUID\n // Action info\n actorType String // user | agent\n actorUuid String // Actor UUID\n action String // created | assigned | released | status_changed | submitted | approved | rejected | comment_added\n value Json? // Action result value (e.g., new status, assignment target info)\n // Session attribution (denormalized to avoid joins)\n sessionUuid String?\n sessionName String?\n createdAt DateTime @default(now())\n\n @@index([companyUuid])\n @@index([projectUuid])\n @@index([targetType, targetUuid])\n @@index([createdAt])\n}\n\n// Agent Session (sub-session for swarm mode observability)\nmodel AgentSession {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n agentUuid String\n agent Agent @relation(fields: [agentUuid], references: [uuid], onDelete: Cascade)\n name String\n description String?\n status String @default("active") // active | inactive | closed\n lastActiveAt DateTime @default(now())\n expiresAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n taskCheckins SessionTaskCheckin[]\n\n @@index([companyUuid])\n @@index([agentUuid])\n @@index([status])\n}\n\n// Session-Task checkin relation (many-to-many)\nmodel SessionTaskCheckin {\n id Int @id @default(autoincrement())\n sessionUuid String\n session AgentSession @relation(fields: [sessionUuid], references: [uuid], onDelete: Cascade)\n taskUuid String\n task Task @relation(fields: [taskUuid], references: [uuid], onDelete: Cascade)\n checkinAt DateTime @default(now())\n checkoutAt DateTime?\n\n @@unique([sessionUuid, taskUuid])\n @@index([sessionUuid])\n @@index([taskUuid])\n}\n\n// Notification\nmodel Notification {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n projectUuid String\n // Recipient (polymorphic: user | agent)\n recipientType String // user | agent\n recipientUuid String\n // Related entity\n entityType String // task | idea | proposal | document | comment\n entityUuid String\n entityTitle String // Denormalized to avoid joins\n projectName String // Denormalized for project badge UI\n // Action info\n action String // assigned | status_changed | verified | reopened | submitted | approved | rejected | claimed | comment_added\n message String // Human-readable message\n actorType String // user | agent\n actorUuid String\n actorName String // Denormalized to avoid joins\n // Status\n readAt DateTime?\n archivedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([recipientType, recipientUuid, readAt])\n @@index([companyUuid, recipientUuid])\n @@index([entityType, entityUuid])\n @@index([projectUuid])\n}\n\n// Notification preferences\nmodel NotificationPreference {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n ownerType String // user | agent\n ownerUuid String\n // Toggle for each notification type (all enabled by default)\n taskAssigned Boolean @default(true)\n taskStatusChanged Boolean @default(true)\n taskVerified Boolean @default(true)\n taskReopened Boolean @default(true)\n proposalSubmitted Boolean @default(true)\n proposalApproved Boolean @default(true)\n proposalRejected Boolean @default(true)\n ideaClaimed Boolean @default(true)\n commentAdded Boolean @default(true)\n elaborationRequested Boolean @default(true)\n elaborationAnswered Boolean @default(true)\n mentioned Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([ownerType, ownerUuid])\n @@index([companyUuid])\n}\n\n// Mention (tracks @mentions in comments, tasks, ideas)\nmodel Mention {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n // Source: where the mention occurred\n sourceType String // comment | task | idea\n sourceUuid String // UUID of the comment, task, or idea\n // Target: who was mentioned\n mentionedType String // user | agent\n mentionedUuid String\n // Actor: who wrote the mention\n actorType String // user | agent\n actorUuid String\n createdAt DateTime @default(now())\n\n @@index([companyUuid])\n @@index([mentionedType, mentionedUuid])\n @@index([sourceType, sourceUuid])\n}\n\n// Elaboration Round (AI-DLC Stage 3 — structured requirements clarification)\nmodel ElaborationRound {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n ideaUuid String\n roundNumber Int\n status String @default("pending_answers") // pending_answers | answered | validated | needs_followup\n createdByType String // agent | user\n createdByUuid String\n validatedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n questions ElaborationQuestion[]\n\n @@index([ideaUuid])\n @@index([companyUuid])\n}\n\n// Elaboration Question (individual Q&A item within a round)\nmodel ElaborationQuestion {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n roundUuid String\n round ElaborationRound @relation(fields: [roundUuid], references: [uuid], onDelete: Cascade)\n questionId String // Round-scoped ID: "q1", "q2", etc.\n text String\n category String // functional | non_functional | business_context | technical_context | user_scenario | scope\n options Json // [{id, label, description?}] — 2-5 options\n required Boolean @default(true)\n // Answer (null = unanswered)\n selectedOptionId String?\n customText String?\n answeredAt DateTime?\n answeredByType String? // user | agent\n answeredByUuid String?\n // Validation issue (null = no issue)\n issueType String? // contradiction | ambiguity | incomplete\n issueDescription String?\n\n @@unique([roundUuid, questionId])\n @@index([roundUuid])\n}\n',runtimeDataModel:{models:{},enums:{},types:{}}};async function h(a){let{Buffer:b}=await Promise.resolve().then(c.t.bind(c,4573,23)),d=b.from(a,"base64");return new WebAssembly.Module(d)}g.runtimeDataModel=JSON.parse('{"models":{"Company":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"name","kind":"scalar","type":"String"},{"name":"emailDomains","kind":"scalar","type":"String"},{"name":"oidcIssuer","kind":"scalar","type":"String"},{"name":"oidcClientId","kind":"scalar","type":"String"},{"name":"oidcEnabled","kind":"scalar","type":"Boolean"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"users","kind":"object","type":"User","relationName":"CompanyToUser"},{"name":"agents","kind":"object","type":"Agent","relationName":"AgentToCompany"},{"name":"apiKeys","kind":"object","type":"ApiKey","relationName":"ApiKeyToCompany"},{"name":"projects","kind":"object","type":"Project","relationName":"CompanyToProject"},{"name":"ideas","kind":"object","type":"Idea","relationName":"CompanyToIdea"},{"name":"documents","kind":"object","type":"Document","relationName":"CompanyToDocument"},{"name":"tasks","kind":"object","type":"Task","relationName":"CompanyToTask"},{"name":"proposals","kind":"object","type":"Proposal","relationName":"CompanyToProposal"},{"name":"activities","kind":"object","type":"Activity","relationName":"ActivityToCompany"},{"name":"comments","kind":"object","type":"Comment","relationName":"CommentToCompany"},{"name":"sessions","kind":"object","type":"AgentSession","relationName":"AgentSessionToCompany"}],"dbName":null},"User":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CompanyToUser"},{"name":"oidcSub","kind":"scalar","type":"String"},{"name":"email","kind":"scalar","type":"String"},{"name":"name","kind":"scalar","type":"String"},{"name":"avatarUrl","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"ownedAgents","kind":"object","type":"Agent","relationName":"AgentToUser"}],"dbName":null},"Agent":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"AgentToCompany"},{"name":"name","kind":"scalar","type":"String"},{"name":"roles","kind":"scalar","type":"String"},{"name":"permissions","kind":"scalar","type":"String"},{"name":"persona","kind":"scalar","type":"String"},{"name":"systemPrompt","kind":"scalar","type":"String"},{"name":"ownerUuid","kind":"scalar","type":"String"},{"name":"owner","kind":"object","type":"User","relationName":"AgentToUser"},{"name":"lastActiveAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"apiKeys","kind":"object","type":"ApiKey","relationName":"AgentToApiKey"},{"name":"sessions","kind":"object","type":"AgentSession","relationName":"AgentToAgentSession"}],"dbName":null},"ApiKey":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"ApiKeyToCompany"},{"name":"agentUuid","kind":"scalar","type":"String"},{"name":"agent","kind":"object","type":"Agent","relationName":"AgentToApiKey"},{"name":"keyHash","kind":"scalar","type":"String"},{"name":"keyPrefix","kind":"scalar","type":"String"},{"name":"name","kind":"scalar","type":"String"},{"name":"lastUsed","kind":"scalar","type":"DateTime"},{"name":"expiresAt","kind":"scalar","type":"DateTime"},{"name":"revokedAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"}],"dbName":null},"ProjectGroup":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"name","kind":"scalar","type":"String"},{"name":"description","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Project":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CompanyToProject"},{"name":"name","kind":"scalar","type":"String"},{"name":"description","kind":"scalar","type":"String"},{"name":"groupUuid","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"ideas","kind":"object","type":"Idea","relationName":"IdeaToProject"},{"name":"documents","kind":"object","type":"Document","relationName":"DocumentToProject"},{"name":"tasks","kind":"object","type":"Task","relationName":"ProjectToTask"},{"name":"proposals","kind":"object","type":"Proposal","relationName":"ProjectToProposal"},{"name":"activities","kind":"object","type":"Activity","relationName":"ActivityToProject"}],"dbName":null},"Idea":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CompanyToIdea"},{"name":"projectUuid","kind":"scalar","type":"String"},{"name":"project","kind":"object","type":"Project","relationName":"IdeaToProject"},{"name":"title","kind":"scalar","type":"String"},{"name":"content","kind":"scalar","type":"String"},{"name":"attachments","kind":"scalar","type":"Json"},{"name":"status","kind":"scalar","type":"String"},{"name":"assigneeType","kind":"scalar","type":"String"},{"name":"assigneeUuid","kind":"scalar","type":"String"},{"name":"assignedAt","kind":"scalar","type":"DateTime"},{"name":"assignedByUuid","kind":"scalar","type":"String"},{"name":"elaborationDepth","kind":"scalar","type":"String"},{"name":"elaborationStatus","kind":"scalar","type":"String"},{"name":"createdByUuid","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Document":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CompanyToDocument"},{"name":"projectUuid","kind":"scalar","type":"String"},{"name":"project","kind":"object","type":"Project","relationName":"DocumentToProject"},{"name":"type","kind":"scalar","type":"String"},{"name":"title","kind":"scalar","type":"String"},{"name":"content","kind":"scalar","type":"String"},{"name":"version","kind":"scalar","type":"Int"},{"name":"proposalUuid","kind":"scalar","type":"String"},{"name":"createdByUuid","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Task":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CompanyToTask"},{"name":"projectUuid","kind":"scalar","type":"String"},{"name":"project","kind":"object","type":"Project","relationName":"ProjectToTask"},{"name":"title","kind":"scalar","type":"String"},{"name":"description","kind":"scalar","type":"String"},{"name":"status","kind":"scalar","type":"String"},{"name":"priority","kind":"scalar","type":"String"},{"name":"storyPoints","kind":"scalar","type":"Float"},{"name":"acceptanceCriteria","kind":"scalar","type":"String"},{"name":"assigneeType","kind":"scalar","type":"String"},{"name":"assigneeUuid","kind":"scalar","type":"String"},{"name":"assignedAt","kind":"scalar","type":"DateTime"},{"name":"assignedByUuid","kind":"scalar","type":"String"},{"name":"proposalUuid","kind":"scalar","type":"String"},{"name":"createdByUuid","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"dependsOn","kind":"object","type":"TaskDependency","relationName":"taskDependencies"},{"name":"dependedBy","kind":"object","type":"TaskDependency","relationName":"taskDependedBy"},{"name":"sessionCheckins","kind":"object","type":"SessionTaskCheckin","relationName":"SessionTaskCheckinToTask"},{"name":"acceptanceCriteriaItems","kind":"object","type":"AcceptanceCriterion","relationName":"AcceptanceCriterionToTask"}],"dbName":null},"TaskDependency":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"taskUuid","kind":"scalar","type":"String"},{"name":"dependsOnUuid","kind":"scalar","type":"String"},{"name":"task","kind":"object","type":"Task","relationName":"taskDependencies"},{"name":"dependsOn","kind":"object","type":"Task","relationName":"taskDependedBy"},{"name":"createdAt","kind":"scalar","type":"DateTime"}],"dbName":null},"AcceptanceCriterion":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"taskUuid","kind":"scalar","type":"String"},{"name":"task","kind":"object","type":"Task","relationName":"AcceptanceCriterionToTask"},{"name":"description","kind":"scalar","type":"String"},{"name":"required","kind":"scalar","type":"Boolean"},{"name":"devStatus","kind":"scalar","type":"String"},{"name":"devEvidence","kind":"scalar","type":"String"},{"name":"devMarkedByType","kind":"scalar","type":"String"},{"name":"devMarkedBy","kind":"scalar","type":"String"},{"name":"devMarkedAt","kind":"scalar","type":"DateTime"},{"name":"status","kind":"scalar","type":"String"},{"name":"evidence","kind":"scalar","type":"String"},{"name":"markedByType","kind":"scalar","type":"String"},{"name":"markedBy","kind":"scalar","type":"String"},{"name":"markedAt","kind":"scalar","type":"DateTime"},{"name":"sortOrder","kind":"scalar","type":"Int"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Proposal":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CompanyToProposal"},{"name":"projectUuid","kind":"scalar","type":"String"},{"name":"project","kind":"object","type":"Project","relationName":"ProjectToProposal"},{"name":"title","kind":"scalar","type":"String"},{"name":"description","kind":"scalar","type":"String"},{"name":"inputType","kind":"scalar","type":"String"},{"name":"inputUuids","kind":"scalar","type":"Json"},{"name":"documentDrafts","kind":"scalar","type":"Json"},{"name":"taskDrafts","kind":"scalar","type":"Json"},{"name":"status","kind":"scalar","type":"String"},{"name":"createdByUuid","kind":"scalar","type":"String"},{"name":"createdByType","kind":"scalar","type":"String"},{"name":"reviewedByUuid","kind":"scalar","type":"String"},{"name":"reviewNote","kind":"scalar","type":"String"},{"name":"reviewedAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Comment":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CommentToCompany"},{"name":"targetType","kind":"scalar","type":"String"},{"name":"targetUuid","kind":"scalar","type":"String"},{"name":"content","kind":"scalar","type":"String"},{"name":"authorType","kind":"scalar","type":"String"},{"name":"authorUuid","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Activity":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"ActivityToCompany"},{"name":"projectUuid","kind":"scalar","type":"String"},{"name":"project","kind":"object","type":"Project","relationName":"ActivityToProject"},{"name":"targetType","kind":"scalar","type":"String"},{"name":"targetUuid","kind":"scalar","type":"String"},{"name":"actorType","kind":"scalar","type":"String"},{"name":"actorUuid","kind":"scalar","type":"String"},{"name":"action","kind":"scalar","type":"String"},{"name":"value","kind":"scalar","type":"Json"},{"name":"sessionUuid","kind":"scalar","type":"String"},{"name":"sessionName","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"}],"dbName":null},"AgentSession":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"AgentSessionToCompany"},{"name":"agentUuid","kind":"scalar","type":"String"},{"name":"agent","kind":"object","type":"Agent","relationName":"AgentToAgentSession"},{"name":"name","kind":"scalar","type":"String"},{"name":"description","kind":"scalar","type":"String"},{"name":"status","kind":"scalar","type":"String"},{"name":"lastActiveAt","kind":"scalar","type":"DateTime"},{"name":"expiresAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"taskCheckins","kind":"object","type":"SessionTaskCheckin","relationName":"AgentSessionToSessionTaskCheckin"}],"dbName":null},"SessionTaskCheckin":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"sessionUuid","kind":"scalar","type":"String"},{"name":"session","kind":"object","type":"AgentSession","relationName":"AgentSessionToSessionTaskCheckin"},{"name":"taskUuid","kind":"scalar","type":"String"},{"name":"task","kind":"object","type":"Task","relationName":"SessionTaskCheckinToTask"},{"name":"checkinAt","kind":"scalar","type":"DateTime"},{"name":"checkoutAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Notification":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"projectUuid","kind":"scalar","type":"String"},{"name":"recipientType","kind":"scalar","type":"String"},{"name":"recipientUuid","kind":"scalar","type":"String"},{"name":"entityType","kind":"scalar","type":"String"},{"name":"entityUuid","kind":"scalar","type":"String"},{"name":"entityTitle","kind":"scalar","type":"String"},{"name":"projectName","kind":"scalar","type":"String"},{"name":"action","kind":"scalar","type":"String"},{"name":"message","kind":"scalar","type":"String"},{"name":"actorType","kind":"scalar","type":"String"},{"name":"actorUuid","kind":"scalar","type":"String"},{"name":"actorName","kind":"scalar","type":"String"},{"name":"readAt","kind":"scalar","type":"DateTime"},{"name":"archivedAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"NotificationPreference":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"ownerType","kind":"scalar","type":"String"},{"name":"ownerUuid","kind":"scalar","type":"String"},{"name":"taskAssigned","kind":"scalar","type":"Boolean"},{"name":"taskStatusChanged","kind":"scalar","type":"Boolean"},{"name":"taskVerified","kind":"scalar","type":"Boolean"},{"name":"taskReopened","kind":"scalar","type":"Boolean"},{"name":"proposalSubmitted","kind":"scalar","type":"Boolean"},{"name":"proposalApproved","kind":"scalar","type":"Boolean"},{"name":"proposalRejected","kind":"scalar","type":"Boolean"},{"name":"ideaClaimed","kind":"scalar","type":"Boolean"},{"name":"commentAdded","kind":"scalar","type":"Boolean"},{"name":"elaborationRequested","kind":"scalar","type":"Boolean"},{"name":"elaborationAnswered","kind":"scalar","type":"Boolean"},{"name":"mentioned","kind":"scalar","type":"Boolean"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Mention":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"sourceType","kind":"scalar","type":"String"},{"name":"sourceUuid","kind":"scalar","type":"String"},{"name":"mentionedType","kind":"scalar","type":"String"},{"name":"mentionedUuid","kind":"scalar","type":"String"},{"name":"actorType","kind":"scalar","type":"String"},{"name":"actorUuid","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"}],"dbName":null},"ElaborationRound":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"ideaUuid","kind":"scalar","type":"String"},{"name":"roundNumber","kind":"scalar","type":"Int"},{"name":"status","kind":"scalar","type":"String"},{"name":"createdByType","kind":"scalar","type":"String"},{"name":"createdByUuid","kind":"scalar","type":"String"},{"name":"validatedAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"questions","kind":"object","type":"ElaborationQuestion","relationName":"ElaborationQuestionToElaborationRound"}],"dbName":null},"ElaborationQuestion":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"roundUuid","kind":"scalar","type":"String"},{"name":"round","kind":"object","type":"ElaborationRound","relationName":"ElaborationQuestionToElaborationRound"},{"name":"questionId","kind":"scalar","type":"String"},{"name":"text","kind":"scalar","type":"String"},{"name":"category","kind":"scalar","type":"String"},{"name":"options","kind":"scalar","type":"Json"},{"name":"required","kind":"scalar","type":"Boolean"},{"name":"selectedOptionId","kind":"scalar","type":"String"},{"name":"customText","kind":"scalar","type":"String"},{"name":"answeredAt","kind":"scalar","type":"DateTime"},{"name":"answeredByType","kind":"scalar","type":"String"},{"name":"answeredByUuid","kind":"scalar","type":"String"},{"name":"issueType","kind":"scalar","type":"String"},{"name":"issueDescription","kind":"scalar","type":"String"}],"dbName":null}},"enums":{},"types":{}}'),g.compilerWasm={getRuntime:async()=>await Promise.resolve().then(c.bind(c,75811)),getQueryCompilerWasmModule:async()=>{let{wasm:a}=await Promise.resolve().then(c.bind(c,44865));return await h(a)},importName:"./query_compiler_fast_bg.js"},f.PrismaClientKnownRequestError,f.PrismaClientUnknownRequestError,f.PrismaClientRustPanicError,f.PrismaClientInitializationError,f.PrismaClientValidationError,f.sqltag,f.empty,f.join,f.raw,f.Sql,f.Decimal,f.Extensions.getExtensionContext,f.NullTypes.DbNull,f.NullTypes.JsonNull,f.NullTypes.AnyNull,f.DbNull,f.JsonNull,f.AnyNull,f.makeStrictEnum({ReadUncommitted:"ReadUncommitted",ReadCommitted:"ReadCommitted",RepeatableRead:"RepeatableRead",Serializable:"Serializable"}),f.Extensions.defineExtension,globalThis.__dirname=require("path").dirname(__filename);let i=f.getPrismaClient(g)}};