@absolutejs/auth 0.22.1 → 0.22.3

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/dist/index.js CHANGED
@@ -2436,6 +2436,9 @@ var callback = ({
2436
2436
  }, {
2437
2437
  cookie: t3.Cookie({
2438
2438
  auth_provider: authProviderOption,
2439
+ code_verifier: t3.Optional(t3.String()),
2440
+ origin_url: t3.Optional(t3.String()),
2441
+ state: t3.Optional(t3.String()),
2439
2442
  user_session_id: userSessionIdTypebox
2440
2443
  })
2441
2444
  });
@@ -2487,7 +2490,12 @@ var profile = ({
2487
2490
  });
2488
2491
  return err instanceof Error ? status("Internal Server Error", `${err.message} - ${err.stack ?? ""}`) : status("Internal Server Error", `Failed to validate authorization code: Unknown status: ${err}`);
2489
2492
  }
2490
- }, { cookie: t4.Cookie({ user_session_id: userSessionIdTypebox }) });
2493
+ }, {
2494
+ cookie: t4.Cookie({
2495
+ auth_provider: authProviderOption,
2496
+ user_session_id: userSessionIdTypebox
2497
+ })
2498
+ });
2491
2499
 
2492
2500
  // src/protectRoute.ts
2493
2501
  import { Elysia as Elysia5, t as t5 } from "elysia";
@@ -2503,7 +2511,7 @@ var protectRoutePlugin = () => new Elysia5().use(sessionStore()).guard({ cookie:
2503
2511
  message: "User is not authenticated"
2504
2512
  }) ?? status("Unauthorized", "User is not authenticated");
2505
2513
  }
2506
- return handleAuth(user);
2514
+ return await handleAuth(user);
2507
2515
  }
2508
2516
  })).as("global");
2509
2517
 
@@ -2571,7 +2579,12 @@ var refresh = ({
2571
2579
  });
2572
2580
  return status("Internal Server Error", "Failed to refresh token");
2573
2581
  }
2574
- }, { cookie: t6.Cookie({ user_session_id: userSessionIdTypebox }) });
2582
+ }, {
2583
+ cookie: t6.Cookie({
2584
+ auth_provider: authProviderOption,
2585
+ user_session_id: userSessionIdTypebox
2586
+ })
2587
+ });
2575
2588
 
2576
2589
  // src/revoke.ts
2577
2590
  import { Elysia as Elysia7, t as t7 } from "elysia";
@@ -2630,7 +2643,12 @@ var revoke = ({
2630
2643
  });
2631
2644
  return status("Internal Server Error", "Failed to revoke token");
2632
2645
  }
2633
- }, { cookie: t7.Cookie({ user_session_id: userSessionIdTypebox }) });
2646
+ }, {
2647
+ cookie: t7.Cookie({
2648
+ auth_provider: authProviderOption,
2649
+ user_session_id: userSessionIdTypebox
2650
+ })
2651
+ });
2634
2652
 
2635
2653
  // src/sessionCleanup.ts
2636
2654
  import { Elysia as Elysia8 } from "elysia";
@@ -2774,6 +2792,7 @@ var signout = ({
2774
2792
  return new Response(null, { status: 204 });
2775
2793
  }, {
2776
2794
  cookie: t8.Cookie({
2795
+ auth_provider: authProviderOption,
2777
2796
  user_session_id: t8.Optional(t8.TemplateLiteral("${string}-${string}-${string}-${string}-${string}"))
2778
2797
  })
2779
2798
  });
@@ -2902,5 +2921,5 @@ export {
2902
2921
  absoluteAuth
2903
2922
  };
2904
2923
 
2905
- //# debugId=6F7DFC3827387EBC64756E2164756E21
2924
+ //# debugId=194F20615684A32064756E2164756E21
2906
2925
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -7,19 +7,19 @@
7
7
  "import {\n\tgenerateCodeVerifier,\n\tgenerateState,\n\tisPKCEProviderOption\n} from 'citra';\nimport { Elysia, t } from 'elysia';\nimport { COOKIE_DURATION } from './constants';\nimport { authProviderOption } from './typebox';\nimport {\n\tAuthorizeRoute,\n\tClientProviders,\n\tOnAuthorizeError,\n\tOnAuthorizeSuccess\n} from './types';\n\ntype AuthorizeProps = {\n\tclientProviders: ClientProviders;\n\tauthorizeRoute?: AuthorizeRoute;\n\tonAuthorizeSuccess: OnAuthorizeSuccess;\n\tonAuthorizeError: OnAuthorizeError;\n};\n\nconst parseReferer = (headerReferer: string | undefined) => {\n\tif (!headerReferer) return '/';\n\n\ttry {\n\t\tconst url = new URL(headerReferer);\n\n\t\treturn url.pathname + url.search;\n\t} catch {\n\t\tif (headerReferer.startsWith('/') && !headerReferer.startsWith('//')) {\n\t\t\treturn headerReferer;\n\t\t}\n\n\t\treturn '/';\n\t}\n};\n\nexport const authorize = ({\n\tclientProviders,\n\tauthorizeRoute = '/oauth2/:provider/authorization',\n\tonAuthorizeSuccess,\n\tonAuthorizeError\n}: AuthorizeProps) =>\n\tnew Elysia().get(\n\t\tauthorizeRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tredirect,\n\t\t\tcookie: { state, code_verifier, auth_provider, origin_url },\n\t\t\tparams: { provider },\n\t\t\theaders\n\t\t}) => {\n\t\t\tif (\n\t\t\t\tauth_provider === undefined ||\n\t\t\t\torigin_url === undefined ||\n\t\t\t\tstate === undefined ||\n\t\t\t\tcode_verifier === undefined\n\t\t\t)\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\n\t\t\tif (provider === undefined)\n\t\t\t\treturn status('Bad Request', 'Provider is required');\n\n\t\t\tconst providerConfig = clientProviders[provider];\n\t\t\tif (!providerConfig)\n\t\t\t\treturn status('Unauthorized', 'Client provider not found');\n\n\t\t\tconst { providerInstance, scope, searchParams } = providerConfig;\n\t\t\tconst referer = parseReferer(headers['referer']);\n\n\t\t\torigin_url.set({\n\t\t\t\thttpOnly: true,\n\t\t\t\tmaxAge: COOKIE_DURATION,\n\t\t\t\tpath: '/',\n\t\t\t\tsameSite: 'lax',\n\t\t\t\tsecure: true,\n\t\t\t\tvalue: referer\n\t\t\t});\n\n\t\t\tauth_provider.set({\n\t\t\t\thttpOnly: true,\n\t\t\t\tmaxAge: COOKIE_DURATION,\n\t\t\t\tpath: '/',\n\t\t\t\tsameSite: 'lax',\n\t\t\t\tsecure: true,\n\t\t\t\tvalue: provider\n\t\t\t});\n\n\t\t\tconst currentState = generateState();\n\t\t\tstate.set({\n\t\t\t\thttpOnly: true,\n\t\t\t\tmaxAge: COOKIE_DURATION,\n\t\t\t\tpath: '/',\n\t\t\t\tsameSite: 'lax',\n\t\t\t\tsecure: true,\n\t\t\t\tvalue: currentState\n\t\t\t});\n\n\t\t\tconst codeVerifier = isPKCEProviderOption(provider)\n\t\t\t\t? generateCodeVerifier()\n\t\t\t\t: undefined;\n\n\t\t\tif (codeVerifier) {\n\t\t\t\tcode_verifier.set({\n\t\t\t\t\thttpOnly: true,\n\t\t\t\t\tmaxAge: COOKIE_DURATION,\n\t\t\t\t\tpath: '/',\n\t\t\t\t\tsameSite: 'lax',\n\t\t\t\t\tsecure: true,\n\t\t\t\t\tvalue: codeVerifier\n\t\t\t\t});\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst authorizationURL =\n\t\t\t\t\tawait providerInstance.createAuthorizationUrl(\n\t\t\t\t\t\tcodeVerifier\n\t\t\t\t\t\t\t? { codeVerifier, scope, state: currentState }\n\t\t\t\t\t\t\t: { scope, state: currentState }\n\t\t\t\t\t);\n\n\t\t\t\tsearchParams?.forEach(([key, value]) =>\n\t\t\t\t\tauthorizationURL.searchParams.set(key, value)\n\t\t\t\t);\n\n\t\t\t\tawait onAuthorizeSuccess?.({\n\t\t\t\t\tauthorizationUrl: authorizationURL,\n\t\t\t\t\tauthProvider: provider\n\t\t\t\t});\n\n\t\t\t\treturn redirect(authorizationURL.toString());\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t'[authorize] Failed to create authorization URL:',\n\t\t\t\t\t{\n\t\t\t\t\t\terror: err instanceof Error ? err.message : err,\n\t\t\t\t\t\tprovider,\n\t\t\t\t\t\tstack: err instanceof Error ? err.stack : undefined\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tawait onAuthorizeError?.({\n\t\t\t\t\tauthProvider: provider,\n\t\t\t\t\terror: err\n\t\t\t\t});\n\n\t\t\t\treturn status(\n\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t'Failed to create authorization URL'\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tauth_provider: t.Optional(authProviderOption)\n\t\t\t}),\n\t\t\tparams: t.Object({\n\t\t\t\tprovider: authProviderOption\n\t\t\t})\n\t\t}\n\t);\n",
8
8
  "export const SECONDS_IN_A_MINUTE = 60;\nexport const MILLISECONDS_IN_A_SECOND = 1000;\nexport const MILLISECONDS_IN_A_MINUTE =\n\tMILLISECONDS_IN_A_SECOND * SECONDS_IN_A_MINUTE;\nexport const MINUTES_IN_AN_HOUR = 60;\nexport const HOURS_IN_A_DAY = 24;\nexport const MILLISECONDS_IN_A_DAY =\n\tMILLISECONDS_IN_A_SECOND *\n\tSECONDS_IN_A_MINUTE *\n\tMINUTES_IN_AN_HOUR *\n\tHOURS_IN_A_DAY;\nexport const MILLISECONDS_IN_AN_HOUR =\n\tMILLISECONDS_IN_A_MINUTE * MINUTES_IN_AN_HOUR;\nexport const COOKIE_MINUTES = 30;\nexport const COOKIE_DURATION = SECONDS_IN_A_MINUTE * COOKIE_MINUTES;\nexport const DEFAULT_MAX_SESSIONS = 10000;\n",
9
9
  "import { providers, isValidProviderOption } from 'citra';\nimport { t } from 'elysia';\n\nexport const userSessionIdTypebox = t.Optional(\n\tt.TemplateLiteral('${string}-${string}-${string}-${string}-${string}')\n);\n\nexport const authProviderOption = t.Enum(\n\tObject.fromEntries(\n\t\tObject.keys(providers)\n\t\t\t.filter(isValidProviderOption)\n\t\t\t.map((key) => [key, key])\n\t)\n);\n",
