@geekmidas/auth 10.0.0-alpha.99 → 10.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 (147) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/dist/cacheTokenStorage-16NE8Cd9.mjs +32 -0
  3. package/dist/cacheTokenStorage-16NE8Cd9.mjs.map +1 -0
  4. package/dist/{cacheTokenStorage-B3u8Sf-6.d.cts → cacheTokenStorage-B7sOoysu.d.cts} +5 -2
  5. package/dist/cacheTokenStorage-B7sOoysu.d.cts.map +1 -0
  6. package/dist/cacheTokenStorage-CEpMniTi.cjs +38 -0
  7. package/dist/cacheTokenStorage-CEpMniTi.cjs.map +1 -0
  8. package/dist/{cacheTokenStorage-B3u8Sf-6.d.mts → cacheTokenStorage-_tq4Kmhc.d.mts} +5 -2
  9. package/dist/cacheTokenStorage-_tq4Kmhc.d.mts.map +1 -0
  10. package/dist/cacheTokenStorage.cjs +2 -30
  11. package/dist/cacheTokenStorage.d.cts +1 -1
  12. package/dist/cacheTokenStorage.d.mts +1 -1
  13. package/dist/cacheTokenStorage.mjs +2 -29
  14. package/dist/{rolldown-runtime-VH7oDXx4.cjs → chunk-CUT6urMc.cjs} +10 -8
  15. package/dist/client-BPl_mMvb.cjs +162 -0
  16. package/dist/client-BPl_mMvb.cjs.map +1 -0
  17. package/dist/client-eidYNJSH.mjs +144 -0
  18. package/dist/client-eidYNJSH.mjs.map +1 -0
  19. package/dist/client.cjs +6 -144
  20. package/dist/client.d.cts +1 -1
  21. package/dist/client.d.mts +1 -1
  22. package/dist/client.mjs +3 -140
  23. package/dist/hono/jwt.cjs +10 -7
  24. package/dist/hono/jwt.cjs.map +1 -1
  25. package/dist/hono/jwt.d.cts +6 -4
  26. package/dist/hono/jwt.d.cts.map +1 -1
  27. package/dist/hono/jwt.d.mts +6 -4
  28. package/dist/hono/jwt.d.mts.map +1 -1
  29. package/dist/hono/jwt.mjs +10 -7
  30. package/dist/hono/jwt.mjs.map +1 -1
  31. package/dist/hono/oidc.cjs +10 -7
  32. package/dist/hono/oidc.cjs.map +1 -1
  33. package/dist/hono/oidc.d.cts +7 -5
  34. package/dist/hono/oidc.d.cts.map +1 -1
  35. package/dist/hono/oidc.d.mts +7 -5
  36. package/dist/hono/oidc.d.mts.map +1 -1
  37. package/dist/hono/oidc.mjs +10 -7
  38. package/dist/hono/oidc.mjs.map +1 -1
  39. package/dist/index.cjs +5 -5
  40. package/dist/index.d.cts +2 -2
  41. package/dist/index.d.mts +2 -2
  42. package/dist/index.mjs +5 -4
  43. package/dist/{jwt-CoKrpeMB.d.mts → jwt-3eIuY2dg.d.cts} +3 -2
  44. package/dist/jwt-3eIuY2dg.d.cts.map +1 -0
  45. package/dist/jwt-Bo_eACEi.cjs +70 -0
  46. package/dist/jwt-Bo_eACEi.cjs.map +1 -0
  47. package/dist/{jwt-CoKrpeMB.d.cts → jwt-BqLlRkw-.d.mts} +3 -2
  48. package/dist/jwt-BqLlRkw-.d.mts.map +1 -0
  49. package/dist/jwt-D88cPJyT.mjs +52 -0
  50. package/dist/jwt-D88cPJyT.mjs.map +1 -0
  51. package/dist/jwt.cjs +4 -56
  52. package/dist/jwt.d.cts +1 -1
  53. package/dist/jwt.d.mts +1 -1
  54. package/dist/jwt.mjs +2 -51
  55. package/dist/lambda/jwt.cjs +20 -16
  56. package/dist/lambda/jwt.cjs.map +1 -1
  57. package/dist/lambda/jwt.d.cts +6 -4
  58. package/dist/lambda/jwt.d.cts.map +1 -1
  59. package/dist/lambda/jwt.d.mts +6 -4
  60. package/dist/lambda/jwt.d.mts.map +1 -1
  61. package/dist/lambda/jwt.mjs +20 -16
  62. package/dist/lambda/jwt.mjs.map +1 -1
  63. package/dist/lambda/oidc.cjs +20 -16
  64. package/dist/lambda/oidc.cjs.map +1 -1
  65. package/dist/lambda/oidc.d.cts +7 -5
  66. package/dist/lambda/oidc.d.cts.map +1 -1
  67. package/dist/lambda/oidc.d.mts +7 -5
  68. package/dist/lambda/oidc.d.mts.map +1 -1
  69. package/dist/lambda/oidc.mjs +20 -16
  70. package/dist/lambda/oidc.mjs.map +1 -1
  71. package/dist/oidc-C0KyYaAK.cjs +68 -0
  72. package/dist/oidc-C0KyYaAK.cjs.map +1 -0
  73. package/dist/oidc-ChA17wLB.d.cts +87 -0
  74. package/dist/oidc-ChA17wLB.d.cts.map +1 -0
  75. package/dist/oidc-DTRgBBl6.d.mts +87 -0
  76. package/dist/oidc-DTRgBBl6.d.mts.map +1 -0
  77. package/dist/oidc-KA30gMlx.mjs +62 -0
  78. package/dist/oidc-KA30gMlx.mjs.map +1 -0
  79. package/dist/oidc.cjs +2 -64
  80. package/dist/oidc.d.cts +3 -84
  81. package/dist/oidc.d.mts +3 -84
  82. package/dist/oidc.mjs +2 -61
  83. package/dist/server.cjs +4 -4
  84. package/dist/server.d.cts +3 -3
  85. package/dist/server.d.mts +3 -3
  86. package/dist/server.mjs +4 -3
  87. package/dist/tokenManager-CL3yE06D.d.cts +40 -0
  88. package/dist/tokenManager-CL3yE06D.d.cts.map +1 -0
  89. package/dist/tokenManager-Ci2Tgxp8.mjs +66 -0
  90. package/dist/tokenManager-Ci2Tgxp8.mjs.map +1 -0
  91. package/dist/tokenManager-CvEMgxOp.cjs +72 -0
  92. package/dist/tokenManager-CvEMgxOp.cjs.map +1 -0
  93. package/dist/tokenManager-RrwjL0y-.d.mts +40 -0
  94. package/dist/tokenManager-RrwjL0y-.d.mts.map +1 -0
  95. package/dist/tokenManager.cjs +2 -64
  96. package/dist/tokenManager.d.cts +2 -37
  97. package/dist/tokenManager.d.mts +2 -37
  98. package/dist/tokenManager.mjs +2 -61
  99. package/package.json +9 -13
  100. package/src/__tests__/cacheTokenStorage.spec.ts +213 -0
  101. package/src/__tests__/client.spec.ts +465 -0
  102. package/src/__tests__/hono-jwt.spec.ts +232 -0
  103. package/src/__tests__/hono-oidc.spec.ts +605 -0
  104. package/src/__tests__/jwt.spec.ts +197 -0
  105. package/src/__tests__/lambda-jwt.spec.ts +278 -0
  106. package/src/__tests__/lambda-oidc.spec.ts +624 -0
  107. package/src/__tests__/oidc.spec.ts +405 -0
  108. package/src/__tests__/tokenManager.spec.ts +259 -0
  109. package/src/cacheTokenStorage.ts +43 -0
  110. package/src/client.ts +220 -0
  111. package/src/hono/jwt.ts +142 -0
  112. package/src/hono/oidc.ts +170 -0
  113. package/src/index.ts +3 -0
  114. package/src/jwt.ts +106 -0
  115. package/src/lambda/jwt.ts +210 -0
  116. package/src/lambda/oidc.ts +203 -0
  117. package/src/oidc.ts +156 -0
  118. package/src/server.ts +8 -0
  119. package/src/tokenManager.ts +106 -0
  120. package/tsconfig.json +10 -0
  121. package/tsdown.config.ts +3 -0
  122. package/dist/cacheTokenStorage-B3u8Sf-6.d.cts.map +0 -1
  123. package/dist/cacheTokenStorage-B3u8Sf-6.d.mts.map +0 -1
  124. package/dist/cacheTokenStorage.cjs.map +0 -1
  125. package/dist/cacheTokenStorage.mjs.map +0 -1
  126. package/dist/client.cjs.map +0 -1
  127. package/dist/client.mjs.map +0 -1
  128. package/dist/cookies.cjs +0 -25
  129. package/dist/cookies.cjs.map +0 -1
  130. package/dist/cookies.d.cts +0 -12
  131. package/dist/cookies.d.cts.map +0 -1
  132. package/dist/cookies.d.mts +0 -12
  133. package/dist/cookies.d.mts.map +0 -1
  134. package/dist/cookies.mjs +0 -24
  135. package/dist/cookies.mjs.map +0 -1
  136. package/dist/jwt-CoKrpeMB.d.cts.map +0 -1
  137. package/dist/jwt-CoKrpeMB.d.mts.map +0 -1
  138. package/dist/jwt.cjs.map +0 -1
  139. package/dist/jwt.mjs.map +0 -1
  140. package/dist/oidc.cjs.map +0 -1
  141. package/dist/oidc.d.cts.map +0 -1
  142. package/dist/oidc.d.mts.map +0 -1
  143. package/dist/oidc.mjs.map +0 -1
  144. package/dist/tokenManager.cjs.map +0 -1
  145. package/dist/tokenManager.d.cts.map +0 -1
  146. package/dist/tokenManager.d.mts.map +0 -1
  147. package/dist/tokenManager.mjs.map +0 -1
