@draftlab/auth 0.15.0 → 0.16.0
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/esm/allow.js +26 -0
- package/dist/esm/client.js +254 -0
- package/dist/esm/core.js +597 -0
- package/dist/esm/css.d.js +0 -0
- package/dist/esm/error.js +88 -0
- package/dist/esm/index.js +5 -0
- package/dist/esm/keys.js +126 -0
- package/dist/esm/mutex.js +53 -0
- package/dist/esm/pkce.js +87 -0
- package/dist/esm/provider/apple.js +15 -0
- package/dist/esm/provider/code.js +62 -0
- package/dist/esm/provider/discord.js +15 -0
- package/dist/esm/provider/facebook.js +15 -0
- package/dist/esm/provider/github.js +15 -0
- package/dist/esm/provider/gitlab.js +15 -0
- package/dist/esm/provider/google.js +16 -0
- package/dist/esm/provider/linkedin.js +15 -0
- package/dist/esm/provider/magiclink.js +83 -0
- package/dist/esm/provider/microsoft.js +15 -0
- package/dist/esm/provider/oauth2.js +130 -0
- package/dist/esm/provider/password.js +331 -0
- package/dist/esm/provider/provider.js +18 -0
- package/dist/esm/provider/reddit.js +15 -0
- package/dist/esm/provider/slack.js +15 -0
- package/dist/esm/provider/spotify.js +15 -0
- package/dist/esm/provider/twitch.js +15 -0
- package/dist/esm/provider/vercel.js +17 -0
- package/dist/esm/random.js +40 -0
- package/dist/esm/revocation.js +27 -0
- package/dist/esm/storage/memory.js +110 -0
- package/dist/esm/storage/storage.js +56 -0
- package/dist/esm/storage/turso.js +93 -0
- package/dist/esm/storage/unstorage.js +78 -0
- package/dist/esm/subject.js +7 -0
- package/dist/esm/themes/theme.js +115 -0
- package/dist/esm/toolkit/client.js +119 -0
- package/dist/esm/toolkit/index.js +25 -0
- package/dist/esm/toolkit/providers/facebook.js +11 -0
- package/dist/esm/toolkit/providers/github.js +11 -0
- package/dist/esm/toolkit/providers/google.js +11 -0
- package/dist/esm/toolkit/providers/strategy.js +0 -0
- package/dist/esm/toolkit/storage.js +81 -0
- package/dist/esm/toolkit/utils.js +18 -0
- package/dist/esm/types.js +0 -0
- package/dist/esm/ui/base.js +478 -0
- package/dist/esm/ui/code.js +186 -0
- package/dist/esm/ui/form.js +46 -0
- package/dist/esm/ui/icon.js +242 -0
- package/dist/esm/ui/magiclink.js +158 -0
- package/dist/esm/ui/password.js +435 -0
- package/dist/esm/ui/select.js +102 -0
- package/dist/esm/util.js +59 -0
- package/dist/{allow.d.mts → types/allow.d.ts} +9 -11
- package/dist/types/allow.d.ts.map +1 -0
- package/dist/types/client.d.ts +462 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/core.d.ts +113 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/{error.d.mts → types/error.d.ts} +95 -97
- package/dist/types/error.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/{keys.d.mts → types/keys.d.ts} +20 -24
- package/dist/types/keys.d.ts.map +1 -0
- package/dist/types/mutex.d.ts +42 -0
- package/dist/types/mutex.d.ts.map +1 -0
- package/dist/{pkce.d.mts → types/pkce.d.ts} +10 -11
- package/dist/types/pkce.d.ts.map +1 -0
- package/dist/types/provider/apple.d.ts +197 -0
- package/dist/types/provider/apple.d.ts.map +1 -0
- package/dist/types/provider/code.d.ts +288 -0
- package/dist/types/provider/code.d.ts.map +1 -0
- package/dist/types/provider/discord.d.ts +206 -0
- package/dist/types/provider/discord.d.ts.map +1 -0
- package/dist/types/provider/facebook.d.ts +200 -0
- package/dist/types/provider/facebook.d.ts.map +1 -0
- package/dist/types/provider/github.d.ts +220 -0
- package/dist/types/provider/github.d.ts.map +1 -0
- package/dist/types/provider/gitlab.d.ts +180 -0
- package/dist/types/provider/gitlab.d.ts.map +1 -0
- package/dist/types/provider/google.d.ts +158 -0
- package/dist/types/provider/google.d.ts.map +1 -0
- package/dist/types/provider/linkedin.d.ts +190 -0
- package/dist/types/provider/linkedin.d.ts.map +1 -0
- package/dist/types/provider/magiclink.d.ts +141 -0
- package/dist/types/provider/magiclink.d.ts.map +1 -0
- package/dist/types/provider/microsoft.d.ts +247 -0
- package/dist/types/provider/microsoft.d.ts.map +1 -0
- package/dist/types/provider/oauth2.d.ts +229 -0
- package/dist/types/provider/oauth2.d.ts.map +1 -0
- package/dist/types/provider/password.d.ts +408 -0
- package/dist/types/provider/password.d.ts.map +1 -0
- package/dist/types/provider/provider.d.ts +226 -0
- package/dist/types/provider/provider.d.ts.map +1 -0
- package/dist/types/provider/reddit.d.ts +159 -0
- package/dist/types/provider/reddit.d.ts.map +1 -0
- package/dist/types/provider/slack.d.ts +171 -0
- package/dist/types/provider/slack.d.ts.map +1 -0
- package/dist/types/provider/spotify.d.ts +168 -0
- package/dist/types/provider/spotify.d.ts.map +1 -0
- package/dist/types/provider/twitch.d.ts +163 -0
- package/dist/types/provider/twitch.d.ts.map +1 -0
- package/dist/types/provider/vercel.d.ts +294 -0
- package/dist/types/provider/vercel.d.ts.map +1 -0
- package/dist/{random.d.mts → types/random.d.ts} +4 -6
- package/dist/types/random.d.ts.map +1 -0
- package/dist/types/revocation.d.ts +76 -0
- package/dist/types/revocation.d.ts.map +1 -0
- package/dist/{storage/memory.d.mts → types/storage/memory.d.ts} +17 -21
- package/dist/types/storage/memory.d.ts.map +1 -0
- package/dist/types/storage/storage.d.ts +177 -0
- package/dist/types/storage/storage.d.ts.map +1 -0
- package/dist/{storage/turso.d.mts → types/storage/turso.d.ts} +4 -8
- package/dist/types/storage/turso.d.ts.map +1 -0
- package/dist/{storage/unstorage.d.mts → types/storage/unstorage.d.ts} +12 -11
- package/dist/types/storage/unstorage.d.ts.map +1 -0
- package/dist/types/subject.d.ts +115 -0
- package/dist/types/subject.d.ts.map +1 -0
- package/dist/types/themes/theme.d.ts +207 -0
- package/dist/types/themes/theme.d.ts.map +1 -0
- package/dist/types/toolkit/client.d.ts +235 -0
- package/dist/types/toolkit/client.d.ts.map +1 -0
- package/dist/types/toolkit/index.d.ts +45 -0
- package/dist/types/toolkit/index.d.ts.map +1 -0
- package/dist/types/toolkit/providers/facebook.d.ts +8 -0
- package/dist/types/toolkit/providers/facebook.d.ts.map +1 -0
- package/dist/types/toolkit/providers/github.d.ts +8 -0
- package/dist/types/toolkit/providers/github.d.ts.map +1 -0
- package/dist/types/toolkit/providers/google.d.ts +8 -0
- package/dist/types/toolkit/providers/google.d.ts.map +1 -0
- package/dist/types/toolkit/providers/strategy.d.ts +38 -0
- package/dist/types/toolkit/providers/strategy.d.ts.map +1 -0
- package/dist/{toolkit/storage.d.mts → types/toolkit/storage.d.ts} +37 -39
- package/dist/types/toolkit/storage.d.ts.map +1 -0
- package/dist/{toolkit/utils.d.mts → types/toolkit/utils.d.ts} +2 -4
- package/dist/types/toolkit/utils.d.ts.map +1 -0
- package/dist/types/types.d.ts +92 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/ui/base.d.ts +18 -0
- package/dist/types/ui/base.d.ts.map +1 -0
- package/dist/types/ui/code.d.ts +43 -0
- package/dist/types/ui/code.d.ts.map +1 -0
- package/dist/types/ui/form.d.ts +24 -0
- package/dist/types/ui/form.d.ts.map +1 -0
- package/dist/types/ui/icon.d.ts +60 -0
- package/dist/types/ui/icon.d.ts.map +1 -0
- package/dist/types/ui/magiclink.d.ts +41 -0
- package/dist/types/ui/magiclink.d.ts.map +1 -0
- package/dist/types/ui/password.d.ts +43 -0
- package/dist/types/ui/password.d.ts.map +1 -0
- package/dist/types/ui/select.d.ts +33 -0
- package/dist/types/ui/select.d.ts.map +1 -0
- package/dist/{util.d.mts → types/util.d.ts} +11 -13
- package/dist/types/util.d.ts.map +1 -0
- package/package.json +10 -16
- package/dist/adapters/node.d.mts +0 -18
- package/dist/adapters/node.mjs +0 -69
- package/dist/allow.mjs +0 -63
- package/dist/client.d.mts +0 -456
- package/dist/client.mjs +0 -283
- package/dist/core.d.mts +0 -110
- package/dist/core.mjs +0 -595
- package/dist/error.mjs +0 -237
- package/dist/index.d.mts +0 -2
- package/dist/index.mjs +0 -3
- package/dist/keys.mjs +0 -146
- package/dist/mutex.d.mts +0 -44
- package/dist/mutex.mjs +0 -110
- package/dist/pkce.mjs +0 -157
- package/dist/provider/apple.d.mts +0 -111
- package/dist/provider/apple.mjs +0 -164
- package/dist/provider/code.d.mts +0 -228
- package/dist/provider/code.mjs +0 -246
- package/dist/provider/discord.d.mts +0 -146
- package/dist/provider/discord.mjs +0 -156
- package/dist/provider/facebook.d.mts +0 -142
- package/dist/provider/facebook.mjs +0 -150
- package/dist/provider/github.d.mts +0 -140
- package/dist/provider/github.mjs +0 -169
- package/dist/provider/gitlab.d.mts +0 -106
- package/dist/provider/gitlab.mjs +0 -147
- package/dist/provider/google.d.mts +0 -112
- package/dist/provider/google.mjs +0 -109
- package/dist/provider/linkedin.d.mts +0 -132
- package/dist/provider/linkedin.mjs +0 -142
- package/dist/provider/magiclink.d.mts +0 -89
- package/dist/provider/magiclink.mjs +0 -143
- package/dist/provider/microsoft.d.mts +0 -178
- package/dist/provider/microsoft.mjs +0 -177
- package/dist/provider/oauth2.d.mts +0 -176
- package/dist/provider/oauth2.mjs +0 -222
- package/dist/provider/passkey.d.mts +0 -104
- package/dist/provider/passkey.mjs +0 -320
- package/dist/provider/password.d.mts +0 -412
- package/dist/provider/password.mjs +0 -363
- package/dist/provider/provider.d.mts +0 -227
- package/dist/provider/provider.mjs +0 -44
- package/dist/provider/reddit.d.mts +0 -107
- package/dist/provider/reddit.mjs +0 -127
- package/dist/provider/slack.d.mts +0 -114
- package/dist/provider/slack.mjs +0 -138
- package/dist/provider/spotify.d.mts +0 -113
- package/dist/provider/spotify.mjs +0 -135
- package/dist/provider/totp.d.mts +0 -112
- package/dist/provider/totp.mjs +0 -191
- package/dist/provider/twitch.d.mts +0 -108
- package/dist/provider/twitch.mjs +0 -131
- package/dist/provider/vercel.d.mts +0 -177
- package/dist/provider/vercel.mjs +0 -230
- package/dist/random.mjs +0 -86
- package/dist/revocation.d.mts +0 -55
- package/dist/revocation.mjs +0 -63
- package/dist/router/context.d.mts +0 -21
- package/dist/router/context.mjs +0 -193
- package/dist/router/cookies.d.mts +0 -8
- package/dist/router/cookies.mjs +0 -13
- package/dist/router/index.d.mts +0 -21
- package/dist/router/index.mjs +0 -107
- package/dist/router/matcher.d.mts +0 -15
- package/dist/router/matcher.mjs +0 -76
- package/dist/router/middleware/cors.d.mts +0 -15
- package/dist/router/middleware/cors.mjs +0 -114
- package/dist/router/safe-request.d.mts +0 -52
- package/dist/router/safe-request.mjs +0 -160
- package/dist/router/types.d.mts +0 -67
- package/dist/router/types.mjs +0 -1
- package/dist/router/variables.d.mts +0 -12
- package/dist/router/variables.mjs +0 -20
- package/dist/storage/memory.mjs +0 -125
- package/dist/storage/storage.d.mts +0 -179
- package/dist/storage/storage.mjs +0 -104
- package/dist/storage/turso.mjs +0 -117
- package/dist/storage/unstorage.mjs +0 -103
- package/dist/subject.d.mts +0 -62
- package/dist/subject.mjs +0 -36
- package/dist/themes/theme.d.mts +0 -209
- package/dist/themes/theme.mjs +0 -120
- package/dist/toolkit/client.d.mts +0 -169
- package/dist/toolkit/client.mjs +0 -209
- package/dist/toolkit/index.d.mts +0 -9
- package/dist/toolkit/index.mjs +0 -9
- package/dist/toolkit/providers/facebook.d.mts +0 -12
- package/dist/toolkit/providers/facebook.mjs +0 -16
- package/dist/toolkit/providers/github.d.mts +0 -12
- package/dist/toolkit/providers/github.mjs +0 -16
- package/dist/toolkit/providers/google.d.mts +0 -12
- package/dist/toolkit/providers/google.mjs +0 -20
- package/dist/toolkit/providers/strategy.d.mts +0 -40
- package/dist/toolkit/providers/strategy.mjs +0 -1
- package/dist/toolkit/storage.mjs +0 -157
- package/dist/toolkit/utils.mjs +0 -30
- package/dist/types.d.mts +0 -94
- package/dist/types.mjs +0 -1
- package/dist/ui/base.d.mts +0 -30
- package/dist/ui/base.mjs +0 -407
- package/dist/ui/code.d.mts +0 -43
- package/dist/ui/code.mjs +0 -173
- package/dist/ui/form.d.mts +0 -32
- package/dist/ui/form.mjs +0 -49
- package/dist/ui/icon.d.mts +0 -58
- package/dist/ui/icon.mjs +0 -247
- package/dist/ui/magiclink.d.mts +0 -41
- package/dist/ui/magiclink.mjs +0 -152
- package/dist/ui/passkey.d.mts +0 -27
- package/dist/ui/passkey.mjs +0 -323
- package/dist/ui/password.d.mts +0 -42
- package/dist/ui/password.mjs +0 -402
- package/dist/ui/select.d.mts +0 -34
- package/dist/ui/select.mjs +0 -98
- package/dist/ui/totp.d.mts +0 -34
- package/dist/ui/totp.mjs +0 -270
- package/dist/util.mjs +0 -128
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
//#region src/toolkit/storage.d.ts
|
|
2
1
|
/**
|
|
3
2
|
* Storage adapters for PKCE state management across different runtime environments.
|
|
4
3
|
* Provides implementations for browser (sessionStorage/localStorage), server (cookies),
|
|
@@ -7,35 +6,35 @@
|
|
|
7
6
|
/**
|
|
8
7
|
* PKCE state data stored during OAuth flow.
|
|
9
8
|
*/
|
|
10
|
-
interface PKCEState {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
9
|
+
export interface PKCEState {
|
|
10
|
+
/** Random state parameter for CSRF protection */
|
|
11
|
+
readonly state: string;
|
|
12
|
+
/** PKCE code verifier for token exchange */
|
|
13
|
+
readonly verifier: string;
|
|
14
|
+
/** OAuth provider identifier */
|
|
15
|
+
readonly provider: string;
|
|
16
|
+
/** Optional nonce for additional security */
|
|
17
|
+
readonly nonce?: string;
|
|
19
18
|
}
|
|
20
19
|
/**
|
|
21
20
|
* Storage interface for persisting PKCE state during OAuth flow.
|
|
22
21
|
* Implement this interface to provide custom storage backends.
|
|
23
22
|
*/
|
|
24
|
-
interface AuthStorage {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
23
|
+
export interface AuthStorage {
|
|
24
|
+
/**
|
|
25
|
+
* Store PKCE state data.
|
|
26
|
+
* @param state - PKCE state to persist
|
|
27
|
+
*/
|
|
28
|
+
set(state: PKCEState): void | Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Retrieve stored PKCE state data.
|
|
31
|
+
* @returns Stored state or null if not found
|
|
32
|
+
*/
|
|
33
|
+
get(): PKCEState | null | Promise<PKCEState | null>;
|
|
34
|
+
/**
|
|
35
|
+
* Clear stored PKCE state data.
|
|
36
|
+
*/
|
|
37
|
+
clear(): void | Promise<void>;
|
|
39
38
|
}
|
|
40
39
|
/**
|
|
41
40
|
* Creates a browser sessionStorage adapter for PKCE state.
|
|
@@ -54,7 +53,7 @@ interface AuthStorage {
|
|
|
54
53
|
* })
|
|
55
54
|
* ```
|
|
56
55
|
*/
|
|
57
|
-
declare const createSessionStorage: () => AuthStorage;
|
|
56
|
+
export declare const createSessionStorage: () => AuthStorage;
|
|
58
57
|
/**
|
|
59
58
|
* Creates a browser localStorage adapter for PKCE state.
|
|
60
59
|
* Suitable for client-side SPAs where state should persist across browser sessions.
|
|
@@ -75,7 +74,7 @@ declare const createSessionStorage: () => AuthStorage;
|
|
|
75
74
|
* })
|
|
76
75
|
* ```
|
|
77
76
|
*/
|
|
78
|
-
declare const createLocalStorage: () => AuthStorage;
|
|
77
|
+
export declare const createLocalStorage: () => AuthStorage;
|
|
79
78
|
/**
|
|
80
79
|
* Creates a memory-based storage adapter for PKCE state.
|
|
81
80
|
* Suitable for server-side rendering or testing environments.
|
|
@@ -94,7 +93,7 @@ declare const createLocalStorage: () => AuthStorage;
|
|
|
94
93
|
* })
|
|
95
94
|
* ```
|
|
96
95
|
*/
|
|
97
|
-
declare const createMemoryStorage: () => AuthStorage;
|
|
96
|
+
export declare const createMemoryStorage: () => AuthStorage;
|
|
98
97
|
/**
|
|
99
98
|
* Creates a cookie-based storage adapter for PKCE state.
|
|
100
99
|
* Suitable for server-side OAuth flows (Next.js, Remix, etc.) where you need
|
|
@@ -131,15 +130,14 @@ declare const createMemoryStorage: () => AuthStorage;
|
|
|
131
130
|
* })
|
|
132
131
|
* ```
|
|
133
132
|
*/
|
|
134
|
-
declare const createCookieStorage: (options: {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
133
|
+
export declare const createCookieStorage: (options: {
|
|
134
|
+
getCookie: (name: string) => string | null | Promise<string | null>;
|
|
135
|
+
setCookie: (name: string, value: string, options: {
|
|
136
|
+
maxAge?: number;
|
|
137
|
+
httpOnly?: boolean;
|
|
138
|
+
secure?: boolean;
|
|
139
|
+
sameSite?: string;
|
|
140
|
+
}) => void | Promise<void>;
|
|
141
|
+
deleteCookie: (name: string) => void | Promise<void>;
|
|
143
142
|
}) => AuthStorage;
|
|
144
|
-
//#
|
|
145
|
-
export { AuthStorage, PKCEState, createCookieStorage, createLocalStorage, createMemoryStorage, createSessionStorage };
|
|
143
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/toolkit/storage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B;;;OAGG;IACH,GAAG,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE3C;;;OAGG;IACH,GAAG,IAAI,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IAEnD;;OAEG;IACH,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB,QAAO,WAsBtC,CAAA;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,kBAAkB,QAAO,WAsBpC,CAAA;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,mBAAmB,QAAO,WAgBtC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS;IAC5C,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACnE,SAAS,EAAE,CACV,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KACjF,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD,KAAG,WAkBF,CAAA"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
//#region src/toolkit/utils.d.ts
|
|
2
1
|
/**
|
|
3
2
|
* Universal utilities for the OAuth toolkit.
|
|
4
3
|
* These functions work in both browser and Node.js environments.
|
|
@@ -16,6 +15,5 @@
|
|
|
16
15
|
* const token = generateSecureRandom(32) // 256-bit random token
|
|
17
16
|
* ```
|
|
18
17
|
*/
|
|
19
|
-
declare const generateSecureRandom: (length?: number) => string;
|
|
20
|
-
//#
|
|
21
|
-
export { generateSecureRandom };
|
|
18
|
+
export declare const generateSecureRandom: (length?: number) => string;
|
|
19
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/toolkit/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oBAAoB,GAAI,eAAW,KAAG,MAoBlD,CAAA"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared type definitions for Draft Auth core.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Authorization state for OAuth 2.0 flows.
|
|
6
|
+
*/
|
|
7
|
+
export interface AuthorizationState {
|
|
8
|
+
/** OAuth redirect URI */
|
|
9
|
+
redirect_uri?: string;
|
|
10
|
+
/** OAuth response type (code, token) */
|
|
11
|
+
response_type?: string;
|
|
12
|
+
/** OAuth state parameter for CSRF protection */
|
|
13
|
+
state?: string;
|
|
14
|
+
/** OAuth client identifier */
|
|
15
|
+
client_id?: string;
|
|
16
|
+
/** OAuth audience parameter */
|
|
17
|
+
audience?: string;
|
|
18
|
+
/** Raw scope string from request */
|
|
19
|
+
scope?: string;
|
|
20
|
+
/** Parsed OAuth scopes array */
|
|
21
|
+
scopes?: string[];
|
|
22
|
+
/** PKCE challenge data for code verification */
|
|
23
|
+
pkce?: PKCEChallenge;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Token generation result for OAuth 2.0.
|
|
27
|
+
*/
|
|
28
|
+
export interface TokenGenerationResult {
|
|
29
|
+
/** OAuth access token */
|
|
30
|
+
access: string;
|
|
31
|
+
/** Token expiration time in seconds */
|
|
32
|
+
expiresIn: number;
|
|
33
|
+
/** OAuth refresh token */
|
|
34
|
+
refresh: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* PKCE challenge data for OAuth flows.
|
|
38
|
+
*/
|
|
39
|
+
export interface PKCEChallenge {
|
|
40
|
+
challenge: string;
|
|
41
|
+
method: "S256";
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* TTL configuration for tokens and sessions.
|
|
45
|
+
*/
|
|
46
|
+
export interface TtlConfiguration {
|
|
47
|
+
/** Access token TTL in seconds */
|
|
48
|
+
access: number;
|
|
49
|
+
/** Refresh token TTL in seconds */
|
|
50
|
+
refresh: number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Refresh token storage payload structure.
|
|
54
|
+
* Contains metadata about issued refresh tokens.
|
|
55
|
+
*/
|
|
56
|
+
export interface RefreshTokenStoragePayload {
|
|
57
|
+
/** Subject type identifier */
|
|
58
|
+
type: string;
|
|
59
|
+
/** Subject properties/claims */
|
|
60
|
+
properties: unknown;
|
|
61
|
+
/** Resolved subject identifier for JWT */
|
|
62
|
+
subject: string;
|
|
63
|
+
/** Client identifier that owns this refresh token */
|
|
64
|
+
clientID: string;
|
|
65
|
+
/** OAuth scopes associated with this token */
|
|
66
|
+
scopes?: string[];
|
|
67
|
+
/** Timestamp when the refresh token was first used */
|
|
68
|
+
timeUsed?: number;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Code storage payload for authorization code grant.
|
|
72
|
+
* Used for storing authorization code data during OAuth flows.
|
|
73
|
+
*/
|
|
74
|
+
export interface CodeStoragePayload {
|
|
75
|
+
/** Subject type identifier */
|
|
76
|
+
type: string;
|
|
77
|
+
/** Subject properties/claims */
|
|
78
|
+
properties: unknown;
|
|
79
|
+
/** Resolved subject identifier for JWT */
|
|
80
|
+
subject: string;
|
|
81
|
+
/** Redirect URI used in authorization request */
|
|
82
|
+
redirectURI: string;
|
|
83
|
+
/** Client identifier */
|
|
84
|
+
clientID: string;
|
|
85
|
+
/** OAuth scopes */
|
|
86
|
+
scopes?: string[];
|
|
87
|
+
/** Token TTL configuration */
|
|
88
|
+
ttl: TtlConfiguration;
|
|
89
|
+
/** PKCE challenge data */
|
|
90
|
+
pkce?: PKCEChallenge;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,gDAAgD;IAChD,IAAI,CAAC,EAAE,aAAa,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAA;IACjB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IAC1C,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,gCAAgC;IAChC,UAAU,EAAE,OAAO,CAAA;IACnB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAA;IAChB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAClC,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,gCAAgC;IAChC,UAAU,EAAE,OAAO,CAAA;IACnB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAA;IACnB,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,8BAA8B;IAC9B,GAAG,EAAE,gBAAgB,CAAA;IACrB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,aAAa,CAAA;CACpB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base layout component for DraftAuth UI
|
|
3
|
+
*/
|
|
4
|
+
import type { PropsWithChildren } from "hono/jsx";
|
|
5
|
+
import { type Theme } from "../themes/theme";
|
|
6
|
+
/**
|
|
7
|
+
* Props for the Layout component
|
|
8
|
+
*/
|
|
9
|
+
export interface LayoutProps {
|
|
10
|
+
theme?: Theme;
|
|
11
|
+
title?: string;
|
|
12
|
+
size?: "small";
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Base Layout component that provides the foundational structure for all auth UIs
|
|
16
|
+
*/
|
|
17
|
+
export declare const Layout: (props: PropsWithChildren<LayoutProps>) => import("hono/jsx/jsx-dev-runtime").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/ui/base.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAY,KAAK,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAGtD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;CACd;AAuBD;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,OAAO,iBAAiB,CAAC,WAAW,CAAC,mDAqH3D,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI component for PIN code authentication flow
|
|
3
|
+
* Provides a complete interface for collecting user claims and verifying PIN codes
|
|
4
|
+
*/
|
|
5
|
+
import type { CodeProviderOptions } from "../provider/code";
|
|
6
|
+
/**
|
|
7
|
+
* Type for customizable UI copy text
|
|
8
|
+
*/
|
|
9
|
+
export interface CodeUICopy {
|
|
10
|
+
readonly email_placeholder: string;
|
|
11
|
+
readonly email_invalid: string;
|
|
12
|
+
readonly button_continue: string;
|
|
13
|
+
readonly code_info: string;
|
|
14
|
+
readonly code_placeholder: string;
|
|
15
|
+
readonly code_invalid: string;
|
|
16
|
+
readonly code_sent: string;
|
|
17
|
+
readonly code_resent: string;
|
|
18
|
+
readonly code_didnt_get: string;
|
|
19
|
+
readonly code_resend: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Input mode for the contact field
|
|
23
|
+
*/
|
|
24
|
+
export type CodeUIMode = "email" | "phone";
|
|
25
|
+
/**
|
|
26
|
+
* Configuration options for the CodeUI component
|
|
27
|
+
*/
|
|
28
|
+
export interface CodeUIOptions extends Pick<CodeProviderOptions, "sendCode"> {
|
|
29
|
+
/**
|
|
30
|
+
* Input mode determining the type of contact information to collect
|
|
31
|
+
* @default "email"
|
|
32
|
+
*/
|
|
33
|
+
readonly mode?: CodeUIMode;
|
|
34
|
+
/**
|
|
35
|
+
* Custom text copy for UI labels, messages, and errors
|
|
36
|
+
*/
|
|
37
|
+
readonly copy?: Partial<CodeUICopy>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Creates a complete UI configuration for PIN code authentication
|
|
41
|
+
*/
|
|
42
|
+
export declare const CodeUI: (options: CodeUIOptions) => CodeProviderOptions;
|
|
43
|
+
//# sourceMappingURL=code.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../../src/ui/code.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAEX,mBAAmB,EAEnB,MAAM,kBAAkB,CAAA;AA+BzB;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,OAAO,CAAA;AAE1C;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC;IAC3E;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;CACnC;AAqCD;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,SAAS,aAAa,KAAG,mBAmH/C,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Form alert component for displaying success and error messages.
|
|
3
|
+
* Provides consistent styling and iconography for user feedback in authentication forms.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Props for the FormAlert component.
|
|
7
|
+
*/
|
|
8
|
+
export interface FormAlertProps {
|
|
9
|
+
/**
|
|
10
|
+
* The message text to display in the alert.
|
|
11
|
+
* If not provided, the alert will not render.
|
|
12
|
+
*/
|
|
13
|
+
readonly message?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Visual style variant for the alert.
|
|
16
|
+
* @default "danger"
|
|
17
|
+
*/
|
|
18
|
+
readonly color?: "danger" | "success";
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Form alert component that displays error or success messages.
|
|
22
|
+
*/
|
|
23
|
+
export declare function FormAlert(props: FormAlertProps): import("hono/jsx/jsx-dev-runtime").JSX.Element;
|
|
24
|
+
//# sourceMappingURL=form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../src/ui/form.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;CACrC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,kDAsC9C"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Icon components for Draft Auth UI.
|
|
3
|
+
* Provides SVG icons for various authentication providers and common UI elements.
|
|
4
|
+
*
|
|
5
|
+
* @packageDocumentation
|
|
6
|
+
*/
|
|
7
|
+
import type { Child } from "hono/jsx";
|
|
8
|
+
/**
|
|
9
|
+
* GitHub brand icon with official logo design.
|
|
10
|
+
*/
|
|
11
|
+
export declare const ICON_GITHUB: () => Child;
|
|
12
|
+
/**
|
|
13
|
+
* Google brand icon with official multicolor logo design.
|
|
14
|
+
*/
|
|
15
|
+
export declare const ICON_GOOGLE: () => Child;
|
|
16
|
+
/**
|
|
17
|
+
* Email envelope icon for email-related authentication flows.
|
|
18
|
+
*/
|
|
19
|
+
export declare const ICON_EMAIL: () => Child;
|
|
20
|
+
/**
|
|
21
|
+
* Apple brand icon for Sign in with Apple.
|
|
22
|
+
*/
|
|
23
|
+
export declare const ICON_APPLE: () => Child;
|
|
24
|
+
/**
|
|
25
|
+
* Discord brand icon.
|
|
26
|
+
*/
|
|
27
|
+
export declare const ICON_DISCORD: () => Child;
|
|
28
|
+
/**
|
|
29
|
+
* Facebook brand icon with gradient.
|
|
30
|
+
*/
|
|
31
|
+
export declare const ICON_FACEBOOK: () => Child;
|
|
32
|
+
/**
|
|
33
|
+
* LinkedIn brand icon.
|
|
34
|
+
*/
|
|
35
|
+
export declare const ICON_LINKEDIN: () => Child;
|
|
36
|
+
/**
|
|
37
|
+
* Microsoft brand icon with four color squares.
|
|
38
|
+
*/
|
|
39
|
+
export declare const ICON_MICROSOFT: () => Child;
|
|
40
|
+
/**
|
|
41
|
+
* Slack brand icon.
|
|
42
|
+
*/
|
|
43
|
+
export declare const ICON_SLACK: () => Child;
|
|
44
|
+
/**
|
|
45
|
+
* GitLab brand icon.
|
|
46
|
+
*/
|
|
47
|
+
export declare const ICON_GITLAB: () => Child;
|
|
48
|
+
/**
|
|
49
|
+
* Reddit brand icon.
|
|
50
|
+
*/
|
|
51
|
+
export declare const ICON_REDDIT: () => Child;
|
|
52
|
+
/**
|
|
53
|
+
* Spotify brand icon.
|
|
54
|
+
*/
|
|
55
|
+
export declare const ICON_SPOTIFY: () => Child;
|
|
56
|
+
/**
|
|
57
|
+
* Twitch brand icon.
|
|
58
|
+
*/
|
|
59
|
+
export declare const ICON_TWITCH: () => Child;
|
|
60
|
+
//# sourceMappingURL=icon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/ui/icon.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAErC;;GAEG;AACH,eAAO,MAAM,WAAW,QAAO,KAa9B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,QAAO,KA2B9B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,QAAO,KAgB7B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,QAAO,KAU7B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,QAAO,KAU/B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,QAAO,KAoBhC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,QAAO,KAUhC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,QAAO,KAajC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,QAAO,KA2B7B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,QAAO,KAU9B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,QAAO,KAU9B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,QAAO,KAU/B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,QAAO,KAU9B,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI component for Magic Link authentication flow
|
|
3
|
+
* Provides a complete interface for collecting user claims and sending magic links
|
|
4
|
+
*/
|
|
5
|
+
import type { MagicLinkConfig } from "../provider/magiclink";
|
|
6
|
+
/**
|
|
7
|
+
* Type for customizable UI copy text
|
|
8
|
+
*/
|
|
9
|
+
export interface MagicLinkUICopy {
|
|
10
|
+
readonly email_placeholder: string;
|
|
11
|
+
readonly email_invalid: string;
|
|
12
|
+
readonly button_continue: string;
|
|
13
|
+
readonly link_info: string;
|
|
14
|
+
readonly link_sent: string;
|
|
15
|
+
readonly link_resent: string;
|
|
16
|
+
readonly link_didnt_get: string;
|
|
17
|
+
readonly link_resend: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Input mode for the contact field
|
|
21
|
+
*/
|
|
22
|
+
export type MagicLinkUIMode = "email" | "phone";
|
|
23
|
+
/**
|
|
24
|
+
* Configuration options for the MagicLinkUI component
|
|
25
|
+
*/
|
|
26
|
+
export interface MagicLinkUIOptions<Claims extends Record<string, string> = Record<string, string>> extends Pick<MagicLinkConfig<Claims>, "sendLink"> {
|
|
27
|
+
/**
|
|
28
|
+
* Input mode determining the type of contact information to collect
|
|
29
|
+
* @default "email"
|
|
30
|
+
*/
|
|
31
|
+
readonly mode?: MagicLinkUIMode;
|
|
32
|
+
/**
|
|
33
|
+
* Custom text copy for UI labels, messages, and errors
|
|
34
|
+
*/
|
|
35
|
+
readonly copy?: Partial<MagicLinkUICopy>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Creates a complete UI configuration for Magic Link authentication
|
|
39
|
+
*/
|
|
40
|
+
export declare const MagicLinkUI: <Claims extends Record<string, string> = Record<string, string>>(options: MagicLinkUIOptions<Claims>) => MagicLinkConfig<Claims>;
|
|
41
|
+
//# sourceMappingURL=magiclink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"magiclink.d.ts","sourceRoot":"","sources":["../../../src/ui/magiclink.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAkC,MAAM,uBAAuB,CAAA;AA2B5F;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,CAAA;AAE/C;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAClC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAC7D,SAAQ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAClD;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,CAAA;IAC/B;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CACxC;AAsCD;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACzF,SAAS,kBAAkB,CAAC,MAAM,CAAC,KACjC,eAAe,CAAC,MAAM,CA8FxB,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Password authentication UI component
|
|
3
|
+
* Provides complete interfaces for login, registration, and password changes with email verification
|
|
4
|
+
*/
|
|
5
|
+
import type { PasswordConfig } from "../provider/password";
|
|
6
|
+
/**
|
|
7
|
+
* Strongly typed copy text configuration for password UI
|
|
8
|
+
*/
|
|
9
|
+
interface PasswordUICopy {
|
|
10
|
+
readonly error_email_taken: string;
|
|
11
|
+
readonly error_invalid_code: string;
|
|
12
|
+
readonly error_invalid_email: string;
|
|
13
|
+
readonly error_invalid_password: string;
|
|
14
|
+
readonly error_password_mismatch: string;
|
|
15
|
+
readonly register: string;
|
|
16
|
+
readonly register_prompt: string;
|
|
17
|
+
readonly login_prompt: string;
|
|
18
|
+
readonly login: string;
|
|
19
|
+
readonly change_prompt: string;
|
|
20
|
+
readonly code_resend: string;
|
|
21
|
+
readonly code_return: string;
|
|
22
|
+
readonly input_email: string;
|
|
23
|
+
readonly input_password: string;
|
|
24
|
+
readonly input_code: string;
|
|
25
|
+
readonly input_repeat: string;
|
|
26
|
+
readonly button_continue: string;
|
|
27
|
+
readonly logo: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Configuration options for the PasswordUI component
|
|
31
|
+
*/
|
|
32
|
+
export interface PasswordUIOptions extends Pick<PasswordConfig, "sendCode" | "validatePassword"> {
|
|
33
|
+
/**
|
|
34
|
+
* Custom text copy for UI labels, messages, and errors
|
|
35
|
+
*/
|
|
36
|
+
readonly copy?: Partial<PasswordUICopy>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Creates a complete UI configuration for password-based authentication
|
|
40
|
+
*/
|
|
41
|
+
export declare const PasswordUI: (options: PasswordUIOptions) => PasswordConfig;
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=password.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../../src/ui/password.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAEX,cAAc,EAGd,MAAM,sBAAsB,CAAA;AAK7B;;GAEG;AACH,UAAU,cAAc;IAEvB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAA;IACvC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAA;IAGxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAG5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAG7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAGhC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACrB;AAmCD;;GAEG;AACH,MAAM,WAAW,iBAChB,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,kBAAkB,CAAC;IAC7D;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;CACvC;AAOD;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,SAAS,iBAAiB,KAAG,cA4UvD,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider selection UI component
|
|
3
|
+
*/
|
|
4
|
+
import type { Theme } from "../themes/theme";
|
|
5
|
+
/**
|
|
6
|
+
* Provider configuration for the select UI
|
|
7
|
+
*/
|
|
8
|
+
export interface ProviderConfig {
|
|
9
|
+
/** Whether to hide the provider from the select UI */
|
|
10
|
+
hide?: boolean;
|
|
11
|
+
/** Custom display name for this provider */
|
|
12
|
+
display?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Props for the Select component
|
|
16
|
+
*/
|
|
17
|
+
export interface SelectProps {
|
|
18
|
+
/** Provider-specific configurations */
|
|
19
|
+
providers?: Record<string, ProviderConfig>;
|
|
20
|
+
/** Custom copy text overrides */
|
|
21
|
+
copy?: {
|
|
22
|
+
button_provider?: string;
|
|
23
|
+
};
|
|
24
|
+
/** Global display name overrides for provider types */
|
|
25
|
+
displays?: Record<string, string>;
|
|
26
|
+
/** Theme configuration */
|
|
27
|
+
theme?: Theme;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Creates a provider selection UI
|
|
31
|
+
*/
|
|
32
|
+
export declare const Select: (props?: SelectProps) => (providers: Record<string, string>) => Promise<Response>;
|
|
33
|
+
//# sourceMappingURL=select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/ui/select.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAkB5C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,sDAAsD;IACtD,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAC1C,iCAAiC;IACjC,IAAI,CAAC,EAAE;QACN,eAAe,CAAC,EAAE,MAAM,CAAA;KACxB,CAAA;IACD,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,0BAA0B;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAA;CACb;AA4FD;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,QAAO,WAAgB,MAC/B,WAAW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,QAAQ,CAOlE,CAAA"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
//#region src/util.d.ts
|
|
4
|
-
|
|
1
|
+
import type { Context } from "hono";
|
|
5
2
|
/**
|
|
6
3
|
* Utility type that flattens complex types for better IntelliSense display.
|
|
7
4
|
* Converts intersections and complex mapped types into cleaner object types.
|
|
@@ -14,23 +11,25 @@ import { RouterContext } from "./router/types.mjs";
|
|
|
14
11
|
* type Clean = Prettify<Complex> // { a: string; b: number }
|
|
15
12
|
* ```
|
|
16
13
|
*/
|
|
17
|
-
type Prettify<T> = {
|
|
14
|
+
export type Prettify<T> = {
|
|
15
|
+
[K in keyof T]: T[K];
|
|
16
|
+
} & {};
|
|
18
17
|
/**
|
|
19
18
|
* Constructs a complete URL relative to the current request context.
|
|
20
19
|
* Handles proxy headers (x-forwarded-*) to ensure correct URL generation
|
|
21
20
|
* in containerized and load-balanced environments.
|
|
22
21
|
*
|
|
23
|
-
* @param
|
|
22
|
+
* @param c - Hono context containing request information
|
|
24
23
|
* @param path - Relative path to append to the base URL
|
|
25
24
|
* @returns Complete URL string with proper protocol, host, and port
|
|
26
25
|
*
|
|
27
26
|
* @example
|
|
28
27
|
* ```ts
|
|
29
|
-
* const callbackUrl = getRelativeUrl(
|
|
28
|
+
* const callbackUrl = getRelativeUrl(c, "/callback")
|
|
30
29
|
* // Returns: "https://myapp.com/auth/callback"
|
|
31
30
|
* ```
|
|
32
31
|
*/
|
|
33
|
-
declare const getRelativeUrl: (
|
|
32
|
+
export declare const getRelativeUrl: (c: Context, path: string) => string;
|
|
34
33
|
/**
|
|
35
34
|
* Determines if two domain names are considered a match for security purposes.
|
|
36
35
|
* Uses effective TLD+1 matching to allow subdomains while preventing
|
|
@@ -47,7 +46,7 @@ declare const getRelativeUrl: (ctx: RouterContext, path: string) => string;
|
|
|
47
46
|
* isDomainMatch("app.co.uk", "auth.co.uk") // true (handles two-part TLD)
|
|
48
47
|
* ```
|
|
49
48
|
*/
|
|
50
|
-
declare const isDomainMatch: (a: string, b: string) => boolean;
|
|
49
|
+
export declare const isDomainMatch: (a: string, b: string) => boolean;
|
|
51
50
|
/**
|
|
52
51
|
* Creates a lazy-evaluated function that caches the result of the first execution.
|
|
53
52
|
* Subsequent calls return the cached value without re-executing the function.
|
|
@@ -67,7 +66,7 @@ declare const isDomainMatch: (a: string, b: string) => boolean;
|
|
|
67
66
|
* const result2 = expensiveOperation() // Returns cached value
|
|
68
67
|
* ```
|
|
69
68
|
*/
|
|
70
|
-
declare const lazy: <T>(fn: () => T) => (() => T);
|
|
69
|
+
export declare const lazy: <T>(fn: () => T) => (() => T);
|
|
71
70
|
/**
|
|
72
71
|
* Utility function to immediately invoke a function and return its result.
|
|
73
72
|
* Useful for complex conditional rendering logic in JSX/TSX where you want
|
|
@@ -90,6 +89,5 @@ declare const lazy: <T>(fn: () => T) => (() => T);
|
|
|
90
89
|
* )
|
|
91
90
|
* ```
|
|
92
91
|
*/
|
|
93
|
-
declare const run: <T>(fn: () => T) => T;
|
|
94
|
-
//#
|
|
95
|
-
export { Prettify, getRelativeUrl, isDomainMatch, lazy, run };
|
|
92
|
+
export declare const run: <T>(fn: () => T) => T;
|
|
93
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACxB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACpB,GAAG,EAAE,CAAA;AAEN;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,cAAc,GAAI,GAAG,OAAO,EAAE,MAAM,MAAM,KAAG,MAMzD,CAAA;AA4BD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,OAkBpD,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,IAAI,MAAM,CAAC,KAAG,CAAC,MAAM,CAAC,CAW7C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,IAAI,MAAM,CAAC,KAAG,CAAS,CAAA"}
|