@oneunit/auth 2.0.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 (75) hide show
  1. package/ARCHITECTURE.md +465 -0
  2. package/CHANGELOG.md +214 -0
  3. package/LICENSE +21 -0
  4. package/README.md +647 -0
  5. package/dist/adapters.d.ts +51 -0
  6. package/dist/adapters.d.ts.map +1 -0
  7. package/dist/adapters.js +301 -0
  8. package/dist/adapters.js.map +1 -0
  9. package/dist/auth.d.ts +59 -0
  10. package/dist/auth.d.ts.map +1 -0
  11. package/dist/auth.js +560 -0
  12. package/dist/auth.js.map +1 -0
  13. package/dist/errors.d.ts +39 -0
  14. package/dist/errors.d.ts.map +1 -0
  15. package/dist/errors.js +65 -0
  16. package/dist/errors.js.map +1 -0
  17. package/dist/index.d.ts +11 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +10 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/jwt.d.ts +11 -0
  22. package/dist/jwt.d.ts.map +1 -0
  23. package/dist/jwt.js +125 -0
  24. package/dist/jwt.js.map +1 -0
  25. package/dist/oauth.d.ts +31 -0
  26. package/dist/oauth.d.ts.map +1 -0
  27. package/dist/oauth.js +178 -0
  28. package/dist/oauth.js.map +1 -0
  29. package/dist/password.d.ts +5 -0
  30. package/dist/password.d.ts.map +1 -0
  31. package/dist/password.js +90 -0
  32. package/dist/password.js.map +1 -0
  33. package/dist/providers.d.ts +37 -0
  34. package/dist/providers.d.ts.map +1 -0
  35. package/dist/providers.js +471 -0
  36. package/dist/providers.js.map +1 -0
  37. package/dist/rbac.d.ts +40 -0
  38. package/dist/rbac.d.ts.map +1 -0
  39. package/dist/rbac.js +240 -0
  40. package/dist/rbac.js.map +1 -0
  41. package/dist/roles.d.ts +2 -0
  42. package/dist/roles.d.ts.map +1 -0
  43. package/dist/roles.js +2 -0
  44. package/dist/roles.js.map +1 -0
  45. package/dist/token.d.ts +2 -0
  46. package/dist/token.d.ts.map +1 -0
  47. package/dist/token.js +2 -0
  48. package/dist/token.js.map +1 -0
  49. package/dist/types.d.ts +383 -0
  50. package/dist/types.d.ts.map +1 -0
  51. package/dist/types.js +2 -0
  52. package/dist/types.js.map +1 -0
  53. package/dist/utils.d.ts +35 -0
  54. package/dist/utils.d.ts.map +1 -0
  55. package/dist/utils.js +192 -0
  56. package/dist/utils.js.map +1 -0
  57. package/examples/express.ts +111 -0
  58. package/examples/fastify.ts +59 -0
  59. package/examples/oauth-social.ts +83 -0
  60. package/examples/standalone.ts +67 -0
  61. package/examples/uwebsockets.ts +143 -0
  62. package/package.json +86 -0
  63. package/src/adapters.ts +333 -0
  64. package/src/auth.ts +684 -0
  65. package/src/errors.ts +76 -0
  66. package/src/index.ts +124 -0
  67. package/src/jwt.ts +159 -0
  68. package/src/oauth.ts +226 -0
  69. package/src/password.ts +111 -0
  70. package/src/providers.ts +551 -0
  71. package/src/rbac.ts +285 -0
  72. package/src/roles.ts +1 -0
  73. package/src/token.ts +1 -0
  74. package/src/types.ts +432 -0
  75. package/src/utils.ts +231 -0
