@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.
Files changed (272) hide show
  1. package/dist/esm/allow.js +26 -0
  2. package/dist/esm/client.js +254 -0
  3. package/dist/esm/core.js +597 -0
  4. package/dist/esm/css.d.js +0 -0
  5. package/dist/esm/error.js +88 -0
  6. package/dist/esm/index.js +5 -0
  7. package/dist/esm/keys.js +126 -0
  8. package/dist/esm/mutex.js +53 -0
  9. package/dist/esm/pkce.js +87 -0
  10. package/dist/esm/provider/apple.js +15 -0
  11. package/dist/esm/provider/code.js +62 -0
  12. package/dist/esm/provider/discord.js +15 -0
  13. package/dist/esm/provider/facebook.js +15 -0
  14. package/dist/esm/provider/github.js +15 -0
  15. package/dist/esm/provider/gitlab.js +15 -0
  16. package/dist/esm/provider/google.js +16 -0
  17. package/dist/esm/provider/linkedin.js +15 -0
  18. package/dist/esm/provider/magiclink.js +83 -0
  19. package/dist/esm/provider/microsoft.js +15 -0
  20. package/dist/esm/provider/oauth2.js +130 -0
  21. package/dist/esm/provider/password.js +331 -0
  22. package/dist/esm/provider/provider.js +18 -0
  23. package/dist/esm/provider/reddit.js +15 -0
  24. package/dist/esm/provider/slack.js +15 -0
  25. package/dist/esm/provider/spotify.js +15 -0
  26. package/dist/esm/provider/twitch.js +15 -0
  27. package/dist/esm/provider/vercel.js +17 -0
  28. package/dist/esm/random.js +40 -0
  29. package/dist/esm/revocation.js +27 -0
  30. package/dist/esm/storage/memory.js +110 -0
  31. package/dist/esm/storage/storage.js +56 -0
  32. package/dist/esm/storage/turso.js +93 -0
  33. package/dist/esm/storage/unstorage.js +78 -0
  34. package/dist/esm/subject.js +7 -0
  35. package/dist/esm/themes/theme.js +115 -0
  36. package/dist/esm/toolkit/client.js +119 -0
  37. package/dist/esm/toolkit/index.js +25 -0
  38. package/dist/esm/toolkit/providers/facebook.js +11 -0
  39. package/dist/esm/toolkit/providers/github.js +11 -0
  40. package/dist/esm/toolkit/providers/google.js +11 -0
  41. package/dist/esm/toolkit/providers/strategy.js +0 -0
  42. package/dist/esm/toolkit/storage.js +81 -0
  43. package/dist/esm/toolkit/utils.js +18 -0
  44. package/dist/esm/types.js +0 -0
  45. package/dist/esm/ui/base.js +478 -0
  46. package/dist/esm/ui/code.js +186 -0
  47. package/dist/esm/ui/form.js +46 -0
  48. package/dist/esm/ui/icon.js +242 -0
  49. package/dist/esm/ui/magiclink.js +158 -0
  50. package/dist/esm/ui/password.js +435 -0
  51. package/dist/esm/ui/select.js +102 -0
  52. package/dist/esm/util.js +59 -0
  53. package/dist/{allow.d.mts → types/allow.d.ts} +9 -11
  54. package/dist/types/allow.d.ts.map +1 -0
  55. package/dist/types/client.d.ts +462 -0
  56. package/dist/types/client.d.ts.map +1 -0
  57. package/dist/types/core.d.ts +113 -0
  58. package/dist/types/core.d.ts.map +1 -0
  59. package/dist/{error.d.mts → types/error.d.ts} +95 -97
  60. package/dist/types/error.d.ts.map +1 -0
  61. package/dist/types/index.d.ts +2 -0
  62. package/dist/types/index.d.ts.map +1 -0
  63. package/dist/{keys.d.mts → types/keys.d.ts} +20 -24
  64. package/dist/types/keys.d.ts.map +1 -0
  65. package/dist/types/mutex.d.ts +42 -0
  66. package/dist/types/mutex.d.ts.map +1 -0
  67. package/dist/{pkce.d.mts → types/pkce.d.ts} +10 -11
  68. package/dist/types/pkce.d.ts.map +1 -0
  69. package/dist/types/provider/apple.d.ts +197 -0
  70. package/dist/types/provider/apple.d.ts.map +1 -0
  71. package/dist/types/provider/code.d.ts +288 -0
  72. package/dist/types/provider/code.d.ts.map +1 -0
  73. package/dist/types/provider/discord.d.ts +206 -0
  74. package/dist/types/provider/discord.d.ts.map +1 -0
  75. package/dist/types/provider/facebook.d.ts +200 -0
  76. package/dist/types/provider/facebook.d.ts.map +1 -0
  77. package/dist/types/provider/github.d.ts +220 -0
  78. package/dist/types/provider/github.d.ts.map +1 -0
  79. package/dist/types/provider/gitlab.d.ts +180 -0
  80. package/dist/types/provider/gitlab.d.ts.map +1 -0
  81. package/dist/types/provider/google.d.ts +158 -0
  82. package/dist/types/provider/google.d.ts.map +1 -0
  83. package/dist/types/provider/linkedin.d.ts +190 -0
  84. package/dist/types/provider/linkedin.d.ts.map +1 -0
  85. package/dist/types/provider/magiclink.d.ts +141 -0
  86. package/dist/types/provider/magiclink.d.ts.map +1 -0
  87. package/dist/types/provider/microsoft.d.ts +247 -0
  88. package/dist/types/provider/microsoft.d.ts.map +1 -0
  89. package/dist/types/provider/oauth2.d.ts +229 -0
  90. package/dist/types/provider/oauth2.d.ts.map +1 -0
  91. package/dist/types/provider/password.d.ts +408 -0
  92. package/dist/types/provider/password.d.ts.map +1 -0
  93. package/dist/types/provider/provider.d.ts +226 -0
  94. package/dist/types/provider/provider.d.ts.map +1 -0
  95. package/dist/types/provider/reddit.d.ts +159 -0
  96. package/dist/types/provider/reddit.d.ts.map +1 -0
  97. package/dist/types/provider/slack.d.ts +171 -0
  98. package/dist/types/provider/slack.d.ts.map +1 -0
  99. package/dist/types/provider/spotify.d.ts +168 -0
  100. package/dist/types/provider/spotify.d.ts.map +1 -0
  101. package/dist/types/provider/twitch.d.ts +163 -0
  102. package/dist/types/provider/twitch.d.ts.map +1 -0
  103. package/dist/types/provider/vercel.d.ts +294 -0
  104. package/dist/types/provider/vercel.d.ts.map +1 -0
  105. package/dist/{random.d.mts → types/random.d.ts} +4 -6
  106. package/dist/types/random.d.ts.map +1 -0
  107. package/dist/types/revocation.d.ts +76 -0
  108. package/dist/types/revocation.d.ts.map +1 -0
  109. package/dist/{storage/memory.d.mts → types/storage/memory.d.ts} +17 -21
  110. package/dist/types/storage/memory.d.ts.map +1 -0
  111. package/dist/types/storage/storage.d.ts +177 -0
  112. package/dist/types/storage/storage.d.ts.map +1 -0
  113. package/dist/{storage/turso.d.mts → types/storage/turso.d.ts} +4 -8
  114. package/dist/types/storage/turso.d.ts.map +1 -0
  115. package/dist/{storage/unstorage.d.mts → types/storage/unstorage.d.ts} +12 -11
  116. package/dist/types/storage/unstorage.d.ts.map +1 -0
  117. package/dist/types/subject.d.ts +115 -0
  118. package/dist/types/subject.d.ts.map +1 -0
  119. package/dist/types/themes/theme.d.ts +207 -0
  120. package/dist/types/themes/theme.d.ts.map +1 -0
  121. package/dist/types/toolkit/client.d.ts +235 -0
  122. package/dist/types/toolkit/client.d.ts.map +1 -0
  123. package/dist/types/toolkit/index.d.ts +45 -0
  124. package/dist/types/toolkit/index.d.ts.map +1 -0
  125. package/dist/types/toolkit/providers/facebook.d.ts +8 -0
  126. package/dist/types/toolkit/providers/facebook.d.ts.map +1 -0
  127. package/dist/types/toolkit/providers/github.d.ts +8 -0
  128. package/dist/types/toolkit/providers/github.d.ts.map +1 -0
  129. package/dist/types/toolkit/providers/google.d.ts +8 -0
  130. package/dist/types/toolkit/providers/google.d.ts.map +1 -0
  131. package/dist/types/toolkit/providers/strategy.d.ts +38 -0
  132. package/dist/types/toolkit/providers/strategy.d.ts.map +1 -0
  133. package/dist/{toolkit/storage.d.mts → types/toolkit/storage.d.ts} +37 -39
  134. package/dist/types/toolkit/storage.d.ts.map +1 -0
  135. package/dist/{toolkit/utils.d.mts → types/toolkit/utils.d.ts} +2 -4
  136. package/dist/types/toolkit/utils.d.ts.map +1 -0
  137. package/dist/types/types.d.ts +92 -0
  138. package/dist/types/types.d.ts.map +1 -0
  139. package/dist/types/ui/base.d.ts +18 -0
  140. package/dist/types/ui/base.d.ts.map +1 -0
  141. package/dist/types/ui/code.d.ts +43 -0
  142. package/dist/types/ui/code.d.ts.map +1 -0
  143. package/dist/types/ui/form.d.ts +24 -0
  144. package/dist/types/ui/form.d.ts.map +1 -0
  145. package/dist/types/ui/icon.d.ts +60 -0
  146. package/dist/types/ui/icon.d.ts.map +1 -0
  147. package/dist/types/ui/magiclink.d.ts +41 -0
  148. package/dist/types/ui/magiclink.d.ts.map +1 -0
  149. package/dist/types/ui/password.d.ts +43 -0
  150. package/dist/types/ui/password.d.ts.map +1 -0
  151. package/dist/types/ui/select.d.ts +33 -0
  152. package/dist/types/ui/select.d.ts.map +1 -0
  153. package/dist/{util.d.mts → types/util.d.ts} +11 -13
  154. package/dist/types/util.d.ts.map +1 -0
  155. package/package.json +10 -16
  156. package/dist/adapters/node.d.mts +0 -18
  157. package/dist/adapters/node.mjs +0 -69
  158. package/dist/allow.mjs +0 -63
  159. package/dist/client.d.mts +0 -456
  160. package/dist/client.mjs +0 -283
  161. package/dist/core.d.mts +0 -110
  162. package/dist/core.mjs +0 -595
  163. package/dist/error.mjs +0 -237
  164. package/dist/index.d.mts +0 -2
  165. package/dist/index.mjs +0 -3
  166. package/dist/keys.mjs +0 -146
  167. package/dist/mutex.d.mts +0 -44
  168. package/dist/mutex.mjs +0 -110
  169. package/dist/pkce.mjs +0 -157
  170. package/dist/provider/apple.d.mts +0 -111
  171. package/dist/provider/apple.mjs +0 -164
  172. package/dist/provider/code.d.mts +0 -228
  173. package/dist/provider/code.mjs +0 -246
  174. package/dist/provider/discord.d.mts +0 -146
  175. package/dist/provider/discord.mjs +0 -156
  176. package/dist/provider/facebook.d.mts +0 -142
  177. package/dist/provider/facebook.mjs +0 -150
  178. package/dist/provider/github.d.mts +0 -140
  179. package/dist/provider/github.mjs +0 -169
  180. package/dist/provider/gitlab.d.mts +0 -106
  181. package/dist/provider/gitlab.mjs +0 -147
  182. package/dist/provider/google.d.mts +0 -112
  183. package/dist/provider/google.mjs +0 -109
  184. package/dist/provider/linkedin.d.mts +0 -132
  185. package/dist/provider/linkedin.mjs +0 -142
  186. package/dist/provider/magiclink.d.mts +0 -89
  187. package/dist/provider/magiclink.mjs +0 -143
  188. package/dist/provider/microsoft.d.mts +0 -178
  189. package/dist/provider/microsoft.mjs +0 -177
  190. package/dist/provider/oauth2.d.mts +0 -176
  191. package/dist/provider/oauth2.mjs +0 -222
  192. package/dist/provider/passkey.d.mts +0 -104
  193. package/dist/provider/passkey.mjs +0 -320
  194. package/dist/provider/password.d.mts +0 -412
  195. package/dist/provider/password.mjs +0 -363
  196. package/dist/provider/provider.d.mts +0 -227
  197. package/dist/provider/provider.mjs +0 -44
  198. package/dist/provider/reddit.d.mts +0 -107
  199. package/dist/provider/reddit.mjs +0 -127
  200. package/dist/provider/slack.d.mts +0 -114
  201. package/dist/provider/slack.mjs +0 -138
  202. package/dist/provider/spotify.d.mts +0 -113
  203. package/dist/provider/spotify.mjs +0 -135
  204. package/dist/provider/totp.d.mts +0 -112
  205. package/dist/provider/totp.mjs +0 -191
  206. package/dist/provider/twitch.d.mts +0 -108
  207. package/dist/provider/twitch.mjs +0 -131
  208. package/dist/provider/vercel.d.mts +0 -177
  209. package/dist/provider/vercel.mjs +0 -230
  210. package/dist/random.mjs +0 -86
  211. package/dist/revocation.d.mts +0 -55
  212. package/dist/revocation.mjs +0 -63
  213. package/dist/router/context.d.mts +0 -21
  214. package/dist/router/context.mjs +0 -193
  215. package/dist/router/cookies.d.mts +0 -8
  216. package/dist/router/cookies.mjs +0 -13
  217. package/dist/router/index.d.mts +0 -21
  218. package/dist/router/index.mjs +0 -107
  219. package/dist/router/matcher.d.mts +0 -15
  220. package/dist/router/matcher.mjs +0 -76
  221. package/dist/router/middleware/cors.d.mts +0 -15
  222. package/dist/router/middleware/cors.mjs +0 -114
  223. package/dist/router/safe-request.d.mts +0 -52
  224. package/dist/router/safe-request.mjs +0 -160
  225. package/dist/router/types.d.mts +0 -67
  226. package/dist/router/types.mjs +0 -1
  227. package/dist/router/variables.d.mts +0 -12
  228. package/dist/router/variables.mjs +0 -20
  229. package/dist/storage/memory.mjs +0 -125
  230. package/dist/storage/storage.d.mts +0 -179
  231. package/dist/storage/storage.mjs +0 -104
  232. package/dist/storage/turso.mjs +0 -117
  233. package/dist/storage/unstorage.mjs +0 -103
  234. package/dist/subject.d.mts +0 -62
  235. package/dist/subject.mjs +0 -36
  236. package/dist/themes/theme.d.mts +0 -209
  237. package/dist/themes/theme.mjs +0 -120
  238. package/dist/toolkit/client.d.mts +0 -169
  239. package/dist/toolkit/client.mjs +0 -209
  240. package/dist/toolkit/index.d.mts +0 -9
  241. package/dist/toolkit/index.mjs +0 -9
  242. package/dist/toolkit/providers/facebook.d.mts +0 -12
  243. package/dist/toolkit/providers/facebook.mjs +0 -16
  244. package/dist/toolkit/providers/github.d.mts +0 -12
  245. package/dist/toolkit/providers/github.mjs +0 -16
  246. package/dist/toolkit/providers/google.d.mts +0 -12
  247. package/dist/toolkit/providers/google.mjs +0 -20
  248. package/dist/toolkit/providers/strategy.d.mts +0 -40
  249. package/dist/toolkit/providers/strategy.mjs +0 -1
  250. package/dist/toolkit/storage.mjs +0 -157
  251. package/dist/toolkit/utils.mjs +0 -30
  252. package/dist/types.d.mts +0 -94
  253. package/dist/types.mjs +0 -1
  254. package/dist/ui/base.d.mts +0 -30
  255. package/dist/ui/base.mjs +0 -407
  256. package/dist/ui/code.d.mts +0 -43
  257. package/dist/ui/code.mjs +0 -173
  258. package/dist/ui/form.d.mts +0 -32
  259. package/dist/ui/form.mjs +0 -49
  260. package/dist/ui/icon.d.mts +0 -58
  261. package/dist/ui/icon.mjs +0 -247
  262. package/dist/ui/magiclink.d.mts +0 -41
  263. package/dist/ui/magiclink.mjs +0 -152
  264. package/dist/ui/passkey.d.mts +0 -27
  265. package/dist/ui/passkey.mjs +0 -323
  266. package/dist/ui/password.d.mts +0 -42
  267. package/dist/ui/password.mjs +0 -402
  268. package/dist/ui/select.d.mts +0 -34
  269. package/dist/ui/select.mjs +0 -98
  270. package/dist/ui/totp.d.mts +0 -34
  271. package/dist/ui/totp.mjs +0 -270
  272. package/dist/util.mjs +0 -128
