@hexclave/react 1.0.5 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/components-page/account-settings/payments/payments-panel.js +3 -3
  2. package/dist/components-page/account-settings/payments/payments-panel.js.map +1 -1
  3. package/dist/components-page/cli-auth-confirm.js +1 -1
  4. package/dist/components-page/cli-auth-confirm.test.js +2 -2
  5. package/dist/components-page/hexclave-handler-client.d.ts +13 -1
  6. package/dist/components-page/hexclave-handler-client.d.ts.map +1 -1
  7. package/dist/components-page/hexclave-handler-client.js +46 -11
  8. package/dist/components-page/hexclave-handler-client.js.map +1 -1
  9. package/dist/components-page/hexclave-handler-client.test.d.ts +1 -0
  10. package/dist/components-page/hexclave-handler-client.test.js +51 -0
  11. package/dist/components-page/hexclave-handler-client.test.js.map +1 -0
  12. package/dist/dev-tool/dev-tool-core.js +4 -4
  13. package/dist/dev-tool/dev-tool-core.js.map +1 -1
  14. package/dist/dev-tool/dev-tool-trigger-position.test.js +1 -1
  15. package/dist/esm/components-page/account-settings/payments/payments-panel.js +2 -2
  16. package/dist/esm/components-page/account-settings/payments/payments-panel.js.map +1 -1
  17. package/dist/esm/components-page/cli-auth-confirm.js +1 -1
  18. package/dist/esm/components-page/cli-auth-confirm.test.js +2 -2
  19. package/dist/esm/components-page/hexclave-handler-client.d.ts +12 -1
  20. package/dist/esm/components-page/hexclave-handler-client.d.ts.map +1 -1
  21. package/dist/esm/components-page/hexclave-handler-client.js +48 -14
  22. package/dist/esm/components-page/hexclave-handler-client.js.map +1 -1
  23. package/dist/esm/components-page/hexclave-handler-client.test.d.ts +1 -0
  24. package/dist/esm/components-page/hexclave-handler-client.test.js +51 -0
  25. package/dist/esm/components-page/hexclave-handler-client.test.js.map +1 -0
  26. package/dist/esm/dev-tool/dev-tool-core.js +4 -4
  27. package/dist/esm/dev-tool/dev-tool-core.js.map +1 -1
  28. package/dist/esm/dev-tool/dev-tool-trigger-position.test.js +1 -1
  29. package/dist/esm/generated/env.d.ts +26 -0
  30. package/dist/esm/{lib → generated}/env.d.ts.map +1 -1
  31. package/dist/esm/generated/env.js +67 -0
  32. package/dist/esm/generated/env.js.map +1 -0
  33. package/dist/esm/global.d.ts +8 -1
  34. package/dist/esm/global.d.ts.map +1 -0
  35. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -1
  36. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js +263 -3
  37. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -1
  38. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts +3 -1
  39. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -1
  40. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js +54 -27
  41. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
  42. package/dist/esm/lib/hexclave-app/apps/implementations/common.d.ts +8 -8
  43. package/dist/esm/lib/hexclave-app/apps/implementations/common.d.ts.map +1 -1
  44. package/dist/esm/lib/hexclave-app/apps/implementations/common.js +29 -15
  45. package/dist/esm/lib/hexclave-app/apps/implementations/common.js.map +1 -1
  46. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.js +1 -1
  47. package/dist/esm/lib/hexclave-app/url-targets.d.ts.map +1 -1
  48. package/dist/esm/lib/hexclave-app/url-targets.js +25 -11
  49. package/dist/esm/lib/hexclave-app/url-targets.js.map +1 -1
  50. package/dist/esm/lib/hexclave-app/url-targets.test.js +12 -0
  51. package/dist/esm/lib/hexclave-app/url-targets.test.js.map +1 -1
  52. package/dist/generated/env.d.ts +26 -0
  53. package/dist/{lib → generated}/env.d.ts.map +1 -1
  54. package/dist/generated/env.js +69 -0
  55. package/dist/generated/env.js.map +1 -0
  56. package/dist/global.d.ts +8 -1
  57. package/dist/global.d.ts.map +1 -0
  58. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -1
  59. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js +263 -3
  60. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -1
  61. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts +3 -1
  62. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -1
  63. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js +53 -26
  64. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
  65. package/dist/lib/hexclave-app/apps/implementations/common.d.ts +8 -8
  66. package/dist/lib/hexclave-app/apps/implementations/common.d.ts.map +1 -1
  67. package/dist/lib/hexclave-app/apps/implementations/common.js +29 -15
  68. package/dist/lib/hexclave-app/apps/implementations/common.js.map +1 -1
  69. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.js +1 -1
  70. package/dist/lib/hexclave-app/url-targets.d.ts.map +1 -1
  71. package/dist/lib/hexclave-app/url-targets.js +25 -11
  72. package/dist/lib/hexclave-app/url-targets.js.map +1 -1
  73. package/dist/lib/hexclave-app/url-targets.test.js +12 -0
  74. package/dist/lib/hexclave-app/url-targets.test.js.map +1 -1
  75. package/package.json +8 -6
  76. package/src/components-page/account-settings/payments/payments-panel.tsx +2 -2
  77. package/src/components-page/hexclave-handler-client.test.tsx +64 -0
  78. package/src/components-page/hexclave-handler-client.tsx +51 -12
  79. package/src/dev-tool/dev-tool-core.ts +2 -2
  80. package/src/generated/.gitignore +1 -1
  81. package/src/global.d.ts +8 -1
  82. package/src/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.ts +316 -3
  83. package/src/lib/hexclave-app/apps/implementations/client-app-impl.ts +69 -25
  84. package/src/lib/hexclave-app/apps/implementations/common.ts +34 -14
  85. package/src/lib/hexclave-app/url-targets.test.ts +17 -0
  86. package/src/lib/hexclave-app/url-targets.ts +25 -7
  87. package/dist/esm/lib/env.d.ts +0 -42
  88. package/dist/esm/lib/env.js +0 -93
  89. package/dist/esm/lib/env.js.map +0 -1
  90. package/dist/lib/env.d.ts +0 -42
  91. package/dist/lib/env.js +0 -95
  92. package/dist/lib/env.js.map +0 -1
  93. package/src/lib/env.ts +0 -93