@@ -0,0 +1,87 @@
1
+ import { JwtClaims } from "./jwt-3eIuY2dg.cjs";
2
+
3
+ //#region src/oidc.d.ts
4
+
5
+ /**
6
+ * Standard OIDC claims (extends JWT claims)
7
+ */
8
+ interface OidcClaims extends JwtClaims {
9
+ nonce?: string;
10
+ auth_time?: number;
11
+ at_hash?: string;
12
+ c_hash?: string;
13
+ azp?: string;
14
+ }
15
+ /**
16
+ * Standard OIDC user info claims
17
+ */
18
+ interface OidcUserInfo {
19
+ sub: string;
20
+ name?: string;
21
+ given_name?: string;
22
+ family_name?: string;
23
+ middle_name?: string;
24
+ nickname?: string;
25
+ preferred_username?: string;
26
+ profile?: string;
27
+ picture?: string;
28
+ website?: string;
29
+ email?: string;
30
+ email_verified?: boolean;
31
+ gender?: string;
32
+ birthdate?: string;
33
+ zoneinfo?: string;
34
+ locale?: string;
35
+ phone_number?: string;
36
+ phone_number_verified?: boolean;
37
+ address?: {
38
+ formatted?: string;
39
+ street_address?: string;
40
+ locality?: string;
41
+ region?: string;
42
+ postal_code?: string;
43
+ country?: string;
44
+ };
45
+ updated_at?: number;
46
+ }
47
+ /**
48
+ * OIDC Discovery document
49
+ */
50
+ interface OidcDiscovery {
51
+ issuer: string;
52
+ authorization_endpoint: string;
53
+ token_endpoint: string;
54
+ userinfo_endpoint?: string;
55
+ jwks_uri: string;
56
+ scopes_supported?: string[];
57
+ response_types_supported: string[];
58
+ claims_supported?: string[];
59
+ }
60
+ /**
61
+ * Configuration for OIDC verification
62
+ */
63
+ interface OidcConfig {
64
+ issuer: string;
65
+ audience: string | string[];
66
+ cacheDiscovery?: boolean;
67
+ }
68
+ /**
69
+ * OIDC Verifier with auto-discovery and caching
70
+ */
71
+ declare class OidcVerifier<TClaims extends OidcClaims = OidcClaims, TUserInfo extends OidcUserInfo = OidcUserInfo> {
72
+ private readonly config;
73
+ private discovery;
74
+ private jwks;
75
+ private readonly discoveryUrl;
76
+ constructor(config: OidcConfig);
77
+ getDiscovery(): Promise<OidcDiscovery>;
78
+ private getJwks;
79
+ verify(token: string): Promise<TClaims>;
80
+ verifyOrNull(token: string): Promise<TClaims | null>;
81
+ fetchUserInfo(token: string): Promise<TUserInfo | null>;
82
+ clearCache(): void;
83
+ }
84
+ //# sourceMappingURL=oidc.d.ts.map
85
+ //#endregion
86
+ export { OidcClaims, OidcConfig, OidcDiscovery, OidcUserInfo, OidcVerifier };
87
+ //# sourceMappingURL=oidc-ChA17wLB.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidc-ChA17wLB.d.cts","names":[],"sources":["../src/oidc.ts"],"sourcesContent":[],"mappings":";;;;;AAQA;AAWA;AAiCiB,UA5CA,UAAA,SAAmB,SA4CN,CAAA;EAcb,KAAA,CAAA,EAAA,MAAU;EASd,SAAA,CAAA,EAAA,MAAY;EAAA,OAAA,CAAA,EAAA,MAAA;EAAA,MACR,CAAA,EAAA,MAAA;EAAU,GAAG,CAAA,EAAA,MAAA;;;;;AAaP,UAtEN,YAAA,CAsEM;EAAO,GAwBQ,EAAA,MAAA;EAAO,IAAf,CAAA,EAAA,MAAA;EAAO,UASO,CAAA,EAAA,MAAA;EAAO,WAAf,CAAA,EAAA,MAAA;EAAO,WAQE,CAAA,EAAA,MAAA;EAAS,QAAjB,CAAA,EAAA,MAAA;EAAO,kBAAA,CAAA,EAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;UA9E3B,aAAA;;;;;;;;;;;;;UAcA,UAAA;;;;;;;;cASJ,6BACI,aAAa,8BACX,eAAe;;;;;sBAMI;kBAMf,QAAQ;;yBAwBD,QAAQ;+BASF,QAAQ;gCAQP,QAAQ"}
@@ -0,0 +1,87 @@
1
+ import { JwtClaims } from "./jwt-BqLlRkw-.mjs";
2
+
3
+ //#region src/oidc.d.ts
4
+
5
+ /**
6
+ * Standard OIDC claims (extends JWT claims)
7
+ */
8
+ interface OidcClaims extends JwtClaims {
9
+ nonce?: string;
10
+ auth_time?: number;
11
+ at_hash?: string;
12
+ c_hash?: string;
13
+ azp?: string;
14
+ }
15
+ /**
16
+ * Standard OIDC user info claims
17
+ */
18
+ interface OidcUserInfo {
19
+ sub: string;
20
+ name?: string;
21
+ given_name?: string;
22
+ family_name?: string;
23
+ middle_name?: string;
24
+ nickname?: string;
25
+ preferred_username?: string;
26
+ profile?: string;
27
+ picture?: string;
28
+ website?: string;
29
+ email?: string;
30
+ email_verified?: boolean;
31
+ gender?: string;
32
+ birthdate?: string;
33
+ zoneinfo?: string;
34
+ locale?: string;
35
+ phone_number?: string;
36
+ phone_number_verified?: boolean;
37
+ address?: {
38
+ formatted?: string;
39
+ street_address?: string;
40
+ locality?: string;
41
+ region?: string;
42
+ postal_code?: string;
43
+ country?: string;
44
+ };
45
+ updated_at?: number;
46
+ }
47
+ /**
48
+ * OIDC Discovery document
49
+ */
50
+ interface OidcDiscovery {
51
+ issuer: string;
52
+ authorization_endpoint: string;
53
+ token_endpoint: string;
54
+ userinfo_endpoint?: string;
55
+ jwks_uri: string;
56
+ scopes_supported?: string[];
57
+ response_types_supported: string[];
58
+ claims_supported?: string[];
59
+ }
60
+ /**
61
+ * Configuration for OIDC verification
62
+ */
63
+ interface OidcConfig {
64
+ issuer: string;
65
+ audience: string | string[];
66
+ cacheDiscovery?: boolean;
67
+ }
68
+ /**
69
+ * OIDC Verifier with auto-discovery and caching
70
+ */
71
+ declare class OidcVerifier<TClaims extends OidcClaims = OidcClaims, TUserInfo extends OidcUserInfo = OidcUserInfo> {
72
+ private readonly config;
73
+ private discovery;
74
+ private jwks;
75
+ private readonly discoveryUrl;
76
+ constructor(config: OidcConfig);
77
+ getDiscovery(): Promise<OidcDiscovery>;
78
+ private getJwks;
79
+ verify(token: string): Promise<TClaims>;
80
+ verifyOrNull(token: string): Promise<TClaims | null>;
81
+ fetchUserInfo(token: string): Promise<TUserInfo | null>;
82
+ clearCache(): void;
83
+ }
84
+ //# sourceMappingURL=oidc.d.ts.map
85
+ //#endregion
86
+ export { OidcClaims, OidcConfig, OidcDiscovery, OidcUserInfo, OidcVerifier };
87
+ //# sourceMappingURL=oidc-DTRgBBl6.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidc-DTRgBBl6.d.mts","names":[],"sources":["../src/oidc.ts"],"sourcesContent":[],"mappings":";;;;;AAQA;AAWA;AAiCiB,UA5CA,UAAA,SAAmB,SA4CN,CAAA;EAcb,KAAA,CAAA,EAAA,MAAU;EASd,SAAA,CAAA,EAAA,MAAY;EAAA,OAAA,CAAA,EAAA,MAAA;EAAA,MACR,CAAA,EAAA,MAAA;EAAU,GAAG,CAAA,EAAA,MAAA;;;;;AAaP,UAtEN,YAAA,CAsEM;EAAO,GAwBQ,EAAA,MAAA;EAAO,IAAf,CAAA,EAAA,MAAA;EAAO,UASO,CAAA,EAAA,MAAA;EAAO,WAAf,CAAA,EAAA,MAAA;EAAO,WAQE,CAAA,EAAA,MAAA;EAAS,QAAjB,CAAA,EAAA,MAAA;EAAO,kBAAA,CAAA,EAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;UA9E3B,aAAA;;;;;;;;;;;;;UAcA,UAAA;;;;;;;;cASJ,6BACI,aAAa,8BACX,eAAe;;;;;sBAMI;kBAMf,QAAQ;;yBAwBD,QAAQ;+BASF,QAAQ;gCAQP,QAAQ"}
@@ -0,0 +1,62 @@
1
+ import * as jose from "jose";
2
+
3
+ //#region src/oidc.ts
4
+ /**
5
+ * OIDC Verifier with auto-discovery and caching
6
+ */
7
+ var OidcVerifier = class {
8
+ discovery = null;
9
+ jwks = null;
10
+ discoveryUrl;
11
+ constructor(config) {
12
+ this.config = config;
13
+ this.discoveryUrl = config.issuer.endsWith("/") ? `${config.issuer}.well-known/openid-configuration` : `${config.issuer}/.well-known/openid-configuration`;
14
+ }
15
+ async getDiscovery() {
16
+ if (this.discovery && this.config.cacheDiscovery !== false) return this.discovery;
17
+ const response = await fetch(this.discoveryUrl);
18
+ if (!response.ok) throw new Error(`Failed to fetch OIDC discovery: ${response.statusText}`);
19
+ this.discovery = await response.json();
20
+ return this.discovery;
21
+ }
22
+ async getJwks() {
23
+ if (this.jwks && this.config.cacheDiscovery !== false) return this.jwks;
24
+ const disc = await this.getDiscovery();
25
+ this.jwks = jose.createRemoteJWKSet(new URL(disc.jwks_uri));
26
+ return this.jwks;
27
+ }
28
+ async verify(token) {
29
+ const key = await this.getJwks();
30
+ const { payload } = await jose.jwtVerify(token, key, {
31
+ issuer: this.config.issuer,
32
+ audience: this.config.audience
33
+ });
34
+ return payload;
35
+ }
36
+ async verifyOrNull(token) {
37
+ try {
38
+ return await this.verify(token);
39
+ } catch {
40
+ return null;
41
+ }
42
+ }
43
+ async fetchUserInfo(token) {
44
+ try {
45
+ const disc = await this.getDiscovery();
46
+ if (!disc.userinfo_endpoint) return null;
47
+ const response = await fetch(disc.userinfo_endpoint, { headers: { Authorization: `Bearer ${token}` } });
48
+ if (!response.ok) return null;
49
+ return await response.json();
50
+ } catch {
51
+ return null;
52
+ }
53
+ }
54
+ clearCache() {
55
+ this.discovery = null;
56
+ this.jwks = null;
57
+ }
58
+ };
59
+
60
+ //#endregion
61
+ export { OidcVerifier };
62
+ //# sourceMappingURL=oidc-KA30gMlx.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidc-KA30gMlx.mjs","names":["config: OidcConfig","token: string"],"sources":["../src/oidc.ts"],"sourcesContent":["import * as jose from 'jose';\nimport type { JwtClaims, TokenExtractionOptions } from './jwt';\n\nexport type { TokenExtractionOptions };\n\n/**\n * Standard OIDC claims (extends JWT claims)\n */\nexport interface OidcClaims extends JwtClaims {\n\tnonce?: string;\n\tauth_time?: number;\n\tat_hash?: string;\n\tc_hash?: string;\n\tazp?: string;\n}\n\n/**\n * Standard OIDC user info claims\n */\nexport interface OidcUserInfo {\n\tsub: string;\n\tname?: string;\n\tgiven_name?: string;\n\tfamily_name?: string;\n\tmiddle_name?: string;\n\tnickname?: string;\n\tpreferred_username?: string;\n\tprofile?: string;\n\tpicture?: string;\n\twebsite?: string;\n\temail?: string;\n\temail_verified?: boolean;\n\tgender?: string;\n\tbirthdate?: string;\n\tzoneinfo?: string;\n\tlocale?: string;\n\tphone_number?: string;\n\tphone_number_verified?: boolean;\n\taddress?: {\n\t\tformatted?: string;\n\t\tstreet_address?: string;\n\t\tlocality?: string;\n\t\tregion?: string;\n\t\tpostal_code?: string;\n\t\tcountry?: string;\n\t};\n\tupdated_at?: number;\n}\n\n/**\n * OIDC Discovery document\n */\nexport interface OidcDiscovery {\n\tissuer: string;\n\tauthorization_endpoint: string;\n\ttoken_endpoint: string;\n\tuserinfo_endpoint?: string;\n\tjwks_uri: string;\n\tscopes_supported?: string[];\n\tresponse_types_supported: string[];\n\tclaims_supported?: string[];\n}\n\n/**\n * Configuration for OIDC verification\n */\nexport interface OidcConfig {\n\tissuer: string;\n\taudience: string | string[];\n\tcacheDiscovery?: boolean;\n}\n\n/**\n * OIDC Verifier with auto-discovery and caching\n */\nexport class OidcVerifier<\n\tTClaims extends OidcClaims = OidcClaims,\n\tTUserInfo extends OidcUserInfo = OidcUserInfo,\n> {\n\tprivate discovery: OidcDiscovery | null = null;\n\tprivate jwks: jose.JWTVerifyGetKey | null = null;\n\tprivate readonly discoveryUrl: string;\n\n\tconstructor(private readonly config: OidcConfig) {\n\t\tthis.discoveryUrl = config.issuer.endsWith('/')\n\t\t\t? `${config.issuer}.well-known/openid-configuration`\n\t\t\t: `${config.issuer}/.well-known/openid-configuration`;\n\t}\n\n\tasync getDiscovery(): Promise<OidcDiscovery> {\n\t\tif (this.discovery && this.config.cacheDiscovery !== false) {\n\t\t\treturn this.discovery;\n\t\t}\n\n\t\tconst response = await fetch(this.discoveryUrl);\n\t\tif (!response.ok) {\n\t\t\tthrow new Error(`Failed to fetch OIDC discovery: ${response.statusText}`);\n\t\t}\n\n\t\tthis.discovery = (await response.json()) as OidcDiscovery;\n\t\treturn this.discovery;\n\t}\n\n\tprivate async getJwks(): Promise<jose.JWTVerifyGetKey> {\n\t\tif (this.jwks && this.config.cacheDiscovery !== false) {\n\t\t\treturn this.jwks;\n\t\t}\n\n\t\tconst disc = await this.getDiscovery();\n\t\tthis.jwks = jose.createRemoteJWKSet(new URL(disc.jwks_uri));\n\t\treturn this.jwks;\n\t}\n\n\tasync verify(token: string): Promise<TClaims> {\n\t\tconst key = await this.getJwks();\n\t\tconst { payload } = await jose.jwtVerify(token, key, {\n\t\t\tissuer: this.config.issuer,\n\t\t\taudience: this.config.audience,\n\t\t});\n\t\treturn payload as unknown as TClaims;\n\t}\n\n\tasync verifyOrNull(token: string): Promise<TClaims | null> {\n\t\ttry {\n\t\t\treturn await this.verify(token);\n\t\t} catch {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tasync fetchUserInfo(token: string): Promise<TUserInfo | null> {\n\t\ttry {\n\t\t\tconst disc = await this.getDiscovery();\n\t\t\tif (!disc.userinfo_endpoint) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst response = await fetch(disc.userinfo_endpoint, {\n\t\t\t\theaders: { Authorization: `Bearer ${token}` },\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn (await response.json()) as TUserInfo;\n\t\t} catch {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tclearCache(): void {\n\t\tthis.discovery = null;\n\t\tthis.jwks = null;\n\t}\n}\n"],"mappings":";;;;;;AA2EA,IAAa,eAAb,MAGE;CACD,AAAQ,YAAkC;CAC1C,AAAQ,OAAoC;CAC5C,AAAiB;CAEjB,YAA6BA,QAAoB;EAApB;AAC5B,OAAK,eAAe,OAAO,OAAO,SAAS,IAAI,IAC3C,EAAE,OAAO,OAAO,qCAChB,EAAE,OAAO,OAAO;CACpB;CAED,MAAM,eAAuC;AAC5C,MAAI,KAAK,aAAa,KAAK,OAAO,mBAAmB,MACpD,QAAO,KAAK;EAGb,MAAM,WAAW,MAAM,MAAM,KAAK,aAAa;AAC/C,OAAK,SAAS,GACb,OAAM,IAAI,OAAO,kCAAkC,SAAS,WAAW;AAGxE,OAAK,YAAa,MAAM,SAAS,MAAM;AACvC,SAAO,KAAK;CACZ;CAED,MAAc,UAAyC;AACtD,MAAI,KAAK,QAAQ,KAAK,OAAO,mBAAmB,MAC/C,QAAO,KAAK;EAGb,MAAM,OAAO,MAAM,KAAK,cAAc;AACtC,OAAK,OAAO,KAAK,mBAAmB,IAAI,IAAI,KAAK,UAAU;AAC3D,SAAO,KAAK;CACZ;CAED,MAAM,OAAOC,OAAiC;EAC7C,MAAM,MAAM,MAAM,KAAK,SAAS;EAChC,MAAM,EAAE,SAAS,GAAG,MAAM,KAAK,UAAU,OAAO,KAAK;GACpD,QAAQ,KAAK,OAAO;GACpB,UAAU,KAAK,OAAO;EACtB,EAAC;AACF,SAAO;CACP;CAED,MAAM,aAAaA,OAAwC;AAC1D,MAAI;AACH,UAAO,MAAM,KAAK,OAAO,MAAM;EAC/B,QAAO;AACP,UAAO;EACP;CACD;CAED,MAAM,cAAcA,OAA0C;AAC7D,MAAI;GACH,MAAM,OAAO,MAAM,KAAK,cAAc;AACtC,QAAK,KAAK,kBACT,QAAO;GAGR,MAAM,WAAW,MAAM,MAAM,KAAK,mBAAmB,EACpD,SAAS,EAAE,gBAAgB,SAAS,MAAM,EAAG,EAC7C,EAAC;AAEF,QAAK,SAAS,GACb,QAAO;AAGR,UAAQ,MAAM,SAAS,MAAM;EAC7B,QAAO;AACP,UAAO;EACP;CACD;CAED,aAAmB;AAClB,OAAK,YAAY;AACjB,OAAK,OAAO;CACZ;AACD"}
package/dist/oidc.cjs CHANGED
@@ -1,65 +1,3 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_rolldown_runtime = require("./rolldown-runtime-VH7oDXx4.cjs");
3
- let jose = require("jose");
4
- jose = require_rolldown_runtime.__toESM(jose, 1);
5
- //#region src/oidc.ts
6
- /**
7
- * OIDC Verifier with auto-discovery and caching
8
- */
9
- var OidcVerifier = class {
10
- config;
11
- discovery = null;
12
- jwks = null;
13
- discoveryUrl;
14
- constructor(config) {
15
- this.config = config;
16
- this.discoveryUrl = config.issuer.endsWith("/") ? `${config.issuer}.well-known/openid-configuration` : `${config.issuer}/.well-known/openid-configuration`;
17
- }
18
- async getDiscovery() {
19
- if (this.discovery && this.config.cacheDiscovery !== false) return this.discovery;
20
- const response = await fetch(this.discoveryUrl);
21
- if (!response.ok) throw new Error(`Failed to fetch OIDC discovery: ${response.statusText}`);
22
- this.discovery = await response.json();
23
- return this.discovery;
24
- }
25
- async getJwks() {
26
- if (this.jwks && this.config.cacheDiscovery !== false) return this.jwks;
27
- const disc = await this.getDiscovery();
28
- this.jwks = jose.createRemoteJWKSet(new URL(disc.jwks_uri));
29
- return this.jwks;
30
- }
31
- async verify(token) {
32
- const key = await this.getJwks();
33
- const { payload } = await jose.jwtVerify(token, key, {
34
- issuer: this.config.issuer,
35
- audience: this.config.audience
36
- });
37
- return payload;
38
- }
39
- async verifyOrNull(token) {
40
- try {
41
- return await this.verify(token);
42
- } catch {
43
- return null;
44
- }
45
- }
46
- async fetchUserInfo(token) {
47
- try {
48
- const disc = await this.getDiscovery();
49
- if (!disc.userinfo_endpoint) return null;
50
- const response = await fetch(disc.userinfo_endpoint, { headers: { Authorization: `Bearer ${token}` } });
51
- if (!response.ok) return null;
52
- return await response.json();
53
- } catch {
54
- return null;
55
- }
56
- }
57
- clearCache() {
58
- this.discovery = null;
59
- this.jwks = null;
60
- }
61
- };
62
- //#endregion
63
- exports.OidcVerifier = OidcVerifier;
1
+ const require_oidc = require('./oidc-C0KyYaAK.cjs');
64
2
 
