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.
- package/README.md +33 -25
- package/dist/bin.js +886 -4
- package/dist/share-direct.js +360 -0
- package/dist/web/.next/BUILD_ID +1 -1
- package/dist/web/.next/app-build-manifest.json +318 -226
- package/dist/web/.next/app-path-routes-manifest.json +24 -13
- package/dist/web/.next/build-manifest.json +14 -14
- package/dist/web/.next/prerender-manifest.json +89 -1
- package/dist/web/.next/routes-manifest.json +36 -0
- package/dist/web/.next/server/app/_not-found/page.js +1 -1
- package/dist/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/api/admin/backfill-ai/route.js +8 -0
- package/dist/web/.next/server/app/api/admin/backfill-ai/route.js.nft.json +1 -0
- package/dist/web/.next/server/app/api/admin/backfill-ai/route_client-reference-manifest.js +1 -0
- package/dist/web/.next/server/app/api/admin/backfill-search/route.js +1 -1
- package/dist/web/.next/server/app/api/admin/backfill-search/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/admin/backfill-search/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/api/ai/context/route.js +31 -0
- package/dist/web/.next/server/app/api/ai/context/route.js.nft.json +1 -0
- package/dist/web/.next/server/app/api/ai/context/route_client-reference-manifest.js +1 -0
- package/dist/web/.next/server/app/api/ai/pr-summary/route.js +28 -0
- package/dist/web/.next/server/app/api/ai/pr-summary/route.js.nft.json +1 -0
- package/dist/web/.next/server/app/api/ai/pr-summary/route_client-reference-manifest.js +1 -0
- package/dist/web/.next/server/app/api/ai/pr-summary-local/route.js +28 -0
- package/dist/web/.next/server/app/api/ai/pr-summary-local/route.js.nft.json +1 -0
- package/dist/web/.next/server/app/api/ai/pr-summary-local/route_client-reference-manifest.js +1 -0
- package/dist/web/.next/server/app/api/ai/process/route.js +8 -0
- package/dist/web/.next/server/app/api/ai/process/route.js.nft.json +1 -0
- package/dist/web/.next/server/app/api/ai/process/route_client-reference-manifest.js +1 -0
- package/dist/web/.next/server/app/api/cli/download/route.js +1 -1
- package/dist/web/.next/server/app/api/cli/download/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/cli/download/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/api/cli/feedback/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/api/cli/init/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/api/cli/my-shares/route.js +1 -1
- package/dist/web/.next/server/app/api/cli/my-shares/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/api/cli/poll/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/api/cli/project-settings/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/api/cli/share-mutate/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/api/cli/sync-list/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/api/local/project-sessions/route.js +1 -1
- package/dist/web/.next/server/app/api/local/project-sessions/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/local/project-sessions/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/api/local/watch/route.js +2 -2
- package/dist/web/.next/server/app/api/local/watch/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/local/watch/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/api/search/route.js +1 -1
- package/dist/web/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/api/search-index/route.js +1 -1
- package/dist/web/.next/server/app/api/search-index/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/search-index/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/api/share/download/[slug]/route.js +1 -1
- package/dist/web/.next/server/app/api/share/download/[slug]/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/share/download/[slug]/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/api/share/route.js +1 -1
- package/dist/web/.next/server/app/api/share/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/share/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/api/upload/route.js +2 -2
- package/dist/web/.next/server/app/api/upload/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/upload/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/auth/callback/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/auth/signout/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/blog/ai-coding-agents-2026/page.js +2 -0
- package/dist/web/.next/server/app/blog/ai-coding-agents-2026/page.js.nft.json +1 -0
- package/dist/web/.next/server/app/blog/ai-coding-agents-2026/page_client-reference-manifest.js +1 -0
- package/dist/web/.next/server/app/blog/page.js +2 -0
- package/dist/web/.next/server/app/blog/page.js.nft.json +1 -0
- package/dist/web/.next/server/app/blog/page_client-reference-manifest.js +1 -0
- package/dist/web/.next/server/app/cli/login/page.js +1 -1
- package/dist/web/.next/server/app/cli/login/page_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/digest/page_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/feedback/page_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/my-projects/[projectKey]/page_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/my-projects/page_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/my-shares/page.js +1 -1
- package/dist/web/.next/server/app/my-shares/page_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/opengraph-image/route.js +1 -71
- package/dist/web/.next/server/app/opengraph-image/route.js.nft.json +1 -0
- package/dist/web/.next/server/app/opengraph-image/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/opengraph-image.body +0 -0
- package/dist/web/.next/server/app/opengraph-image.meta +1 -0
- package/dist/web/.next/server/app/page.js +2 -2
- package/dist/web/.next/server/app/page.js.nft.json +1 -1
- package/dist/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/privacy/page.js +2 -0
- package/dist/web/.next/server/app/privacy/page.js.nft.json +1 -0
- package/dist/web/.next/server/app/privacy/page_client-reference-manifest.js +1 -0
- package/dist/web/.next/server/app/projects/[id]/page.js +1 -1
- package/dist/web/.next/server/app/projects/[id]/page.js.nft.json +1 -1
- package/dist/web/.next/server/app/projects/[id]/page_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/r/[slug]/opengraph-image/route.js +1 -1
- package/dist/web/.next/server/app/r/[slug]/opengraph-image/route_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/r/[slug]/page.js +2 -2
- package/dist/web/.next/server/app/r/[slug]/page.js.nft.json +1 -1
- package/dist/web/.next/server/app/r/[slug]/page_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/robots.txt/route.js +16 -0
- package/dist/web/.next/server/app/robots.txt/route.js.nft.json +1 -0
- package/dist/web/.next/server/app/robots.txt/route_client-reference-manifest.js +1 -0
- package/dist/web/.next/server/app/robots.txt.body +9 -0
- package/dist/web/.next/server/app/robots.txt.meta +1 -0
- package/dist/web/.next/server/app/search/page_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/sessions/[projectId]/[sessionId]/page.js +1 -1
- package/dist/web/.next/server/app/sessions/[projectId]/[sessionId]/page.js.nft.json +1 -1
- package/dist/web/.next/server/app/sessions/[projectId]/[sessionId]/page_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/sign-in/page.js +1 -1
- package/dist/web/.next/server/app/sign-in/page_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/sitemap.xml/route.js +16 -0
- package/dist/web/.next/server/app/sitemap.xml/route.js.nft.json +1 -0
- package/dist/web/.next/server/app/sitemap.xml/route_client-reference-manifest.js +1 -0
- package/dist/web/.next/server/app/sitemap.xml.body +51 -0
- package/dist/web/.next/server/app/sitemap.xml.meta +1 -0
- package/dist/web/.next/server/app/terms/page.js +2 -0
- package/dist/web/.next/server/app/terms/page.js.nft.json +1 -0
- package/dist/web/.next/server/app/terms/page_client-reference-manifest.js +1 -0
- package/dist/web/.next/server/app-paths-manifest.json +24 -13
- package/dist/web/.next/server/chunks/1017.js +2 -0
- package/dist/web/.next/server/chunks/1134.js +8 -0
- package/dist/web/.next/server/chunks/1825.js +1 -1
- package/dist/web/.next/server/chunks/8334.js +1 -1
- package/dist/web/.next/server/functions-config-manifest.json +17 -2
- package/dist/web/.next/server/middleware-build-manifest.js +1 -1
- package/dist/web/.next/server/middleware-manifest.json +1 -43
- package/dist/web/.next/server/pages/500.html +1 -1
- package/dist/web/.next/server/server-reference-manifest.js +1 -1
- package/dist/web/.next/server/server-reference-manifest.json +1 -1
- package/dist/web/.next/static/LF69v3WA6LbEAkvRHNqfG/_buildManifest.js +1 -0
- package/dist/web/.next/static/chunks/1029-12dc6d00537d43fd.js +1 -0
- package/dist/web/.next/static/chunks/4695-b52fc3d81451c3c3.js +1 -0
- package/dist/web/.next/static/chunks/552926ff-c5d04ae0c2d9f826.js +1 -0
- package/dist/web/.next/static/chunks/7200-4560b15b9cad37b3.js +1 -0
- package/dist/web/.next/static/chunks/app/_not-found/page-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/admin/backfill-ai/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/admin/backfill-search/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/ai/context/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/ai/pr-summary/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/ai/pr-summary-local/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/ai/process/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/cli/download/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/cli/feedback/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/cli/init/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/cli/my-shares/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/cli/poll/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/cli/project-settings/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/cli/share-mutate/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/cli/sync-list/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/local/project-sessions/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/local/watch/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/search/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/search-index/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/share/download/[slug]/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/share/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/api/upload/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/auth/callback/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/auth/signout/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/blog/ai-coding-agents-2026/page-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/blog/layout-9b51270472318488.js +1 -0
- package/dist/web/.next/static/chunks/app/blog/page-8400ea4ac5a7eb44.js +1 -0
- package/dist/web/.next/static/chunks/app/cli/login/page-26287cfd64c0fb49.js +1 -0
- package/dist/web/.next/static/chunks/app/digest/page-8400ea4ac5a7eb44.js +1 -0
- package/dist/web/.next/static/chunks/app/feedback/page-55ef0005807f1cef.js +1 -0
- package/dist/web/.next/static/chunks/app/layout-aa56caf2bf5af86f.js +1 -0
- package/dist/web/.next/static/chunks/app/my-projects/[projectKey]/page-7c5f2badf689d2e8.js +1 -0
- package/dist/web/.next/static/chunks/app/my-projects/page-c0390151fd6332a0.js +1 -0
- package/dist/web/.next/static/chunks/app/my-shares/{page-697d61e07a7546b2.js → page-49c0112973401c14.js} +1 -1
- package/dist/web/.next/static/chunks/app/not-found-8400ea4ac5a7eb44.js +1 -0
- package/dist/web/.next/static/chunks/app/opengraph-image/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/page-95394e3c6370084f.js +1 -0
- package/dist/web/.next/static/chunks/app/privacy/page-9b51270472318488.js +1 -0
- package/dist/web/.next/static/chunks/app/projects/[id]/page-7dd46a825d03a7d9.js +1 -0
- package/dist/web/.next/static/chunks/app/r/[slug]/opengraph-image/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/r/[slug]/page-6a0983805e048ac3.js +1 -0
- package/dist/web/.next/static/chunks/app/robots.txt/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/search/page-c29f37dc2462b676.js +1 -0
- package/dist/web/.next/static/chunks/app/sessions/[projectId]/[sessionId]/page-87b4505dd32edb9d.js +1 -0
- package/dist/web/.next/static/chunks/app/sign-in/page-fea3971ff9237b72.js +1 -0
- package/dist/web/.next/static/chunks/app/sitemap.xml/route-0f1123e35eb8f046.js +1 -0
- package/dist/web/.next/static/chunks/app/terms/page-9b51270472318488.js +1 -0
- package/dist/web/.next/static/chunks/d99d8e6a-55da88efbe15e3e1.js +1 -0
- package/dist/web/.next/static/chunks/framework-c1efa271b5a96d9d.js +1 -0
- package/dist/web/.next/static/chunks/main-app-70de904c7caade50.js +1 -0
- package/dist/web/.next/static/chunks/main-d211cddc79aac1cb.js +1 -0
- package/dist/web/.next/static/chunks/pages/{_app-42b849402a54b9e6.js → _app-701b0752a0d4c3a9.js} +1 -1
- package/dist/web/.next/static/chunks/pages/_error-327385abc873a736.js +1 -0
- package/dist/web/.next/static/chunks/{webpack-3a8b65d12c8eb987.js → webpack-3a446128dfa39f85.js} +1 -1
- package/dist/web/.next/static/css/c76bb7513858c50c.css +3 -0
- package/dist/web/package.json +1 -0
- package/dist/web/public/apple-touch-icon.png +0 -0
- package/dist/web/public/favicon-16.png +0 -0
- package/dist/web/public/favicon-32.png +0 -0
- package/dist/web/public/icon-192.png +0 -0
- package/dist/web/public/icon-512.png +0 -0
- package/dist/web/public/logo.png +0 -0
- package/package.json +1 -1
- package/dist/web/.next/server/app/opengraph-image/route.js.map +0 -1
- package/dist/web/.next/server/chunks/6019.js +0 -2
- package/dist/web/.next/server/edge-chunks/asset_noto-sans-v27-latin-regular.5dda3fca77107598.ttf +0 -0
- package/dist/web/.next/server/edge-chunks/wasm_77d9faebf7af9e421806970ce10a58e9d83116d7.wasm +0 -0
- package/dist/web/.next/server/edge-chunks/wasm_ef4866ecae192fd87727067cf2c0c0cf9fb8b020.wasm +0 -0
- package/dist/web/.next/server/edge-runtime-webpack.js +0 -2
- package/dist/web/.next/server/interception-route-rewrite-manifest.js +0 -1
- package/dist/web/.next/static/ZxFskpyUoxefJOzSxSb6s/_buildManifest.js +0 -1
- package/dist/web/.next/static/chunks/200-619918ea0fdbd6ff.js +0 -1
- package/dist/web/.next/static/chunks/29-7904810aeffd75a0.js +0 -1
- package/dist/web/.next/static/chunks/552926ff-e8a371ec0133d0dc.js +0 -1
- package/dist/web/.next/static/chunks/695-00bca043953d4170.js +0 -1
- package/dist/web/.next/static/chunks/app/_not-found/page-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/api/admin/backfill-search/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/api/cli/download/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/api/cli/feedback/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/api/cli/init/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/api/cli/my-shares/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/api/cli/poll/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/api/cli/project-settings/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/api/cli/share-mutate/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/api/cli/sync-list/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/api/local/project-sessions/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/api/local/watch/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/api/search/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/api/search-index/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/api/share/download/[slug]/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/api/share/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/api/upload/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/auth/callback/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/auth/signout/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/cli/login/page-647fd605d0fe2472.js +0 -1
- package/dist/web/.next/static/chunks/app/digest/page-41ec674edc998616.js +0 -1
- package/dist/web/.next/static/chunks/app/feedback/page-60f4d489fd598c9c.js +0 -1
- package/dist/web/.next/static/chunks/app/layout-f5666b9135264807.js +0 -1
- package/dist/web/.next/static/chunks/app/my-projects/[projectKey]/page-3a816489e5e8534b.js +0 -1
- package/dist/web/.next/static/chunks/app/my-projects/page-c88eba56cb5d0b8d.js +0 -1
- package/dist/web/.next/static/chunks/app/not-found-41ec674edc998616.js +0 -1
- package/dist/web/.next/static/chunks/app/opengraph-image/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/page-e6e80157848514e3.js +0 -1
- package/dist/web/.next/static/chunks/app/projects/[id]/page-faec0dc5b09bd35f.js +0 -1
- package/dist/web/.next/static/chunks/app/r/[slug]/opengraph-image/route-bd7ebde8ab75cb95.js +0 -1
- package/dist/web/.next/static/chunks/app/r/[slug]/page-65707eb198f673a1.js +0 -1
- package/dist/web/.next/static/chunks/app/search/page-fc0b629efa815c64.js +0 -1
- package/dist/web/.next/static/chunks/app/sessions/[projectId]/[sessionId]/page-5e70eaa0a429d94a.js +0 -1
- package/dist/web/.next/static/chunks/app/sign-in/page-792d0d79889186cf.js +0 -1
- package/dist/web/.next/static/chunks/d99d8e6a-80443bd3c9d31f50.js +0 -1
- package/dist/web/.next/static/chunks/framework-39000e34f38d10f6.js +0 -1
- package/dist/web/.next/static/chunks/main-app-21e9441fa7ac15ef.js +0 -1
- package/dist/web/.next/static/chunks/main-f824d48fd7ff2e3b.js +0 -1
- package/dist/web/.next/static/chunks/pages/_error-412ff705bc5b0636.js +0 -1
- package/dist/web/.next/static/css/3c4744a7426424ee.css +0 -3
- /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}}}};
|
package/dist/web/.next/server/edge-chunks/asset_noto-sans-v27-latin-regular.5dda3fca77107598.ttf
DELETED
|
Binary file
|
package/dist/web/.next/server/edge-chunks/wasm_77d9faebf7af9e421806970ce10a58e9d83116d7.wasm
DELETED
|
Binary file
|
package/dist/web/.next/server/edge-chunks/wasm_ef4866ecae192fd87727067cf2c0c0cf9fb8b020.wasm
DELETED
|
Binary file
|
|
@@ -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}}]);
|