@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 +24 -5
- package/dist/index.js.map +8 -8
- package/dist/src/authorize.d.ts +5 -2
- package/dist/src/callback.d.ts +9 -13
- package/dist/src/index.d.ts +56 -34
- package/dist/src/profile.d.ts +10 -1
- package/dist/src/protectRoute.d.ts +11 -11
- package/dist/src/refresh.d.ts +11 -2
- package/dist/src/revoke.d.ts +11 -2
- package/dist/src/sessionCleanup.d.ts +6 -1
- package/dist/src/sessionStore.d.ts +3 -0
- package/dist/src/signout.d.ts +10 -1
- package/dist/src/types.d.ts +1 -1
- package/dist/src/userStatus.d.ts +11 -2
- package/package.json +4 -4
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
|
-
}, {
|
|
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
|
-
}, {
|
|
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
|
-
}, {
|
|
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=
|
|
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{
|
|
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{
|
|
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{
|
|
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": "
|
|
22
|
+
"mappings": "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",
|
|
23
|
+
"debugId": "194F20615684A32064756E2164756E21",
|
|
24
24
|
"names": []
|
|
25
25
|
}
|
package/dist/src/authorize.d.ts
CHANGED
|
@@ -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 {};
|
package/dist/src/callback.d.ts
CHANGED
|
@@ -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 {};
|
package/dist/src/index.d.ts
CHANGED
|
@@ -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
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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
|
|
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';
|
package/dist/src/profile.d.ts
CHANGED
|
@@ -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
|
|
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").
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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 {};
|
package/dist/src/refresh.d.ts
CHANGED
|
@@ -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 {};
|
package/dist/src/revoke.d.ts
CHANGED
|
@@ -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:
|
|
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
|
}>;
|
package/dist/src/signout.d.ts
CHANGED
|
@@ -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 {};
|
package/dist/src/types.d.ts
CHANGED
|
@@ -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<
|
|
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 }: {
|
package/dist/src/userStatus.d.ts
CHANGED
|
@@ -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
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
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",
|