65
- //# sourceMappingURL=oidc.cjs.map
3
+ exports.OidcVerifier = require_oidc.OidcVerifier;
package/dist/oidc.d.cts CHANGED
@@ -1,84 +1,3 @@
1
- import { o as TokenExtractionOptions, t as JwtClaims } from "./jwt-CoKrpeMB.cjs";
2
- //#region src/oidc.d.ts
3
- /**
4
- * Standard OIDC claims (extends JWT claims)
5
- */
6
- export interface OidcClaims extends JwtClaims {
7
- nonce?: string;
8
- auth_time?: number;
9
- at_hash?: string;
10
- c_hash?: string;
11
- azp?: string;
12
- }
13
- /**
14
- * Standard OIDC user info claims
15
- */
16
- export interface OidcUserInfo {
17
- sub: string;
18
- name?: string;
19
- given_name?: string;
20
- family_name?: string;
21
- middle_name?: string;
22
- nickname?: string;
23
- preferred_username?: string;
24
- profile?: string;
25
- picture?: string;
26
- website?: string;
27
- email?: string;
28
- email_verified?: boolean;
29
- gender?: string;
30
- birthdate?: string;
31
- zoneinfo?: string;
32
- locale?: string;
33
- phone_number?: string;
34
- phone_number_verified?: boolean;
35
- address?: {
36
- formatted?: string;
37
- street_address?: string;
38
- locality?: string;
39
- region?: string;
40
- postal_code?: string;
41
- country?: string;
42
- };
43
- updated_at?: number;
44
- }
45
- /**
46
- * OIDC Discovery document
47
- */
48
- export interface OidcDiscovery {
49
- issuer: string;
50
- authorization_endpoint: string;
51
- token_endpoint: string;
52
- userinfo_endpoint?: string;
53
- jwks_uri: string;
54
- scopes_supported?: string[];
55
- response_types_supported: string[];
56
- claims_supported?: string[];
57
- }
58
- /**
59
- * Configuration for OIDC verification
60
- */
61
- export interface OidcConfig {
62
- issuer: string;
63
- audience: string | string[];
64
- cacheDiscovery?: boolean;
65
- }
66
- /**
67
- * OIDC Verifier with auto-discovery and caching
68
- */
69
- export declare class OidcVerifier<TClaims extends OidcClaims = OidcClaims, TUserInfo extends OidcUserInfo = OidcUserInfo> {
70
- private readonly config;
71
- private discovery;
72
- private jwks;
73
- private readonly discoveryUrl;
74
- constructor(config: OidcConfig);
75
- getDiscovery(): Promise<OidcDiscovery>;
76
- private getJwks;
77
- verify(token: string): Promise<TClaims>;
78
- verifyOrNull(token: string): Promise<TClaims | null>;
79
- fetchUserInfo(token: string): Promise<TUserInfo | null>;
80
- clearCache(): void;
81
- }
82
- //#endregion
83
- export type { TokenExtractionOptions };
84
- //# sourceMappingURL=oidc.d.cts.map
1
+ import { TokenExtractionOptions } from "./jwt-3eIuY2dg.cjs";
2
+ import { OidcClaims, OidcConfig, OidcDiscovery, OidcUserInfo, OidcVerifier } from "./oidc-ChA17wLB.cjs";
3
+ export { OidcClaims, OidcConfig, OidcDiscovery, OidcUserInfo, OidcVerifier, TokenExtractionOptions };
package/dist/oidc.d.mts CHANGED
@@ -1,84 +1,3 @@
1
- import { o as TokenExtractionOptions, t as JwtClaims } from "./jwt-CoKrpeMB.mjs";
2
- //#region src/oidc.d.ts
3
- /**
4
- * Standard OIDC claims (extends JWT claims)
5
- */
6
- export interface OidcClaims extends JwtClaims {
7
- nonce?: string;
8
- auth_time?: number;
9
- at_hash?: string;
10
- c_hash?: string;
11
- azp?: string;
12
- }
13
- /**
14
- * Standard OIDC user info claims
15
- */
16
- export interface OidcUserInfo {
17
- sub: string;
18
- name?: string;
19
- given_name?: string;
20
- family_name?: string;
21
- middle_name?: string;
22
- nickname?: string;
23
- preferred_username?: string;
24
- profile?: string;
25
- picture?: string;
26
- website?: string;
27
- email?: string;
28
- email_verified?: boolean;
29
- gender?: string;
30
- birthdate?: string;
31
- zoneinfo?: string;
32
- locale?: string;
33
- phone_number?: string;
34
- phone_number_verified?: boolean;
35
- address?: {
36
- formatted?: string;
37
- street_address?: string;
38
- locality?: string;
39
- region?: string;
40
- postal_code?: string;
41
- country?: string;
42
- };
43
- updated_at?: number;
44
- }
45
- /**
46
- * OIDC Discovery document
47
- */
48
- export interface OidcDiscovery {
49
- issuer: string;
50
- authorization_endpoint: string;
51
- token_endpoint: string;
52
- userinfo_endpoint?: string;
53
- jwks_uri: string;
54
- scopes_supported?: string[];
55
- response_types_supported: string[];
56
- claims_supported?: string[];
57
- }
58
- /**
59
- * Configuration for OIDC verification
60
- */
61
- export interface OidcConfig {
62
- issuer: string;
63
- audience: string | string[];
64
- cacheDiscovery?: boolean;
65
- }
66
- /**
67
- * OIDC Verifier with auto-discovery and caching
68
- */
69
- export declare class OidcVerifier<TClaims extends OidcClaims = OidcClaims, TUserInfo extends OidcUserInfo = OidcUserInfo> {
70
- private readonly config;
71
- private discovery;
72
- private jwks;
73
- private readonly discoveryUrl;
74
- constructor(config: OidcConfig);
75
- getDiscovery(): Promise<OidcDiscovery>;
76
- private getJwks;
77
- verify(token: string): Promise<TClaims>;
78
- verifyOrNull(token: string): Promise<TClaims | null>;
79
- fetchUserInfo(token: string): Promise<TUserInfo | null>;
80
- clearCache(): void;
81
- }
82
- //#endregion
83
- export type { TokenExtractionOptions };
84
- //# sourceMappingURL=oidc.d.mts.map
1
+ import { TokenExtractionOptions } from "./jwt-BqLlRkw-.mjs";
2
+ import { OidcClaims, OidcConfig, OidcDiscovery, OidcUserInfo, OidcVerifier } from "./oidc-DTRgBBl6.mjs";
3
+ export { OidcClaims, OidcConfig, OidcDiscovery, OidcUserInfo, OidcVerifier, TokenExtractionOptions };
package/dist/oidc.mjs CHANGED
@@ -1,62 +1,3 @@
1
- import * as jose from "jose";
2
- //#region src/oidc.ts
3
- /**
4
- * OIDC Verifier with auto-discovery and caching
5
- */
6
- var OidcVerifier = class {
7
- config;
8
- discovery = null;
9
- jwks = null;
10
- discoveryUrl;
11
- constructor(config) {
12
- this.config = config;
13
- this.discoveryUrl = config.issuer.endsWith("/") ? `${config.issuer}.well-known/openid-configuration` : `${config.issuer}/.well-known/openid-configuration`;
14
- }
15
- async getDiscovery() {
16
- if (this.discovery && this.config.cacheDiscovery !== false) return this.discovery;
17
- const response = await fetch(this.discoveryUrl);
18
- if (!response.ok) throw new Error(`Failed to fetch OIDC discovery: ${response.statusText}`);
19
- this.discovery = await response.json();
20
- return this.discovery;
21
- }
22
- async getJwks() {
23
- if (this.jwks && this.config.cacheDiscovery !== false) return this.jwks;
24
- const disc = await this.getDiscovery();
25
- this.jwks = jose.createRemoteJWKSet(new URL(disc.jwks_uri));
26
- return this.jwks;
27
- }
28
- async verify(token) {
29
- const key = await this.getJwks();
30
- const { payload } = await jose.jwtVerify(token, key, {
31
- issuer: this.config.issuer,
32
- audience: this.config.audience
33
- });
34
- return payload;
35
- }
36
- async verifyOrNull(token) {
37
- try {
38
- return await this.verify(token);
39
- } catch {
40
- return null;
41
- }
42
- }
43
- async fetchUserInfo(token) {
44
- try {
45
- const disc = await this.getDiscovery();
46
- if (!disc.userinfo_endpoint) return null;
47
- const response = await fetch(disc.userinfo_endpoint, { headers: { Authorization: `Bearer ${token}` } });
48
- if (!response.ok) return null;
49
- return await response.json();
50
- } catch {
51
- return null;
52
- }
53
- }
54
- clearCache() {
55
- this.discovery = null;
56
- this.jwks = null;
57
- }
58
- };
59
- //#endregion
60
- export { OidcVerifier };
1
+ import { OidcVerifier } from "./oidc-KA30gMlx.mjs";
61
2
 