package/dist/auth.js ADDED
@@ -0,0 +1,560 @@
1
+ import { ConfigurationError, ProviderError, UnauthorizedError, ValidationError } from "./errors.js";
2
+ import { decode, encode, encodeAccessToken, encodeRefreshToken } from "./jwt.js";
3
+ import { RBAC } from "./rbac.js";
4
+ import { OAuth } from "./oauth.js";
5
+ import { hashPassword, verifyPassword, needsRehash } from "./password.js";
6
+ import { extractBearerToken, getHeader, isPlainObject, parseCookieHeader, parseExpiresIn, parseQueryString, randomToken, sha256, unique, } from "./utils.js";
7
+ const DEFAULT_ACCESS_TTL = "15m";
8
+ const DEFAULT_REFRESH_TTL = "7d";
9
+ /**
10
+ * Claims that define *who* the token speaks for and *what* it may do. These are
11
+ * derived from the authenticated user record and RBAC, so nothing a caller
12
+ * supplies may overwrite them: a token minted for user 42 must never carry
13
+ * `sub: "admin"`.
14
+ */
15
+ const RESERVED_CLAIMS = new Set([
16
+ "sub",
17
+ "userId",
18
+ "roles",
19
+ "permissions",
20
+ "typ",
21
+ "iss",
22
+ "aud",
23
+ "exp",
24
+ "iat",
25
+ "nbf",
26
+ "jti",
27
+ ]);
28
+ export class Auth {
29
+ secret;
30
+ refreshSecret;
31
+ issuer;
32
+ audience;
33
+ algorithm;
34
+ accessTokenTtl;
35
+ refreshTokenTtl;
36
+ clockTolerance;
37
+ trustUserPermissions;
38
+ userStore;
39
+ refreshStore;
40
+ onLogin;
41
+ onLink;
42
+ rbac;
43
+ oauth;
44
+ claimExtractors = new Map();
45
+ hooks = {
46
+ beforeLogin: [],
47
+ afterLogin: [],
48
+ afterVerify: [],
49
+ };
50
+ constructor(options = {}) {
51
+ if (!options.secret) {
52
+ throw new ConfigurationError("Authentication secret is required");
53
+ }
54
+ this.secret = options.secret;
55
+ this.refreshSecret = options.refreshSecret ?? options.secret;
56
+ this.issuer = options.issuer;
57
+ this.audience = options.audience;
58
+ this.algorithm = options.algorithm ?? "HS256";
59
+ this.accessTokenTtl = options.accessTokenTtl ?? options.expiresIn ?? DEFAULT_ACCESS_TTL;
60
+ this.refreshTokenTtl = options.refreshTokenTtl ?? DEFAULT_REFRESH_TTL;
61
+ this.clockTolerance = options.clockTolerance ?? 0;
62
+ this.trustUserPermissions = options.trustUserPermissions ?? false;
63
+ this.userStore = options.userStore ?? null;
64
+ this.refreshStore = options.refreshStore ?? createMemoryRefreshStore();
65
+ this.onLogin = options.onLogin;
66
+ this.onLink = options.onLink;
67
+ this.rbac = normalizeRbac(options.rbac ?? options.roles);
68
+ this.oauth = options.oauth instanceof OAuth
69
+ ? options.oauth
70
+ : new OAuth(options.oauth ?? { providers: options.providers, redirectUri: options.redirectUri });
71
+ }
72
+ registerExtractor(name, extractor) {
73
+ if (typeof extractor !== "function") {
74
+ throw new ValidationError("Claim extractor must be a function");
75
+ }
76
+ if (RESERVED_CLAIMS.has(name)) {
77
+ throw new ValidationError(`Claim name "${name}" is reserved and cannot be produced by an extractor. ` +
78
+ "Identity and permission claims are derived from the user record and RBAC.");
79
+ }
80
+ this.claimExtractors.set(name, extractor);
81
+ return this;
82
+ }
83
+ hook(event, handler) {
84
+ if (!this.hooks[event]) {
85
+ throw new ValidationError(`Unknown auth hook: ${event}`);
86
+ }
87
+ if (typeof handler !== "function") {
88
+ throw new ValidationError("Hook handler must be a function");
89
+ }
90
+ this.hooks[event].push(handler);
91
+ return this;
92
+ }
93
+ async login(user, options = {}) {
94
+ if (!user || (user.id !== 0 && !user.id)) {
95
+ throw new ValidationError("User with id is required for login");
96
+ }
97
+ await this.runHooks("beforeLogin", { user, options });
98
+ const roles = unique([
99
+ ...(Array.isArray(user.roles) ? user.roles : []),
100
+ ...(user.role ? [user.role] : []),
101
+ ]);
102
+ // Permissions are derived from roles. A `permissions` field on the user
103
+ // record is only honoured when the application opts in, because a single
104
+ // tainted row (or a client-supplied field) would otherwise mint a token
105
+ // carrying arbitrary grants.
106
+ const permissions = unique([
107
+ ...(this.trustUserPermissions && Array.isArray(user.permissions) ? user.permissions : []),
108
+ ...[...this.rbac.subjectPermissions({ ...user, roles, permissions: undefined })],
109
+ ]);
110
+ const extra = await this.collectClaims(user, options.extractors);
111
+ const additional = isPlainObject(options.additionalClaims) ? options.additionalClaims : {};
112
+ for (const key of Object.keys(additional)) {
113
+ if (RESERVED_CLAIMS.has(key)) {
114
+ throw new ValidationError(`additionalClaims cannot override the reserved claim "${key}". ` +
115
+ "Identity and permission claims are derived from the user record and RBAC.");
116
+ }
117
+ }
118
+ const payload = {
119
+ sub: String(user.id),
120
+ userId: user.id,
121
+ ...(user.email !== undefined && { email: user.email }),
122
+ ...(user.username !== undefined && { username: user.username }),
123
+ ...(user.name !== undefined && { name: user.name }),
124
+ roles,
125
+ permissions,
126
+ ...extra,
127
+ ...additional,
128
+ };
129
+ const subject = String(user.id);
130
+ const accessToken = encodeAccessToken(payload, this.secret, {
131
+ audience: this.audience,
132
+ issuer: this.issuer,
133
+ algorithm: this.algorithm,
134
+ jwtid: randomToken(16),
135
+ expiresIn: options.accessTokenTtl ?? this.accessTokenTtl,
136
+ });
137
+ let refreshToken = null;
138
+ if (options.refresh !== false) {
139
+ const jwtid = randomToken(16);
140
+ refreshToken = encodeRefreshToken({ sub: subject, userId: user.id, roles }, this.refreshSecret, {
141
+ audience: this.audience,
142
+ issuer: this.issuer,
143
+ algorithm: this.algorithm,
144
+ jwtid,
145
+ expiresIn: options.refreshTokenTtl ?? this.refreshTokenTtl,
146
+ });
147
+ await this.refreshStore.save({
148
+ id: jwtid,
149
+ userId: user.id,
150
+ tokenHash: sha256(refreshToken),
151
+ expiresAt: Date.now() + parseExpiresIn(options.refreshTokenTtl ?? this.refreshTokenTtl) * 1000,
152
+ });
153
+ }
154
+ const result = {
155
+ token: accessToken,
156
+ accessToken,
157
+ refreshToken,
158
+ payload,
159
+ user: {
160
+ id: user.id,
161
+ email: user.email,
162
+ username: user.username,
163
+ name: user.name,
164
+ roles,
165
+ permissions,
166
+ },
167
+ };
168
+ await this.runHooks("afterLogin", result);
169
+ if (typeof this.onLogin === "function") {
170
+ await this.onLogin(result);
171
+ }
172
+ return result;
173
+ }
174
+ async loginWithPassword(identifier, password, options = {}) {
175
+ if (!this.userStore?.findByCredentials && !this.userStore?.findByEmail && !this.userStore?.findByUsername) {
176
+ throw new ConfigurationError("A userStore with credential lookup is required for password login");
177
+ }
178
+ const user = this.userStore.findByCredentials
179
+ ? await this.userStore.findByCredentials(identifier)
180
+ : (await this.userStore.findByEmail?.(identifier)) ?? (await this.userStore.findByUsername?.(identifier));
181
+ if (!user?.passwordHash) {
182
+ throw new UnauthorizedError("Invalid credentials");
183
+ }
184
+ const valid = await verifyPassword(password, user.passwordHash);
185
+ if (!valid) {
186
+ throw new UnauthorizedError("Invalid credentials");
187
+ }
188
+ if (needsRehash(user.passwordHash) && this.userStore.updatePassword) {
189
+ const nextHash = await hashPassword(password);
190
+ await this.userStore.updatePassword(user.id, nextHash);
191
+ }
192
+ return this.login(user, options);
193
+ }
194
+ async register(input = {}, options = {}) {
195
+ if (!this.userStore?.create) {
196
+ throw new ConfigurationError("A userStore with create() is required for registration");
197
+ }
198
+ if (typeof input.password !== "string" || !input.password) {
199
+ throw new ValidationError("Password is required");
200
+ }
201
+ const passwordHash = await hashPassword(input.password);
202
+ // Roles come from server-side options only. `input.roles` is attacker
203
+ // controlled on a public sign-up form and must never reach the user record.
204
+ const roles = options.roles ?? (this.rbac.defaultRole ? [this.rbac.defaultRole] : []);
205
+ const user = await this.userStore.create({
206
+ email: input.email,
207
+ username: input.username,
208
+ name: input.name,
209
+ roles,
210
+ passwordHash,
211
+ metadata: input.metadata,
212
+ });
213
+ return this.login(user, options);
214
+ }
215
+ async verify(token, options = {}) {
216
+ if (!token) {
217
+ throw new UnauthorizedError("Token is required");
218
+ }
219
+ const claims = decode(token, this.secret, {
220
+ audience: options.audience ?? this.audience,
221
+ issuer: options.issuer ?? this.issuer,
222
+ algorithms: [this.algorithm],
223
+ clockTolerance: options.clockTolerance ?? this.clockTolerance,
224
+ });
225
+ // A refresh token is signed with the same secret and would otherwise verify
226
+ // as a bearer credential, turning a 7-day token into a 7-day access token.
227
+ if (claims.typ === "refresh" && options.acceptTokenType !== "refresh") {
228
+ throw new UnauthorizedError("Refresh tokens cannot be used as access tokens");
229
+ }
230
+ await this.runHooks("afterVerify", claims);
231
+ return claims;
232
+ }
233
+ async verifyRequest(request, options = {}) {
234
+ const token = this.extractToken(request, options);
235
+ if (!token) {
236
+ throw new UnauthorizedError("Missing bearer token");
237
+ }
238
+ return this.verify(token, options);
239
+ }
240
+ extractToken(request, options = {}) {
241
+ if (typeof request === "string") {
242
+ return extractBearerToken(request) ?? request;
243
+ }
244
+ const req = request;
245
+ const headers = collectHeaders(req);
246
+ const authorization = getHeader(headers, "authorization");
247
+ const fromHeader = extractBearerToken(authorization);
248
+ if (fromHeader) {
249
+ return fromHeader;
250
+ }
251
+ const cookieName = options.cookie ?? "access_token";
252
+ const cookies = req?.cookies ?? parseCookieHeader(getHeader(headers, "cookie"));
253
+ if (cookies?.[cookieName]) {
254
+ return cookies[cookieName];
255
+ }
256
+ const query = collectQuery(req);
257
+ return query.access_token ?? query.token ?? null;
258
+ }
259
+ async refresh(refreshToken, options = {}) {
260
+ if (!refreshToken) {
261
+ throw new UnauthorizedError("Refresh token is required");
262
+ }
263
+ const claims = decode(refreshToken, this.refreshSecret, {
264
+ audience: this.audience,
265
+ issuer: this.issuer,
266
+ algorithms: [this.algorithm],
267
+ clockTolerance: this.clockTolerance,
268
+ });
269
+ if (claims.typ && claims.typ !== "refresh") {
270
+ throw new UnauthorizedError("Not a refresh token");
271
+ }
272
+ if (claims.jti) {
273
+ // Consume the token in a single store operation when the store supports
274
+ // it, so two concurrent refreshes cannot both pass the validity check.
275
+ if (typeof this.refreshStore.consume === "function") {
276
+ const consumed = await this.refreshStore.consume(claims.jti);
277
+ if (!consumed) {
278
+ throw new UnauthorizedError("Refresh token has been revoked");
279
+ }
280
+ }
281
+ else {
282
+ this.requireRevokeSupport();
283
+ const stored = await this.refreshStore.get(claims.jti);
284
+ if (!stored) {
285
+ throw new UnauthorizedError("Refresh token has been revoked");
286
+ }
287
+ await this.refreshStore.revoke?.(claims.jti);
288
+ }
289
+ }
290
+ let user = {
291
+ id: (claims.userId ?? claims.sub),
292
+ roles: claims.roles,
293
+ };
294
+ if (this.userStore?.findById) {
295
+ user = await this.userStore.findById(user.id) ?? user;
296
+ }
297
+ return this.login(user, options);
298
+ }
299
+ /**
300
+ * Rotation only reaches this when `consume` is absent, so `revoke` is the only
301
+ * thing that can do the job.
302
+ */
303
+ requireRevokeSupport() {
304
+ if (typeof this.refreshStore.revoke !== "function") {
305
+ throw new ConfigurationError("The configured refreshStore cannot revoke tokens; implement revoke() so refresh rotation can invalidate the presented token");
306
+ }
307
+ }
308
+ async revoke(refreshToken) {
309
+ if (!refreshToken) {
310
+ return false;
311
+ }
312
+ // For logout, consume() and revoke() are interchangeable: both remove a
313
+ // specific id. A store that can rotate can therefore also log out.
314
+ const canRevoke = typeof this.refreshStore.revoke === "function" || typeof this.refreshStore.consume === "function";
315
+ if (!canRevoke) {
316
+ throw new ConfigurationError("The configured refreshStore cannot revoke tokens; implement revoke() or consume() to enable logout");
317
+ }
318
+ const claims = decode(refreshToken, this.refreshSecret, {
319
+ algorithms: [this.algorithm],
320
+ clockTolerance: this.clockTolerance,
321
+ ignoreExpiration: true,
322
+ });
323
+ if (claims?.typ && claims.typ !== "refresh") {
324
+ throw new UnauthorizedError("Not a refresh token");
325
+ }
326
+ if (claims?.jti) {
327
+ if (typeof this.refreshStore.revoke === "function") {
328
+ await this.refreshStore.revoke(claims.jti);
329
+ }
330
+ else {
331
+ await this.refreshStore.consume?.(claims.jti);
332
+ }
333
+ return true;
334
+ }
335
+ return false;
336
+ }
337
+ async logout(refreshToken) {
338
+ return this.revoke(refreshToken);
339
+ }
340
+ getAuthorizationUrl(provider, options = {}) {
341
+ return this.oauth.authorize(provider, options);
342
+ }
343
+ async loginWithOAuth(provider, params, options = {}) {
344
+ const result = await this.oauth.callback(provider, params);
345
+ const profile = result.profile;
346
+ let user = null;
347
+ if (this.userStore?.findByProvider && profile.id !== undefined) {
348
+ user = await this.userStore.findByProvider(provider, profile.id) ?? null;
349
+ }
350
+ if (!user && profile.email && this.userStore?.findByEmail) {
351
+ user = await this.userStore.findByEmail(profile.email) ?? null;
352
+ if (user && this.userStore.linkProvider) {
353
+ await this.userStore.linkProvider(user.id, provider, profile);
354
+ if (typeof this.onLink === "function") {
355
+ await this.onLink({ user, provider, profile });
356
+ }
357
+ }
358
+ }
359
+ if (!user && this.userStore?.createFromProvider) {
360
+ user = await this.userStore.createFromProvider(provider, profile, result.tokens);
361
+ }
362
+ if (!user) {
363
+ // Without a provider-side identifier every user from this provider would
364
+ // collapse onto the same subject ("google:undefined"), so distinct people
365
+ // would share one identity. Fail closed instead of issuing the token.
366
+ if (profile.id === undefined || profile.id === null || profile.id === "") {
367
+ throw new ProviderError(`OAuth provider "${provider}" returned a profile without a subject identifier. ` +
368
+ "Map a stable user id in the provider's profileMap before logging users in.", { cause: profile.raw });
369
+ }
370
+ user = {
371
+ id: `${provider}:${profile.id}`,
372
+ email: profile.email,
373
+ username: profile.username,
374
+ name: profile.name,
375
+ avatar: profile.avatar,
376
+ roles: options.roles ?? (this.rbac.defaultRole ? [this.rbac.defaultRole] : []),
377
+ provider,
378
+ providerId: profile.id,
379
+ };
380
+ }
381
+ const session = await this.login(user, {
382
+ ...options,
383
+ additionalClaims: {
384
+ provider,
385
+ providerId: profile.id,
386
+ ...(options.additionalClaims ?? {}),
387
+ },
388
+ });
389
+ return {
390
+ ...session,
391
+ oauth: result,
392
+ };
393
+ }
394
+ can(subject, permission) {
395
+ return this.rbac.can(subject, permission);
396
+ }
397
+ authorize(subject, permission) {
398
+ return this.rbac.authorize(subject, permission);
399
+ }
400
+ hasRole(subject, roles) {
401
+ return this.rbac.hasAnyRole(subject, roles);
402
+ }
403
+ hashPassword(password, options) {
404
+ return hashPassword(password, options);
405
+ }
406
+ verifyPassword(password, hash) {
407
+ return verifyPassword(password, hash);
408
+ }
409
+ sign(payload, options = {}) {
410
+ return encode(payload, this.secret, {
411
+ issuer: this.issuer,
412
+ audience: this.audience,
413
+ algorithm: this.algorithm,
414
+ expiresIn: options.expiresIn ?? this.accessTokenTtl,
415
+ ...options,
416
+ });
417
+ }
418
+ async collectClaims(user, extractorNames = []) {
419
+ const names = extractorNames.length > 0 ? extractorNames : [...this.claimExtractors.keys()];
420
+ const claims = {};
421
+ for (const name of names) {
422
+ const extractor = this.claimExtractors.get(name);
423
+ if (!extractor) {
424
+ continue;
425
+ }
426
+ try {
427
+ const value = await extractor(user);
428
+ if (isPlainObject(value)) {
429
+ // A returned object may not reintroduce a reserved claim either.
430
+ for (const [key, entry] of Object.entries(value)) {
431
+ if (!RESERVED_CLAIMS.has(key)) {
432
+ claims[key] = entry;
433
+ }
434
+ }
435
+ }
436
+ else if (value !== undefined) {
437
+ claims[name] = value;
438
+ }
439
+ }
440
+ catch {
441
+ claims[name] = null;
442
+ }
443
+ }
444
+ return claims;
445
+ }
446
+ async runHooks(event, payload) {
447
+ for (const handler of this.hooks[event]) {
448
+ await handler(payload, this);
449
+ }
450
+ }
451
+ }
452
+ function normalizeRbac(value) {
453
+ if (value instanceof RBAC) {
454
+ return value;
455
+ }
456
+ if (!value) {
457
+ return new RBAC();
458
+ }
459
+ if ("roles" in value || "permissions" in value || "defaultRole" in value) {
460
+ return new RBAC(value);
461
+ }
462
+ return new RBAC({ roles: value });
463
+ }
464
+ function collectHeaders(request) {
465
+ const headers = {};
466
+ const source = request?.headers;
467
+ const bag = source;
468
+ if (bag && typeof bag.forEach === "function") {
469
+ // WHATWG Headers (and Map-like bags) call back with (value, key), the
470
+ // reverse of uWS. Copy both names so getHeader() can find them either way.
471
+ bag.forEach((value, key) => {
472
+ if (value === undefined || value === null) {
473
+ return;
474
+ }
475
+ headers[String(key).toLowerCase()] = String(value);
476
+ });
477
+ }
478
+ else if (bag && typeof bag.get === "function") {
479
+ for (const name of ["authorization", "cookie"]) {
480
+ const value = bag.get(name);
481
+ if (value !== undefined && value !== null) {
482
+ headers[name] = String(value);
483
+ }
484
+ }
485
+ }
486
+ else if (isPlainObject(source)) {
487
+ for (const [key, value] of Object.entries(source)) {
488
+ if (value !== undefined && value !== null) {
489
+ headers[key.toLowerCase()] = Array.isArray(value) ? String(value[0]) : String(value);
490
+ }
491
+ }
492
+ }
493
+ if (typeof request?.getHeader === "function") {
494
+ const authorization = request.getHeader("authorization");
495
+ const cookie = request.getHeader("cookie");
496
+ if (authorization)
497
+ headers.authorization = authorization;
498
+ if (cookie)
499
+ headers.cookie = cookie;
500
+ }
501
+ if (typeof request?.forEach === "function") {
502
+ // uWebSockets.js HttpRequest.forEach passes (key, value).
503
+ request.forEach((key, value) => {
504
+ const name = String(key).toLowerCase();
505
+ if (headers[name] === undefined) {
506
+ headers[name] = String(value);
507
+ }
508
+ });
509
+ }
510
+ return headers;
511
+ }
512
+ function collectQuery(request) {
513
+ if (request?.query && typeof request.query === "object" && !Array.isArray(request.query)) {
514
+ return parseQueryString(request.query);
515
+ }
516
+ if (typeof request?.query === "string") {
517
+ return parseQueryString(request.query);
518
+ }
519
+ if (typeof request?.getQuery === "function") {
520
+ return parseQueryString(request.getQuery());
521
+ }
522
+ return {};
523
+ }
524
+ export function createMemoryRefreshStore() {
525
+ const store = new Map();
526
+ const readValid = (id) => {
527
+ const record = store.get(id);
528
+ if (!record) {
529
+ return null;
530
+ }
531
+ if (record.expiresAt && record.expiresAt <= Date.now()) {
532
+ store.delete(id);
533
+ return null;
534
+ }
535
+ return record;
536
+ };
537
+ return {
538
+ async save(record) {
539
+ store.set(record.id, record);
540
+ },
541
+ async get(id) {
542
+ return readValid(id);
543
+ },
544
+ // Read and delete without an await in between, so a token cannot be
545
+ // refreshed twice in parallel.
546
+ async consume(id) {
547
+ const record = readValid(id);
548
+ store.delete(id);
549
+ return record;
550
+ },
551
+ async revoke(id) {
552
+ store.delete(id);
553
+ },
554
+ };
555
+ }
556
+ export function createAuth(options) {
557
+ return new Auth(options);
558
+ }
559
+ export { Auth as auth };
560
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { AuthErrorOptions } from "./types.js";
2
+ export declare class AuthError extends Error {
3
+ readonly name: string;
4
+ readonly code: string;
5
+ readonly status: number;
6
+ readonly cause?: unknown;
7
+ constructor(message: string, { code, status, cause }?: AuthErrorOptions);
8
+ toJSON(): {
9
+ name: string;
10
+ message: string;
11
+ code: string;
12
+ status: number;
13
+ };
14
+ }
15
+ export declare class InvalidTokenError extends AuthError {
16
+ constructor(message?: string, options?: AuthErrorOptions);
17
+ }
18
+ export declare class TokenExpiredError extends AuthError {
19
+ constructor(message?: string, options?: AuthErrorOptions);
20
+ }
21
+ export declare class UnauthorizedError extends AuthError {
22
+ constructor(message?: string, options?: AuthErrorOptions);
23
+ }
24
+ export declare class ForbiddenError extends AuthError {
25
+ constructor(message?: string, options?: AuthErrorOptions);
26
+ }
27
+ export declare class ConfigurationError extends AuthError {
28
+ constructor(message?: string, options?: AuthErrorOptions);
29
+ }
30
+ export declare class OAuthError extends AuthError {
31
+ constructor(message?: string, options?: AuthErrorOptions);
32
+ }
33
+ export declare class ProviderError extends AuthError {
34
+ constructor(message?: string, options?: AuthErrorOptions);
35
+ }
36
+ export declare class ValidationError extends AuthError {
37
+ constructor(message?: string, options?: AuthErrorOptions);
38
+ }
39
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,qBAAa,SAAU,SAAQ,KAAK;IAClC,SAAkB,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,SAAkB,KAAK,CAAC,EAAE,OAAO,CAAC;gBAEtB,OAAO,EAAE,MAAM,EAAE,EAAE,IAAmB,EAAE,MAAY,EAAE,KAAK,EAAE,GAAE,gBAAqB;IAWhG,MAAM,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAQ1E;AAED,qBAAa,iBAAkB,SAAQ,SAAS;gBAClC,OAAO,SAA6B,EAAE,OAAO,GAAE,gBAAqB;CAGjF;AAED,qBAAa,iBAAkB,SAAQ,SAAS;gBAClC,OAAO,SAAsB,EAAE,OAAO,GAAE,gBAAqB;CAG1E;AAED,qBAAa,iBAAkB,SAAQ,SAAS;gBAClC,OAAO,SAAiB,EAAE,OAAO,GAAE,gBAAqB;CAGrE;AAED,qBAAa,cAAe,SAAQ,SAAS;gBAC/B,OAAO,SAAc,EAAE,OAAO,GAAE,gBAAqB;CAGlE;AAED,qBAAa,kBAAmB,SAAQ,SAAS;gBACnC,OAAO,SAAyC,EAAE,OAAO,GAAE,gBAAqB;CAG7F;AAED,qBAAa,UAAW,SAAQ,SAAS;gBAC3B,OAAO,SAAgC,EAAE,OAAO,GAAE,gBAAqB;CAGpF;AAED,qBAAa,aAAc,SAAQ,SAAS;gBAC9B,OAAO,SAA4B,EAAE,OAAO,GAAE,gBAAqB;CAGhF;AAED,qBAAa,eAAgB,SAAQ,SAAS;gBAChC,OAAO,SAAsB,EAAE,OAAO,GAAE,gBAAqB;CAG1E"}