10
- "import { isPKCEProviderOption } from 'citra';\nimport { Elysia, t } from 'elysia';\nimport { sessionStore } from './sessionStore';\nimport { isNonEmptyString } from './typeGuards';\nimport { authProviderOption, userSessionIdTypebox } from './typebox';\nimport {\n\tClientProviders,\n\tOnCallbackError,\n\tOnCallbackSuccess,\n\tRouteString\n} from './types';\nimport { getUserSessionId } from './utils';\n\ntype CallbackProps<UserType> = {\n\tclientProviders: ClientProviders;\n\tcallbackRoute?: RouteString;\n\tonCallbackSuccess: OnCallbackSuccess<UserType>;\n\tonCallbackError: OnCallbackError;\n};\n\nexport const callback = <UserType>({\n\tclientProviders,\n\tcallbackRoute = '/oauth2/callback',\n\tonCallbackSuccess,\n\tonCallbackError\n}: CallbackProps<UserType>) =>\n\tnew Elysia().use(sessionStore<UserType>()).get(\n\t\tcallbackRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tredirect,\n\t\t\tstore: { session, unregisteredSession },\n\t\t\tcookie,\n\t\t\tcookie: {\n\t\t\t\tstate: stored_state,\n\t\t\t\tcode_verifier,\n\t\t\t\torigin_url,\n\t\t\t\tuser_session_id,\n\t\t\t\tauth_provider\n\t\t\t},\n\t\t\tquery: { code, state: callback_state }\n\t\t}) => {\n\t\t\tif (\n\t\t\t\tstored_state === undefined ||\n\t\t\t\tcode_verifier === undefined ||\n\t\t\t\tuser_session_id === undefined\n\t\t\t) {\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\t\t\t}\n\n\t\t\tif (!isNonEmptyString(code) || stored_state.value === undefined) {\n\t\t\t\treturn status('Bad Request', 'Invalid callback request');\n\t\t\t}\n\n\t\t\tif (callback_state !== stored_state.value) {\n\t\t\t\treturn status('Bad Request', 'Invalid state mismatch');\n\t\t\t}\n\n\t\t\tconst providerConfig = clientProviders[auth_provider.value];\n\t\t\tif (!providerConfig) {\n\t\t\t\treturn status('Unauthorized', 'Client provider not found');\n\t\t\t}\n\t\t\tconst { providerInstance } = providerConfig;\n\n\t\t\tstored_state.remove();\n\n\t\t\tconst authProvider = auth_provider.value;\n\t\t\tconst requiresPKCE = isPKCEProviderOption(authProvider);\n\t\t\tconst verifier = requiresPKCE ? code_verifier.value : undefined;\n\t\t\tif (requiresPKCE && verifier === undefined) {\n\t\t\t\treturn status(\n\t\t\t\t\t'Bad Request',\n\t\t\t\t\t'Code verifier not found and is required'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst originUrl = origin_url?.value ?? '/';\n\n\t\t\tlet tokenResponse;\n\t\t\ttry {\n\t\t\t\ttokenResponse =\n\t\t\t\t\tawait providerInstance.validateAuthorizationCode(\n\t\t\t\t\t\trequiresPKCE\n\t\t\t\t\t\t\t? { code, codeVerifier: verifier }\n\t\t\t\t\t\t\t: { code }\n\t\t\t\t\t);\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t'[callback] Failed to validate authorization code:',\n\t\t\t\t\t{\n\t\t\t\t\t\tauthProvider,\n\t\t\t\t\t\terror: err instanceof Error ? err.message : err,\n\t\t\t\t\t\tstack: err instanceof Error ? err.stack : undefined\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tawait onCallbackError?.({\n\t\t\t\t\tauthProvider,\n\t\t\t\t\terror: err,\n\t\t\t\t\toriginUrl\n\t\t\t\t});\n\n\t\t\t\treturn status(\n\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t'Failed to validate authorization code'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst userSessionId = getUserSessionId({\n\t\t\t\tsession,\n\t\t\t\tunregisteredSession,\n\t\t\t\tuser_session_id\n\t\t\t});\n\n\t\t\tconst response = await onCallbackSuccess?.({\n\t\t\t\tauthProvider,\n\t\t\t\tcookie,\n\t\t\t\toriginUrl,\n\t\t\t\tproviderInstance,\n\t\t\t\tredirect,\n\t\t\t\tsession,\n\t\t\t\tstatus,\n\t\t\t\ttokenResponse,\n\t\t\t\tunregisteredSession,\n\t\t\t\tuserSessionId\n\t\t\t});\n\n\t\t\tif (response) {\n\t\t\t\treturn response;\n\t\t\t}\n\n\t\t\treturn redirect(originUrl);\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tauth_provider: authProviderOption,\n\t\t\t\tuser_session_id: userSessionIdTypebox\n\t\t\t})\n\t\t}\n\t);\n",
10
+ "import { isPKCEProviderOption } from 'citra';\nimport { Elysia, t } from 'elysia';\nimport { sessionStore } from './sessionStore';\nimport { isNonEmptyString } from './typeGuards';\nimport { authProviderOption, userSessionIdTypebox } from './typebox';\nimport {\n\tClientProviders,\n\tOnCallbackError,\n\tOnCallbackSuccess,\n\tRouteString\n} from './types';\nimport { getUserSessionId } from './utils';\n\ntype CallbackProps<UserType> = {\n\tclientProviders: ClientProviders;\n\tcallbackRoute?: RouteString;\n\tonCallbackSuccess: OnCallbackSuccess<UserType>;\n\tonCallbackError: OnCallbackError;\n};\n\nexport const callback = <UserType>({\n\tclientProviders,\n\tcallbackRoute = '/oauth2/callback',\n\tonCallbackSuccess,\n\tonCallbackError\n}: CallbackProps<UserType>) =>\n\tnew Elysia().use(sessionStore<UserType>()).get(\n\t\tcallbackRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tredirect,\n\t\t\tstore: { session, unregisteredSession },\n\t\t\tcookie,\n\t\t\tcookie: {\n\t\t\t\tstate: stored_state,\n\t\t\t\tcode_verifier,\n\t\t\t\torigin_url,\n\t\t\t\tuser_session_id,\n\t\t\t\tauth_provider\n\t\t\t},\n\t\t\tquery: { code, state: callback_state }\n\t\t}) => {\n\t\t\tif (\n\t\t\t\tstored_state === undefined ||\n\t\t\t\tcode_verifier === undefined ||\n\t\t\t\tuser_session_id === undefined\n\t\t\t) {\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\t\t\t}\n\n\t\t\tif (!isNonEmptyString(code) || stored_state.value === undefined) {\n\t\t\t\treturn status('Bad Request', 'Invalid callback request');\n\t\t\t}\n\n\t\t\tif (callback_state !== stored_state.value) {\n\t\t\t\treturn status('Bad Request', 'Invalid state mismatch');\n\t\t\t}\n\n\t\t\tconst providerConfig = clientProviders[auth_provider.value];\n\t\t\tif (!providerConfig) {\n\t\t\t\treturn status('Unauthorized', 'Client provider not found');\n\t\t\t}\n\t\t\tconst { providerInstance } = providerConfig;\n\n\t\t\tstored_state.remove();\n\n\t\t\tconst authProvider = auth_provider.value;\n\t\t\tconst requiresPKCE = isPKCEProviderOption(authProvider);\n\t\t\tconst verifier = requiresPKCE ? code_verifier.value : undefined;\n\t\t\tif (requiresPKCE && verifier === undefined) {\n\t\t\t\treturn status(\n\t\t\t\t\t'Bad Request',\n\t\t\t\t\t'Code verifier not found and is required'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst originUrl = origin_url?.value ?? '/';\n\n\t\t\tlet tokenResponse;\n\t\t\ttry {\n\t\t\t\ttokenResponse =\n\t\t\t\t\tawait providerInstance.validateAuthorizationCode(\n\t\t\t\t\t\trequiresPKCE\n\t\t\t\t\t\t\t? { code, codeVerifier: verifier }\n\t\t\t\t\t\t\t: { code }\n\t\t\t\t\t);\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t'[callback] Failed to validate authorization code:',\n\t\t\t\t\t{\n\t\t\t\t\t\tauthProvider,\n\t\t\t\t\t\terror: err instanceof Error ? err.message : err,\n\t\t\t\t\t\tstack: err instanceof Error ? err.stack : undefined\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tawait onCallbackError?.({\n\t\t\t\t\tauthProvider,\n\t\t\t\t\terror: err,\n\t\t\t\t\toriginUrl\n\t\t\t\t});\n\n\t\t\t\treturn status(\n\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t'Failed to validate authorization code'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst userSessionId = getUserSessionId({\n\t\t\t\tsession,\n\t\t\t\tunregisteredSession,\n\t\t\t\tuser_session_id\n\t\t\t});\n\n\t\t\tconst response = await onCallbackSuccess?.({\n\t\t\t\tauthProvider,\n\t\t\t\tcookie,\n\t\t\t\toriginUrl,\n\t\t\t\tproviderInstance,\n\t\t\t\tredirect,\n\t\t\t\tsession,\n\t\t\t\tstatus,\n\t\t\t\ttokenResponse,\n\t\t\t\tunregisteredSession,\n\t\t\t\tuserSessionId\n\t\t\t});\n\n\t\t\tif (response) {\n\t\t\t\treturn response;\n\t\t\t}\n\n\t\t\treturn redirect(originUrl);\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tauth_provider: authProviderOption,\n\t\t\t\tcode_verifier: t.Optional(t.String()),\n\t\t\t\torigin_url: t.Optional(t.String()),\n\t\t\t\tstate: t.Optional(t.String()),\n\t\t\t\tuser_session_id: userSessionIdTypebox\n\t\t\t})\n\t\t}\n\t);\n",
11
11
  "import { Elysia } from 'elysia';\nimport { SessionRecord, UnregisteredSessionRecord } from './types';\n\nexport const sessionStore = <UserType>() => {\n\tconst initialSession: SessionRecord<UserType> = {};\n\tconst initialUnregisteredSession: UnregisteredSessionRecord = {};\n\n\treturn new Elysia({ name: 'sessionStore' }).state({\n\t\tsession: initialSession,\n\t\tunregisteredSession: initialUnregisteredSession\n\t});\n};\n",
12
12
  "import { StatusReturn, UserSessionId } from './types';\n\nexport const isValidUser = <UserType>(user: unknown): user is UserType => true;\n\nconst UUID_PATTERN =\n\t/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\n\nexport const isUserSessionId = (key: string): key is UserSessionId =>\n\tUUID_PATTERN.test(key);\n\nexport const isNonEmptyString = (\n\tstr: string | null | undefined\n): str is string => str !== null && str !== undefined && str.trim() !== '';\n\nexport const isStatusResponse = (value: unknown): value is StatusReturn =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\t'status' in value &&\n\ttypeof Reflect.get(value, 'status') === 'number';\n",