62
- //# sourceMappingURL=oidc.mjs.map
3
+ export { OidcVerifier };
package/dist/server.cjs CHANGED
@@ -1,5 +1,5 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_cacheTokenStorage = require("./cacheTokenStorage.cjs");
3
- const require_tokenManager = require("./tokenManager.cjs");
1
+ const require_cacheTokenStorage = require('./cacheTokenStorage-CEpMniTi.cjs');
2
+ const require_tokenManager = require('./tokenManager-CvEMgxOp.cjs');
3
+
4
4
  exports.CacheTokenStorage = require_cacheTokenStorage.CacheTokenStorage;
5
- exports.TokenManager = require_tokenManager.TokenManager;
5
+ exports.TokenManager = require_tokenManager.TokenManager;
package/dist/server.d.cts CHANGED
@@ -1,3 +1,3 @@
1
- import { t as CacheTokenStorage } from "./cacheTokenStorage-B3u8Sf-6.cjs";
2
- import { DecodedToken, TokenManager, TokenManagerOptions, TokenPair, TokenPayload } from "./tokenManager.cjs";
3
- export { CacheTokenStorage, type DecodedToken, TokenManager, type TokenManagerOptions, type TokenPair, type TokenPayload };
1
+ import { CacheTokenStorage } from "./cacheTokenStorage-B7sOoysu.cjs";
2
+ import { DecodedToken, TokenManager, TokenManagerOptions, TokenPair, TokenPayload } from "./tokenManager-CL3yE06D.cjs";
3
+ export { CacheTokenStorage, DecodedToken, TokenManager, TokenManagerOptions, TokenPair, TokenPayload };
package/dist/server.d.mts CHANGED
@@ -1,3 +1,3 @@
1
- import { t as CacheTokenStorage } from "./cacheTokenStorage-B3u8Sf-6.mjs";
2
- import { DecodedToken, TokenManager, TokenManagerOptions, TokenPair, TokenPayload } from "./tokenManager.mjs";
3
- export { CacheTokenStorage, type DecodedToken, TokenManager, type TokenManagerOptions, type TokenPair, type TokenPayload };
1
+ import { CacheTokenStorage } from "./cacheTokenStorage-_tq4Kmhc.mjs";
2
+ import { DecodedToken, TokenManager, TokenManagerOptions, TokenPair, TokenPayload } from "./tokenManager-RrwjL0y-.mjs";
3
+ export { CacheTokenStorage, DecodedToken, TokenManager, TokenManagerOptions, TokenPair, TokenPayload };
package/dist/server.mjs CHANGED
@@ -1,3 +1,4 @@
1
- import { CacheTokenStorage } from "./cacheTokenStorage.mjs";
2
- import { TokenManager } from "./tokenManager.mjs";
3
- export { CacheTokenStorage, TokenManager };
1
+ import { CacheTokenStorage } from "./cacheTokenStorage-16NE8Cd9.mjs";
2
+ import { TokenManager } from "./tokenManager-Ci2Tgxp8.mjs";
3
+
4
+ export { CacheTokenStorage, TokenManager };
@@ -0,0 +1,40 @@
1
+ import ms from "ms";
2
+
3
+ //#region src/tokenManager.d.ts
4
+ interface TokenPayload {
5
+ userId: string;
6
+ email?: string;
7
+ [key: string]: any;
8
+ }
9
+ interface TokenPair {
10
+ accessToken: string;
11
+ refreshToken: string;
12
+ }
13
+ interface TokenManagerOptions {
14
+ accessTokenSecret: string;
15
+ refreshTokenSecret: string;
16
+ accessTokenExpiresIn?: ms.StringValue;
17
+ refreshTokenExpiresIn?: ms.StringValue;
18
+ }
19
+ interface DecodedToken extends TokenPayload {
20
+ iat: number;
21
+ exp: number;
22
+ }
23
+ declare class TokenManager {
24
+ private accessTokenSecret;
25
+ private refreshTokenSecret;
26
+ private accessTokenExpiresIn;
27
+ private refreshTokenExpiresIn;
28
+ constructor(options: TokenManagerOptions);
29
+ generateTokenPair(payload: TokenPayload): TokenPair;
30
+ verifyAccessToken(token: string): DecodedToken;
31
+ verifyRefreshToken(token: string): DecodedToken;
32
+ refreshAccessToken(refreshToken: string): string;
33
+ decodeToken(token: string): DecodedToken | null;
34
+ isTokenExpired(token: string): boolean;
35
+ getTokenExpiration(token: string): Date | null;
36
+ }
37
+ //# sourceMappingURL=tokenManager.d.ts.map
38
+ //#endregion
39
+ export { DecodedToken, TokenManager, TokenManagerOptions, TokenPair, TokenPayload };
40
+ //# sourceMappingURL=tokenManager-CL3yE06D.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenManager-CL3yE06D.d.cts","names":[],"sources":["../src/tokenManager.ts"],"sourcesContent":[],"mappings":";;;UAGiB,YAAA;;EAAA,KAAA,CAAA,EAAA,MAAA;EAMA,CAAA,GAAA,EAAA,MAAS,CAAA,EAAA,GAAA;AAK1B;AAAoC,UALnB,SAAA,CAKmB;EAAA,WAGT,EAAA,MAAA;EAAW,YACV,EAAA,MAAA;AAAW;AAGtB,UAPA,mBAAA,CAOqB;EAKzB,iBAAY,EAAA,MAAA;EAAA,kBAAA,EAAA,MAAA;EAAA,oBAMH,CAAA,EAfE,EAAA,CAAG,WAeL;EAAmB,qBAOb,CAAA,EArBH,EAAA,CAAG,WAqBA;;AAeO,UAjClB,YAAA,SAAqB,YAiCH,CAAA;EAAY,GASX,EAAA,MAAA;EAAY,GAoBnB,EAAA,MAAA;;AAgBW,cAzE3B,YAAA,CAyE2B;;;;;uBAnElB;6BAOM,eAAe;oCAeR;qCASC;;8BAoBP;;qCAgBO"}