promptarc 0.0.2 → 0.0.4

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 (246) hide show
  1. package/README.md +33 -25
  2. package/dist/bin.js +886 -4
  3. package/dist/share-direct.js +360 -0
  4. package/dist/web/.next/BUILD_ID +1 -1
  5. package/dist/web/.next/app-build-manifest.json +318 -226
  6. package/dist/web/.next/app-path-routes-manifest.json +24 -13
  7. package/dist/web/.next/build-manifest.json +14 -14
  8. package/dist/web/.next/prerender-manifest.json +89 -1
  9. package/dist/web/.next/routes-manifest.json +36 -0
  10. package/dist/web/.next/server/app/_not-found/page.js +1 -1
  11. package/dist/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/dist/web/.next/server/app/api/admin/backfill-ai/route.js +8 -0
  13. package/dist/web/.next/server/app/api/admin/backfill-ai/route.js.nft.json +1 -0
  14. package/dist/web/.next/server/app/api/admin/backfill-ai/route_client-reference-manifest.js +1 -0
  15. package/dist/web/.next/server/app/api/admin/backfill-search/route.js +1 -1
  16. package/dist/web/.next/server/app/api/admin/backfill-search/route.js.nft.json +1 -1
  17. package/dist/web/.next/server/app/api/admin/backfill-search/route_client-reference-manifest.js +1 -1
  18. package/dist/web/.next/server/app/api/ai/context/route.js +31 -0
  19. package/dist/web/.next/server/app/api/ai/context/route.js.nft.json +1 -0
  20. package/dist/web/.next/server/app/api/ai/context/route_client-reference-manifest.js +1 -0
  21. package/dist/web/.next/server/app/api/ai/pr-summary/route.js +28 -0
  22. package/dist/web/.next/server/app/api/ai/pr-summary/route.js.nft.json +1 -0
  23. package/dist/web/.next/server/app/api/ai/pr-summary/route_client-reference-manifest.js +1 -0
  24. package/dist/web/.next/server/app/api/ai/pr-summary-local/route.js +28 -0
  25. package/dist/web/.next/server/app/api/ai/pr-summary-local/route.js.nft.json +1 -0
  26. package/dist/web/.next/server/app/api/ai/pr-summary-local/route_client-reference-manifest.js +1 -0
  27. package/dist/web/.next/server/app/api/ai/process/route.js +8 -0
  28. package/dist/web/.next/server/app/api/ai/process/route.js.nft.json +1 -0
  29. package/dist/web/.next/server/app/api/ai/process/route_client-reference-manifest.js +1 -0
  30. package/dist/web/.next/server/app/api/cli/download/route.js +1 -1
  31. package/dist/web/.next/server/app/api/cli/download/route.js.nft.json +1 -1
  32. package/dist/web/.next/server/app/api/cli/download/route_client-reference-manifest.js +1 -1
  33. package/dist/web/.next/server/app/api/cli/feedback/route_client-reference-manifest.js +1 -1
  34. package/dist/web/.next/server/app/api/cli/init/route_client-reference-manifest.js +1 -1
  35. package/dist/web/.next/server/app/api/cli/my-shares/route.js +1 -1
  36. package/dist/web/.next/server/app/api/cli/my-shares/route_client-reference-manifest.js +1 -1
  37. package/dist/web/.next/server/app/api/cli/poll/route_client-reference-manifest.js +1 -1
  38. package/dist/web/.next/server/app/api/cli/project-settings/route_client-reference-manifest.js +1 -1
  39. package/dist/web/.next/server/app/api/cli/share-mutate/route_client-reference-manifest.js +1 -1
  40. package/dist/web/.next/server/app/api/cli/sync-list/route_client-reference-manifest.js +1 -1
  41. package/dist/web/.next/server/app/api/local/project-sessions/route.js +1 -1
  42. package/dist/web/.next/server/app/api/local/project-sessions/route.js.nft.json +1 -1
  43. package/dist/web/.next/server/app/api/local/project-sessions/route_client-reference-manifest.js +1 -1
  44. package/dist/web/.next/server/app/api/local/watch/route.js +2 -2
  45. package/dist/web/.next/server/app/api/local/watch/route.js.nft.json +1 -1
  46. package/dist/web/.next/server/app/api/local/watch/route_client-reference-manifest.js +1 -1
  47. package/dist/web/.next/server/app/api/search/route.js +1 -1
  48. package/dist/web/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  49. package/dist/web/.next/server/app/api/search-index/route.js +1 -1
  50. package/dist/web/.next/server/app/api/search-index/route.js.nft.json +1 -1
  51. package/dist/web/.next/server/app/api/search-index/route_client-reference-manifest.js +1 -1
  52. package/dist/web/.next/server/app/api/share/download/[slug]/route.js +1 -1
  53. package/dist/web/.next/server/app/api/share/download/[slug]/route.js.nft.json +1 -1
  54. package/dist/web/.next/server/app/api/share/download/[slug]/route_client-reference-manifest.js +1 -1
  55. package/dist/web/.next/server/app/api/share/route.js +1 -1
  56. package/dist/web/.next/server/app/api/share/route.js.nft.json +1 -1
  57. package/dist/web/.next/server/app/api/share/route_client-reference-manifest.js +1 -1
  58. package/dist/web/.next/server/app/api/upload/route.js +2 -2
  59. package/dist/web/.next/server/app/api/upload/route.js.nft.json +1 -1
  60. package/dist/web/.next/server/app/api/upload/route_client-reference-manifest.js +1 -1
  61. package/dist/web/.next/server/app/auth/callback/route_client-reference-manifest.js +1 -1
  62. package/dist/web/.next/server/app/auth/signout/route_client-reference-manifest.js +1 -1
  63. package/dist/web/.next/server/app/blog/ai-coding-agents-2026/page.js +2 -0
  64. package/dist/web/.next/server/app/blog/ai-coding-agents-2026/page.js.nft.json +1 -0
  65. package/dist/web/.next/server/app/blog/ai-coding-agents-2026/page_client-reference-manifest.js +1 -0
  66. package/dist/web/.next/server/app/blog/page.js +2 -0
  67. package/dist/web/.next/server/app/blog/page.js.nft.json +1 -0
  68. package/dist/web/.next/server/app/blog/page_client-reference-manifest.js +1 -0
  69. package/dist/web/.next/server/app/cli/login/page.js +1 -1
  70. package/dist/web/.next/server/app/cli/login/page_client-reference-manifest.js +1 -1
  71. package/dist/web/.next/server/app/digest/page_client-reference-manifest.js +1 -1
  72. package/dist/web/.next/server/app/feedback/page_client-reference-manifest.js +1 -1
  73. package/dist/web/.next/server/app/my-projects/[projectKey]/page_client-reference-manifest.js +1 -1
  74. package/dist/web/.next/server/app/my-projects/page_client-reference-manifest.js +1 -1
  75. package/dist/web/.next/server/app/my-shares/page.js +1 -1
  76. package/dist/web/.next/server/app/my-shares/page_client-reference-manifest.js +1 -1
  77. package/dist/web/.next/server/app/opengraph-image/route.js +1 -71
  78. package/dist/web/.next/server/app/opengraph-image/route.js.nft.json +1 -0
  79. package/dist/web/.next/server/app/opengraph-image/route_client-reference-manifest.js +1 -1
  80. package/dist/web/.next/server/app/opengraph-image.body +0 -0
  81. package/dist/web/.next/server/app/opengraph-image.meta +1 -0
  82. package/dist/web/.next/server/app/page.js +2 -2
  83. package/dist/web/.next/server/app/page.js.nft.json +1 -1
  84. package/dist/web/.next/server/app/page_client-reference-manifest.js +1 -1
  85. package/dist/web/.next/server/app/privacy/page.js +2 -0
  86. package/dist/web/.next/server/app/privacy/page.js.nft.json +1 -0
  87. package/dist/web/.next/server/app/privacy/page_client-reference-manifest.js +1 -0
  88. package/dist/web/.next/server/app/projects/[id]/page.js +1 -1
  89. package/dist/web/.next/server/app/projects/[id]/page.js.nft.json +1 -1
  90. package/dist/web/.next/server/app/projects/[id]/page_client-reference-manifest.js +1 -1
  91. package/dist/web/.next/server/app/r/[slug]/opengraph-image/route.js +1 -1
  92. package/dist/web/.next/server/app/r/[slug]/opengraph-image/route_client-reference-manifest.js +1 -1
  93. package/dist/web/.next/server/app/r/[slug]/page.js +2 -2
  94. package/dist/web/.next/server/app/r/[slug]/page.js.nft.json +1 -1
  95. package/dist/web/.next/server/app/r/[slug]/page_client-reference-manifest.js +1 -1
  96. package/dist/web/.next/server/app/robots.txt/route.js +16 -0
  97. package/dist/web/.next/server/app/robots.txt/route.js.nft.json +1 -0
  98. package/dist/web/.next/server/app/robots.txt/route_client-reference-manifest.js +1 -0
  99. package/dist/web/.next/server/app/robots.txt.body +9 -0
  100. package/dist/web/.next/server/app/robots.txt.meta +1 -0
  101. package/dist/web/.next/server/app/search/page_client-reference-manifest.js +1 -1
  102. package/dist/web/.next/server/app/sessions/[projectId]/[sessionId]/page.js +1 -1
  103. package/dist/web/.next/server/app/sessions/[projectId]/[sessionId]/page.js.nft.json +1 -1
  104. package/dist/web/.next/server/app/sessions/[projectId]/[sessionId]/page_client-reference-manifest.js +1 -1
  105. package/dist/web/.next/server/app/sign-in/page.js +1 -1
  106. package/dist/web/.next/server/app/sign-in/page_client-reference-manifest.js +1 -1
  107. package/dist/web/.next/server/app/sitemap.xml/route.js +16 -0
  108. package/dist/web/.next/server/app/sitemap.xml/route.js.nft.json +1 -0
  109. package/dist/web/.next/server/app/sitemap.xml/route_client-reference-manifest.js +1 -0
  110. package/dist/web/.next/server/app/sitemap.xml.body +51 -0
  111. package/dist/web/.next/server/app/sitemap.xml.meta +1 -0
  112. package/dist/web/.next/server/app/terms/page.js +2 -0
  113. package/dist/web/.next/server/app/terms/page.js.nft.json +1 -0
  114. package/dist/web/.next/server/app/terms/page_client-reference-manifest.js +1 -0
  115. package/dist/web/.next/server/app-paths-manifest.json +24 -13
  116. package/dist/web/.next/server/chunks/1017.js +2 -0
  117. package/dist/web/.next/server/chunks/1134.js +8 -0
  118. package/dist/web/.next/server/chunks/1825.js +1 -1
  119. package/dist/web/.next/server/chunks/8334.js +1 -1
  120. package/dist/web/.next/server/functions-config-manifest.json +17 -2
  121. package/dist/web/.next/server/middleware-build-manifest.js +1 -1
  122. package/dist/web/.next/server/middleware-manifest.json +1 -43
  123. package/dist/web/.next/server/pages/500.html +1 -1
  124. package/dist/web/.next/server/server-reference-manifest.js +1 -1
  125. package/dist/web/.next/server/server-reference-manifest.json +1 -1
  126. package/dist/web/.next/static/LF69v3WA6LbEAkvRHNqfG/_buildManifest.js +1 -0
  127. package/dist/web/.next/static/chunks/1029-12dc6d00537d43fd.js +1 -0
  128. package/dist/web/.next/static/chunks/4695-b52fc3d81451c3c3.js +1 -0
  129. package/dist/web/.next/static/chunks/552926ff-c5d04ae0c2d9f826.js +1 -0
  130. package/dist/web/.next/static/chunks/7200-4560b15b9cad37b3.js +1 -0
  131. package/dist/web/.next/static/chunks/app/_not-found/page-0f1123e35eb8f046.js +1 -0
  132. package/dist/web/.next/static/chunks/app/api/admin/backfill-ai/route-0f1123e35eb8f046.js +1 -0
  133. package/dist/web/.next/static/chunks/app/api/admin/backfill-search/route-0f1123e35eb8f046.js +1 -0
  134. package/dist/web/.next/static/chunks/app/api/ai/context/route-0f1123e35eb8f046.js +1 -0
  135. package/dist/web/.next/static/chunks/app/api/ai/pr-summary/route-0f1123e35eb8f046.js +1 -0
  136. package/dist/web/.next/static/chunks/app/api/ai/pr-summary-local/route-0f1123e35eb8f046.js +1 -0
  137. package/dist/web/.next/static/chunks/app/api/ai/process/route-0f1123e35eb8f046.js +1 -0
  138. package/dist/web/.next/static/chunks/app/api/cli/download/route-0f1123e35eb8f046.js +1 -0
  139. package/dist/web/.next/static/chunks/app/api/cli/feedback/route-0f1123e35eb8f046.js +1 -0
  140. package/dist/web/.next/static/chunks/app/api/cli/init/route-0f1123e35eb8f046.js +1 -0
  141. package/dist/web/.next/static/chunks/app/api/cli/my-shares/route-0f1123e35eb8f046.js +1 -0
  142. package/dist/web/.next/static/chunks/app/api/cli/poll/route-0f1123e35eb8f046.js +1 -0
  143. package/dist/web/.next/static/chunks/app/api/cli/project-settings/route-0f1123e35eb8f046.js +1 -0
  144. package/dist/web/.next/static/chunks/app/api/cli/share-mutate/route-0f1123e35eb8f046.js +1 -0
  145. package/dist/web/.next/static/chunks/app/api/cli/sync-list/route-0f1123e35eb8f046.js +1 -0
  146. package/dist/web/.next/static/chunks/app/api/local/project-sessions/route-0f1123e35eb8f046.js +1 -0
  147. package/dist/web/.next/static/chunks/app/api/local/watch/route-0f1123e35eb8f046.js +1 -0
  148. package/dist/web/.next/static/chunks/app/api/search/route-0f1123e35eb8f046.js +1 -0
  149. package/dist/web/.next/static/chunks/app/api/search-index/route-0f1123e35eb8f046.js +1 -0
  150. package/dist/web/.next/static/chunks/app/api/share/download/[slug]/route-0f1123e35eb8f046.js +1 -0
  151. package/dist/web/.next/static/chunks/app/api/share/route-0f1123e35eb8f046.js +1 -0
  152. package/dist/web/.next/static/chunks/app/api/upload/route-0f1123e35eb8f046.js +1 -0
  153. package/dist/web/.next/static/chunks/app/auth/callback/route-0f1123e35eb8f046.js +1 -0
  154. package/dist/web/.next/static/chunks/app/auth/signout/route-0f1123e35eb8f046.js +1 -0
  155. package/dist/web/.next/static/chunks/app/blog/ai-coding-agents-2026/page-0f1123e35eb8f046.js +1 -0
  156. package/dist/web/.next/static/chunks/app/blog/layout-9b51270472318488.js +1 -0
  157. package/dist/web/.next/static/chunks/app/blog/page-8400ea4ac5a7eb44.js +1 -0
  158. package/dist/web/.next/static/chunks/app/cli/login/page-26287cfd64c0fb49.js +1 -0
  159. package/dist/web/.next/static/chunks/app/digest/page-8400ea4ac5a7eb44.js +1 -0
  160. package/dist/web/.next/static/chunks/app/feedback/page-55ef0005807f1cef.js +1 -0
  161. package/dist/web/.next/static/chunks/app/layout-aa56caf2bf5af86f.js +1 -0
  162. package/dist/web/.next/static/chunks/app/my-projects/[projectKey]/page-7c5f2badf689d2e8.js +1 -0
  163. package/dist/web/.next/static/chunks/app/my-projects/page-c0390151fd6332a0.js +1 -0
  164. package/dist/web/.next/static/chunks/app/my-shares/{page-697d61e07a7546b2.js → page-49c0112973401c14.js} +1 -1
  165. package/dist/web/.next/static/chunks/app/not-found-8400ea4ac5a7eb44.js +1 -0
  166. package/dist/web/.next/static/chunks/app/opengraph-image/route-0f1123e35eb8f046.js +1 -0
  167. package/dist/web/.next/static/chunks/app/page-95394e3c6370084f.js +1 -0
  168. package/dist/web/.next/static/chunks/app/privacy/page-9b51270472318488.js +1 -0
  169. package/dist/web/.next/static/chunks/app/projects/[id]/page-7dd46a825d03a7d9.js +1 -0
  170. package/dist/web/.next/static/chunks/app/r/[slug]/opengraph-image/route-0f1123e35eb8f046.js +1 -0
  171. package/dist/web/.next/static/chunks/app/r/[slug]/page-6a0983805e048ac3.js +1 -0
  172. package/dist/web/.next/static/chunks/app/robots.txt/route-0f1123e35eb8f046.js +1 -0
  173. package/dist/web/.next/static/chunks/app/search/page-c29f37dc2462b676.js +1 -0
  174. package/dist/web/.next/static/chunks/app/sessions/[projectId]/[sessionId]/page-87b4505dd32edb9d.js +1 -0
  175. package/dist/web/.next/static/chunks/app/sign-in/page-fea3971ff9237b72.js +1 -0
  176. package/dist/web/.next/static/chunks/app/sitemap.xml/route-0f1123e35eb8f046.js +1 -0
  177. package/dist/web/.next/static/chunks/app/terms/page-9b51270472318488.js +1 -0
  178. package/dist/web/.next/static/chunks/d99d8e6a-55da88efbe15e3e1.js +1 -0
  179. package/dist/web/.next/static/chunks/framework-c1efa271b5a96d9d.js +1 -0
  180. package/dist/web/.next/static/chunks/main-app-70de904c7caade50.js +1 -0
  181. package/dist/web/.next/static/chunks/main-d211cddc79aac1cb.js +1 -0
  182. package/dist/web/.next/static/chunks/pages/{_app-42b849402a54b9e6.js → _app-701b0752a0d4c3a9.js} +1 -1
  183. package/dist/web/.next/static/chunks/pages/_error-327385abc873a736.js +1 -0
  184. package/dist/web/.next/static/chunks/{webpack-3a8b65d12c8eb987.js → webpack-3a446128dfa39f85.js} +1 -1
  185. package/dist/web/.next/static/css/c76bb7513858c50c.css +3 -0
  186. package/dist/web/package.json +1 -0
  187. package/dist/web/public/apple-touch-icon.png +0 -0
  188. package/dist/web/public/favicon-16.png +0 -0
  189. package/dist/web/public/favicon-32.png +0 -0
  190. package/dist/web/public/icon-192.png +0 -0
  191. package/dist/web/public/icon-512.png +0 -0
  192. package/dist/web/public/logo.png +0 -0
  193. package/package.json +1 -1
  194. package/dist/web/.next/server/app/opengraph-image/route.js.map +0 -1
  195. package/dist/web/.next/server/chunks/6019.js +0 -2
  196. package/dist/web/.next/server/edge-chunks/asset_noto-sans-v27-latin-regular.5dda3fca77107598.ttf +0 -0
  197. package/dist/web/.next/server/edge-chunks/wasm_77d9faebf7af9e421806970ce10a58e9d83116d7.wasm +0 -0
  198. package/dist/web/.next/server/edge-chunks/wasm_ef4866ecae192fd87727067cf2c0c0cf9fb8b020.wasm +0 -0
  199. package/dist/web/.next/server/edge-runtime-webpack.js +0 -2
  200. package/dist/web/.next/server/interception-route-rewrite-manifest.js +0 -1
  201. package/dist/web/.next/static/ZxFskpyUoxefJOzSxSb6s/_buildManifest.js +0 -1
  202. package/dist/web/.next/static/chunks/200-619918ea0fdbd6ff.js +0 -1
  203. package/dist/web/.next/static/chunks/29-7904810aeffd75a0.js +0 -1
  204. package/dist/web/.next/static/chunks/552926ff-e8a371ec0133d0dc.js +0 -1
  205. package/dist/web/.next/static/chunks/695-00bca043953d4170.js +0 -1
  206. package/dist/web/.next/static/chunks/app/_not-found/page-bd7ebde8ab75cb95.js +0 -1
  207. package/dist/web/.next/static/chunks/app/api/admin/backfill-search/route-bd7ebde8ab75cb95.js +0 -1
  208. package/dist/web/.next/static/chunks/app/api/cli/download/route-bd7ebde8ab75cb95.js +0 -1
  209. package/dist/web/.next/static/chunks/app/api/cli/feedback/route-bd7ebde8ab75cb95.js +0 -1
  210. package/dist/web/.next/static/chunks/app/api/cli/init/route-bd7ebde8ab75cb95.js +0 -1
  211. package/dist/web/.next/static/chunks/app/api/cli/my-shares/route-bd7ebde8ab75cb95.js +0 -1
  212. package/dist/web/.next/static/chunks/app/api/cli/poll/route-bd7ebde8ab75cb95.js +0 -1
  213. package/dist/web/.next/static/chunks/app/api/cli/project-settings/route-bd7ebde8ab75cb95.js +0 -1
  214. package/dist/web/.next/static/chunks/app/api/cli/share-mutate/route-bd7ebde8ab75cb95.js +0 -1
  215. package/dist/web/.next/static/chunks/app/api/cli/sync-list/route-bd7ebde8ab75cb95.js +0 -1
  216. package/dist/web/.next/static/chunks/app/api/local/project-sessions/route-bd7ebde8ab75cb95.js +0 -1
  217. package/dist/web/.next/static/chunks/app/api/local/watch/route-bd7ebde8ab75cb95.js +0 -1
  218. package/dist/web/.next/static/chunks/app/api/search/route-bd7ebde8ab75cb95.js +0 -1
  219. package/dist/web/.next/static/chunks/app/api/search-index/route-bd7ebde8ab75cb95.js +0 -1
  220. package/dist/web/.next/static/chunks/app/api/share/download/[slug]/route-bd7ebde8ab75cb95.js +0 -1
  221. package/dist/web/.next/static/chunks/app/api/share/route-bd7ebde8ab75cb95.js +0 -1
  222. package/dist/web/.next/static/chunks/app/api/upload/route-bd7ebde8ab75cb95.js +0 -1
  223. package/dist/web/.next/static/chunks/app/auth/callback/route-bd7ebde8ab75cb95.js +0 -1
  224. package/dist/web/.next/static/chunks/app/auth/signout/route-bd7ebde8ab75cb95.js +0 -1
  225. package/dist/web/.next/static/chunks/app/cli/login/page-647fd605d0fe2472.js +0 -1
  226. package/dist/web/.next/static/chunks/app/digest/page-41ec674edc998616.js +0 -1
  227. package/dist/web/.next/static/chunks/app/feedback/page-60f4d489fd598c9c.js +0 -1
  228. package/dist/web/.next/static/chunks/app/layout-f5666b9135264807.js +0 -1
  229. package/dist/web/.next/static/chunks/app/my-projects/[projectKey]/page-3a816489e5e8534b.js +0 -1
  230. package/dist/web/.next/static/chunks/app/my-projects/page-c88eba56cb5d0b8d.js +0 -1
  231. package/dist/web/.next/static/chunks/app/not-found-41ec674edc998616.js +0 -1
  232. package/dist/web/.next/static/chunks/app/opengraph-image/route-bd7ebde8ab75cb95.js +0 -1
  233. package/dist/web/.next/static/chunks/app/page-e6e80157848514e3.js +0 -1
  234. package/dist/web/.next/static/chunks/app/projects/[id]/page-faec0dc5b09bd35f.js +0 -1
  235. package/dist/web/.next/static/chunks/app/r/[slug]/opengraph-image/route-bd7ebde8ab75cb95.js +0 -1
  236. package/dist/web/.next/static/chunks/app/r/[slug]/page-65707eb198f673a1.js +0 -1
  237. package/dist/web/.next/static/chunks/app/search/page-fc0b629efa815c64.js +0 -1
  238. package/dist/web/.next/static/chunks/app/sessions/[projectId]/[sessionId]/page-5e70eaa0a429d94a.js +0 -1
  239. package/dist/web/.next/static/chunks/app/sign-in/page-792d0d79889186cf.js +0 -1
  240. package/dist/web/.next/static/chunks/d99d8e6a-80443bd3c9d31f50.js +0 -1
  241. package/dist/web/.next/static/chunks/framework-39000e34f38d10f6.js +0 -1
  242. package/dist/web/.next/static/chunks/main-app-21e9441fa7ac15ef.js +0 -1
  243. package/dist/web/.next/static/chunks/main-f824d48fd7ff2e3b.js +0 -1
  244. package/dist/web/.next/static/chunks/pages/_error-412ff705bc5b0636.js +0 -1
  245. package/dist/web/.next/static/css/3c4744a7426424ee.css +0 -3
  246. /package/dist/web/.next/static/{ZxFskpyUoxefJOzSxSb6s → LF69v3WA6LbEAkvRHNqfG}/_ssgManifest.js +0 -0