13
13
  "import { decodeJWT } from 'citra';\nimport { Cookie } from 'elysia';\nimport { MILLISECONDS_IN_A_DAY, MILLISECONDS_IN_AN_HOUR } from './constants';\nimport { isNonEmptyString, isStatusResponse } from './typeGuards';\nimport {\n\tAbsoluteAuthProps,\n\tInsantiateUserSessionProps,\n\tOAuth2ConfigurationOptions,\n\tSessionRecord,\n\tUnregisteredSessionRecord,\n\tUserSessionId\n} from './types';\n\nexport const instantiateUserSession = async <UserType>({\n\tauthProvider,\n\tsession,\n\tuser_session_id,\n\tunregisteredSession,\n\ttokenResponse,\n\tproviderInstance,\n\tgetUser,\n\tonNewUser,\n\tsessionDurationMs = MILLISECONDS_IN_A_DAY,\n\tunregisteredSessionDurationMs = MILLISECONDS_IN_AN_HOUR\n}: InsantiateUserSessionProps<UserType>) => {\n\tlet userIdentity;\n\tlet accessToken = tokenResponse.access_token;\n\tlet refreshToken = tokenResponse.refresh_token;\n\n\tif (tokenResponse.id_token) {\n\t\tuserIdentity = decodeJWT(tokenResponse.id_token);\n\t} else if (authProvider === 'withings') {\n\t\t// @ts-expect-error TODO: Withings is its own case edit the validate response to accept this case\n\t\tuserIdentity = { userid: tokenResponse.body.userid };\n\t\t// @ts-expect-error TODO: Withings is its own case edit the validate response to accept this case\n\t\taccessToken = tokenResponse.body.access_token;\n\t\t// @ts-expect-error TODO: Withings is its own case edit the validate response to accept this case\n\t\trefreshToken = tokenResponse.body.refresh_token;\n\t} else {\n\t\tuserIdentity = await providerInstance.fetchUserProfile(\n\t\t\ttokenResponse.access_token\n\t\t);\n\t}\n\n\tconst userSession = validateSession({ session, user_session_id });\n\tconst userSessionId = getUserSessionId({\n\t\tsession,\n\t\tunregisteredSession,\n\t\tuser_session_id\n\t});\n\n\tlet user = userSession?.user ?? (await getUser(userIdentity));\n\tconst response = user ?? (await onNewUser(userIdentity));\n\n\tconst isRedirectOrStatus =\n\t\tresponse instanceof Response || isStatusResponse(response);\n\n\tif (!isRedirectOrStatus) {\n\t\tuser = response;\n\n\t\tsession[userSessionId] = {\n\t\t\taccessToken,\n\t\t\texpiresAt: Date.now() + sessionDurationMs,\n\t\t\trefreshToken,\n\t\t\tuser\n\t\t};\n\n\t\treturn void 0;\n\t}\n\n\tconst existingUnregistered = unregisteredSession[userSessionId];\n\n\tif (existingUnregistered) {\n\t\texistingUnregistered.accessToken = accessToken;\n\t\texistingUnregistered.expiresAt =\n\t\t\tDate.now() + unregisteredSessionDurationMs;\n\t\texistingUnregistered.refreshToken = refreshToken;\n\t\texistingUnregistered.userIdentity = userIdentity;\n\n\t\treturn response;\n\t}\n\n\tunregisteredSession[userSessionId] = {\n\t\taccessToken,\n\t\texpiresAt: Date.now() + unregisteredSessionDurationMs,\n\t\trefreshToken,\n\t\tuserIdentity\n\t};\n\n\treturn response;\n};\n\nexport const createAuthConfiguration = <UserType>(\n\tconfiguration: AbsoluteAuthProps<UserType>\n) => configuration;\n\nexport const createProvidersConfiguration = (\n\tprovidersConfiguration: OAuth2ConfigurationOptions\n) => providersConfiguration;\n\nexport const getStatus = async <UserType>(\n\tsession: SessionRecord<UserType>,\n\tuser_session_id: Cookie<UserSessionId | undefined>\n) => {\n\tif (user_session_id === undefined) {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: 'Bad Request',\n\t\t\t\tmessage: 'Cookies are missing'\n\t\t\t} as const,\n\t\t\tuser: null\n\t\t};\n\t}\n\n\tconst userSession = validateSession({ session, user_session_id });\n\tconst user = userSession?.user ?? null;\n\n\treturn {\n\t\terror: null,\n\t\tuser\n\t};\n};\n\ntype ValidateSessionProps<\n\tSessionType extends Record<string, unknown> & { expiresAt: number }\n> = {\n\tuser_session_id: Cookie<UserSessionId | undefined>;\n\tsession: Record<UserSessionId, SessionType>;\n};\n\nexport const validateSession = <\n\tSessionType extends Record<string, unknown> & { expiresAt: number }\n>({\n\tuser_session_id,\n\tsession\n}: ValidateSessionProps<SessionType>) => {\n\tconst userSessionId = user_session_id.value;\n\tif (!userSessionId) {\n\t\treturn undefined;\n\t}\n\n\tconst userSession = session[userSessionId];\n\tif (!userSession) {\n\t\treturn undefined;\n\t}\n\n\tconst isExpired = userSession.expiresAt < Date.now();\n\tif (isExpired) {\n\t\tdelete session[userSessionId];\n\t\tuser_session_id.remove();\n\n\t\treturn undefined;\n\t}\n\n\treturn userSession;\n};\n\ntype GetUserSessionIdProps<UserType> = {\n\tuser_session_id: Cookie<UserSessionId | undefined>;\n\tsession?: SessionRecord<UserType>;\n\tunregisteredSession?: UnregisteredSessionRecord;\n};\n\nconst clearExistingSession = <UserType>(\n\texistingId: UserSessionId,\n\tsession?: SessionRecord<UserType>,\n\tunregisteredSession?: UnregisteredSessionRecord\n) => {\n\tif (session) delete session[existingId];\n\tif (unregisteredSession) delete unregisteredSession[existingId];\n};\n\nexport const getUserSessionId = <UserType>({\n\tuser_session_id,\n\tsession,\n\tunregisteredSession\n}: GetUserSessionIdProps<UserType>) => {\n\tconst existingId = user_session_id?.value;\n\n\tif (isNonEmptyString(existingId)) {\n\t\tclearExistingSession(existingId, session, unregisteredSession);\n\t}\n\n\tconst userSessionId = crypto.randomUUID();\n\n\tuser_session_id.set({\n\t\thttpOnly: true,\n\t\tsameSite: 'lax',\n\t\tsecure: true,\n\t\tvalue: userSessionId\n\t});\n\n\treturn userSessionId;\n};\n",
