@shware/security 2.5.3 → 3.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 (225) hide show
  1. package/dist/auth/index.cjs +519 -561
  2. package/dist/auth/index.cjs.map +1 -1
  3. package/dist/auth/index.d.cts +104 -106
  4. package/dist/auth/index.d.cts.map +1 -0
  5. package/dist/auth/index.d.mts +109 -0
  6. package/dist/auth/index.d.mts.map +1 -0
  7. package/dist/auth/index.mjs +512 -536
  8. package/dist/auth/index.mjs.map +1 -1
  9. package/dist/auth/types.cjs +0 -19
  10. package/dist/auth/types.d.cts +44 -44
  11. package/dist/auth/types.d.cts.map +1 -0
  12. package/dist/auth/types.d.mts +50 -0
  13. package/dist/auth/types.d.mts.map +1 -0
  14. package/dist/auth/types.mjs +1 -1
  15. package/dist/core/index.cjs +18 -59
  16. package/dist/core/index.cjs.map +1 -1
  17. package/dist/core/index.d.cts +13 -24
  18. package/dist/core/index.d.cts.map +1 -0
  19. package/dist/core/index.d.mts +21 -0
  20. package/dist/core/index.d.mts.map +1 -0
  21. package/dist/core/index.mjs +17 -33
  22. package/dist/core/index.mjs.map +1 -1
  23. package/dist/email/schema.cjs +13 -38
  24. package/dist/email/schema.cjs.map +1 -1
  25. package/dist/email/schema.d.cts +11 -12
  26. package/dist/email/schema.d.cts.map +1 -0
  27. package/dist/email/schema.d.mts +12 -0
  28. package/dist/email/schema.d.mts.map +1 -0
  29. package/dist/email/schema.mjs +10 -11
  30. package/dist/email/schema.mjs.map +1 -1
  31. package/dist/index.cjs +18 -54
  32. package/dist/index.d.cts +10 -15
  33. package/dist/index.d.mts +10 -0
  34. package/dist/index.mjs +5 -17
  35. package/dist/oauth2/client.cjs +109 -145
  36. package/dist/oauth2/client.cjs.map +1 -1
  37. package/dist/oauth2/client.d.cts +55 -56
  38. package/dist/oauth2/client.d.cts.map +1 -0
  39. package/dist/oauth2/client.d.mts +58 -0
  40. package/dist/oauth2/client.d.mts.map +1 -0
  41. package/dist/oauth2/client.mjs +104 -116
  42. package/dist/oauth2/client.mjs.map +1 -1
  43. package/dist/oauth2/error.cjs +19 -44
  44. package/dist/oauth2/error.cjs.map +1 -1
  45. package/dist/oauth2/error.d.cts +8 -6
  46. package/dist/oauth2/error.d.cts.map +1 -0
  47. package/dist/oauth2/{error.d.ts → error.d.mts} +8 -6
  48. package/dist/oauth2/error.d.mts.map +1 -0
  49. package/dist/oauth2/error.mjs +18 -19
  50. package/dist/oauth2/error.mjs.map +1 -1
  51. package/dist/oauth2/provider/apple.cjs +75 -88
  52. package/dist/oauth2/provider/apple.cjs.map +1 -1
  53. package/dist/oauth2/provider/apple.d.cts +31 -30
  54. package/dist/oauth2/provider/apple.d.cts.map +1 -0
  55. package/dist/oauth2/provider/apple.d.mts +42 -0
  56. package/dist/oauth2/provider/apple.d.mts.map +1 -0
  57. package/dist/oauth2/provider/apple.mjs +71 -60
  58. package/dist/oauth2/provider/apple.mjs.map +1 -1
  59. package/dist/oauth2/provider/common.cjs +86 -109
  60. package/dist/oauth2/provider/common.cjs.map +1 -1
  61. package/dist/oauth2/provider/common.d.cts +19 -18
  62. package/dist/oauth2/provider/common.d.cts.map +1 -0
  63. package/dist/oauth2/provider/common.d.mts +30 -0
  64. package/dist/oauth2/provider/common.d.mts.map +1 -0
  65. package/dist/oauth2/provider/common.mjs +80 -79
  66. package/dist/oauth2/provider/common.mjs.map +1 -1
  67. package/dist/oauth2/provider/facebook.cjs +93 -109
  68. package/dist/oauth2/provider/facebook.cjs.map +1 -1
  69. package/dist/oauth2/provider/facebook.d.cts +29 -28
  70. package/dist/oauth2/provider/facebook.d.cts.map +1 -0
  71. package/dist/oauth2/provider/facebook.d.mts +45 -0
  72. package/dist/oauth2/provider/facebook.d.mts.map +1 -0
  73. package/dist/oauth2/provider/facebook.mjs +89 -81
  74. package/dist/oauth2/provider/facebook.mjs.map +1 -1
  75. package/dist/oauth2/provider/github.cjs +64 -91
  76. package/dist/oauth2/provider/github.cjs.map +1 -1
  77. package/dist/oauth2/provider/github.d.cts +52 -51
  78. package/dist/oauth2/provider/github.d.cts.map +1 -0
  79. package/dist/oauth2/provider/github.d.mts +60 -0
  80. package/dist/oauth2/provider/github.d.mts.map +1 -0
  81. package/dist/oauth2/provider/github.mjs +60 -63
  82. package/dist/oauth2/provider/github.mjs.map +1 -1
  83. package/dist/oauth2/provider/google.cjs +105 -122
  84. package/dist/oauth2/provider/google.cjs.map +1 -1
  85. package/dist/oauth2/provider/google.d.cts +34 -33
  86. package/dist/oauth2/provider/google.d.cts.map +1 -0
  87. package/dist/oauth2/provider/google.d.mts +44 -0
  88. package/dist/oauth2/provider/google.d.mts.map +1 -0
  89. package/dist/oauth2/provider/google.mjs +101 -94
  90. package/dist/oauth2/provider/google.mjs.map +1 -1
  91. package/dist/oauth2/provider/index.cjs +13 -46
  92. package/dist/oauth2/provider/index.d.cts +7 -7
  93. package/dist/oauth2/provider/index.d.mts +7 -0
  94. package/dist/oauth2/provider/index.mjs +1 -10
  95. package/dist/oauth2/provider/wechat.cjs +77 -99
  96. package/dist/oauth2/provider/wechat.cjs.map +1 -1
  97. package/dist/oauth2/provider/wechat.d.cts +28 -27
  98. package/dist/oauth2/provider/wechat.d.cts.map +1 -0
  99. package/dist/oauth2/provider/wechat.d.mts +39 -0
  100. package/dist/oauth2/provider/wechat.d.mts.map +1 -0
  101. package/dist/oauth2/provider/wechat.mjs +74 -72
  102. package/dist/oauth2/provider/wechat.mjs.map +1 -1
  103. package/dist/oauth2/provider/x.cjs +102 -125
  104. package/dist/oauth2/provider/x.cjs.map +1 -1
  105. package/dist/oauth2/provider/x.d.cts +51 -50
  106. package/dist/oauth2/provider/x.d.cts.map +1 -0
  107. package/dist/oauth2/provider/x.d.mts +69 -0
  108. package/dist/oauth2/provider/x.d.mts.map +1 -0
  109. package/dist/oauth2/provider/x.mjs +99 -103
  110. package/dist/oauth2/provider/x.mjs.map +1 -1
  111. package/dist/oauth2/types.cjs +12 -37
  112. package/dist/oauth2/types.cjs.map +1 -1
  113. package/dist/oauth2/types.d.cts +176 -180
  114. package/dist/oauth2/types.d.cts.map +1 -0
  115. package/dist/oauth2/types.d.mts +207 -0
  116. package/dist/oauth2/types.d.mts.map +1 -0
  117. package/dist/oauth2/types.mjs +12 -13
  118. package/dist/oauth2/types.mjs.map +1 -1
  119. package/dist/session/common.cjs +17 -43
  120. package/dist/session/common.cjs.map +1 -1
  121. package/dist/session/common.d.cts +4 -4
  122. package/dist/session/common.d.cts.map +1 -0
  123. package/dist/session/{common.d.ts → common.d.mts} +4 -4
  124. package/dist/session/common.d.mts.map +1 -0
  125. package/dist/session/common.mjs +14 -16
  126. package/dist/session/common.mjs.map +1 -1
  127. package/dist/session/db.cjs +88 -123
  128. package/dist/session/db.cjs.map +1 -1
  129. package/dist/session/db.d.cts +36 -36
  130. package/dist/session/db.d.cts.map +1 -0
  131. package/dist/session/db.d.mts +44 -0
  132. package/dist/session/db.d.mts.map +1 -0
  133. package/dist/session/db.mjs +84 -95
  134. package/dist/session/db.mjs.map +1 -1
  135. package/dist/session/map-session.cjs +71 -103
  136. package/dist/session/map-session.cjs.map +1 -1
  137. package/dist/session/map-session.d.cts +24 -24
  138. package/dist/session/map-session.d.cts.map +1 -0
  139. package/dist/session/map-session.d.mts +27 -0
  140. package/dist/session/map-session.d.mts.map +1 -0
  141. package/dist/session/map-session.mjs +70 -78
  142. package/dist/session/map-session.mjs.map +1 -1
  143. package/dist/session/redis.cjs +270 -319
  144. package/dist/session/redis.cjs.map +1 -1
  145. package/dist/session/redis.d.cts +51 -51
  146. package/dist/session/redis.d.cts.map +1 -0
  147. package/dist/session/redis.d.mts +58 -0
  148. package/dist/session/redis.d.mts.map +1 -0
  149. package/dist/session/redis.mjs +266 -291
  150. package/dist/session/redis.mjs.map +1 -1
  151. package/dist/session/types.cjs +0 -19
  152. package/dist/session/types.d.cts +34 -33
  153. package/dist/session/types.d.cts.map +1 -0
  154. package/dist/session/types.d.mts +45 -0
  155. package/dist/session/types.d.mts.map +1 -0
  156. package/dist/session/types.mjs +1 -1
  157. package/dist/utils/http.cjs +31 -55
  158. package/dist/utils/http.cjs.map +1 -1
  159. package/dist/utils/http.d.cts +7 -10
  160. package/dist/utils/http.d.cts.map +1 -0
  161. package/dist/utils/{http.d.ts → http.d.mts} +7 -10
  162. package/dist/utils/http.d.mts.map +1 -0
  163. package/dist/utils/http.mjs +24 -24
  164. package/dist/utils/http.mjs.map +1 -1
  165. package/dist/utils/oauth2.cjs +6 -30
  166. package/dist/utils/oauth2.cjs.map +1 -1
  167. package/dist/utils/oauth2.d.cts +3 -1
  168. package/dist/utils/oauth2.d.cts.map +1 -0
  169. package/dist/utils/oauth2.d.mts +5 -0
  170. package/dist/utils/oauth2.d.mts.map +1 -0
  171. package/dist/utils/oauth2.mjs +5 -5
  172. package/dist/utils/oauth2.mjs.map +1 -1
  173. package/dist/utils/timing.cjs +49 -70
  174. package/dist/utils/timing.cjs.map +1 -1
  175. package/dist/utils/timing.d.cts +10 -8
  176. package/dist/utils/timing.d.cts.map +1 -0
  177. package/dist/utils/timing.d.mts +15 -0
  178. package/dist/utils/timing.d.mts.map +1 -0
  179. package/dist/utils/timing.mjs +48 -45
  180. package/dist/utils/timing.mjs.map +1 -1
  181. package/dist/utils/valid.cjs +50 -71
  182. package/dist/utils/valid.cjs.map +1 -1
  183. package/dist/utils/valid.d.cts +17 -16
  184. package/dist/utils/valid.d.cts.map +1 -0
  185. package/dist/utils/valid.d.mts +28 -0
  186. package/dist/utils/valid.d.mts.map +1 -0
  187. package/dist/utils/valid.mjs +47 -44
  188. package/dist/utils/valid.mjs.map +1 -1
  189. package/package.json +22 -12
  190. package/dist/auth/index.d.ts +0 -111
  191. package/dist/auth/types.cjs.map +0 -1
  192. package/dist/auth/types.d.ts +0 -50
  193. package/dist/auth/types.mjs.map +0 -1
  194. package/dist/core/index.d.ts +0 -32
  195. package/dist/email/schema.d.ts +0 -13
  196. package/dist/index.cjs.map +0 -1
  197. package/dist/index.d.ts +0 -15
  198. package/dist/index.mjs.map +0 -1
  199. package/dist/oauth2/client.d.ts +0 -59
  200. package/dist/oauth2/provider/apple.d.ts +0 -41
  201. package/dist/oauth2/provider/common.d.ts +0 -29
  202. package/dist/oauth2/provider/facebook.d.ts +0 -44
  203. package/dist/oauth2/provider/github.d.ts +0 -59
  204. package/dist/oauth2/provider/google.d.ts +0 -43
  205. package/dist/oauth2/provider/index.cjs.map +0 -1
  206. package/dist/oauth2/provider/index.d.ts +0 -7
  207. package/dist/oauth2/provider/index.mjs.map +0 -1
  208. package/dist/oauth2/provider/wechat.d.ts +0 -38
  209. package/dist/oauth2/provider/x.d.ts +0 -68
  210. package/dist/oauth2/types.d.ts +0 -211
  211. package/dist/session/__tests__/redis.test.cjs +0 -247
  212. package/dist/session/__tests__/redis.test.cjs.map +0 -1
  213. package/dist/session/__tests__/redis.test.d.cts +0 -2
  214. package/dist/session/__tests__/redis.test.d.ts +0 -2
  215. package/dist/session/__tests__/redis.test.mjs +0 -252
  216. package/dist/session/__tests__/redis.test.mjs.map +0 -1
  217. package/dist/session/db.d.ts +0 -44
  218. package/dist/session/map-session.d.ts +0 -27
  219. package/dist/session/redis.d.ts +0 -58
  220. package/dist/session/types.cjs.map +0 -1
  221. package/dist/session/types.d.ts +0 -44
  222. package/dist/session/types.mjs.map +0 -1
  223. package/dist/utils/oauth2.d.ts +0 -3
  224. package/dist/utils/timing.d.ts +0 -13
  225. package/dist/utils/valid.d.ts +0 -27