@@ -1,2 +0,0 @@
1
- "use strict";exports.id=6019,exports.ids=[6019],exports.modules={76019:(a,b,c)=>{c.d(b,{vz:()=>f,V3:()=>d,j:()=>Z,Cd:()=>e,il:()=>aD,BK:()=>aE,p4:()=>ac,jD:()=>ag,KL:()=>ab,QV:()=>ae});let d=a=>a,e=a=>a,f=a=>a,g=a=>a,h=a=>a,i=a=>a;class j{report(a){this.entries.push(a)}drain(){return[...this.entries]}constructor(){this.entries=[]}}var k=c(73024),l=c(48161),m=c(76760);function n(a){let b=a.split("/").filter(Boolean);return b[b.length-1]??a}var o=c(73836);async function p(a,b){let c,e=a.projects();try{c=await (0,o.readdir)(e)}catch(a){return b.report({level:"error",source:"readers/projects",message:"Could not read projects directory",path:e,cause:a}),[]}let f=[];for(let a of c){let c;if(a.startsWith("."))continue;let g=(0,m.join)(e,a);try{c=await (0,o.stat)(g)}catch(a){b.report({level:"warn",source:"readers/projects",message:"Could not stat project entry",path:g,cause:a});continue}if(!c.isDirectory())continue;let h=await q(g,b),i=function(a){if(!a.startsWith("-"))return a;let b=a.slice(1).split("-").filter(Boolean),c=function a(b,c){if(0===c.length)return b;for(let d=c.length;d>=1;d-=1){let e=c.slice(0,d).join("-"),f=(0,m.join)(b,e);if(!(0,k.existsSync)(f))continue;let g=a(f,c.slice(d));if(g)return g}return null}("/",b);return c||`/${b.join("/")}`}(a);f.push({id:d(a),name:n(i),path:i,sessionCount:h.sessionCount,lastActiveAt:h.lastActiveAt})}return f.sort((a,b)=>{let c=a.lastActiveAt?.getTime()??0;return(b.lastActiveAt?.getTime()??0)-c}),f}async function q(a,b){let c;try{c=await (0,o.readdir)(a)}catch(c){return b.report({level:"warn",source:"readers/projects",message:"Could not read project contents",path:a,cause:c}),{sessionCount:0,lastActiveAt:null}}let d=0,e=0;for(let b of c)if(b.endsWith(".jsonl")){d+=1;try{let c=await (0,o.stat)((0,m.join)(a,b));c.mtimeMs>e&&(e=c.mtimeMs)}catch{}}return{sessionCount:d,lastActiveAt:e>0?new Date(e):null}}var r=c(73398);let s=r.Ik({type:r.eu("text"),text:r.Yj()}).passthrough(),t=r.Ik({type:r.eu("thinking"),thinking:r.Yj().optional(),text:r.Yj().optional()}).passthrough(),u=r.Ik({type:r.eu("tool_use"),id:r.Yj(),name:r.Yj(),input:r.L5().optional()}).passthrough(),v=r.Ik({type:r.eu("tool_result"),tool_use_id:r.Yj(),content:r.L5().optional(),is_error:r.zM().optional()}).passthrough(),w=r.Ik({type:r.eu("image"),source:r.Ik({type:r.Yj().optional(),media_type:r.Yj().optional(),data:r.Yj().optional()}).passthrough().optional()}).passthrough(),x=r.KC([s,t,u,v,w]),y=r.Ik({role:r.Yj().optional(),content:r.KC([r.Yj(),r.YO(x)]).optional(),model:r.Yj().optional(),id:r.Yj().optional()}).passthrough(),z=r.Ik({type:r.Yj().optional(),uuid:r.Yj().optional(),parentUuid:r.Yj().nullable().optional(),isSidechain:r.zM().optional(),sessionId:r.Yj().optional(),timestamp:r.Yj().optional(),promptId:r.Yj().optional(),message:r.KC([r.Yj(),y]).optional()}).passthrough(),A=r.Ik({backupFileName:r.Yj().nullable().optional(),version:r.ai().optional(),backupTime:r.Yj().optional()}).passthrough(),B=r.Ik({type:r.eu("file-history-snapshot"),messageId:r.Yj().optional(),snapshot:r.Ik({timestamp:r.Yj().optional(),trackedFileBackups:r.g1(A).optional()}).passthrough()}).passthrough(),C=r.Ik({id:r.KC([r.Yj(),r.ai()]),subject:r.Yj().optional().default(""),description:r.Yj().optional().default(""),status:r.k5(["pending","in_progress","completed"]).optional().default("pending"),blocks:r.YO(r.KC([r.Yj(),r.ai()])).optional().default([]),blockedBy:r.YO(r.KC([r.Yj(),r.ai()])).optional().default([])}).passthrough(),D=r.Ik({content:r.Yj(),status:r.k5(["pending","in_progress","completed"]).optional().default("pending"),activeForm:r.Yj().optional().default("")}).passthrough(),E=r.YO(D),F=r.Ik({display:r.Yj(),timestamp:r.ai(),project:r.Yj().optional(),sessionId:r.Yj().optional()}).passthrough();var G=c(80481);async function*H(a){let{path:b,diagnostics:c,source:d}=a,e=(0,k.createReadStream)(b,{encoding:"utf8"}),f=(0,G.createInterface)({input:e,crlfDelay:1/0}),g=0;try{for await(let a of f)if(g+=1,0!==a.length)try{yield JSON.parse(a)}catch(a){c.report({level:"warn",source:d,message:`Skipped malformed JSONL line ${g}`,path:b,cause:a})}}finally{f.close(),e.close()}}let I="readers/conversations";async function J(a,b,c){let d,e=a.project(b);try{d=await (0,o.readdir)(e)}catch(a){return c.report({level:"warn",source:I,message:"Could not read project directory",path:e,cause:a}),[]}let f=[];for(let a of d){if(!a.endsWith(".jsonl"))continue;let d=(0,m.basename)(a,".jsonl"),g=(0,m.join)(e,a),h=await K(g,b,d,c);h&&f.push(h)}return f.sort((a,b)=>{let c=a.endedAt?.getTime()??a.startedAt.getTime();return(b.endedAt?.getTime()??b.startedAt.getTime())-c}),f}async function K(a,b,c,f){let g=null,h=null,i=null,j=0,k=0,l=0,m=0,n=!1;try{for await(let b of H({path:a,diagnostics:f,source:I})){let a=z.safeParse(b);if(!a.success)continue;let c=a.data,d=N(c);d&&((!h||d<h)&&(h=d),(!i||d>i)&&(i=d));let e=O(c);if("user"===e||"assistant"===e)for(let a of(j+=1,"user"===e&&(k+=1,g||(g=function(a){if("string"==typeof a.message)return a.message;if("object"==typeof a.message&&a.message){let b=a.message;if("string"==typeof b.content)return b.content;if(Array.isArray(b.content)){for(let a of b.content)if(a&&"object"==typeof a&&"text"===a.type){let b=a.text;if("string"==typeof b)return b}}}return null}(c))),P(c)))"tool_use"===a.type?(l+=1,("Write"===a.name||"Edit"===a.name||"NotebookEdit"===a.name)&&(m+=1)):"tool_result"===a.type&&a.isError&&(n=!0)}}catch(b){return f.report({level:"error",source:I,message:"Failed to summarize session",path:a,cause:b}),null}if(0===j&&!h)try{let b=await (0,o.stat)(a);i=h=new Date(b.mtimeMs)}catch{return null}return{id:e(c),projectId:d(b),title:function(a){if(!a)return"Untitled session";let b=a.trim().replace(/\s+/g," ");return b.length<=80?b:`${b.slice(0,77)}…`}(g),startedAt:h??new Date(0),endedAt:i,messageCount:j,userMessageCount:k,toolCallCount:l,fileChangeCount:m,hasErrors:n}}async function L(a,b,c,d){let g=a.conversation(b,c),h=[],i=new Map;try{for await(let b of H({path:g,diagnostics:d,source:I})){if(b&&"object"==typeof b&&"file-history-snapshot"===b.type){let d=B.safeParse(b);if(!d.success)continue;let e=d.data.snapshot.trackedFileBackups??{};for(let[b,d]of Object.entries(e)){if(!d||"string"!=typeof d.backupFileName||"number"!=typeof d.version)continue;let e=i.get(b)??new Map;if(!e.has(d.version)){let b=d.backupFileName,f=(0,m.join)(a.fileHistorySession(c),b);e.set(d.version,{backupFileName:b,version:d.version,capturedAt:new Date(d.backupTime?d.backupTime:0),loadContent:()=>(0,o.readFile)(f,"utf8")})}i.set(b,e)}continue}let d=z.safeParse(b);if(!d.success)continue;let g=function(a,b){let c=O(a);if(!c||"system"===c)return null;let d=N(a)??new Date(0),g=a.uuid;if("string"!=typeof g)return null;let h="object"==typeof a.message?a.message:null,i=h&&"string"==typeof h.model?h.model:void 0;return{id:f(g),parentId:"string"==typeof a.parentUuid&&a.parentUuid?f(a.parentUuid):null,sessionId:e(b),role:c,timestamp:d,content:P(a),isSidechain:!0===a.isSidechain,...void 0!==i?{model:i}:{}}}(d.data,c);g&&h.push(g)}}catch(a){d.report({level:"error",source:I,message:"Failed to load conversation",path:g,cause:a})}let j=[];for(let[a,b]of i.entries()){let d=[...b.values()].sort((a,b)=>a.version-b.version);j.push({sessionId:e(c),filePath:a,versions:d})}return j.sort((a,b)=>{let c=a.versions[a.versions.length-1]?.capturedAt.getTime()??0;return(b.versions[b.versions.length-1]?.capturedAt.getTime()??0)-c}),{messages:h,fileEdits:j}}async function M(a,b,c){let{messages:d,fileEdits:e}=await L(a,b.projectId,b.id,c);return{...b,messages:d,tasks:[],todos:[],fileHistories:[],fileEdits:e,toolResults:function(a){let b={};for(let c of a)for(let a of c.content)"tool_result"===a.type&&(b[a.toolUseId]=a);return b}(d)}}function N(a){let b=a.timestamp;if("string"!=typeof b)return null;let c=new Date(b);return Number.isNaN(c.getTime())?null:c}function O(a){if("user"===a.type)return"user";if("assistant"===a.type)return"assistant";if("object"==typeof a.message&&a.message){let b=a.message.role;if("user"===b||"assistant"===b||"system"===b)return b}return null}function P(a){let b="object"==typeof a.message?a.message:null;if(!b)return[];let c=b.content;if("string"==typeof c)return[{type:"text",text:c}];if(!Array.isArray(c))return[];let d=[];for(let a of c)if(a&&"object"==typeof a)switch(a.type){case"text":"string"==typeof a.text&&d.push({type:"text",text:a.text});break;case"thinking":{let b="string"==typeof a.thinking?a.thinking:"string"==typeof a.text?a.text:"";d.push({type:"thinking",text:b});break}case"tool_use":"string"==typeof a.id&&"string"==typeof a.name&&d.push({type:"tool_use",id:a.id,name:a.name,input:a.input});break;case"tool_result":"string"==typeof a.tool_use_id&&d.push({type:"tool_result",toolUseId:a.tool_use_id,output:a.content,isError:"boolean"==typeof a.is_error&&a.is_error});break;case"image":{let b=a.source??{};d.push({type:"image",mimeType:b.media_type??"application/octet-stream",source:"base64"===b.type?"base64":"url",...b.data?{data:b.data}:{}})}}return d}let Q="readers/tasks";async function R(a,b){let c,d=a.tasksRoot();try{c=await (0,o.readdir)(d)}catch(a){return b.report({level:"warn",source:Q,message:"Could not read tasks root",path:d,cause:a}),[]}let e=[];for(let a of c){if(a.startsWith("."))continue;let c=(0,m.join)(d,a);try{if(!(await (0,o.stat)(c)).isDirectory())continue}catch{continue}let f=await S(c,a,b);e.push({id:g(a),tasks:f})}return e}async function S(a,b,c){let d;try{d=await (0,o.readdir)(a)}catch(b){return c.report({level:"warn",source:Q,message:"Could not read task list directory",path:a,cause:b}),[]}let e=[];for(let f of d){if(!f.endsWith(".json"))continue;let d=(0,m.join)(a,f);try{let a=await (0,o.readFile)(d,"utf8"),f=JSON.parse(a),i=C.safeParse(f);if(!i.success){c.report({level:"warn",source:Q,message:"Invalid task file",path:d,cause:i.error});continue}let j=i.data;e.push({id:h(String(j.id)),taskListId:g(b),subject:j.subject,description:j.description,status:j.status,blocks:j.blocks.map(a=>h(String(a))),blockedBy:j.blockedBy.map(a=>h(String(a)))})}catch(a){c.report({level:"warn",source:Q,message:"Failed to parse task file",path:d,cause:a})}}return e.sort((a,b)=>{let c=Number(a.id),d=Number(b.id);return Number.isFinite(c)&&Number.isFinite(d)?c-d:String(a.id).localeCompare(String(b.id))}),e}let T="readers/todos";async function U(a,b){let c,d=a.todosRoot();try{c=await (0,o.readdir)(d)}catch(a){return b.report({level:"warn",source:T,message:"Could not read todos directory",path:d,cause:a}),new Map}let e=new Map;for(let a of c){let c;if(!a.endsWith(".json"))continue;let f=a.match(/^([0-9a-f-]{36})-agent-([0-9a-f-]{36})\.json$/i);if(!f)continue;let g=f[1],h=f[2];if(!g||!h)continue;let i=(0,m.join)(d,a);try{let a=await (0,o.readFile)(i,"utf8");if(0===a.trim().length)continue;let d=JSON.parse(a),e=E.safeParse(d);if(!e.success){b.report({level:"warn",source:T,message:"Invalid todo file",path:i,cause:e.error});continue}c=e.data.map(a=>({content:a.content,status:a.status,activeForm:a.activeForm}))}catch(a){b.report({level:"warn",source:T,message:"Failed to parse todo file",path:i,cause:a});continue}if(0===c.length)continue;let j=e.get(g)??[];j.push({sessionId:g,agentId:h,todos:c}),e.set(g,j)}return e}async function V(a,b,c){let d,f=a.fileHistorySession(b);try{d=await (0,o.readdir)(f)}catch{return[]}let g=new Map;for(let a of d){let b=a.indexOf("@v");if(-1===b)continue;let c=a.slice(0,b);if(!c)continue;let d=g.get(c)??[];d.push(a),g.set(c,d)}let h=[];for(let[a,d]of g.entries()){d.sort((a,b)=>W(a)-W(b));let g=[];for(let b of d){let d,e=(0,m.join)(f,b);try{d=await (0,o.stat)(e)}catch(a){c.report({level:"warn",source:"readers/fileHistory",message:"Could not stat file-history entry",path:e,cause:a});continue}let h=W(b);g.push({hash:i(a),version:h,capturedAt:new Date(d.mtimeMs),sizeBytes:d.size,loadContent:()=>(0,o.readFile)(e,"utf8")})}h.push({sessionId:e(b),contentKey:i(a),versions:g})}return h}function W(a){let b=a.match(/@v(\d+)$/);return b&&b[1]?Number.parseInt(b[1],10):0}let X="readers/history";async function Y(a,b){let c=a.history(),d=[];try{for await(let a of H({path:c,diagnostics:b,source:X})){let b=F.safeParse(a);if(!b.success)continue;let c=b.data;d.push({text:c.display,timestamp:new Date(c.timestamp),project:c.project??null,sessionId:c.sessionId??null})}}catch(a){b.report({level:"warn",source:X,message:"Failed to read history.jsonl",path:c,cause:a})}return d}let Z=1,$=function(){try{return(0,l.homedir)()}catch{return""}}(),_=[{name:"anthropic",re:/\bsk-ant-[a-zA-Z0-9_-]{3,}/g},{name:"openai",re:/\bsk-(?:proj-)?[a-zA-Z0-9_-]{3,}/g},{name:"aws-access",re:/\bAKIA[0-9A-Z]{16}/g},{name:"aws-secret",re:/\b[a-zA-Z0-9/+=]{40}\b(?=.*aws|.*secret)/gi},{name:"github-pat",re:/\bghp_[A-Za-z0-9]{3,}/g},{name:"github-app",re:/\bghs_[A-Za-z0-9]{3,}/g},{name:"github-fine",re:/\bgithub_pat_[A-Za-z0-9_]{3,}/g},{name:"slack-bot",re:/\bxox[abprs]-[A-Za-z0-9-]{3,}/g},{name:"google-api",re:/\bAIza[0-9A-Za-z\-_]{3,}/g},{name:"stripe-secret",re:/\bsk_live_[0-9a-zA-Z]{3,}/g},{name:"stripe-restricted",re:/\brk_live_[0-9a-zA-Z]{3,}/g},{name:"jwt",re:/\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}/g},{name:"supabase-pub",re:/\bsb_publishable_[A-Za-z0-9_-]{3,}/g},{name:"supabase-secret",re:/\bsb_secret_[A-Za-z0-9_-]{3,}/g},{name:"env-assign",re:/\b(?:[A-Z][A-Z0-9_]*(?:KEY|SECRET|TOKEN|PASSWORD|PASS|PWD))\s*=\s*['"]?([A-Za-z0-9_\-\.\/+=]{12,})['"]?/g},{name:"email",re:/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g}];function aa(a,b){if(!a)return a;let c=a;for(let{re:a}of _)c=c.replace(a,a=>{b.secretsRedacted+=1;let c=a.slice(0,Math.min(6,a.length));return`${c}…[REDACTED]`});if($&&$.length>0){let a=c;(c=c.split($).join("~"))!==a&&(b.pathsRedacted+=1)}return c}function ab(a,b){if(null==a)return a;if("string"==typeof a)return aa(a,b);if("object"!=typeof a)return a;if(Array.isArray(a))return a.map(a=>ab(a,b));let c={};for(let[d,e]of Object.entries(a))c[d]=ab(e,b);return c}async function ac(a,b,c={}){let d=c.stripThinking??!0,e={secretsRedacted:0,pathsRedacted:0,imagesDropped:0,toolResultsTruncated:0},f=await ad(a,e);f.map(a=>[a.toolUseId,a]);let g=[];for(let b of a.messages){if("system"===b.role)continue;let c=[];for(let f of b.content){let b=function(a,b,c,d){switch(a.type){case"text":return{type:"text",text:aa(a.text,d)};case"thinking":if(c)return null;return{type:"thinking",text:aa(a.text,d)};case"tool_use":return{type:"tool_use",id:a.id,name:a.name,input:ab(a.input,d)};case"tool_result":{let b=function(a){if(null==a)return"";if("string"==typeof a)return a;if(Array.isArray(a))return a.map(a=>{if(a&&"object"==typeof a&&"text"===a.type)return String(a.text??"");try{return JSON.stringify(a)}catch{return String(a)}}).join("\n");try{return JSON.stringify(a,null,2)}catch{return String(a)}}(a.output),c=b.split("\n"),e=b.length>12e3||c.length>200;e&&(d.toolResultsTruncated+=1);let f=e?`${c.slice(0,200).join("\n").slice(0,12e3)}
2
- … truncated (${c.length} lines total)`:b;return{type:"tool_result",toolUseId:a.toolUseId,output:aa(f,d),isError:!0===a.isError}}case"image":return d.imagesDropped+=1,{type:"image",mimeType:a.mimeType}}}(f,a.toolResults,d,e);b&&c.push(b)}g.push({id:b.id,parentId:b.parentId,role:"user"===b.role?"user":"assistant",timestamp:b.timestamp.toISOString(),content:c,...b.model?{model:b.model}:{},isSidechain:b.isSidechain})}let h=a.tasks.map(a=>({...a,subject:aa(a.subject,e),description:aa(a.description,e)})),i=a.todos.map(a=>({...a,content:aa(a.content,e),activeForm:aa(a.activeForm,e)}));return{formatVersion:Z,createdAt:new Date().toISOString(),meta:{title:aa(c.title??a.title,e),projectName:b,startedAt:a.startedAt.toISOString(),endedAt:a.endedAt?a.endedAt.toISOString():null,messageCount:a.messageCount,userMessageCount:a.userMessageCount,toolCallCount:a.toolCallCount,fileChangeCount:a.fileChangeCount},messages:g,diffs:f,tasks:h,todos:i,redactionStats:{secretsRedacted:e.secretsRedacted,pathsRedacted:e.pathsRedacted,imagesDropped:e.imagesDropped,toolResultsTruncated:e.toolResultsTruncated}}}async function ad(a,b){let c=new Map(a.fileEdits.map(a=>[a.filePath,a])),d=[],e=new Set;for(let b=a.messages.length-1;b>=0;b-=1){let f=a.messages[b];if(f)for(let a of f.content){if("tool_use"!==a.type||"Edit"!==a.name&&"Write"!==a.name&&"NotebookEdit"!==a.name)continue;let b=a.input?.file_path;!("string"!=typeof b||e.has(b))&&c.has(b)&&(e.add(b),d.push({toolUseId:a.id,filePath:b}))}}return(await Promise.all(d.map(async({toolUseId:a,filePath:d})=>{let e=c.get(d);if(!e||0===e.versions.length)return null;let f=e.versions[e.versions.length-1];if(!f)return null;let g=e.versions.length>1?e.versions[e.versions.length-2]:null;try{let c=await f.loadContent(),e=g?await g.loadContent():"";return{toolUseId:a,filePath:aa(d,b),before:aa(e,b),after:aa(c,b)}}catch{return null}}))).filter(a=>null!==a)}function ae(a){let b=[];for(let c of a.messages){let a=function(a){let b=a.content.map(af),c=b[0];return"user"===a.role&&1===b.length&&c&&"text"===c.type?{type:"user",uuid:a.id,parentUuid:a.parentId??void 0,isSidechain:a.isSidechain||void 0,timestamp:a.timestamp,message:c.text}:{type:a.role,uuid:a.id,parentUuid:a.parentId??void 0,isSidechain:a.isSidechain||void 0,timestamp:a.timestamp,message:{role:a.role,content:b,...a.model?{model:a.model}:{}}}}(c);b.push(JSON.stringify(a))}return b.join("\n")+"\n"}function af(a){switch(a.type){case"text":return{type:"text",text:a.text};case"thinking":return{type:"thinking",thinking:a.text};case"tool_use":return{type:"tool_use",id:a.id,name:a.name,input:a.input};case"tool_result":return{type:"tool_result",tool_use_id:a.toolUseId,content:a.output,is_error:a.isError};case"image":return{type:"text",text:`[image removed during redaction — original type: ${a.mimeType}]`}}}function ag(a){let b=[];for(let c of(b.push(a.meta.title),b.push(a.meta.projectName),a.messages))for(let a of c.content)b.push(function(a){switch(a.type){case"text":case"thinking":return a.text;case"tool_use":{let b=[a.name],c=a.input;return c&&("string"==typeof c.file_path&&b.push(c.file_path),"string"==typeof c.path&&b.push(c.path),"string"==typeof c.command&&b.push(c.command),"string"==typeof c.pattern&&b.push(c.pattern),"string"==typeof c.old_string&&b.push(c.old_string),"string"==typeof c.new_string&&b.push(c.new_string),"string"==typeof c.description&&b.push(c.description)),b.join(" ")}case"tool_result":return a.output;case"image":return""}}(a));for(let c of a.diffs)b.push(c.filePath);for(let c of a.tasks)c.subject&&b.push(c.subject),c.description&&b.push(c.description);for(let c of a.todos)c.content&&b.push(c.content);return b.filter(Boolean).join("\n").replace(/\s+/g," ").trim().slice(0,5e5)}let ah="readers/codex";async function ai(a,b){let c=a.projects(),d=await al(c,b),e=new Map;for(let a of d){let c=await am(a,b);if(!c)continue;let d=c.cwd||"unknown",f=e.get(d);if(!f){let a=d.split("/").filter(Boolean);f={name:a[a.length-1]??d,path:d,sessions:[]},e.set(d,f)}f.sessions.push(a)}return Array.from(e.entries()).map(([a,b])=>({projectId:`codex:${a.replace(/\//g,"-")}`,name:`${b.name} (Codex)`,path:b.path,sessions:b.sessions}))}async function aj(a,b,c){let d=[];for(let e of a){let a=await as(e,b,c);a&&d.push(a)}return d.sort((a,b)=>{let c=a.endedAt?.getTime()??a.startedAt.getTime();return(b.endedAt?.getTime()??b.startedAt.getTime())-c}),d}async function ak(a,b,c,d){let e=await an(a,d);if(0===e.length)return null;let f=ao(e),g=ap(e,c),h=function(a){let b={};for(let c of a){if("response_item"!==c.type)continue;let a=c.payload;if("function_call_output"===a.type){let c=a.call_id;c&&(b[c]={type:"tool_result",toolUseId:c,output:a.output??"",isError:!1})}}return b}(e),i=g.filter(a=>"user"===a.role),j=f?.timestamp?new Date(f.timestamp):e[0]?.timestamp?new Date(e[0].timestamp):new Date,k=e[e.length-1],l=k?.timestamp?new Date(k.timestamp):j,m=i[0],n=m&&ar(m).slice(0,120)||"Codex session",o=0,p=0;for(let a of g)for(let b of a.content)"tool_use"===b.type&&(o++,["apply_patch","write_file","exec_command"].includes(b.name)&&p++);return{id:c,projectId:b,title:n,startedAt:j,endedAt:l,messageCount:g.length,userMessageCount:i.length,toolCallCount:o,fileChangeCount:p,hasErrors:g.some(a=>a.content.some(a=>"tool_result"===a.type&&a.isError)),messages:g,toolResults:h,fileEdits:[],fileHistories:[],todos:[],tasks:[]}}async function al(a,b){let c=[];try{for(let d of(await (0,o.readdir)(a,{withFileTypes:!0}))){let e=(0,m.join)(a,d.name);if(d.isDirectory()){let a=await al(e,b);c.push(...a)}else d.name.endsWith(".jsonl")&&c.push(e)}}catch(c){b.report({level:"warn",source:ah,message:"Could not scan Codex sessions directory",path:a,cause:c})}return c}async function am(a,b){try{let b=await (0,o.readFile)(a,"utf8"),c=b.slice(0,b.indexOf("\n")),d=JSON.parse(c);if("session_meta"===d.type)return d.payload;for(let a of b.split("\n").slice(1,10))if(a.trim())try{let b=JSON.parse(a);if("session_meta"===b.type)return b.payload}catch{continue}return null}catch(c){return b.report({level:"warn",source:ah,message:"Could not read Codex session meta",path:a,cause:c}),null}}async function an(a,b){try{let b=await (0,o.readFile)(a,"utf8"),c=[];for(let a of b.split("\n"))if(a.trim())try{c.push(JSON.parse(a))}catch{}return c}catch(c){return b.report({level:"warn",source:ah,message:"Could not read Codex session",path:a,cause:c}),[]}}function ao(a){let b=a.find(a=>"session_meta"===a.type);return b?b.payload:null}function ap(a,b=""){let c=[],d=0;for(let f of a)if("response_item"===f.type){let a=f.payload,g=a.type;if("message"===g){var e;let g="user"===(e=a.role)?"user":"assistant"===e?"assistant":"system";if("system"===g)continue;let h=function(a){if(!Array.isArray(a))return[];let b=[];for(let c of a)if("input_text"===c.type||"text"===c.type){let a=c.text??c.input_text??"";a.trim()&&b.push({type:"text",text:a})}else if("output_text"===c.type){let a=c.text??"";a.trim()&&b.push({type:"text",text:a})}return b}(a.content);if(0===h.length)continue;c.push({id:`codex-msg-${d++}`,parentId:null,sessionId:b,role:g,timestamp:new Date(f.timestamp),content:h,model:a.model??void 0,isSidechain:!1})}else if("function_call"===g){let e={type:"tool_use",id:a.call_id??`call-${d}`,name:a.name,input:function(a){if(!a)return{};try{return JSON.parse(a)}catch{return{raw:a}}}(a.arguments)},g=aq(c);g?g.content.push(e):c.push({id:`codex-msg-${d++}`,parentId:null,sessionId:b,role:"assistant",timestamp:new Date(f.timestamp),content:[e],isSidechain:!1})}else if("function_call_output"===g){let e=a.output??"",g={type:"tool_result",toolUseId:a.call_id??"",output:e,isError:e.toLowerCase().includes("error")&&e.includes("exit code")},h=aq(c);h?h.content.push(g):c.push({id:`codex-msg-${d++}`,parentId:null,sessionId:b,role:"assistant",timestamp:new Date(f.timestamp),content:[g],isSidechain:!1})}else if("reasoning"===g){let b=a.summary?.[0];if(b?.text){let a={type:"thinking",text:b.text},d=aq(c);d&&d.content.push(a)}}}else if("event_msg"===f.type){let a=f.payload;if("user_message"===a.type){let e=a.message??"";if(!e.trim())continue;c.push({id:`codex-msg-${d++}`,parentId:null,sessionId:b,role:"user",timestamp:new Date(f.timestamp),content:[{type:"text",text:e}],isSidechain:!1})}}return c}function aq(a){for(let b=a.length-1;b>=0;b--)if("assistant"===a[b].role)return a[b];return null}function ar(a){return a.content.filter(a=>"text"===a.type).map(a=>a.text).join(" ").trim()}async function as(a,b,c){let d=await an(a,c);if(0===d.length)return null;let e=ao(d),f=function(a,b){if(b?.id)return b.id;let c=(0,m.basename)(a,".jsonl"),d=c.match(/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i);return d?.[1]??c}(a,e),g=ap(d);if(0===g.length)return null;let h=g.filter(a=>"user"===a.role),i=new Date(e?.timestamp?e.timestamp:d[0].timestamp),j=new Date(d[d.length-1].timestamp),k=h[0],l=k&&ar(k).slice(0,120)||"Codex session",n=0,o=0;for(let a of g)for(let b of a.content)"tool_use"===b.type&&(n++,["apply_patch","write_file"].includes(b.name)&&o++);return{id:f,projectId:b,title:l,startedAt:i,endedAt:j,messageCount:g.length,userMessageCount:h.length,toolCallCount:n,fileChangeCount:o,hasErrors:g.some(a=>a.content.some(a=>"tool_result"===a.type&&a.isError))}}async function at(a,b){let c,d=a.projects();try{c=await (0,o.readdir)(d)}catch{return[]}let e=[];for(let a of c){var f;if(a.startsWith("."))continue;let b=(0,m.join)(d,a,"agent-transcripts");try{if(!(await (0,o.stat)(b)).isDirectory())continue}catch{continue}if(0===(await aw(b)).length)continue;let c=(f=a,/^[A-Z]/.test(f)?"/"+f.replace(/-/g,"/"):f);e.push({projectId:`cursor:${a}`,name:`${n(c)} (Cursor)`,path:c,dirName:a})}return e}async function au(a,b,c,d){let e=(0,m.join)(a.projects(),b,"agent-transcripts"),f=await aw(e),g=[];for(let a of f){let b=await aB(a,c,d);b&&g.push(b)}return g.sort((a,b)=>{let c=a.endedAt?.getTime()??a.startedAt.getTime();return(b.endedAt?.getTime()??b.startedAt.getTime())-c}),g}async function av(a,b,c,d,e){let f=(0,m.join)(a.projects(),b,"agent-transcripts",c,`${c}.jsonl`),g=await ax(f,e);if(0===g.length)return null;let h=await aA(f),i=ay(g,c),j=function(a){let b={};for(let c of a)for(let a of c.content)"tool_result"===a.type&&a.toolUseId&&(b[a.toolUseId]=a);return b}(i),k=i.filter(a=>"user"===a.role),l=h?new Date(h.mtimeMs):new Date,n=k[0]&&az(k[0]).slice(0,120)||"Cursor session",o=0,p=0;for(let a of i)for(let b of a.content)"tool_use"===b.type&&(o++,["Shell","Edit","Write","CreateFile"].includes(b.name)&&p++);return{id:c,projectId:d,title:n,startedAt:l,endedAt:l,messageCount:i.length,userMessageCount:k.length,toolCallCount:o,fileChangeCount:p,hasErrors:i.some(a=>a.content.some(a=>"tool_result"===a.type&&a.isError)),messages:i,toolResults:j,fileEdits:[],fileHistories:[],todos:[],tasks:[]}}async function aw(a){let b=[];try{for(let c of(await (0,o.readdir)(a))){if(c.startsWith("."))continue;let d=(0,m.join)(a,c,`${c}.jsonl`);try{await (0,o.stat)(d),b.push(d)}catch{}}}catch{}return b}async function ax(a,b){try{let b=await (0,o.readFile)(a,"utf8"),c=[];for(let a of b.split("\n"))if(a.trim())try{c.push(JSON.parse(a))}catch{}return c}catch(c){return b.report({level:"warn",source:"readers/cursor",message:"Could not read Cursor transcript",path:a,cause:c}),[]}}function ay(a,b){let c=[],d=0;for(let f of a){var e;let a="user"===(e=f.role)?"user":"assistant"===e?"assistant":"system";if("system"===a)continue;let g=function(a){if(!Array.isArray(a))return[];let b=[];for(let c of a)if("text"===c.type){let a=c.text??"";(a=(a=a.replace(/<\/?user_query>/g,"").trim()).replace(/\[REDACTED\]/g,"").trim())&&b.push({type:"text",text:a})}else if("tool_use"===c.type)b.push({type:"tool_use",id:c.id??`cursor-tool-${Date.now()}`,name:c.name??"unknown",input:c.input??{}});else if("tool_result"===c.type){let a=c.output??c.content??"";b.push({type:"tool_result",toolUseId:c.tool_use_id??c.toolUseId??"",output:a,isError:!!(c.is_error??c.isError)})}return b}(f.message?.content);0!==g.length&&c.push({id:`cursor-msg-${d++}`,parentId:null,sessionId:b,role:a,timestamp:new Date,content:g,isSidechain:!1})}return c}function az(a){return a.content.filter(a=>"text"===a.type).map(a=>a.text).join(" ").replace(/<\/?user_query>/g,"").replace(/\[REDACTED\]/g,"").trim()}async function aA(a){try{return await (0,o.stat)(a)}catch{return null}}async function aB(a,b,c){let d=await ax(a,c);if(0===d.length)return null;let e=a.split("/"),f=e[e.length-2]??(0,m.basename)(a,".jsonl"),g=ay(d,f);if(0===g.length)return null;let h=g.filter(a=>"user"===a.role),i=await aA(a),j=i?new Date(i.mtimeMs):new Date,k=h[0]&&az(h[0]).slice(0,120)||"Cursor session",l=0,n=0;for(let a of g)for(let b of a.content)"tool_use"===b.type&&(l++,["Shell","Edit","Write","CreateFile"].includes(b.name)&&n++);return{id:f,projectId:b,title:k,startedAt:j,endedAt:j,messageCount:g.length,userMessageCount:h.length,toolCallCount:l,fileChangeCount:n,hasErrors:!1}}class aC{constructor(a){if(this.map=new Map,a<1)throw Error("LRU max must be >= 1");this.max=a}get(a){let b=this.map.get(a);if(void 0!==b)return this.map.delete(a),this.map.set(a,b),b}has(a){return this.map.has(a)}set(a,b){if(this.map.has(a)&&this.map.delete(a),this.map.set(a,b),this.map.size>this.max){let a=this.map.keys().next().value;void 0!==a&&this.map.delete(a)}}clear(){this.map.clear()}get size(){return this.map.size}}class aD{constructor(a={}){this.projectsCache=null,this.sessionsCache=new Map,this.taskListsCache=null,this.todoIndexCache=null,this.historyCache=null,this.codexProjectsCache=null,this.cursorProjectsCache=null,this.source=function(a){let b=a??(0,m.join)((0,l.homedir)(),".claude");return{kind:"claude-code",root:b,projects:()=>(0,m.join)(b,"projects"),project:a=>(0,m.join)(b,"projects",a),conversation:(a,c)=>(0,m.join)(b,"projects",a,`${c}.jsonl`),tasksRoot:()=>(0,m.join)(b,"tasks"),taskList:a=>(0,m.join)(b,"tasks",a),todosRoot:()=>(0,m.join)(b,"todos"),plansRoot:()=>(0,m.join)(b,"plans"),fileHistoryRoot:()=>(0,m.join)(b,"file-history"),fileHistorySession:a=>(0,m.join)(b,"file-history",a),history:()=>(0,m.join)(b,"history.jsonl")}}(a.root),this.codex=function(a){let b=(void 0)??(0,m.join)((0,l.homedir)(),".codex");return{kind:"codex",root:b,projects:()=>(0,m.join)(b,"sessions"),project:a=>(0,m.join)(b,"sessions",a),conversation:(a,c)=>(0,m.join)(b,"sessions",`${c}.jsonl`),tasksRoot:()=>(0,m.join)(b,"tasks"),taskList:a=>(0,m.join)(b,"tasks",a),todosRoot:()=>(0,m.join)(b,"todos"),plansRoot:()=>(0,m.join)(b,"plans"),fileHistoryRoot:()=>(0,m.join)(b,"file-history"),fileHistorySession:a=>(0,m.join)(b,"file-history",a),history:()=>(0,m.join)(b,"history.jsonl")}}(),this.cursor=function(a){let b=(void 0)??(0,m.join)((0,l.homedir)(),".cursor");return{kind:"cursor",root:b,projects:()=>(0,m.join)(b,"projects"),project:a=>(0,m.join)(b,"projects",a),conversation:(a,c)=>(0,m.join)(b,"projects",a,"agent-transcripts",c,`${c}.jsonl`),tasksRoot:()=>(0,m.join)(b,"tasks"),taskList:a=>(0,m.join)(b,"tasks",a),todosRoot:()=>(0,m.join)(b,"todos"),plansRoot:()=>(0,m.join)(b,"plans"),fileHistoryRoot:()=>(0,m.join)(b,"file-history"),fileHistorySession:a=>(0,m.join)(b,"file-history",a),history:()=>(0,m.join)(b,"history.jsonl")}}(),this.diagnostics=a.diagnostics??new j,this.sessionDetailCache=new aC(a.sessionDetailCacheSize??8),this.fileContentCache=new aC(a.fileContentCacheSize??1024)}async listProjects(){if(this.projectsCache)return this.projectsCache;let a=await p(this.source,this.diagnostics),b=(await this.getCodexProjects()).map(a=>({id:a.projectId,name:a.name,path:a.path,sessionCount:a.sessions.length,lastActiveAt:null})),c=(await this.getCursorProjects()).map(a=>({id:a.projectId,name:a.name,path:a.path,sessionCount:0,lastActiveAt:null}));return this.projectsCache=[...a,...b,...c],this.projectsCache}async getCodexProjects(){return this.codexProjectsCache||(this.codexProjectsCache=await ai(this.codex,this.diagnostics)),this.codexProjectsCache}async getCursorProjects(){return this.cursorProjectsCache||(this.cursorProjectsCache=await at(this.cursor,this.diagnostics)),this.cursorProjectsCache}async getProject(a){return(await this.listProjects()).find(b=>b.id===a)??null}async listSessions(a){let b=this.sessionsCache.get(a);if(b)return b;if(a.startsWith("codex:")){let b=(await this.getCodexProjects()).find(b=>b.projectId===a);if(!b)return[];let c=await aj(b.sessions,a,this.diagnostics);return this.sessionsCache.set(a,c),c}if(a.startsWith("cursor:")){let b=(await this.getCursorProjects()).find(b=>b.projectId===a);if(!b)return[];let c=await au(this.cursor,b.dirName,a,this.diagnostics);return this.sessionsCache.set(a,c),c}let c=await J(this.source,a,this.diagnostics);return this.sessionsCache.set(a,c),c}async listAllSessions(){let a=await this.listProjects(),b=[];for(let c of a){let a=await this.listSessions(c.id);b.push(...a)}return b.sort((a,b)=>{let c=a.endedAt?.getTime()??a.startedAt.getTime();return(b.endedAt?.getTime()??b.startedAt.getTime())-c}),b}async findProjectForSession(a){let b=(await this.listAllSessions()).find(b=>b.id===a);return b?b.projectId:null}async getSessionDetail(a,b){let c=`${a}::${b}`,d=this.sessionDetailCache.get(c);if(d)return d;let e=(await this.listSessions(a)).find(a=>a.id===b);if(!e)return null;if(a.startsWith("codex:")){let d=(await this.getCodexProjects()).find(b=>b.projectId===a);if(!d)return null;for(let e of d.sessions){let d=await ak(e,a,b,this.diagnostics);if(d&&d.id===b)return this.sessionDetailCache.set(c,d),d}return null}if(a.startsWith("cursor:")){let d=(await this.getCursorProjects()).find(b=>b.projectId===a);if(!d)return null;let e=await av(this.cursor,d.dirName,b,a,this.diagnostics);return e&&this.sessionDetailCache.set(c,e),e}let f=await M(this.source,e,this.diagnostics),g=((await this.getTodoIndex()).get(b)??[]).flatMap(a=>a.todos),h=await V(this.source,b,this.diagnostics),i=(await this.listTaskLists()).find(a=>a.id===b),j=f.fileEdits.map(a=>({...a,versions:a.versions.map(a=>this.wrapFileVersion(b,a))})),k={...f,todos:g,fileHistories:h,fileEdits:j,tasks:i?.tasks??[]};return this.sessionDetailCache.set(c,k),k}wrapFileVersion(a,b){let c=`${a}::${b.backupFileName}`;return{...b,loadContent:()=>{let a=this.fileContentCache.get(c);if(a)return a;let d=b.loadContent();return this.fileContentCache.set(c,d),d}}}async listTaskLists(){return this.taskListsCache||(this.taskListsCache=await R(this.source,this.diagnostics)),this.taskListsCache}async getTaskList(a){return(await this.listTaskLists()).find(b=>b.id===a)??null}async getTodoIndex(){return this.todoIndexCache||(this.todoIndexCache=await U(this.source,this.diagnostics)),this.todoIndexCache}async loadHistory(){return this.historyCache||(this.historyCache=await Y(this.source,this.diagnostics)),this.historyCache}drainDiagnostics(){return this.diagnostics.drain()}}async function aE(a){let[b,c,d]=await Promise.all([a.listProjects(),a.listAllSessions(),a.loadHistory()]),e=new Map(b.map(a=>[a.id,a])),f=[];for(let a of b)f.push({kind:"project",id:a.id,title:a.name,subtitle:a.path,haystack:`${a.name} ${a.path}`.toLowerCase(),...a.lastActiveAt?{timestamp:a.lastActiveAt.toISOString()}:{},href:`/projects/${encodeURIComponent(a.id)}`});for(let a of c){let b=e.get(a.projectId);f.push({kind:"session",id:a.id,title:a.title,...b?{subtitle:b.name}:{},haystack:`${a.title} ${b?.name??""}`.toLowerCase(),timestamp:(a.endedAt??a.startedAt).toISOString(),href:`/sessions/${encodeURIComponent(a.projectId)}/${encodeURIComponent(a.id)}`})}let g=0;for(let a of d){if(!a.text||0===a.text.length)continue;let c=a.text.length>240?`${a.text.slice(0,237)}…`:a.text;g+=1;let d=a.project?function(a){let b=a.split("/").filter(Boolean);return b[b.length-1]??a}(a.project):void 0,e=a.project?function(a,b,c){let d=a.find(a=>a.path===b);return d?c?`/sessions/${encodeURIComponent(d.id)}/${encodeURIComponent(c)}`:`/projects/${encodeURIComponent(d.id)}`:null}(b,a.project,a.sessionId):null;e&&f.push({kind:"prompt",id:`p${g}`,title:c,...d?{subtitle:d}:{},haystack:c.toLowerCase(),timestamp:a.timestamp.toISOString(),href:e})}return f.sort((a,b)=>(b.timestamp??"").localeCompare(a.timestamp??"")),{builtAt:new Date().toISOString(),entryCount:f.length,entries:f}}}};
@@ -1,2 +0,0 @@
1
- (()=>{"use strict";var a={},b={};function c(d){var e=b[d];if(void 0!==e)return e.exports;var f=b[d]={exports:{}},g=!0;try{a[d](f,f.exports,c),g=!1}finally{g&&delete b[d]}return f.exports}c.m=a,c.amdO={},(()=>{var a=[];c.O=(b,d,e,f)=>{if(d){f=f||0;for(var g=a.length;g>0&&a[g-1][2]>f;g--)a[g]=a[g-1];a[g]=[d,e,f];return}for(var h=1/0,g=0;g<a.length;g++){for(var[d,e,f]=a[g],i=!0,j=0;j<d.length;j++)(!1&f||h>=f)&&Object.keys(c.O).every(a=>c.O[a](d[j]))?d.splice(j--,1):(i=!1,f<h&&(h=f));if(i){a.splice(g--,1);var k=e();void 0!==k&&(b=k)}}return b}})(),c.n=a=>{var b=a&&a.__esModule?()=>a.default:()=>a;return c.d(b,{a:b}),b},c.d=(a,b)=>{for(var d in b)c.o(b,d)&&!c.o(a,d)&&Object.defineProperty(a,d,{enumerable:!0,get:b[d]})},c.e=()=>Promise.resolve(),c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(a){if("object"==typeof window)return window}}(),c.o=(a,b)=>Object.prototype.hasOwnProperty.call(a,b),c.r=a=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},c.U=function(a){var b=new URL(a,"x:/"),c={};for(var d in b)c[d]=b[d];for(var d in c.href=a,c.pathname=a.replace(/[?#].*/,""),c.origin=c.protocol="",c.toString=c.toJSON=()=>a,c)Object.defineProperty(this,d,{enumerable:!0,configurable:!0,value:c[d]})},c.U.prototype=URL.prototype,(()=>{var a={149:0};c.O.j=b=>0===a[b];var b=(b,d)=>{var e,f,[g,h,i]=d,j=0;if(g.some(b=>0!==a[b])){for(e in h)c.o(h,e)&&(c.m[e]=h[e]);if(i)var k=i(c)}for(b&&b(d);j<g.length;j++)f=g[j],c.o(a,f)&&a[f]&&a[f][0](),a[f]=0;return c.O(k)},d=self.webpackChunk_N_E=self.webpackChunk_N_E||[];d.forEach(b.bind(null,0)),d.push=b.bind(null,d.push.bind(d))})()})();
2
- //# sourceMappingURL=edge-runtime-webpack.js.map
@@ -1 +0,0 @@
1
- self.__INTERCEPTION_ROUTE_REWRITE_MANIFEST="[]";
@@ -1 +0,0 @@
1
- self.__BUILD_MANIFEST=function(e,r,t,_){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:27,errorRate:1e-4,numBits:518,numHashes:14,bitArray:[1,1,e,0,e,0,r,e,r,r,e,r,r,r,e,e,e,e,r,r,e,r,r,e,e,r,e,e,e,e,r,e,e,e,e,r,r,r,e,e,e,e,e,e,e,e,e,e,e,r,r,e,e,e,r,r,r,e,e,e,r,e,e,r,e,e,e,r,r,r,r,e,e,e,e,e,r,e,r,r,r,e,e,e,r,e,r,e,r,e,r,e,r,e,r,r,r,e,r,r,e,e,e,e,e,r,e,e,r,r,e,r,e,e,e,e,r,e,r,r,e,r,e,e,e,e,r,r,e,e,e,e,e,e,e,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,e,r,e,r,r,e,e,e,r,e,r,e,e,e,e,r,e,e,e,e,e,e,e,r,e,r,e,r,r,r,e,r,r,r,e,r,r,r,r,r,r,r,e,e,r,r,r,e,e,r,e,r,r,e,r,r,e,r,e,e,e,r,r,e,e,r,e,e,e,r,e,r,e,r,r,r,r,e,r,e,e,r,e,e,r,e,e,e,r,r,r,r,e,r,r,r,e,e,e,e,e,e,e,e,r,e,e,e,r,r,r,e,e,r,e,e,e,e,r,r,e,e,e,r,r,r,e,e,r,e,r,r,r,r,e,e,e,r,r,r,r,r,r,e,r,r,e,r,r,r,r,e,r,e,e,e,e,e,e,r,e,e,r,e,r,e,r,r,e,e,e,e,r,e,r,e,r,e,e,e,r,e,e,e,e,r,r,e,r,r,e,r,r,e,r,r,e,e,r,r,r,r,e,e,e,r,e,e,r,e,e,r,e,r,e,r,r,e,r,e,r,r,e,r,r,e,e,r,e,e,r,e,r,r,r,r,r,r,e,r,e,r,e,r,e,r,e,e,r,e,r,e,r,e,e,e,e,r,e,r,r,e,e,e,r,e,r,r,r,r,r,e,r,e,e,e,r,e,r,r,r,e,r,r,e,e,e,r,r,e,e,r,e,e,r,r,r,e,e,e,r,r,e,e,e,r,e,e,r,r,r,e,e,r,e,r,e,e,r,e,r,r,r,r,e,r,r,e,r,e,e,e,e,r,r,e,r,e,r,r,e,r,e,r,e,r,r,r,e,r,r,e,r,e,e,e,e,r,r,e,e,e,e,r,e,e,e]},__routerFilterDynamic:{numItems:5,errorRate:1e-4,numBits:96,numHashes:14,bitArray:[e,e,e,e,r,e,r,r,e,r,r,e,r,e,r,e,e,e,e,r,r,r,e,e,e,e,r,e,r,r,r,r,e,r,e,e,r,r,r,e,r,e,e,r,r,r,r,e,r,r,e,e,e,r,e,e,r,r,e,e,r,r,e,e,r,e,r,e,e,e,r,e,r,e,e,e,e,r,r,e,r,r,e,e,e,e,r,e,r,r,r,r,r,e,r,r]},"/_error":["static/chunks/pages/_error-412ff705bc5b0636.js"],sortedPages:["/_app","/_error"]}}(1,0,1e-4,14),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[200],{1525:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"errorOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},1528:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DecodeError:function(){return h},MiddlewareNotFoundError:function(){return P},MissingStaticPage:function(){return m},NormalizeError:function(){return y},PageNotFoundError:function(){return g},SP:function(){return p},ST:function(){return d},WEB_VITALS:function(){return r},execOnce:function(){return n},getDisplayName:function(){return l},getLocationOrigin:function(){return a},getURL:function(){return i},isAbsoluteUrl:function(){return u},isResSent:function(){return s},loadGetInitialProps:function(){return f},normalizeRepeatedSlashes:function(){return c},stringifyError:function(){return b}});let r=["CLS","FCP","FID","INP","LCP","TTFB"];function n(e){let t,r=!1;return function(){for(var n=arguments.length,o=Array(n),u=0;u<n;u++)o[u]=arguments[u];return r||(r=!0,t=e(...o)),t}}let o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,u=e=>o.test(e);function a(){let{protocol:e,hostname:t,port:r}=window.location;return e+"//"+t+(r?":"+r:"")}function i(){let{href:e}=window.location,t=a();return e.substring(t.length)}function l(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function s(e){return e.finished||e.headersSent}function c(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?"?"+t.slice(1).join("?"):"")}async function f(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await f(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&s(r))return n;if(!n)throw Object.defineProperty(Error('"'+l(e)+'.getInitialProps()" should resolve to an object. But found "'+n+'" instead.'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let p="undefined"!=typeof performance,d=p&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class h extends Error{}class y extends Error{}class g extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+e}}class m extends Error{constructor(e,t){super(),this.message="Failed to load static file for page: "+e+" "+t}}class P extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function b(e){return JSON.stringify({message:e.message,stack:e.stack})}},1932:(e,t,r)=>{var n=r(2892);r.o(n,"useParams")&&r.d(t,{useParams:function(){return n.useParams}}),r.o(n,"usePathname")&&r.d(t,{usePathname:function(){return n.usePathname}}),r.o(n,"useRouter")&&r.d(t,{useRouter:function(){return n.useRouter}}),r.o(n,"useSearchParams")&&r.d(t,{useSearchParams:function(){return n.useSearchParams}})},2742:(e,t)=>{function r(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function n(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function o(e){let t=new URLSearchParams;for(let[r,o]of Object.entries(e))if(Array.isArray(o))for(let e of o)t.append(r,n(e));else t.set(r,n(o));return t}function u(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];for(let t of r){for(let r of t.keys())e.delete(r);for(let[r,n]of t.entries())e.append(r,n)}return e}Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{assign:function(){return u},searchParamsToUrlQuery:function(){return r},urlQueryToSearchParams:function(){return o}})},3483:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return g},useLinkStatus:function(){return P}});let n=r(5552),o=r(655),u=n._(r(4519)),a=r(7174),i=r(3232),l=r(9744),s=r(1528),c=r(10);r(1293);let f=r(7099),p=r(4367),d=r(6943);r(1525);let h=r(5712);function y(e){return"string"==typeof e?e:(0,a.formatUrl)(e)}function g(e){var t;let r,n,a,[g,P]=(0,u.useOptimistic)(f.IDLE_LINK_STATUS),b=(0,u.useRef)(null),{href:_,as:v,children:E,prefetch:O=null,passHref:j,replace:S,shallow:C,scroll:N,onClick:T,onMouseEnter:R,onTouchStart:x,legacyBehavior:A=!1,onNavigate:M,ref:L,unstable_dynamicOnHover:k,...I}=e;r=E,A&&("string"==typeof r||"number"==typeof r)&&(r=(0,o.jsx)("a",{children:r}));let U=u.default.useContext(i.AppRouterContext),w=!1!==O,F=!1!==O?null===(t=O)||"auto"===t?h.FetchStrategy.PPR:h.FetchStrategy.Full:h.FetchStrategy.PPR,{href:D,as:K}=u.default.useMemo(()=>{let e=y(_);return{href:e,as:v?y(v):e}},[_,v]);A&&(n=u.default.Children.only(r));let B=A?n&&"object"==typeof n&&n.ref:L,z=u.default.useCallback(e=>(null!==U&&(b.current=(0,f.mountLinkInstance)(e,D,U,F,w,P)),()=>{b.current&&((0,f.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,f.unmountPrefetchableInstance)(e)}),[w,D,U,F,P]),Q={ref:(0,l.useMergedRef)(z,B),onClick(e){A||"function"!=typeof T||T(e),A&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(e),U&&(e.defaultPrevented||function(e,t,r,n,o,a,i){let{nodeName:l}=e.currentTarget;if(!("A"===l.toUpperCase()&&function(e){let t=e.currentTarget.getAttribute("target");return t&&"_self"!==t||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e)||e.currentTarget.hasAttribute("download"))){if(!(0,p.isLocalURL)(t)){o&&(e.preventDefault(),location.replace(t));return}if(e.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}u.default.startTransition(()=>{(0,d.dispatchNavigateAction)(r||t,o?"replace":"push",null==a||a,n.current)})}}(e,D,K,b,S,N,M))},onMouseEnter(e){A||"function"!=typeof R||R(e),A&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),U&&w&&(0,f.onNavigationIntent)(e.currentTarget,!0===k)},onTouchStart:function(e){A||"function"!=typeof x||x(e),A&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),U&&w&&(0,f.onNavigationIntent)(e.currentTarget,!0===k)}};return(0,s.isAbsoluteUrl)(K)?Q.href=K:A&&!j&&("a"!==n.type||"href"in n.props)||(Q.href=(0,c.addBasePath)(K)),a=A?u.default.cloneElement(n,Q):(0,o.jsx)("a",{...I,...Q,children:r}),(0,o.jsx)(m.Provider,{value:g,children:a})}let m=(0,u.createContext)(f.IDLE_LINK_STATUS),P=()=>(0,u.useContext)(m);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4367:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isLocalURL",{enumerable:!0,get:function(){return u}});let n=r(1528),o=r(4145);function u(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},7174:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{formatUrl:function(){return u},formatWithValidation:function(){return i},urlObjectKeys:function(){return a}});let n=r(5552)._(r(2742)),o=/https?|ftp|gopher|file/;function u(e){let{auth:t,hostname:r}=e,u=e.protocol||"",a=e.pathname||"",i=e.hash||"",l=e.query||"",s=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?s=t+e.host:r&&(s=t+(~r.indexOf(":")?"["+r+"]":r),e.port&&(s+=":"+e.port)),l&&"object"==typeof l&&(l=String(n.urlQueryToSearchParams(l)));let c=e.search||l&&"?"+l||"";return u&&!u.endsWith(":")&&(u+=":"),e.slashes||(!u||o.test(u))&&!1!==s?(s="//"+(s||""),a&&"/"!==a[0]&&(a="/"+a)):s||(s=""),i&&"#"!==i[0]&&(i="#"+i),c&&"?"!==c[0]&&(c="?"+c),""+u+s+(a=a.replace(/[?#]/g,encodeURIComponent))+(c=c.replace("#","%23"))+i}let a=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function i(e){return u(e)}},9744:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=r(4519);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=u(e,n)),t&&(o.current=u(t,n))},[e,t])}function u(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[29],{1123:(e,t,s)=>{s.d(t,{CommandPalette:()=>i});var r=s(655),n=s(4519),l=s(1932);function i(){let[e,t]=(0,n.useState)(!1),[s,i]=(0,n.useState)(""),[c,a]=(0,n.useState)(null),[u,x]=(0,n.useState)(!1),[h,f]=(0,n.useState)(null),[m,p]=(0,n.useState)(0),k=(0,n.useRef)(null),b=(0,l.useRouter)();(0,n.useEffect)(()=>{function s(s){if((s.metaKey||s.ctrlKey)&&"k"===s.key.toLowerCase()){s.preventDefault(),t(e=>!e);return}"Escape"===s.key&&e&&(s.preventDefault(),t(!1))}return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[e]),(0,n.useEffect)(()=>{!e||c||u||(x(!0),fetch("/api/search-index").then(e=>{if(!e.ok)throw Error("Failed: ".concat(e.status));return e.json()}).then(e=>{a(e),f(null)}).catch(e=>f(String(e))).finally(()=>x(!1)))},[e,c,u]),(0,n.useEffect)(()=>{e?(requestAnimationFrame(()=>{var e;return null==(e=k.current)?void 0:e.focus()}),p(0)):i("")},[e]);let v=(0,n.useMemo)(()=>c?function(e,t,s){let r=t.trim().toLowerCase();if(0===r.length)return e.slice(0,Math.min(50,20));let n=r.split(/\s+/),l=[];for(let t of e){let e=0,s=!0;for(let r of n){let n=t.haystack.indexOf(r);if(-1===n){s=!1;break}e+=1e3-Math.min(n,999),(0===n||" "===t.haystack[n-1])&&(e+=200)}s&&("prompt"===t.kind&&(e+=50),"session"===t.kind&&(e+=30),l.push({entry:t,score:e}))}return l.sort((e,t)=>t.score-e.score),l.slice(0,s).map(e=>e.entry)}(c.entries,s,50):[],[c,s]),j=(0,n.useMemo)(()=>(function(e){let t=[{kind:"session",items:[]},{kind:"prompt",items:[]},{kind:"project",items:[]}];for(let s of e){let e=t.find(e=>e.kind===s.kind);null==e||e.items.push(s)}return t.filter(e=>e.items.length>0)})(v),[v]);return((0,n.useEffect)(()=>{p(0)},[s]),e)?(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-start justify-center bg-black/60 px-4 pt-[12vh]",onClick:()=>t(!1),children:(0,r.jsxs)("div",{className:"w-full max-w-2xl overflow-hidden rounded-xl border border-surface-border bg-surface-1 shadow-2xl",onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 border-b border-surface-border px-4 py-3",children:[(0,r.jsx)(d,{}),(0,r.jsx)("input",{ref:k,value:s,onChange:e=>i(e.target.value),onKeyDown:function(e){if(0!==v.length){if("ArrowDown"===e.key)e.preventDefault(),p(e=>(e+1)%v.length);else if("ArrowUp"===e.key)e.preventDefault(),p(e=>(e-1+v.length)%v.length);else if("Enter"===e.key){e.preventDefault();let s=v[m];s&&(t(!1),b.push(s.href))}}},placeholder:u?"Loading index…":c?"Search ".concat(c.entryCount.toLocaleString()," prompts and sessions…"):"Search…",className:"flex-1 bg-transparent text-sm text-ink-1 placeholder:text-ink-3 focus:outline-none"}),(0,r.jsx)("kbd",{className:"kbd",children:"Esc"})]}),(0,r.jsxs)("div",{className:"max-h-[60vh] overflow-y-auto py-1",children:[h?(0,r.jsx)("div",{className:"px-4 py-6 text-sm text-danger",children:h}):null,h||u||0!==v.length||!(s.length>0)?null:(0,r.jsxs)("div",{className:"px-4 py-6 text-center text-sm text-ink-3",children:["No matches for “",s,"”"]}),h||u||0!==s.length||!c?null:(0,r.jsx)("div",{className:"px-4 py-6 text-center text-sm text-ink-3",children:"Start typing to search."}),j.map(e=>{var s;let{kind:n,items:l}=e;return(0,r.jsx)(o,{kind:n,items:l,activeId:null==(s=v[m])?void 0:s.id,onSelect:e=>{t(!1),b.push(e)}},n)})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between border-t border-surface-border px-4 py-2 text-2xs text-ink-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("kbd",{className:"kbd",children:"↑"}),(0,r.jsx)("kbd",{className:"kbd",children:"↓"}),(0,r.jsx)("span",{children:"navigate"}),(0,r.jsx)("span",{children:"\xb7"}),(0,r.jsx)("kbd",{className:"kbd",children:"↵"}),(0,r.jsx)("span",{children:"open"})]}),(0,r.jsx)("div",{children:c?"".concat(c.entryCount.toLocaleString()," indexed"):null})]})]})}):null}let c={prompt:"Prompts",session:"Sessions",project:"Projects"};function o(e){let{kind:t,items:s,activeId:n,onSelect:l}=e;return 0===s.length?null:(0,r.jsxs)("div",{className:"px-1 pb-1",children:[(0,r.jsx)("div",{className:"px-3 py-1.5 text-2xs font-medium uppercase tracking-wider text-ink-4",children:c[t]}),(0,r.jsx)("ul",{children:s.map(e=>{let s=e.id===n;return(0,r.jsx)("li",{children:(0,r.jsxs)("button",{type:"button",onClick:()=>l(e.href),className:"group flex w-full items-center gap-3 rounded-md px-3 py-2 text-left text-sm ".concat(s?"bg-accent-soft text-ink-0":"text-ink-1 hover:bg-surface-2"),children:[(0,r.jsx)(a,{kind:t}),(0,r.jsx)("span",{className:"line-clamp-1 flex-1 truncate",children:e.title}),e.subtitle?(0,r.jsx)("span",{className:"shrink-0 text-2xs text-ink-3",children:e.subtitle}):null]})},e.id)})})]})}function a(e){let{kind:t}=e,s="h-4 w-4 shrink-0 text-ink-3";switch(t){case"prompt":return(0,r.jsx)("svg",{viewBox:"0 0 16 16",fill:"none",className:s,children:(0,r.jsx)("path",{d:"M3 4h10M3 8h6M3 12h10",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})});case"session":return(0,r.jsxs)("svg",{viewBox:"0 0 16 16",fill:"none",className:s,children:[(0,r.jsx)("rect",{x:"2.5",y:"3.5",width:"11",height:"9",rx:"1.5",stroke:"currentColor",strokeWidth:"1.4"}),(0,r.jsx)("path",{d:"M5 7h6M5 10h4",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})]});case"project":return(0,r.jsx)("svg",{viewBox:"0 0 16 16",fill:"none",className:s,children:(0,r.jsx)("path",{d:"M2.5 5.5C2.5 4.67 3.17 4 4 4h3l1.5 1.5H12c.83 0 1.5.67 1.5 1.5v4c0 .83-.67 1.5-1.5 1.5H4c-.83 0-1.5-.67-1.5-1.5v-5z",stroke:"currentColor",strokeWidth:"1.4"})})}}function d(){return(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",className:"text-ink-3",children:[(0,r.jsx)("circle",{cx:"6",cy:"6",r:"4",stroke:"currentColor",strokeWidth:"1.4"}),(0,r.jsx)("path",{d:"M9.5 9.5L12 12",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})]})}},4059:(e,t,s)=>{s.d(t,{UserMenu:()=>c});var r=s(655),n=s(3483),l=s.n(n),i=s(4519);function c(e){var t,s,n;let{user:c}=e,[o,a]=(0,i.useState)(!1),d=(0,i.useRef)(null);(0,i.useEffect)(()=>{function e(e){d.current&&!d.current.contains(e.target)&&a(!1)}function t(e){"Escape"===e.key&&a(!1)}return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[]);let u=null!=(n=null!=(s=c.login)?s:null==(t=c.email)?void 0:t.split("@")[0])?n:"You",x=u.charAt(0).toUpperCase()||"U";return(0,r.jsxs)("div",{ref:d,className:"relative",children:[(0,r.jsx)("button",{type:"button",onClick:()=>a(e=>!e),className:"flex h-7 w-7 items-center justify-center rounded-full border border-surface-border bg-surface-1 text-2xs font-semibold text-ink-1 hover:border-surface-4 focus:outline-none focus:ring-2 focus:ring-accent/40","aria-label":"Account menu",children:c.avatarUrl?(0,r.jsx)("img",{src:c.avatarUrl,alt:"",className:"h-7 w-7 rounded-full object-cover"}):(0,r.jsx)("span",{children:x})}),o?(0,r.jsxs)("div",{className:"absolute right-0 top-9 w-56 overflow-hidden rounded-lg border border-surface-border bg-surface-1 shadow-xl",children:[(0,r.jsxs)("div",{className:"border-b border-surface-border px-3 py-3",children:[(0,r.jsx)("div",{className:"text-2xs font-medium text-ink-3",children:"Signed in as"}),(0,r.jsx)("div",{className:"mt-0.5 truncate text-sm font-semibold text-ink-1",children:u}),c.email?(0,r.jsx)("div",{className:"truncate text-2xs text-ink-3",children:c.email}):null]}),(0,r.jsxs)("ul",{className:"py-1 text-sm",children:[(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:"/search",onClick:()=>a(!1),className:"block px-3 py-1.5 text-ink-1 hover:bg-surface-2",children:"Search"})}),(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:"/my-projects",onClick:()=>a(!1),className:"block px-3 py-1.5 text-ink-1 hover:bg-surface-2",children:"My projects"})}),(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:"/my-shares",onClick:()=>a(!1),className:"block px-3 py-1.5 text-ink-1 hover:bg-surface-2",children:"My shares"})}),(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:"/digest",onClick:()=>a(!1),className:"block px-3 py-1.5 text-ink-1 hover:bg-surface-2",children:"Weekly digest"})}),(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:"/feedback",onClick:()=>a(!1),className:"block px-3 py-1.5 text-ink-1 hover:bg-surface-2",children:"Feedback"})})]}),(0,r.jsx)("form",{action:"/auth/signout",method:"POST",className:"border-t border-surface-border",children:(0,r.jsx)("button",{type:"submit",className:"block w-full px-3 py-2 text-left text-sm text-ink-2 hover:bg-surface-2 hover:text-ink-1",children:"Sign out"})})]}):null]})}},6597:(e,t,s)=>{s.d(t,{SearchTrigger:()=>n});var r=s(655);function n(){return(0,r.jsxs)("button",{type:"button",onClick:()=>{window.dispatchEvent(new KeyboardEvent("keydown",{key:"k",metaKey:!0,bubbles:!0}))},className:"flex items-center gap-2 rounded-md border border-surface-border bg-surface-1 px-2 py-1 text-2xs text-ink-3 hover:border-surface-4 hover:text-ink-1","aria-label":"Open search",children:[(0,r.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 14 14",fill:"none",children:[(0,r.jsx)("circle",{cx:"6",cy:"6",r:"4",stroke:"currentColor",strokeWidth:"1.4"}),(0,r.jsx)("path",{d:"M9.5 9.5L12 12",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})]}),(0,r.jsx)("span",{className:"hidden sm:inline",children:"Search"}),(0,r.jsx)("span",{className:"kbd",children:"⌘K"})]})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[994],{6485:(e,t,s)=>{s.d(t,{A:()=>p});var r=s(1556),i=s(6129),a=s(4495),n=s(4824),o=s(5509),l=s(1583),u=s(6084),h=s(519),c=s(4464),d=s(6120),_=s(6345),w=s(7236);(0,h.V)();let g={url:i.nf,storageKey:i.AQ,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:i.Rn,flowType:"implicit",debug:!1,hasCustomAuthorizationHeader:!1,throwOnError:!1,lockAcquireTimeout:5e3,skipAutoInitialize:!1};async function f(e,t,s){return await s()}let y={};class b{get jwks(){var e,t;return null!=(t=null==(e=y[this.storageKey])?void 0:e.jwks)?t:{keys:[]}}set jwks(e){y[this.storageKey]=Object.assign(Object.assign({},y[this.storageKey]),{jwks:e})}get jwks_cached_at(){var e,t;return null!=(t=null==(e=y[this.storageKey])?void 0:e.cachedAt)?t:Number.MIN_SAFE_INTEGER}set jwks_cached_at(e){y[this.storageKey]=Object.assign(Object.assign({},y[this.storageKey]),{cachedAt:e})}constructor(e){var t,s,i;this.userStorage=null,this.memoryStorage=null,this.stateChangeEmitters=new Map,this.autoRefreshTicker=null,this.autoRefreshTickTimeout=null,this.visibilityChangedCallback=null,this.refreshingDeferred=null,this.initializePromise=null,this.detectSessionInUrl=!0,this.hasCustomAuthorizationHeader=!1,this.suppressGetSessionWarning=!1,this.lockAcquired=!1,this.pendingInLock=[],this.broadcastChannel=null,this.logger=console.log;let a=Object.assign(Object.assign({},g),e);if(this.storageKey=a.storageKey,this.instanceID=null!=(t=b.nextInstanceID[this.storageKey])?t:0,b.nextInstanceID[this.storageKey]=this.instanceID+1,this.logDebugMessages=!!a.debug,"function"==typeof a.debug&&(this.logger=a.debug),this.instanceID>0&&(0,o.Bd)()){let e=`${this._logPrefix()} Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.`;console.warn(e),this.logDebugMessages&&console.trace(e)}if(this.persistSession=a.persistSession,this.autoRefreshToken=a.autoRefreshToken,this.admin=new r.A({url:a.url,headers:a.headers,fetch:a.fetch}),this.url=a.url,this.headers=a.headers,this.fetch=(0,o.lA)(a.fetch),this.lock=a.lock||f,this.detectSessionInUrl=a.detectSessionInUrl,this.flowType=a.flowType,this.hasCustomAuthorizationHeader=a.hasCustomAuthorizationHeader,this.throwOnError=a.throwOnError,this.lockAcquireTimeout=a.lockAcquireTimeout,a.lock?this.lock=a.lock:this.persistSession&&(0,o.Bd)()&&(null==(s=null==globalThis?void 0:globalThis.navigator)?void 0:s.locks)?this.lock=u.JS:this.lock=f,this.jwks||(this.jwks={keys:[]},this.jwks_cached_at=Number.MIN_SAFE_INTEGER),this.mfa={verify:this._verify.bind(this),enroll:this._enroll.bind(this),unenroll:this._unenroll.bind(this),challenge:this._challenge.bind(this),listFactors:this._listFactors.bind(this),challengeAndVerify:this._challengeAndVerify.bind(this),getAuthenticatorAssuranceLevel:this._getAuthenticatorAssuranceLevel.bind(this),webauthn:new w.H1(this)},this.oauth={getAuthorizationDetails:this._getAuthorizationDetails.bind(this),approveAuthorization:this._approveAuthorization.bind(this),denyAuthorization:this._denyAuthorization.bind(this),listGrants:this._listOAuthGrants.bind(this),revokeGrant:this._revokeOAuthGrant.bind(this)},this.persistSession?(a.storage?this.storage=a.storage:(0,o.LJ)()?this.storage=globalThis.localStorage:(this.memoryStorage={},this.storage=(0,l.r)(this.memoryStorage)),a.userStorage&&(this.userStorage=a.userStorage)):(this.memoryStorage={},this.storage=(0,l.r)(this.memoryStorage)),(0,o.Bd)()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(e){console.error("Failed to create a new BroadcastChannel, multi-tab state changes will not be available",e)}null==(i=this.broadcastChannel)||i.addEventListener("message",async e=>{this._debug("received broadcast notification from other tab or client",e);try{await this._notifyAllSubscribers(e.data.event,e.data.session,!1)}catch(e){this._debug("#broadcastChannel","error",e)}})}a.skipAutoInitialize||this.initialize().catch(e=>{this._debug("#initialize()","error",e)})}isThrowOnErrorEnabled(){return this.throwOnError}_returnResult(e){if(this.throwOnError&&e&&e.error)throw e.error;return e}_logPrefix(){return`GoTrueClient@${this.storageKey}:${this.instanceID} (${c.r}) ${new Date().toISOString()}`}_debug(...e){return this.logDebugMessages&&this.logger(this._logPrefix(),...e),this}async initialize(){return this.initializePromise||(this.initializePromise=(async()=>await this._acquireLock(this.lockAcquireTimeout,async()=>await this._initialize()))()),await this.initializePromise}async _initialize(){var e;try{let t={},s="none";if((0,o.Bd)()&&(t=(0,o.XR)(window.location.href),this._isImplicitGrantCallback(t)?s="implicit":await this._isPKCECallback(t)&&(s="pkce")),(0,o.Bd)()&&this.detectSessionInUrl&&"none"!==s){let{data:r,error:i}=await this._getSessionFromURL(t,s);if(i){(this._debug("#_initialize()","error detecting session from URL",i),(0,a.MJ)(i))&&(null==(e=i.details)||e.code);return{error:i}}let{session:n,redirectType:o}=r;return this._debug("#_initialize()","detected session in URL",n,"redirect type",o),await this._saveSession(n),setTimeout(async()=>{"recovery"===o?await this._notifyAllSubscribers("PASSWORD_RECOVERY",n):await this._notifyAllSubscribers("SIGNED_IN",n)},0),{error:null}}return await this._recoverAndRefresh(),{error:null}}catch(e){if((0,a.HY)(e))return this._returnResult({error:e});return this._returnResult({error:new a.HU("Unexpected error during initialization",e)})}finally{await this._handleVisibilityChange(),this._debug("#_initialize()","end")}}async signInAnonymously(e){var t,s,r;try{let{data:i,error:a}=await (0,n.vE)(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{data:null!=(s=null==(t=null==e?void 0:e.options)?void 0:t.data)?s:{},gotrue_meta_security:{captcha_token:null==(r=null==e?void 0:e.options)?void 0:r.captchaToken}},xform:n.R_});if(a||!i)return this._returnResult({data:{user:null,session:null},error:a});let o=i.session,l=i.user;return i.session&&(await this._saveSession(i.session),await this._notifyAllSubscribers("SIGNED_IN",o)),this._returnResult({data:{user:l,session:o},error:null})}catch(e){if((0,a.HY)(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async signUp(e){var t,s,r;try{let i;if("email"in e){let{email:s,password:r,options:a}=e,l=null,u=null;"pkce"===this.flowType&&([l,u]=await (0,o.dS)(this.storage,this.storageKey)),i=await (0,n.vE)(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,redirectTo:null==a?void 0:a.emailRedirectTo,body:{email:s,password:r,data:null!=(t=null==a?void 0:a.data)?t:{},gotrue_meta_security:{captcha_token:null==a?void 0:a.captchaToken},code_challenge:l,code_challenge_method:u},xform:n.R_})}else if("phone"in e){let{phone:t,password:a,options:o}=e;i=await (0,n.vE)(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{phone:t,password:a,data:null!=(s=null==o?void 0:o.data)?s:{},channel:null!=(r=null==o?void 0:o.channel)?r:"sms",gotrue_meta_security:{captcha_token:null==o?void 0:o.captchaToken}},xform:n.R_})}else throw new a.U_("You must provide either an email or phone number and a password");let{data:l,error:u}=i;if(u||!l)return await (0,o.Gb)(this.storage,`${this.storageKey}-code-verifier`),this._returnResult({data:{user:null,session:null},error:u});let h=l.session,c=l.user;return l.session&&(await this._saveSession(l.session),await this._notifyAllSubscribers("SIGNED_IN",h)),this._returnResult({data:{user:c,session:h},error:null})}catch(e){if(await (0,o.Gb)(this.storage,`${this.storageKey}-code-verifier`),(0,a.HY)(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async signInWithPassword(e){try{let t;if("email"in e){let{email:s,password:r,options:i}=e;t=await (0,n.vE)(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:s,password:r,gotrue_meta_security:{captcha_token:null==i?void 0:i.captchaToken}},xform:n.GC})}else if("phone"in e){let{phone:s,password:r,options:i}=e;t=await (0,n.vE)(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:s,password:r,gotrue_meta_security:{captcha_token:null==i?void 0:i.captchaToken}},xform:n.GC})}else throw new a.U_("You must provide either an email or phone number and a password");let{data:s,error:r}=t;if(r)return this._returnResult({data:{user:null,session:null},error:r});if(!s||!s.session||!s.user){let e=new a.Ox;return this._returnResult({data:{user:null,session:null},error:e})}return s.session&&(await this._saveSession(s.session),await this._notifyAllSubscribers("SIGNED_IN",s.session)),this._returnResult({data:Object.assign({user:s.user,session:s.session},s.weak_password?{weakPassword:s.weak_password}:null),error:r})}catch(e){if((0,a.HY)(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async signInWithOAuth(e){var t,s,r,i;return await this._handleProviderSignIn(e.provider,{redirectTo:null==(t=e.options)?void 0:t.redirectTo,scopes:null==(s=e.options)?void 0:s.scopes,queryParams:null==(r=e.options)?void 0:r.queryParams,skipBrowserRedirect:null==(i=e.options)?void 0:i.skipBrowserRedirect})}async exchangeCodeForSession(e){return await this.initializePromise,this._acquireLock(this.lockAcquireTimeout,async()=>this._exchangeCodeForSession(e))}async signInWithWeb3(e){let{chain:t}=e;switch(t){case"ethereum":return await this.signInWithEthereum(e);case"solana":return await this.signInWithSolana(e);default:throw Error(`@supabase/auth-js: Unsupported chain "${t}"`)}}async signInWithEthereum(e){var t,s,r,i,l,u,h,c,d,w,g;let f,y;if("message"in e)f=e.message,y=e.signature;else{let a,{chain:n,wallet:w,statement:g,options:b}=e;if((0,o.Bd)())if("object"==typeof w)a=w;else{let e=window;if("ethereum"in e&&"object"==typeof e.ethereum&&"request"in e.ethereum&&"function"==typeof e.ethereum.request)a=e.ethereum;else throw Error("@supabase/auth-js: No compatible Ethereum wallet interface on the window object (window.ethereum) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'ethereum', wallet: resolvedUserWallet }) instead.")}else{if("object"!=typeof w||!(null==b?void 0:b.url))throw Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");a=w}let p=new URL(null!=(t=null==b?void 0:b.url)?t:window.location.href),v=await a.request({method:"eth_requestAccounts"}).then(e=>e).catch(()=>{throw Error("@supabase/auth-js: Wallet method eth_requestAccounts is missing or invalid")});if(!v||0===v.length)throw Error("@supabase/auth-js: No accounts available. Please ensure the wallet is connected.");let k=(0,_.bv)(v[0]),m=null==(s=null==b?void 0:b.signInWithEthereum)?void 0:s.chainId;if(!m){let e=await a.request({method:"eth_chainId"});m=(0,_.aD)(e)}let S={domain:p.host,address:k,statement:g,uri:p.href,version:"1",chainId:m,nonce:null==(r=null==b?void 0:b.signInWithEthereum)?void 0:r.nonce,issuedAt:null!=(l=null==(i=null==b?void 0:b.signInWithEthereum)?void 0:i.issuedAt)?l:new Date,expirationTime:null==(u=null==b?void 0:b.signInWithEthereum)?void 0:u.expirationTime,notBefore:null==(h=null==b?void 0:b.signInWithEthereum)?void 0:h.notBefore,requestId:null==(c=null==b?void 0:b.signInWithEthereum)?void 0:c.requestId,resources:null==(d=null==b?void 0:b.signInWithEthereum)?void 0:d.resources};f=(0,_.ob)(S),y=await a.request({method:"personal_sign",params:[(0,_.nj)(f),k]})}try{let{data:t,error:s}=await (0,n.vE)(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"ethereum",message:f,signature:y},(null==(w=e.options)?void 0:w.captchaToken)?{gotrue_meta_security:{captcha_token:null==(g=e.options)?void 0:g.captchaToken}}:null),xform:n.R_});if(s)throw s;if(!t||!t.session||!t.user){let e=new a.Ox;return this._returnResult({data:{user:null,session:null},error:e})}return t.session&&(await this._saveSession(t.session),await this._notifyAllSubscribers("SIGNED_IN",t.session)),this._returnResult({data:Object.assign({},t),error:s})}catch(e){if((0,a.HY)(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async signInWithSolana(e){var t,s,r,i,l,u,h,c,_,w,g,f;let y,b;if("message"in e)y=e.message,b=e.signature;else{let a,{chain:n,wallet:d,statement:g,options:f}=e;if((0,o.Bd)())if("object"==typeof d)a=d;else{let e=window;if("solana"in e&&"object"==typeof e.solana&&("signIn"in e.solana&&"function"==typeof e.solana.signIn||"signMessage"in e.solana&&"function"==typeof e.solana.signMessage))a=e.solana;else throw Error("@supabase/auth-js: No compatible Solana wallet interface on the window object (window.solana) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'solana', wallet: resolvedUserWallet }) instead.")}else{if("object"!=typeof d||!(null==f?void 0:f.url))throw Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");a=d}let p=new URL(null!=(t=null==f?void 0:f.url)?t:window.location.href);if("signIn"in a&&a.signIn){let e,t=await a.signIn(Object.assign(Object.assign(Object.assign({issuedAt:new Date().toISOString()},null==f?void 0:f.signInWithSolana),{version:"1",domain:p.host,uri:p.href}),g?{statement:g}:null));if(Array.isArray(t)&&t[0]&&"object"==typeof t[0])e=t[0];else if(t&&"object"==typeof t&&"signedMessage"in t&&"signature"in t)e=t;else throw Error("@supabase/auth-js: Wallet method signIn() returned unrecognized value");if("signedMessage"in e&&"signature"in e&&("string"==typeof e.signedMessage||e.signedMessage instanceof Uint8Array)&&e.signature instanceof Uint8Array)y="string"==typeof e.signedMessage?e.signedMessage:new TextDecoder().decode(e.signedMessage),b=e.signature;else throw Error("@supabase/auth-js: Wallet method signIn() API returned object without signedMessage and signature fields")}else{if(!("signMessage"in a)||"function"!=typeof a.signMessage||!("publicKey"in a)||"object"!=typeof a||!a.publicKey||!("toBase58"in a.publicKey)||"function"!=typeof a.publicKey.toBase58)throw Error("@supabase/auth-js: Wallet does not have a compatible signMessage() and publicKey.toBase58() API");y=[`${p.host} wants you to sign in with your Solana account:`,a.publicKey.toBase58(),...g?["",g,""]:[""],"Version: 1",`URI: ${p.href}`,`Issued At: ${null!=(r=null==(s=null==f?void 0:f.signInWithSolana)?void 0:s.issuedAt)?r:new Date().toISOString()}`,...(null==(i=null==f?void 0:f.signInWithSolana)?void 0:i.notBefore)?[`Not Before: ${f.signInWithSolana.notBefore}`]:[],...(null==(l=null==f?void 0:f.signInWithSolana)?void 0:l.expirationTime)?[`Expiration Time: ${f.signInWithSolana.expirationTime}`]:[],...(null==(u=null==f?void 0:f.signInWithSolana)?void 0:u.chainId)?[`Chain ID: ${f.signInWithSolana.chainId}`]:[],...(null==(h=null==f?void 0:f.signInWithSolana)?void 0:h.nonce)?[`Nonce: ${f.signInWithSolana.nonce}`]:[],...(null==(c=null==f?void 0:f.signInWithSolana)?void 0:c.requestId)?[`Request ID: ${f.signInWithSolana.requestId}`]:[],...(null==(w=null==(_=null==f?void 0:f.signInWithSolana)?void 0:_.resources)?void 0:w.length)?["Resources",...f.signInWithSolana.resources.map(e=>`- ${e}`)]:[]].join("\n");let e=await a.signMessage(new TextEncoder().encode(y),"utf8");if(!e||!(e instanceof Uint8Array))throw Error("@supabase/auth-js: Wallet signMessage() API returned an recognized value");b=e}}try{let{data:t,error:s}=await (0,n.vE)(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"solana",message:y,signature:(0,d.no)(b)},(null==(g=e.options)?void 0:g.captchaToken)?{gotrue_meta_security:{captcha_token:null==(f=e.options)?void 0:f.captchaToken}}:null),xform:n.R_});if(s)throw s;if(!t||!t.session||!t.user){let e=new a.Ox;return this._returnResult({data:{user:null,session:null},error:e})}return t.session&&(await this._saveSession(t.session),await this._notifyAllSubscribers("SIGNED_IN",t.session)),this._returnResult({data:Object.assign({},t),error:s})}catch(e){if((0,a.HY)(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async _exchangeCodeForSession(e){let t=await (0,o.U9)(this.storage,`${this.storageKey}-code-verifier`),[s,r]=(null!=t?t:"").split("/");try{if(!s&&"pkce"===this.flowType)throw new a.lh;let{data:t,error:i}=await (0,n.vE)(this.fetch,"POST",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:e,code_verifier:s},xform:n.R_});if(await (0,o.Gb)(this.storage,`${this.storageKey}-code-verifier`),i)throw i;if(!t||!t.session||!t.user){let e=new a.Ox;return this._returnResult({data:{user:null,session:null,redirectType:null},error:e})}return t.session&&(await this._saveSession(t.session),await this._notifyAllSubscribers("SIGNED_IN",t.session)),this._returnResult({data:Object.assign(Object.assign({},t),{redirectType:null!=r?r:null}),error:i})}catch(e){if(await (0,o.Gb)(this.storage,`${this.storageKey}-code-verifier`),(0,a.HY)(e))return this._returnResult({data:{user:null,session:null,redirectType:null},error:e});throw e}}async signInWithIdToken(e){try{let{options:t,provider:s,token:r,access_token:i,nonce:o}=e,{data:l,error:u}=await (0,n.vE)(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:s,id_token:r,access_token:i,nonce:o,gotrue_meta_security:{captcha_token:null==t?void 0:t.captchaToken}},xform:n.R_});if(u)return this._returnResult({data:{user:null,session:null},error:u});if(!l||!l.session||!l.user){let e=new a.Ox;return this._returnResult({data:{user:null,session:null},error:e})}return l.session&&(await this._saveSession(l.session),await this._notifyAllSubscribers("SIGNED_IN",l.session)),this._returnResult({data:l,error:u})}catch(e){if((0,a.HY)(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async signInWithOtp(e){var t,s,r,i,l;try{if("email"in e){let{email:r,options:i}=e,a=null,l=null;"pkce"===this.flowType&&([a,l]=await (0,o.dS)(this.storage,this.storageKey));let{error:u}=await (0,n.vE)(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{email:r,data:null!=(t=null==i?void 0:i.data)?t:{},create_user:null==(s=null==i?void 0:i.shouldCreateUser)||s,gotrue_meta_security:{captcha_token:null==i?void 0:i.captchaToken},code_challenge:a,code_challenge_method:l},redirectTo:null==i?void 0:i.emailRedirectTo});return this._returnResult({data:{user:null,session:null},error:u})}if("phone"in e){let{phone:t,options:s}=e,{data:a,error:o}=await (0,n.vE)(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{phone:t,data:null!=(r=null==s?void 0:s.data)?r:{},create_user:null==(i=null==s?void 0:s.shouldCreateUser)||i,gotrue_meta_security:{captcha_token:null==s?void 0:s.captchaToken},channel:null!=(l=null==s?void 0:s.channel)?l:"sms"}});return this._returnResult({data:{user:null,session:null,messageId:null==a?void 0:a.message_id},error:o})}throw new a.U_("You must provide either an email or phone number.")}catch(e){if(await (0,o.Gb)(this.storage,`${this.storageKey}-code-verifier`),(0,a.HY)(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async verifyOtp(e){var t,s;try{let r,i;"options"in e&&(r=null==(t=e.options)?void 0:t.redirectTo,i=null==(s=e.options)?void 0:s.captchaToken);let{data:a,error:o}=await (0,n.vE)(this.fetch,"POST",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},e),{gotrue_meta_security:{captcha_token:i}}),redirectTo:r,xform:n.R_});if(o)throw o;if(!a)throw Error("An error occurred on token verification.");let l=a.session,u=a.user;return(null==l?void 0:l.access_token)&&(await this._saveSession(l),await this._notifyAllSubscribers("recovery"==e.type?"PASSWORD_RECOVERY":"SIGNED_IN",l)),this._returnResult({data:{user:u,session:l},error:null})}catch(e){if((0,a.HY)(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async signInWithSSO(e){var t,s,r,i,l;try{let a=null,u=null;"pkce"===this.flowType&&([a,u]=await (0,o.dS)(this.storage,this.storageKey));let h=await (0,n.vE)(this.fetch,"POST",`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},"providerId"in e?{provider_id:e.providerId}:null),"domain"in e?{domain:e.domain}:null),{redirect_to:null!=(s=null==(t=e.options)?void 0:t.redirectTo)?s:void 0}),(null==(r=null==e?void 0:e.options)?void 0:r.captchaToken)?{gotrue_meta_security:{captcha_token:e.options.captchaToken}}:null),{skip_http_redirect:!0,code_challenge:a,code_challenge_method:u}),headers:this.headers,xform:n.c2});return(null==(i=h.data)?void 0:i.url)&&(0,o.Bd)()&&!(null==(l=e.options)?void 0:l.skipBrowserRedirect)&&window.location.assign(h.data.url),this._returnResult(h)}catch(e){if(await (0,o.Gb)(this.storage,`${this.storageKey}-code-verifier`),(0,a.HY)(e))return this._returnResult({data:null,error:e});throw e}}async reauthenticate(){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._reauthenticate())}async _reauthenticate(){try{return await this._useSession(async e=>{let{data:{session:t},error:s}=e;if(s)throw s;if(!t)throw new a.jG;let{error:r}=await (0,n.vE)(this.fetch,"GET",`${this.url}/reauthenticate`,{headers:this.headers,jwt:t.access_token});return this._returnResult({data:{user:null,session:null},error:r})})}catch(e){if((0,a.HY)(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async resend(e){try{let t=`${this.url}/resend`;if("email"in e){let{email:s,type:r,options:i}=e,{error:a}=await (0,n.vE)(this.fetch,"POST",t,{headers:this.headers,body:{email:s,type:r,gotrue_meta_security:{captcha_token:null==i?void 0:i.captchaToken}},redirectTo:null==i?void 0:i.emailRedirectTo});return this._returnResult({data:{user:null,session:null},error:a})}if("phone"in e){let{phone:s,type:r,options:i}=e,{data:a,error:o}=await (0,n.vE)(this.fetch,"POST",t,{headers:this.headers,body:{phone:s,type:r,gotrue_meta_security:{captcha_token:null==i?void 0:i.captchaToken}}});return this._returnResult({data:{user:null,session:null,messageId:null==a?void 0:a.message_id},error:o})}throw new a.U_("You must provide either an email or phone number and a type")}catch(e){if((0,a.HY)(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async getSession(){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>this._useSession(async e=>e))}async _acquireLock(e,t){this._debug("#_acquireLock","begin",e);try{if(this.lockAcquired){let e=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve(),s=(async()=>(await e,await t()))();return this.pendingInLock.push((async()=>{try{await s}catch(e){}})()),s}return await this.lock(`lock:${this.storageKey}`,e,async()=>{this._debug("#_acquireLock","lock acquired for storage key",this.storageKey);try{this.lockAcquired=!0;let e=t();for(this.pendingInLock.push((async()=>{try{await e}catch(e){}})()),await e;this.pendingInLock.length;){let e=[...this.pendingInLock];await Promise.all(e),this.pendingInLock.splice(0,e.length)}return await e}finally{this._debug("#_acquireLock","lock released for storage key",this.storageKey),this.lockAcquired=!1}})}finally{this._debug("#_acquireLock","end")}}async _useSession(e){this._debug("#_useSession","begin");try{let t=await this.__loadSession();return await e(t)}finally{this._debug("#_useSession","end")}}async __loadSession(){this._debug("#__loadSession()","begin"),this.lockAcquired||this._debug("#__loadSession()","used outside of an acquired lock!",Error().stack);try{let e=null,t=await (0,o.U9)(this.storage,this.storageKey);if(this._debug("#getSession()","session from storage",t),null!==t&&(this._isValidSession(t)?e=t:(this._debug("#getSession()","session from storage is not valid"),await this._removeSession())),!e)return{data:{session:null},error:null};let s=!!e.expires_at&&1e3*e.expires_at-Date.now()<i.CT;if(this._debug("#__loadSession()",`session has${s?"":" not"} expired`,"expires_at",e.expires_at),!s){if(this.userStorage){let t=await (0,o.U9)(this.userStorage,this.storageKey+"-user");(null==t?void 0:t.user)?e.user=t.user:e.user=(0,o.QE)()}if(this.storage.isServer&&e.user&&!e.user.__isUserNotAvailableProxy){let t={value:this.suppressGetSessionWarning};e.user=(0,o.uO)(e.user,t),t.value&&(this.suppressGetSessionWarning=!0)}return{data:{session:e},error:null}}let{data:r,error:a}=await this._callRefreshToken(e.refresh_token);if(a)return this._returnResult({data:{session:null},error:a});return this._returnResult({data:{session:r},error:null})}finally{this._debug("#__loadSession()","end")}}async getUser(e){if(e)return await this._getUser(e);await this.initializePromise;let t=await this._acquireLock(this.lockAcquireTimeout,async()=>await this._getUser());return t.data.user&&(this.suppressGetSessionWarning=!0),t}async _getUser(e){try{if(e)return await (0,n.vE)(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:e,xform:n.Cl});return await this._useSession(async e=>{var t,s,r;let{data:i,error:o}=e;if(o)throw o;return(null==(t=i.session)?void 0:t.access_token)||this.hasCustomAuthorizationHeader?await (0,n.vE)(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:null!=(r=null==(s=i.session)?void 0:s.access_token)?r:void 0,xform:n.Cl}):{data:{user:null},error:new a.jG}})}catch(e){if((0,a.HY)(e))return(0,a.zq)(e)&&(await this._removeSession(),await (0,o.Gb)(this.storage,`${this.storageKey}-code-verifier`)),this._returnResult({data:{user:null},error:e});throw e}}async updateUser(e,t={}){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._updateUser(e,t))}async _updateUser(e,t={}){try{return await this._useSession(async s=>{let{data:r,error:i}=s;if(i)throw i;if(!r.session)throw new a.jG;let l=r.session,u=null,h=null;"pkce"===this.flowType&&null!=e.email&&([u,h]=await (0,o.dS)(this.storage,this.storageKey));let{data:c,error:d}=await (0,n.vE)(this.fetch,"PUT",`${this.url}/user`,{headers:this.headers,redirectTo:null==t?void 0:t.emailRedirectTo,body:Object.assign(Object.assign({},e),{code_challenge:u,code_challenge_method:h}),jwt:l.access_token,xform:n.Cl});if(d)throw d;return l.user=c.user,await this._saveSession(l),await this._notifyAllSubscribers("USER_UPDATED",l),this._returnResult({data:{user:l.user},error:null})})}catch(e){if(await (0,o.Gb)(this.storage,`${this.storageKey}-code-verifier`),(0,a.HY)(e))return this._returnResult({data:{user:null},error:e});throw e}}async setSession(e){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._setSession(e))}async _setSession(e){try{if(!e.access_token||!e.refresh_token)throw new a.jG;let t=Date.now()/1e3,s=t,r=!0,i=null,{payload:n}=(0,o.Cq)(e.access_token);if(n.exp&&(r=(s=n.exp)<=t),r){let{data:t,error:s}=await this._callRefreshToken(e.refresh_token);if(s)return this._returnResult({data:{user:null,session:null},error:s});if(!t)return{data:{user:null,session:null},error:null};i=t}else{let{data:r,error:a}=await this._getUser(e.access_token);if(a)return this._returnResult({data:{user:null,session:null},error:a});i={access_token:e.access_token,refresh_token:e.refresh_token,user:r.user,token_type:"bearer",expires_in:s-t,expires_at:s},await this._saveSession(i),await this._notifyAllSubscribers("SIGNED_IN",i)}return this._returnResult({data:{user:i.user,session:i},error:null})}catch(e){if((0,a.HY)(e))return this._returnResult({data:{session:null,user:null},error:e});throw e}}async refreshSession(e){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._refreshSession(e))}async _refreshSession(e){try{return await this._useSession(async t=>{var s;if(!e){let{data:r,error:i}=t;if(i)throw i;e=null!=(s=r.session)?s:void 0}if(!(null==e?void 0:e.refresh_token))throw new a.jG;let{data:r,error:i}=await this._callRefreshToken(e.refresh_token);return i?this._returnResult({data:{user:null,session:null},error:i}):r?this._returnResult({data:{user:r.user,session:r},error:null}):this._returnResult({data:{user:null,session:null},error:null})})}catch(e){if((0,a.HY)(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async _getSessionFromURL(e,t){try{if(!(0,o.Bd)())throw new a.MR("No browser detected.");if(e.error||e.error_description||e.error_code)throw new a.MR(e.error_description||"Error in URL with unspecified error_description",{error:e.error||"unspecified_error",code:e.error_code||"unspecified_code"});switch(t){case"implicit":if("pkce"===this.flowType)throw new a.Uw("Not a valid PKCE flow url.");break;case"pkce":if("implicit"===this.flowType)throw new a.MR("Not a valid implicit grant flow url.")}if("pkce"===t){if(this._debug("#_initialize()","begin","is PKCE flow",!0),!e.code)throw new a.Uw("No code detected.");let{data:t,error:s}=await this._exchangeCodeForSession(e.code);if(s)throw s;let r=new URL(window.location.href);return r.searchParams.delete("code"),window.history.replaceState(window.history.state,"",r.toString()),{data:{session:t.session,redirectType:null},error:null}}let{provider_token:s,provider_refresh_token:r,access_token:n,refresh_token:l,expires_in:u,expires_at:h,token_type:c}=e;if(!n||!u||!l||!c)throw new a.MR("No session defined in URL");let d=Math.round(Date.now()/1e3),_=parseInt(u),w=d+_;h&&(w=parseInt(h));let g=w-d;1e3*g<=i.a4&&console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${g}s, should have been closer to ${_}s`);let f=w-_;d-f>=120?console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale",f,w,d):d-f<0&&console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew",f,w,d);let{data:y,error:b}=await this._getUser(n);if(b)throw b;let p={provider_token:s,provider_refresh_token:r,access_token:n,expires_in:_,expires_at:w,refresh_token:l,token_type:c,user:y.user};return window.location.hash="",this._debug("#_getSessionFromURL()","clearing window.location.hash"),this._returnResult({data:{session:p,redirectType:e.type},error:null})}catch(e){if((0,a.HY)(e))return this._returnResult({data:{session:null,redirectType:null},error:e});throw e}}_isImplicitGrantCallback(e){return"function"==typeof this.detectSessionInUrl?this.detectSessionInUrl(new URL(window.location.href),e):!!(e.access_token||e.error_description)}async _isPKCECallback(e){let t=await (0,o.U9)(this.storage,`${this.storageKey}-code-verifier`);return!!(e.code&&t)}async signOut(e={scope:"global"}){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._signOut(e))}async _signOut({scope:e}={scope:"global"}){return await this._useSession(async t=>{var s;let{data:r,error:i}=t;if(i&&!(0,a.zq)(i))return this._returnResult({error:i});let n=null==(s=r.session)?void 0:s.access_token;if(n){let{error:t}=await this.admin.signOut(n,e);if(t&&!((0,a.NA)(t)&&(404===t.status||401===t.status||403===t.status)||(0,a.zq)(t)))return this._returnResult({error:t})}return"others"!==e&&(await this._removeSession(),await (0,o.Gb)(this.storage,`${this.storageKey}-code-verifier`)),this._returnResult({error:null})})}onAuthStateChange(e){let t=(0,o.KY)(),s={id:t,callback:e,unsubscribe:()=>{this._debug("#unsubscribe()","state change callback with id removed",t),this.stateChangeEmitters.delete(t)}};return this._debug("#onAuthStateChange()","registered callback with id",t),this.stateChangeEmitters.set(t,s),(async()=>{await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>{this._emitInitialSession(t)})})(),{data:{subscription:s}}}async _emitInitialSession(e){return await this._useSession(async t=>{var s,r;try{let{data:{session:r},error:i}=t;if(i)throw i;await (null==(s=this.stateChangeEmitters.get(e))?void 0:s.callback("INITIAL_SESSION",r)),this._debug("INITIAL_SESSION","callback id",e,"session",r)}catch(t){await (null==(r=this.stateChangeEmitters.get(e))?void 0:r.callback("INITIAL_SESSION",null)),this._debug("INITIAL_SESSION","callback id",e,"error",t),(0,a.zq)(t)?console.warn(t):console.error(t)}})}async resetPasswordForEmail(e,t={}){let s=null,r=null;"pkce"===this.flowType&&([s,r]=await (0,o.dS)(this.storage,this.storageKey,!0));try{return await (0,n.vE)(this.fetch,"POST",`${this.url}/recover`,{body:{email:e,code_challenge:s,code_challenge_method:r,gotrue_meta_security:{captcha_token:t.captchaToken}},headers:this.headers,redirectTo:t.redirectTo})}catch(e){if(await (0,o.Gb)(this.storage,`${this.storageKey}-code-verifier`),(0,a.HY)(e))return this._returnResult({data:null,error:e});throw e}}async getUserIdentities(){var e;try{let{data:t,error:s}=await this.getUser();if(s)throw s;return this._returnResult({data:{identities:null!=(e=t.user.identities)?e:[]},error:null})}catch(e){if((0,a.HY)(e))return this._returnResult({data:null,error:e});throw e}}async linkIdentity(e){return"token"in e?this.linkIdentityIdToken(e):this.linkIdentityOAuth(e)}async linkIdentityOAuth(e){var t;try{let{data:s,error:r}=await this._useSession(async t=>{var s,r,i,a,o;let{data:l,error:u}=t;if(u)throw u;let h=await this._getUrlForProvider(`${this.url}/user/identities/authorize`,e.provider,{redirectTo:null==(s=e.options)?void 0:s.redirectTo,scopes:null==(r=e.options)?void 0:r.scopes,queryParams:null==(i=e.options)?void 0:i.queryParams,skipBrowserRedirect:!0});return await (0,n.vE)(this.fetch,"GET",h,{headers:this.headers,jwt:null!=(o=null==(a=l.session)?void 0:a.access_token)?o:void 0})});if(r)throw r;return!(0,o.Bd)()||(null==(t=e.options)?void 0:t.skipBrowserRedirect)||window.location.assign(null==s?void 0:s.url),this._returnResult({data:{provider:e.provider,url:null==s?void 0:s.url},error:null})}catch(t){if((0,a.HY)(t))return this._returnResult({data:{provider:e.provider,url:null},error:t});throw t}}async linkIdentityIdToken(e){return await this._useSession(async t=>{var s;try{let{error:r,data:{session:i}}=t;if(r)throw r;let{options:o,provider:l,token:u,access_token:h,nonce:c}=e,{data:d,error:_}=await (0,n.vE)(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,jwt:null!=(s=null==i?void 0:i.access_token)?s:void 0,body:{provider:l,id_token:u,access_token:h,nonce:c,link_identity:!0,gotrue_meta_security:{captcha_token:null==o?void 0:o.captchaToken}},xform:n.R_});if(_)return this._returnResult({data:{user:null,session:null},error:_});if(!d||!d.session||!d.user)return this._returnResult({data:{user:null,session:null},error:new a.Ox});return d.session&&(await this._saveSession(d.session),await this._notifyAllSubscribers("USER_UPDATED",d.session)),this._returnResult({data:d,error:_})}catch(e){if(await (0,o.Gb)(this.storage,`${this.storageKey}-code-verifier`),(0,a.HY)(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}})}async unlinkIdentity(e){try{return await this._useSession(async t=>{var s,r;let{data:i,error:a}=t;if(a)throw a;return await (0,n.vE)(this.fetch,"DELETE",`${this.url}/user/identities/${e.identity_id}`,{headers:this.headers,jwt:null!=(r=null==(s=i.session)?void 0:s.access_token)?r:void 0})})}catch(e){if((0,a.HY)(e))return this._returnResult({data:null,error:e});throw e}}async _refreshAccessToken(e){let t=`#_refreshAccessToken(${e.substring(0,5)}...)`;this._debug(t,"begin");try{let s=Date.now();return await (0,o.PB)(async s=>(s>0&&await (0,o.yy)(200*Math.pow(2,s-1)),this._debug(t,"refreshing attempt",s),await (0,n.vE)(this.fetch,"POST",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:e},headers:this.headers,xform:n.R_})),(e,t)=>{let r=200*Math.pow(2,e);return t&&(0,a.Fw)(t)&&Date.now()+r-s<i.a4})}catch(e){if(this._debug(t,"error",e),(0,a.HY)(e))return this._returnResult({data:{session:null,user:null},error:e});throw e}finally{this._debug(t,"end")}}_isValidSession(e){return"object"==typeof e&&null!==e&&"access_token"in e&&"refresh_token"in e&&"expires_at"in e}async _handleProviderSignIn(e,t){let s=await this._getUrlForProvider(`${this.url}/authorize`,e,{redirectTo:t.redirectTo,scopes:t.scopes,queryParams:t.queryParams});return this._debug("#_handleProviderSignIn()","provider",e,"options",t,"url",s),(0,o.Bd)()&&!t.skipBrowserRedirect&&window.location.assign(s),{data:{provider:e,url:s},error:null}}async _recoverAndRefresh(){var e,t;let s="#_recoverAndRefresh()";this._debug(s,"begin");try{let r=await (0,o.U9)(this.storage,this.storageKey);if(r&&this.userStorage){let t=await (0,o.U9)(this.userStorage,this.storageKey+"-user");!this.storage.isServer&&Object.is(this.storage,this.userStorage)&&!t&&(t={user:r.user},await (0,o.Oi)(this.userStorage,this.storageKey+"-user",t)),r.user=null!=(e=null==t?void 0:t.user)?e:(0,o.QE)()}else if(r&&!r.user&&!r.user){let e=await (0,o.U9)(this.storage,this.storageKey+"-user");e&&(null==e?void 0:e.user)?(r.user=e.user,await (0,o.Gb)(this.storage,this.storageKey+"-user"),await (0,o.Oi)(this.storage,this.storageKey,r)):r.user=(0,o.QE)()}if(this._debug(s,"session from storage",r),!this._isValidSession(r)){this._debug(s,"session is not valid"),null!==r&&await this._removeSession();return}let n=(null!=(t=r.expires_at)?t:1/0)*1e3-Date.now()<i.CT;if(this._debug(s,`session has${n?"":" not"} expired with margin of ${i.CT}s`),n){if(this.autoRefreshToken&&r.refresh_token){let{error:e}=await this._callRefreshToken(r.refresh_token);e&&(console.error(e),(0,a.Fw)(e)||(this._debug(s,"refresh failed with a non-retryable error, removing the session",e),await this._removeSession()))}}else if(r.user&&!0===r.user.__isUserNotAvailableProxy)try{let{data:e,error:t}=await this._getUser(r.access_token);!t&&(null==e?void 0:e.user)?(r.user=e.user,await this._saveSession(r),await this._notifyAllSubscribers("SIGNED_IN",r)):this._debug(s,"could not get user data, skipping SIGNED_IN notification")}catch(e){console.error("Error getting user data:",e),this._debug(s,"error getting user data, skipping SIGNED_IN notification",e)}else await this._notifyAllSubscribers("SIGNED_IN",r)}catch(e){this._debug(s,"error",e),console.error(e);return}finally{this._debug(s,"end")}}async _callRefreshToken(e){var t,s;if(!e)throw new a.jG;if(this.refreshingDeferred)return this.refreshingDeferred.promise;let r=`#_callRefreshToken(${e.substring(0,5)}...)`;this._debug(r,"begin");try{this.refreshingDeferred=new o.cY;let{data:t,error:s}=await this._refreshAccessToken(e);if(s)throw s;if(!t.session)throw new a.jG;await this._saveSession(t.session),await this._notifyAllSubscribers("TOKEN_REFRESHED",t.session);let r={data:t.session,error:null};return this.refreshingDeferred.resolve(r),r}catch(e){if(this._debug(r,"error",e),(0,a.HY)(e)){let s={data:null,error:e};return(0,a.Fw)(e)||await this._removeSession(),null==(t=this.refreshingDeferred)||t.resolve(s),s}throw null==(s=this.refreshingDeferred)||s.reject(e),e}finally{this.refreshingDeferred=null,this._debug(r,"end")}}async _notifyAllSubscribers(e,t,s=!0){let r=`#_notifyAllSubscribers(${e})`;this._debug(r,"begin",t,`broadcast = ${s}`);try{this.broadcastChannel&&s&&this.broadcastChannel.postMessage({event:e,session:t});let r=[],i=Array.from(this.stateChangeEmitters.values()).map(async s=>{try{await s.callback(e,t)}catch(e){r.push(e)}});if(await Promise.all(i),r.length>0){for(let e=0;e<r.length;e+=1)console.error(r[e]);throw r[0]}}finally{this._debug(r,"end")}}async _saveSession(e){this._debug("#_saveSession()",e),this.suppressGetSessionWarning=!0,await (0,o.Gb)(this.storage,`${this.storageKey}-code-verifier`);let t=Object.assign({},e),s=t.user&&!0===t.user.__isUserNotAvailableProxy;if(this.userStorage){!s&&t.user&&await (0,o.Oi)(this.userStorage,this.storageKey+"-user",{user:t.user});let e=Object.assign({},t);delete e.user;let r=(0,o.Go)(e);await (0,o.Oi)(this.storage,this.storageKey,r)}else{let e=(0,o.Go)(t);await (0,o.Oi)(this.storage,this.storageKey,e)}}async _removeSession(){this._debug("#_removeSession()"),this.suppressGetSessionWarning=!1,await (0,o.Gb)(this.storage,this.storageKey),await (0,o.Gb)(this.storage,this.storageKey+"-code-verifier"),await (0,o.Gb)(this.storage,this.storageKey+"-user"),this.userStorage&&await (0,o.Gb)(this.userStorage,this.storageKey+"-user"),await this._notifyAllSubscribers("SIGNED_OUT",null)}_removeVisibilityChangedCallback(){this._debug("#_removeVisibilityChangedCallback()");let e=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{e&&(0,o.Bd)()&&(null==window?void 0:window.removeEventListener)&&window.removeEventListener("visibilitychange",e)}catch(e){console.error("removing visibilitychange callback failed",e)}}async _startAutoRefresh(){await this._stopAutoRefresh(),this._debug("#_startAutoRefresh()");let e=setInterval(()=>this._autoRefreshTokenTick(),i.a4);this.autoRefreshTicker=e,e&&"object"==typeof e&&"function"==typeof e.unref?e.unref():"undefined"!=typeof Deno&&"function"==typeof Deno.unrefTimer&&Deno.unrefTimer(e);let t=setTimeout(async()=>{await this.initializePromise,await this._autoRefreshTokenTick()},0);this.autoRefreshTickTimeout=t,t&&"object"==typeof t&&"function"==typeof t.unref?t.unref():"undefined"!=typeof Deno&&"function"==typeof Deno.unrefTimer&&Deno.unrefTimer(t)}async _stopAutoRefresh(){this._debug("#_stopAutoRefresh()");let e=this.autoRefreshTicker;this.autoRefreshTicker=null,e&&clearInterval(e);let t=this.autoRefreshTickTimeout;this.autoRefreshTickTimeout=null,t&&clearTimeout(t)}async startAutoRefresh(){this._removeVisibilityChangedCallback(),await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback(),await this._stopAutoRefresh()}async _autoRefreshTokenTick(){this._debug("#_autoRefreshTokenTick()","begin");try{await this._acquireLock(0,async()=>{try{let e=Date.now();try{return await this._useSession(async t=>{let{data:{session:s}}=t;if(!s||!s.refresh_token||!s.expires_at)return void this._debug("#_autoRefreshTokenTick()","no session");let r=Math.floor((1e3*s.expires_at-e)/i.a4);this._debug("#_autoRefreshTokenTick()",`access token expires in ${r} ticks, a tick lasts ${i.a4}ms, refresh threshold is ${i.YI} ticks`),r<=i.YI&&await this._callRefreshToken(s.refresh_token)})}catch(e){console.error("Auto refresh tick failed with error. This is likely a transient error.",e)}}finally{this._debug("#_autoRefreshTokenTick()","end")}})}catch(e){if(e.isAcquireTimeout||e instanceof u.nb)this._debug("auto refresh token tick lock not available");else throw e}}async _handleVisibilityChange(){if(this._debug("#_handleVisibilityChange()"),!(0,o.Bd)()||!(null==window?void 0:window.addEventListener))return this.autoRefreshToken&&this.startAutoRefresh(),!1;try{this.visibilityChangedCallback=async()=>{try{await this._onVisibilityChanged(!1)}catch(e){this._debug("#visibilityChangedCallback","error",e)}},null==window||window.addEventListener("visibilitychange",this.visibilityChangedCallback),await this._onVisibilityChanged(!0)}catch(e){console.error("_handleVisibilityChange",e)}}async _onVisibilityChanged(e){let t=`#_onVisibilityChanged(${e})`;this._debug(t,"visibilityState",document.visibilityState),"visible"===document.visibilityState?(this.autoRefreshToken&&this._startAutoRefresh(),e||(await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>{if("visible"!==document.visibilityState)return void this._debug(t,"acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting");await this._recoverAndRefresh()}))):"hidden"===document.visibilityState&&this.autoRefreshToken&&this._stopAutoRefresh()}async _getUrlForProvider(e,t,s){let r=[`provider=${encodeURIComponent(t)}`];if((null==s?void 0:s.redirectTo)&&r.push(`redirect_to=${encodeURIComponent(s.redirectTo)}`),(null==s?void 0:s.scopes)&&r.push(`scopes=${encodeURIComponent(s.scopes)}`),"pkce"===this.flowType){let[e,t]=await (0,o.dS)(this.storage,this.storageKey),s=new URLSearchParams({code_challenge:`${encodeURIComponent(e)}`,code_challenge_method:`${encodeURIComponent(t)}`});r.push(s.toString())}if(null==s?void 0:s.queryParams){let e=new URLSearchParams(s.queryParams);r.push(e.toString())}return(null==s?void 0:s.skipBrowserRedirect)&&r.push(`skip_http_redirect=${s.skipBrowserRedirect}`),`${e}?${r.join("&")}`}async _unenroll(e){try{return await this._useSession(async t=>{var s;let{data:r,error:i}=t;return i?this._returnResult({data:null,error:i}):await (0,n.vE)(this.fetch,"DELETE",`${this.url}/factors/${e.factorId}`,{headers:this.headers,jwt:null==(s=null==r?void 0:r.session)?void 0:s.access_token})})}catch(e){if((0,a.HY)(e))return this._returnResult({data:null,error:e});throw e}}async _enroll(e){try{return await this._useSession(async t=>{var s,r;let{data:i,error:a}=t;if(a)return this._returnResult({data:null,error:a});let o=Object.assign({friendly_name:e.friendlyName,factor_type:e.factorType},"phone"===e.factorType?{phone:e.phone}:"totp"===e.factorType?{issuer:e.issuer}:{}),{data:l,error:u}=await (0,n.vE)(this.fetch,"POST",`${this.url}/factors`,{body:o,headers:this.headers,jwt:null==(s=null==i?void 0:i.session)?void 0:s.access_token});return u?this._returnResult({data:null,error:u}):("totp"===e.factorType&&"totp"===l.type&&(null==(r=null==l?void 0:l.totp)?void 0:r.qr_code)&&(l.totp.qr_code=`data:image/svg+xml;utf-8,${l.totp.qr_code}`),this._returnResult({data:l,error:null}))})}catch(e){if((0,a.HY)(e))return this._returnResult({data:null,error:e});throw e}}async _verify(e){return this._acquireLock(this.lockAcquireTimeout,async()=>{try{return await this._useSession(async t=>{var s;let{data:r,error:i}=t;if(i)return this._returnResult({data:null,error:i});let a=Object.assign({challenge_id:e.challengeId},"webauthn"in e?{webauthn:Object.assign(Object.assign({},e.webauthn),{credential_response:"create"===e.webauthn.type?(0,w.sy)(e.webauthn.credential_response):(0,w.CP)(e.webauthn.credential_response)})}:{code:e.code}),{data:o,error:l}=await (0,n.vE)(this.fetch,"POST",`${this.url}/factors/${e.factorId}/verify`,{body:a,headers:this.headers,jwt:null==(s=null==r?void 0:r.session)?void 0:s.access_token});return l?this._returnResult({data:null,error:l}):(await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+o.expires_in},o)),await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",o),this._returnResult({data:o,error:l}))})}catch(e){if((0,a.HY)(e))return this._returnResult({data:null,error:e});throw e}})}async _challenge(e){return this._acquireLock(this.lockAcquireTimeout,async()=>{try{return await this._useSession(async t=>{var s;let{data:r,error:i}=t;if(i)return this._returnResult({data:null,error:i});let a=await (0,n.vE)(this.fetch,"POST",`${this.url}/factors/${e.factorId}/challenge`,{body:e,headers:this.headers,jwt:null==(s=null==r?void 0:r.session)?void 0:s.access_token});if(a.error)return a;let{data:o}=a;if("webauthn"!==o.type)return{data:o,error:null};switch(o.webauthn.type){case"create":return{data:Object.assign(Object.assign({},o),{webauthn:Object.assign(Object.assign({},o.webauthn),{credential_options:Object.assign(Object.assign({},o.webauthn.credential_options),{publicKey:(0,w.sC)(o.webauthn.credential_options.publicKey)})})}),error:null};case"request":return{data:Object.assign(Object.assign({},o),{webauthn:Object.assign(Object.assign({},o.webauthn),{credential_options:Object.assign(Object.assign({},o.webauthn.credential_options),{publicKey:(0,w.KE)(o.webauthn.credential_options.publicKey)})})}),error:null}}})}catch(e){if((0,a.HY)(e))return this._returnResult({data:null,error:e});throw e}})}async _challengeAndVerify(e){let{data:t,error:s}=await this._challenge({factorId:e.factorId});return s?this._returnResult({data:null,error:s}):await this._verify({factorId:e.factorId,challengeId:t.id,code:e.code})}async _listFactors(){var e;let{data:{user:t},error:s}=await this.getUser();if(s)return{data:null,error:s};let r={all:[],phone:[],totp:[],webauthn:[]};for(let s of null!=(e=null==t?void 0:t.factors)?e:[])r.all.push(s),"verified"===s.status&&r[s.factor_type].push(s);return{data:r,error:null}}async _getAuthenticatorAssuranceLevel(e){var t,s,r,i;if(e)try{let{payload:r}=(0,o.Cq)(e),i=null;r.aal&&(i=r.aal);let a=i,{data:{user:n},error:l}=await this.getUser(e);if(l)return this._returnResult({data:null,error:l});(null!=(s=null==(t=null==n?void 0:n.factors)?void 0:t.filter(e=>"verified"===e.status))?s:[]).length>0&&(a="aal2");let u=r.amr||[];return{data:{currentLevel:i,nextLevel:a,currentAuthenticationMethods:u},error:null}}catch(e){if((0,a.HY)(e))return this._returnResult({data:null,error:e});throw e}let{data:{session:n},error:l}=await this.getSession();if(l)return this._returnResult({data:null,error:l});if(!n)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};let{payload:u}=(0,o.Cq)(n.access_token),h=null;u.aal&&(h=u.aal);let c=h;return(null!=(i=null==(r=n.user.factors)?void 0:r.filter(e=>"verified"===e.status))?i:[]).length>0&&(c="aal2"),{data:{currentLevel:h,nextLevel:c,currentAuthenticationMethods:u.amr||[]},error:null}}async _getAuthorizationDetails(e){try{return await this._useSession(async t=>{let{data:{session:s},error:r}=t;return r?this._returnResult({data:null,error:r}):s?await (0,n.vE)(this.fetch,"GET",`${this.url}/oauth/authorizations/${e}`,{headers:this.headers,jwt:s.access_token,xform:e=>({data:e,error:null})}):this._returnResult({data:null,error:new a.jG})})}catch(e){if((0,a.HY)(e))return this._returnResult({data:null,error:e});throw e}}async _approveAuthorization(e,t){try{return await this._useSession(async s=>{let{data:{session:r},error:i}=s;if(i)return this._returnResult({data:null,error:i});if(!r)return this._returnResult({data:null,error:new a.jG});let l=await (0,n.vE)(this.fetch,"POST",`${this.url}/oauth/authorizations/${e}/consent`,{headers:this.headers,jwt:r.access_token,body:{action:"approve"},xform:e=>({data:e,error:null})});return l.data&&l.data.redirect_url&&(0,o.Bd)()&&!(null==t?void 0:t.skipBrowserRedirect)&&window.location.assign(l.data.redirect_url),l})}catch(e){if((0,a.HY)(e))return this._returnResult({data:null,error:e});throw e}}async _denyAuthorization(e,t){try{return await this._useSession(async s=>{let{data:{session:r},error:i}=s;if(i)return this._returnResult({data:null,error:i});if(!r)return this._returnResult({data:null,error:new a.jG});let l=await (0,n.vE)(this.fetch,"POST",`${this.url}/oauth/authorizations/${e}/consent`,{headers:this.headers,jwt:r.access_token,body:{action:"deny"},xform:e=>({data:e,error:null})});return l.data&&l.data.redirect_url&&(0,o.Bd)()&&!(null==t?void 0:t.skipBrowserRedirect)&&window.location.assign(l.data.redirect_url),l})}catch(e){if((0,a.HY)(e))return this._returnResult({data:null,error:e});throw e}}async _listOAuthGrants(){try{return await this._useSession(async e=>{let{data:{session:t},error:s}=e;return s?this._returnResult({data:null,error:s}):t?await (0,n.vE)(this.fetch,"GET",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:t.access_token,xform:e=>({data:e,error:null})}):this._returnResult({data:null,error:new a.jG})})}catch(e){if((0,a.HY)(e))return this._returnResult({data:null,error:e});throw e}}async _revokeOAuthGrant(e){try{return await this._useSession(async t=>{let{data:{session:s},error:r}=t;return r?this._returnResult({data:null,error:r}):s?(await (0,n.vE)(this.fetch,"DELETE",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:s.access_token,query:{client_id:e.clientId},noResolveJson:!0}),{data:{},error:null}):this._returnResult({data:null,error:new a.jG})})}catch(e){if((0,a.HY)(e))return this._returnResult({data:null,error:e});throw e}}async fetchJwk(e,t={keys:[]}){let s=t.keys.find(t=>t.kid===e);if(s)return s;let r=Date.now();if((s=this.jwks.keys.find(t=>t.kid===e))&&this.jwks_cached_at+i.$W>r)return s;let{data:a,error:o}=await (0,n.vE)(this.fetch,"GET",`${this.url}/.well-known/jwks.json`,{headers:this.headers});if(o)throw o;return a.keys&&0!==a.keys.length&&(this.jwks=a,this.jwks_cached_at=r,s=a.keys.find(t=>t.kid===e))?s:null}async getClaims(e,t={}){try{let s=e;if(!s){let{data:e,error:t}=await this.getSession();if(t||!e.session)return this._returnResult({data:null,error:t});s=e.session.access_token}let{header:r,payload:i,signature:n,raw:{header:l,payload:u}}=(0,o.Cq)(s);(null==t?void 0:t.allowExpired)||(0,o.c2)(i.exp);let h=!r.alg||r.alg.startsWith("HS")||!r.kid||!("crypto"in globalThis&&"subtle"in globalThis.crypto)?null:await this.fetchJwk(r.kid,(null==t?void 0:t.keys)?{keys:t.keys}:null==t?void 0:t.jwks);if(!h){let{error:e}=await this.getUser(s);if(e)throw e;return{data:{claims:i,header:r,signature:n},error:null}}let c=(0,o.K8)(r.alg),_=await crypto.subtle.importKey("jwk",h,c,!0,["verify"]);if(!await crypto.subtle.verify(c,_,n,(0,d.Al)(`${l}.${u}`)))throw new a.xL("Invalid JWT signature");return{data:{claims:i,header:r,signature:n},error:null}}catch(e){if((0,a.HY)(e))return this._returnResult({data:null,error:e});throw e}}}b.nextInstanceID={};let p=b}}]);