14
- "import { isValidProviderOption } from 'citra';\nimport { Elysia, t } from 'elysia';\nimport { sessionStore } from './sessionStore';\nimport { userSessionIdTypebox } from './typebox';\nimport {\n\tClientProviders,\n\tOnProfileError,\n\tOnProfileSuccess,\n\tRouteString\n} from './types';\n\ntype ProfileProps = {\n\tclientProviders: ClientProviders;\n\tprofileRoute?: RouteString;\n\tonProfileSuccess: OnProfileSuccess;\n\tonProfileError: OnProfileError;\n};\n\nexport const profile = <UserType>({\n\tclientProviders,\n\tprofileRoute = '/oauth2/profile',\n\tonProfileSuccess,\n\tonProfileError\n}: ProfileProps) =>\n\tnew Elysia().use(sessionStore<UserType>()).get(\n\t\tprofileRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tstore: { session },\n\t\t\tcookie: { user_session_id, auth_provider }\n\t\t}) => {\n\t\t\tif (auth_provider === undefined || user_session_id === undefined)\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\n\t\t\tif (auth_provider.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No auth provider found');\n\t\t\t}\n\n\t\t\tif (!isValidProviderOption(auth_provider.value)) {\n\t\t\t\treturn status('Unauthorized', 'Invalid provider');\n\t\t\t}\n\n\t\t\tif (user_session_id.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst providerConfig = clientProviders[auth_provider.value];\n\t\t\tif (!providerConfig) {\n\t\t\t\treturn status('Unauthorized', 'Client provider not found');\n\t\t\t}\n\t\t\tconst { providerInstance } = providerConfig;\n\n\t\t\tconst userSession = session[user_session_id.value];\n\n\t\t\tif (userSession === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst { accessToken } = userSession;\n\n\t\t\ttry {\n\t\t\t\tconst userProfile =\n\t\t\t\t\tawait providerInstance.fetchUserProfile(accessToken);\n\n\t\t\t\tawait onProfileSuccess?.({\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\tuserProfile\n\t\t\t\t});\n\n\t\t\t\treturn new Response(JSON.stringify(userProfile));\n\t\t\t} catch (err) {\n\t\t\t\tawait onProfileError?.({\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err\n\t\t\t\t});\n\n\t\t\t\treturn err instanceof Error\n\t\t\t\t\t? status(\n\t\t\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t\t\t`${err.message} - ${err.stack ?? ''}`\n\t\t\t\t\t\t)\n\t\t\t\t\t: status(\n\t\t\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t\t\t`Failed to validate authorization code: Unknown status: ${err}`\n\t\t\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t{ cookie: t.Cookie({ user_session_id: userSessionIdTypebox }) }\n\t);\n",
15
- "import { Elysia, t } from 'elysia';\nimport { sessionStore } from './sessionStore';\nimport { userSessionIdTypebox } from './typebox';\nimport { getStatus } from './utils';\n\ntype AuthFailError =\n\t| Exclude<Awaited<ReturnType<typeof getStatus>>['error'], null>\n\t| {\n\t\t\treadonly code: 'Unauthorized';\n\t\t\treadonly message: 'User is not authenticated';\n\t };\n\nexport const protectRoutePlugin = <UserType>() =>\n\tnew Elysia()\n\t\t.use(sessionStore<UserType>())\n\t\t.guard({ cookie: t.Cookie({ user_session_id: userSessionIdTypebox }) })\n\t\t.derive(\n\t\t\t({ store: { session }, cookie: { user_session_id }, status }) => ({\n\t\t\t\tprotectRoute: async <AuthReturn, AuthFailReturn>(\n\t\t\t\t\thandleAuth: (user: UserType) => AuthReturn,\n\t\t\t\t\thandleAuthFail?: (error: AuthFailError) => AuthFailReturn\n\t\t\t\t) => {\n\t\t\t\t\tconst { user, error } = await getStatus<UserType>(\n\t\t\t\t\t\tsession,\n\t\t\t\t\t\tuser_session_id\n\t\t\t\t\t);\n\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\thandleAuthFail?.(error) ??\n\t\t\t\t\t\t\tstatus(error.code, error.message)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!user) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\thandleAuthFail?.({\n\t\t\t\t\t\t\t\tcode: 'Unauthorized',\n\t\t\t\t\t\t\t\tmessage: 'User is not authenticated'\n\t\t\t\t\t\t\t}) ??\n\t\t\t\t\t\t\tstatus('Unauthorized', 'User is not authenticated')\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn handleAuth(user);\n\t\t\t\t}\n\t\t\t})\n\t\t)\n\t\t.as('global');\n",
16
- "import { isRefreshableOAuth2Client, isValidProviderOption } from 'citra';\nimport { Elysia, t } from 'elysia';\nimport { MILLISECONDS_IN_A_DAY } from './constants';\nimport { sessionStore } from './sessionStore';\nimport { userSessionIdTypebox } from './typebox';\nimport {\n\tClientProviders,\n\tOnRefreshError,\n\tOnRefreshSuccess,\n\tRouteString\n} from './types';\n\ntype RefreshProps = {\n\tclientProviders: ClientProviders;\n\trefreshRoute?: RouteString;\n\tonRefreshSuccess: OnRefreshSuccess;\n\tonRefreshError: OnRefreshError;\n\tsessionDurationMs?: number;\n};\n\nexport const refresh = <UserType>({\n\tclientProviders,\n\trefreshRoute = '/oauth2/tokens',\n\tonRefreshSuccess,\n\tonRefreshError,\n\tsessionDurationMs = MILLISECONDS_IN_A_DAY\n}: RefreshProps) =>\n\tnew Elysia().use(sessionStore<UserType>()).post(\n\t\trefreshRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tstore: { session },\n\t\t\tcookie: { user_session_id, auth_provider }\n\t\t}) => {\n\t\t\tif (auth_provider === undefined || user_session_id === undefined)\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\n\t\t\tif (auth_provider.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No auth provider found');\n\t\t\t}\n\n\t\t\tif (!isValidProviderOption(auth_provider.value)) {\n\t\t\t\treturn status('Bad Request', 'Invalid provider');\n\t\t\t}\n\n\t\t\tif (user_session_id.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst providerConfig = clientProviders[auth_provider.value];\n\t\t\tif (!providerConfig) {\n\t\t\t\treturn status('Unauthorized', 'Client provider not found');\n\t\t\t}\n\t\t\tconst { providerInstance } = providerConfig;\n\n\t\t\tconst userSession = session[user_session_id.value];\n\n\t\t\tif (userSession === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst { refreshToken } = userSession;\n\n\t\t\tif (\n\t\t\t\t!isRefreshableOAuth2Client(\n\t\t\t\t\tauth_provider.value,\n\t\t\t\t\tproviderInstance\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn status('Not Implemented', 'Provider is not refreshable');\n\t\t\t}\n\n\t\t\tif (refreshToken === undefined) {\n\t\t\t\treturn status('Bad Request', 'No refresh token found');\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst tokenResponse =\n\t\t\t\t\tawait providerInstance.refreshAccessToken(refreshToken);\n\n\t\t\t\tuserSession.accessToken = tokenResponse.access_token;\n\t\t\t\tuserSession.expiresAt = Date.now() + sessionDurationMs;\n\t\t\t\tuserSession.refreshToken =\n\t\t\t\t\ttokenResponse.refresh_token ?? userSession.refreshToken;\n\n\t\t\t\tawait onRefreshSuccess?.({\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\ttokenResponse\n\t\t\t\t});\n\n\t\t\t\treturn new Response('Token refreshed', {\n\t\t\t\t\tstatus: 204\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error('[refresh] Failed to refresh token:', {\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err instanceof Error ? err.message : err,\n\t\t\t\t\tstack: err instanceof Error ? err.stack : undefined\n\t\t\t\t});\n\n\t\t\t\tawait onRefreshError?.({\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err\n\t\t\t\t});\n\n\t\t\t\treturn status(\n\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t'Failed to refresh token'\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t{ cookie: t.Cookie({ user_session_id: userSessionIdTypebox }) }\n\t);\n",
17
- "import { isRevocableOAuth2Client, isValidProviderOption } from 'citra';\nimport { Elysia, t } from 'elysia';\nimport { sessionStore } from './sessionStore';\nimport { userSessionIdTypebox } from './typebox';\nimport {\n\tClientProviders,\n\tOnRevocationError,\n\tOnRevocationSuccess,\n\tRouteString\n} from './types';\n\ntype RevokeProps = {\n\tclientProviders: ClientProviders;\n\trevokeRoute?: RouteString;\n\tonRevocationSuccess: OnRevocationSuccess;\n\tonRevocationError: OnRevocationError;\n};\n\nexport const revoke = <UserType>({\n\tclientProviders,\n\trevokeRoute = '/oauth2/revocation',\n\tonRevocationSuccess,\n\tonRevocationError\n}: RevokeProps) =>\n\tnew Elysia().use(sessionStore<UserType>()).post(\n\t\trevokeRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tstore: { session },\n\t\t\tcookie: { user_session_id, auth_provider }\n\t\t}) => {\n\t\t\tif (auth_provider === undefined || user_session_id === undefined)\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\n\t\t\tif (auth_provider.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No auth provider found');\n\t\t\t}\n\n\t\t\tif (!isValidProviderOption(auth_provider.value)) {\n\t\t\t\treturn status('Bad Request', 'Invalid provider');\n\t\t\t}\n\n\t\t\tif (user_session_id.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst providerConfig = clientProviders[auth_provider.value];\n\t\t\tif (!providerConfig) {\n\t\t\t\treturn status('Unauthorized', 'Client provider not found');\n\t\t\t}\n\t\t\tconst { providerInstance } = providerConfig;\n\n\t\t\tif (\n\t\t\t\t!isRevocableOAuth2Client(auth_provider.value, providerInstance)\n\t\t\t) {\n\t\t\t\treturn status(\n\t\t\t\t\t'Not Implemented',\n\t\t\t\t\t'Provider does not support revocation'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst userSession = session[user_session_id.value];\n\n\t\t\tif (userSession === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst { accessToken } = userSession; // TODO: Some providers use refresh tokenResponse for revocation\n\n\t\t\ttry {\n\t\t\t\tawait providerInstance.revokeToken(accessToken);\n\n\t\t\t\tawait onRevocationSuccess?.({\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\ttokenToRevoke: accessToken\n\t\t\t\t});\n\n\t\t\t\treturn new Response('Token revoked', {\n\t\t\t\t\tstatus: 204\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error('[revoke] Failed to revoke token:', {\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err instanceof Error ? err.message : err,\n\t\t\t\t\tstack: err instanceof Error ? err.stack : undefined\n\t\t\t\t});\n\n\t\t\t\tawait onRevocationError?.({\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err\n\t\t\t\t});\n\n\t\t\t\treturn status(\n\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t'Failed to revoke token'\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t{ cookie: t.Cookie({ user_session_id: userSessionIdTypebox }) }\n\t);\n",
14
+ "import { isValidProviderOption } from 'citra';\nimport { Elysia, t } from 'elysia';\nimport { sessionStore } from './sessionStore';\nimport { authProviderOption, userSessionIdTypebox } from './typebox';\nimport {\n\tClientProviders,\n\tOnProfileError,\n\tOnProfileSuccess,\n\tRouteString\n} from './types';\n\ntype ProfileProps = {\n\tclientProviders: ClientProviders;\n\tprofileRoute?: RouteString;\n\tonProfileSuccess: OnProfileSuccess;\n\tonProfileError: OnProfileError;\n};\n\nexport const profile = <UserType>({\n\tclientProviders,\n\tprofileRoute = '/oauth2/profile',\n\tonProfileSuccess,\n\tonProfileError\n}: ProfileProps) =>\n\tnew Elysia().use(sessionStore<UserType>()).get(\n\t\tprofileRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tstore: { session },\n\t\t\tcookie: { user_session_id, auth_provider }\n\t\t}) => {\n\t\t\tif (auth_provider === undefined || user_session_id === undefined)\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\n\t\t\tif (auth_provider.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No auth provider found');\n\t\t\t}\n\n\t\t\tif (!isValidProviderOption(auth_provider.value)) {\n\t\t\t\treturn status('Unauthorized', 'Invalid provider');\n\t\t\t}\n\n\t\t\tif (user_session_id.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst providerConfig = clientProviders[auth_provider.value];\n\t\t\tif (!providerConfig) {\n\t\t\t\treturn status('Unauthorized', 'Client provider not found');\n\t\t\t}\n\t\t\tconst { providerInstance } = providerConfig;\n\n\t\t\tconst userSession = session[user_session_id.value];\n\n\t\t\tif (userSession === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst { accessToken } = userSession;\n\n\t\t\ttry {\n\t\t\t\tconst userProfile =\n\t\t\t\t\tawait providerInstance.fetchUserProfile(accessToken);\n\n\t\t\t\tawait onProfileSuccess?.({\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\tuserProfile\n\t\t\t\t});\n\n\t\t\t\treturn new Response(JSON.stringify(userProfile));\n\t\t\t} catch (err) {\n\t\t\t\tawait onProfileError?.({\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err\n\t\t\t\t});\n\n\t\t\t\treturn err instanceof Error\n\t\t\t\t\t? status(\n\t\t\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t\t\t`${err.message} - ${err.stack ?? ''}`\n\t\t\t\t\t\t)\n\t\t\t\t\t: status(\n\t\t\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t\t\t`Failed to validate authorization code: Unknown status: ${err}`\n\t\t\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tauth_provider: authProviderOption,\n\t\t\t\tuser_session_id: userSessionIdTypebox\n\t\t\t})\n\t\t}\n\t);\n",
15
+ "import { Elysia, t } from 'elysia';\nimport { sessionStore } from './sessionStore';\nimport { userSessionIdTypebox } from './typebox';\nimport { getStatus } from './utils';\n\ntype AuthFailError =\n\t| Exclude<Awaited<ReturnType<typeof getStatus>>['error'], null>\n\t| {\n\t\t\treadonly code: 'Unauthorized';\n\t\t\treadonly message: 'User is not authenticated';\n\t };\n\nexport const protectRoutePlugin = <UserType>() =>\n\tnew Elysia()\n\t\t.use(sessionStore<UserType>())\n\t\t.guard({ cookie: t.Cookie({ user_session_id: userSessionIdTypebox }) })\n\t\t.derive(\n\t\t\t({ store: { session }, cookie: { user_session_id }, status }) => ({\n\t\t\t\tprotectRoute: async <AuthReturn, AuthFailReturn>(\n\t\t\t\t\thandleAuth: (user: UserType) => AuthReturn,\n\t\t\t\t\thandleAuthFail?: (error: AuthFailError) => AuthFailReturn\n\t\t\t\t) => {\n\t\t\t\t\tconst { user, error } = await getStatus<UserType>(\n\t\t\t\t\t\tsession,\n\t\t\t\t\t\tuser_session_id\n\t\t\t\t\t);\n\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\thandleAuthFail?.(error) ??\n\t\t\t\t\t\t\tstatus(error.code, error.message)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!user) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\thandleAuthFail?.({\n\t\t\t\t\t\t\t\tcode: 'Unauthorized',\n\t\t\t\t\t\t\t\tmessage: 'User is not authenticated'\n\t\t\t\t\t\t\t}) ??\n\t\t\t\t\t\t\tstatus('Unauthorized', 'User is not authenticated')\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn await handleAuth(user);\n\t\t\t\t}\n\t\t\t})\n\t\t)\n\t\t.as('global');\n",
16
+ "import { isRefreshableOAuth2Client, isValidProviderOption } from 'citra';\nimport { Elysia, t } from 'elysia';\nimport { MILLISECONDS_IN_A_DAY } from './constants';\nimport { sessionStore } from './sessionStore';\nimport { authProviderOption, userSessionIdTypebox } from './typebox';\nimport {\n\tClientProviders,\n\tOnRefreshError,\n\tOnRefreshSuccess,\n\tRouteString\n} from './types';\n\ntype RefreshProps = {\n\tclientProviders: ClientProviders;\n\trefreshRoute?: RouteString;\n\tonRefreshSuccess: OnRefreshSuccess;\n\tonRefreshError: OnRefreshError;\n\tsessionDurationMs?: number;\n};\n\nexport const refresh = <UserType>({\n\tclientProviders,\n\trefreshRoute = '/oauth2/tokens',\n\tonRefreshSuccess,\n\tonRefreshError,\n\tsessionDurationMs = MILLISECONDS_IN_A_DAY\n}: RefreshProps) =>\n\tnew Elysia().use(sessionStore<UserType>()).post(\n\t\trefreshRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tstore: { session },\n\t\t\tcookie: { user_session_id, auth_provider }\n\t\t}) => {\n\t\t\tif (auth_provider === undefined || user_session_id === undefined)\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\n\t\t\tif (auth_provider.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No auth provider found');\n\t\t\t}\n\n\t\t\tif (!isValidProviderOption(auth_provider.value)) {\n\t\t\t\treturn status('Bad Request', 'Invalid provider');\n\t\t\t}\n\n\t\t\tif (user_session_id.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst providerConfig = clientProviders[auth_provider.value];\n\t\t\tif (!providerConfig) {\n\t\t\t\treturn status('Unauthorized', 'Client provider not found');\n\t\t\t}\n\t\t\tconst { providerInstance } = providerConfig;\n\n\t\t\tconst userSession = session[user_session_id.value];\n\n\t\t\tif (userSession === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst { refreshToken } = userSession;\n\n\t\t\tif (\n\t\t\t\t!isRefreshableOAuth2Client(\n\t\t\t\t\tauth_provider.value,\n\t\t\t\t\tproviderInstance\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn status('Not Implemented', 'Provider is not refreshable');\n\t\t\t}\n\n\t\t\tif (refreshToken === undefined) {\n\t\t\t\treturn status('Bad Request', 'No refresh token found');\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst tokenResponse =\n\t\t\t\t\tawait providerInstance.refreshAccessToken(refreshToken);\n\n\t\t\t\tuserSession.accessToken = tokenResponse.access_token;\n\t\t\t\tuserSession.expiresAt = Date.now() + sessionDurationMs;\n\t\t\t\tuserSession.refreshToken =\n\t\t\t\t\ttokenResponse.refresh_token ?? userSession.refreshToken;\n\n\t\t\t\tawait onRefreshSuccess?.({\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\ttokenResponse\n\t\t\t\t});\n\n\t\t\t\treturn new Response('Token refreshed', {\n\t\t\t\t\tstatus: 204\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error('[refresh] Failed to refresh token:', {\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err instanceof Error ? err.message : err,\n\t\t\t\t\tstack: err instanceof Error ? err.stack : undefined\n\t\t\t\t});\n\n\t\t\t\tawait onRefreshError?.({\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err\n\t\t\t\t});\n\n\t\t\t\treturn status(\n\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t'Failed to refresh token'\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tauth_provider: authProviderOption,\n\t\t\t\tuser_session_id: userSessionIdTypebox\n\t\t\t})\n\t\t}\n\t);\n",
17
+ "import { isRevocableOAuth2Client, isValidProviderOption } from 'citra';\nimport { Elysia, t } from 'elysia';\nimport { sessionStore } from './sessionStore';\nimport { authProviderOption, userSessionIdTypebox } from './typebox';\nimport {\n\tClientProviders,\n\tOnRevocationError,\n\tOnRevocationSuccess,\n\tRouteString\n} from './types';\n\ntype RevokeProps = {\n\tclientProviders: ClientProviders;\n\trevokeRoute?: RouteString;\n\tonRevocationSuccess: OnRevocationSuccess;\n\tonRevocationError: OnRevocationError;\n};\n\nexport const revoke = <UserType>({\n\tclientProviders,\n\trevokeRoute = '/oauth2/revocation',\n\tonRevocationSuccess,\n\tonRevocationError\n}: RevokeProps) =>\n\tnew Elysia().use(sessionStore<UserType>()).post(\n\t\trevokeRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tstore: { session },\n\t\t\tcookie: { user_session_id, auth_provider }\n\t\t}) => {\n\t\t\tif (auth_provider === undefined || user_session_id === undefined)\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\n\t\t\tif (auth_provider.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No auth provider found');\n\t\t\t}\n\n\t\t\tif (!isValidProviderOption(auth_provider.value)) {\n\t\t\t\treturn status('Bad Request', 'Invalid provider');\n\t\t\t}\n\n\t\t\tif (user_session_id.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst providerConfig = clientProviders[auth_provider.value];\n\t\t\tif (!providerConfig) {\n\t\t\t\treturn status('Unauthorized', 'Client provider not found');\n\t\t\t}\n\t\t\tconst { providerInstance } = providerConfig;\n\n\t\t\tif (\n\t\t\t\t!isRevocableOAuth2Client(auth_provider.value, providerInstance)\n\t\t\t) {\n\t\t\t\treturn status(\n\t\t\t\t\t'Not Implemented',\n\t\t\t\t\t'Provider does not support revocation'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst userSession = session[user_session_id.value];\n\n\t\t\tif (userSession === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session found');\n\t\t\t}\n\n\t\t\tconst { accessToken } = userSession; // TODO: Some providers use refresh tokenResponse for revocation\n\n\t\t\ttry {\n\t\t\t\tawait providerInstance.revokeToken(accessToken);\n\n\t\t\t\tawait onRevocationSuccess?.({\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\ttokenToRevoke: accessToken\n\t\t\t\t});\n\n\t\t\t\treturn new Response('Token revoked', {\n\t\t\t\t\tstatus: 204\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error('[revoke] Failed to revoke token:', {\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err instanceof Error ? err.message : err,\n\t\t\t\t\tstack: err instanceof Error ? err.stack : undefined\n\t\t\t\t});\n\n\t\t\t\tawait onRevocationError?.({\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err\n\t\t\t\t});\n\n\t\t\t\treturn status(\n\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t'Failed to revoke token'\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tauth_provider: authProviderOption,\n\t\t\t\tuser_session_id: userSessionIdTypebox\n\t\t\t})\n\t\t}\n\t);\n",
18
18
  "import { Elysia } from 'elysia';\nimport { DEFAULT_MAX_SESSIONS, MILLISECONDS_IN_AN_HOUR } from './constants';\nimport { sessionStore } from './sessionStore';\nimport { isUserSessionId } from './typeGuards';\nimport {\n\tOnSessionCleanup,\n\tSessionData,\n\tSessionRecord,\n\tUnregisteredSessionData,\n\tUnregisteredSessionRecord,\n\tUserSessionId\n} from './types';\n\ntype SessionCleanupProps<UserType> = {\n\tcleanupIntervalMs?: number;\n\tmaxSessions?: number;\n\tonSessionCleanup?: OnSessionCleanup<UserType>;\n};\n\nexport const sessionCleanup = <UserType>({\n\tcleanupIntervalMs = MILLISECONDS_IN_AN_HOUR,\n\tmaxSessions = DEFAULT_MAX_SESSIONS,\n\tonSessionCleanup\n}: SessionCleanupProps<UserType>) => {\n\tlet intervalId: ReturnType<typeof setInterval> | null = null;\n\n\treturn new Elysia({ name: 'sessionCleanup' })\n\t\t.use(sessionStore<UserType>())\n\t\t.onStart(({ store: { session, unregisteredSession } }) => {\n\t\t\tintervalId = setInterval(async () => {\n\t\t\t\tawait performCleanup(\n\t\t\t\t\tsession,\n\t\t\t\t\tunregisteredSession,\n\t\t\t\t\tmaxSessions,\n\t\t\t\t\tonSessionCleanup\n\t\t\t\t);\n\t\t\t}, cleanupIntervalMs);\n\t\t})\n\t\t.onStop(() => {\n\t\t\tif (intervalId) {\n\t\t\t\tclearInterval(intervalId);\n\t\t\t\tintervalId = null;\n\t\t\t}\n\t\t})\n\t\t.derive(({ store: { session, unregisteredSession } }) => ({\n\t\t\tcleanupSessions: async () => {\n\t\t\t\tawait performCleanup(\n\t\t\t\t\tsession,\n\t\t\t\t\tunregisteredSession,\n\t\t\t\t\tmaxSessions,\n\t\t\t\t\tonSessionCleanup\n\t\t\t\t);\n\t\t\t}\n\t\t}))\n\t\t.as('global');\n};\n\nconst collectValidSessionEntries = <UserType>(\n\tsession: SessionRecord<UserType>\n) => {\n\tconst entries: [UserSessionId, SessionData<UserType>][] = [];\n\tfor (const [key, value] of Object.entries(session)) {\n\t\tif (!isUserSessionId(key)) continue;\n\t\tentries.push([key, value]);\n\t}\n\n\treturn entries;\n};\n\nconst collectValidUnregisteredEntries = (\n\tunregisteredSession: UnregisteredSessionRecord\n) => {\n\tconst entries: [UserSessionId, UnregisteredSessionData][] = [];\n\tfor (const [key, value] of Object.entries(unregisteredSession)) {\n\t\tif (!isUserSessionId(key)) continue;\n\t\tentries.push([key, value]);\n\t}\n\n\treturn entries;\n};\n\nconst removeExpiredSessions = <UserType>(\n\tvalidEntries: [UserSessionId, SessionData<UserType>][],\n\tsession: SessionRecord<UserType>,\n\tnow: number\n) => {\n\tconst removed = new Map<UserSessionId, SessionData<UserType>>();\n\tfor (const [sessionId, userSession] of validEntries) {\n\t\tif (userSession.expiresAt >= now) continue;\n\t\tremoved.set(sessionId, userSession);\n\t\tdelete session[sessionId];\n\t}\n\n\treturn removed;\n};\n\nconst removeExpiredUnregisteredSessions = (\n\tvalidEntries: [UserSessionId, UnregisteredSessionData][],\n\tunregisteredSession: UnregisteredSessionRecord,\n\tnow: number\n) => {\n\tconst removed = new Map<UserSessionId, UnregisteredSessionData>();\n\tfor (const [sessionId, unregSession] of validEntries) {\n\t\tif (unregSession.expiresAt >= now) continue;\n\t\tremoved.set(sessionId, unregSession);\n\t\tdelete unregisteredSession[sessionId];\n\t}\n\n\treturn removed;\n};\n\nconst evictExcessSessions = <UserType>(\n\tremainingEntries: [UserSessionId, SessionData<UserType>][],\n\tsession: SessionRecord<UserType>,\n\tmaxSessions: number,\n\tremovedSessions: Map<UserSessionId, SessionData<UserType>>\n) => {\n\tconst excessCount = remainingEntries.length - maxSessions;\n\tif (excessCount <= 0) return;\n\n\tconst sortedByExpiry = remainingEntries.sort(\n\t\t([, entryA], [, entryB]) => entryA.expiresAt - entryB.expiresAt\n\t);\n\tconst toEvict = sortedByExpiry.slice(0, excessCount);\n\n\tfor (const [key, value] of toEvict) {\n\t\tremovedSessions.set(key, value);\n\t\tdelete session[key];\n\t}\n};\n\nconst evictExcessUnregisteredSessions = (\n\tremainingEntries: [UserSessionId, UnregisteredSessionData][],\n\tunregisteredSession: UnregisteredSessionRecord,\n\tmaxSessions: number,\n\tremovedUnregisteredSessions: Map<UserSessionId, UnregisteredSessionData>\n) => {\n\tconst excessCount = remainingEntries.length - maxSessions;\n\tif (excessCount <= 0) return;\n\n\tconst sortedByExpiry = remainingEntries.sort(\n\t\t([, entryA], [, entryB]) => entryA.expiresAt - entryB.expiresAt\n\t);\n\tconst toEvict = sortedByExpiry.slice(0, excessCount);\n\n\tfor (const [key, value] of toEvict) {\n\t\tremovedUnregisteredSessions.set(key, value);\n\t\tdelete unregisteredSession[key];\n\t}\n};\n\nconst performCleanup = async <UserType>(\n\tsession: SessionRecord<UserType>,\n\tunregisteredSession: UnregisteredSessionRecord,\n\tmaxSessions: number,\n\tonSessionCleanup?: OnSessionCleanup<UserType>\n) => {\n\tconst now = Date.now();\n\n\tconst validSessionEntries = collectValidSessionEntries(session);\n\tconst removedSessions = removeExpiredSessions(\n\t\tvalidSessionEntries,\n\t\tsession,\n\t\tnow\n\t);\n\n\tconst validUnregisteredEntries =\n\t\tcollectValidUnregisteredEntries(unregisteredSession);\n\tconst removedUnregisteredSessions = removeExpiredUnregisteredSessions(\n\t\tvalidUnregisteredEntries,\n\t\tunregisteredSession,\n\t\tnow\n\t);\n\n\tconst remainingEntries = validSessionEntries.filter(\n\t\t([key]) => !removedSessions.has(key)\n\t);\n\tevictExcessSessions(\n\t\tremainingEntries,\n\t\tsession,\n\t\tmaxSessions,\n\t\tremovedSessions\n\t);\n\n\tconst remainingUnregistered = validUnregisteredEntries.filter(\n\t\t([key]) => !removedUnregisteredSessions.has(key)\n\t);\n\tevictExcessUnregisteredSessions(\n\t\tremainingUnregistered,\n\t\tunregisteredSession,\n\t\tmaxSessions,\n\t\tremovedUnregisteredSessions\n\t);\n\n\ttry {\n\t\tawait onSessionCleanup?.({\n\t\t\tremovedSessions,\n\t\t\tremovedUnregisteredSessions\n\t\t});\n\t} catch (err) {\n\t\tconsole.error('[sessionCleanup] onSessionCleanup handler failed:', err);\n\t}\n};\n",