@@ -1,157 +0,0 @@
1
- //#region src/toolkit/storage.ts
2
- const STORAGE_KEY = "draftauth.pkce";
3
- /**
4
- * Creates a browser sessionStorage adapter for PKCE state.
5
- * Suitable for client-side SPAs where state should only persist during the browser session.
6
- *
7
- * @returns AuthStorage implementation using sessionStorage
8
- *
9
- * @example
10
- * ```ts
11
- * const storage = createSessionStorage()
12
- *
13
- * // Use in toolkit client
14
- * const client = createOAuthClient({
15
- * storage,
16
- * providers: { ... }
17
- * })
18
- * ```
19
- */
20
- const createSessionStorage = () => ({
21
- set: (data) => {
22
- if (typeof sessionStorage === "undefined") throw new Error("sessionStorage is not available in this environment");
23
- sessionStorage.setItem(STORAGE_KEY, JSON.stringify(data));
24
- },
25
- get: () => {
26
- if (typeof sessionStorage === "undefined") return null;
27
- const data = sessionStorage.getItem(STORAGE_KEY);
28
- return data ? JSON.parse(data) : null;
29
- },
30
- clear: () => {
31
- if (typeof sessionStorage === "undefined") return;
32
- sessionStorage.removeItem(STORAGE_KEY);
33
- }
34
- });
35
- /**
36
- * Creates a browser localStorage adapter for PKCE state.
37
- * Suitable for client-side SPAs where state should persist across browser sessions.
38
- *
39
- * ⚠️ Warning: localStorage persists data indefinitely. Consider using sessionStorage
40
- * for better security, as it automatically clears on browser close.
41
- *
42
- * @returns AuthStorage implementation using localStorage
43
- *
44
- * @example
45
- * ```ts
46
- * const storage = createLocalStorage()
47
- *
48
- * // Use in toolkit client
49
- * const client = createOAuthClient({
50
- * storage,
51
- * providers: { ... }
52
- * })
53
- * ```
54
- */
55
- const createLocalStorage = () => ({
56
- set: (data) => {
57
- if (typeof localStorage === "undefined") throw new Error("localStorage is not available in this environment");
58
- localStorage.setItem(STORAGE_KEY, JSON.stringify(data));
59
- },
60
- get: () => {
61
- if (typeof localStorage === "undefined") return null;
62
- const data = localStorage.getItem(STORAGE_KEY);
63
- return data ? JSON.parse(data) : null;
64
- },
65
- clear: () => {
66
- if (typeof localStorage === "undefined") return;
67
- localStorage.removeItem(STORAGE_KEY);
68
- }
69
- });
70
- /**
71
- * Creates a memory-based storage adapter for PKCE state.
72
- * Suitable for server-side rendering or testing environments.
73
- * State is lost when the process terminates or page reloads.
74
- *
75
- * @returns AuthStorage implementation using in-memory storage
76
- *
77
- * @example
78
- * ```ts
79
- * // Server-side or testing
80
- * const storage = createMemoryStorage()
81
- *
82
- * const client = createOAuthClient({
83
- * storage,
84
- * providers: { ... }
85
- * })
86
- * ```
87
- */
88
- const createMemoryStorage = () => {
89
- let state = null;
90
- return {
91
- set: (data) => {
92
- state = data;
93
- },
94
- get: () => {
95
- return state;
96
- },
97
- clear: () => {
98
- state = null;
99
- }
100
- };
101
- };
102
- /**
103
- * Creates a cookie-based storage adapter for PKCE state.
104
- * Suitable for server-side OAuth flows (Next.js, Remix, etc.) where you need
105
- * to persist state across requests.
106
- *
107
- * @param options - Cookie configuration options
108
- * @returns AuthStorage implementation using cookies
109
- *
110
- * @example
111
- * ```ts
112
- * // Next.js App Router
113
- * import { cookies } from 'next/headers'
114
- *
115
- * const storage = createCookieStorage({
116
- * getCookie: (name) => cookies().get(name)?.value ?? null,
117
- * setCookie: (name, value, opts) => {
118
- * cookies().set(name, value, {
119
- * httpOnly: true,
120
- * secure: true,
121
- * sameSite: 'lax',
122
- * maxAge: opts.maxAge
123
- * })
124
- * },
125
- * deleteCookie: (name) => cookies().delete(name)
126
- * })
127
- *
128
- * // TanStack Start
129
- * import { getCookie, setCookie, deleteCookie } from '@tanstack/react-start/server'
130
- *
131
- * const storage = createCookieStorage({
132
- * getCookie,
133
- * setCookie: (name, value, opts) => setCookie(name, value, opts),
134
- * deleteCookie
135
- * })
136
- * ```
137
- */
138
- const createCookieStorage = (options) => ({
139
- set: async (data) => {
140
- await options.setCookie(STORAGE_KEY, JSON.stringify(data), {
141
- maxAge: 600,
142
- httpOnly: true,
143
- secure: process.env.NODE_ENV === "production",
144
- sameSite: "lax"
145
- });
146
- },
147
- get: async () => {
148
- const value = await options.getCookie(STORAGE_KEY);
149
- return value ? JSON.parse(value) : null;
150
- },
151
- clear: async () => {
152
- await options.deleteCookie(STORAGE_KEY);
153
- }
154
- });
155
-
156
- //#endregion
157
- export { createCookieStorage, createLocalStorage, createMemoryStorage, createSessionStorage };
@@ -1,30 +0,0 @@
1
- //#region src/toolkit/utils.ts
2
- /**
3
- * Universal utilities for the OAuth toolkit.
4
- * These functions work in both browser and Node.js environments.
5
- */
6
- /**
7
- * Generates a cryptographically secure random string using Web Crypto API.
8
- * Works in both browser and Node.js environments (Node 15+).
9
- *
10
- * @param length - Length of random data in bytes (default: 32 for 256-bit security)
11
- * @returns Base64url-encoded secure random string
12
- *
13
- * @example
14
- * ```ts
15
- * const state = generateSecureRandom(16) // 128-bit random state
16
- * const token = generateSecureRandom(32) // 256-bit random token
17
- * ```
18
- */
19
- const generateSecureRandom = (length = 32) => {
20
- if (length <= 0 || !Number.isInteger(length)) throw new RangeError("Length must be a positive integer");
21
- const randomBytes = new Uint8Array(length);
22
- crypto.getRandomValues(randomBytes);
23
- let base64 = "";
24
- if (typeof btoa !== "undefined") base64 = btoa(String.fromCharCode(...randomBytes));
25
- else base64 = Buffer.from(randomBytes).toString("base64");
26
- return base64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
27
- };
28
-
29
- //#endregion
30
- export { generateSecureRandom };
package/dist/types.d.mts DELETED
@@ -1,94 +0,0 @@
1
- //#region src/types.d.ts
2
- /**
3
- * Shared type definitions for Draft Auth core.
4
- */
5
- /**
6
- * Authorization state for OAuth 2.0 flows.
7
- */
8
- interface AuthorizationState {
9
- /** OAuth redirect URI */
10
- redirect_uri?: string;
11
- /** OAuth response type (code, token) */
12
- response_type?: string;
13
- /** OAuth state parameter for CSRF protection */
14
- state?: string;
15
- /** OAuth client identifier */
16
- client_id?: string;
17
- /** OAuth audience parameter */
18
- audience?: string;
19
- /** Raw scope string from request */
20
- scope?: string;
21
- /** Parsed OAuth scopes array */
22
- scopes?: string[];
23
- /** PKCE challenge data for code verification */
24
- pkce?: PKCEChallenge;
25
- }
26
- /**
27
- * Token generation result for OAuth 2.0.
28
- */
29
- interface TokenGenerationResult {
30
- /** OAuth access token */
31
- access: string;
32
- /** Token expiration time in seconds */
33
- expiresIn: number;
34
- /** OAuth refresh token */
35
- refresh: string;
36
- }
37
- /**
38
- * PKCE challenge data for OAuth flows.
39
- */
40
- interface PKCEChallenge {
41
- challenge: string;
42
- method: "S256";
43
- }
44
- /**
45
- * TTL configuration for tokens and sessions.
46
- */
47
- interface TtlConfiguration {
48
- /** Access token TTL in seconds */
49
- access: number;
50
- /** Refresh token TTL in seconds */
51
- refresh: number;
52
- }
53
- /**
54
- * Refresh token storage payload structure.
55
- * Contains metadata about issued refresh tokens.
56
- */
57
- interface RefreshTokenStoragePayload {
58
- /** Subject type identifier */
59
- type: string;
60
- /** Subject properties/claims */
61
- properties: unknown;
62
- /** Resolved subject identifier for JWT */
63
- subject: string;
64
- /** Client identifier that owns this refresh token */
65
- clientID: string;
66
- /** OAuth scopes associated with this token */
67
- scopes?: string[];
68
- /** Timestamp when the refresh token was first used */
69
- timeUsed?: number;
70
- }
71
- /**
72
- * Code storage payload for authorization code grant.
73
- * Used for storing authorization code data during OAuth flows.
74
- */
75
- interface CodeStoragePayload {
76
- /** Subject type identifier */
77
- type: string;
78
- /** Subject properties/claims */
79
- properties: unknown;
80
- /** Resolved subject identifier for JWT */
81
- subject: string;
82
- /** Redirect URI used in authorization request */
83
- redirectURI: string;
84
- /** Client identifier */
85
- clientID: string;
86
- /** OAuth scopes */
87
- scopes?: string[];
88
- /** Token TTL configuration */
89
- ttl: TtlConfiguration;
90
- /** PKCE challenge data */
91
- pkce?: PKCEChallenge;
92
- }
93
- //#endregion
94
- export { AuthorizationState, CodeStoragePayload, PKCEChallenge, RefreshTokenStoragePayload, TokenGenerationResult, TtlConfiguration };
package/dist/types.mjs DELETED
@@ -1 +0,0 @@
1
- export { };
@@ -1,30 +0,0 @@
1
- import { Theme } from "../themes/theme.mjs";
2
- import * as preact0 from "preact";
3
- import { ComponentChildren } from "preact";
4
-
5
- //#region src/ui/base.d.ts
6
-
7
- /**
8
- * Props for the Layout component
9
- */
10
- interface LayoutProps {
11
- children: ComponentChildren;
12
- theme?: Theme;
13
- title?: string;
14
- size?: "small";
15
- }
16
- /**
17
- * Base Layout component that provides the foundational structure for all auth UIs
18
- */
19
- declare const Layout: ({
20
- children,
21
- theme,
22
- title,
23
- size
24
- }: LayoutProps) => preact0.JSX.Element;
25
- /**
26
- * Helper function to render a Preact component to HTML string
27
- */
28
- declare const renderToHTML: (component: ComponentChildren) => string;
29
- //#endregion
30
- export { Layout, LayoutProps, renderToHTML };