@@ -1 +1 @@
1
- {"version":3,"file":"client-app-impl.cross-domain.test.js","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { describe, expect, it, vi } from \"vitest\";\nimport { StackClientApp } from \"../interfaces/client-app\";\n\nfunction createMockDocument(): Document {\n const cookieJar = new Map<string, string>();\n return {\n get cookie() {\n return [...cookieJar.entries()].map(([key, value]) => `${key}=${value}`).join(\"; \");\n },\n set cookie(str: string) {\n const [nameValue] = str.split(\";\");\n const eqIndex = nameValue.indexOf(\"=\");\n if (eqIndex < 0) return;\n cookieJar.set(nameValue.slice(0, eqIndex).trim(), nameValue.slice(eqIndex + 1).trim());\n },\n createElement: () => ({}),\n } as any;\n}\n\ndescribe(\"StackClientApp cross-domain auth\", () => {\n it(\"uses the fresh post-auth refresh token when minting a cross-domain handoff\", async () => {\n const clientApp = new StackClientApp({\n baseUrl: \"http://localhost:12345\",\n projectId: \"00000000-0000-4000-8000-000000000000\",\n publishableClientKey: \"stack-pk-test\",\n tokenStore: {\n accessToken: \"stale-access-token\",\n refreshToken: \"stale-refresh-token\",\n },\n redirectMethod: \"none\",\n noAutomaticPrefetch: true,\n });\n\n const clientInterface = Reflect.get(clientApp, \"_interface\");\n const originalSendClientRequest = Reflect.get(clientInterface, \"sendClientRequest\");\n const capturedRefreshTokens: string[] = [];\n\n Reflect.set(clientInterface, \"sendClientRequest\", async (_path: unknown, _requestOptions: unknown, session: unknown) => {\n const getRefreshToken = Reflect.get(session ?? {}, \"getRefreshToken\");\n if (typeof getRefreshToken !== \"function\") {\n throw new Error(\"Expected cross-domain auth to pass a session to the client interface.\");\n }\n const refreshToken = getRefreshToken.call(session);\n const refreshTokenString = Reflect.get(refreshToken ?? {}, \"token\");\n if (typeof refreshTokenString !== \"string\") {\n throw new Error(\"Expected cross-domain auth to pass a refresh-token-backed session.\");\n }\n capturedRefreshTokens.push(refreshTokenString);\n return {\n ok: true,\n json: async () => ({ redirect_url: \"https://example.com/handler/oauth-callback?code=handoff-code&state=handoff-state\" }),\n };\n });\n\n try {\n const createCrossDomainAuthRedirectUrl = Reflect.get(clientApp, \"_createCrossDomainAuthRedirectUrl\");\n if (typeof createCrossDomainAuthRedirectUrl !== \"function\") {\n throw new Error(\"Expected StackClientApp to expose _createCrossDomainAuthRedirectUrl in tests.\");\n }\n\n await expect(createCrossDomainAuthRedirectUrl.call(clientApp, {\n redirectUri: \"https://example.com/handler/oauth-callback\",\n state: \"handoff-state\",\n codeChallenge: \"abcdefghijklmnopqrstuvwxyzABCDEFG_0123456789-._~\",\n afterCallbackRedirectUrl: \"https://example.com/account-settings\",\n overrideTokenStoreInit: {\n accessToken: \"fresh-access-token\",\n refreshToken: \"fresh-refresh-token\",\n },\n })).resolves.toBe(\"https://example.com/handler/oauth-callback?code=handoff-code&state=handoff-state\");\n } finally {\n Reflect.set(clientInterface, \"sendClientRequest\", originalSendClientRequest);\n }\n\n expect(capturedRefreshTokens).toEqual([\"fresh-refresh-token\"]);\n });\n\n it(\"uses a fresh nested OAuth state while preserving the outer cross-domain return state\", async () => {\n const projectId = \"00000000-0000-4000-8000-000000000002\";\n const clientApp = new StackClientApp({\n baseUrl: \"http://localhost:12345\",\n projectId,\n publishableClientKey: \"stack-pk-test\",\n tokenStore: \"memory\",\n redirectMethod: \"window\",\n urls: {\n default: { type: \"hosted\" },\n },\n noAutomaticPrefetch: true,\n });\n const outerState = \"outer-cross-domain-state\";\n const outerCodeChallenge = \"abcdefghijklmnopqrstuvwxyzABCDEFG_0123456789-._~\";\n const currentUrl = new URL(`https://${projectId}.example-stack-hosted.test/handler/sign-in`);\n currentUrl.searchParams.set(\"after_auth_return_to\", `https://demo.stack-auth.com/?hexclave_cross_domain_auth=1&hexclave_cross_domain_state=${outerState}`);\n currentUrl.searchParams.set(\"hexclave_cross_domain_state\", outerState);\n currentUrl.searchParams.set(\"hexclave_cross_domain_code_challenge\", outerCodeChallenge);\n currentUrl.searchParams.set(\"hexclave_cross_domain_after_callback_redirect_url\", \"https://demo.stack-auth.com/\");\n currentUrl.searchParams.set(\"stack_nested_cross_domain_auth_refresh_token_id\", \"source-session\");\n currentUrl.searchParams.set(\"stack_nested_cross_domain_auth_callback_url\", \"https://demo.stack-auth.com/\");\n\n const previousWindow = globalThis.window;\n const previousDocument = globalThis.document;\n let redirectedUrl = \"\";\n vi.spyOn(clientApp as any, \"_getCurrentRefreshTokenIdIfSignedIn\").mockResolvedValue(null);\n vi.spyOn(clientApp as any, \"_getCrossDomainHandoffParamsForRedirect\").mockResolvedValue({\n state: \"fresh-nested-state\",\n codeChallenge: \"fresh-nested-code-challenge\",\n });\n vi.spyOn(clientApp as any, \"_isTrusted\").mockResolvedValue(true);\n\n globalThis.document = createMockDocument();\n globalThis.window = {\n location: {\n href: currentUrl.toString(),\n replace: (url: string) => {\n redirectedUrl = url;\n throw new Error(\"INTENTIONAL_TEST_ABORT\");\n },\n },\n } as any;\n\n try {\n await expect((clientApp as any)._maybeHandleNestedCrossDomainAuth()).rejects.toThrowError(\"INTENTIONAL_TEST_ABORT\");\n } finally {\n globalThis.window = previousWindow;\n globalThis.document = previousDocument;\n }\n\n const redirectUrl = new URL(redirectedUrl);\n expect(redirectUrl.searchParams.get(\"state\")).toBe(\"fresh-nested-state\");\n expect(redirectUrl.searchParams.get(\"code_challenge\")).toBe(\"fresh-nested-code-challenge\");\n const redirectUri = new URL(redirectUrl.searchParams.get(\"redirect_uri\") ?? \"\");\n expect(redirectUri.searchParams.get(\"hexclave_cross_domain_state\")).toBe(outerState);\n expect(redirectUri.searchParams.get(\"hexclave_cross_domain_code_challenge\")).toBe(outerCodeChallenge);\n expect(redirectUri.searchParams.get(\"hexclave_cross_domain_after_callback_redirect_url\")).toBe(\"https://demo.stack-auth.com/\");\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"client-app-impl.cross-domain.test.js","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { describe, expect, it, vi } from \"vitest\";\nimport { AccessToken } from \"@hexclave/shared/dist/sessions\";\nimport { Store } from \"@hexclave/shared/dist/utils/stores\";\nimport { StackClientApp } from \"../interfaces/client-app\";\n\nfunction createAccessTokenString(refreshTokenId: string): string {\n const encode = (value: unknown) => Buffer.from(JSON.stringify(value)).toString(\"base64url\");\n const nowSeconds = Math.floor(Date.now() / 1000);\n return [\n encode({ alg: \"none\", typ: \"JWT\" }),\n encode({\n sub: \"user-id\",\n exp: nowSeconds + 60,\n iat: nowSeconds,\n iss: \"https://api.example.test\",\n aud: \"project-id\",\n project_id: \"project-id\",\n branch_id: \"main\",\n refresh_token_id: refreshTokenId,\n role: \"authenticated\",\n name: null,\n email: null,\n email_verified: false,\n selected_team_id: null,\n signed_up_at: nowSeconds,\n is_anonymous: false,\n is_restricted: false,\n restricted_reason: null,\n requires_totp_mfa: false,\n }),\n \"\",\n ].join(\".\");\n}\n\nfunction createMockDocument(): Document {\n const cookieJar = new Map<string, string>();\n return {\n get cookie() {\n return [...cookieJar.entries()].map(([key, value]) => `${key}=${value}`).join(\"; \");\n },\n set cookie(str: string) {\n const [nameValue] = str.split(\";\");\n const eqIndex = nameValue.indexOf(\"=\");\n if (eqIndex < 0) return;\n cookieJar.set(nameValue.slice(0, eqIndex).trim(), nameValue.slice(eqIndex + 1).trim());\n },\n createElement: () => ({}),\n } as any;\n}\n\ndescribe(\"StackClientApp cross-domain auth\", () => {\n it(\"uses the fresh post-auth refresh token when minting a cross-domain handoff\", async () => {\n const freshAccessToken = createAccessTokenString(\"fresh-refresh-token-id\");\n const clientApp = new StackClientApp({\n baseUrl: \"http://localhost:12345\",\n projectId: \"00000000-0000-4000-8000-000000000000\",\n publishableClientKey: \"stack-pk-test\",\n tokenStore: {\n accessToken: createAccessTokenString(\"stale-refresh-token-id\"),\n refreshToken: \"stale-refresh-token\",\n },\n redirectMethod: \"none\",\n noAutomaticPrefetch: true,\n });\n\n const clientInterface = Reflect.get(clientApp, \"_interface\");\n const originalSendClientRequest = Reflect.get(clientInterface, \"sendClientRequest\");\n const originalFetchNewAccessToken = Reflect.get(clientInterface, \"fetchNewAccessToken\");\n const capturedRefreshTokens: string[] = [];\n const capturedAccessTokenRefreshTokenIds: string[] = [];\n const refreshedRawRefreshTokens: string[] = [];\n\n Reflect.set(clientInterface, \"sendClientRequest\", async (_path: unknown, _requestOptions: unknown, session: unknown) => {\n const getRefreshToken = Reflect.get(session ?? {}, \"getRefreshToken\");\n const getOrFetchLikelyValidTokens = Reflect.get(session ?? {}, \"getOrFetchLikelyValidTokens\");\n if (typeof getRefreshToken !== \"function\") {\n throw new Error(\"Expected cross-domain auth to pass a session to the client interface.\");\n }\n if (typeof getOrFetchLikelyValidTokens !== \"function\") {\n throw new Error(\"Expected cross-domain auth to pass a session with token accessors.\");\n }\n const refreshToken = getRefreshToken.call(session);\n const refreshTokenString = Reflect.get(refreshToken ?? {}, \"token\");\n if (typeof refreshTokenString !== \"string\") {\n throw new Error(\"Expected cross-domain auth to pass a refresh-token-backed session.\");\n }\n capturedRefreshTokens.push(refreshTokenString);\n const tokens = await getOrFetchLikelyValidTokens.call(session, 0, null);\n capturedAccessTokenRefreshTokenIds.push(tokens.accessToken.payload.refresh_token_id);\n return {\n ok: true,\n json: async () => ({ redirect_url: \"https://example.com/handler/oauth-callback?code=handoff-code&state=handoff-state\" }),\n };\n });\n Reflect.set(clientInterface, \"fetchNewAccessToken\", async (refreshToken: unknown) => {\n const refreshTokenString = Reflect.get(refreshToken ?? {}, \"token\");\n if (typeof refreshTokenString !== \"string\") {\n throw new Error(\"Expected refresh token while fetching a new access token.\");\n }\n refreshedRawRefreshTokens.push(refreshTokenString);\n return AccessToken.createIfValid(freshAccessToken) ?? (() => {\n throw new Error(\"Expected test access token to be valid\");\n })();\n });\n\n try {\n const createCrossDomainAuthRedirectUrl = Reflect.get(clientApp, \"_createCrossDomainAuthRedirectUrl\");\n if (typeof createCrossDomainAuthRedirectUrl !== \"function\") {\n throw new Error(\"Expected StackClientApp to expose _createCrossDomainAuthRedirectUrl in tests.\");\n }\n\n await expect(createCrossDomainAuthRedirectUrl.call(clientApp, {\n redirectUri: \"https://example.com/handler/oauth-callback\",\n state: \"handoff-state\",\n codeChallenge: \"abcdefghijklmnopqrstuvwxyzABCDEFG_0123456789-._~\",\n afterCallbackRedirectUrl: \"https://example.com/account-settings\",\n overrideTokenStoreInit: {\n accessToken: createAccessTokenString(\"fresh-stale-refresh-token-id\"),\n refreshToken: \"fresh-refresh-token\",\n },\n })).resolves.toBe(\"https://example.com/handler/oauth-callback?code=handoff-code&state=handoff-state\");\n } finally {\n Reflect.set(clientInterface, \"sendClientRequest\", originalSendClientRequest);\n Reflect.set(clientInterface, \"fetchNewAccessToken\", originalFetchNewAccessToken);\n }\n\n expect(refreshedRawRefreshTokens).toEqual([\"fresh-refresh-token\"]);\n expect(capturedRefreshTokens).toEqual([\"fresh-refresh-token\"]);\n expect(capturedAccessTokenRefreshTokenIds).toEqual([\"fresh-refresh-token-id\"]);\n });\n\n it(\"uses a fresh nested OAuth state while preserving the outer cross-domain return state\", async () => {\n const projectId = \"00000000-0000-4000-8000-000000000002\";\n const clientApp = new StackClientApp({\n baseUrl: \"http://localhost:12345\",\n projectId,\n publishableClientKey: \"stack-pk-test\",\n tokenStore: \"memory\",\n redirectMethod: \"window\",\n urls: {\n default: { type: \"hosted\" },\n },\n noAutomaticPrefetch: true,\n });\n const outerState = \"outer-cross-domain-state\";\n const outerCodeChallenge = \"abcdefghijklmnopqrstuvwxyzABCDEFG_0123456789-._~\";\n const currentUrl = new URL(`https://${projectId}.example-stack-hosted.test/handler/sign-in`);\n currentUrl.searchParams.set(\"after_auth_return_to\", `https://demo.stack-auth.com/?hexclave_cross_domain_auth=1&hexclave_cross_domain_state=${outerState}`);\n currentUrl.searchParams.set(\"hexclave_cross_domain_state\", outerState);\n currentUrl.searchParams.set(\"hexclave_cross_domain_code_challenge\", outerCodeChallenge);\n currentUrl.searchParams.set(\"hexclave_cross_domain_after_callback_redirect_url\", \"https://demo.stack-auth.com/\");\n currentUrl.searchParams.set(\"stack_nested_cross_domain_auth_refresh_token_id\", \"source-session\");\n currentUrl.searchParams.set(\"stack_nested_cross_domain_auth_callback_url\", \"https://demo.stack-auth.com/\");\n\n const previousWindow = globalThis.window;\n const previousDocument = globalThis.document;\n let redirectedUrl = \"\";\n vi.spyOn(clientApp as any, \"_fetchCurrentRefreshTokenIdIfSignedIn\").mockResolvedValue(null);\n vi.spyOn(clientApp as any, \"_getCrossDomainHandoffParamsForRedirect\").mockResolvedValue({\n state: \"fresh-nested-state\",\n codeChallenge: \"fresh-nested-code-challenge\",\n });\n vi.spyOn(clientApp as any, \"_isTrusted\").mockResolvedValue(true);\n\n globalThis.document = createMockDocument();\n globalThis.window = {\n location: {\n href: currentUrl.toString(),\n replace: (url: string) => {\n redirectedUrl = url;\n throw new Error(\"INTENTIONAL_TEST_ABORT\");\n },\n },\n } as any;\n\n try {\n await expect((clientApp as any)._maybeHandleNestedCrossDomainAuth()).rejects.toThrowError(\"INTENTIONAL_TEST_ABORT\");\n } finally {\n globalThis.window = previousWindow;\n globalThis.document = previousDocument;\n }\n\n const redirectUrl = new URL(redirectedUrl);\n expect(redirectUrl.searchParams.get(\"state\")).toBe(\"fresh-nested-state\");\n expect(redirectUrl.searchParams.get(\"code_challenge\")).toBe(\"fresh-nested-code-challenge\");\n const redirectUri = new URL(redirectUrl.searchParams.get(\"redirect_uri\") ?? \"\");\n expect(redirectUri.searchParams.get(\"hexclave_cross_domain_state\")).toBe(outerState);\n expect(redirectUri.searchParams.get(\"hexclave_cross_domain_code_challenge\")).toBe(outerCodeChallenge);\n expect(redirectUri.searchParams.get(\"hexclave_cross_domain_after_callback_redirect_url\")).toBe(\"https://demo.stack-auth.com/\");\n });\n\n it(\"clears a stale target-domain session before deferring to the source-domain session\", async () => {\n const projectId = \"00000000-0000-4000-8000-000000000006\";\n const hostedAccessToken = createAccessTokenString(\"hosted-old-refresh-token-id\");\n const clientApp = new StackClientApp({\n baseUrl: \"http://localhost:12345\",\n projectId,\n publishableClientKey: \"stack-pk-test\",\n tokenStore: \"memory\",\n redirectMethod: \"window\",\n urls: {\n default: { type: \"hosted\" },\n },\n noAutomaticPrefetch: true,\n });\n const tokenStore = Reflect.get(clientApp, \"_memoryTokenStore\");\n if (!(tokenStore instanceof Store)) {\n throw new Error(\"Expected StackClientApp to use a memory token store in this test.\");\n }\n tokenStore.set({\n refreshToken: \"hosted-old-refresh-token\",\n accessToken: hostedAccessToken,\n });\n\n const currentUrl = new URL(`https://${projectId}.example-stack-hosted.test/handler/sign-in`);\n currentUrl.searchParams.set(\"stack_nested_cross_domain_auth_refresh_token_id\", \"source-anonymous-refresh-token-id\");\n currentUrl.searchParams.set(\"stack_nested_cross_domain_auth_callback_url\", \"https://demo.stack-auth.com/handler/oauth-callback\");\n currentUrl.searchParams.set(\"hexclave_cross_domain_state\", \"outer-state\");\n currentUrl.searchParams.set(\"hexclave_cross_domain_code_challenge\", \"outer-code-challenge\");\n currentUrl.searchParams.set(\"hexclave_cross_domain_after_callback_redirect_url\", \"https://demo.stack-auth.com/app\");\n\n const previousWindow = globalThis.window;\n const previousDocument = globalThis.document;\n let redirectedUrl = \"\";\n const clientInterface = Reflect.get(clientApp, \"_interface\");\n const originalFetchNewAccessToken = Reflect.get(clientInterface, \"fetchNewAccessToken\");\n Reflect.set(clientInterface, \"fetchNewAccessToken\", async () => {\n return AccessToken.createIfValid(hostedAccessToken) ?? (() => {\n throw new Error(\"Expected test access token to be valid\");\n })();\n });\n vi.spyOn(clientApp as any, \"_isTrusted\").mockResolvedValue(true);\n\n globalThis.document = createMockDocument();\n globalThis.window = {\n location: {\n href: currentUrl.toString(),\n replace: (url: string) => {\n redirectedUrl = url;\n throw new Error(\"INTENTIONAL_TEST_ABORT\");\n },\n },\n } as any;\n\n try {\n await expect((clientApp as any)._maybeHandleNestedCrossDomainAuth()).rejects.toThrowError(\"INTENTIONAL_TEST_ABORT\");\n } finally {\n Reflect.set(clientInterface, \"fetchNewAccessToken\", originalFetchNewAccessToken);\n globalThis.window = previousWindow;\n globalThis.document = previousDocument;\n }\n\n expect(tokenStore.get()).toEqual({\n refreshToken: null,\n accessToken: null,\n });\n expect(new URL(redirectedUrl).origin).toBe(\"https://demo.stack-auth.com\");\n });\n\n it(\"uses the latest browser refresh cookie before computing nested cross-domain session IDs\", async () => {\n const projectId = \"00000000-0000-4000-8000-000000000007\";\n const previousWindow = globalThis.window;\n const previousDocument = globalThis.document;\n\n globalThis.document = createMockDocument();\n globalThis.window = {\n location: {\n href: \"https://demo.stack-auth.com/\",\n protocol: \"https:\",\n hostname: \"demo.stack-auth.com\",\n },\n } as any;\n\n const clientApp = new StackClientApp({\n baseUrl: \"http://localhost:12345\",\n projectId,\n publishableClientKey: \"stack-pk-test\",\n tokenStore: \"cookie\",\n redirectMethod: \"none\",\n noAutomaticPrefetch: true,\n });\n const clientInterface = Reflect.get(clientApp, \"_interface\");\n const originalFetchNewAccessToken = Reflect.get(clientInterface, \"fetchNewAccessToken\");\n const refreshedRawRefreshTokens: string[] = [];\n\n try {\n const getBrowserCookieTokenStore = Reflect.get(clientApp, \"_getBrowserCookieTokenStore\");\n if (typeof getBrowserCookieTokenStore !== \"function\") {\n throw new Error(\"Expected StackClientApp to expose _getBrowserCookieTokenStore in tests.\");\n }\n const tokenStore = getBrowserCookieTokenStore.call(clientApp);\n tokenStore.set({\n refreshToken: \"old-refresh-token\",\n accessToken: createAccessTokenString(\"old-refresh-token-id\"),\n });\n\n document.cookie = `__Host-hexclave-refresh-${projectId}--default=${JSON.stringify({\n refresh_token: \"new-refresh-token\",\n updated_at_millis: 1,\n })}`;\n Reflect.set(clientInterface, \"fetchNewAccessToken\", async (refreshToken: unknown) => {\n const refreshTokenString = Reflect.get(refreshToken ?? {}, \"token\");\n if (typeof refreshTokenString !== \"string\") {\n throw new Error(\"Expected refresh token while fetching a new access token.\");\n }\n refreshedRawRefreshTokens.push(refreshTokenString);\n return AccessToken.createIfValid(createAccessTokenString(\"new-refresh-token-id\")) ?? (() => {\n throw new Error(\"Expected test access token to be valid\");\n })();\n });\n\n const fetchCurrentRefreshTokenIdIfSignedIn = Reflect.get(clientApp, \"_fetchCurrentRefreshTokenIdIfSignedIn\");\n if (typeof fetchCurrentRefreshTokenIdIfSignedIn !== \"function\") {\n throw new Error(\"Expected StackClientApp to expose _fetchCurrentRefreshTokenIdIfSignedIn in tests.\");\n }\n await expect(fetchCurrentRefreshTokenIdIfSignedIn.call(clientApp, {\n awaitPendingAuthResolutions: false,\n })).resolves.toBe(\"new-refresh-token-id\");\n } finally {\n Reflect.set(clientInterface, \"fetchNewAccessToken\", originalFetchNewAccessToken);\n globalThis.window = previousWindow;\n globalThis.document = previousDocument;\n }\n\n expect(refreshedRawRefreshTokens).toEqual([\"new-refresh-token\"]);\n });\n\n it(\"uses direct sign-out instead of hosted sign-out redirects when code execution is available\", async () => {\n const clientApp = new StackClientApp({\n baseUrl: \"http://localhost:12345\",\n projectId: \"00000000-0000-4000-8000-000000000003\",\n publishableClientKey: \"stack-pk-test\",\n tokenStore: \"memory\",\n redirectMethod: \"window\",\n urls: {\n handler: \"/handler\",\n signOut: { type: \"hosted\" },\n },\n noAutomaticPrefetch: true,\n });\n const signOutSpy = vi.spyOn(clientApp, \"signOut\").mockRejectedValue(new Error(\"INTENTIONAL_TEST_ABORT\"));\n\n try {\n await expect(clientApp.redirectToSignOut()).rejects.toThrowError(\"INTENTIONAL_TEST_ABORT\");\n expect(signOutSpy).toHaveBeenCalledWith();\n } finally {\n signOutSpy.mockRestore();\n }\n });\n\n it(\"keeps default hosted signOut() on the source domain when afterSignOut is not configured\", async () => {\n const clientApp = new StackClientApp({\n baseUrl: \"http://localhost:12345\",\n projectId: \"00000000-0000-4000-8000-000000000004\",\n publishableClientKey: \"stack-pk-test\",\n tokenStore: \"memory\",\n redirectMethod: \"window\",\n urls: {\n default: { type: \"hosted\" },\n },\n noAutomaticPrefetch: true,\n });\n const currentHref = \"https://demo.stack-auth.com/settings?tab=profile\";\n\n const clientInterface = Reflect.get(clientApp, \"_interface\");\n const originalSignOut = Reflect.get(clientInterface, \"signOut\");\n Reflect.set(clientInterface, \"signOut\", async () => {});\n const previousWindow = globalThis.window;\n const previousDocument = globalThis.document;\n let redirectedUrl = \"\";\n\n globalThis.document = createMockDocument();\n globalThis.window = {\n location: {\n href: currentHref,\n replace: (url: string) => {\n redirectedUrl = url;\n throw new Error(\"INTENTIONAL_TEST_ABORT\");\n },\n },\n } as any;\n\n try {\n const signOut = Reflect.get(clientApp, \"_signOut\");\n if (typeof signOut !== \"function\") {\n throw new Error(\"Expected StackClientApp to expose _signOut in tests.\");\n }\n await expect(signOut.call(clientApp, Reflect.get(clientInterface, \"createSession\").call(clientInterface, {\n refreshToken: null,\n }))).rejects.toThrowError(\"INTENTIONAL_TEST_ABORT\");\n } finally {\n Reflect.set(clientInterface, \"signOut\", originalSignOut);\n globalThis.window = previousWindow;\n globalThis.document = previousDocument;\n }\n\n expect(redirectedUrl).toBe(\"/settings?tab=profile\");\n });\n\n it(\"ignores stale session callbacks after a newer refresh token owns the token store\", async () => {\n const clientApp = new StackClientApp({\n baseUrl: \"http://localhost:12345\",\n projectId: \"00000000-0000-4000-8000-000000000005\",\n publishableClientKey: \"stack-pk-test\",\n tokenStore: \"memory\",\n redirectMethod: \"none\",\n noAutomaticPrefetch: true,\n });\n const oldAccessToken = createAccessTokenString(\"old-refresh-token-id\");\n const refreshedOldAccessToken = createAccessTokenString(\"refreshed-old-refresh-token-id\");\n const newAccessToken = createAccessTokenString(\"new-refresh-token-id\");\n const tokenStore = new Store({\n refreshToken: \"old-refresh-token\",\n accessToken: oldAccessToken,\n });\n const clientInterface = Reflect.get(clientApp, \"_interface\");\n const originalFetchNewAccessToken = Reflect.get(clientInterface, \"fetchNewAccessToken\");\n Reflect.set(clientInterface, \"fetchNewAccessToken\", async () => {\n return AccessToken.createIfValid(refreshedOldAccessToken) ?? (() => {\n throw new Error(\"Expected test access token to be valid\");\n })();\n });\n\n try {\n const getSessionFromTokenStore = Reflect.get(clientApp, \"_getSessionFromTokenStore\");\n if (typeof getSessionFromTokenStore !== \"function\") {\n throw new Error(\"Expected StackClientApp to expose _getSessionFromTokenStore in tests.\");\n }\n const oldSession = getSessionFromTokenStore.call(clientApp, tokenStore);\n tokenStore.set({\n refreshToken: \"new-refresh-token\",\n accessToken: newAccessToken,\n });\n\n await oldSession.fetchNewTokens();\n expect(tokenStore.get()).toEqual({\n refreshToken: \"new-refresh-token\",\n accessToken: newAccessToken,\n });\n\n oldSession.markInvalid();\n expect(tokenStore.get()).toEqual({\n refreshToken: \"new-refresh-token\",\n accessToken: newAccessToken,\n });\n } finally {\n Reflect.set(clientInterface, \"fetchNewAccessToken\", originalFetchNewAccessToken);\n }\n });\n});\n"],"mappings":"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"}
@@ -149,7 +149,7 @@ declare class _HexclaveClientAppImplIncomplete<HasTokenStore extends boolean, Pr
149
149
  protected _currentUrlLooksLikeHexclaveOAuthCallback(): boolean;