19
- "import { Elysia, t } from 'elysia';\nimport { sessionStore } from './sessionStore';\nimport { OnSignOut, RouteString } from './types';\n\ntype SignOutProps<UserType> = {\n\tsignoutRoute?: RouteString;\n\tonSignOut: OnSignOut<UserType>;\n};\n\nexport const signout = <UserType>({\n\tsignoutRoute = '/oauth2/signout',\n\tonSignOut\n}: SignOutProps<UserType>) =>\n\tnew Elysia().use(sessionStore<UserType>()).delete(\n\t\tsignoutRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tstore: { session },\n\t\t\tcookie: { user_session_id, auth_provider }\n\t\t}) => {\n\t\t\tif (auth_provider === undefined || user_session_id === undefined) {\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\t\t\t}\n\n\t\t\tif (auth_provider.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No auth provider found');\n\t\t\t}\n\t\t\tif (user_session_id.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session id found');\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tawait onSignOut?.({\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\tsession,\n\t\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error('[signout] Sign out operation failed:', {\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err instanceof Error ? err.message : err,\n\t\t\t\t\tstack: err instanceof Error ? err.stack : undefined\n\t\t\t\t});\n\n\t\t\t\treturn status(\n\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t'Sign out operation failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tdelete session[user_session_id.value];\n\t\t\tuser_session_id.remove();\n\t\t\tauth_provider.remove();\n\n\t\t\treturn new Response(null, { status: 204 });\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tuser_session_id: t.Optional(\n\t\t\t\t\tt.TemplateLiteral(\n\t\t\t\t\t\t'${string}-${string}-${string}-${string}-${string}'\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t})\n\t\t}\n\t);\n",
19
+ "import { Elysia, t } from 'elysia';\nimport { sessionStore } from './sessionStore';\nimport { authProviderOption } from './typebox';\nimport { OnSignOut, RouteString } from './types';\n\ntype SignOutProps<UserType> = {\n\tsignoutRoute?: RouteString;\n\tonSignOut: OnSignOut<UserType>;\n};\n\nexport const signout = <UserType>({\n\tsignoutRoute = '/oauth2/signout',\n\tonSignOut\n}: SignOutProps<UserType>) =>\n\tnew Elysia().use(sessionStore<UserType>()).delete(\n\t\tsignoutRoute,\n\t\tasync ({\n\t\t\tstatus,\n\t\t\tstore: { session },\n\t\t\tcookie: { user_session_id, auth_provider }\n\t\t}) => {\n\t\t\tif (auth_provider === undefined || user_session_id === undefined) {\n\t\t\t\treturn status('Bad Request', 'Cookies are missing');\n\t\t\t}\n\n\t\t\tif (auth_provider.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No auth provider found');\n\t\t\t}\n\t\t\tif (user_session_id.value === undefined) {\n\t\t\t\treturn status('Unauthorized', 'No user session id found');\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tawait onSignOut?.({\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\tsession,\n\t\t\t\t\tuserSessionId: user_session_id.value\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error('[signout] Sign out operation failed:', {\n\t\t\t\t\tauthProvider: auth_provider.value,\n\t\t\t\t\terror: err instanceof Error ? err.message : err,\n\t\t\t\t\tstack: err instanceof Error ? err.stack : undefined\n\t\t\t\t});\n\n\t\t\t\treturn status(\n\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t'Sign out operation failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tdelete session[user_session_id.value];\n\t\t\tuser_session_id.remove();\n\t\t\tauth_provider.remove();\n\n\t\t\treturn new Response(null, { status: 204 });\n\t\t},\n\t\t{\n\t\t\tcookie: t.Cookie({\n\t\t\t\tauth_provider: authProviderOption,\n\t\t\t\tuser_session_id: t.Optional(\n\t\t\t\t\tt.TemplateLiteral(\n\t\t\t\t\t\t'${string}-${string}-${string}-${string}-${string}'\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t})\n\t\t}\n\t);\n",
20
20
  "import { Elysia, t } from 'elysia';\nimport { sessionStore } from './sessionStore';\nimport { userSessionIdTypebox } from './typebox';\nimport { OnStatus, RouteString } from './types';\nimport { getStatus } from './utils';\n\ntype StatusProps<UserType> = {\n\tstatusRoute?: RouteString;\n\tonStatus: OnStatus<UserType>;\n};\n\nexport const userStatus = <UserType>({\n\tstatusRoute = '/oauth2/status',\n\tonStatus\n}: StatusProps<UserType>) =>\n\tnew Elysia().use(sessionStore<UserType>()).get(\n\t\tstatusRoute,\n\t\tasync ({ status, cookie: { user_session_id }, store: { session } }) => {\n\t\t\tconst { user, error } = await getStatus<UserType>(\n\t\t\t\tsession,\n\t\t\t\tuser_session_id\n\t\t\t);\n\n\t\t\tif (error) {\n\t\t\t\treturn status(error.code, error.message);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tawait onStatus?.({ user });\n\t\t\t} catch (err) {\n\t\t\t\treturn err instanceof Error\n\t\t\t\t\t? status(\n\t\t\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t\t\t`Error: ${err.message} - ${err.stack ?? ''}`\n\t\t\t\t\t\t)\n\t\t\t\t\t: status(\n\t\t\t\t\t\t\t'Internal Server Error',\n\t\t\t\t\t\t\t`Unknown Error: ${String(err)}`\n\t\t\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn { user };\n\t\t},\n\t\t{ cookie: t.Cookie({ user_session_id: userSessionIdTypebox }) }\n\t);\n"
