keyrouter 1.0.0 → 1.0.2
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 +25 -24
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +15 -15
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/prerender-manifest.json +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-injection/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.segments/!KGRhc2hib2FyZCk/dashboard/prompt-injection/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing/page.js +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +3 -3
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +15 -15
- package/app/.next-cli-build/server/chunks/1051.js +1 -1
- package/app/.next-cli-build/server/chunks/1350.js +1 -1
- package/app/.next-cli-build/server/chunks/2172.js +1 -1
- package/app/.next-cli-build/server/chunks/241.js +1 -1
- package/app/.next-cli-build/server/chunks/5299.js +9 -9
- package/app/.next-cli-build/server/chunks/5330.js +1 -1
- package/app/.next-cli-build/server/chunks/6457.js +2 -2
- package/app/.next-cli-build/server/chunks/6844.js +1 -1
- package/app/.next-cli-build/server/chunks/8128.js +1 -1
- package/app/.next-cli-build/server/chunks/8682.js +1 -1
- package/app/.next-cli-build/server/chunks/869.js +1 -1
- package/app/.next-cli-build/server/chunks/9100.js +1 -1
- package/app/.next-cli-build/server/chunks/915.js +1 -1
- package/app/.next-cli-build/server/chunks/9604.js +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js +2 -2
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/static/chunks/{5497-b15e05f4ba4dba78.js → 5497-54a2c3dfa292cd6f.js} +1 -1
- package/app/.next-cli-build/static/chunks/761-00700c1c25957243.js +132 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-7feaa4a67a8eb771.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-f01d3cbfee3be6ee.js → page-3529b621905c9456.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-c7eb81dfb0b4fd77.js +1 -0
- package/app/.next-cli-build/static/chunks/app/landing/page-38fc3c430a1a29dc.js +1 -0
- package/app/.next-cli-build/static/chunks/app/{layout-5422d1fa60776fe5.js → layout-47a7f93a93a7249c.js} +1 -1
- package/app/package.json +1 -1
- package/app/public/i18n/literals/fa.json +1 -1
- package/app/public/i18n/literals/id.json +1 -1
- package/app/public/i18n/literals/km.json +1 -1
- package/app/public/i18n/literals/pt-BR.json +1 -1
- package/app/public/i18n/literals/th.json +1 -1
- package/app/public/i18n/literals/zh-CN.json +1 -1
- package/app/public/icons/icon-192.svg +3 -1
- package/app/public/icons/icon-512.svg +3 -1
- package/app/src/lib/updater/updater.js +2 -2
- package/app/src/mitm/server.js +1 -1
- package/app/src/shared/utils/apiKey.js +1 -1
- package/cli.js +7 -7
- package/hooks/trayRuntime.js +1 -1
- package/package.json +1 -1
- package/src/cli/api/client.js +2 -2
- package/src/cli/commands/connect.js +4 -4
- package/src/cli/commands/xaiVideo.js +1 -1
- package/src/cli/menus/providers.js +1 -1
- package/src/cli/menus/settings.js +1 -1
- package/src/cli/tray/icon.ico +0 -0
- package/src/cli/tray/icon.png +0 -0
- package/src/cli/utils/input.js +18 -11
- package/app/.next-cli-build/static/chunks/761-3602d74d7fb3c4f7.js +0 -132
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-8e4de2642dc5b61a.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-879d27966cca2817.js +0 -1
- package/app/.next-cli-build/static/chunks/app/landing/page-a571fd8ce400407b.js +0 -1
- /package/app/.next-cli-build/static/{Ubl3m4xjT44gfS_ASKhN2 → OQlH5Y4fdrzSgUpl8Gw_9}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{Ubl3m4xjT44gfS_ASKhN2 → OQlH5Y4fdrzSgUpl8Gw_9}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";(()=>{var a={};a.id=7758,a.ids=[7758],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1932:a=>{a.exports=require("url")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},7985:(a,b,c)=>{c.d(b,{Jm:()=>e,N:()=>k,eI:()=>f,eW:()=>h,mH:()=>j,uZ:()=>n,wu:()=>l,x7:()=>m});var d=c(15081);function e(a){if(!a||"string"!=typeof a)return"";let b=a.replace(/-----BEGIN CERTIFICATE-----/gi,"").replace(/-----END CERTIFICATE-----/gi,"").replace(/[^A-Za-z0-9+/=]/g,"");if(!b)return"";let c=b.match(/.{1,64}/g)||[];return`-----BEGIN CERTIFICATE-----
|
|
2
2
|
${c.join("\n")}
|
|
3
|
-
-----END CERTIFICATE-----`}function f(a){return!!(a?.samlEntryPoint&&a?.samlCert)}function g(a){return(a||"").replace(/\/+$/,"")}function h(a,b){let c=(b?.baseUrl||"").trim()||process.env.BASE_URL||process.env.NEXT_PUBLIC_BASE_URL||"";if(c)return g(c);if(a){let b=a?.headers?.get?.("x-forwarded-proto")||"",c=a?.headers?.get?.("x-forwarded-host")||a?.headers?.get?.("host")||"";if(c){let d=(b||new URL(a.url).protocol||"http:").replace(/:$/,"");return`${d}://${c}`.replace(/\/+$/,"")}if(a.url)return g(new URL(a.url).origin)}return"http://localhost:20128"}function i(a,b){let c=e(a?.samlCert||"")||"-----BEGIN CERTIFICATE-----\nMIIC...DUMMY...\n-----END CERTIFICATE-----",f=`${b}/api/auth/saml/acs`;return new d.Qb({entryPoint:a?.samlEntryPoint||"https://example.com/sso",issuer:a?.samlIssuer||"urn:keyrouter:sp",idpCert:c,cert:c,callbackUrl:f,acceptedClockSkewMs:6e4,wantAssertionsSigned:!0,validateInResponseTo:"never",requestIdExpirationMs:288e5})}async function j(a,b){let c=h(a,b),d=i(b,c),e=await d.generateAuthorizeRequestAsync(!1,!1),f=e.match(/ID="([^"]+)"/),g=f?f[1]:"";return{authorizeUrl:await d._requestToUrlAsync(e,null,"authorize",{}),requestId:g}}async function k(a,b,c,d){if(!d?.samlCert)throw Error("IdP X.509 Certificate (samlCert) is missing or not configured");let e=h(a,d),f=i(d,e),g=("object"==typeof b&&null!==b?b:{SAMLResponse:b}).SAMLResponse;if(!g)throw Error("Missing SAMLResponse parameter in assertion POST body");if(c){let a=Buffer.from(g,"base64").toString("utf8").match(/InResponseTo=["']([^"']+)["']/i),b=a?a[1]:null;if(!b||b!==c)throw Error(`InResponseTo mismatch: expected ${c}, received ${b||"none"}`)}let j=await f.validatePostResponseAsync({SAMLResponse:g});return j?.profile||j}function l(a,b){return i(b,a).generateServiceProviderMetadata()}function m(a={},b={}){if(!a)return"";let c=b.samlAttributeEmail;if(c&&a[c]){let b=a[c];return Array.isArray(b)?b[0]:String(b)}let d=["email","emailAddress","mail","nameID","nameId","upn","http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress","http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier","http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"];for(let b of d)if(a[b]){let c=a[b];return Array.isArray(c)?c[0]:String(c)}if(a.attributes){for(let b of d)if(a.attributes[b]){let c=a.attributes[b];return Array.isArray(c)?c[0]:String(c)}}return""}function n(a={},b={}){if(!a)return"";let c=b.samlAttributeName;if(c&&a[c]){let b=a[c];return Array.isArray(b)?b[0]:String(b)}for(let b of["displayName","name","cn","commonName","http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name","http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname"])if(a[b]){let c=a[b];return Array.isArray(c)?c[0]:String(c)}if(a.givenName||a.sn||a.surname){let b=a.givenName||"",c=a.sn||a.surname||"",d=`${b} ${c}`.trim();if(d)return d}return m(a,b)}c(42655)},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},8303:(a,b,c)=>{c.d(b,{B3:()=>k,T1:()=>l,im:()=>j,sv:()=>i});var d=c(48645);let e=[3e4,12e4,6e5,18e5],f=new Map;function g(){return Date.now()}function h(a){let b=f.get(a);return b?b.lastFailAt&&g()-b.lastFailAt>36e5&&(!b.lockUntil||g()>=b.lockUntil)?(f.delete(a),null):b:null}function i(a){let b=h(a);if(!b||!b.lockUntil)return{locked:!1};let c=b.lockUntil-g();return c<=0?{locked:!1}:{locked:!0,retryAfter:Math.ceil(c/1e3)}}function j(a){let b=h(a)||{fails:0,lockUntil:0,lockLevel:0,lastFailAt:0};if(b.fails+=1,b.lastFailAt=g(),b.fails>=5){let a=e[Math.min(b.lockLevel,e.length-1)];b.lockUntil=g()+a,b.lockLevel+=1,b.fails=0}return f.set(a,b),{remainingBeforeLock:Math.max(0,5-b.fails)}}function k(a){f.delete(a)}function l(a){if((0,d.M)(a)){let b=a.headers.get("x-kr-real-ip");if(b)return b}if("true"===process.env.TRUST_PROXY){let b=a.headers.get("x-forwarded-for");if(b)return b.split(",")[0].trim()}return"unknown"}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11723:a=>{a.exports=require("querystring")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30906:(a,b,c)=>{let d;c.d(b,{gR:()=>E,hT:()=>D,Pf:()=>C,GY:()=>B,sP:()=>F,Ir:()=>A,Mj:()=>z,iw:()=>x,EJ:()=>y,Ui:()=>I,Rj:()=>J,HO:()=>G,x8:()=>H});var e=c(77598),f=c.n(e),g=c(99129),h=c(64416),i=c(80700),j=c(38805);async function k(a,b,c){let d=a.get(b)||a.set(b,{}).get(b),{alg:e}=c;if(void 0===d[e]){let a=(0,h.xY)(c,b,!0).then(a=>{if("public"!==a.type)throw new g.Dm("JSON Web Key Set members must be public keys");return d[e]=a,a}).catch(b=>{throw d[e]===a&&delete d[e],b});d[e]=a}return d[e]}function l(a){let b;try{b=structuredClone(a)}catch(a){throw new g.Dm("JSON Web Key Set malformed",{cause:a})}if(!(0,j.fV)(b))throw new g.Dm("JSON Web Key Set malformed");let c=b.keys.map(a=>{let b=(0,h.ZZ)(a);return Array.isArray(b.key_ops)&&(b.key_ops=[...b.key_ops]),b}),d=new WeakMap;return Object.defineProperty(async(a,e)=>{let{alg:f,kid:h}={...a,...e?.header},j="string"==typeof f?i.p[f]:void 0;if(!j||j.secret)throw new g.T0('Unsupported "alg" value for a JSON Web Key Set');let l=b.keys.filter((a,b)=>(function(a,b,c,d){let{kty:e,key_ops:f,ext:g,kid:h,alg:i,use:j,crv:k}=a;return(void 0===g||"boolean"==typeof g)&&(void 0===f||Array.isArray(f)&&f.every((a,b)=>"string"==typeof a&&f.indexOf(a)===b)&&f.includes("verify"))&&b.kty.includes(e)&&(void 0===d||"string"==typeof d&&d===h)&&(void 0===i?"AKP"!==e:c===i)&&(void 0===j||"sig"===j)&&(!b.crv||k===b.crv)})(c[b],j,f,h)),{0:m,length:n}=l;if(!n)throw new g.BT;if(1!==n){let a=new g.$4;throw a[Symbol.asyncIterator]=async function*(){for(let a of l)try{yield await k(d,a,j)}catch{}},a}return k(d,m,j)},"jwks",{value:()=>structuredClone(b)})}(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(d="jose/v6.2.14");let m=Symbol();async function n(a,b,c,d=fetch){let e=await d(a,{method:"GET",signal:c,redirect:"manual",headers:b}).catch(a=>{throw"TimeoutError"===a.name?new g.xb(void 0,{cause:a}):a});if(200!==e.status)throw new g.i4("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await e.json()}catch(a){throw new g.i4("Failed to parse the JSON Web Key Set HTTP response as JSON",{cause:a})}}let o=Symbol();function p(a,b){return Number.isFinite(a)&&Date.now()<a+b}function q(a,b,c){if(Number.isNaN(a))throw TypeError(`"${c}" option must not be NaN`);return"number"==typeof a?a:b}var r=c(17509),s=c(89718);let t="openid profile email",u="Sign in with OIDC";function v(a){return(a||"").trim().replace(/\/+$/,"")}function w(a){return(a||t).trim()||t}function x(a){let b=process.env.BASE_URL||process.env.NEXT_PUBLIC_BASE_URL||"";if(b)return v(b);let c=a?.headers?.get?.("x-forwarded-proto")||"",d=a?.headers?.get?.("x-forwarded-host")||a?.headers?.get?.("host")||"";if(d){let b=(c||new URL(a.url).protocol||"http:").replace(/:$/,"");return`${b}://${d}`.replace(/\/+$/,"")}return v(new URL(a.url).origin)}function y(a){return!!(v(a?.oidcIssuerUrl)&&(a?.oidcClientId||"").trim()&&(a?.oidcClientSecret||"").trim())}async function z(){let a=await (0,s.mt)();return["oidc","both"].includes(a.authMode)&&y(a)?{issuerUrl:v(a.oidcIssuerUrl),clientId:a.oidcClientId.trim(),clientSecret:a.oidcClientSecret.trim(),scopes:w(a.oidcScopes),loginLabel:(a.oidcLoginLabel||u).trim()||u}:null}async function A(a){let b=`${v(a)}/.well-known/openid-configuration`,c=await fetch(b,{cache:"no-store"});if(!c.ok)throw Error(`Failed to load OIDC discovery document from ${b}`);return await c.json()}function B(){let a=f().randomBytes(32).toString("base64url"),b=f().createHash("sha256").update(a).digest("base64url");return{verifier:a,challenge:b}}function C(){return f().randomBytes(16).toString("base64url")}function D(){return f().randomBytes(16).toString("base64url")}function E({authorizationEndpoint:a,clientId:b,redirectUri:c,scopes:d=t,state:e,nonce:f,codeChallenge:g}){let h=new URL(a);return h.searchParams.set("response_type","code"),h.searchParams.set("client_id",b),h.searchParams.set("redirect_uri",c),h.searchParams.set("scope",w(d)),h.searchParams.set("state",e),h.searchParams.set("nonce",f),h.searchParams.set("code_challenge",g),h.searchParams.set("code_challenge_method","S256"),h.toString()}async function F({tokenEndpoint:a,clientId:b,clientSecret:c,code:d,redirectUri:e,codeVerifier:f}){let g=new URLSearchParams({grant_type:"authorization_code",client_id:b,code:d,redirect_uri:e,code_verifier:f});c&&g.set("client_secret",c);let h=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:g}),i=await h.json().catch(()=>({}));if(!h.ok)throw Error(i?.error_description||i?.error||`OIDC token exchange failed (${h.status})`);return i}async function G({tokenEndpoint:a,clientId:b,clientSecret:c,redirectUri:d}){if(!c)return{tested:!1,valid:null,message:"No client secret was provided, so secret validation was skipped."};let e=new URLSearchParams({grant_type:"authorization_code",client_id:b,client_secret:c,code:"__oidc_test_invalid_code__",redirect_uri:d,code_verifier:"__oidc_test_invalid_verifier__"}),f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e}),g=await f.json().catch(()=>({})),h=(g?.error||"").toLowerCase(),i=g?.error_description||g?.error||"";return f.ok?{tested:!0,valid:!0,message:"Client secret was accepted by the token endpoint.",raw:g}:"invalid_client"===h||"unauthorized_client"===h||/client.*(invalid|failed|mismatch)/i.test(i)?{tested:!0,valid:!1,message:i||"Client secret is not valid.",raw:g}:"invalid_grant"===h||"invalid_code"===h||/grant|code/i.test(i)?{tested:!0,valid:!0,message:"Client secret was accepted; the token exchange failed only because the test authorization code is invalid.",raw:g}:{tested:!0,valid:null,message:i||`Token endpoint responded with ${f.status}`,raw:g}}async function H({idToken:a,issuer:b,audience:c,jwksUri:e,nonce:f}){let h=function(a){if(!(a instanceof URL))throw TypeError("url must be an instance of URL");let b=new URL(a.href).href,c=(void 0)??{},e=c.timeoutDuration;if("number"==typeof e&&(!Number.isInteger(e)||e<0))throw TypeError('"timeoutDuration" option must be a non-negative integer');let f="number"==typeof e?e:5e3,h=q(c.cooldownDuration,3e4,"cooldownDuration"),i=q(c.cacheMaxAge,6e5,"cacheMaxAge"),k=new Headers(c.headers);d&&!k.has("User-Agent")&&k.set("User-Agent",d),k.has("accept")||k.set("accept","application/json, application/jwk-set+json");let r=c[m],s=c[o],t,u,v=0,w=0,x;if(s&&"object"==typeof s){let{uat:a,jwks:b}=s;p(a,i)&&(0,j.fV)(b)&&(t=a,x=l(b))}let y=async()=>{if(u&&("u">typeof WebSocketPair||"u">typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||"u">typeof EdgeRuntime&&"vercel"===EdgeRuntime)&&(u=void 0),!u){let a=++v,c=u=n(b,k,AbortSignal.timeout(f),r).then(b=>{let c=l(b);if(a<=w)return;x=c;let d=Date.now();s&&(s.uat=d,s.jwks=b),t=d,w=a}).finally(()=>{u===c&&(u=void 0)})}await u};return Object.defineProperties(async(a,b)=>{x&&p(t,i)||await y();try{return await x(a,b)}catch(c){if(c instanceof g.BT&&!p(t,h))return await y(),x(a,b);throw c}},{coolingDown:{get:()=>p(t,h),enumerable:!0},fresh:{get:()=>p(t,i),enumerable:!0},reload:{value:y,enumerable:!0},reloading:{get:()=>!!u,enumerable:!0},jwks:{value:()=>x?.jwks(),enumerable:!0}})}(new URL(e)),{payload:i}=await (0,r.V)(a,h,{issuer:b,audience:c,nonce:f});return i}function I(a={}){return a.preferred_username||a.email||a.name||a.given_name||a.sub||"OIDC user"}function J(a={}){return a.email||""}},33792:(a,b,c)=>{c.d(b,{Dc:()=>r,OZ:()=>u,YK:()=>p,dY:()=>s,nz:()=>v,tm:()=>t});var d=c(8292),e=c(17509),f=c(34013),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(77598),l=c.n(k),m=c(49120),n=c(89718);let o=new TextEncoder().encode(function(){if(process.env.JWT_SECRET)return process.env.JWT_SECRET;let a=j().join(m.n,"jwt-secret");try{return h().readFileSync(a,"utf8").trim()}catch{}h().mkdirSync(m.n,{recursive:!0});let b=l().randomBytes(32).toString("hex");return h().writeFileSync(a,b,{mode:384}),b}());function p(a){let b="true"===process.env.AUTH_COOKIE_SECURE,c=a?.headers?.get?.("x-forwarded-proto");return b||"https"===c}async function q(a={}){return new d.P({authenticated:!0,...a}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("24h").sign(o)}async function r(a){if(!a)return!1;try{return await (0,e.V)(a,o),!0}catch{return!1}}async function s(a){if(!a)return null;try{let{payload:b}=await (0,e.V)(a,o);return b}catch{return null}}async function t(a,b,c={}){let d=await q(c);a.set("auth_token",d,{httpOnly:!0,secure:p(b),sameSite:"lax",path:"/",maxAge:86400})}function u(a){a.delete("auth_token")}async function v(a){if("string"!=typeof a||!a)return!1;let b=await (0,n.mt)(),c=b?.password;return c?f.Ay.compare(a,c):a===(process.env.INITIAL_PASSWORD||"123456")}},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{a.exports=require("sql.js")},48645:(a,b,c)=>{c.d(b,{M:()=>d});function d(a){let b=process.env.KEYROUTER_PEER_TOKEN;return!!b&&a.headers.get("x-kr-peer-token")===b}},54603:(a,b,c)=>{c.d(b,{Xj:()=>q});var d=c(19713),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(77598),j=c.n(i),k=c(49120);let l=h().join(k.n,"machine-id"),m=h().join(k.n,"auth"),n=h().join(m,"cli-secret"),o=null,p=null;async function q(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt",c=function(){if(o)return o;try{if(o=f().readFileSync(l,"utf8").trim())return o}catch{}try{o=(0,d.machineIdSync)()}catch{o=j().randomUUID()}try{f().mkdirSync(k.n,{recursive:!0}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="kr-cli-auth"===b?function(){if(p)return p;try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66136:a=>{a.exports=require("timers")},68658:(a,b,c)=>{c.d(b,{v5:()=>j}),c(23211);var d=c(89718),e=c(54603),f=c(33792),g=c(48645);let h=new Set(["localhost","127.0.0.1","::1"]);function i(a){if(!a)return!1;let b=String(a).trim().toLowerCase();if(b.startsWith("[")){let a=b.indexOf("]");if(-1===a)return!1;b=b.slice(1,a)}else -1!==b.indexOf(":")&&b.indexOf(":")===b.lastIndexOf(":")&&(b=b.slice(0,b.indexOf(":")));return b.startsWith("::ffff:")&&(b=b.slice(7)),h.has(b)}function j(a){if(a.headers.get("x-kr-via-proxy")||!((0,g.M)(a)&&i(a.headers.get("x-kr-real-ip"))))return!1;let b=a.headers.get("origin");if(b)try{if(!i(new URL(b).hostname))return!1}catch{return!1}return!0}},73024:a=>{a.exports=require("node:fs")},74075:a=>{a.exports=require("zlib")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},78067:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/auth/login/route",pathname:"/api/auth/login",filename:"route",bundlePath:"app/api/auth/login/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/keyzakyy/Projects/keyrouter/src/app/api/auth/login/route.js",nextConfigOutput:"standalone",userland:()=>c(87644),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/auth/login/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}},79646:a=>{a.exports=require("child_process")},79868:a=>{a.exports=require("node:sqlite")},81787:a=>{a.exports=require("bun:sqlite")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},87644:(a,b,c)=>{c.r(b),c.d(b,{POST:()=>o});var d=c(23211),e=c(89718),f=c(34013),g=c(65573),h=c(33792),i=c(30906),j=c(7985),k=c(8303),l=c(68658);let m="Forgot password? Reset to default via KeyRouter CLI → Settings → Reset Password to Default.",n={"Cache-Control":"no-store"};async function o(a){try{let b,c,o,p=(0,k.T1)(a),q=(0,k.sv)(p);if(q.locked)return d.NextResponse.json({error:`Too many failed attempts. Try again in ${q.retryAfter}s. ${m}`,retryAfter:q.retryAfter,resetHint:m},{status:429,headers:{"Retry-After":String(q.retryAfter)}});let{password:r}=await a.json(),s=await (0,e.mt)();if(b=(a.headers.get("host")||"").split(":")[0].toLowerCase(),c=s.tunnelUrl?new URL(s.tunnelUrl).hostname.toLowerCase():"",o=s.tailscaleUrl?new URL(s.tailscaleUrl).hostname.toLowerCase():"",(c&&b===c||o&&b===o)&&!0!==s.tunnelDashboardAccess)return d.NextResponse.json({error:"Dashboard access via tunnel is disabled"},{status:403});let t=s.password;if("sso"===s.authMode||"saml"===s.authMode||"oidc"===s.authMode){let a=s.ssoType||("saml"===s.authMode?"saml":"oidc");if("saml"===a&&(0,j.eI)(s))return d.NextResponse.json({error:"Password login is disabled. Use SAML SSO sign in."},{status:403});if("oidc"===a&&(0,i.EJ)(s))return d.NextResponse.json({error:"Password login is disabled. Use OIDC sign in."},{status:403})}let u=!1;if(t)u=await f.Ay.compare(r,t);else{let a=process.env.INITIAL_PASSWORD||"123456";u=r===a}if(u){(0,k.B3)(p);let b=!t&&!process.env.INITIAL_PASSWORD&&!(0,l.v5)(a);if(b)return d.NextResponse.json({success:!1,error:"Default password must be changed before remote access. Change it from the local machine (or set INITIAL_PASSWORD).",mustChangePassword:b},{status:403,headers:n});let c=await (0,g.UL)();return await (0,h.tm)(c,a),d.NextResponse.json({success:!0,mustChangePassword:!1},{headers:n})}let{remainingBeforeLock:v}=(0,k.im)(p),w=(0,k.sv)(p);if(w.locked)return d.NextResponse.json({error:`Too many failed attempts. Try again in ${w.retryAfter}s. ${m}`,retryAfter:w.retryAfter,resetHint:m},{status:429,headers:{"Retry-After":String(w.retryAfter)}});return d.NextResponse.json({error:`Invalid password. ${v} attempt(s) left before lockout.`,remainingBeforeLock:v},{status:401})}catch(a){return d.NextResponse.json({error:a.message},{status:500})}}},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,FS:()=>d.FS,Fh:()=>d.Fh,GT:()=>d.GT,Gb:()=>d.Gb,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Ln:()=>d.Ln,Mc:()=>d.Mc,My:()=>d.My,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,WG:()=>d.WG,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,Zd:()=>d.Zd,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fp:()=>d.fp,fv:()=>d.fv,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,js:()=>d.js,kj:()=>d.kj,mY:()=>d.mY,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,oN:()=>d.oN,op:()=>d.op,pE:()=>d.pE,r4:()=>d.r4,sA:()=>d.sA,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,y0:()=>d.y0,yF:()=>d.yF,yK:()=>d.yK,yg:()=>d.yg,yz:()=>d.yz,zI:()=>d.zI,zP:()=>d.zP,zz:()=>d.zz});var d=c(83192)},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,2391,8292,5573,5081,4293,9100],()=>b(b.s=78067));module.exports=c})();
|
|
3
|
+
-----END CERTIFICATE-----`}function f(a){return!!(a?.samlEntryPoint&&a?.samlCert)}function g(a){return(a||"").replace(/\/+$/,"")}function h(a,b){let c=(b?.baseUrl||"").trim()||process.env.BASE_URL||"http://localhost:20127";if(c)return g(c);if(a){let b=a?.headers?.get?.("x-forwarded-proto")||"",c=a?.headers?.get?.("x-forwarded-host")||a?.headers?.get?.("host")||"";if(c){let d=(b||new URL(a.url).protocol||"http:").replace(/:$/,"");return`${d}://${c}`.replace(/\/+$/,"")}if(a.url)return g(new URL(a.url).origin)}return"http://localhost:20131"}function i(a,b){let c=e(a?.samlCert||"")||"-----BEGIN CERTIFICATE-----\nMIIC...DUMMY...\n-----END CERTIFICATE-----",f=`${b}/api/auth/saml/acs`;return new d.Qb({entryPoint:a?.samlEntryPoint||"https://example.com/sso",issuer:a?.samlIssuer||"urn:keyrouter:sp",idpCert:c,cert:c,callbackUrl:f,acceptedClockSkewMs:6e4,wantAssertionsSigned:!0,validateInResponseTo:"never",requestIdExpirationMs:288e5})}async function j(a,b){let c=h(a,b),d=i(b,c),e=await d.generateAuthorizeRequestAsync(!1,!1),f=e.match(/ID="([^"]+)"/),g=f?f[1]:"";return{authorizeUrl:await d._requestToUrlAsync(e,null,"authorize",{}),requestId:g}}async function k(a,b,c,d){if(!d?.samlCert)throw Error("IdP X.509 Certificate (samlCert) is missing or not configured");let e=h(a,d),f=i(d,e),g=("object"==typeof b&&null!==b?b:{SAMLResponse:b}).SAMLResponse;if(!g)throw Error("Missing SAMLResponse parameter in assertion POST body");if(c){let a=Buffer.from(g,"base64").toString("utf8").match(/InResponseTo=["']([^"']+)["']/i),b=a?a[1]:null;if(!b||b!==c)throw Error(`InResponseTo mismatch: expected ${c}, received ${b||"none"}`)}let j=await f.validatePostResponseAsync({SAMLResponse:g});return j?.profile||j}function l(a,b){return i(b,a).generateServiceProviderMetadata()}function m(a={},b={}){if(!a)return"";let c=b.samlAttributeEmail;if(c&&a[c]){let b=a[c];return Array.isArray(b)?b[0]:String(b)}let d=["email","emailAddress","mail","nameID","nameId","upn","http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress","http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier","http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"];for(let b of d)if(a[b]){let c=a[b];return Array.isArray(c)?c[0]:String(c)}if(a.attributes){for(let b of d)if(a.attributes[b]){let c=a.attributes[b];return Array.isArray(c)?c[0]:String(c)}}return""}function n(a={},b={}){if(!a)return"";let c=b.samlAttributeName;if(c&&a[c]){let b=a[c];return Array.isArray(b)?b[0]:String(b)}for(let b of["displayName","name","cn","commonName","http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name","http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname"])if(a[b]){let c=a[b];return Array.isArray(c)?c[0]:String(c)}if(a.givenName||a.sn||a.surname){let b=a.givenName||"",c=a.sn||a.surname||"",d=`${b} ${c}`.trim();if(d)return d}return m(a,b)}c(42655)},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},8303:(a,b,c)=>{c.d(b,{B3:()=>k,T1:()=>l,im:()=>j,sv:()=>i});var d=c(48645);let e=[3e4,12e4,6e5,18e5],f=new Map;function g(){return Date.now()}function h(a){let b=f.get(a);return b?b.lastFailAt&&g()-b.lastFailAt>36e5&&(!b.lockUntil||g()>=b.lockUntil)?(f.delete(a),null):b:null}function i(a){let b=h(a);if(!b||!b.lockUntil)return{locked:!1};let c=b.lockUntil-g();return c<=0?{locked:!1}:{locked:!0,retryAfter:Math.ceil(c/1e3)}}function j(a){let b=h(a)||{fails:0,lockUntil:0,lockLevel:0,lastFailAt:0};if(b.fails+=1,b.lastFailAt=g(),b.fails>=5){let a=e[Math.min(b.lockLevel,e.length-1)];b.lockUntil=g()+a,b.lockLevel+=1,b.fails=0}return f.set(a,b),{remainingBeforeLock:Math.max(0,5-b.fails)}}function k(a){f.delete(a)}function l(a){if((0,d.M)(a)){let b=a.headers.get("x-kr-real-ip");if(b)return b}if("true"===process.env.TRUST_PROXY){let b=a.headers.get("x-forwarded-for");if(b)return b.split(",")[0].trim()}return"unknown"}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11723:a=>{a.exports=require("querystring")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30906:(a,b,c)=>{let d;c.d(b,{gR:()=>E,hT:()=>D,Pf:()=>C,GY:()=>B,sP:()=>F,Ir:()=>A,Mj:()=>z,iw:()=>x,EJ:()=>y,Ui:()=>I,Rj:()=>J,HO:()=>G,x8:()=>H});var e=c(77598),f=c.n(e),g=c(99129),h=c(64416),i=c(80700),j=c(38805);async function k(a,b,c){let d=a.get(b)||a.set(b,{}).get(b),{alg:e}=c;if(void 0===d[e]){let a=(0,h.xY)(c,b,!0).then(a=>{if("public"!==a.type)throw new g.Dm("JSON Web Key Set members must be public keys");return d[e]=a,a}).catch(b=>{throw d[e]===a&&delete d[e],b});d[e]=a}return d[e]}function l(a){let b;try{b=structuredClone(a)}catch(a){throw new g.Dm("JSON Web Key Set malformed",{cause:a})}if(!(0,j.fV)(b))throw new g.Dm("JSON Web Key Set malformed");let c=b.keys.map(a=>{let b=(0,h.ZZ)(a);return Array.isArray(b.key_ops)&&(b.key_ops=[...b.key_ops]),b}),d=new WeakMap;return Object.defineProperty(async(a,e)=>{let{alg:f,kid:h}={...a,...e?.header},j="string"==typeof f?i.p[f]:void 0;if(!j||j.secret)throw new g.T0('Unsupported "alg" value for a JSON Web Key Set');let l=b.keys.filter((a,b)=>(function(a,b,c,d){let{kty:e,key_ops:f,ext:g,kid:h,alg:i,use:j,crv:k}=a;return(void 0===g||"boolean"==typeof g)&&(void 0===f||Array.isArray(f)&&f.every((a,b)=>"string"==typeof a&&f.indexOf(a)===b)&&f.includes("verify"))&&b.kty.includes(e)&&(void 0===d||"string"==typeof d&&d===h)&&(void 0===i?"AKP"!==e:c===i)&&(void 0===j||"sig"===j)&&(!b.crv||k===b.crv)})(c[b],j,f,h)),{0:m,length:n}=l;if(!n)throw new g.BT;if(1!==n){let a=new g.$4;throw a[Symbol.asyncIterator]=async function*(){for(let a of l)try{yield await k(d,a,j)}catch{}},a}return k(d,m,j)},"jwks",{value:()=>structuredClone(b)})}(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(d="jose/v6.2.14");let m=Symbol();async function n(a,b,c,d=fetch){let e=await d(a,{method:"GET",signal:c,redirect:"manual",headers:b}).catch(a=>{throw"TimeoutError"===a.name?new g.xb(void 0,{cause:a}):a});if(200!==e.status)throw new g.i4("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await e.json()}catch(a){throw new g.i4("Failed to parse the JSON Web Key Set HTTP response as JSON",{cause:a})}}let o=Symbol();function p(a,b){return Number.isFinite(a)&&Date.now()<a+b}function q(a,b,c){if(Number.isNaN(a))throw TypeError(`"${c}" option must not be NaN`);return"number"==typeof a?a:b}var r=c(17509),s=c(89718);let t="openid profile email",u="Sign in with OIDC";function v(a){return(a||"").trim().replace(/\/+$/,"")}function w(a){return(a||t).trim()||t}function x(a){let b=process.env.BASE_URL||"http://localhost:20127";if(b)return v(b);let c=a?.headers?.get?.("x-forwarded-proto")||"",d=a?.headers?.get?.("x-forwarded-host")||a?.headers?.get?.("host")||"";if(d){let b=(c||new URL(a.url).protocol||"http:").replace(/:$/,"");return`${b}://${d}`.replace(/\/+$/,"")}return v(new URL(a.url).origin)}function y(a){return!!(v(a?.oidcIssuerUrl)&&(a?.oidcClientId||"").trim()&&(a?.oidcClientSecret||"").trim())}async function z(){let a=await (0,s.mt)();return["oidc","both"].includes(a.authMode)&&y(a)?{issuerUrl:v(a.oidcIssuerUrl),clientId:a.oidcClientId.trim(),clientSecret:a.oidcClientSecret.trim(),scopes:w(a.oidcScopes),loginLabel:(a.oidcLoginLabel||u).trim()||u}:null}async function A(a){let b=`${v(a)}/.well-known/openid-configuration`,c=await fetch(b,{cache:"no-store"});if(!c.ok)throw Error(`Failed to load OIDC discovery document from ${b}`);return await c.json()}function B(){let a=f().randomBytes(32).toString("base64url"),b=f().createHash("sha256").update(a).digest("base64url");return{verifier:a,challenge:b}}function C(){return f().randomBytes(16).toString("base64url")}function D(){return f().randomBytes(16).toString("base64url")}function E({authorizationEndpoint:a,clientId:b,redirectUri:c,scopes:d=t,state:e,nonce:f,codeChallenge:g}){let h=new URL(a);return h.searchParams.set("response_type","code"),h.searchParams.set("client_id",b),h.searchParams.set("redirect_uri",c),h.searchParams.set("scope",w(d)),h.searchParams.set("state",e),h.searchParams.set("nonce",f),h.searchParams.set("code_challenge",g),h.searchParams.set("code_challenge_method","S256"),h.toString()}async function F({tokenEndpoint:a,clientId:b,clientSecret:c,code:d,redirectUri:e,codeVerifier:f}){let g=new URLSearchParams({grant_type:"authorization_code",client_id:b,code:d,redirect_uri:e,code_verifier:f});c&&g.set("client_secret",c);let h=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:g}),i=await h.json().catch(()=>({}));if(!h.ok)throw Error(i?.error_description||i?.error||`OIDC token exchange failed (${h.status})`);return i}async function G({tokenEndpoint:a,clientId:b,clientSecret:c,redirectUri:d}){if(!c)return{tested:!1,valid:null,message:"No client secret was provided, so secret validation was skipped."};let e=new URLSearchParams({grant_type:"authorization_code",client_id:b,client_secret:c,code:"__oidc_test_invalid_code__",redirect_uri:d,code_verifier:"__oidc_test_invalid_verifier__"}),f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e}),g=await f.json().catch(()=>({})),h=(g?.error||"").toLowerCase(),i=g?.error_description||g?.error||"";return f.ok?{tested:!0,valid:!0,message:"Client secret was accepted by the token endpoint.",raw:g}:"invalid_client"===h||"unauthorized_client"===h||/client.*(invalid|failed|mismatch)/i.test(i)?{tested:!0,valid:!1,message:i||"Client secret is not valid.",raw:g}:"invalid_grant"===h||"invalid_code"===h||/grant|code/i.test(i)?{tested:!0,valid:!0,message:"Client secret was accepted; the token exchange failed only because the test authorization code is invalid.",raw:g}:{tested:!0,valid:null,message:i||`Token endpoint responded with ${f.status}`,raw:g}}async function H({idToken:a,issuer:b,audience:c,jwksUri:e,nonce:f}){let h=function(a){if(!(a instanceof URL))throw TypeError("url must be an instance of URL");let b=new URL(a.href).href,c=(void 0)??{},e=c.timeoutDuration;if("number"==typeof e&&(!Number.isInteger(e)||e<0))throw TypeError('"timeoutDuration" option must be a non-negative integer');let f="number"==typeof e?e:5e3,h=q(c.cooldownDuration,3e4,"cooldownDuration"),i=q(c.cacheMaxAge,6e5,"cacheMaxAge"),k=new Headers(c.headers);d&&!k.has("User-Agent")&&k.set("User-Agent",d),k.has("accept")||k.set("accept","application/json, application/jwk-set+json");let r=c[m],s=c[o],t,u,v=0,w=0,x;if(s&&"object"==typeof s){let{uat:a,jwks:b}=s;p(a,i)&&(0,j.fV)(b)&&(t=a,x=l(b))}let y=async()=>{if(u&&("u">typeof WebSocketPair||"u">typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||"u">typeof EdgeRuntime&&"vercel"===EdgeRuntime)&&(u=void 0),!u){let a=++v,c=u=n(b,k,AbortSignal.timeout(f),r).then(b=>{let c=l(b);if(a<=w)return;x=c;let d=Date.now();s&&(s.uat=d,s.jwks=b),t=d,w=a}).finally(()=>{u===c&&(u=void 0)})}await u};return Object.defineProperties(async(a,b)=>{x&&p(t,i)||await y();try{return await x(a,b)}catch(c){if(c instanceof g.BT&&!p(t,h))return await y(),x(a,b);throw c}},{coolingDown:{get:()=>p(t,h),enumerable:!0},fresh:{get:()=>p(t,i),enumerable:!0},reload:{value:y,enumerable:!0},reloading:{get:()=>!!u,enumerable:!0},jwks:{value:()=>x?.jwks(),enumerable:!0}})}(new URL(e)),{payload:i}=await (0,r.V)(a,h,{issuer:b,audience:c,nonce:f});return i}function I(a={}){return a.preferred_username||a.email||a.name||a.given_name||a.sub||"OIDC user"}function J(a={}){return a.email||""}},33792:(a,b,c)=>{c.d(b,{Dc:()=>r,OZ:()=>u,YK:()=>p,dY:()=>s,nz:()=>v,tm:()=>t});var d=c(8292),e=c(17509),f=c(34013),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(77598),l=c.n(k),m=c(49120),n=c(89718);let o=new TextEncoder().encode(function(){if(process.env.JWT_SECRET)return process.env.JWT_SECRET;let a=j().join(m.n,"jwt-secret");try{return h().readFileSync(a,"utf8").trim()}catch{}h().mkdirSync(m.n,{recursive:!0});let b=l().randomBytes(32).toString("hex");return h().writeFileSync(a,b,{mode:384}),b}());function p(a){let b="true"===process.env.AUTH_COOKIE_SECURE,c=a?.headers?.get?.("x-forwarded-proto");return b||"https"===c}async function q(a={}){return new d.P({authenticated:!0,...a}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("24h").sign(o)}async function r(a){if(!a)return!1;try{return await (0,e.V)(a,o),!0}catch{return!1}}async function s(a){if(!a)return null;try{let{payload:b}=await (0,e.V)(a,o);return b}catch{return null}}async function t(a,b,c={}){let d=await q(c);a.set("auth_token",d,{httpOnly:!0,secure:p(b),sameSite:"lax",path:"/",maxAge:86400})}function u(a){a.delete("auth_token")}async function v(a){if("string"!=typeof a||!a)return!1;let b=await (0,n.mt)(),c=b?.password;return c?f.Ay.compare(a,c):a===(process.env.INITIAL_PASSWORD||"123456")}},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{a.exports=require("sql.js")},48645:(a,b,c)=>{c.d(b,{M:()=>d});function d(a){let b=process.env.KEYROUTER_PEER_TOKEN;return!!b&&a.headers.get("x-kr-peer-token")===b}},54603:(a,b,c)=>{c.d(b,{Xj:()=>q});var d=c(19713),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(77598),j=c.n(i),k=c(49120);let l=h().join(k.n,"machine-id"),m=h().join(k.n,"auth"),n=h().join(m,"cli-secret"),o=null,p=null;async function q(a=null){let b=a||process.env.MACHINE_ID_SALT||"keyrouter-salt",c=function(){if(o)return o;try{if(o=f().readFileSync(l,"utf8").trim())return o}catch{}try{o=(0,d.machineIdSync)()}catch{o=j().randomUUID()}try{f().mkdirSync(k.n,{recursive:!0}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="kr-cli-auth"===b?function(){if(p)return p;try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66136:a=>{a.exports=require("timers")},68658:(a,b,c)=>{c.d(b,{v5:()=>j}),c(23211);var d=c(89718),e=c(54603),f=c(33792),g=c(48645);let h=new Set(["localhost","127.0.0.1","::1"]);function i(a){if(!a)return!1;let b=String(a).trim().toLowerCase();if(b.startsWith("[")){let a=b.indexOf("]");if(-1===a)return!1;b=b.slice(1,a)}else -1!==b.indexOf(":")&&b.indexOf(":")===b.lastIndexOf(":")&&(b=b.slice(0,b.indexOf(":")));return b.startsWith("::ffff:")&&(b=b.slice(7)),h.has(b)}function j(a){if(a.headers.get("x-kr-via-proxy")||!((0,g.M)(a)&&i(a.headers.get("x-kr-real-ip"))))return!1;let b=a.headers.get("origin");if(b)try{if(!i(new URL(b).hostname))return!1}catch{return!1}return!0}},73024:a=>{a.exports=require("node:fs")},74075:a=>{a.exports=require("zlib")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},78067:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/auth/login/route",pathname:"/api/auth/login",filename:"route",bundlePath:"app/api/auth/login/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/keyzakyy/Projects/keyrouter/src/app/api/auth/login/route.js",nextConfigOutput:"standalone",userland:()=>c(87644),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/auth/login/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}},79646:a=>{a.exports=require("child_process")},79868:a=>{a.exports=require("node:sqlite")},81787:a=>{a.exports=require("bun:sqlite")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},87644:(a,b,c)=>{c.r(b),c.d(b,{POST:()=>o});var d=c(23211),e=c(89718),f=c(34013),g=c(65573),h=c(33792),i=c(30906),j=c(7985),k=c(8303),l=c(68658);let m="Forgot password? Reset to default via KeyRouter CLI → Settings → Reset Password to Default.",n={"Cache-Control":"no-store"};async function o(a){try{let b,c,o,p=(0,k.T1)(a),q=(0,k.sv)(p);if(q.locked)return d.NextResponse.json({error:`Too many failed attempts. Try again in ${q.retryAfter}s. ${m}`,retryAfter:q.retryAfter,resetHint:m},{status:429,headers:{"Retry-After":String(q.retryAfter)}});let{password:r}=await a.json(),s=await (0,e.mt)();if(b=(a.headers.get("host")||"").split(":")[0].toLowerCase(),c=s.tunnelUrl?new URL(s.tunnelUrl).hostname.toLowerCase():"",o=s.tailscaleUrl?new URL(s.tailscaleUrl).hostname.toLowerCase():"",(c&&b===c||o&&b===o)&&!0!==s.tunnelDashboardAccess)return d.NextResponse.json({error:"Dashboard access via tunnel is disabled"},{status:403});let t=s.password;if("sso"===s.authMode||"saml"===s.authMode||"oidc"===s.authMode){let a=s.ssoType||("saml"===s.authMode?"saml":"oidc");if("saml"===a&&(0,j.eI)(s))return d.NextResponse.json({error:"Password login is disabled. Use SAML SSO sign in."},{status:403});if("oidc"===a&&(0,i.EJ)(s))return d.NextResponse.json({error:"Password login is disabled. Use OIDC sign in."},{status:403})}let u=!1;if(t)u=await f.Ay.compare(r,t);else{let a=process.env.INITIAL_PASSWORD||"123456";u=r===a}if(u){(0,k.B3)(p);let b=!t&&!process.env.INITIAL_PASSWORD&&!(0,l.v5)(a);if(b)return d.NextResponse.json({success:!1,error:"Default password must be changed before remote access. Change it from the local machine (or set INITIAL_PASSWORD).",mustChangePassword:b},{status:403,headers:n});let c=await (0,g.UL)();return await (0,h.tm)(c,a),d.NextResponse.json({success:!0,mustChangePassword:!1},{headers:n})}let{remainingBeforeLock:v}=(0,k.im)(p),w=(0,k.sv)(p);if(w.locked)return d.NextResponse.json({error:`Too many failed attempts. Try again in ${w.retryAfter}s. ${m}`,retryAfter:w.retryAfter,resetHint:m},{status:429,headers:{"Retry-After":String(w.retryAfter)}});return d.NextResponse.json({error:`Invalid password. ${v} attempt(s) left before lockout.`,remainingBeforeLock:v},{status:401})}catch(a){return d.NextResponse.json({error:a.message},{status:500})}}},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,FS:()=>d.FS,Fh:()=>d.Fh,GT:()=>d.GT,Gb:()=>d.Gb,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Ln:()=>d.Ln,Mc:()=>d.Mc,My:()=>d.My,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,WG:()=>d.WG,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,Zd:()=>d.Zd,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fp:()=>d.fp,fv:()=>d.fv,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,js:()=>d.js,kj:()=>d.kj,mY:()=>d.mY,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,oN:()=>d.oN,op:()=>d.op,pE:()=>d.pE,r4:()=>d.r4,sA:()=>d.sA,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,y0:()=>d.y0,yF:()=>d.yF,yK:()=>d.yK,yg:()=>d.yg,yz:()=>d.yz,zI:()=>d.zI,zP:()=>d.zP,zz:()=>d.zz});var d=c(83192)},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,2391,8292,5573,5081,4293,9100],()=>b(b.s=78067));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=4674,a.ids=[4674],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},463:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/auth/oidc/callback/route",pathname:"/api/auth/oidc/callback",filename:"route",bundlePath:"app/api/auth/oidc/callback/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/keyzakyy/Projects/keyrouter/src/app/api/auth/oidc/callback/route.js",nextConfigOutput:"standalone",userland:()=>c(34932),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/auth/oidc/callback/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17509:(a,b,c)=>{c.d(b,{V:()=>m});var d=c(80700),e=c(99129),f=c(73575),g=c(38805),h=c(64416);function i(a){try{return(0,f.lF)(a)}catch(a){throw new e.Ye("JWS Compact Serialization payload must use only ASCII characters",{cause:a})}}async function j(a,b,c,i,j){let{protected:k,header:l,payload:m}=a,n=j??(void 0===k?{}:(0,g.OX)(k,e.Ye,"JWS Protected Header is invalid"));if(!(0,g.fz)(n,l))throw new e.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let o={...n,...l},p=(0,g.J0)(n,(0,g.nI)(e.Ye,g.qc,b[1],n,o)),{alg:q}=o;if("string"!=typeof q||!q)throw new e.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(b[0]&&!b[0].has(q))throw new e.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof m)throw new e.Ye("JWS Payload must be a string")}else if("string"!=typeof m&&!(m instanceof Uint8Array))throw new e.Ye("JWS Payload must be a string or an Uint8Array instance");let r=p||"string"!=typeof m?m:i(m),s=!1;"function"==typeof c&&(c=await c(n,a),s=!0);let t=(0,d.q)(q),u=(0,f.xW)(void 0!==k?(0,f.lF)(k):new Uint8Array,(0,f.lF)("."),"string"==typeof r?b[2]??=(0,g.MV)(r,"payload",e.Ye):r),v=(0,g.h2)(a.signature,"signature",e.Ye),w=await (0,h.dT)(t,c,"verify"),x=await (0,h.GK)(w,t.subtle,"verify");t.minRsaBits&&(0,h.or)(t.alg,x);let y=!1;try{y=await crypto.subtle.verify(t.signing,x,v,u)}catch(a){throw new e.h2(void 0,{cause:a})}if(!y)throw new e.h2;let z={payload:"string"==typeof r?(0,g.h2)(r,"payload",e.Ye):r};return void 0!==k&&(z.protectedHeader=n),void 0!==l&&(z.unprotectedHeader=l),s?[{...z,key:w},p]:[z,p]}async function k(a,b,c){if(a instanceof Uint8Array&&(a=f.D0.decode(a)),"string"!=typeof a)throw new e.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:g,2:h,length:k}=a.split(".");if(3!==k)throw new e.Ye("Invalid Compact JWS");return j({payload:g,protected:d,signature:h},b,c,i)}var l=c(17347);async function m(a,b,c){let[d,f]=await k(a,[c&&(0,g.Fw)("algorithms",c.algorithms),c?.crit],b);if(!f)throw new e.Dp("JWTs MUST NOT use unencoded payload");let h=(0,l.k6)(d.protectedHeader,d.payload,c);return{...d,payload:h}}},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30906:(a,b,c)=>{let d;c.d(b,{gR:()=>E,hT:()=>D,Pf:()=>C,GY:()=>B,sP:()=>F,Ir:()=>A,Mj:()=>z,iw:()=>x,EJ:()=>y,Ui:()=>I,Rj:()=>J,HO:()=>G,x8:()=>H});var e=c(77598),f=c.n(e),g=c(99129),h=c(64416),i=c(80700),j=c(38805);async function k(a,b,c){let d=a.get(b)||a.set(b,{}).get(b),{alg:e}=c;if(void 0===d[e]){let a=(0,h.xY)(c,b,!0).then(a=>{if("public"!==a.type)throw new g.Dm("JSON Web Key Set members must be public keys");return d[e]=a,a}).catch(b=>{throw d[e]===a&&delete d[e],b});d[e]=a}return d[e]}function l(a){let b;try{b=structuredClone(a)}catch(a){throw new g.Dm("JSON Web Key Set malformed",{cause:a})}if(!(0,j.fV)(b))throw new g.Dm("JSON Web Key Set malformed");let c=b.keys.map(a=>{let b=(0,h.ZZ)(a);return Array.isArray(b.key_ops)&&(b.key_ops=[...b.key_ops]),b}),d=new WeakMap;return Object.defineProperty(async(a,e)=>{let{alg:f,kid:h}={...a,...e?.header},j="string"==typeof f?i.p[f]:void 0;if(!j||j.secret)throw new g.T0('Unsupported "alg" value for a JSON Web Key Set');let l=b.keys.filter((a,b)=>(function(a,b,c,d){let{kty:e,key_ops:f,ext:g,kid:h,alg:i,use:j,crv:k}=a;return(void 0===g||"boolean"==typeof g)&&(void 0===f||Array.isArray(f)&&f.every((a,b)=>"string"==typeof a&&f.indexOf(a)===b)&&f.includes("verify"))&&b.kty.includes(e)&&(void 0===d||"string"==typeof d&&d===h)&&(void 0===i?"AKP"!==e:c===i)&&(void 0===j||"sig"===j)&&(!b.crv||k===b.crv)})(c[b],j,f,h)),{0:m,length:n}=l;if(!n)throw new g.BT;if(1!==n){let a=new g.$4;throw a[Symbol.asyncIterator]=async function*(){for(let a of l)try{yield await k(d,a,j)}catch{}},a}return k(d,m,j)},"jwks",{value:()=>structuredClone(b)})}(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(d="jose/v6.2.14");let m=Symbol();async function n(a,b,c,d=fetch){let e=await d(a,{method:"GET",signal:c,redirect:"manual",headers:b}).catch(a=>{throw"TimeoutError"===a.name?new g.xb(void 0,{cause:a}):a});if(200!==e.status)throw new g.i4("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await e.json()}catch(a){throw new g.i4("Failed to parse the JSON Web Key Set HTTP response as JSON",{cause:a})}}let o=Symbol();function p(a,b){return Number.isFinite(a)&&Date.now()<a+b}function q(a,b,c){if(Number.isNaN(a))throw TypeError(`"${c}" option must not be NaN`);return"number"==typeof a?a:b}var r=c(17509),s=c(89718);let t="openid profile email",u="Sign in with OIDC";function v(a){return(a||"").trim().replace(/\/+$/,"")}function w(a){return(a||t).trim()||t}function x(a){let b=process.env.BASE_URL||process.env.NEXT_PUBLIC_BASE_URL||"";if(b)return v(b);let c=a?.headers?.get?.("x-forwarded-proto")||"",d=a?.headers?.get?.("x-forwarded-host")||a?.headers?.get?.("host")||"";if(d){let b=(c||new URL(a.url).protocol||"http:").replace(/:$/,"");return`${b}://${d}`.replace(/\/+$/,"")}return v(new URL(a.url).origin)}function y(a){return!!(v(a?.oidcIssuerUrl)&&(a?.oidcClientId||"").trim()&&(a?.oidcClientSecret||"").trim())}async function z(){let a=await (0,s.mt)();return["oidc","both"].includes(a.authMode)&&y(a)?{issuerUrl:v(a.oidcIssuerUrl),clientId:a.oidcClientId.trim(),clientSecret:a.oidcClientSecret.trim(),scopes:w(a.oidcScopes),loginLabel:(a.oidcLoginLabel||u).trim()||u}:null}async function A(a){let b=`${v(a)}/.well-known/openid-configuration`,c=await fetch(b,{cache:"no-store"});if(!c.ok)throw Error(`Failed to load OIDC discovery document from ${b}`);return await c.json()}function B(){let a=f().randomBytes(32).toString("base64url"),b=f().createHash("sha256").update(a).digest("base64url");return{verifier:a,challenge:b}}function C(){return f().randomBytes(16).toString("base64url")}function D(){return f().randomBytes(16).toString("base64url")}function E({authorizationEndpoint:a,clientId:b,redirectUri:c,scopes:d=t,state:e,nonce:f,codeChallenge:g}){let h=new URL(a);return h.searchParams.set("response_type","code"),h.searchParams.set("client_id",b),h.searchParams.set("redirect_uri",c),h.searchParams.set("scope",w(d)),h.searchParams.set("state",e),h.searchParams.set("nonce",f),h.searchParams.set("code_challenge",g),h.searchParams.set("code_challenge_method","S256"),h.toString()}async function F({tokenEndpoint:a,clientId:b,clientSecret:c,code:d,redirectUri:e,codeVerifier:f}){let g=new URLSearchParams({grant_type:"authorization_code",client_id:b,code:d,redirect_uri:e,code_verifier:f});c&&g.set("client_secret",c);let h=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:g}),i=await h.json().catch(()=>({}));if(!h.ok)throw Error(i?.error_description||i?.error||`OIDC token exchange failed (${h.status})`);return i}async function G({tokenEndpoint:a,clientId:b,clientSecret:c,redirectUri:d}){if(!c)return{tested:!1,valid:null,message:"No client secret was provided, so secret validation was skipped."};let e=new URLSearchParams({grant_type:"authorization_code",client_id:b,client_secret:c,code:"__oidc_test_invalid_code__",redirect_uri:d,code_verifier:"__oidc_test_invalid_verifier__"}),f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e}),g=await f.json().catch(()=>({})),h=(g?.error||"").toLowerCase(),i=g?.error_description||g?.error||"";return f.ok?{tested:!0,valid:!0,message:"Client secret was accepted by the token endpoint.",raw:g}:"invalid_client"===h||"unauthorized_client"===h||/client.*(invalid|failed|mismatch)/i.test(i)?{tested:!0,valid:!1,message:i||"Client secret is not valid.",raw:g}:"invalid_grant"===h||"invalid_code"===h||/grant|code/i.test(i)?{tested:!0,valid:!0,message:"Client secret was accepted; the token exchange failed only because the test authorization code is invalid.",raw:g}:{tested:!0,valid:null,message:i||`Token endpoint responded with ${f.status}`,raw:g}}async function H({idToken:a,issuer:b,audience:c,jwksUri:e,nonce:f}){let h=function(a){if(!(a instanceof URL))throw TypeError("url must be an instance of URL");let b=new URL(a.href).href,c=(void 0)??{},e=c.timeoutDuration;if("number"==typeof e&&(!Number.isInteger(e)||e<0))throw TypeError('"timeoutDuration" option must be a non-negative integer');let f="number"==typeof e?e:5e3,h=q(c.cooldownDuration,3e4,"cooldownDuration"),i=q(c.cacheMaxAge,6e5,"cacheMaxAge"),k=new Headers(c.headers);d&&!k.has("User-Agent")&&k.set("User-Agent",d),k.has("accept")||k.set("accept","application/json, application/jwk-set+json");let r=c[m],s=c[o],t,u,v=0,w=0,x;if(s&&"object"==typeof s){let{uat:a,jwks:b}=s;p(a,i)&&(0,j.fV)(b)&&(t=a,x=l(b))}let y=async()=>{if(u&&("u">typeof WebSocketPair||"u">typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||"u">typeof EdgeRuntime&&"vercel"===EdgeRuntime)&&(u=void 0),!u){let a=++v,c=u=n(b,k,AbortSignal.timeout(f),r).then(b=>{let c=l(b);if(a<=w)return;x=c;let d=Date.now();s&&(s.uat=d,s.jwks=b),t=d,w=a}).finally(()=>{u===c&&(u=void 0)})}await u};return Object.defineProperties(async(a,b)=>{x&&p(t,i)||await y();try{return await x(a,b)}catch(c){if(c instanceof g.BT&&!p(t,h))return await y(),x(a,b);throw c}},{coolingDown:{get:()=>p(t,h),enumerable:!0},fresh:{get:()=>p(t,i),enumerable:!0},reload:{value:y,enumerable:!0},reloading:{get:()=>!!u,enumerable:!0},jwks:{value:()=>x?.jwks(),enumerable:!0}})}(new URL(e)),{payload:i}=await (0,r.V)(a,h,{issuer:b,audience:c,nonce:f});return i}function I(a={}){return a.preferred_username||a.email||a.name||a.given_name||a.sub||"OIDC user"}function J(a={}){return a.email||""}},33792:(a,b,c)=>{c.d(b,{Dc:()=>r,OZ:()=>u,YK:()=>p,dY:()=>s,nz:()=>v,tm:()=>t});var d=c(8292),e=c(17509),f=c(34013),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(77598),l=c.n(k),m=c(49120),n=c(89718);let o=new TextEncoder().encode(function(){if(process.env.JWT_SECRET)return process.env.JWT_SECRET;let a=j().join(m.n,"jwt-secret");try{return h().readFileSync(a,"utf8").trim()}catch{}h().mkdirSync(m.n,{recursive:!0});let b=l().randomBytes(32).toString("hex");return h().writeFileSync(a,b,{mode:384}),b}());function p(a){let b="true"===process.env.AUTH_COOKIE_SECURE,c=a?.headers?.get?.("x-forwarded-proto");return b||"https"===c}async function q(a={}){return new d.P({authenticated:!0,...a}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("24h").sign(o)}async function r(a){if(!a)return!1;try{return await (0,e.V)(a,o),!0}catch{return!1}}async function s(a){if(!a)return null;try{let{payload:b}=await (0,e.V)(a,o);return b}catch{return null}}async function t(a,b,c={}){let d=await q(c);a.set("auth_token",d,{httpOnly:!0,secure:p(b),sameSite:"lax",path:"/",maxAge:86400})}function u(a){a.delete("auth_token")}async function v(a){if("string"!=typeof a||!a)return!1;let b=await (0,n.mt)(),c=b?.password;return c?f.Ay.compare(a,c):a===(process.env.INITIAL_PASSWORD||"123456")}},33873:a=>{a.exports=require("path")},34932:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>i});var d=c(23211),e=c(65573),f=c(30906),g=c(33792);function h(a){a.delete("oidc_state"),a.delete("oidc_nonce"),a.delete("oidc_code_verifier")}async function i(a){let b=new URL(a.url),c=b.searchParams.get("error");if(c)return d.NextResponse.redirect(new URL(`/login?error=${encodeURIComponent(c)}`,(0,f.iw)(a)));let i=b.searchParams.get("code"),j=b.searchParams.get("state");if(!i||!j)return d.NextResponse.redirect(new URL("/login?error=oidc_missing_code",(0,f.iw)(a)));let k=await (0,e.UL)(),l=k.get("oidc_state")?.value,m=k.get("oidc_nonce")?.value,n=k.get("oidc_code_verifier")?.value;if(!l||!m||!n||l!==j)return h(k),d.NextResponse.redirect(new URL("/login?error=oidc_invalid_state",(0,f.iw)(a)));try{let b=await (0,f.Mj)();if(!b)return h(k),d.NextResponse.redirect(new URL("/login?error=oidc_not_configured",(0,f.iw)(a)));let c=await (0,f.Ir)(b.issuerUrl),e=c.issuer||b.issuerUrl,j=`${(0,f.iw)(a)}/api/auth/oidc/callback`,l=await (0,f.sP)({tokenEndpoint:c.token_endpoint,clientId:b.clientId,clientSecret:b.clientSecret,code:i,redirectUri:j,codeVerifier:n});if(!l.id_token)throw Error("OIDC provider did not return an id_token");let o=await (0,f.x8)({idToken:l.id_token,issuer:e,audience:b.clientId,jwksUri:c.jwks_uri,nonce:m});return h(k),await (0,g.tm)(k,a,{oidc:!0,oidcSub:o.sub||null,oidcEmail:(0,f.Rj)(o)||null,oidcName:(0,f.Ui)(o)}),d.NextResponse.redirect(new URL("/dashboard",(0,f.iw)(a)))}catch(b){return h(k),d.NextResponse.redirect(new URL(`/login?error=${encodeURIComponent(b.message||"oidc_callback_failed")}`,(0,f.iw)(a)))}}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{a.exports=require("sql.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},79868:a=>{a.exports=require("node:sqlite")},81787:a=>{a.exports=require("bun:sqlite")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,FS:()=>d.FS,Fh:()=>d.Fh,GT:()=>d.GT,Gb:()=>d.Gb,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Ln:()=>d.Ln,Mc:()=>d.Mc,My:()=>d.My,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,WG:()=>d.WG,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,Zd:()=>d.Zd,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fp:()=>d.fp,fv:()=>d.fv,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,js:()=>d.js,kj:()=>d.kj,mY:()=>d.mY,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,oN:()=>d.oN,op:()=>d.op,pE:()=>d.pE,r4:()=>d.r4,sA:()=>d.sA,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,y0:()=>d.y0,yF:()=>d.yF,yK:()=>d.yK,yg:()=>d.yg,yz:()=>d.yz,zI:()=>d.zI,zP:()=>d.zP,zz:()=>d.zz});var d=c(83192)},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,2391,8292,5573,9100],()=>b(b.s=463));module.exports=c})();
|
|
1
|
+
"use strict";(()=>{var a={};a.id=4674,a.ids=[4674],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},463:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/auth/oidc/callback/route",pathname:"/api/auth/oidc/callback",filename:"route",bundlePath:"app/api/auth/oidc/callback/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/keyzakyy/Projects/keyrouter/src/app/api/auth/oidc/callback/route.js",nextConfigOutput:"standalone",userland:()=>c(34932),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/auth/oidc/callback/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17509:(a,b,c)=>{c.d(b,{V:()=>m});var d=c(80700),e=c(99129),f=c(73575),g=c(38805),h=c(64416);function i(a){try{return(0,f.lF)(a)}catch(a){throw new e.Ye("JWS Compact Serialization payload must use only ASCII characters",{cause:a})}}async function j(a,b,c,i,j){let{protected:k,header:l,payload:m}=a,n=j??(void 0===k?{}:(0,g.OX)(k,e.Ye,"JWS Protected Header is invalid"));if(!(0,g.fz)(n,l))throw new e.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let o={...n,...l},p=(0,g.J0)(n,(0,g.nI)(e.Ye,g.qc,b[1],n,o)),{alg:q}=o;if("string"!=typeof q||!q)throw new e.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(b[0]&&!b[0].has(q))throw new e.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof m)throw new e.Ye("JWS Payload must be a string")}else if("string"!=typeof m&&!(m instanceof Uint8Array))throw new e.Ye("JWS Payload must be a string or an Uint8Array instance");let r=p||"string"!=typeof m?m:i(m),s=!1;"function"==typeof c&&(c=await c(n,a),s=!0);let t=(0,d.q)(q),u=(0,f.xW)(void 0!==k?(0,f.lF)(k):new Uint8Array,(0,f.lF)("."),"string"==typeof r?b[2]??=(0,g.MV)(r,"payload",e.Ye):r),v=(0,g.h2)(a.signature,"signature",e.Ye),w=await (0,h.dT)(t,c,"verify"),x=await (0,h.GK)(w,t.subtle,"verify");t.minRsaBits&&(0,h.or)(t.alg,x);let y=!1;try{y=await crypto.subtle.verify(t.signing,x,v,u)}catch(a){throw new e.h2(void 0,{cause:a})}if(!y)throw new e.h2;let z={payload:"string"==typeof r?(0,g.h2)(r,"payload",e.Ye):r};return void 0!==k&&(z.protectedHeader=n),void 0!==l&&(z.unprotectedHeader=l),s?[{...z,key:w},p]:[z,p]}async function k(a,b,c){if(a instanceof Uint8Array&&(a=f.D0.decode(a)),"string"!=typeof a)throw new e.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:g,2:h,length:k}=a.split(".");if(3!==k)throw new e.Ye("Invalid Compact JWS");return j({payload:g,protected:d,signature:h},b,c,i)}var l=c(17347);async function m(a,b,c){let[d,f]=await k(a,[c&&(0,g.Fw)("algorithms",c.algorithms),c?.crit],b);if(!f)throw new e.Dp("JWTs MUST NOT use unencoded payload");let h=(0,l.k6)(d.protectedHeader,d.payload,c);return{...d,payload:h}}},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30906:(a,b,c)=>{let d;c.d(b,{gR:()=>E,hT:()=>D,Pf:()=>C,GY:()=>B,sP:()=>F,Ir:()=>A,Mj:()=>z,iw:()=>x,EJ:()=>y,Ui:()=>I,Rj:()=>J,HO:()=>G,x8:()=>H});var e=c(77598),f=c.n(e),g=c(99129),h=c(64416),i=c(80700),j=c(38805);async function k(a,b,c){let d=a.get(b)||a.set(b,{}).get(b),{alg:e}=c;if(void 0===d[e]){let a=(0,h.xY)(c,b,!0).then(a=>{if("public"!==a.type)throw new g.Dm("JSON Web Key Set members must be public keys");return d[e]=a,a}).catch(b=>{throw d[e]===a&&delete d[e],b});d[e]=a}return d[e]}function l(a){let b;try{b=structuredClone(a)}catch(a){throw new g.Dm("JSON Web Key Set malformed",{cause:a})}if(!(0,j.fV)(b))throw new g.Dm("JSON Web Key Set malformed");let c=b.keys.map(a=>{let b=(0,h.ZZ)(a);return Array.isArray(b.key_ops)&&(b.key_ops=[...b.key_ops]),b}),d=new WeakMap;return Object.defineProperty(async(a,e)=>{let{alg:f,kid:h}={...a,...e?.header},j="string"==typeof f?i.p[f]:void 0;if(!j||j.secret)throw new g.T0('Unsupported "alg" value for a JSON Web Key Set');let l=b.keys.filter((a,b)=>(function(a,b,c,d){let{kty:e,key_ops:f,ext:g,kid:h,alg:i,use:j,crv:k}=a;return(void 0===g||"boolean"==typeof g)&&(void 0===f||Array.isArray(f)&&f.every((a,b)=>"string"==typeof a&&f.indexOf(a)===b)&&f.includes("verify"))&&b.kty.includes(e)&&(void 0===d||"string"==typeof d&&d===h)&&(void 0===i?"AKP"!==e:c===i)&&(void 0===j||"sig"===j)&&(!b.crv||k===b.crv)})(c[b],j,f,h)),{0:m,length:n}=l;if(!n)throw new g.BT;if(1!==n){let a=new g.$4;throw a[Symbol.asyncIterator]=async function*(){for(let a of l)try{yield await k(d,a,j)}catch{}},a}return k(d,m,j)},"jwks",{value:()=>structuredClone(b)})}(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(d="jose/v6.2.14");let m=Symbol();async function n(a,b,c,d=fetch){let e=await d(a,{method:"GET",signal:c,redirect:"manual",headers:b}).catch(a=>{throw"TimeoutError"===a.name?new g.xb(void 0,{cause:a}):a});if(200!==e.status)throw new g.i4("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await e.json()}catch(a){throw new g.i4("Failed to parse the JSON Web Key Set HTTP response as JSON",{cause:a})}}let o=Symbol();function p(a,b){return Number.isFinite(a)&&Date.now()<a+b}function q(a,b,c){if(Number.isNaN(a))throw TypeError(`"${c}" option must not be NaN`);return"number"==typeof a?a:b}var r=c(17509),s=c(89718);let t="openid profile email",u="Sign in with OIDC";function v(a){return(a||"").trim().replace(/\/+$/,"")}function w(a){return(a||t).trim()||t}function x(a){let b=process.env.BASE_URL||"http://localhost:20127";if(b)return v(b);let c=a?.headers?.get?.("x-forwarded-proto")||"",d=a?.headers?.get?.("x-forwarded-host")||a?.headers?.get?.("host")||"";if(d){let b=(c||new URL(a.url).protocol||"http:").replace(/:$/,"");return`${b}://${d}`.replace(/\/+$/,"")}return v(new URL(a.url).origin)}function y(a){return!!(v(a?.oidcIssuerUrl)&&(a?.oidcClientId||"").trim()&&(a?.oidcClientSecret||"").trim())}async function z(){let a=await (0,s.mt)();return["oidc","both"].includes(a.authMode)&&y(a)?{issuerUrl:v(a.oidcIssuerUrl),clientId:a.oidcClientId.trim(),clientSecret:a.oidcClientSecret.trim(),scopes:w(a.oidcScopes),loginLabel:(a.oidcLoginLabel||u).trim()||u}:null}async function A(a){let b=`${v(a)}/.well-known/openid-configuration`,c=await fetch(b,{cache:"no-store"});if(!c.ok)throw Error(`Failed to load OIDC discovery document from ${b}`);return await c.json()}function B(){let a=f().randomBytes(32).toString("base64url"),b=f().createHash("sha256").update(a).digest("base64url");return{verifier:a,challenge:b}}function C(){return f().randomBytes(16).toString("base64url")}function D(){return f().randomBytes(16).toString("base64url")}function E({authorizationEndpoint:a,clientId:b,redirectUri:c,scopes:d=t,state:e,nonce:f,codeChallenge:g}){let h=new URL(a);return h.searchParams.set("response_type","code"),h.searchParams.set("client_id",b),h.searchParams.set("redirect_uri",c),h.searchParams.set("scope",w(d)),h.searchParams.set("state",e),h.searchParams.set("nonce",f),h.searchParams.set("code_challenge",g),h.searchParams.set("code_challenge_method","S256"),h.toString()}async function F({tokenEndpoint:a,clientId:b,clientSecret:c,code:d,redirectUri:e,codeVerifier:f}){let g=new URLSearchParams({grant_type:"authorization_code",client_id:b,code:d,redirect_uri:e,code_verifier:f});c&&g.set("client_secret",c);let h=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:g}),i=await h.json().catch(()=>({}));if(!h.ok)throw Error(i?.error_description||i?.error||`OIDC token exchange failed (${h.status})`);return i}async function G({tokenEndpoint:a,clientId:b,clientSecret:c,redirectUri:d}){if(!c)return{tested:!1,valid:null,message:"No client secret was provided, so secret validation was skipped."};let e=new URLSearchParams({grant_type:"authorization_code",client_id:b,client_secret:c,code:"__oidc_test_invalid_code__",redirect_uri:d,code_verifier:"__oidc_test_invalid_verifier__"}),f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e}),g=await f.json().catch(()=>({})),h=(g?.error||"").toLowerCase(),i=g?.error_description||g?.error||"";return f.ok?{tested:!0,valid:!0,message:"Client secret was accepted by the token endpoint.",raw:g}:"invalid_client"===h||"unauthorized_client"===h||/client.*(invalid|failed|mismatch)/i.test(i)?{tested:!0,valid:!1,message:i||"Client secret is not valid.",raw:g}:"invalid_grant"===h||"invalid_code"===h||/grant|code/i.test(i)?{tested:!0,valid:!0,message:"Client secret was accepted; the token exchange failed only because the test authorization code is invalid.",raw:g}:{tested:!0,valid:null,message:i||`Token endpoint responded with ${f.status}`,raw:g}}async function H({idToken:a,issuer:b,audience:c,jwksUri:e,nonce:f}){let h=function(a){if(!(a instanceof URL))throw TypeError("url must be an instance of URL");let b=new URL(a.href).href,c=(void 0)??{},e=c.timeoutDuration;if("number"==typeof e&&(!Number.isInteger(e)||e<0))throw TypeError('"timeoutDuration" option must be a non-negative integer');let f="number"==typeof e?e:5e3,h=q(c.cooldownDuration,3e4,"cooldownDuration"),i=q(c.cacheMaxAge,6e5,"cacheMaxAge"),k=new Headers(c.headers);d&&!k.has("User-Agent")&&k.set("User-Agent",d),k.has("accept")||k.set("accept","application/json, application/jwk-set+json");let r=c[m],s=c[o],t,u,v=0,w=0,x;if(s&&"object"==typeof s){let{uat:a,jwks:b}=s;p(a,i)&&(0,j.fV)(b)&&(t=a,x=l(b))}let y=async()=>{if(u&&("u">typeof WebSocketPair||"u">typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||"u">typeof EdgeRuntime&&"vercel"===EdgeRuntime)&&(u=void 0),!u){let a=++v,c=u=n(b,k,AbortSignal.timeout(f),r).then(b=>{let c=l(b);if(a<=w)return;x=c;let d=Date.now();s&&(s.uat=d,s.jwks=b),t=d,w=a}).finally(()=>{u===c&&(u=void 0)})}await u};return Object.defineProperties(async(a,b)=>{x&&p(t,i)||await y();try{return await x(a,b)}catch(c){if(c instanceof g.BT&&!p(t,h))return await y(),x(a,b);throw c}},{coolingDown:{get:()=>p(t,h),enumerable:!0},fresh:{get:()=>p(t,i),enumerable:!0},reload:{value:y,enumerable:!0},reloading:{get:()=>!!u,enumerable:!0},jwks:{value:()=>x?.jwks(),enumerable:!0}})}(new URL(e)),{payload:i}=await (0,r.V)(a,h,{issuer:b,audience:c,nonce:f});return i}function I(a={}){return a.preferred_username||a.email||a.name||a.given_name||a.sub||"OIDC user"}function J(a={}){return a.email||""}},33792:(a,b,c)=>{c.d(b,{Dc:()=>r,OZ:()=>u,YK:()=>p,dY:()=>s,nz:()=>v,tm:()=>t});var d=c(8292),e=c(17509),f=c(34013),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(77598),l=c.n(k),m=c(49120),n=c(89718);let o=new TextEncoder().encode(function(){if(process.env.JWT_SECRET)return process.env.JWT_SECRET;let a=j().join(m.n,"jwt-secret");try{return h().readFileSync(a,"utf8").trim()}catch{}h().mkdirSync(m.n,{recursive:!0});let b=l().randomBytes(32).toString("hex");return h().writeFileSync(a,b,{mode:384}),b}());function p(a){let b="true"===process.env.AUTH_COOKIE_SECURE,c=a?.headers?.get?.("x-forwarded-proto");return b||"https"===c}async function q(a={}){return new d.P({authenticated:!0,...a}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("24h").sign(o)}async function r(a){if(!a)return!1;try{return await (0,e.V)(a,o),!0}catch{return!1}}async function s(a){if(!a)return null;try{let{payload:b}=await (0,e.V)(a,o);return b}catch{return null}}async function t(a,b,c={}){let d=await q(c);a.set("auth_token",d,{httpOnly:!0,secure:p(b),sameSite:"lax",path:"/",maxAge:86400})}function u(a){a.delete("auth_token")}async function v(a){if("string"!=typeof a||!a)return!1;let b=await (0,n.mt)(),c=b?.password;return c?f.Ay.compare(a,c):a===(process.env.INITIAL_PASSWORD||"123456")}},33873:a=>{a.exports=require("path")},34932:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>i});var d=c(23211),e=c(65573),f=c(30906),g=c(33792);function h(a){a.delete("oidc_state"),a.delete("oidc_nonce"),a.delete("oidc_code_verifier")}async function i(a){let b=new URL(a.url),c=b.searchParams.get("error");if(c)return d.NextResponse.redirect(new URL(`/login?error=${encodeURIComponent(c)}`,(0,f.iw)(a)));let i=b.searchParams.get("code"),j=b.searchParams.get("state");if(!i||!j)return d.NextResponse.redirect(new URL("/login?error=oidc_missing_code",(0,f.iw)(a)));let k=await (0,e.UL)(),l=k.get("oidc_state")?.value,m=k.get("oidc_nonce")?.value,n=k.get("oidc_code_verifier")?.value;if(!l||!m||!n||l!==j)return h(k),d.NextResponse.redirect(new URL("/login?error=oidc_invalid_state",(0,f.iw)(a)));try{let b=await (0,f.Mj)();if(!b)return h(k),d.NextResponse.redirect(new URL("/login?error=oidc_not_configured",(0,f.iw)(a)));let c=await (0,f.Ir)(b.issuerUrl),e=c.issuer||b.issuerUrl,j=`${(0,f.iw)(a)}/api/auth/oidc/callback`,l=await (0,f.sP)({tokenEndpoint:c.token_endpoint,clientId:b.clientId,clientSecret:b.clientSecret,code:i,redirectUri:j,codeVerifier:n});if(!l.id_token)throw Error("OIDC provider did not return an id_token");let o=await (0,f.x8)({idToken:l.id_token,issuer:e,audience:b.clientId,jwksUri:c.jwks_uri,nonce:m});return h(k),await (0,g.tm)(k,a,{oidc:!0,oidcSub:o.sub||null,oidcEmail:(0,f.Rj)(o)||null,oidcName:(0,f.Ui)(o)}),d.NextResponse.redirect(new URL("/dashboard",(0,f.iw)(a)))}catch(b){return h(k),d.NextResponse.redirect(new URL(`/login?error=${encodeURIComponent(b.message||"oidc_callback_failed")}`,(0,f.iw)(a)))}}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{a.exports=require("sql.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},79868:a=>{a.exports=require("node:sqlite")},81787:a=>{a.exports=require("bun:sqlite")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,FS:()=>d.FS,Fh:()=>d.Fh,GT:()=>d.GT,Gb:()=>d.Gb,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Ln:()=>d.Ln,Mc:()=>d.Mc,My:()=>d.My,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,WG:()=>d.WG,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,Zd:()=>d.Zd,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fp:()=>d.fp,fv:()=>d.fv,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,js:()=>d.js,kj:()=>d.kj,mY:()=>d.mY,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,oN:()=>d.oN,op:()=>d.op,pE:()=>d.pE,r4:()=>d.r4,sA:()=>d.sA,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,y0:()=>d.y0,yF:()=>d.yF,yK:()=>d.yK,yg:()=>d.yg,yz:()=>d.yz,zI:()=>d.zI,zP:()=>d.zP,zz:()=>d.zz});var d=c(83192)},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,2391,8292,5573,9100],()=>b(b.s=463));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=9709,a.ids=[9709],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17509:(a,b,c)=>{c.d(b,{V:()=>m});var d=c(80700),e=c(99129),f=c(73575),g=c(38805),h=c(64416);function i(a){try{return(0,f.lF)(a)}catch(a){throw new e.Ye("JWS Compact Serialization payload must use only ASCII characters",{cause:a})}}async function j(a,b,c,i,j){let{protected:k,header:l,payload:m}=a,n=j??(void 0===k?{}:(0,g.OX)(k,e.Ye,"JWS Protected Header is invalid"));if(!(0,g.fz)(n,l))throw new e.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let o={...n,...l},p=(0,g.J0)(n,(0,g.nI)(e.Ye,g.qc,b[1],n,o)),{alg:q}=o;if("string"!=typeof q||!q)throw new e.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(b[0]&&!b[0].has(q))throw new e.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof m)throw new e.Ye("JWS Payload must be a string")}else if("string"!=typeof m&&!(m instanceof Uint8Array))throw new e.Ye("JWS Payload must be a string or an Uint8Array instance");let r=p||"string"!=typeof m?m:i(m),s=!1;"function"==typeof c&&(c=await c(n,a),s=!0);let t=(0,d.q)(q),u=(0,f.xW)(void 0!==k?(0,f.lF)(k):new Uint8Array,(0,f.lF)("."),"string"==typeof r?b[2]??=(0,g.MV)(r,"payload",e.Ye):r),v=(0,g.h2)(a.signature,"signature",e.Ye),w=await (0,h.dT)(t,c,"verify"),x=await (0,h.GK)(w,t.subtle,"verify");t.minRsaBits&&(0,h.or)(t.alg,x);let y=!1;try{y=await crypto.subtle.verify(t.signing,x,v,u)}catch(a){throw new e.h2(void 0,{cause:a})}if(!y)throw new e.h2;let z={payload:"string"==typeof r?(0,g.h2)(r,"payload",e.Ye):r};return void 0!==k&&(z.protectedHeader=n),void 0!==l&&(z.unprotectedHeader=l),s?[{...z,key:w},p]:[z,p]}async function k(a,b,c){if(a instanceof Uint8Array&&(a=f.D0.decode(a)),"string"!=typeof a)throw new e.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:g,2:h,length:k}=a.split(".");if(3!==k)throw new e.Ye("Invalid Compact JWS");return j({payload:g,protected:d,signature:h},b,c,i)}var l=c(17347);async function m(a,b,c){let[d,f]=await k(a,[c&&(0,g.Fw)("algorithms",c.algorithms),c?.crit],b);if(!f)throw new e.Dp("JWTs MUST NOT use unencoded payload");let h=(0,l.k6)(d.protectedHeader,d.payload,c);return{...d,payload:h}}},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},24503:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>h});var d=c(23211),e=c(65573),f=c(30906),g=c(33792);async function h(a){try{let b=await (0,f.Mj)();if(!b)return d.NextResponse.redirect(new URL("/login?error=oidc_not_configured",(0,f.iw)(a)));let c=await (0,f.Ir)(b.issuerUrl),h=(0,f.Pf)(),i=(0,f.hT)(),{verifier:j,challenge:k}=(0,f.GY)(),l=`${(0,f.iw)(a)}/api/auth/oidc/callback`,m=(0,f.gR)({authorizationEndpoint:c.authorization_endpoint,clientId:b.clientId,redirectUri:l,scopes:b.scopes,state:h,nonce:i,codeChallenge:k}),n=await (0,e.UL)(),o={httpOnly:!0,secure:(0,g.YK)(a),sameSite:"lax",path:"/",maxAge:600};return n.set("oidc_state",h,o),n.set("oidc_nonce",i,o),n.set("oidc_code_verifier",j,o),d.NextResponse.redirect(m)}catch(b){return d.NextResponse.redirect(new URL(`/login?error=${encodeURIComponent(b.message||"oidc_start_failed")}`,(0,f.iw)(a)))}}},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30906:(a,b,c)=>{let d;c.d(b,{gR:()=>E,hT:()=>D,Pf:()=>C,GY:()=>B,sP:()=>F,Ir:()=>A,Mj:()=>z,iw:()=>x,EJ:()=>y,Ui:()=>I,Rj:()=>J,HO:()=>G,x8:()=>H});var e=c(77598),f=c.n(e),g=c(99129),h=c(64416),i=c(80700),j=c(38805);async function k(a,b,c){let d=a.get(b)||a.set(b,{}).get(b),{alg:e}=c;if(void 0===d[e]){let a=(0,h.xY)(c,b,!0).then(a=>{if("public"!==a.type)throw new g.Dm("JSON Web Key Set members must be public keys");return d[e]=a,a}).catch(b=>{throw d[e]===a&&delete d[e],b});d[e]=a}return d[e]}function l(a){let b;try{b=structuredClone(a)}catch(a){throw new g.Dm("JSON Web Key Set malformed",{cause:a})}if(!(0,j.fV)(b))throw new g.Dm("JSON Web Key Set malformed");let c=b.keys.map(a=>{let b=(0,h.ZZ)(a);return Array.isArray(b.key_ops)&&(b.key_ops=[...b.key_ops]),b}),d=new WeakMap;return Object.defineProperty(async(a,e)=>{let{alg:f,kid:h}={...a,...e?.header},j="string"==typeof f?i.p[f]:void 0;if(!j||j.secret)throw new g.T0('Unsupported "alg" value for a JSON Web Key Set');let l=b.keys.filter((a,b)=>(function(a,b,c,d){let{kty:e,key_ops:f,ext:g,kid:h,alg:i,use:j,crv:k}=a;return(void 0===g||"boolean"==typeof g)&&(void 0===f||Array.isArray(f)&&f.every((a,b)=>"string"==typeof a&&f.indexOf(a)===b)&&f.includes("verify"))&&b.kty.includes(e)&&(void 0===d||"string"==typeof d&&d===h)&&(void 0===i?"AKP"!==e:c===i)&&(void 0===j||"sig"===j)&&(!b.crv||k===b.crv)})(c[b],j,f,h)),{0:m,length:n}=l;if(!n)throw new g.BT;if(1!==n){let a=new g.$4;throw a[Symbol.asyncIterator]=async function*(){for(let a of l)try{yield await k(d,a,j)}catch{}},a}return k(d,m,j)},"jwks",{value:()=>structuredClone(b)})}(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(d="jose/v6.2.14");let m=Symbol();async function n(a,b,c,d=fetch){let e=await d(a,{method:"GET",signal:c,redirect:"manual",headers:b}).catch(a=>{throw"TimeoutError"===a.name?new g.xb(void 0,{cause:a}):a});if(200!==e.status)throw new g.i4("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await e.json()}catch(a){throw new g.i4("Failed to parse the JSON Web Key Set HTTP response as JSON",{cause:a})}}let o=Symbol();function p(a,b){return Number.isFinite(a)&&Date.now()<a+b}function q(a,b,c){if(Number.isNaN(a))throw TypeError(`"${c}" option must not be NaN`);return"number"==typeof a?a:b}var r=c(17509),s=c(89718);let t="openid profile email",u="Sign in with OIDC";function v(a){return(a||"").trim().replace(/\/+$/,"")}function w(a){return(a||t).trim()||t}function x(a){let b=process.env.BASE_URL||process.env.NEXT_PUBLIC_BASE_URL||"";if(b)return v(b);let c=a?.headers?.get?.("x-forwarded-proto")||"",d=a?.headers?.get?.("x-forwarded-host")||a?.headers?.get?.("host")||"";if(d){let b=(c||new URL(a.url).protocol||"http:").replace(/:$/,"");return`${b}://${d}`.replace(/\/+$/,"")}return v(new URL(a.url).origin)}function y(a){return!!(v(a?.oidcIssuerUrl)&&(a?.oidcClientId||"").trim()&&(a?.oidcClientSecret||"").trim())}async function z(){let a=await (0,s.mt)();return["oidc","both"].includes(a.authMode)&&y(a)?{issuerUrl:v(a.oidcIssuerUrl),clientId:a.oidcClientId.trim(),clientSecret:a.oidcClientSecret.trim(),scopes:w(a.oidcScopes),loginLabel:(a.oidcLoginLabel||u).trim()||u}:null}async function A(a){let b=`${v(a)}/.well-known/openid-configuration`,c=await fetch(b,{cache:"no-store"});if(!c.ok)throw Error(`Failed to load OIDC discovery document from ${b}`);return await c.json()}function B(){let a=f().randomBytes(32).toString("base64url"),b=f().createHash("sha256").update(a).digest("base64url");return{verifier:a,challenge:b}}function C(){return f().randomBytes(16).toString("base64url")}function D(){return f().randomBytes(16).toString("base64url")}function E({authorizationEndpoint:a,clientId:b,redirectUri:c,scopes:d=t,state:e,nonce:f,codeChallenge:g}){let h=new URL(a);return h.searchParams.set("response_type","code"),h.searchParams.set("client_id",b),h.searchParams.set("redirect_uri",c),h.searchParams.set("scope",w(d)),h.searchParams.set("state",e),h.searchParams.set("nonce",f),h.searchParams.set("code_challenge",g),h.searchParams.set("code_challenge_method","S256"),h.toString()}async function F({tokenEndpoint:a,clientId:b,clientSecret:c,code:d,redirectUri:e,codeVerifier:f}){let g=new URLSearchParams({grant_type:"authorization_code",client_id:b,code:d,redirect_uri:e,code_verifier:f});c&&g.set("client_secret",c);let h=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:g}),i=await h.json().catch(()=>({}));if(!h.ok)throw Error(i?.error_description||i?.error||`OIDC token exchange failed (${h.status})`);return i}async function G({tokenEndpoint:a,clientId:b,clientSecret:c,redirectUri:d}){if(!c)return{tested:!1,valid:null,message:"No client secret was provided, so secret validation was skipped."};let e=new URLSearchParams({grant_type:"authorization_code",client_id:b,client_secret:c,code:"__oidc_test_invalid_code__",redirect_uri:d,code_verifier:"__oidc_test_invalid_verifier__"}),f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e}),g=await f.json().catch(()=>({})),h=(g?.error||"").toLowerCase(),i=g?.error_description||g?.error||"";return f.ok?{tested:!0,valid:!0,message:"Client secret was accepted by the token endpoint.",raw:g}:"invalid_client"===h||"unauthorized_client"===h||/client.*(invalid|failed|mismatch)/i.test(i)?{tested:!0,valid:!1,message:i||"Client secret is not valid.",raw:g}:"invalid_grant"===h||"invalid_code"===h||/grant|code/i.test(i)?{tested:!0,valid:!0,message:"Client secret was accepted; the token exchange failed only because the test authorization code is invalid.",raw:g}:{tested:!0,valid:null,message:i||`Token endpoint responded with ${f.status}`,raw:g}}async function H({idToken:a,issuer:b,audience:c,jwksUri:e,nonce:f}){let h=function(a){if(!(a instanceof URL))throw TypeError("url must be an instance of URL");let b=new URL(a.href).href,c=(void 0)??{},e=c.timeoutDuration;if("number"==typeof e&&(!Number.isInteger(e)||e<0))throw TypeError('"timeoutDuration" option must be a non-negative integer');let f="number"==typeof e?e:5e3,h=q(c.cooldownDuration,3e4,"cooldownDuration"),i=q(c.cacheMaxAge,6e5,"cacheMaxAge"),k=new Headers(c.headers);d&&!k.has("User-Agent")&&k.set("User-Agent",d),k.has("accept")||k.set("accept","application/json, application/jwk-set+json");let r=c[m],s=c[o],t,u,v=0,w=0,x;if(s&&"object"==typeof s){let{uat:a,jwks:b}=s;p(a,i)&&(0,j.fV)(b)&&(t=a,x=l(b))}let y=async()=>{if(u&&("u">typeof WebSocketPair||"u">typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||"u">typeof EdgeRuntime&&"vercel"===EdgeRuntime)&&(u=void 0),!u){let a=++v,c=u=n(b,k,AbortSignal.timeout(f),r).then(b=>{let c=l(b);if(a<=w)return;x=c;let d=Date.now();s&&(s.uat=d,s.jwks=b),t=d,w=a}).finally(()=>{u===c&&(u=void 0)})}await u};return Object.defineProperties(async(a,b)=>{x&&p(t,i)||await y();try{return await x(a,b)}catch(c){if(c instanceof g.BT&&!p(t,h))return await y(),x(a,b);throw c}},{coolingDown:{get:()=>p(t,h),enumerable:!0},fresh:{get:()=>p(t,i),enumerable:!0},reload:{value:y,enumerable:!0},reloading:{get:()=>!!u,enumerable:!0},jwks:{value:()=>x?.jwks(),enumerable:!0}})}(new URL(e)),{payload:i}=await (0,r.V)(a,h,{issuer:b,audience:c,nonce:f});return i}function I(a={}){return a.preferred_username||a.email||a.name||a.given_name||a.sub||"OIDC user"}function J(a={}){return a.email||""}},33792:(a,b,c)=>{c.d(b,{Dc:()=>r,OZ:()=>u,YK:()=>p,dY:()=>s,nz:()=>v,tm:()=>t});var d=c(8292),e=c(17509),f=c(34013),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(77598),l=c.n(k),m=c(49120),n=c(89718);let o=new TextEncoder().encode(function(){if(process.env.JWT_SECRET)return process.env.JWT_SECRET;let a=j().join(m.n,"jwt-secret");try{return h().readFileSync(a,"utf8").trim()}catch{}h().mkdirSync(m.n,{recursive:!0});let b=l().randomBytes(32).toString("hex");return h().writeFileSync(a,b,{mode:384}),b}());function p(a){let b="true"===process.env.AUTH_COOKIE_SECURE,c=a?.headers?.get?.("x-forwarded-proto");return b||"https"===c}async function q(a={}){return new d.P({authenticated:!0,...a}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("24h").sign(o)}async function r(a){if(!a)return!1;try{return await (0,e.V)(a,o),!0}catch{return!1}}async function s(a){if(!a)return null;try{let{payload:b}=await (0,e.V)(a,o);return b}catch{return null}}async function t(a,b,c={}){let d=await q(c);a.set("auth_token",d,{httpOnly:!0,secure:p(b),sameSite:"lax",path:"/",maxAge:86400})}function u(a){a.delete("auth_token")}async function v(a){if("string"!=typeof a||!a)return!1;let b=await (0,n.mt)(),c=b?.password;return c?f.Ay.compare(a,c):a===(process.env.INITIAL_PASSWORD||"123456")}},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{a.exports=require("sql.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},79868:a=>{a.exports=require("node:sqlite")},81787:a=>{a.exports=require("bun:sqlite")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87245:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/auth/oidc/start/route",pathname:"/api/auth/oidc/start",filename:"route",bundlePath:"app/api/auth/oidc/start/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/keyzakyy/Projects/keyrouter/src/app/api/auth/oidc/start/route.js",nextConfigOutput:"standalone",userland:()=>c(24503),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/auth/oidc/start/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}},87550:a=>{a.exports=require("better-sqlite3")},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,FS:()=>d.FS,Fh:()=>d.Fh,GT:()=>d.GT,Gb:()=>d.Gb,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Ln:()=>d.Ln,Mc:()=>d.Mc,My:()=>d.My,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,WG:()=>d.WG,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,Zd:()=>d.Zd,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fp:()=>d.fp,fv:()=>d.fv,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,js:()=>d.js,kj:()=>d.kj,mY:()=>d.mY,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,oN:()=>d.oN,op:()=>d.op,pE:()=>d.pE,r4:()=>d.r4,sA:()=>d.sA,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,y0:()=>d.y0,yF:()=>d.yF,yK:()=>d.yK,yg:()=>d.yg,yz:()=>d.yz,zI:()=>d.zI,zP:()=>d.zP,zz:()=>d.zz});var d=c(83192)},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,2391,8292,5573,9100],()=>b(b.s=87245));module.exports=c})();
|
|
1
|
+
"use strict";(()=>{var a={};a.id=9709,a.ids=[9709],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17509:(a,b,c)=>{c.d(b,{V:()=>m});var d=c(80700),e=c(99129),f=c(73575),g=c(38805),h=c(64416);function i(a){try{return(0,f.lF)(a)}catch(a){throw new e.Ye("JWS Compact Serialization payload must use only ASCII characters",{cause:a})}}async function j(a,b,c,i,j){let{protected:k,header:l,payload:m}=a,n=j??(void 0===k?{}:(0,g.OX)(k,e.Ye,"JWS Protected Header is invalid"));if(!(0,g.fz)(n,l))throw new e.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let o={...n,...l},p=(0,g.J0)(n,(0,g.nI)(e.Ye,g.qc,b[1],n,o)),{alg:q}=o;if("string"!=typeof q||!q)throw new e.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(b[0]&&!b[0].has(q))throw new e.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof m)throw new e.Ye("JWS Payload must be a string")}else if("string"!=typeof m&&!(m instanceof Uint8Array))throw new e.Ye("JWS Payload must be a string or an Uint8Array instance");let r=p||"string"!=typeof m?m:i(m),s=!1;"function"==typeof c&&(c=await c(n,a),s=!0);let t=(0,d.q)(q),u=(0,f.xW)(void 0!==k?(0,f.lF)(k):new Uint8Array,(0,f.lF)("."),"string"==typeof r?b[2]??=(0,g.MV)(r,"payload",e.Ye):r),v=(0,g.h2)(a.signature,"signature",e.Ye),w=await (0,h.dT)(t,c,"verify"),x=await (0,h.GK)(w,t.subtle,"verify");t.minRsaBits&&(0,h.or)(t.alg,x);let y=!1;try{y=await crypto.subtle.verify(t.signing,x,v,u)}catch(a){throw new e.h2(void 0,{cause:a})}if(!y)throw new e.h2;let z={payload:"string"==typeof r?(0,g.h2)(r,"payload",e.Ye):r};return void 0!==k&&(z.protectedHeader=n),void 0!==l&&(z.unprotectedHeader=l),s?[{...z,key:w},p]:[z,p]}async function k(a,b,c){if(a instanceof Uint8Array&&(a=f.D0.decode(a)),"string"!=typeof a)throw new e.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:g,2:h,length:k}=a.split(".");if(3!==k)throw new e.Ye("Invalid Compact JWS");return j({payload:g,protected:d,signature:h},b,c,i)}var l=c(17347);async function m(a,b,c){let[d,f]=await k(a,[c&&(0,g.Fw)("algorithms",c.algorithms),c?.crit],b);if(!f)throw new e.Dp("JWTs MUST NOT use unencoded payload");let h=(0,l.k6)(d.protectedHeader,d.payload,c);return{...d,payload:h}}},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},24503:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>h});var d=c(23211),e=c(65573),f=c(30906),g=c(33792);async function h(a){try{let b=await (0,f.Mj)();if(!b)return d.NextResponse.redirect(new URL("/login?error=oidc_not_configured",(0,f.iw)(a)));let c=await (0,f.Ir)(b.issuerUrl),h=(0,f.Pf)(),i=(0,f.hT)(),{verifier:j,challenge:k}=(0,f.GY)(),l=`${(0,f.iw)(a)}/api/auth/oidc/callback`,m=(0,f.gR)({authorizationEndpoint:c.authorization_endpoint,clientId:b.clientId,redirectUri:l,scopes:b.scopes,state:h,nonce:i,codeChallenge:k}),n=await (0,e.UL)(),o={httpOnly:!0,secure:(0,g.YK)(a),sameSite:"lax",path:"/",maxAge:600};return n.set("oidc_state",h,o),n.set("oidc_nonce",i,o),n.set("oidc_code_verifier",j,o),d.NextResponse.redirect(m)}catch(b){return d.NextResponse.redirect(new URL(`/login?error=${encodeURIComponent(b.message||"oidc_start_failed")}`,(0,f.iw)(a)))}}},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30906:(a,b,c)=>{let d;c.d(b,{gR:()=>E,hT:()=>D,Pf:()=>C,GY:()=>B,sP:()=>F,Ir:()=>A,Mj:()=>z,iw:()=>x,EJ:()=>y,Ui:()=>I,Rj:()=>J,HO:()=>G,x8:()=>H});var e=c(77598),f=c.n(e),g=c(99129),h=c(64416),i=c(80700),j=c(38805);async function k(a,b,c){let d=a.get(b)||a.set(b,{}).get(b),{alg:e}=c;if(void 0===d[e]){let a=(0,h.xY)(c,b,!0).then(a=>{if("public"!==a.type)throw new g.Dm("JSON Web Key Set members must be public keys");return d[e]=a,a}).catch(b=>{throw d[e]===a&&delete d[e],b});d[e]=a}return d[e]}function l(a){let b;try{b=structuredClone(a)}catch(a){throw new g.Dm("JSON Web Key Set malformed",{cause:a})}if(!(0,j.fV)(b))throw new g.Dm("JSON Web Key Set malformed");let c=b.keys.map(a=>{let b=(0,h.ZZ)(a);return Array.isArray(b.key_ops)&&(b.key_ops=[...b.key_ops]),b}),d=new WeakMap;return Object.defineProperty(async(a,e)=>{let{alg:f,kid:h}={...a,...e?.header},j="string"==typeof f?i.p[f]:void 0;if(!j||j.secret)throw new g.T0('Unsupported "alg" value for a JSON Web Key Set');let l=b.keys.filter((a,b)=>(function(a,b,c,d){let{kty:e,key_ops:f,ext:g,kid:h,alg:i,use:j,crv:k}=a;return(void 0===g||"boolean"==typeof g)&&(void 0===f||Array.isArray(f)&&f.every((a,b)=>"string"==typeof a&&f.indexOf(a)===b)&&f.includes("verify"))&&b.kty.includes(e)&&(void 0===d||"string"==typeof d&&d===h)&&(void 0===i?"AKP"!==e:c===i)&&(void 0===j||"sig"===j)&&(!b.crv||k===b.crv)})(c[b],j,f,h)),{0:m,length:n}=l;if(!n)throw new g.BT;if(1!==n){let a=new g.$4;throw a[Symbol.asyncIterator]=async function*(){for(let a of l)try{yield await k(d,a,j)}catch{}},a}return k(d,m,j)},"jwks",{value:()=>structuredClone(b)})}(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(d="jose/v6.2.14");let m=Symbol();async function n(a,b,c,d=fetch){let e=await d(a,{method:"GET",signal:c,redirect:"manual",headers:b}).catch(a=>{throw"TimeoutError"===a.name?new g.xb(void 0,{cause:a}):a});if(200!==e.status)throw new g.i4("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await e.json()}catch(a){throw new g.i4("Failed to parse the JSON Web Key Set HTTP response as JSON",{cause:a})}}let o=Symbol();function p(a,b){return Number.isFinite(a)&&Date.now()<a+b}function q(a,b,c){if(Number.isNaN(a))throw TypeError(`"${c}" option must not be NaN`);return"number"==typeof a?a:b}var r=c(17509),s=c(89718);let t="openid profile email",u="Sign in with OIDC";function v(a){return(a||"").trim().replace(/\/+$/,"")}function w(a){return(a||t).trim()||t}function x(a){let b=process.env.BASE_URL||"http://localhost:20127";if(b)return v(b);let c=a?.headers?.get?.("x-forwarded-proto")||"",d=a?.headers?.get?.("x-forwarded-host")||a?.headers?.get?.("host")||"";if(d){let b=(c||new URL(a.url).protocol||"http:").replace(/:$/,"");return`${b}://${d}`.replace(/\/+$/,"")}return v(new URL(a.url).origin)}function y(a){return!!(v(a?.oidcIssuerUrl)&&(a?.oidcClientId||"").trim()&&(a?.oidcClientSecret||"").trim())}async function z(){let a=await (0,s.mt)();return["oidc","both"].includes(a.authMode)&&y(a)?{issuerUrl:v(a.oidcIssuerUrl),clientId:a.oidcClientId.trim(),clientSecret:a.oidcClientSecret.trim(),scopes:w(a.oidcScopes),loginLabel:(a.oidcLoginLabel||u).trim()||u}:null}async function A(a){let b=`${v(a)}/.well-known/openid-configuration`,c=await fetch(b,{cache:"no-store"});if(!c.ok)throw Error(`Failed to load OIDC discovery document from ${b}`);return await c.json()}function B(){let a=f().randomBytes(32).toString("base64url"),b=f().createHash("sha256").update(a).digest("base64url");return{verifier:a,challenge:b}}function C(){return f().randomBytes(16).toString("base64url")}function D(){return f().randomBytes(16).toString("base64url")}function E({authorizationEndpoint:a,clientId:b,redirectUri:c,scopes:d=t,state:e,nonce:f,codeChallenge:g}){let h=new URL(a);return h.searchParams.set("response_type","code"),h.searchParams.set("client_id",b),h.searchParams.set("redirect_uri",c),h.searchParams.set("scope",w(d)),h.searchParams.set("state",e),h.searchParams.set("nonce",f),h.searchParams.set("code_challenge",g),h.searchParams.set("code_challenge_method","S256"),h.toString()}async function F({tokenEndpoint:a,clientId:b,clientSecret:c,code:d,redirectUri:e,codeVerifier:f}){let g=new URLSearchParams({grant_type:"authorization_code",client_id:b,code:d,redirect_uri:e,code_verifier:f});c&&g.set("client_secret",c);let h=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:g}),i=await h.json().catch(()=>({}));if(!h.ok)throw Error(i?.error_description||i?.error||`OIDC token exchange failed (${h.status})`);return i}async function G({tokenEndpoint:a,clientId:b,clientSecret:c,redirectUri:d}){if(!c)return{tested:!1,valid:null,message:"No client secret was provided, so secret validation was skipped."};let e=new URLSearchParams({grant_type:"authorization_code",client_id:b,client_secret:c,code:"__oidc_test_invalid_code__",redirect_uri:d,code_verifier:"__oidc_test_invalid_verifier__"}),f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e}),g=await f.json().catch(()=>({})),h=(g?.error||"").toLowerCase(),i=g?.error_description||g?.error||"";return f.ok?{tested:!0,valid:!0,message:"Client secret was accepted by the token endpoint.",raw:g}:"invalid_client"===h||"unauthorized_client"===h||/client.*(invalid|failed|mismatch)/i.test(i)?{tested:!0,valid:!1,message:i||"Client secret is not valid.",raw:g}:"invalid_grant"===h||"invalid_code"===h||/grant|code/i.test(i)?{tested:!0,valid:!0,message:"Client secret was accepted; the token exchange failed only because the test authorization code is invalid.",raw:g}:{tested:!0,valid:null,message:i||`Token endpoint responded with ${f.status}`,raw:g}}async function H({idToken:a,issuer:b,audience:c,jwksUri:e,nonce:f}){let h=function(a){if(!(a instanceof URL))throw TypeError("url must be an instance of URL");let b=new URL(a.href).href,c=(void 0)??{},e=c.timeoutDuration;if("number"==typeof e&&(!Number.isInteger(e)||e<0))throw TypeError('"timeoutDuration" option must be a non-negative integer');let f="number"==typeof e?e:5e3,h=q(c.cooldownDuration,3e4,"cooldownDuration"),i=q(c.cacheMaxAge,6e5,"cacheMaxAge"),k=new Headers(c.headers);d&&!k.has("User-Agent")&&k.set("User-Agent",d),k.has("accept")||k.set("accept","application/json, application/jwk-set+json");let r=c[m],s=c[o],t,u,v=0,w=0,x;if(s&&"object"==typeof s){let{uat:a,jwks:b}=s;p(a,i)&&(0,j.fV)(b)&&(t=a,x=l(b))}let y=async()=>{if(u&&("u">typeof WebSocketPair||"u">typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||"u">typeof EdgeRuntime&&"vercel"===EdgeRuntime)&&(u=void 0),!u){let a=++v,c=u=n(b,k,AbortSignal.timeout(f),r).then(b=>{let c=l(b);if(a<=w)return;x=c;let d=Date.now();s&&(s.uat=d,s.jwks=b),t=d,w=a}).finally(()=>{u===c&&(u=void 0)})}await u};return Object.defineProperties(async(a,b)=>{x&&p(t,i)||await y();try{return await x(a,b)}catch(c){if(c instanceof g.BT&&!p(t,h))return await y(),x(a,b);throw c}},{coolingDown:{get:()=>p(t,h),enumerable:!0},fresh:{get:()=>p(t,i),enumerable:!0},reload:{value:y,enumerable:!0},reloading:{get:()=>!!u,enumerable:!0},jwks:{value:()=>x?.jwks(),enumerable:!0}})}(new URL(e)),{payload:i}=await (0,r.V)(a,h,{issuer:b,audience:c,nonce:f});return i}function I(a={}){return a.preferred_username||a.email||a.name||a.given_name||a.sub||"OIDC user"}function J(a={}){return a.email||""}},33792:(a,b,c)=>{c.d(b,{Dc:()=>r,OZ:()=>u,YK:()=>p,dY:()=>s,nz:()=>v,tm:()=>t});var d=c(8292),e=c(17509),f=c(34013),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(77598),l=c.n(k),m=c(49120),n=c(89718);let o=new TextEncoder().encode(function(){if(process.env.JWT_SECRET)return process.env.JWT_SECRET;let a=j().join(m.n,"jwt-secret");try{return h().readFileSync(a,"utf8").trim()}catch{}h().mkdirSync(m.n,{recursive:!0});let b=l().randomBytes(32).toString("hex");return h().writeFileSync(a,b,{mode:384}),b}());function p(a){let b="true"===process.env.AUTH_COOKIE_SECURE,c=a?.headers?.get?.("x-forwarded-proto");return b||"https"===c}async function q(a={}){return new d.P({authenticated:!0,...a}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("24h").sign(o)}async function r(a){if(!a)return!1;try{return await (0,e.V)(a,o),!0}catch{return!1}}async function s(a){if(!a)return null;try{let{payload:b}=await (0,e.V)(a,o);return b}catch{return null}}async function t(a,b,c={}){let d=await q(c);a.set("auth_token",d,{httpOnly:!0,secure:p(b),sameSite:"lax",path:"/",maxAge:86400})}function u(a){a.delete("auth_token")}async function v(a){if("string"!=typeof a||!a)return!1;let b=await (0,n.mt)(),c=b?.password;return c?f.Ay.compare(a,c):a===(process.env.INITIAL_PASSWORD||"123456")}},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{a.exports=require("sql.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},79868:a=>{a.exports=require("node:sqlite")},81787:a=>{a.exports=require("bun:sqlite")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87245:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/auth/oidc/start/route",pathname:"/api/auth/oidc/start",filename:"route",bundlePath:"app/api/auth/oidc/start/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/keyzakyy/Projects/keyrouter/src/app/api/auth/oidc/start/route.js",nextConfigOutput:"standalone",userland:()=>c(24503),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/auth/oidc/start/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}},87550:a=>{a.exports=require("better-sqlite3")},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,FS:()=>d.FS,Fh:()=>d.Fh,GT:()=>d.GT,Gb:()=>d.Gb,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Ln:()=>d.Ln,Mc:()=>d.Mc,My:()=>d.My,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,WG:()=>d.WG,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,Zd:()=>d.Zd,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fp:()=>d.fp,fv:()=>d.fv,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,js:()=>d.js,kj:()=>d.kj,mY:()=>d.mY,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,oN:()=>d.oN,op:()=>d.op,pE:()=>d.pE,r4:()=>d.r4,sA:()=>d.sA,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,y0:()=>d.y0,yF:()=>d.yF,yK:()=>d.yK,yg:()=>d.yg,yz:()=>d.yz,zI:()=>d.zI,zP:()=>d.zP,zz:()=>d.zz});var d=c(83192)},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,2391,8292,5573,9100],()=>b(b.s=87245));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=6091,a.ids=[6091],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17509:(a,b,c)=>{c.d(b,{V:()=>m});var d=c(80700),e=c(99129),f=c(73575),g=c(38805),h=c(64416);function i(a){try{return(0,f.lF)(a)}catch(a){throw new e.Ye("JWS Compact Serialization payload must use only ASCII characters",{cause:a})}}async function j(a,b,c,i,j){let{protected:k,header:l,payload:m}=a,n=j??(void 0===k?{}:(0,g.OX)(k,e.Ye,"JWS Protected Header is invalid"));if(!(0,g.fz)(n,l))throw new e.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let o={...n,...l},p=(0,g.J0)(n,(0,g.nI)(e.Ye,g.qc,b[1],n,o)),{alg:q}=o;if("string"!=typeof q||!q)throw new e.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(b[0]&&!b[0].has(q))throw new e.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof m)throw new e.Ye("JWS Payload must be a string")}else if("string"!=typeof m&&!(m instanceof Uint8Array))throw new e.Ye("JWS Payload must be a string or an Uint8Array instance");let r=p||"string"!=typeof m?m:i(m),s=!1;"function"==typeof c&&(c=await c(n,a),s=!0);let t=(0,d.q)(q),u=(0,f.xW)(void 0!==k?(0,f.lF)(k):new Uint8Array,(0,f.lF)("."),"string"==typeof r?b[2]??=(0,g.MV)(r,"payload",e.Ye):r),v=(0,g.h2)(a.signature,"signature",e.Ye),w=await (0,h.dT)(t,c,"verify"),x=await (0,h.GK)(w,t.subtle,"verify");t.minRsaBits&&(0,h.or)(t.alg,x);let y=!1;try{y=await crypto.subtle.verify(t.signing,x,v,u)}catch(a){throw new e.h2(void 0,{cause:a})}if(!y)throw new e.h2;let z={payload:"string"==typeof r?(0,g.h2)(r,"payload",e.Ye):r};return void 0!==k&&(z.protectedHeader=n),void 0!==l&&(z.unprotectedHeader=l),s?[{...z,key:w},p]:[z,p]}async function k(a,b,c){if(a instanceof Uint8Array&&(a=f.D0.decode(a)),"string"!=typeof a)throw new e.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:g,2:h,length:k}=a.split(".");if(3!==k)throw new e.Ye("Invalid Compact JWS");return j({payload:g,protected:d,signature:h},b,c,i)}var l=c(17347);async function m(a,b,c){let[d,f]=await k(a,[c&&(0,g.Fw)("algorithms",c.algorithms),c?.crit],b);if(!f)throw new e.Dp("JWTs MUST NOT use unencoded payload");let h=(0,l.k6)(d.protectedHeader,d.payload,c);return{...d,payload:h}}},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30906:(a,b,c)=>{let d;c.d(b,{gR:()=>E,hT:()=>D,Pf:()=>C,GY:()=>B,sP:()=>F,Ir:()=>A,Mj:()=>z,iw:()=>x,EJ:()=>y,Ui:()=>I,Rj:()=>J,HO:()=>G,x8:()=>H});var e=c(77598),f=c.n(e),g=c(99129),h=c(64416),i=c(80700),j=c(38805);async function k(a,b,c){let d=a.get(b)||a.set(b,{}).get(b),{alg:e}=c;if(void 0===d[e]){let a=(0,h.xY)(c,b,!0).then(a=>{if("public"!==a.type)throw new g.Dm("JSON Web Key Set members must be public keys");return d[e]=a,a}).catch(b=>{throw d[e]===a&&delete d[e],b});d[e]=a}return d[e]}function l(a){let b;try{b=structuredClone(a)}catch(a){throw new g.Dm("JSON Web Key Set malformed",{cause:a})}if(!(0,j.fV)(b))throw new g.Dm("JSON Web Key Set malformed");let c=b.keys.map(a=>{let b=(0,h.ZZ)(a);return Array.isArray(b.key_ops)&&(b.key_ops=[...b.key_ops]),b}),d=new WeakMap;return Object.defineProperty(async(a,e)=>{let{alg:f,kid:h}={...a,...e?.header},j="string"==typeof f?i.p[f]:void 0;if(!j||j.secret)throw new g.T0('Unsupported "alg" value for a JSON Web Key Set');let l=b.keys.filter((a,b)=>(function(a,b,c,d){let{kty:e,key_ops:f,ext:g,kid:h,alg:i,use:j,crv:k}=a;return(void 0===g||"boolean"==typeof g)&&(void 0===f||Array.isArray(f)&&f.every((a,b)=>"string"==typeof a&&f.indexOf(a)===b)&&f.includes("verify"))&&b.kty.includes(e)&&(void 0===d||"string"==typeof d&&d===h)&&(void 0===i?"AKP"!==e:c===i)&&(void 0===j||"sig"===j)&&(!b.crv||k===b.crv)})(c[b],j,f,h)),{0:m,length:n}=l;if(!n)throw new g.BT;if(1!==n){let a=new g.$4;throw a[Symbol.asyncIterator]=async function*(){for(let a of l)try{yield await k(d,a,j)}catch{}},a}return k(d,m,j)},"jwks",{value:()=>structuredClone(b)})}(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(d="jose/v6.2.14");let m=Symbol();async function n(a,b,c,d=fetch){let e=await d(a,{method:"GET",signal:c,redirect:"manual",headers:b}).catch(a=>{throw"TimeoutError"===a.name?new g.xb(void 0,{cause:a}):a});if(200!==e.status)throw new g.i4("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await e.json()}catch(a){throw new g.i4("Failed to parse the JSON Web Key Set HTTP response as JSON",{cause:a})}}let o=Symbol();function p(a,b){return Number.isFinite(a)&&Date.now()<a+b}function q(a,b,c){if(Number.isNaN(a))throw TypeError(`"${c}" option must not be NaN`);return"number"==typeof a?a:b}var r=c(17509),s=c(89718);let t="openid profile email",u="Sign in with OIDC";function v(a){return(a||"").trim().replace(/\/+$/,"")}function w(a){return(a||t).trim()||t}function x(a){let b=process.env.BASE_URL||process.env.NEXT_PUBLIC_BASE_URL||"";if(b)return v(b);let c=a?.headers?.get?.("x-forwarded-proto")||"",d=a?.headers?.get?.("x-forwarded-host")||a?.headers?.get?.("host")||"";if(d){let b=(c||new URL(a.url).protocol||"http:").replace(/:$/,"");return`${b}://${d}`.replace(/\/+$/,"")}return v(new URL(a.url).origin)}function y(a){return!!(v(a?.oidcIssuerUrl)&&(a?.oidcClientId||"").trim()&&(a?.oidcClientSecret||"").trim())}async function z(){let a=await (0,s.mt)();return["oidc","both"].includes(a.authMode)&&y(a)?{issuerUrl:v(a.oidcIssuerUrl),clientId:a.oidcClientId.trim(),clientSecret:a.oidcClientSecret.trim(),scopes:w(a.oidcScopes),loginLabel:(a.oidcLoginLabel||u).trim()||u}:null}async function A(a){let b=`${v(a)}/.well-known/openid-configuration`,c=await fetch(b,{cache:"no-store"});if(!c.ok)throw Error(`Failed to load OIDC discovery document from ${b}`);return await c.json()}function B(){let a=f().randomBytes(32).toString("base64url"),b=f().createHash("sha256").update(a).digest("base64url");return{verifier:a,challenge:b}}function C(){return f().randomBytes(16).toString("base64url")}function D(){return f().randomBytes(16).toString("base64url")}function E({authorizationEndpoint:a,clientId:b,redirectUri:c,scopes:d=t,state:e,nonce:f,codeChallenge:g}){let h=new URL(a);return h.searchParams.set("response_type","code"),h.searchParams.set("client_id",b),h.searchParams.set("redirect_uri",c),h.searchParams.set("scope",w(d)),h.searchParams.set("state",e),h.searchParams.set("nonce",f),h.searchParams.set("code_challenge",g),h.searchParams.set("code_challenge_method","S256"),h.toString()}async function F({tokenEndpoint:a,clientId:b,clientSecret:c,code:d,redirectUri:e,codeVerifier:f}){let g=new URLSearchParams({grant_type:"authorization_code",client_id:b,code:d,redirect_uri:e,code_verifier:f});c&&g.set("client_secret",c);let h=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:g}),i=await h.json().catch(()=>({}));if(!h.ok)throw Error(i?.error_description||i?.error||`OIDC token exchange failed (${h.status})`);return i}async function G({tokenEndpoint:a,clientId:b,clientSecret:c,redirectUri:d}){if(!c)return{tested:!1,valid:null,message:"No client secret was provided, so secret validation was skipped."};let e=new URLSearchParams({grant_type:"authorization_code",client_id:b,client_secret:c,code:"__oidc_test_invalid_code__",redirect_uri:d,code_verifier:"__oidc_test_invalid_verifier__"}),f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e}),g=await f.json().catch(()=>({})),h=(g?.error||"").toLowerCase(),i=g?.error_description||g?.error||"";return f.ok?{tested:!0,valid:!0,message:"Client secret was accepted by the token endpoint.",raw:g}:"invalid_client"===h||"unauthorized_client"===h||/client.*(invalid|failed|mismatch)/i.test(i)?{tested:!0,valid:!1,message:i||"Client secret is not valid.",raw:g}:"invalid_grant"===h||"invalid_code"===h||/grant|code/i.test(i)?{tested:!0,valid:!0,message:"Client secret was accepted; the token exchange failed only because the test authorization code is invalid.",raw:g}:{tested:!0,valid:null,message:i||`Token endpoint responded with ${f.status}`,raw:g}}async function H({idToken:a,issuer:b,audience:c,jwksUri:e,nonce:f}){let h=function(a){if(!(a instanceof URL))throw TypeError("url must be an instance of URL");let b=new URL(a.href).href,c=(void 0)??{},e=c.timeoutDuration;if("number"==typeof e&&(!Number.isInteger(e)||e<0))throw TypeError('"timeoutDuration" option must be a non-negative integer');let f="number"==typeof e?e:5e3,h=q(c.cooldownDuration,3e4,"cooldownDuration"),i=q(c.cacheMaxAge,6e5,"cacheMaxAge"),k=new Headers(c.headers);d&&!k.has("User-Agent")&&k.set("User-Agent",d),k.has("accept")||k.set("accept","application/json, application/jwk-set+json");let r=c[m],s=c[o],t,u,v=0,w=0,x;if(s&&"object"==typeof s){let{uat:a,jwks:b}=s;p(a,i)&&(0,j.fV)(b)&&(t=a,x=l(b))}let y=async()=>{if(u&&("u">typeof WebSocketPair||"u">typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||"u">typeof EdgeRuntime&&"vercel"===EdgeRuntime)&&(u=void 0),!u){let a=++v,c=u=n(b,k,AbortSignal.timeout(f),r).then(b=>{let c=l(b);if(a<=w)return;x=c;let d=Date.now();s&&(s.uat=d,s.jwks=b),t=d,w=a}).finally(()=>{u===c&&(u=void 0)})}await u};return Object.defineProperties(async(a,b)=>{x&&p(t,i)||await y();try{return await x(a,b)}catch(c){if(c instanceof g.BT&&!p(t,h))return await y(),x(a,b);throw c}},{coolingDown:{get:()=>p(t,h),enumerable:!0},fresh:{get:()=>p(t,i),enumerable:!0},reload:{value:y,enumerable:!0},reloading:{get:()=>!!u,enumerable:!0},jwks:{value:()=>x?.jwks(),enumerable:!0}})}(new URL(e)),{payload:i}=await (0,r.V)(a,h,{issuer:b,audience:c,nonce:f});return i}function I(a={}){return a.preferred_username||a.email||a.name||a.given_name||a.sub||"OIDC user"}function J(a={}){return a.email||""}},33792:(a,b,c)=>{c.d(b,{Dc:()=>r,OZ:()=>u,YK:()=>p,dY:()=>s,nz:()=>v,tm:()=>t});var d=c(8292),e=c(17509),f=c(34013),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(77598),l=c.n(k),m=c(49120),n=c(89718);let o=new TextEncoder().encode(function(){if(process.env.JWT_SECRET)return process.env.JWT_SECRET;let a=j().join(m.n,"jwt-secret");try{return h().readFileSync(a,"utf8").trim()}catch{}h().mkdirSync(m.n,{recursive:!0});let b=l().randomBytes(32).toString("hex");return h().writeFileSync(a,b,{mode:384}),b}());function p(a){let b="true"===process.env.AUTH_COOKIE_SECURE,c=a?.headers?.get?.("x-forwarded-proto");return b||"https"===c}async function q(a={}){return new d.P({authenticated:!0,...a}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("24h").sign(o)}async function r(a){if(!a)return!1;try{return await (0,e.V)(a,o),!0}catch{return!1}}async function s(a){if(!a)return null;try{let{payload:b}=await (0,e.V)(a,o);return b}catch{return null}}async function t(a,b,c={}){let d=await q(c);a.set("auth_token",d,{httpOnly:!0,secure:p(b),sameSite:"lax",path:"/",maxAge:86400})}function u(a){a.delete("auth_token")}async function v(a){if("string"!=typeof a||!a)return!1;let b=await (0,n.mt)(),c=b?.password;return c?f.Ay.compare(a,c):a===(process.env.INITIAL_PASSWORD||"123456")}},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{a.exports=require("sql.js")},49173:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/auth/oidc/test/route",pathname:"/api/auth/oidc/test",filename:"route",bundlePath:"app/api/auth/oidc/test/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/keyzakyy/Projects/keyrouter/src/app/api/auth/oidc/test/route.js",nextConfigOutput:"standalone",userland:()=>c(55807),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/auth/oidc/test/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}},55511:a=>{a.exports=require("crypto")},55807:(a,b,c)=>{c.r(b),c.d(b,{POST:()=>j});var d=c(23211),e=c(65573),f=c(89718),g=c(30906),h=c(33792);async function i(){if(!1===(await (0,f.mt)()).requireLogin)return!0;let a=await (0,e.UL)(),b=a.get("auth_token")?.value;return await (0,h.Dc)(b)}async function j(a){try{if(!await i())return d.NextResponse.json({error:"Unauthorized"},{status:401});let b=await a.json().catch(()=>({})),c=await (0,f.mt)(),e=String(b.issuerUrl||c.oidcIssuerUrl||"").trim(),h=String(b.clientId||c.oidcClientId||"").trim(),j=String(b.scopes||c.oidcScopes||"openid profile email").trim()||"openid profile email",k=String(Object.prototype.hasOwnProperty.call(b,"clientSecret")?b.clientSecret:c.oidcClientSecret||"").trim();if(!e)return d.NextResponse.json({error:"Issuer URL is required"},{status:400});if(!h)return d.NextResponse.json({error:"Client ID is required"},{status:400});let l=await (0,g.Ir)(e),m=`${(0,g.iw)(a)}/api/auth/oidc/callback`,n=await (0,g.HO)({tokenEndpoint:l.token_endpoint,clientId:h,clientSecret:k,redirectUri:m});if(n.tested&&!1===n.valid)return d.NextResponse.json({ok:!1,discoveryOk:!0,clientSecretTested:!0,clientSecretValid:!1,issuerUrl:e,clientId:h,scopes:j,redirectUri:m,authorizationEndpoint:l.authorization_endpoint||"",tokenEndpoint:l.token_endpoint||"",jwksUri:l.jwks_uri||"",error:`Discovery loaded, but the client secret is not valid: ${n.message}`});return d.NextResponse.json({ok:!0,discoveryOk:!0,clientSecretTested:n.tested,clientSecretValid:n.valid,issuerUrl:e,clientId:h,scopes:j,redirectUri:m,authorizationEndpoint:l.authorization_endpoint||"",tokenEndpoint:l.token_endpoint||"",jwksUri:l.jwks_uri||"",message:n.message})}catch(a){return d.NextResponse.json({error:a.message||"OIDC test failed"},{status:500})}}},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},79868:a=>{a.exports=require("node:sqlite")},81787:a=>{a.exports=require("bun:sqlite")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,FS:()=>d.FS,Fh:()=>d.Fh,GT:()=>d.GT,Gb:()=>d.Gb,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Ln:()=>d.Ln,Mc:()=>d.Mc,My:()=>d.My,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,WG:()=>d.WG,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,Zd:()=>d.Zd,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fp:()=>d.fp,fv:()=>d.fv,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,js:()=>d.js,kj:()=>d.kj,mY:()=>d.mY,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,oN:()=>d.oN,op:()=>d.op,pE:()=>d.pE,r4:()=>d.r4,sA:()=>d.sA,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,y0:()=>d.y0,yF:()=>d.yF,yK:()=>d.yK,yg:()=>d.yg,yz:()=>d.yz,zI:()=>d.zI,zP:()=>d.zP,zz:()=>d.zz});var d=c(83192)},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,2391,8292,5573,9100],()=>b(b.s=49173));module.exports=c})();
|
|
1
|
+
"use strict";(()=>{var a={};a.id=6091,a.ids=[6091],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17509:(a,b,c)=>{c.d(b,{V:()=>m});var d=c(80700),e=c(99129),f=c(73575),g=c(38805),h=c(64416);function i(a){try{return(0,f.lF)(a)}catch(a){throw new e.Ye("JWS Compact Serialization payload must use only ASCII characters",{cause:a})}}async function j(a,b,c,i,j){let{protected:k,header:l,payload:m}=a,n=j??(void 0===k?{}:(0,g.OX)(k,e.Ye,"JWS Protected Header is invalid"));if(!(0,g.fz)(n,l))throw new e.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let o={...n,...l},p=(0,g.J0)(n,(0,g.nI)(e.Ye,g.qc,b[1],n,o)),{alg:q}=o;if("string"!=typeof q||!q)throw new e.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(b[0]&&!b[0].has(q))throw new e.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof m)throw new e.Ye("JWS Payload must be a string")}else if("string"!=typeof m&&!(m instanceof Uint8Array))throw new e.Ye("JWS Payload must be a string or an Uint8Array instance");let r=p||"string"!=typeof m?m:i(m),s=!1;"function"==typeof c&&(c=await c(n,a),s=!0);let t=(0,d.q)(q),u=(0,f.xW)(void 0!==k?(0,f.lF)(k):new Uint8Array,(0,f.lF)("."),"string"==typeof r?b[2]??=(0,g.MV)(r,"payload",e.Ye):r),v=(0,g.h2)(a.signature,"signature",e.Ye),w=await (0,h.dT)(t,c,"verify"),x=await (0,h.GK)(w,t.subtle,"verify");t.minRsaBits&&(0,h.or)(t.alg,x);let y=!1;try{y=await crypto.subtle.verify(t.signing,x,v,u)}catch(a){throw new e.h2(void 0,{cause:a})}if(!y)throw new e.h2;let z={payload:"string"==typeof r?(0,g.h2)(r,"payload",e.Ye):r};return void 0!==k&&(z.protectedHeader=n),void 0!==l&&(z.unprotectedHeader=l),s?[{...z,key:w},p]:[z,p]}async function k(a,b,c){if(a instanceof Uint8Array&&(a=f.D0.decode(a)),"string"!=typeof a)throw new e.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:g,2:h,length:k}=a.split(".");if(3!==k)throw new e.Ye("Invalid Compact JWS");return j({payload:g,protected:d,signature:h},b,c,i)}var l=c(17347);async function m(a,b,c){let[d,f]=await k(a,[c&&(0,g.Fw)("algorithms",c.algorithms),c?.crit],b);if(!f)throw new e.Dp("JWTs MUST NOT use unencoded payload");let h=(0,l.k6)(d.protectedHeader,d.payload,c);return{...d,payload:h}}},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30906:(a,b,c)=>{let d;c.d(b,{gR:()=>E,hT:()=>D,Pf:()=>C,GY:()=>B,sP:()=>F,Ir:()=>A,Mj:()=>z,iw:()=>x,EJ:()=>y,Ui:()=>I,Rj:()=>J,HO:()=>G,x8:()=>H});var e=c(77598),f=c.n(e),g=c(99129),h=c(64416),i=c(80700),j=c(38805);async function k(a,b,c){let d=a.get(b)||a.set(b,{}).get(b),{alg:e}=c;if(void 0===d[e]){let a=(0,h.xY)(c,b,!0).then(a=>{if("public"!==a.type)throw new g.Dm("JSON Web Key Set members must be public keys");return d[e]=a,a}).catch(b=>{throw d[e]===a&&delete d[e],b});d[e]=a}return d[e]}function l(a){let b;try{b=structuredClone(a)}catch(a){throw new g.Dm("JSON Web Key Set malformed",{cause:a})}if(!(0,j.fV)(b))throw new g.Dm("JSON Web Key Set malformed");let c=b.keys.map(a=>{let b=(0,h.ZZ)(a);return Array.isArray(b.key_ops)&&(b.key_ops=[...b.key_ops]),b}),d=new WeakMap;return Object.defineProperty(async(a,e)=>{let{alg:f,kid:h}={...a,...e?.header},j="string"==typeof f?i.p[f]:void 0;if(!j||j.secret)throw new g.T0('Unsupported "alg" value for a JSON Web Key Set');let l=b.keys.filter((a,b)=>(function(a,b,c,d){let{kty:e,key_ops:f,ext:g,kid:h,alg:i,use:j,crv:k}=a;return(void 0===g||"boolean"==typeof g)&&(void 0===f||Array.isArray(f)&&f.every((a,b)=>"string"==typeof a&&f.indexOf(a)===b)&&f.includes("verify"))&&b.kty.includes(e)&&(void 0===d||"string"==typeof d&&d===h)&&(void 0===i?"AKP"!==e:c===i)&&(void 0===j||"sig"===j)&&(!b.crv||k===b.crv)})(c[b],j,f,h)),{0:m,length:n}=l;if(!n)throw new g.BT;if(1!==n){let a=new g.$4;throw a[Symbol.asyncIterator]=async function*(){for(let a of l)try{yield await k(d,a,j)}catch{}},a}return k(d,m,j)},"jwks",{value:()=>structuredClone(b)})}(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(d="jose/v6.2.14");let m=Symbol();async function n(a,b,c,d=fetch){let e=await d(a,{method:"GET",signal:c,redirect:"manual",headers:b}).catch(a=>{throw"TimeoutError"===a.name?new g.xb(void 0,{cause:a}):a});if(200!==e.status)throw new g.i4("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await e.json()}catch(a){throw new g.i4("Failed to parse the JSON Web Key Set HTTP response as JSON",{cause:a})}}let o=Symbol();function p(a,b){return Number.isFinite(a)&&Date.now()<a+b}function q(a,b,c){if(Number.isNaN(a))throw TypeError(`"${c}" option must not be NaN`);return"number"==typeof a?a:b}var r=c(17509),s=c(89718);let t="openid profile email",u="Sign in with OIDC";function v(a){return(a||"").trim().replace(/\/+$/,"")}function w(a){return(a||t).trim()||t}function x(a){let b=process.env.BASE_URL||"http://localhost:20127";if(b)return v(b);let c=a?.headers?.get?.("x-forwarded-proto")||"",d=a?.headers?.get?.("x-forwarded-host")||a?.headers?.get?.("host")||"";if(d){let b=(c||new URL(a.url).protocol||"http:").replace(/:$/,"");return`${b}://${d}`.replace(/\/+$/,"")}return v(new URL(a.url).origin)}function y(a){return!!(v(a?.oidcIssuerUrl)&&(a?.oidcClientId||"").trim()&&(a?.oidcClientSecret||"").trim())}async function z(){let a=await (0,s.mt)();return["oidc","both"].includes(a.authMode)&&y(a)?{issuerUrl:v(a.oidcIssuerUrl),clientId:a.oidcClientId.trim(),clientSecret:a.oidcClientSecret.trim(),scopes:w(a.oidcScopes),loginLabel:(a.oidcLoginLabel||u).trim()||u}:null}async function A(a){let b=`${v(a)}/.well-known/openid-configuration`,c=await fetch(b,{cache:"no-store"});if(!c.ok)throw Error(`Failed to load OIDC discovery document from ${b}`);return await c.json()}function B(){let a=f().randomBytes(32).toString("base64url"),b=f().createHash("sha256").update(a).digest("base64url");return{verifier:a,challenge:b}}function C(){return f().randomBytes(16).toString("base64url")}function D(){return f().randomBytes(16).toString("base64url")}function E({authorizationEndpoint:a,clientId:b,redirectUri:c,scopes:d=t,state:e,nonce:f,codeChallenge:g}){let h=new URL(a);return h.searchParams.set("response_type","code"),h.searchParams.set("client_id",b),h.searchParams.set("redirect_uri",c),h.searchParams.set("scope",w(d)),h.searchParams.set("state",e),h.searchParams.set("nonce",f),h.searchParams.set("code_challenge",g),h.searchParams.set("code_challenge_method","S256"),h.toString()}async function F({tokenEndpoint:a,clientId:b,clientSecret:c,code:d,redirectUri:e,codeVerifier:f}){let g=new URLSearchParams({grant_type:"authorization_code",client_id:b,code:d,redirect_uri:e,code_verifier:f});c&&g.set("client_secret",c);let h=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:g}),i=await h.json().catch(()=>({}));if(!h.ok)throw Error(i?.error_description||i?.error||`OIDC token exchange failed (${h.status})`);return i}async function G({tokenEndpoint:a,clientId:b,clientSecret:c,redirectUri:d}){if(!c)return{tested:!1,valid:null,message:"No client secret was provided, so secret validation was skipped."};let e=new URLSearchParams({grant_type:"authorization_code",client_id:b,client_secret:c,code:"__oidc_test_invalid_code__",redirect_uri:d,code_verifier:"__oidc_test_invalid_verifier__"}),f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e}),g=await f.json().catch(()=>({})),h=(g?.error||"").toLowerCase(),i=g?.error_description||g?.error||"";return f.ok?{tested:!0,valid:!0,message:"Client secret was accepted by the token endpoint.",raw:g}:"invalid_client"===h||"unauthorized_client"===h||/client.*(invalid|failed|mismatch)/i.test(i)?{tested:!0,valid:!1,message:i||"Client secret is not valid.",raw:g}:"invalid_grant"===h||"invalid_code"===h||/grant|code/i.test(i)?{tested:!0,valid:!0,message:"Client secret was accepted; the token exchange failed only because the test authorization code is invalid.",raw:g}:{tested:!0,valid:null,message:i||`Token endpoint responded with ${f.status}`,raw:g}}async function H({idToken:a,issuer:b,audience:c,jwksUri:e,nonce:f}){let h=function(a){if(!(a instanceof URL))throw TypeError("url must be an instance of URL");let b=new URL(a.href).href,c=(void 0)??{},e=c.timeoutDuration;if("number"==typeof e&&(!Number.isInteger(e)||e<0))throw TypeError('"timeoutDuration" option must be a non-negative integer');let f="number"==typeof e?e:5e3,h=q(c.cooldownDuration,3e4,"cooldownDuration"),i=q(c.cacheMaxAge,6e5,"cacheMaxAge"),k=new Headers(c.headers);d&&!k.has("User-Agent")&&k.set("User-Agent",d),k.has("accept")||k.set("accept","application/json, application/jwk-set+json");let r=c[m],s=c[o],t,u,v=0,w=0,x;if(s&&"object"==typeof s){let{uat:a,jwks:b}=s;p(a,i)&&(0,j.fV)(b)&&(t=a,x=l(b))}let y=async()=>{if(u&&("u">typeof WebSocketPair||"u">typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||"u">typeof EdgeRuntime&&"vercel"===EdgeRuntime)&&(u=void 0),!u){let a=++v,c=u=n(b,k,AbortSignal.timeout(f),r).then(b=>{let c=l(b);if(a<=w)return;x=c;let d=Date.now();s&&(s.uat=d,s.jwks=b),t=d,w=a}).finally(()=>{u===c&&(u=void 0)})}await u};return Object.defineProperties(async(a,b)=>{x&&p(t,i)||await y();try{return await x(a,b)}catch(c){if(c instanceof g.BT&&!p(t,h))return await y(),x(a,b);throw c}},{coolingDown:{get:()=>p(t,h),enumerable:!0},fresh:{get:()=>p(t,i),enumerable:!0},reload:{value:y,enumerable:!0},reloading:{get:()=>!!u,enumerable:!0},jwks:{value:()=>x?.jwks(),enumerable:!0}})}(new URL(e)),{payload:i}=await (0,r.V)(a,h,{issuer:b,audience:c,nonce:f});return i}function I(a={}){return a.preferred_username||a.email||a.name||a.given_name||a.sub||"OIDC user"}function J(a={}){return a.email||""}},33792:(a,b,c)=>{c.d(b,{Dc:()=>r,OZ:()=>u,YK:()=>p,dY:()=>s,nz:()=>v,tm:()=>t});var d=c(8292),e=c(17509),f=c(34013),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(77598),l=c.n(k),m=c(49120),n=c(89718);let o=new TextEncoder().encode(function(){if(process.env.JWT_SECRET)return process.env.JWT_SECRET;let a=j().join(m.n,"jwt-secret");try{return h().readFileSync(a,"utf8").trim()}catch{}h().mkdirSync(m.n,{recursive:!0});let b=l().randomBytes(32).toString("hex");return h().writeFileSync(a,b,{mode:384}),b}());function p(a){let b="true"===process.env.AUTH_COOKIE_SECURE,c=a?.headers?.get?.("x-forwarded-proto");return b||"https"===c}async function q(a={}){return new d.P({authenticated:!0,...a}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("24h").sign(o)}async function r(a){if(!a)return!1;try{return await (0,e.V)(a,o),!0}catch{return!1}}async function s(a){if(!a)return null;try{let{payload:b}=await (0,e.V)(a,o);return b}catch{return null}}async function t(a,b,c={}){let d=await q(c);a.set("auth_token",d,{httpOnly:!0,secure:p(b),sameSite:"lax",path:"/",maxAge:86400})}function u(a){a.delete("auth_token")}async function v(a){if("string"!=typeof a||!a)return!1;let b=await (0,n.mt)(),c=b?.password;return c?f.Ay.compare(a,c):a===(process.env.INITIAL_PASSWORD||"123456")}},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{a.exports=require("sql.js")},49173:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/auth/oidc/test/route",pathname:"/api/auth/oidc/test",filename:"route",bundlePath:"app/api/auth/oidc/test/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/keyzakyy/Projects/keyrouter/src/app/api/auth/oidc/test/route.js",nextConfigOutput:"standalone",userland:()=>c(55807),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/auth/oidc/test/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}},55511:a=>{a.exports=require("crypto")},55807:(a,b,c)=>{c.r(b),c.d(b,{POST:()=>j});var d=c(23211),e=c(65573),f=c(89718),g=c(30906),h=c(33792);async function i(){if(!1===(await (0,f.mt)()).requireLogin)return!0;let a=await (0,e.UL)(),b=a.get("auth_token")?.value;return await (0,h.Dc)(b)}async function j(a){try{if(!await i())return d.NextResponse.json({error:"Unauthorized"},{status:401});let b=await a.json().catch(()=>({})),c=await (0,f.mt)(),e=String(b.issuerUrl||c.oidcIssuerUrl||"").trim(),h=String(b.clientId||c.oidcClientId||"").trim(),j=String(b.scopes||c.oidcScopes||"openid profile email").trim()||"openid profile email",k=String(Object.prototype.hasOwnProperty.call(b,"clientSecret")?b.clientSecret:c.oidcClientSecret||"").trim();if(!e)return d.NextResponse.json({error:"Issuer URL is required"},{status:400});if(!h)return d.NextResponse.json({error:"Client ID is required"},{status:400});let l=await (0,g.Ir)(e),m=`${(0,g.iw)(a)}/api/auth/oidc/callback`,n=await (0,g.HO)({tokenEndpoint:l.token_endpoint,clientId:h,clientSecret:k,redirectUri:m});if(n.tested&&!1===n.valid)return d.NextResponse.json({ok:!1,discoveryOk:!0,clientSecretTested:!0,clientSecretValid:!1,issuerUrl:e,clientId:h,scopes:j,redirectUri:m,authorizationEndpoint:l.authorization_endpoint||"",tokenEndpoint:l.token_endpoint||"",jwksUri:l.jwks_uri||"",error:`Discovery loaded, but the client secret is not valid: ${n.message}`});return d.NextResponse.json({ok:!0,discoveryOk:!0,clientSecretTested:n.tested,clientSecretValid:n.valid,issuerUrl:e,clientId:h,scopes:j,redirectUri:m,authorizationEndpoint:l.authorization_endpoint||"",tokenEndpoint:l.token_endpoint||"",jwksUri:l.jwks_uri||"",message:n.message})}catch(a){return d.NextResponse.json({error:a.message||"OIDC test failed"},{status:500})}}},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},79868:a=>{a.exports=require("node:sqlite")},81787:a=>{a.exports=require("bun:sqlite")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,FS:()=>d.FS,Fh:()=>d.Fh,GT:()=>d.GT,Gb:()=>d.Gb,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Ln:()=>d.Ln,Mc:()=>d.Mc,My:()=>d.My,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,WG:()=>d.WG,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,Zd:()=>d.Zd,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fp:()=>d.fp,fv:()=>d.fv,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,js:()=>d.js,kj:()=>d.kj,mY:()=>d.mY,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,oN:()=>d.oN,op:()=>d.op,pE:()=>d.pE,r4:()=>d.r4,sA:()=>d.sA,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,y0:()=>d.y0,yF:()=>d.yF,yK:()=>d.yK,yg:()=>d.yg,yz:()=>d.yz,zI:()=>d.zI,zP:()=>d.zP,zz:()=>d.zz});var d=c(83192)},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,2391,8292,5573,9100],()=>b(b.s=49173));module.exports=c})();
|