150
150
  protected _currentUrlLooksLikeNestedCrossDomainOAuthCallback(): boolean;
151
151
  protected _getOAuthCallbackRedirectUri(): string;
152
- protected _getCurrentRefreshTokenIdIfSignedIn(options?: {
152
+ protected _fetchCurrentRefreshTokenIdIfSignedIn(options?: {
153
153
  awaitPendingAuthResolutions?: boolean;
154
154
  overrideTokenStoreInit?: TokenStoreInit;
155
155
  }): Promise<string | null>;
@@ -183,6 +183,7 @@ declare class _HexclaveClientAppImplIncomplete<HasTokenStore extends boolean, Pr
183
183
  private _parseStructuredRefreshCookie;
184
184
  private _extractRefreshTokenFromCookieMap;
185
185
  protected _getTokensFromCookies(cookies: cookie.Cookies): TokenObject;
186
+ private _getCurrentBrowserCookieTokenStoreValue;
186
187
  protected get _accessTokenCookieName(): string;
187
188
  protected get _legacyAccessTokenCookieName(): string;
188
189
  private _getAllBrowserCookies;
@@ -482,6 +483,7 @@ declare class _HexclaveClientAppImplIncomplete<HasTokenStore extends boolean, Pr
482
483
  protected _signOut(session: InternalSession, options?: {
483
484
  redirectUrl?: URL | string;
484
485
  }): Promise<void>;
486
+ protected _redirectToDefaultAfterSignOut(): Promise<void>;
485
487
  signOut(options?: {
486
488
  redirectUrl?: URL | string;
487
489
  tokenStore?: TokenStoreInit;
@@ -1 +1 @@
1
- {"version":3,"file":"client-app-impl.d.ts","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/client-app-impl.ts"],"mappings":"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"}
1
+ {"version":3,"file":"client-app-impl.d.ts","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/client-app-impl.ts"],"mappings":"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"}
@@ -2,9 +2,9 @@ import { HexclaveAssertionError, captureError, throwErr } from "@hexclave/shared
2
2
  import { neverResolve, runAsynchronously, wait } from "@hexclave/shared/dist/utils/promises";
3
3
  import React, { useCallback, useMemo } from "react";
4
4
  import { HexclaveClientInterface, KnownErrors } from "@hexclave/shared";
5
- import { deepPlainEquals, omit } from "@hexclave/shared/dist/utils/objects";
6
- import { createUrlIfValid, isRelative } from "@hexclave/shared/dist/utils/urls";
7
5
  import { suspend, suspendIfSsr, use } from "@hexclave/shared/dist/utils/react";
6
+ import { deepPlainEquals, omit } from "@hexclave/shared/dist/utils/objects";
7
+ import { createUrlIfValid, getRelativePart, isRelative } from "@hexclave/shared/dist/utils/urls";
8
8
  import { Result } from "@hexclave/shared/dist/utils/results";
9
9
  import { deindent, mergeScopeStrings } from "@hexclave/shared/dist/utils/strings";
10
10
  import { isBrowserLike } from "@hexclave/shared/dist/utils/env";
@@ -13,18 +13,18 @@ import { getTrustedParentDomain, validateRedirectUrl } from "@hexclave/shared/di
13
13
  import { decodeBase32, decodeBase64, encodeBase32, encodeBase64 } from "@hexclave/shared/dist/utils/bytes";
14
14
  import { hexclaveAppInternalsSymbol } from "../../common.js";
15
15
  import { adminProjectCreateOptionsToCrud } from "../../projects/index.js";
16
- import { WebAuthnError, startAuthentication, startRegistration } from "@simplewebauthn/browser";
17
16
  import { InternalSession } from "@hexclave/shared/dist/sessions";
17
+ import { Store, storeLock } from "@hexclave/shared/dist/utils/stores";
18
+ import { WebAuthnError, startAuthentication, startRegistration } from "@simplewebauthn/browser";
18
19
  import { parseJson } from "@hexclave/shared/dist/utils/json";
19
20
  import { DependenciesMap } from "@hexclave/shared/dist/utils/maps";
20
- import { Store, storeLock } from "@hexclave/shared/dist/utils/stores";
21
21
  import { BotChallengeExecutionFailedError, BotChallengeUserCancelledError, withBotChallengeFlow } from "@hexclave/shared/dist/utils/turnstile-flow";
22
22
  import { generateUuid } from "@hexclave/shared/dist/utils/uuids";
23
23
  import * as cookie from "cookie";
24
24
  import { constructRedirectUrl } from "../../../../utils/url.js";
25
25
  import { callOAuthCallback, getNewOAuthProviderOrScopeUrl } from "../../../auth.js";
26
26
  import { createBrowserCookieHelper, createCookieHelper, createPlaceholderCookieHelper, deleteCookie, deleteCookieClient, getCookieClient, isSecure, saveVerifierAndState, setOrDeleteCookie, setOrDeleteCookieClient } from "../../../cookie.js";
27
- import { envVars } from "../../../env.js";
27
+ import { envVars } from "../../../../generated/env.js";
28
28
  import { apiKeyCreationOptionsToCrud } from "../../api-keys/index.js";
29
29
  import { contactChannelCreateOptionsToCrud, contactChannelUpdateOptionsToCrud } from "../../contact-channels/index.js";
30
30
  import { teamCreateOptionsToCrud, teamUpdateOptionsToCrud } from "../../teams/index.js";
@@ -495,15 +495,15 @@ var _HexclaveClientAppImplIncomplete = class _HexclaveClientAppImplIncomplete {
495
495
  for (const param of oauthCallbackResponseQueryParams) currentUrl.searchParams.delete(param);
496
496
  return currentUrl.toString();
497
497
  }
498
- async _getCurrentRefreshTokenIdIfSignedIn(options) {
499
- const tokens = await (await this._getSession(options?.overrideTokenStoreInit, options)).getOrFetchLikelyValidTokens(0, null);
498
+ async _fetchCurrentRefreshTokenIdIfSignedIn(options) {
499
+ const tokens = await (await this._getSession(options?.overrideTokenStoreInit, options)).fetchNewTokens();
500
500
  if (tokens?.refreshToken == null) return null;
501
501
  return tokens.accessToken.payload.refresh_token_id;
502
502
  }
503
503
  async _addNestedCrossDomainAuthParamsToRedirectUrl(options) {
504
504
  const targetUrl = new URL(options.url, options.currentUrl);
505
505
  if (targetUrl.origin === options.currentUrl.origin) return options.url;
506
- const refreshTokenId = await this._getCurrentRefreshTokenIdIfSignedIn({
506
+ const refreshTokenId = await this._fetchCurrentRefreshTokenIdIfSignedIn({
507
507
  awaitPendingAuthResolutions: options.awaitPendingAuthResolutions,
508
508
  overrideTokenStoreInit: options.overrideTokenStoreInit
509
509
  });
@@ -534,7 +534,7 @@ var _HexclaveClientAppImplIncomplete = class _HexclaveClientAppImplIncomplete {
534
534
  const afterCallbackRedirectUrlString = currentUrl.searchParams.get(nestedCrossDomainAuthQueryParams.afterCallbackRedirectUrl);
535
535
  const afterCallbackRedirectUrl = afterCallbackRedirectUrlString == null ? redirectUriUrl : new URL(afterCallbackRedirectUrlString, redirectUriUrl);
536
536
  if (!await this._isTrusted(afterCallbackRedirectUrl.toString())) throw new Error(`Nested cross-domain auth after-callback redirect URL ${afterCallbackRedirectUrlString} is not trusted.`);
537
- if (await this._getCurrentRefreshTokenIdIfSignedIn({ awaitPendingAuthResolutions: false }) !== refreshTokenId) throw new Error("Nested cross-domain auth source session does not match the requested refresh token ID.");
537
+ if (await this._fetchCurrentRefreshTokenIdIfSignedIn({ awaitPendingAuthResolutions: false }) !== refreshTokenId) throw new Error("Nested cross-domain auth source session does not match the requested refresh token ID.");
538
538
  await this._redirectTo({
539
539
  url: await this._createCrossDomainAuthRedirectUrl({
540
540
  redirectUri: redirectUriUrl.toString(),
@@ -547,7 +547,9 @@ var _HexclaveClientAppImplIncomplete = class _HexclaveClientAppImplIncomplete {
547
547
  });
548
548
  return true;
549
549
  }
550
- if (await this._getCurrentRefreshTokenIdIfSignedIn({ awaitPendingAuthResolutions: false }) === refreshTokenId) return false;
550
+ const currentRefreshTokenId = await this._fetchCurrentRefreshTokenIdIfSignedIn({ awaitPendingAuthResolutions: false });
551
+ if (currentRefreshTokenId === refreshTokenId) return false;
552
+ if (currentRefreshTokenId != null) (await this._getSession(void 0, { awaitPendingAuthResolutions: false })).markInvalid();
551
553
  const callbackUrlString = currentUrl.searchParams.get(nestedCrossDomainAuthQueryParams.callbackUrl);
552
554
  if (callbackUrlString == null) throw new HexclaveAssertionError("Nested cross-domain auth URL is missing callback URL");
553
555
  if (isRelative(callbackUrlString)) throw new Error("Nested cross-domain auth callback URL must be absolute.");
@@ -700,6 +702,13 @@ var _HexclaveClientAppImplIncomplete = class _HexclaveClientAppImplIncomplete {
700
702
  accessToken
701
703
  };
702
704
  }
705
+ _getCurrentBrowserCookieTokenStoreValue(old) {
706
+ const tokens = this._getTokensFromCookies(this._getAllBrowserCookies());
707
+ return {
708
+ refreshToken: tokens.refreshToken,
709
+ accessToken: tokens.accessToken ?? (old?.refreshToken === tokens.refreshToken ? old.accessToken : null)
710
+ };
711
+ }
703
712
  get _accessTokenCookieName() {
704
713
  return `hexclave-access`;
705
714
  }
@@ -804,19 +813,12 @@ var _HexclaveClientAppImplIncomplete = class _HexclaveClientAppImplIncomplete {
804
813
  _getBrowserCookieTokenStore() {
805
814
  if (!isBrowserLike()) throw new Error("Cannot use cookie token store on the server!");
806
815
  if (this._storedBrowserCookieTokenStore === null) {
807
- const getCurrentValue = (old) => {
808
- const tokens = this._getTokensFromCookies(this._getAllBrowserCookies());
809
- return {
810
- refreshToken: tokens.refreshToken,
811
- accessToken: tokens.accessToken ?? (old?.refreshToken === tokens.refreshToken ? old.accessToken : null)
812
- };
813
- };
814
- this._storedBrowserCookieTokenStore = new Store(getCurrentValue(null));
816
+ this._storedBrowserCookieTokenStore = new Store(this._getCurrentBrowserCookieTokenStoreValue(null));
815
817
  let hasSucceededInWriting = true;
816
818
  setInterval(() => {
817
819
  if (hasSucceededInWriting) {
818
820
  const oldValue = this._storedBrowserCookieTokenStore.get();
819
- const currentValue = getCurrentValue(oldValue);
821
+ const currentValue = this._getCurrentBrowserCookieTokenStoreValue(oldValue);
820
822
  if (!deepPlainEquals(currentValue, oldValue)) this._storedBrowserCookieTokenStore.set(currentValue);
821
823
  }
822
824
  }, 100);
@@ -842,6 +844,10 @@ var _HexclaveClientAppImplIncomplete = class _HexclaveClientAppImplIncomplete {
842
844
  else throw e;
843
845
  }
844
846
  });
847
+ } else {
848
+ const oldValue = this._storedBrowserCookieTokenStore.get();
849
+ const currentValue = this._getCurrentBrowserCookieTokenStoreValue(oldValue);
850
+ if (!deepPlainEquals(currentValue, oldValue)) this._storedBrowserCookieTokenStore.set(currentValue);
845
851
  }
846
852
  return this._storedBrowserCookieTokenStore;
847
853
  }
@@ -936,17 +942,17 @@ var _HexclaveClientAppImplIncomplete = class _HexclaveClientAppImplIncomplete {
936
942
  accessToken: tokenObj.accessToken
937
943
  });
938
944
  session.onAccessTokenChange((newAccessToken) => {
939
- tokenStore.update((old) => ({
945
+ tokenStore.update((old) => InternalSession.calculateSessionKey(old) === sessionKey ? {
940
946
  ...old,
941
947
  accessToken: newAccessToken?.token ?? null
942
- }));
948
+ } : old);
943
949
  });
944
950
  session.onInvalidate(() => {
945
- tokenStore.update((old) => ({
951
+ tokenStore.update((old) => InternalSession.calculateSessionKey(old) === sessionKey ? {
946
952
  ...old,
947
953
  accessToken: null,
948
954
  refreshToken: null
949
- }));
955
+ } : old);
950
956
  });
951
957
  let sessionsBySessionKey = this._sessionsByTokenStoreAndSessionKey.get(tokenStore) ?? /* @__PURE__ */ new Map();
952
958
  this._sessionsByTokenStoreAndSessionKey.set(tokenStore, sessionsBySessionKey);
@@ -1895,17 +1901,17 @@ var _HexclaveClientAppImplIncomplete = class _HexclaveClientAppImplIncomplete {
1895
1901
  }
1896
1902
  _getBotChallengeSiteKeys() {
1897
1903
  if (!isBrowserLike()) return null;
1898
- const visibleSiteKey = envVars.NEXT_PUBLIC_STACK_BOT_CHALLENGE_SITE_KEY;
1904
+ const visibleSiteKey = envVars.HEXCLAVE_BOT_CHALLENGE_SITE_KEY;
1899
1905
  if (!visibleSiteKey) {
1900
1906
  if (!this._botChallengeSiteKeysWarned) {
1901
1907
  this._botChallengeSiteKeysWarned = true;
1902
- console.warn("[stack-auth] NEXT_PUBLIC_STACK_BOT_CHALLENGE_SITE_KEY is not set — bot challenge fraud protection is disabled. Set the env variable to enable it.");
1908
+ console.warn("[stack-auth] HEXCLAVE_BOT_CHALLENGE_SITE_KEY is not set — bot challenge fraud protection is disabled. Set the env variable to enable it.");
1903
1909
  }
1904
1910
  return null;
1905
1911
  }
1906
1912
  return {
1907
1913
  visibleSiteKey,
1908
- invisibleSiteKey: envVars.NEXT_PUBLIC_STACK_BOT_CHALLENGE_INVISIBLE_SITE_KEY ?? visibleSiteKey
1914
+ invisibleSiteKey: envVars.HEXCLAVE_BOT_CHALLENGE_INVISIBLE_SITE_KEY ?? visibleSiteKey
1909
1915
  };
1910
1916
  }
1911
1917
  _getBotChallengeFlowFailure(error) {
@@ -2027,6 +2033,7 @@ var _HexclaveClientAppImplIncomplete = class _HexclaveClientAppImplIncomplete {
2027
2033
  }
2028
2034
  async _createCrossDomainAuthRedirectUrl(options) {
2029
2035
  const session = await this._getSession(options.overrideTokenStoreInit, { awaitPendingAuthResolutions: options.awaitPendingAuthResolutions });
2036
+ await session.fetchNewTokens();
2030
2037
  const response = await this._interface.sendClientRequest("/auth/oauth/cross-domain/authorize", {
2031
2038
  method: "POST",
2032
2039
  headers: { "Content-Type": "application/json" },
@@ -2123,6 +2130,8 @@ var _HexclaveClientAppImplIncomplete = class _HexclaveClientAppImplIncomplete {
2123
2130
  return await this._redirectToHandler("signUp", options);
2124
2131
  }
2125
2132
  async redirectToSignOut(options) {
2133
+ const configuredSignOutTarget = this._urlOptions.signOut ?? this._urlOptions.default;
2134
+ if (typeof configuredSignOutTarget !== "string" && configuredSignOutTarget?.type === "hosted") return await this.signOut();
2126
2135
  return await this._redirectToHandler("signOut", options);
2127
2136
  }
2128
2137
  async redirectToEmailVerification(options) {
@@ -2660,9 +2669,27 @@ var _HexclaveClientAppImplIncomplete = class _HexclaveClientAppImplIncomplete {
2660
2669
  url: options.redirectUrl,
2661
2670
  replace: true
2662
2671
  });
2663
- else await this.redirectToAfterSignOut();
2672
+ else await this._redirectToDefaultAfterSignOut();
2664
2673
  });
2665
2674
  }
2675
+ async _redirectToDefaultAfterSignOut() {
2676
+ if (this._urlOptions.afterSignOut != null) {
2677
+ await this.redirectToAfterSignOut({ replace: true });
2678
+ return;
2679
+ }
2680
+ if (this._urlOptions.home != null) {
2681
+ await this.redirectToHome({ replace: true });
2682
+ return;
2683
+ }
2684
+ if (this._urlOptions.default?.type === "hosted" && typeof window !== "undefined") {
2685
+ await this._redirectTo({
2686
+ url: getRelativePart(new URL(window.location.href)),
2687
+ replace: true
2688
+ });
2689
+ return;
2690
+ }
2691
+ await this.redirectToAfterSignOut({ replace: true });
2692
+ }
2666
2693
  async signOut(options) {
2667
2694
  const user = await this.getUser({ tokenStore: options?.tokenStore ?? void 0 });
2668
2695
  if (user) await user.signOut({ redirectUrl: options?.redirectUrl });