21
21
  ],
22
- "mappings": "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",
23
- "debugId": "6F7DFC3827387EBC64756E2164756E21",
22
+ "mappings": "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",
23
+ "debugId": "194F20615684A32064756E2164756E21",
24
24
  "names": []
25
25
  }
@@ -20,6 +20,7 @@ export declare const authorize: ({ clientProviders, authorizeRoute, onAuthorizeS
20
20
  macro: {};
21
21
  macroFn: {};
22
22
  parser: {};
23
+ response: {};
23
24
  }, {
24
25
  [x: string]: {
25
26
  ":provider": {
@@ -34,7 +35,6 @@ export declare const authorize: ({ clientProviders, authorizeRoute, onAuthorizeS
34
35
  200: Response;
35
36
  400: "Cookies are missing" | "Provider is required";
36
37
  401: "Client provider not found";
37
- 500: "Failed to create authorization URL";
38
38
  422: {
39
39
  type: "validation";
40
40
  on: string;
@@ -44,6 +44,7 @@ export declare const authorize: ({ clientProviders, authorizeRoute, onAuthorizeS
44
44
  property?: string;
45
45
  expected?: string;
46
46
  };
47
+ 500: "Failed to create authorization URL";
47
48
  };
48
49
  };
49
50
  };
@@ -63,7 +64,6 @@ export declare const authorize: ({ clientProviders, authorizeRoute, onAuthorizeS
63
64
  200: Response;
64
65
  400: "Cookies are missing" | "Provider is required";
65
66
  401: "Client provider not found";
66
- 500: "Failed to create authorization URL";
67
67
  422: {
68
68
  type: "validation";
69
69
  on: string;
@@ -73,6 +73,7 @@ export declare const authorize: ({ clientProviders, authorizeRoute, onAuthorizeS
73
73
  property?: string;
74
74
  expected?: string;
75
75
  };
76
+ 500: "Failed to create authorization URL";
76
77
  };
77
78
  };
78
79
  };
@@ -83,10 +84,12 @@ export declare const authorize: ({ clientProviders, authorizeRoute, onAuthorizeS
83
84
  resolve: {};
84
85
  schema: {};
85
86
  standaloneSchema: {};
87
+ response: {};
86
88
  }, {
87
89
  derive: {};
88
90
  resolve: {};
89
91
  schema: {};
90
92
  standaloneSchema: {};
93
+ response: {};
91
94
  }>;
92
95
  export {};
@@ -23,6 +23,7 @@ export declare const callback: <UserType>({ clientProviders, callbackRoute, onCa
23
23
  macro: {};
24
24
  macroFn: {};
25
25
  parser: {};
26
+ response: {};
26
27
  }, {
27
28
  [x: string]: {
28
29
  get: {
@@ -32,19 +33,6 @@ export declare const callback: <UserType>({ clientProviders, callbackRoute, onCa
32
33
  headers: unknown;
33
34
  response: {
34
35
  [x: string]: any;
35
- 200: any;
36
- 400: "Cookies are missing" | "Invalid callback request" | "Invalid state mismatch" | "Code verifier not found and is required";
37
- 401: "Client provider not found";
38
- 500: "Failed to validate authorization code";
39
- 422: {
40
- type: "validation";
41
- on: string;
42
- summary?: string;
43
- message?: string;
44
- found?: unknown;
45
- property?: string;
46
- expected?: string;
47
- };
48
36
  };
49
37
  };
50
38
  };
@@ -53,10 +41,18 @@ export declare const callback: <UserType>({ clientProviders, callbackRoute, onCa
53
41
  resolve: {};
54
42
  schema: {};
55
43
  standaloneSchema: {};
44
+ response: {};
56
45
  }, {
57
46
  derive: {};
58
47
  resolve: {};
59
48
  schema: {};
60
49
  standaloneSchema: {};
50
+ response: {};
51
+ } & {
52
+ derive: {};
53
+ resolve: {};
54
+ schema: {};
55
+ standaloneSchema: {};
56
+ response: {};
61
57
  }>;
62
58
  export {};
@@ -8,33 +8,54 @@ export declare const absoluteAuth: <UserType>({ providersConfiguration, authoriz
8
8
  };
9
9
  derive: {
10
10
  readonly cleanupSessions: () => Promise<void>;
11
+ } & {
11
12
  readonly protectRoute: <AuthReturn, AuthFailReturn>(handleAuth: (user: UserType) => AuthReturn, handleAuthFail?: ((error: {
12
13
  readonly code: "Bad Request";
13
14
  readonly message: "Cookies are missing";
14
15
  } | {
15
16
  readonly code: "Unauthorized";
16
17
  readonly message: "User is not authenticated";
17
- }) => AuthFailReturn) | undefined) => Promise<import("elysia/error").ElysiaCustomStatusResponse<"Bad Request", "Cookies are missing", 400> | import("elysia/error").ElysiaCustomStatusResponse<"Unauthorized", "User is not authenticated", 401> | AuthReturn | NonNullable<AuthFailReturn>>;
18
+ }) => AuthFailReturn) | undefined) => Promise<import("elysia").ElysiaCustomStatusResponse<"Bad Request", "Cookies are missing", 400> | import("elysia").ElysiaCustomStatusResponse<"Unauthorized", "User is not authenticated", 401> | AuthReturn | NonNullable<AuthFailReturn>>;
18
19
  };
19
20
  resolve: {};
20
21
  }, {
21
22
  typebox: {};
22
23
  error: {};
23
24
  }, {
24
- schema: {
25
- body: unknown;
26
- headers: unknown;
27
- query: unknown;
28
- params: {};
29
- cookie: {
30
- user_session_id?: `${string}-${string}-${string}-${string}-${string}` | undefined;
31
- };
32
- response: {};
33
- };
25
+ schema: {};
26
+ standaloneSchema: {};
27
+ macro: {};
28
+ macroFn: {};
29
+ parser: {};
30
+ response: {};
31
+ } & {
32
+ schema: {};
33
+ standaloneSchema: {};
34
+ macro: {};
35
+ macroFn: {};
36
+ parser: {};
37
+ response: import("elysia").ExtractErrorFromHandle<{
38
+ readonly cleanupSessions: () => Promise<void>;
39
+ }>;
40
+ } & {
41
+ schema: import("elysia").UnwrapRoute<{
42
+ cookie: import("@sinclair/typebox").TObject<{
43
+ user_session_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTemplateLiteralSyntax<"${string}-${string}-${string}-${string}-${string}">>;
44
+ }>;
45
+ }, {}, "">;
34
46
  standaloneSchema: {};
35
47
  macro: {};
36
48
  macroFn: {};
37
49
  parser: {};
50
+ response: import("elysia").ExtractErrorFromHandle<{
51
+ readonly protectRoute: <AuthReturn, AuthFailReturn>(handleAuth: (user: UserType) => AuthReturn, handleAuthFail?: ((error: {
52
+ readonly code: "Bad Request";
53
+ readonly message: "Cookies are missing";
54
+ } | {
55
+ readonly code: "Unauthorized";
56
+ readonly message: "User is not authenticated";
57
+ }) => AuthFailReturn) | undefined) => Promise<import("elysia").ElysiaCustomStatusResponse<"Bad Request", "Cookies are missing", 400> | import("elysia").ElysiaCustomStatusResponse<"Unauthorized", "User is not authenticated", 401> | AuthReturn | NonNullable<AuthFailReturn>>;
58
+ }>;
38
59
  }, ((({
39
60
  [x: string]: {
40
61
  delete: {
@@ -46,7 +67,6 @@ export declare const absoluteAuth: <UserType>({ providersConfiguration, authoriz
46
67
  200: Response;
47
68
  400: "Cookies are missing";
48
69
  401: "No auth provider found" | "No user session id found";
49
- 500: "Sign out operation failed";
50
70
  422: {
51
71
  type: "validation";
52
72
  on: string;
@@ -56,6 +76,7 @@ export declare const absoluteAuth: <UserType>({ providersConfiguration, authoriz
56
76
  property?: string;
57
77
  expected?: string;
58
78
  };
79
+ 500: "Sign out operation failed";
59
80
  };
60
81
  };
61
82
  };
@@ -70,8 +91,6 @@ export declare const absoluteAuth: <UserType>({ providersConfiguration, authoriz
70
91
  200: Response;
71
92
  400: "Cookies are missing" | "Invalid provider";
72
93
  401: "Client provider not found" | "No auth provider found" | "No user session found";
73
- 501: "Provider does not support revocation";
74
- 500: "Failed to revoke token";
75
94
  422: {
76
95
  type: "validation";
77
96
  on: string;
@@ -81,6 +100,8 @@ export declare const absoluteAuth: <UserType>({ providersConfiguration, authoriz
81
100
  property?: string;
82
101
  expected?: string;
83
102
  };
103
+ 500: "Failed to revoke token";
104
+ 501: "Provider does not support revocation";
84
105
  };
85
106
  };
86
107
  };
@@ -93,10 +114,9 @@ export declare const absoluteAuth: <UserType>({ providersConfiguration, authoriz
93
114
  headers: unknown;
94
115
  response: {
95
116
  200: {
96
- user: NonNullable<UserType> | null extends import("elysia").ElysiaFile ? File : NonNullable<UserType> | null;
117
+ user: NonNullable<UserType> | null;
97
118
  };
98
119
  400: "Cookies are missing";
99
- 500: `Error: ${string} - ${string}` | `Unknown Error: ${string}`;
100
120
  422: {
101
121
  type: "validation";
102
122
  on: string;
@@ -106,6 +126,7 @@ export declare const absoluteAuth: <UserType>({ providersConfiguration, authoriz
106
126
  property?: string;
107
127
  expected?: string;
108
128
  };
129
+ 500: `Error: ${string} - ${string}` | `Unknown Error: ${string}`;
109
130
  };
110
131
  };
111
132
  };
@@ -120,8 +141,6 @@ export declare const absoluteAuth: <UserType>({ providersConfiguration, authoriz
120
141
  200: Response;
121
142
  400: "Cookies are missing" | "Invalid provider" | "No refresh token found";
122
143
  401: "Client provider not found" | "No auth provider found" | "No user session found";
123
- 501: "Provider is not refreshable";
124
- 500: "Failed to refresh token";
125
144
  422: {
126
145
  type: "validation";
127
146
  on: string;
@@ -131,6 +150,8 @@ export declare const absoluteAuth: <UserType>({ providersConfiguration, authoriz
131
150
  property?: string;
132
151
  expected?: string;
133
152
  };
153
+ 500: "Failed to refresh token";
154
+ 501: "Provider is not refreshable";
134
155
  };
135
156
  };
136
157
  };
@@ -148,7 +169,6 @@ export declare const absoluteAuth: <UserType>({ providersConfiguration, authoriz
148
169
  200: Response;
149
170
  400: "Cookies are missing" | "Provider is required";
150
171
  401: "Client provider not found";
151
- 500: "Failed to create authorization URL";
152
172
  422: {
153
173
  type: "validation";
154
174
  on: string;
@@ -158,6 +178,7 @@ export declare const absoluteAuth: <UserType>({ providersConfiguration, authoriz
158
178
  property?: string;
159
179
  expected?: string;
160
180
  };
181
+ 500: "Failed to create authorization URL";
161
182
  };
162
183
  };
163
184
  };
@@ -177,7 +198,6 @@ export declare const absoluteAuth: <UserType>({ providersConfiguration, authoriz
177
198
  200: Response;
178
199
  400: "Cookies are missing" | "Provider is required";
179
200
  401: "Client provider not found";
180
- 500: "Failed to create authorization URL";
181
201
  422: {
182
202
  type: "validation";
183
203
  on: string;
@@ -187,6 +207,7 @@ export declare const absoluteAuth: <UserType>({ providersConfiguration, authoriz
187
207
  property?: string;
188
208
  expected?: string;
189
209
  };
210
+ 500: "Failed to create authorization URL";
190
211
  };
191
212
  };
192
213
  };
@@ -201,19 +222,6 @@ export declare const absoluteAuth: <UserType>({ providersConfiguration, authoriz
201
222
  headers: unknown;
202
223
  response: {
203
224
  [x: string]: any;
204
- 200: any;
205
- 400: "Cookies are missing" | "Invalid callback request" | "Invalid state mismatch" | "Code verifier not found and is required";
206
- 401: "Client provider not found";
207
- 500: "Failed to validate authorization code";
208
- 422: {
209
- type: "validation";
210
- on: string;
211
- summary?: string;
212
- message?: string;
213
- found?: unknown;
214
- property?: string;
215
- expected?: string;
216
- };
217
225
  };
218
226
  };
219
227
  };
@@ -228,7 +236,6 @@ export declare const absoluteAuth: <UserType>({ providersConfiguration, authoriz
228
236
  200: Response;
229
237
  400: "Cookies are missing";
230
238
  401: "Client provider not found" | "No auth provider found" | "Invalid provider" | "No user session found";
231
- 500: `${string} - ${string}` | `Failed to validate authorization code: Unknown status: ${string}`;
232
239
  422: {
233
240
  type: "validation";
234
241
  on: string;
@@ -238,6 +245,7 @@ export declare const absoluteAuth: <UserType>({ providersConfiguration, authoriz
238
245
  property?: string;
239
246
  expected?: string;
240
247
  };
248
+ 500: `${string} - ${string}` | `Failed to validate authorization code: Unknown status: ${string}`;
241
249
  };
242
250
  };
243
251
  };
@@ -246,11 +254,25 @@ export declare const absoluteAuth: <UserType>({ providersConfiguration, authoriz
246
254
  resolve: {};
247
255
  schema: {};
248
256
  standaloneSchema: {};
257
+ response: {};
249
258
  }, {
250
259
  derive: {};
251
260
  resolve: {};
252
261
  schema: {};
253
262
  standaloneSchema: {};
263
+ response: {};
264
+ } & {
265
+ derive: {};
266
+ resolve: {};
267
+ schema: {};
268
+ standaloneSchema: {};
269
+ response: {};
270
+ } & {
271
+ derive: {};
272
+ resolve: {};
273
+ schema: {};
274
+ standaloneSchema: {};
275
+ response: {};
254
276
  }>>;
255
277
  export * from './types';
256
278
  export * from './typebox';
@@ -23,6 +23,7 @@ export declare const profile: <UserType>({ clientProviders, profileRoute, onProf
23
23
  macro: {};
24
24
  macroFn: {};
25
25
  parser: {};
26
+ response: {};
26
27
  }, {
27
28
  [x: string]: {
28
29
  get: {
@@ -34,7 +35,6 @@ export declare const profile: <UserType>({ clientProviders, profileRoute, onProf
34
35
  200: Response;
35
36
  400: "Cookies are missing";
36
37
  401: "Client provider not found" | "No auth provider found" | "Invalid provider" | "No user session found";
37
- 500: `${string} - ${string}` | `Failed to validate authorization code: Unknown status: ${string}`;
38
38
  422: {
39
39
  type: "validation";
40
40
  on: string;
@@ -44,6 +44,7 @@ export declare const profile: <UserType>({ clientProviders, profileRoute, onProf
44
44
  property?: string;
45
45
  expected?: string;
46
46
  };
47
+ 500: `${string} - ${string}` | `Failed to validate authorization code: Unknown status: ${string}`;
47
48
  };
48
49
  };
49
50
  };
@@ -52,10 +53,18 @@ export declare const profile: <UserType>({ clientProviders, profileRoute, onProf
52
53
  resolve: {};
53
54
  schema: {};
54
55
  standaloneSchema: {};
56
+ response: {};
55
57
  }, {
56
58
  derive: {};
57
59
  resolve: {};
58
60
  schema: {};
59
61
  standaloneSchema: {};
62
+ response: {};
63
+ } & {
64
+ derive: {};
65
+ resolve: {};
66
+ schema: {};
67
+ standaloneSchema: {};
68
+ response: {};
60
69
  }>;
61
70
  export {};
@@ -11,36 +11,36 @@ export declare const protectRoutePlugin: <UserType>() => Elysia<"", {
11
11
  unregisteredSession: import("./types").UnregisteredSessionRecord;
12
12
  };
13
13
  derive: {
14
- readonly protectRoute: <AuthReturn, AuthFailReturn>(handleAuth: (user: UserType) => AuthReturn, handleAuthFail?: (error: AuthFailError) => AuthFailReturn) => Promise<import("elysia/error").ElysiaCustomStatusResponse<"Bad Request", "Cookies are missing", 400> | AuthReturn | NonNullable<AuthFailReturn> | import("elysia/error").ElysiaCustomStatusResponse<"Unauthorized", "User is not authenticated", 401>>;
14
+ readonly protectRoute: <AuthReturn, AuthFailReturn>(handleAuth: (user: UserType) => AuthReturn, handleAuthFail?: (error: AuthFailError) => AuthFailReturn) => Promise<import("elysia").ElysiaCustomStatusResponse<"Bad Request", "Cookies are missing", 400> | AuthReturn | NonNullable<AuthFailReturn> | import("elysia").ElysiaCustomStatusResponse<"Unauthorized", "User is not authenticated", 401>>;
15
15
  };
16
16
  resolve: {};
17
17
  }, {
18
18
  typebox: {};
19
19
  error: {};
20
20
  }, {
21
- schema: import("elysia").MergeSchema<import("elysia").MergeSchema<{
22
- body: unknown;
23
- headers: unknown;
24
- query: unknown;
25
- params: {};
26
- cookie: {
27
- user_session_id?: `${string}-${string}-${string}-${string}-${string}` | undefined;
28
- };
29
- response: {};
30
- }, {}, "">, {}, "">;
21
+ schema: import("elysia").UnwrapRoute<{
22
+ cookie: import("@sinclair/typebox").TObject<{
23
+ user_session_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTemplateLiteralSyntax<"${string}-${string}-${string}-${string}-${string}">>;
24
+ }>;
25
+ }, {}, "">;
31
26
  standaloneSchema: {};
32
27
  macro: {};
33
28
  macroFn: {};
34
29
  parser: {};
30
+ response: import("elysia").ExtractErrorFromHandle<{
31
+ readonly protectRoute: <AuthReturn, AuthFailReturn>(handleAuth: (user: UserType) => AuthReturn, handleAuthFail?: (error: AuthFailError) => AuthFailReturn) => Promise<import("elysia").ElysiaCustomStatusResponse<"Bad Request", "Cookies are missing", 400> | AuthReturn | NonNullable<AuthFailReturn> | import("elysia").ElysiaCustomStatusResponse<"Unauthorized", "User is not authenticated", 401>>;
32
+ }>;
35
33
  }, {}, {
36
34
  derive: {};
37
35
  resolve: {};
38
36
  schema: {};
39
37
  standaloneSchema: {};
38
+ response: {};
40
39
  }, {
41
40
  derive: {};
42
41
  resolve: {};
43
42
  schema: {};
44
43
  standaloneSchema: {};
44
+ response: {};
45
45
  }>;
46
46
  export {};
@@ -24,6 +24,7 @@ export declare const refresh: <UserType>({ clientProviders, refreshRoute, onRefr
24
24
  macro: {};
25
25
  macroFn: {};
26
26
  parser: {};
27
+ response: {};
27
28
  }, {
28
29
  [x: string]: {
29
30
  post: {
@@ -35,8 +36,6 @@ export declare const refresh: <UserType>({ clientProviders, refreshRoute, onRefr
35
36
  200: Response;
36
37
  400: "Cookies are missing" | "Invalid provider" | "No refresh token found";
37
38
  401: "Client provider not found" | "No auth provider found" | "No user session found";
38
- 501: "Provider is not refreshable";
39
- 500: "Failed to refresh token";
40
39
  422: {
41
40
  type: "validation";
42
41
  on: string;
@@ -46,6 +45,8 @@ export declare const refresh: <UserType>({ clientProviders, refreshRoute, onRefr
46
45
  property?: string;
47
46
  expected?: string;
48
47
  };
48
+ 500: "Failed to refresh token";
49
+ 501: "Provider is not refreshable";
49
50
  };
50
51
  };
51
52
  };
@@ -54,10 +55,18 @@ export declare const refresh: <UserType>({ clientProviders, refreshRoute, onRefr
54
55
  resolve: {};
55
56
  schema: {};
56
57
  standaloneSchema: {};
58
+ response: {};
57
59
  }, {
58
60
  derive: {};
59
61
  resolve: {};
60
62
  schema: {};
61
63
  standaloneSchema: {};
64
+ response: {};
65
+ } & {
66
+ derive: {};
67
+ resolve: {};
68
+ schema: {};
69
+ standaloneSchema: {};
70
+ response: {};
62
71
  }>;
63
72
  export {};
@@ -23,6 +23,7 @@ export declare const revoke: <UserType>({ clientProviders, revokeRoute, onRevoca
23
23
  macro: {};
24
24
  macroFn: {};
25
25
  parser: {};
26
+ response: {};
26
27
  }, {
27
28
  [x: string]: {
28
29
  post: {
@@ -34,8 +35,6 @@ export declare const revoke: <UserType>({ clientProviders, revokeRoute, onRevoca
34
35
  200: Response;
35
36
  400: "Cookies are missing" | "Invalid provider";
36
37
  401: "Client provider not found" | "No auth provider found" | "No user session found";
37
- 501: "Provider does not support revocation";
38
- 500: "Failed to revoke token";
39
38
  422: {
40
39
  type: "validation";
41
40
  on: string;
@@ -45,6 +44,8 @@ export declare const revoke: <UserType>({ clientProviders, revokeRoute, onRevoca
45
44
  property?: string;
46
45
  expected?: string;
47
46
  };
47
+ 500: "Failed to revoke token";
48
+ 501: "Provider does not support revocation";
48
49
  };
49
50
  };
50
51
  };
@@ -53,10 +54,18 @@ export declare const revoke: <UserType>({ clientProviders, revokeRoute, onRevoca
53
54
  resolve: {};
54
55
  schema: {};
55
56
  standaloneSchema: {};
57
+ response: {};
56
58
  }, {
57
59
  derive: {};
58
60
  resolve: {};
59
61
  schema: {};
60
62
  standaloneSchema: {};
63
+ response: {};
64
+ } & {
65
+ derive: {};
66
+ resolve: {};
67
+ schema: {};
68
+ standaloneSchema: {};
69
+ response: {};
61
70
  }>;
62
71
  export {};
@@ -19,20 +19,25 @@ export declare const sessionCleanup: <UserType>({ cleanupIntervalMs, maxSessions
19
19
  typebox: {};
20
20
  error: {};
21
21
  }, {
22
- schema: import("elysia").MergeSchema<import("elysia").MergeSchema<{}, {}, "">, {}, "">;
22
+ schema: {};
23
23
  standaloneSchema: {};
24
24
  macro: {};
25
25
  macroFn: {};
26
26
  parser: {};
27
+ response: import("elysia").ExtractErrorFromHandle<{
28
+ readonly cleanupSessions: () => Promise<void>;
29
+ }>;
27
30
  }, {}, {
28
31
  derive: {};
29
32
  resolve: {};
30
33
  schema: {};
31
34
  standaloneSchema: {};
35
+ response: {};
32
36
  }, {
33
37
  derive: {};
34
38
  resolve: {};
35
39
  schema: {};
36
40
  standaloneSchema: {};
41
+ response: {};
37
42
  }>;
38
43
  export {};
@@ -17,14 +17,17 @@ export declare const sessionStore: <UserType>() => Elysia<"", {
17
17
  macro: {};
18
18
  macroFn: {};
19
19
  parser: {};
20
+ response: {};
20
21
  }, {}, {
21
22
  derive: {};
22
23
  resolve: {};
23
24
  schema: {};
24
25
  standaloneSchema: {};
26
+ response: {};
25
27
  }, {
26
28
  derive: {};
27
29
  resolve: {};
28
30
  schema: {};
29
31
  standaloneSchema: {};
32
+ response: {};
30
33
  }>;
@@ -21,6 +21,7 @@ export declare const signout: <UserType>({ signoutRoute, onSignOut }: SignOutPro
21
21
  macro: {};
22
22
  macroFn: {};
23
23
  parser: {};
24
+ response: {};
24
25
  }, {
25
26
  [x: string]: {
26
27
  delete: {
@@ -32,7 +33,6 @@ export declare const signout: <UserType>({ signoutRoute, onSignOut }: SignOutPro
32
33
  200: Response;
33
34
  400: "Cookies are missing";
34
35
  401: "No auth provider found" | "No user session id found";
35
- 500: "Sign out operation failed";
36
36
  422: {
37
37
  type: "validation";
38
38
  on: string;
@@ -42,6 +42,7 @@ export declare const signout: <UserType>({ signoutRoute, onSignOut }: SignOutPro
42
42
  property?: string;
43
43
  expected?: string;
44
44
  };
45
+ 500: "Sign out operation failed";
45
46
  };
46
47
  };
47
48
  };
@@ -50,10 +51,18 @@ export declare const signout: <UserType>({ signoutRoute, onSignOut }: SignOutPro
50
51
  resolve: {};
51
52
  schema: {};
52
53
  standaloneSchema: {};
54
+ response: {};
53
55
  }, {
54
56
  derive: {};
55
57
  resolve: {};
56
58
  schema: {};
57
59
  standaloneSchema: {};
60
+ response: {};
61
+ } & {
62
+ derive: {};
63
+ resolve: {};
64
+ schema: {};
65
+ standaloneSchema: {};
66
+ response: {};
58
67
  }>;
59
68
  export {};
@@ -30,7 +30,7 @@ export type UnregisteredSessionRecord = Record<UserSessionId, UnregisteredSessio
30
30
  export type StatusReturn = ElysiaCustomStatusResponse<any, any, any>;
31
31
  export type OnNewUser<UserType> = (userIdentity: Record<string, unknown>) => UserType | StatusReturn | Response | Promise<UserType | StatusReturn | Response>;
32
32
  export type GetUser<UserType> = (userIdentity: Record<string, unknown>) => UserType | null | undefined | Promise<UserType | null | undefined>;
33
- export type CallbackCookie = Record<string, Cookie<string | undefined>> & {
33
+ export type CallbackCookie = Record<string, Cookie<unknown>> & {
34
34
  user_session_id: Cookie<UserSessionId | undefined>;
35
35
  };
36
36
  export type OnCallbackSuccess<UserType> = (({ authProvider, tokenResponse, providerInstance, session, userSessionId, originUrl, cookie, redirect, status }: {
@@ -21,6 +21,7 @@ export declare const userStatus: <UserType>({ statusRoute, onStatus }: StatusPro
21
21
  macro: {};
22
22
  macroFn: {};
23
23
  parser: {};
24
+ response: {};
24
25
  }, {
25
26
  [x: string]: {
26
27
  get: {
@@ -30,10 +31,9 @@ export declare const userStatus: <UserType>({ statusRoute, onStatus }: StatusPro
30
31
  headers: unknown;
31
32
  response: {
32
33
  200: {
33
- user: NonNullable<UserType> | null extends import("elysia").ElysiaFile ? File : NonNullable<UserType> | null;
34
+ user: NonNullable<UserType> | null;
34
35
  };
35
36
  400: "Cookies are missing";
36
- 500: `Error: ${string} - ${string}` | `Unknown Error: ${string}`;
37
37
  422: {
38
38
  type: "validation";
39
39
  on: string;
@@ -43,6 +43,7 @@ export declare const userStatus: <UserType>({ statusRoute, onStatus }: StatusPro
43
43
  property?: string;
44
44
  expected?: string;
45
45
  };
46
+ 500: `Error: ${string} - ${string}` | `Unknown Error: ${string}`;
46
47
  };
47
48
  };
48
49
  };
@@ -51,10 +52,18 @@ export declare const userStatus: <UserType>({ statusRoute, onStatus }: StatusPro
51
52
  resolve: {};
52
53
  schema: {};
53
54
  standaloneSchema: {};
55
+ response: {};
54
56
  }, {
55
57
  derive: {};
56
58
  resolve: {};
57
59
  schema: {};
58
60
  standaloneSchema: {};
61
+ response: {};
62
+ } & {
63
+ derive: {};
64
+ resolve: {};
65
+ schema: {};
66
+ standaloneSchema: {};
67
+ response: {};
59
68
  }>;
60
69
  export {};
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.22.1",
2
+ "version": "0.22.3",
3
3
  "name": "@absolutejs/auth",
4
4
  "description": "An authorization library for absolutejs",
5
5
  "repository": {
@@ -19,7 +19,7 @@
19
19
  "db:studio": "drizzle-kit studio",
20
20
  "lint": "eslint ./src ./example ./eslint.config.mjs",
21
21
  "typecheck": "bun run tsc --noEmit",
22
- "release": "bun lint --fix && bun run format && bun run build && bun publish"
22
+ "release": "bun run format && bun run build && bun publish"
23
23
  },
24
24
  "keywords": [
25
25
  "authorization",
@@ -30,7 +30,7 @@
30
30
  ],
31
31
  "types": "dist/src/index.d.ts",
32
32
  "peerDependencies": {
33
- "elysia": ">= 1.3.8"
33
+ "elysia": ">= 1.4.26"
34
34
  },
35
35
  "dependencies": {
36
36
  "citra": "0.25.9"
@@ -48,7 +48,7 @@
48
48
  "@types/react-dom": "19.1.2",
49
49
  "drizzle-kit": "0.30.6",
50
50
  "drizzle-orm": "0.41.0",
51
- "elysia": "1.3.8",
51
+ "elysia": "1.4.26",
52
52
  "eslint": "9.26.0",
53
53
  "eslint-plugin-absolute": "0.0.3",
54
54
  "eslint-plugin-import": "2.31.0",