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=3486,a.ids=[3486],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")},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")},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")},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}},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")},73024:a=>{a.exports=require("node:fs")},74075:a=>{a.exports=require("zlib")},76760:a=>{a.exports=require("node:path")},77551:(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/saml/acs/route",pathname:"/api/auth/saml/acs",filename:"route",bundlePath:"app/api/auth/saml/acs/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/keyzakyy/Projects/keyrouter/src/app/api/auth/saml/acs/route.js",nextConfigOutput:"standalone",userland:()=>c(99466),...{}}),{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/saml/acs/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)}},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")},99466:(a,b,c)=>{c.r(b),c.d(b,{POST:()=>j});var d=c(23211),e=c(65573),f=c(89718),g=c(7985),h=c(33792),i=c(8303);async function j(a){let b=await (0,f.mt)(),c=(0,g.eW)(a,b),j=(0,i.T1)(a),k=(0,i.sv)(j);if(k.locked)return d.NextResponse.redirect(new URL(`/login?error=${encodeURIComponent(`Too many failed attempts. Try again in ${k.retryAfter}s.`)}`,c));let l=await (0,e.UL)(),m=l.get("saml_state")?.value||"";l.delete("saml_state");try{let e=(await a.formData()).get("SAMLResponse");if(!e)return(0,i.im)(j),d.NextResponse.redirect(new URL("/login?error=saml_missing_response",c));if(!(0,g.eI)(b))return(0,i.im)(j),d.NextResponse.redirect(new URL("/login?error=saml_not_configured",c));let f=await (0,g.N)(a,{SAMLResponse:e},m,b),k=(0,g.x7)(f,b)||null,n=(0,g.uZ)(f,b)||"SAML user";return(0,i.B3)(j),await (0,h.tm)(l,a,{saml:!0,samlEmail:k,samlName:n}),d.NextResponse.redirect(new URL("/dashboard",c))}catch(a){return(0,i.im)(j),d.NextResponse.redirect(new URL(`/login?error=${encodeURIComponent(a.message||"saml_acs_failed")}`,c))}}}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,2391,8292,5573,5081,9100],()=>b(b.s=77551));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")},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")},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")},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}},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")},73024:a=>{a.exports=require("node:fs")},74075:a=>{a.exports=require("zlib")},76760:a=>{a.exports=require("node:path")},77551:(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/saml/acs/route",pathname:"/api/auth/saml/acs",filename:"route",bundlePath:"app/api/auth/saml/acs/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/keyzakyy/Projects/keyrouter/src/app/api/auth/saml/acs/route.js",nextConfigOutput:"standalone",userland:()=>c(99466),...{}}),{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/saml/acs/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)}},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")},99466:(a,b,c)=>{c.r(b),c.d(b,{POST:()=>j});var d=c(23211),e=c(65573),f=c(89718),g=c(7985),h=c(33792),i=c(8303);async function j(a){let b=await (0,f.mt)(),c=(0,g.eW)(a,b),j=(0,i.T1)(a),k=(0,i.sv)(j);if(k.locked)return d.NextResponse.redirect(new URL(`/login?error=${encodeURIComponent(`Too many failed attempts. Try again in ${k.retryAfter}s.`)}`,c));let l=await (0,e.UL)(),m=l.get("saml_state")?.value||"";l.delete("saml_state");try{let e=(await a.formData()).get("SAMLResponse");if(!e)return(0,i.im)(j),d.NextResponse.redirect(new URL("/login?error=saml_missing_response",c));if(!(0,g.eI)(b))return(0,i.im)(j),d.NextResponse.redirect(new URL("/login?error=saml_not_configured",c));let f=await (0,g.N)(a,{SAMLResponse:e},m,b),k=(0,g.x7)(f,b)||null,n=(0,g.uZ)(f,b)||"SAML user";return(0,i.B3)(j),await (0,h.tm)(l,a,{saml:!0,samlEmail:k,samlName:n}),d.NextResponse.redirect(new URL("/dashboard",c))}catch(a){return(0,i.im)(j),d.NextResponse.redirect(new URL(`/login?error=${encodeURIComponent(a.message||"saml_acs_failed")}`,c))}}}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,2391,8292,5573,5081,9100],()=>b(b.s=77551));module.exports=c})();
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";(()=>{var a={};a.id=4664,a.ids=[4664],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1932:a=>{a.exports=require("url")},5763:(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/saml/metadata/route",pathname:"/api/auth/saml/metadata",filename:"route",bundlePath:"app/api/auth/saml/metadata/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/keyzakyy/Projects/keyrouter/src/app/api/auth/saml/metadata/route.js",nextConfigOutput:"standalone",userland:()=>c(52602),...{}}),{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/saml/metadata/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)}},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||
|
|
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")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11723:a=>{a.exports=require("querystring")},19225:(a,b,c)=>{a.exports=c(44870)},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")},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")},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},52602:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>f});var d=c(89718),e=c(7985);async function f(a){try{let b=await (0,d.mt)(),c=new URL(a.url).origin,f=(0,e.wu)(c,b);return new Response(f,{status:200,headers:{"Content-Type":"application/xml","Cache-Control":"no-cache"}})}catch(a){return new Response(`<?xml version="1.0"?><Error>${a.message||"Failed to generate metadata"}</Error>`,{status:500,headers:{"Content-Type":"application/xml"}})}}},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")},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")},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)},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},94735:a=>{a.exports=require("events")},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,5081,9100],()=>b(b.s=5763));module.exports=c})();
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";(()=>{var a={};a.id=2185,a.ids=[2185],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")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11723:a=>{a.exports=require("querystring")},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")},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")},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")},45487:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>i});var d=c(23211),e=c(65573),f=c(89718),g=c(7985),h=c(33792);async function i(a){let b=await (0,f.mt)(),c=(0,g.eW)(a,b);try{if(!(0,g.eI)(b))return d.NextResponse.redirect(new URL("/login?error=saml_not_configured",c));let{authorizeUrl:f,requestId:i}=await (0,g.mH)(a,b);return(await (0,e.UL)()).set("saml_state",i,{httpOnly:!0,secure:(0,h.YK)(a),sameSite:"lax",path:"/",maxAge:600}),d.NextResponse.redirect(f)}catch(a){return d.NextResponse.redirect(new URL(`/login?error=${encodeURIComponent(a.message||"saml_start_failed")}`,c))}}},46293:a=>{a.exports=require("sql.js")},52065:(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/saml/start/route",pathname:"/api/auth/saml/start",filename:"route",bundlePath:"app/api/auth/saml/start/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/keyzakyy/Projects/keyrouter/src/app/api/auth/saml/start/route.js",nextConfigOutput:"standalone",userland:()=>c(45487),...{}}),{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/saml/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)}},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")},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")},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,5081,9100],()=>b(b.s=52065));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")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11723:a=>{a.exports=require("querystring")},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")},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")},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")},45487:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>i});var d=c(23211),e=c(65573),f=c(89718),g=c(7985),h=c(33792);async function i(a){let b=await (0,f.mt)(),c=(0,g.eW)(a,b);try{if(!(0,g.eI)(b))return d.NextResponse.redirect(new URL("/login?error=saml_not_configured",c));let{authorizeUrl:f,requestId:i}=await (0,g.mH)(a,b);return(await (0,e.UL)()).set("saml_state",i,{httpOnly:!0,secure:(0,h.YK)(a),sameSite:"lax",path:"/",maxAge:600}),d.NextResponse.redirect(f)}catch(a){return d.NextResponse.redirect(new URL(`/login?error=${encodeURIComponent(a.message||"saml_start_failed")}`,c))}}},46293:a=>{a.exports=require("sql.js")},52065:(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/saml/start/route",pathname:"/api/auth/saml/start",filename:"route",bundlePath:"app/api/auth/saml/start/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/keyzakyy/Projects/keyrouter/src/app/api/auth/saml/start/route.js",nextConfigOutput:"standalone",userland:()=>c(45487),...{}}),{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/saml/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)}},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")},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")},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,5081,9100],()=>b(b.s=52065));module.exports=c})();
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";(()=>{var a={};a.id=999,a.ids=[999],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")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11723:a=>{a.exports=require("querystring")},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")},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")},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")},66136:a=>{a.exports=require("timers")},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")},79301:(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/saml/test/route",pathname:"/api/auth/saml/test",filename:"route",bundlePath:"app/api/auth/saml/test/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/keyzakyy/Projects/keyrouter/src/app/api/auth/saml/test/route.js",nextConfigOutput:"standalone",userland:()=>c(81159),...{}}),{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/saml/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)}},79868:a=>{a.exports=require("node:sqlite")},81159:(a,b,c)=>{c.r(b),c.d(b,{POST:()=>j});var d=c(23211),e=c(65573),f=c(89718),g=c(7985),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.samlEntryPoint||c.samlEntryPoint||"").trim(),h=String(b.samlIssuer||c.samlIssuer||"urn:keyrouter:sp").trim(),j=String(Object.prototype.hasOwnProperty.call(b,"samlCert")?b.samlCert:c.samlCert||"").trim();if(!e)return d.NextResponse.json({error:"Single Sign-On Service URL (samlEntryPoint) is required"},{status:400});try{new URL(e)}catch{return d.NextResponse.json({error:"Single Sign-On Service URL must be a valid URL"},{status:400})}if(!h)return d.NextResponse.json({error:"SP Entity ID / Issuer (samlIssuer) is required"},{status:400});if(!j)return d.NextResponse.json({error:"IdP X.509 Certificate (samlCert) is required"},{status:400});if(!(0,g.Jm)(j))return d.NextResponse.json({error:"Invalid IdP X.509 Certificate format"},{status:400});let k=new URL(a.url).origin,l=`${k}/api/auth/saml/acs`,m=`${k}/api/auth/saml/metadata`;return d.NextResponse.json({ok:!0,samlEntryPoint:e,samlIssuer:h,certValid:!0,acsUrl:l,metadataUrl:m,message:"SAML 2.0 configuration verified successfully."})}catch(a){return d.NextResponse.json({error:a.message||"SAML test failed"},{status:500})}}},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,5081,9100],()=>b(b.s=79301));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")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11723:a=>{a.exports=require("querystring")},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")},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")},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")},66136:a=>{a.exports=require("timers")},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")},79301:(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/saml/test/route",pathname:"/api/auth/saml/test",filename:"route",bundlePath:"app/api/auth/saml/test/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/keyzakyy/Projects/keyrouter/src/app/api/auth/saml/test/route.js",nextConfigOutput:"standalone",userland:()=>c(81159),...{}}),{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/saml/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)}},79868:a=>{a.exports=require("node:sqlite")},81159:(a,b,c)=>{c.r(b),c.d(b,{POST:()=>j});var d=c(23211),e=c(65573),f=c(89718),g=c(7985),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.samlEntryPoint||c.samlEntryPoint||"").trim(),h=String(b.samlIssuer||c.samlIssuer||"urn:keyrouter:sp").trim(),j=String(Object.prototype.hasOwnProperty.call(b,"samlCert")?b.samlCert:c.samlCert||"").trim();if(!e)return d.NextResponse.json({error:"Single Sign-On Service URL (samlEntryPoint) is required"},{status:400});try{new URL(e)}catch{return d.NextResponse.json({error:"Single Sign-On Service URL must be a valid URL"},{status:400})}if(!h)return d.NextResponse.json({error:"SP Entity ID / Issuer (samlIssuer) is required"},{status:400});if(!j)return d.NextResponse.json({error:"IdP X.509 Certificate (samlCert) is required"},{status:400});if(!(0,g.Jm)(j))return d.NextResponse.json({error:"Invalid IdP X.509 Certificate format"},{status:400});let k=new URL(a.url).origin,l=`${k}/api/auth/saml/acs`,m=`${k}/api/auth/saml/metadata`;return d.NextResponse.json({ok:!0,samlEntryPoint:e,samlIssuer:h,certValid:!0,acsUrl:l,metadataUrl:m,message:"SAML 2.0 configuration verified successfully."})}catch(a){return d.NextResponse.json({error:a.message||"SAML test failed"},{status:500})}}},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,5081,9100],()=>b(b.s=79301));module.exports=c})();
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";(()=>{var a={};a.id=7473,a.ids=[7473],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")},6861:(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/status/route",pathname:"/api/auth/status",filename:"route",bundlePath:"app/api/auth/status/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/keyzakyy/Projects/keyrouter/src/app/api/auth/status/route.js",nextConfigOutput:"standalone",userland:()=>c(81143),...{}}),{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/status/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)}},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")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11723:a=>{a.exports=require("querystring")},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")},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")},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")},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")},79868:a=>{a.exports=require("node:sqlite")},81143:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>j});var d=c(23211),e=c(65573),f=c(89718),g=c(30906),h=c(7985),i=c(33792);async function j(){try{let a=await (0,f.mt)(),b=await (0,e.UL)(),c=await (0,i.dY)(b.get("auth_token")?.value),j=!1!==a.requireLogin,k=a.authMode||"password",l=a.ssoType||"oidc",m=String(c?.oidcName||"").trim(),n=String(c?.oidcEmail||"").trim(),o=String(c?.samlName||"").trim(),p=String(c?.samlEmail||"").trim(),q=o||p||m||n||(c?.saml?"SAML user":c?.oidc?"OIDC user":"Password user"),r=c?.saml?"SAML":c?.oidc?"OIDC":"Password";return d.NextResponse.json({requireLogin:j,authMode:k,ssoType:l,oidcConfigured:(0,g.EJ)(a),oidcLoginLabel:(a.oidcLoginLabel||"Sign in with OIDC").trim()||"Sign in with OIDC",samlConfigured:(0,h.eI)(a),samlLoginLabel:(a.samlLoginLabel||"Sign in with SAML SSO").trim()||"Sign in with SAML SSO",hasPassword:!!a.password,displayName:q,loginMethod:r,authenticated:!!c,oidcName:m||null,oidcEmail:n||null,oidcLogin:!!c?.oidc,samlName:o||null,samlEmail:p||null,samlLogin:!!c?.saml})}catch{return d.NextResponse.json({requireLogin:!0,authMode:"password",ssoType:"oidc",oidcConfigured:!1,oidcLoginLabel:"Sign in with OIDC",samlConfigured:!1,samlLoginLabel:"Sign in with SAML SSO",hasPassword:!1,displayName:"Password user",loginMethod:"Password",authenticated:!1,oidcName:null,oidcEmail:null,oidcLogin:!1,samlName:null,samlEmail:null,samlLogin:!1})}}},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,5081,9100],()=>b(b.s=6861));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")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11723:a=>{a.exports=require("querystring")},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")},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")},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")},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")},79868:a=>{a.exports=require("node:sqlite")},81143:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>j});var d=c(23211),e=c(65573),f=c(89718),g=c(30906),h=c(7985),i=c(33792);async function j(){try{let a=await (0,f.mt)(),b=await (0,e.UL)(),c=await (0,i.dY)(b.get("auth_token")?.value),j=!1!==a.requireLogin,k=a.authMode||"password",l=a.ssoType||"oidc",m=String(c?.oidcName||"").trim(),n=String(c?.oidcEmail||"").trim(),o=String(c?.samlName||"").trim(),p=String(c?.samlEmail||"").trim(),q=o||p||m||n||(c?.saml?"SAML user":c?.oidc?"OIDC user":"Password user"),r=c?.saml?"SAML":c?.oidc?"OIDC":"Password";return d.NextResponse.json({requireLogin:j,authMode:k,ssoType:l,oidcConfigured:(0,g.EJ)(a),oidcLoginLabel:(a.oidcLoginLabel||"Sign in with OIDC").trim()||"Sign in with OIDC",samlConfigured:(0,h.eI)(a),samlLoginLabel:(a.samlLoginLabel||"Sign in with SAML SSO").trim()||"Sign in with SAML SSO",hasPassword:!!a.password,displayName:q,loginMethod:r,authenticated:!!c,oidcName:m||null,oidcEmail:n||null,oidcLogin:!!c?.oidc,samlName:o||null,samlEmail:p||null,samlLogin:!!c?.saml})}catch{return d.NextResponse.json({requireLogin:!0,authMode:"password",ssoType:"oidc",oidcConfigured:!1,oidcLoginLabel:"Sign in with OIDC",samlConfigured:!1,samlLoginLabel:"Sign in with SAML SSO",hasPassword:!1,displayName:"Password user",loginMethod:"Password",authenticated:!1,oidcName:null,oidcEmail:null,oidcLogin:!1,samlName:null,samlEmail:null,samlLogin:!1})}}},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,5081,9100],()=>b(b.s=6861));module.exports=c})();
|