@@ -1,41 +1,16 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/email/schema.ts
21
- var schema_exports = {};
22
- __export(schema_exports, {
23
- loginEmailSchema: () => loginEmailSchema,
24
- sendEmailVerificationCodeSchema: () => sendEmailVerificationCodeSchema
25
- });
26
- module.exports = __toCommonJS(schema_exports);
27
- var import_mini = require("zod/mini");
28
- var sendEmailVerificationCodeSchema = (0, import_mini.object)({
29
- email: (0, import_mini.email)().check((0, import_mini.maxLength)(320)),
30
- turnstileToken: (0, import_mini.string)().check((0, import_mini.maxLength)(2048))
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ let zod_mini = require("zod/mini");
3
+ //#region src/email/schema.ts
4
+ const sendEmailVerificationCodeSchema = (0, zod_mini.object)({
5
+ email: (0, zod_mini.email)().check((0, zod_mini.maxLength)(320)),
6
+ turnstileToken: (0, zod_mini.string)().check((0, zod_mini.maxLength)(2048))
31
7
  });
32
- var loginEmailSchema = (0, import_mini.object)({
33
- email: (0, import_mini.email)().check((0, import_mini.maxLength)(320)),
34
- verificationCode: (0, import_mini.string)().check((0, import_mini.regex)(/^\d{6}$/))
35
- });
36
- // Annotate the CommonJS export names for ESM import in node:
37
- 0 && (module.exports = {
38
- loginEmailSchema,
39
- sendEmailVerificationCodeSchema
8
+ const loginEmailSchema = (0, zod_mini.object)({
9
+ email: (0, zod_mini.email)().check((0, zod_mini.maxLength)(320)),
10
+ verificationCode: (0, zod_mini.string)().check((0, zod_mini.regex)(/^\d{6}$/))
40
11
  });
12
+ //#endregion
13
+ exports.loginEmailSchema = loginEmailSchema;
14
+ exports.sendEmailVerificationCodeSchema = sendEmailVerificationCodeSchema;
15
+
41
16
  //# sourceMappingURL=schema.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/email/schema.ts"],"sourcesContent":["import { email, maxLength, object, regex, string } from 'zod/mini';\n\nexport const sendEmailVerificationCodeSchema = object({\n email: email().check(maxLength(320)),\n turnstileToken: string().check(maxLength(2048)),\n});\n\nexport const loginEmailSchema = object({\n email: email().check(maxLength(320)),\n verificationCode: string().check(regex(/^\\d{6}$/)),\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAwD;AAEjD,IAAM,sCAAkC,oBAAO;AAAA,EACpD,WAAO,mBAAM,EAAE,UAAM,uBAAU,GAAG,CAAC;AAAA,EACnC,oBAAgB,oBAAO,EAAE,UAAM,uBAAU,IAAI,CAAC;AAChD,CAAC;AAEM,IAAM,uBAAmB,oBAAO;AAAA,EACrC,WAAO,mBAAM,EAAE,UAAM,uBAAU,GAAG,CAAC;AAAA,EACnC,sBAAkB,oBAAO,EAAE,UAAM,mBAAM,SAAS,CAAC;AACnD,CAAC;","names":[]}
1
+ {"version":3,"file":"schema.cjs","names":[],"sources":["../../src/email/schema.ts"],"sourcesContent":["import { email, maxLength, object, regex, string } from 'zod/mini';\n\nexport const sendEmailVerificationCodeSchema = object({\n email: email().check(maxLength(320)),\n turnstileToken: string().check(maxLength(2048)),\n});\n\nexport const loginEmailSchema = object({\n email: email().check(maxLength(320)),\n verificationCode: string().check(regex(/^\\d{6}$/)),\n});\n"],"mappings":";;;AAEA,MAAa,mCAAA,GAAA,SAAA,OAAA,CAAyC;CACpD,QAAA,GAAA,SAAA,MAAA,CAAa,CAAC,CAAC,OAAA,GAAA,SAAA,UAAA,CAAgB,GAAG,CAAC;CACnC,iBAAA,GAAA,SAAA,OAAA,CAAuB,CAAC,CAAC,OAAA,GAAA,SAAA,UAAA,CAAgB,IAAI,CAAC;AAChD,CAAC;AAED,MAAa,oBAAA,GAAA,SAAA,OAAA,CAA0B;CACrC,QAAA,GAAA,SAAA,MAAA,CAAa,CAAC,CAAC,OAAA,GAAA,SAAA,UAAA,CAAgB,GAAG,CAAC;CACnC,mBAAA,GAAA,SAAA,OAAA,CAAyB,CAAC,CAAC,OAAA,GAAA,SAAA,MAAA,CAAY,SAAS,CAAC;AACnD,CAAC"}
@@ -1,13 +1,12 @@
1
- import * as zod_v4_core from 'zod/v4/core';
2
- import * as zod_mini from 'zod/mini';
3
-
4
- declare const sendEmailVerificationCodeSchema: zod_mini.ZodMiniObject<{
5
- email: zod_mini.ZodMiniEmail;
6
- turnstileToken: zod_mini.ZodMiniString<string>;
7
- }, zod_v4_core.$strip>;
8
- declare const loginEmailSchema: zod_mini.ZodMiniObject<{
9
- email: zod_mini.ZodMiniEmail;
10
- verificationCode: zod_mini.ZodMiniString<string>;
11
- }, zod_v4_core.$strip>;
12
-
1
+ //#region src/email/schema.d.ts
2
+ declare const sendEmailVerificationCodeSchema: import("zod/mini").ZodMiniObject<{
3
+ email: import("zod/mini").ZodMiniEmail;
4
+ turnstileToken: import("zod/mini").ZodMiniString<string>;
5
+ }, import("zod/v4/core").$strip>;
6
+ declare const loginEmailSchema: import("zod/mini").ZodMiniObject<{
7
+ email: import("zod/mini").ZodMiniEmail;
8
+ verificationCode: import("zod/mini").ZodMiniString<string>;
9
+ }, import("zod/v4/core").$strip>;
10
+ //#endregion
13
11
  export { loginEmailSchema, sendEmailVerificationCodeSchema };
12
+ //# sourceMappingURL=schema.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.cts","names":[],"sources":["../../src/email/schema.ts"],"mappings":";cAEa,oDAA+B;;;;cAK/B,qCAAgB"}
@@ -0,0 +1,12 @@
1
+ //#region src/email/schema.d.ts
2
+ declare const sendEmailVerificationCodeSchema: import("zod/mini").ZodMiniObject<{
3
+ email: import("zod/mini").ZodMiniEmail;
4
+ turnstileToken: import("zod/mini").ZodMiniString<string>;
5
+ }, import("zod/v4/core").$strip>;
6
+ declare const loginEmailSchema: import("zod/mini").ZodMiniObject<{
7
+ email: import("zod/mini").ZodMiniEmail;
8
+ verificationCode: import("zod/mini").ZodMiniString<string>;
9
+ }, import("zod/v4/core").$strip>;
10
+ //#endregion
11
+ export { loginEmailSchema, sendEmailVerificationCodeSchema };
12
+ //# sourceMappingURL=schema.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.mts","names":[],"sources":["../../src/email/schema.ts"],"mappings":";cAEa,oDAA+B;;;;cAK/B,qCAAgB"}
@@ -1,15 +1,14 @@
1
- // src/email/schema.ts
2
1
  import { email, maxLength, object, regex, string } from "zod/mini";
3
- var sendEmailVerificationCodeSchema = object({
4
- email: email().check(maxLength(320)),
5
- turnstileToken: string().check(maxLength(2048))
2
+ //#region src/email/schema.ts
3
+ const sendEmailVerificationCodeSchema = object({
4
+ email: email().check(maxLength(320)),
5
+ turnstileToken: string().check(maxLength(2048))
6
6
  });
7
- var loginEmailSchema = object({
8
- email: email().check(maxLength(320)),
9
- verificationCode: string().check(regex(/^\d{6}$/))
7
+ const loginEmailSchema = object({
8
+ email: email().check(maxLength(320)),
9
+ verificationCode: string().check(regex(/^\d{6}$/))
10
10
  });
11
- export {
12
- loginEmailSchema,
13
- sendEmailVerificationCodeSchema
14
- };
11
+ //#endregion
12
+ export { loginEmailSchema, sendEmailVerificationCodeSchema };
13
+
15
14
  //# sourceMappingURL=schema.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/email/schema.ts"],"sourcesContent":["import { email, maxLength, object, regex, string } from 'zod/mini';\n\nexport const sendEmailVerificationCodeSchema = object({\n email: email().check(maxLength(320)),\n turnstileToken: string().check(maxLength(2048)),\n});\n\nexport const loginEmailSchema = object({\n email: email().check(maxLength(320)),\n verificationCode: string().check(regex(/^\\d{6}$/)),\n});\n"],"mappings":";AAAA,SAAS,OAAO,WAAW,QAAQ,OAAO,cAAc;AAEjD,IAAM,kCAAkC,OAAO;AAAA,EACpD,OAAO,MAAM,EAAE,MAAM,UAAU,GAAG,CAAC;AAAA,EACnC,gBAAgB,OAAO,EAAE,MAAM,UAAU,IAAI,CAAC;AAChD,CAAC;AAEM,IAAM,mBAAmB,OAAO;AAAA,EACrC,OAAO,MAAM,EAAE,MAAM,UAAU,GAAG,CAAC;AAAA,EACnC,kBAAkB,OAAO,EAAE,MAAM,MAAM,SAAS,CAAC;AACnD,CAAC;","names":[]}
1
+ {"version":3,"file":"schema.mjs","names":[],"sources":["../../src/email/schema.ts"],"sourcesContent":["import { email, maxLength, object, regex, string } from 'zod/mini';\n\nexport const sendEmailVerificationCodeSchema = object({\n email: email().check(maxLength(320)),\n turnstileToken: string().check(maxLength(2048)),\n});\n\nexport const loginEmailSchema = object({\n email: email().check(maxLength(320)),\n verificationCode: string().check(regex(/^\\d{6}$/)),\n});\n"],"mappings":";;AAEA,MAAa,kCAAkC,OAAO;CACpD,OAAO,MAAM,CAAC,CAAC,MAAM,UAAU,GAAG,CAAC;CACnC,gBAAgB,OAAO,CAAC,CAAC,MAAM,UAAU,IAAI,CAAC;AAChD,CAAC;AAED,MAAa,mBAAmB,OAAO;CACrC,OAAO,MAAM,CAAC,CAAC,MAAM,UAAU,GAAG,CAAC;CACnC,kBAAkB,OAAO,CAAC,CAAC,MAAM,MAAM,SAAS,CAAC;AACnD,CAAC"}
package/dist/index.cjs CHANGED
@@ -1,54 +1,18 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/index.ts
21
- var index_exports = {};
22
- __export(index_exports, {
23
- ALL_PROVIDERS: () => import_core.ALL_PROVIDERS,
24
- Auth: () => import_auth.Auth,
25
- DBIndexedSessionRepository: () => import_db.DBIndexedSessionRepository,
26
- OAuth2Client: () => import_client.OAuth2Client,
27
- PATH: () => import_auth.PATH,
28
- PRINCIPAL_NAME_INDEX_NAME: () => import_common.PRINCIPAL_NAME_INDEX_NAME,
29
- Provider: () => import_core.Provider,
30
- RedisIndexedSessionRepository: () => import_redis.RedisIndexedSessionRepository,
31
- RedisKVRepository: () => import_redis.RedisKVRepository,
32
- oauth2RedirectQuerySchema: () => import_client.oauth2RedirectQuerySchema
33
- });
34
- module.exports = __toCommonJS(index_exports);
35
- var import_auth = require("./auth/index.cjs");
36
- var import_client = require("./oauth2/client.cjs");
37
- var import_redis = require("./session/redis.cjs");
38
- var import_db = require("./session/db.cjs");
39
- var import_common = require("./session/common.cjs");
40
- var import_core = require("./core/index.cjs");
41
- // Annotate the CommonJS export names for ESM import in node:
42
- 0 && (module.exports = {
43
- ALL_PROVIDERS,
44
- Auth,
45
- DBIndexedSessionRepository,
46
- OAuth2Client,
47
- PATH,
48
- PRINCIPAL_NAME_INDEX_NAME,
49
- Provider,
50
- RedisIndexedSessionRepository,
51
- RedisKVRepository,
52
- oauth2RedirectQuerySchema
53
- });
54
- //# sourceMappingURL=index.cjs.map
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_oauth2_client = require("./oauth2/client.cjs");
3
+ const require_session_common = require("./session/common.cjs");
4
+ const require_auth_index = require("./auth/index.cjs");
5
+ const require_session_redis = require("./session/redis.cjs");
6
+ const require_session_db = require("./session/db.cjs");
7
+ const require_core_index = require("./core/index.cjs");
8
+ const require_oauth2_types = require("./oauth2/types.cjs");
9
+ exports.Auth = require_auth_index.Auth;
10
+ exports.DBIndexedSessionRepository = require_session_db.DBIndexedSessionRepository;
11
+ exports.OAuth2Client = require_oauth2_client.OAuth2Client;
12
+ exports.OIDC_SCOPES = require_oauth2_types.OIDC_SCOPES;
13
+ exports.PATH = require_auth_index.PATH;
14
+ exports.PRINCIPAL_NAME_INDEX_NAME = require_session_common.PRINCIPAL_NAME_INDEX_NAME;
15
+ exports.PROVIDERS = require_core_index.PROVIDERS;
16
+ exports.RedisIndexedSessionRepository = require_session_redis.RedisIndexedSessionRepository;
17
+ exports.RedisKVRepository = require_session_redis.RedisKVRepository;
18
+ exports.oauth2RedirectQuerySchema = require_oauth2_client.oauth2RedirectQuerySchema;
package/dist/index.d.cts CHANGED
@@ -1,15 +1,10 @@
1
- export { Auth, PATH } from './auth/index.cjs';
2
- export { OAuth2Client, oauth2RedirectQuerySchema } from './oauth2/client.cjs';
3
- export { RedisIndexedSessionRepository, RedisKVRepository } from './session/redis.cjs';
4
- export { DBAdapter, DBIndexedSessionRepository } from './session/db.cjs';
5
- export { PRINCIPAL_NAME_INDEX_NAME } from './session/common.cjs';
6
- export { ALL_PROVIDERS, CsrfToken, Principal, Provider } from './core/index.cjs';
7
- export { KVRepository, Namespace, Session, SessionRepository } from './session/types.cjs';
8
- export { NativeCredential, OAuth2Token, OidcScopes, OidcToken, StandardClaims, UserInfo } from './oauth2/types.cjs';
9
- export { AuthConfig, AuthService } from './auth/types.cjs';
10
- import 'zod/v4/core';
11
- import 'zod/mini';
12
- import 'ioredis';
13
- import './session/map-session.cjs';
14
- import './utils/http.cjs';
15
- import 'cookie';
1
+ import { CsrfToken, PROVIDERS, Principal, Provider } from "./core/index.cjs";
2
+ import { KVRepository, Namespace, Session, SessionRepository } from "./session/types.cjs";
3
+ import { NativeCredential, OAuth2Token, OIDC_SCOPES, OidcScope, OidcToken, StandardClaims, UserInfo } from "./oauth2/types.cjs";
4
+ import { AuthConfig, AuthService } from "./auth/types.cjs";
5
+ import { Auth, PATH } from "./auth/index.cjs";
6
+ import { OAuth2Client, oauth2RedirectQuerySchema } from "./oauth2/client.cjs";
7
+ import { RedisIndexedSessionRepository, RedisKVRepository } from "./session/redis.cjs";
8
+ import { DBAdapter, DBIndexedSessionRepository } from "./session/db.cjs";
9
+ import { PRINCIPAL_NAME_INDEX_NAME } from "./session/common.cjs";
10
+ export { Auth, type AuthConfig, type AuthService, type CsrfToken, type DBAdapter, DBIndexedSessionRepository, type KVRepository, type Namespace, type NativeCredential, OAuth2Client, type OAuth2Token, OIDC_SCOPES, type OidcScope, type OidcToken, PATH, PRINCIPAL_NAME_INDEX_NAME, PROVIDERS, type Principal, type Provider, RedisIndexedSessionRepository, RedisKVRepository, type Session, type SessionRepository, type StandardClaims, type UserInfo, oauth2RedirectQuerySchema };
@@ -0,0 +1,10 @@
1
+ import { CsrfToken, PROVIDERS, Principal, Provider } from "./core/index.mjs";
2
+ import { KVRepository, Namespace, Session, SessionRepository } from "./session/types.mjs";
3
+ import { NativeCredential, OAuth2Token, OIDC_SCOPES, OidcScope, OidcToken, StandardClaims, UserInfo } from "./oauth2/types.mjs";
4
+ import { AuthConfig, AuthService } from "./auth/types.mjs";
5
+ import { Auth, PATH } from "./auth/index.mjs";
6
+ import { OAuth2Client, oauth2RedirectQuerySchema } from "./oauth2/client.mjs";
7
+ import { RedisIndexedSessionRepository, RedisKVRepository } from "./session/redis.mjs";
8
+ import { DBAdapter, DBIndexedSessionRepository } from "./session/db.mjs";
9
+ import { PRINCIPAL_NAME_INDEX_NAME } from "./session/common.mjs";
10
+ export { Auth, type AuthConfig, type AuthService, type CsrfToken, type DBAdapter, DBIndexedSessionRepository, type KVRepository, type Namespace, type NativeCredential, OAuth2Client, type OAuth2Token, OIDC_SCOPES, type OidcScope, type OidcToken, PATH, PRINCIPAL_NAME_INDEX_NAME, PROVIDERS, type Principal, type Provider, RedisIndexedSessionRepository, RedisKVRepository, type Session, type SessionRepository, type StandardClaims, type UserInfo, oauth2RedirectQuerySchema };
package/dist/index.mjs CHANGED
@@ -1,20 +1,8 @@
1
- // src/index.ts
2
- import { Auth, PATH } from "./auth/index.mjs";
3
1
  import { OAuth2Client, oauth2RedirectQuerySchema } from "./oauth2/client.mjs";
2
+ import { PRINCIPAL_NAME_INDEX_NAME } from "./session/common.mjs";
3
+ import { Auth, PATH } from "./auth/index.mjs";
4
4
  import { RedisIndexedSessionRepository, RedisKVRepository } from "./session/redis.mjs";
5
5
  import { DBIndexedSessionRepository } from "./session/db.mjs";
6
- import { PRINCIPAL_NAME_INDEX_NAME } from "./session/common.mjs";
7
- import { Provider, ALL_PROVIDERS } from "./core/index.mjs";
8
- export {
9
- ALL_PROVIDERS,
10
- Auth,
11
- DBIndexedSessionRepository,
12
- OAuth2Client,
13
- PATH,
14
- PRINCIPAL_NAME_INDEX_NAME,
15
- Provider,
16
- RedisIndexedSessionRepository,
17
- RedisKVRepository,
18
- oauth2RedirectQuerySchema
19
- };
20
- //# sourceMappingURL=index.mjs.map
6
+ import { PROVIDERS } from "./core/index.mjs";
7
+ import { OIDC_SCOPES } from "./oauth2/types.mjs";
8
+ export { Auth, DBIndexedSessionRepository, OAuth2Client, OIDC_SCOPES, PATH, PRINCIPAL_NAME_INDEX_NAME, PROVIDERS, RedisIndexedSessionRepository, RedisKVRepository, oauth2RedirectQuerySchema };
@@ -1,150 +1,114 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/oauth2/client.ts
21
- var client_exports = {};
22
- __export(client_exports, {
23
- OAuth2Client: () => OAuth2Client,
24
- googleOneTapSchema: () => googleOneTapSchema,
25
- oauth2RedirectQuerySchema: () => oauth2RedirectQuerySchema
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ let _shware_utils = require("@shware/utils");
3
+ let zod_v4_mini = require("zod/v4-mini");
4
+ //#region src/oauth2/client.ts
5
+ const oauth2RedirectQuerySchema = (0, zod_v4_mini.object)({
6
+ code: (0, zod_v4_mini.optional)((0, zod_v4_mini.string)()),
7
+ state: (0, zod_v4_mini.optional)((0, zod_v4_mini.string)()),
8
+ error: (0, zod_v4_mini.optional)((0, zod_v4_mini.string)()),
9
+ error_description: (0, zod_v4_mini.optional)((0, zod_v4_mini.string)()),
10
+ error_uri: (0, zod_v4_mini.optional)((0, zod_v4_mini.string)())
26
11
  });
27
- module.exports = __toCommonJS(client_exports);
28
- var import_utils = require("@shware/utils");
29
- var import_v4_mini = require("zod/v4-mini");
30
- var oauth2RedirectQuerySchema = (0, import_v4_mini.object)({
31
- code: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
32
- state: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
33
- error: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
34
- error_description: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
35
- error_uri: (0, import_v4_mini.optional)((0, import_v4_mini.string)())
36
- });
37
- var googleOneTapSchema = (0, import_v4_mini.object)({
38
- // login_uri
39
- code: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
40
- state: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
41
- error: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
42
- error_description: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
43
- error_uri: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
44
- nonce: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
45
- g_csrf_token: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
46
- hd: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
47
- // callback
48
- credential: (0, import_v4_mini.optional)((0, import_v4_mini.string)())
12
+ const googleOneTapSchema = (0, zod_v4_mini.object)({
13
+ code: (0, zod_v4_mini.optional)((0, zod_v4_mini.string)()),
14
+ state: (0, zod_v4_mini.optional)((0, zod_v4_mini.string)()),
15
+ error: (0, zod_v4_mini.optional)((0, zod_v4_mini.string)()),
16
+ error_description: (0, zod_v4_mini.optional)((0, zod_v4_mini.string)()),
17
+ error_uri: (0, zod_v4_mini.optional)((0, zod_v4_mini.string)()),
18
+ nonce: (0, zod_v4_mini.optional)((0, zod_v4_mini.string)()),
19
+ g_csrf_token: (0, zod_v4_mini.optional)((0, zod_v4_mini.string)()),
20
+ hd: (0, zod_v4_mini.optional)((0, zod_v4_mini.string)()),
21
+ credential: (0, zod_v4_mini.optional)((0, zod_v4_mini.string)())
49
22
  });
50
23
  var OAuth2Client = class {
51
- config;
52
- constructor(config) {
53
- this.config = config;
54
- }
55
- get baseUri() {
56
- return this.config.baseUri;
57
- }
58
- get successUri() {
59
- return this.config.successUri;
60
- }
61
- get errorUri() {
62
- return this.config.errorUri;
63
- }
64
- async getClientConfig(registrationId) {
65
- const registrations = typeof this.config.registration === "function" ? await this.config.registration() : this.config.registration;
66
- const registration = registrations[registrationId];
67
- (0, import_utils.invariant)(registration, `Registration ${registrationId} not found`);
68
- const provider = this.config.provider[registration.provider ?? registrationId];
69
- (0, import_utils.invariant)(provider, `Provider ${registration.provider ?? registrationId} not found`);
70
- return { registration, provider };
71
- }
72
- async createAuthorizationUri({
73
- registrationId,
74
- state,
75
- pkce
76
- }) {
77
- const { provider, registration } = await this.getClientConfig(registrationId);
78
- const { baseUri } = this.config;
79
- const { scope, clientId, redirectUri } = registration;
80
- return provider.createAuthorizationUri({
81
- pkce,
82
- state,
83
- scope,
84
- clientId,
85
- redirectUri: redirectUri ?? `${baseUri}/login/oauth2/code/${registrationId}`
86
- });
87
- }
88
- async exchangeAuthorizationCode({
89
- registrationId,
90
- code,
91
- pkce
92
- }) {
93
- const { provider, registration } = await this.getClientConfig(registrationId);
94
- const { baseUri } = this.config;
95
- const { clientId, clientSecret, redirectUri } = registration;
96
- return provider.exchangeAuthorizationCode({
97
- code,
98
- pkce,
99
- clientId,
100
- clientSecret,
101
- redirectUri: redirectUri ?? `${baseUri}/login/oauth2/code/${registrationId}`
102
- });
103
- }
104
- async getUserInfo({
105
- registrationId,
106
- token
107
- }) {
108
- const { provider } = await this.getClientConfig(registrationId);
109
- return provider.getUserInfo(token);
110
- }
111
- async refreshAccessToken({
112
- registrationId,
113
- refreshToken
114
- }) {
115
- const { provider, registration } = await this.getClientConfig(registrationId);
116
- const { clientId, clientSecret } = registration;
117
- (0, import_utils.invariant)(provider.refreshAccessToken, "Provider does not support refreshAccessToken");
118
- return provider.refreshAccessToken({ refreshToken, clientId, clientSecret });
119
- }
120
- async revokeToken(registrationId, token) {
121
- const { provider, registration } = await this.getClientConfig(registrationId);
122
- const { clientId, clientSecret } = registration;
123
- (0, import_utils.invariant)(provider.revokeToken, "Provider does not support revokeToken");
124
- await provider.revokeToken({ token, clientId, clientSecret });
125
- }
126
- async loginOAuth2Native({
127
- registrationId,
128
- credentials,
129
- pkce
130
- }) {
131
- const { provider, registration } = await this.getClientConfig(registrationId);
132
- (0, import_utils.invariant)(provider.loginOAuth2Native, "Provider does not support loginOAuth2Native");
133
- const { baseUri } = this.config;
134
- const { clientId, clientSecret, redirectUri } = registration;
135
- return provider.loginOAuth2Native({
136
- clientId,
137
- clientSecret,
138
- redirectUri: redirectUri ?? `${baseUri}/login/oauth2/code/${registrationId}`,
139
- credentials,
140
- pkce
141
- });
142
- }
24
+ config;
25
+ constructor(config) {
26
+ this.config = config;
27
+ }
28
+ get baseUri() {
29
+ return this.config.baseUri;
30
+ }
31
+ get successUri() {
32
+ return this.config.successUri;
33
+ }
34
+ get errorUri() {
35
+ return this.config.errorUri;
36
+ }
37
+ async getClientConfig(registrationId) {
38
+ const registration = (typeof this.config.registration === "function" ? await this.config.registration() : this.config.registration)[registrationId];
39
+ (0, _shware_utils.invariant)(registration, `Registration ${registrationId} not found`);
40
+ const provider = this.config.provider[registration.provider ?? registrationId];
41
+ (0, _shware_utils.invariant)(provider, `Provider ${registration.provider ?? registrationId} not found`);
42
+ return {
43
+ registration,
44
+ provider
45
+ };
46
+ }
47
+ async createAuthorizationUri({ registrationId, state, pkce }) {
48
+ const { provider, registration } = await this.getClientConfig(registrationId);
49
+ const { baseUri } = this.config;
50
+ const { scope, clientId, redirectUri } = registration;
51
+ return provider.createAuthorizationUri({
52
+ pkce,
53
+ state,
54
+ scope,
55
+ clientId,
56
+ redirectUri: redirectUri ?? `${baseUri}/login/oauth2/code/${registrationId}`
57
+ });
58
+ }
59
+ async exchangeAuthorizationCode({ registrationId, code, pkce }) {
60
+ const { provider, registration } = await this.getClientConfig(registrationId);
61
+ const { baseUri } = this.config;
62
+ const { clientId, clientSecret, redirectUri } = registration;
63
+ return provider.exchangeAuthorizationCode({
64
+ code,
65
+ pkce,
66
+ clientId,
67
+ clientSecret,
68
+ redirectUri: redirectUri ?? `${baseUri}/login/oauth2/code/${registrationId}`
69
+ });
70
+ }
71
+ async getUserInfo({ registrationId, token }) {
72
+ const { provider } = await this.getClientConfig(registrationId);
73
+ return provider.getUserInfo(token);
74
+ }
75
+ async refreshAccessToken({ registrationId, refreshToken }) {
76
+ const { provider, registration } = await this.getClientConfig(registrationId);
77
+ const { clientId, clientSecret } = registration;
78
+ (0, _shware_utils.invariant)(provider.refreshAccessToken, "Provider does not support refreshAccessToken");
79
+ return provider.refreshAccessToken({
80
+ refreshToken,
81
+ clientId,
82
+ clientSecret
83
+ });
84
+ }
85
+ async revokeToken(registrationId, token) {
86
+ const { provider, registration } = await this.getClientConfig(registrationId);
87
+ const { clientId, clientSecret } = registration;
88
+ (0, _shware_utils.invariant)(provider.revokeToken, "Provider does not support revokeToken");
89
+ await provider.revokeToken({
90
+ token,
91
+ clientId,
92
+ clientSecret
93
+ });
94
+ }
95
+ async loginOAuth2Native({ registrationId, credentials, pkce }) {
96
+ const { provider, registration } = await this.getClientConfig(registrationId);
97
+ (0, _shware_utils.invariant)(provider.loginOAuth2Native, "Provider does not support loginOAuth2Native");
98
+ const { baseUri } = this.config;
99
+ const { clientId, clientSecret, redirectUri } = registration;
100
+ return provider.loginOAuth2Native({
101
+ clientId,
102
+ clientSecret,
103
+ redirectUri: redirectUri ?? `${baseUri}/login/oauth2/code/${registrationId}`,
104
+ credentials,
105
+ pkce
106
+ });
107
+ }
143
108
  };
144
- // Annotate the CommonJS export names for ESM import in node:
145
- 0 && (module.exports = {
146
- OAuth2Client,
147
- googleOneTapSchema,
148
- oauth2RedirectQuerySchema
149
- });
109
+ //#endregion
110
+ exports.OAuth2Client = OAuth2Client;
111
+ exports.googleOneTapSchema = googleOneTapSchema;
112
+ exports.oauth2RedirectQuerySchema = oauth2RedirectQuerySchema;
113
+
150
114
  //# sourceMappingURL=client.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/oauth2/client.ts"],"sourcesContent":["import { invariant } from '@shware/utils';\nimport { object, optional, string } from 'zod/v4-mini';\nimport type {\n NativeCredential,\n OAuth2ClientConfig,\n OAuth2Token,\n OidcToken,\n PkceParameters,\n} from './types';\n\nexport const oauth2RedirectQuerySchema = object({\n code: optional(string()),\n state: optional(string()),\n error: optional(string()),\n error_description: optional(string()),\n error_uri: optional(string()),\n});\n\nexport const googleOneTapSchema = object({\n // login_uri\n code: optional(string()),\n state: optional(string()),\n error: optional(string()),\n error_description: optional(string()),\n error_uri: optional(string()),\n nonce: optional(string()),\n g_csrf_token: optional(string()),\n hd: optional(string()),\n // callback\n credential: optional(string()),\n});\n\nexport class OAuth2Client {\n private config: OAuth2ClientConfig;\n constructor(config: OAuth2ClientConfig) {\n this.config = config;\n }\n\n get baseUri() {\n return this.config.baseUri;\n }\n\n get successUri() {\n return this.config.successUri;\n }\n\n get errorUri() {\n return this.config.errorUri;\n }\n\n private async getClientConfig(registrationId: string) {\n const registrations =\n typeof this.config.registration === 'function'\n ? await this.config.registration()\n : this.config.registration;\n\n const registration = registrations[registrationId];\n invariant(registration, `Registration ${registrationId} not found`);\n\n const provider = this.config.provider[registration.provider ?? registrationId];\n invariant(provider, `Provider ${registration.provider ?? registrationId} not found`);\n return { registration, provider };\n }\n\n async createAuthorizationUri({\n registrationId,\n state,\n pkce,\n }: {\n registrationId: string;\n state: string;\n pkce?: PkceParameters;\n }): Promise<URL> {\n const { provider, registration } = await this.getClientConfig(registrationId);\n\n const { baseUri } = this.config;\n const { scope, clientId, redirectUri } = registration;\n return provider.createAuthorizationUri({\n pkce,\n state,\n scope,\n clientId,\n redirectUri: redirectUri ?? `${baseUri}/login/oauth2/code/${registrationId}`,\n });\n }\n\n async exchangeAuthorizationCode({\n registrationId,\n code,\n pkce,\n }: {\n registrationId: string;\n code: string;\n pkce?: PkceParameters;\n }): Promise<OAuth2Token> {\n const { provider, registration } = await this.getClientConfig(registrationId);\n\n const { baseUri } = this.config;\n const { clientId, clientSecret, redirectUri } = registration;\n return provider.exchangeAuthorizationCode({\n code,\n pkce,\n clientId,\n clientSecret,\n redirectUri: redirectUri ?? `${baseUri}/login/oauth2/code/${registrationId}`,\n });\n }\n\n async getUserInfo({\n registrationId,\n token,\n }: {\n registrationId: string;\n token: OAuth2Token | OidcToken;\n }) {\n const { provider } = await this.getClientConfig(registrationId);\n return provider.getUserInfo(token);\n }\n\n async refreshAccessToken({\n registrationId,\n refreshToken,\n }: {\n registrationId: string;\n refreshToken: string;\n }): Promise<OAuth2Token> {\n const { provider, registration } = await this.getClientConfig(registrationId);\n const { clientId, clientSecret } = registration;\n\n invariant(provider.refreshAccessToken, 'Provider does not support refreshAccessToken');\n return provider.refreshAccessToken({ refreshToken, clientId, clientSecret });\n }\n\n async revokeToken(registrationId: string, token: string) {\n const { provider, registration } = await this.getClientConfig(registrationId);\n const { clientId, clientSecret } = registration;\n\n invariant(provider.revokeToken, 'Provider does not support revokeToken');\n await provider.revokeToken({ token, clientId, clientSecret });\n }\n\n async loginOAuth2Native({\n registrationId,\n credentials,\n pkce,\n }: {\n registrationId: string;\n credentials: NativeCredential;\n pkce?: PkceParameters;\n }) {\n const { provider, registration } = await this.getClientConfig(registrationId);\n invariant(provider.loginOAuth2Native, 'Provider does not support loginOAuth2Native');\n const { baseUri } = this.config;\n const { clientId, clientSecret, redirectUri } = registration;\n\n return provider.loginOAuth2Native({\n clientId,\n clientSecret,\n redirectUri: redirectUri ?? `${baseUri}/login/oauth2/code/${registrationId}`,\n credentials,\n pkce,\n });\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"file":"client.cjs","names":[],"sources":["../../src/oauth2/client.ts"],"sourcesContent":["import { invariant } from '@shware/utils';\nimport { object, optional, string } from 'zod/v4-mini';\nimport type {\n NativeCredential,\n OAuth2ClientConfig,\n OAuth2Token,\n OidcToken,\n PkceParameters,\n} from './types';\n\nexport const oauth2RedirectQuerySchema = object({\n code: optional(string()),\n state: optional(string()),\n error: optional(string()),\n error_description: optional(string()),\n error_uri: optional(string()),\n});\n\nexport const googleOneTapSchema = object({\n // login_uri\n code: optional(string()),\n state: optional(string()),\n error: optional(string()),\n error_description: optional(string()),\n error_uri: optional(string()),\n nonce: optional(string()),\n g_csrf_token: optional(string()),\n hd: optional(string()),\n // callback\n credential: optional(string()),\n});\n\nexport class OAuth2Client {\n private config: OAuth2ClientConfig;\n constructor(config: OAuth2ClientConfig) {\n this.config = config;\n }\n\n get baseUri() {\n return this.config.baseUri;\n }\n\n get successUri() {\n return this.config.successUri;\n }\n\n get errorUri() {\n return this.config.errorUri;\n }\n\n private async getClientConfig(registrationId: string) {\n const registrations =\n typeof this.config.registration === 'function'\n ? await this.config.registration()\n : this.config.registration;\n\n const registration = registrations[registrationId];\n invariant(registration, `Registration ${registrationId} not found`);\n\n const provider = this.config.provider[registration.provider ?? registrationId];\n invariant(provider, `Provider ${registration.provider ?? registrationId} not found`);\n return { registration, provider };\n }\n\n async createAuthorizationUri({\n registrationId,\n state,\n pkce,\n }: {\n registrationId: string;\n state: string;\n pkce?: PkceParameters;\n }): Promise<URL> {\n const { provider, registration } = await this.getClientConfig(registrationId);\n\n const { baseUri } = this.config;\n const { scope, clientId, redirectUri } = registration;\n return provider.createAuthorizationUri({\n pkce,\n state,\n scope,\n clientId,\n redirectUri: redirectUri ?? `${baseUri}/login/oauth2/code/${registrationId}`,\n });\n }\n\n async exchangeAuthorizationCode({\n registrationId,\n code,\n pkce,\n }: {\n registrationId: string;\n code: string;\n pkce?: PkceParameters;\n }): Promise<OAuth2Token> {\n const { provider, registration } = await this.getClientConfig(registrationId);\n\n const { baseUri } = this.config;\n const { clientId, clientSecret, redirectUri } = registration;\n return provider.exchangeAuthorizationCode({\n code,\n pkce,\n clientId,\n clientSecret,\n redirectUri: redirectUri ?? `${baseUri}/login/oauth2/code/${registrationId}`,\n });\n }\n\n async getUserInfo({\n registrationId,\n token,\n }: {\n registrationId: string;\n token: OAuth2Token | OidcToken;\n }) {\n const { provider } = await this.getClientConfig(registrationId);\n return provider.getUserInfo(token);\n }\n\n async refreshAccessToken({\n registrationId,\n refreshToken,\n }: {\n registrationId: string;\n refreshToken: string;\n }): Promise<OAuth2Token> {\n const { provider, registration } = await this.getClientConfig(registrationId);\n const { clientId, clientSecret } = registration;\n\n invariant(provider.refreshAccessToken, 'Provider does not support refreshAccessToken');\n return provider.refreshAccessToken({ refreshToken, clientId, clientSecret });\n }\n\n async revokeToken(registrationId: string, token: string) {\n const { provider, registration } = await this.getClientConfig(registrationId);\n const { clientId, clientSecret } = registration;\n\n invariant(provider.revokeToken, 'Provider does not support revokeToken');\n await provider.revokeToken({ token, clientId, clientSecret });\n }\n\n async loginOAuth2Native({\n registrationId,\n credentials,\n pkce,\n }: {\n registrationId: string;\n credentials: NativeCredential;\n pkce?: PkceParameters;\n }) {\n const { provider, registration } = await this.getClientConfig(registrationId);\n invariant(provider.loginOAuth2Native, 'Provider does not support loginOAuth2Native');\n const { baseUri } = this.config;\n const { clientId, clientSecret, redirectUri } = registration;\n\n return provider.loginOAuth2Native({\n clientId,\n clientSecret,\n redirectUri: redirectUri ?? `${baseUri}/login/oauth2/code/${registrationId}`,\n credentials,\n pkce,\n });\n }\n}\n"],"mappings":"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"}