@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.
- package/dist/auth/index.cjs +519 -561
- package/dist/auth/index.cjs.map +1 -1
- package/dist/auth/index.d.cts +104 -106
- package/dist/auth/index.d.cts.map +1 -0
- package/dist/auth/index.d.mts +109 -0
- package/dist/auth/index.d.mts.map +1 -0
- package/dist/auth/index.mjs +512 -536
- package/dist/auth/index.mjs.map +1 -1
- package/dist/auth/types.cjs +0 -19
- package/dist/auth/types.d.cts +44 -44
- package/dist/auth/types.d.cts.map +1 -0
- package/dist/auth/types.d.mts +50 -0
- package/dist/auth/types.d.mts.map +1 -0
- package/dist/auth/types.mjs +1 -1
- package/dist/core/index.cjs +18 -59
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.cts +13 -24
- package/dist/core/index.d.cts.map +1 -0
- package/dist/core/index.d.mts +21 -0
- package/dist/core/index.d.mts.map +1 -0
- package/dist/core/index.mjs +17 -33
- package/dist/core/index.mjs.map +1 -1
- package/dist/email/schema.cjs +13 -38
- package/dist/email/schema.cjs.map +1 -1
- package/dist/email/schema.d.cts +11 -12
- package/dist/email/schema.d.cts.map +1 -0
- package/dist/email/schema.d.mts +12 -0
- package/dist/email/schema.d.mts.map +1 -0
- package/dist/email/schema.mjs +10 -11
- package/dist/email/schema.mjs.map +1 -1
- package/dist/index.cjs +18 -54
- package/dist/index.d.cts +10 -15
- package/dist/index.d.mts +10 -0
- package/dist/index.mjs +5 -17
- package/dist/oauth2/client.cjs +109 -145
- package/dist/oauth2/client.cjs.map +1 -1
- package/dist/oauth2/client.d.cts +55 -56
- package/dist/oauth2/client.d.cts.map +1 -0
- package/dist/oauth2/client.d.mts +58 -0
- package/dist/oauth2/client.d.mts.map +1 -0
- package/dist/oauth2/client.mjs +104 -116
- package/dist/oauth2/client.mjs.map +1 -1
- package/dist/oauth2/error.cjs +19 -44
- package/dist/oauth2/error.cjs.map +1 -1
- package/dist/oauth2/error.d.cts +8 -6
- package/dist/oauth2/error.d.cts.map +1 -0
- package/dist/oauth2/{error.d.ts → error.d.mts} +8 -6
- package/dist/oauth2/error.d.mts.map +1 -0
- package/dist/oauth2/error.mjs +18 -19
- package/dist/oauth2/error.mjs.map +1 -1
- package/dist/oauth2/provider/apple.cjs +75 -88
- package/dist/oauth2/provider/apple.cjs.map +1 -1
- package/dist/oauth2/provider/apple.d.cts +31 -30
- package/dist/oauth2/provider/apple.d.cts.map +1 -0
- package/dist/oauth2/provider/apple.d.mts +42 -0
- package/dist/oauth2/provider/apple.d.mts.map +1 -0
- package/dist/oauth2/provider/apple.mjs +71 -60
- package/dist/oauth2/provider/apple.mjs.map +1 -1
- package/dist/oauth2/provider/common.cjs +86 -109
- package/dist/oauth2/provider/common.cjs.map +1 -1
- package/dist/oauth2/provider/common.d.cts +19 -18
- package/dist/oauth2/provider/common.d.cts.map +1 -0
- package/dist/oauth2/provider/common.d.mts +30 -0
- package/dist/oauth2/provider/common.d.mts.map +1 -0
- package/dist/oauth2/provider/common.mjs +80 -79
- package/dist/oauth2/provider/common.mjs.map +1 -1
- package/dist/oauth2/provider/facebook.cjs +93 -109
- package/dist/oauth2/provider/facebook.cjs.map +1 -1
- package/dist/oauth2/provider/facebook.d.cts +29 -28
- package/dist/oauth2/provider/facebook.d.cts.map +1 -0
- package/dist/oauth2/provider/facebook.d.mts +45 -0
- package/dist/oauth2/provider/facebook.d.mts.map +1 -0
- package/dist/oauth2/provider/facebook.mjs +89 -81
- package/dist/oauth2/provider/facebook.mjs.map +1 -1
- package/dist/oauth2/provider/github.cjs +64 -91
- package/dist/oauth2/provider/github.cjs.map +1 -1
- package/dist/oauth2/provider/github.d.cts +52 -51
- package/dist/oauth2/provider/github.d.cts.map +1 -0
- package/dist/oauth2/provider/github.d.mts +60 -0
- package/dist/oauth2/provider/github.d.mts.map +1 -0
- package/dist/oauth2/provider/github.mjs +60 -63
- package/dist/oauth2/provider/github.mjs.map +1 -1
- package/dist/oauth2/provider/google.cjs +105 -122
- package/dist/oauth2/provider/google.cjs.map +1 -1
- package/dist/oauth2/provider/google.d.cts +34 -33
- package/dist/oauth2/provider/google.d.cts.map +1 -0
- package/dist/oauth2/provider/google.d.mts +44 -0
- package/dist/oauth2/provider/google.d.mts.map +1 -0
- package/dist/oauth2/provider/google.mjs +101 -94
- package/dist/oauth2/provider/google.mjs.map +1 -1
- package/dist/oauth2/provider/index.cjs +13 -46
- package/dist/oauth2/provider/index.d.cts +7 -7
- package/dist/oauth2/provider/index.d.mts +7 -0
- package/dist/oauth2/provider/index.mjs +1 -10
- package/dist/oauth2/provider/wechat.cjs +77 -99
- package/dist/oauth2/provider/wechat.cjs.map +1 -1
- package/dist/oauth2/provider/wechat.d.cts +28 -27
- package/dist/oauth2/provider/wechat.d.cts.map +1 -0
- package/dist/oauth2/provider/wechat.d.mts +39 -0
- package/dist/oauth2/provider/wechat.d.mts.map +1 -0
- package/dist/oauth2/provider/wechat.mjs +74 -72
- package/dist/oauth2/provider/wechat.mjs.map +1 -1
- package/dist/oauth2/provider/x.cjs +102 -125
- package/dist/oauth2/provider/x.cjs.map +1 -1
- package/dist/oauth2/provider/x.d.cts +51 -50
- package/dist/oauth2/provider/x.d.cts.map +1 -0
- package/dist/oauth2/provider/x.d.mts +69 -0
- package/dist/oauth2/provider/x.d.mts.map +1 -0
- package/dist/oauth2/provider/x.mjs +99 -103
- package/dist/oauth2/provider/x.mjs.map +1 -1
- package/dist/oauth2/types.cjs +12 -37
- package/dist/oauth2/types.cjs.map +1 -1
- package/dist/oauth2/types.d.cts +176 -180
- package/dist/oauth2/types.d.cts.map +1 -0
- package/dist/oauth2/types.d.mts +207 -0
- package/dist/oauth2/types.d.mts.map +1 -0
- package/dist/oauth2/types.mjs +12 -13
- package/dist/oauth2/types.mjs.map +1 -1
- package/dist/session/common.cjs +17 -43
- package/dist/session/common.cjs.map +1 -1
- package/dist/session/common.d.cts +4 -4
- package/dist/session/common.d.cts.map +1 -0
- package/dist/session/{common.d.ts → common.d.mts} +4 -4
- package/dist/session/common.d.mts.map +1 -0
- package/dist/session/common.mjs +14 -16
- package/dist/session/common.mjs.map +1 -1
- package/dist/session/db.cjs +88 -123
- package/dist/session/db.cjs.map +1 -1
- package/dist/session/db.d.cts +36 -36
- package/dist/session/db.d.cts.map +1 -0
- package/dist/session/db.d.mts +44 -0
- package/dist/session/db.d.mts.map +1 -0
- package/dist/session/db.mjs +84 -95
- package/dist/session/db.mjs.map +1 -1
- package/dist/session/map-session.cjs +71 -103
- package/dist/session/map-session.cjs.map +1 -1
- package/dist/session/map-session.d.cts +24 -24
- package/dist/session/map-session.d.cts.map +1 -0
- package/dist/session/map-session.d.mts +27 -0
- package/dist/session/map-session.d.mts.map +1 -0
- package/dist/session/map-session.mjs +70 -78
- package/dist/session/map-session.mjs.map +1 -1
- package/dist/session/redis.cjs +270 -319
- package/dist/session/redis.cjs.map +1 -1
- package/dist/session/redis.d.cts +51 -51
- package/dist/session/redis.d.cts.map +1 -0
- package/dist/session/redis.d.mts +58 -0
- package/dist/session/redis.d.mts.map +1 -0
- package/dist/session/redis.mjs +266 -291
- package/dist/session/redis.mjs.map +1 -1
- package/dist/session/types.cjs +0 -19
- package/dist/session/types.d.cts +34 -33
- package/dist/session/types.d.cts.map +1 -0
- package/dist/session/types.d.mts +45 -0
- package/dist/session/types.d.mts.map +1 -0
- package/dist/session/types.mjs +1 -1
- package/dist/utils/http.cjs +31 -55
- package/dist/utils/http.cjs.map +1 -1
- package/dist/utils/http.d.cts +7 -10
- package/dist/utils/http.d.cts.map +1 -0
- package/dist/utils/{http.d.ts → http.d.mts} +7 -10
- package/dist/utils/http.d.mts.map +1 -0
- package/dist/utils/http.mjs +24 -24
- package/dist/utils/http.mjs.map +1 -1
- package/dist/utils/oauth2.cjs +6 -30
- package/dist/utils/oauth2.cjs.map +1 -1
- package/dist/utils/oauth2.d.cts +3 -1
- package/dist/utils/oauth2.d.cts.map +1 -0
- package/dist/utils/oauth2.d.mts +5 -0
- package/dist/utils/oauth2.d.mts.map +1 -0
- package/dist/utils/oauth2.mjs +5 -5
- package/dist/utils/oauth2.mjs.map +1 -1
- package/dist/utils/timing.cjs +49 -70
- package/dist/utils/timing.cjs.map +1 -1
- package/dist/utils/timing.d.cts +10 -8
- package/dist/utils/timing.d.cts.map +1 -0
- package/dist/utils/timing.d.mts +15 -0
- package/dist/utils/timing.d.mts.map +1 -0
- package/dist/utils/timing.mjs +48 -45
- package/dist/utils/timing.mjs.map +1 -1
- package/dist/utils/valid.cjs +50 -71
- package/dist/utils/valid.cjs.map +1 -1
- package/dist/utils/valid.d.cts +17 -16
- package/dist/utils/valid.d.cts.map +1 -0
- package/dist/utils/valid.d.mts +28 -0
- package/dist/utils/valid.d.mts.map +1 -0
- package/dist/utils/valid.mjs +47 -44
- package/dist/utils/valid.mjs.map +1 -1
- package/package.json +22 -12
- package/dist/auth/index.d.ts +0 -111
- package/dist/auth/types.cjs.map +0 -1
- package/dist/auth/types.d.ts +0 -50
- package/dist/auth/types.mjs.map +0 -1
- package/dist/core/index.d.ts +0 -32
- package/dist/email/schema.d.ts +0 -13
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts +0 -15
- package/dist/index.mjs.map +0 -1
- package/dist/oauth2/client.d.ts +0 -59
- package/dist/oauth2/provider/apple.d.ts +0 -41
- package/dist/oauth2/provider/common.d.ts +0 -29
- package/dist/oauth2/provider/facebook.d.ts +0 -44
- package/dist/oauth2/provider/github.d.ts +0 -59
- package/dist/oauth2/provider/google.d.ts +0 -43
- package/dist/oauth2/provider/index.cjs.map +0 -1
- package/dist/oauth2/provider/index.d.ts +0 -7
- package/dist/oauth2/provider/index.mjs.map +0 -1
- package/dist/oauth2/provider/wechat.d.ts +0 -38
- package/dist/oauth2/provider/x.d.ts +0 -68
- package/dist/oauth2/types.d.ts +0 -211
- package/dist/session/__tests__/redis.test.cjs +0 -247
- package/dist/session/__tests__/redis.test.cjs.map +0 -1
- package/dist/session/__tests__/redis.test.d.cts +0 -2
- package/dist/session/__tests__/redis.test.d.ts +0 -2
- package/dist/session/__tests__/redis.test.mjs +0 -252
- package/dist/session/__tests__/redis.test.mjs.map +0 -1
- package/dist/session/db.d.ts +0 -44
- package/dist/session/map-session.d.ts +0 -27
- package/dist/session/redis.d.ts +0 -58
- package/dist/session/types.cjs.map +0 -1
- package/dist/session/types.d.ts +0 -44
- package/dist/session/types.mjs.map +0 -1
- package/dist/utils/oauth2.d.ts +0 -3
- package/dist/utils/timing.d.ts +0 -13
- package/dist/utils/valid.d.ts +0 -27
package/dist/email/schema.cjs
CHANGED
|
@@ -1,41 +1,16 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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":"
|
|
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"}
|
package/dist/email/schema.d.cts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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"}
|
package/dist/email/schema.mjs
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
// src/email/schema.ts
|
|
2
1
|
import { email, maxLength, object, regex, string } from "zod/mini";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
const loginEmailSchema = object({
|
|
8
|
+
email: email().check(maxLength(320)),
|
|
9
|
+
verificationCode: string().check(regex(/^\d{6}$/))
|
|
10
10
|
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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":"
|
|
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
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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 };
|
package/dist/index.d.mts
ADDED
|
@@ -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 {
|
|
7
|
-
import {
|
|
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 };
|
package/dist/oauth2/client.cjs
CHANGED
|
@@ -1,150 +1,114 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
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
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
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":"
|
|
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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"}
|