@gauts/auth 0.6.4 → 0.7.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/README.md +471 -198
- package/SECURITY.md +10 -2
- package/dist/adapters/hono/index.d.ts +28 -4
- package/dist/adapters/hono/index.d.ts.map +1 -1
- package/dist/adapters/hono/index.js +40 -7
- package/dist/adapters/hono/index.js.map +1 -1
- package/dist/adapters/hono/social.d.ts +34 -0
- package/dist/adapters/hono/social.d.ts.map +1 -0
- package/dist/adapters/hono/social.js +202 -0
- package/dist/adapters/hono/social.js.map +1 -0
- package/dist/adapters/prisma/config.d.ts.map +1 -1
- package/dist/adapters/prisma/config.js +85 -71
- package/dist/adapters/prisma/config.js.map +1 -1
- package/dist/adapters/prisma/index.d.ts +1 -1
- package/dist/adapters/prisma/index.d.ts.map +1 -1
- package/dist/adapters/prisma/index.js +90 -13
- package/dist/adapters/prisma/index.js.map +1 -1
- package/dist/adapters/prisma/model.d.ts +40 -7
- package/dist/adapters/prisma/model.d.ts.map +1 -1
- package/dist/adapters/prisma/model.js +38 -24
- package/dist/adapters/prisma/model.js.map +1 -1
- package/dist/adapters/prisma/types.d.ts +60 -72
- package/dist/adapters/prisma/types.d.ts.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/providers/common.d.ts +31 -0
- package/dist/providers/common.d.ts.map +1 -0
- package/dist/providers/common.js +89 -0
- package/dist/providers/common.js.map +1 -0
- package/dist/providers/github.d.ts +5 -0
- package/dist/providers/github.d.ts.map +1 -0
- package/dist/providers/github.js +93 -0
- package/dist/providers/github.js.map +1 -0
- package/dist/providers/google.d.ts +5 -0
- package/dist/providers/google.d.ts.map +1 -0
- package/dist/providers/google.js +58 -0
- package/dist/providers/google.js.map +1 -0
- package/dist/providers/index.d.ts +7 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +4 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/x.d.ts +5 -0
- package/dist/providers/x.d.ts.map +1 -0
- package/dist/providers/x.js +63 -0
- package/dist/providers/x.js.map +1 -0
- package/dist/session/cookie.d.ts +4 -0
- package/dist/session/cookie.d.ts.map +1 -1
- package/dist/session/cookie.js +9 -3
- package/dist/session/cookie.js.map +1 -1
- package/dist/session/guards.d.ts.map +1 -1
- package/dist/session/guards.js +7 -1
- package/dist/session/guards.js.map +1 -1
- package/dist/session/types.d.ts +6 -0
- package/dist/session/types.d.ts.map +1 -1
- package/dist/social/config.d.ts +3 -0
- package/dist/social/config.d.ts.map +1 -0
- package/dist/social/config.js +115 -0
- package/dist/social/config.js.map +1 -0
- package/dist/social/service.d.ts +18 -0
- package/dist/social/service.d.ts.map +1 -0
- package/dist/social/service.js +78 -0
- package/dist/social/service.js.map +1 -0
- package/dist/social/state.d.ts +46 -0
- package/dist/social/state.d.ts.map +1 -0
- package/dist/social/state.js +139 -0
- package/dist/social/state.js.map +1 -0
- package/dist/social/types.d.ts +75 -0
- package/dist/social/types.d.ts.map +1 -0
- package/dist/social/types.js +2 -0
- package/dist/social/types.js.map +1 -0
- package/package.json +7 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/adapters/prisma/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/adapters/prisma/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SocialDbAdapter } from "../../social/types.js";
|
|
1
2
|
import type { AuthAccount, AuthScalar, DbAdapter, SessionRecord } from "../../session/types.js";
|
|
2
3
|
type DelegateMeta<T> = T[Extract<keyof T, symbol>];
|
|
3
4
|
export type DelegateRow<T> = DelegateMeta<T> extends {
|
|
@@ -8,77 +9,69 @@ export type DelegateRow<T> = DelegateMeta<T> extends {
|
|
|
8
9
|
};
|
|
9
10
|
} ? Result : never;
|
|
10
11
|
type IsSessionModel<T> = [DelegateRow<T>] extends [never] ? false : DelegateRow<T> extends SessionRecord ? true : false;
|
|
11
|
-
type
|
|
12
|
+
type IsAccountModel<T> = [DelegateRow<T>] extends [never] ? false : DelegateRow<T> extends {
|
|
13
|
+
email: string;
|
|
12
14
|
id: string;
|
|
15
|
+
user_id: string;
|
|
13
16
|
} ? true : false;
|
|
14
|
-
type
|
|
17
|
+
type IsUserModel<T> = [DelegateRow<T>] extends [never] ? false : DelegateRow<T> extends {
|
|
18
|
+
id: string;
|
|
19
|
+
name: string;
|
|
20
|
+
} ? DelegateRow<T> extends {
|
|
15
21
|
email: string;
|
|
22
|
+
} ? false : true : false;
|
|
23
|
+
type IsSocialModel<T> = [DelegateRow<T>] extends [never] ? false : DelegateRow<T> extends {
|
|
24
|
+
account_id: string;
|
|
25
|
+
created_at: Date;
|
|
16
26
|
id: string;
|
|
27
|
+
provider: string;
|
|
28
|
+
provider_id: string;
|
|
17
29
|
} ? true : false;
|
|
18
|
-
type
|
|
19
|
-
|
|
20
|
-
} ? true : false : false;
|
|
21
|
-
export type PrismaSessionModel<Client> = {
|
|
22
|
-
[Key in keyof Client]: IsSessionModel<Client[Key]> extends true ? Key : never;
|
|
23
|
-
}[keyof Client] & string;
|
|
24
|
-
export type PrismaAccountModel<Client> = {
|
|
25
|
-
[Key in keyof Client]: IsAccountModel<Client[Key]> extends true ? Key : never;
|
|
26
|
-
}[keyof Client] & string;
|
|
27
|
-
type PrismaRelationModel<Client> = {
|
|
28
|
-
[Key in keyof Client]: IsRelationModel<Client[Key]> extends true ? Key : never;
|
|
30
|
+
type ModelName<Client, Kind extends "account" | "session" | "social" | "user"> = {
|
|
31
|
+
[Key in keyof Client]: Kind extends "account" ? IsAccountModel<Client[Key]> extends true ? Key : never : Kind extends "session" ? IsSessionModel<Client[Key]> extends true ? Key : never : Kind extends "social" ? IsSocialModel<Client[Key]> extends true ? Key : never : IsUserModel<Client[Key]> extends true ? Key : never;
|
|
29
32
|
}[keyof Client] & string;
|
|
33
|
+
export type PrismaAccountModel<Client> = ModelName<Client, "account">;
|
|
34
|
+
export type PrismaSessionModel<Client> = ModelName<Client, "session">;
|
|
35
|
+
export type PrismaSocialModel<Client> = ModelName<Client, "social">;
|
|
36
|
+
export type PrismaUserModel<Client> = ModelName<Client, "user">;
|
|
30
37
|
type ModelRow<Client, Name extends string> = Name extends keyof Client ? DelegateRow<Client[Name]> : never;
|
|
38
|
+
type PrivateField = "hash" | "password" | "password_hash" | "passwordHash";
|
|
31
39
|
type AuthField<Row> = {
|
|
32
|
-
[Key in keyof Row]: Row[Key] extends AuthScalar ? Key : never;
|
|
40
|
+
[Key in keyof Row]: Key extends PrivateField ? never : Row[Key] extends AuthScalar ? Key : never;
|
|
33
41
|
}[keyof Row] & string;
|
|
34
42
|
type AccessRule<Value> = [Value] extends [AuthScalar] ? Value | readonly Value[] : never;
|
|
35
43
|
type ModelAccess<Row> = Partial<{
|
|
36
44
|
[Key in AuthField<Row>]: AccessRule<Row[Key]>;
|
|
37
45
|
}>;
|
|
38
|
-
type
|
|
46
|
+
type DataModelConfig<Client, Name extends string> = {
|
|
39
47
|
access?: ModelAccess<ModelRow<Client, Name>>;
|
|
40
|
-
relations?: PrismaRelations<Client>;
|
|
41
48
|
select?: readonly AuthField<ModelRow<Client, Name>>[];
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
type ModelChoice<Client,
|
|
48
|
-
|
|
49
|
-
}[PrismaRelationModel<Client>];
|
|
50
|
-
type AccountChoice<Client, NameRequired extends boolean> = {
|
|
51
|
-
[Name in PrismaAccountModel<Client>]: ModelConfig<Client, Name, NameRequired>;
|
|
52
|
-
}[PrismaAccountModel<Client>];
|
|
53
|
-
type DefaultAccountConfig<Client> = "account" extends keyof Client ? IsDefaultAccountModel<Client["account"]> extends true ? Omit<ModelConfig<Client, "account", false>, "name"> & {
|
|
54
|
-
name?: "account";
|
|
55
|
-
} : never : never;
|
|
56
|
-
type CustomAccountConfig<Client> = AccountChoice<Client, true>;
|
|
57
|
-
export type PrismaAccountConfig<Client> = DefaultAccountConfig<Client> | CustomAccountConfig<Client>;
|
|
58
|
-
export type PrismaRelations<Client> = Record<string, ModelChoice<Client, false>>;
|
|
59
|
-
type DefaultSessionConfig<Client> = "sessions" extends PrismaSessionModel<Client> ? {
|
|
60
|
-
name?: "sessions";
|
|
61
|
-
} : never;
|
|
62
|
-
type CustomSessionConfig<Client> = {
|
|
63
|
-
[Name in PrismaSessionModel<Client>]: {
|
|
64
|
-
name: Name;
|
|
65
|
-
};
|
|
66
|
-
}[PrismaSessionModel<Client>];
|
|
67
|
-
export type PrismaSessionConfig<Client> = DefaultSessionConfig<Client> | CustomSessionConfig<Client>;
|
|
68
|
-
type AccountProperty<Client> = "account" extends keyof Client ? IsDefaultAccountModel<Client["account"]> extends true ? {
|
|
69
|
-
account?: PrismaAccountConfig<Client>;
|
|
49
|
+
table?: Name;
|
|
50
|
+
};
|
|
51
|
+
type TableModelConfig<Name extends string> = {
|
|
52
|
+
table?: Name;
|
|
53
|
+
};
|
|
54
|
+
type ModelChoice<Client, Name extends string, Default extends string, Data extends boolean> = Name extends unknown ? Data extends true ? DataModelConfig<Client, Name> & (Name extends Default ? {
|
|
55
|
+
table?: Name;
|
|
70
56
|
} : {
|
|
71
|
-
|
|
57
|
+
table: Name;
|
|
58
|
+
}) : TableModelConfig<Name> & (Name extends Default ? {
|
|
59
|
+
table?: Name;
|
|
72
60
|
} : {
|
|
73
|
-
|
|
74
|
-
};
|
|
75
|
-
type
|
|
61
|
+
table: Name;
|
|
62
|
+
}) : never;
|
|
63
|
+
export type PrismaUserConfig<Client> = ModelChoice<Client, PrismaUserModel<Client>, "users", true>;
|
|
64
|
+
export type PrismaAccountConfig<Client> = ModelChoice<Client, PrismaAccountModel<Client>, "user_accounts", true>;
|
|
65
|
+
export type PrismaSessionConfig<Client> = ModelChoice<Client, PrismaSessionModel<Client>, "account_sessions", false>;
|
|
66
|
+
export type PrismaSocialConfig<Client> = ModelChoice<Client, PrismaSocialModel<Client>, "social_accounts", false>;
|
|
67
|
+
export type PrismaModelsConfig<Client> = {
|
|
68
|
+
accounts?: PrismaAccountConfig<Client>;
|
|
76
69
|
sessions?: PrismaSessionConfig<Client>;
|
|
77
|
-
|
|
78
|
-
|
|
70
|
+
socials?: PrismaSocialConfig<Client>;
|
|
71
|
+
users?: PrismaUserConfig<Client>;
|
|
79
72
|
};
|
|
80
|
-
|
|
81
|
-
type HasDefaults<Client> = "
|
|
73
|
+
type HasModel<Client, Name extends string, Kind extends "account" | "session" | "social" | "user"> = Name extends ModelName<Client, Kind> ? true : false;
|
|
74
|
+
type HasDefaults<Client> = HasModel<Client, "users", "user"> extends true ? HasModel<Client, "user_accounts", "account"> extends true ? HasModel<Client, "account_sessions", "session"> extends true ? true : false : false : false;
|
|
82
75
|
export type PrismaAdapterInput<Client extends object, Models extends PrismaModelsConfig<Client> | undefined = undefined> = Models extends undefined ? HasDefaults<Client> extends true ? {
|
|
83
76
|
client: Client;
|
|
84
77
|
models?: undefined;
|
|
@@ -86,23 +79,17 @@ export type PrismaAdapterInput<Client extends object, Models extends PrismaModel
|
|
|
86
79
|
client: Client;
|
|
87
80
|
models: Models;
|
|
88
81
|
};
|
|
89
|
-
type
|
|
90
|
-
|
|
82
|
+
type ModelConfig<Models, Key extends keyof PrismaModelsConfig<object>> = Models extends Record<Key, infer Config> ? Config : Record<never, never>;
|
|
83
|
+
type ConfigTable<Config, Default extends string> = Config extends {
|
|
84
|
+
table: infer Name extends string;
|
|
91
85
|
} ? Name : Default;
|
|
92
86
|
type ConfigSelect<Config, Default extends string> = Config extends {
|
|
93
87
|
select: readonly (infer Field extends string)[];
|
|
94
|
-
} ? Field |
|
|
95
|
-
type
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
[Relation in keyof ConfigRelations<Config>]: ConfigRelations<Config>[Relation] extends infer RelationConfig ? SelectedModel<Client, RelationConfig, Relation & string> : never;
|
|
100
|
-
} : never;
|
|
101
|
-
type ModelsAccount<Models> = Models extends {
|
|
102
|
-
account: infer Account;
|
|
103
|
-
} ? Account : Record<never, never>;
|
|
104
|
-
export type PrismaAccount<Client, Models extends PrismaModelsConfig<Client> | undefined = undefined> = SelectedModel<Client, ModelsAccount<Models>, "account", "id" | "email"> & {
|
|
105
|
-
id: string;
|
|
88
|
+
} ? Field | Default : Default;
|
|
89
|
+
type SelectedModel<Client, Config, DefaultTable extends string, DefaultSelect extends string> = Pick<ModelRow<Client, ConfigTable<Config, DefaultTable>>, ConfigSelect<Config, DefaultSelect> & keyof ModelRow<Client, ConfigTable<Config, DefaultTable>>>;
|
|
90
|
+
export type PrismaUser<Client, Models extends PrismaModelsConfig<Client> | undefined = undefined> = SelectedModel<Client, ModelConfig<Models, "users">, "users", "id" | "name">;
|
|
91
|
+
export type PrismaAccount<Client, Models extends PrismaModelsConfig<Client> | undefined = undefined> = SelectedModel<Client, ModelConfig<Models, "accounts">, "user_accounts", "email" | "id"> & {
|
|
92
|
+
user: PrismaUser<Client, Models>;
|
|
106
93
|
};
|
|
107
94
|
export type PrismaDelegate = {
|
|
108
95
|
create(args: unknown): Promise<unknown>;
|
|
@@ -113,18 +100,19 @@ export type PrismaDelegate = {
|
|
|
113
100
|
updateMany(args: unknown): Promise<unknown>;
|
|
114
101
|
};
|
|
115
102
|
export type PrismaAccessValue = AuthScalar | readonly AuthScalar[];
|
|
116
|
-
export type
|
|
103
|
+
export type ResolvedPrismaDataModel = {
|
|
117
104
|
access: Record<string, PrismaAccessValue>;
|
|
118
|
-
name: string;
|
|
119
|
-
relation: string;
|
|
120
|
-
relations: Record<string, ResolvedPrismaModel>;
|
|
121
105
|
select: readonly string[];
|
|
106
|
+
table: string;
|
|
122
107
|
};
|
|
123
108
|
export type ResolvedPrismaModels = {
|
|
124
|
-
|
|
109
|
+
accounts: ResolvedPrismaDataModel;
|
|
125
110
|
sessions: string;
|
|
111
|
+
socials: string | null;
|
|
112
|
+
users: ResolvedPrismaDataModel;
|
|
126
113
|
};
|
|
127
|
-
|
|
114
|
+
type HasSocial<Client, Models extends PrismaModelsConfig<Client> | undefined> = ConfigTable<ModelConfig<Models, "socials">, "social_accounts"> extends PrismaSocialModel<Client> ? true : false;
|
|
115
|
+
export type PrismaDb<Client extends object, Models extends PrismaModelsConfig<Client> | undefined> = DbAdapter<PrismaAccount<Client, Models> & AuthAccount> & (HasSocial<Client, Models> extends true ? SocialDbAdapter<PrismaAccount<Client, Models> & AuthAccount> : object);
|
|
128
116
|
export type CreatePrismaAdapter = {
|
|
129
117
|
<Client extends object>(input: PrismaAdapterInput<Client>): PrismaDb<Client, undefined>;
|
|
130
118
|
<Client extends object, const Models extends PrismaModelsConfig<Client>>(input: PrismaAdapterInput<Client, Models>): PrismaDb<Client, Models>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/prisma/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEhG,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAEnD,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB,YAAY,CAAC,CAAC,CAAC,SAAS;IACpB,KAAK,EAAE;QACH,OAAO,EAAE;YAAE,OAAO,EAAE,MAAM,MAAM,CAAA;SAAE,CAAC;KACtC,CAAC;CACL,GACK,MAAM,GACN,KAAK,CAAC;AAEhB,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACnD,KAAK,GACL,WAAW,CAAC,CAAC,CAAC,SAAS,aAAa,GAClC,IAAI,GACJ,KAAK,CAAC;AAEd,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/prisma/types.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type AuthErrorCode = "AUTH_CONFIG_INVALID" | "PASSWORD_INPUT_INVALID" | "SESSION_CLIENT_MISMATCH" | "SESSION_DATA_INVALID" | "SESSION_INVALID" | "SESSION_NOT_FOUND" | "DB_UNAVAILABLE";
|
|
1
|
+
export type AuthErrorCode = "AUTH_CONFIG_INVALID" | "SOCIAL_ACCOUNT_INVALID" | "SOCIAL_ACCOUNT_NOT_FOUND" | "SOCIAL_EMAIL_INVALID" | "SOCIAL_PROVIDER_ERROR" | "SOCIAL_REGISTRATION_INVALID" | "SOCIAL_STATE_INVALID" | "PASSWORD_INPUT_INVALID" | "SESSION_CLIENT_MISMATCH" | "SESSION_DATA_INVALID" | "SESSION_INVALID" | "SESSION_NOT_FOUND" | "DB_UNAVAILABLE";
|
|
2
2
|
export type AuthError = Error & {
|
|
3
3
|
code: AuthErrorCode;
|
|
4
4
|
};
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GACnB,qBAAqB,GACrB,wBAAwB,GACxB,yBAAyB,GACzB,sBAAsB,GACtB,iBAAiB,GACjB,mBAAmB,GACnB,gBAAgB,CAAC;AAEvB,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG;IAC5B,IAAI,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,0BAA0B,cAAc,KAAG,SAOtE,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,SAOrD,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GACnB,qBAAqB,GACrB,wBAAwB,GACxB,0BAA0B,GAC1B,sBAAsB,GACtB,uBAAuB,GACvB,6BAA6B,GAC7B,sBAAsB,GACtB,wBAAwB,GACxB,yBAAyB,GACzB,sBAAsB,GACtB,iBAAiB,GACjB,mBAAmB,GACnB,gBAAgB,CAAC;AAEvB,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG;IAC5B,IAAI,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,0BAA0B,cAAc,KAAG,SAOtE,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,SAOrD,CAAC"}
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAyBA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAkB,EAAa,EAAE;IAC/E,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAc,CAAC;IAE3F,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC;IACzB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAElB,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAsB,EAAE;IAC9D,OAAO,CACH,KAAK,YAAY,KAAK;QACtB,KAAK,CAAC,IAAI,KAAK,WAAW;QAC1B,MAAM,IAAI,KAAK;QACf,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CACjC,CAAC;AACN,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,8 @@ export type { BcryptConfig, Argon2idConfig, PasswordConfig, SessionConfig, Sessi
|
|
|
4
4
|
export { isAuthError } from "./errors.js";
|
|
5
5
|
export type { AuthError, AuthErrorCode } from "./errors.js";
|
|
6
6
|
export type { PasswordService } from "./password/index.js";
|
|
7
|
-
export type { ActiveSession, AuthAccount, AuthAccountOf, AuthData, AuthScalar, AuthSessionRecord, AuthValue, CreateSessionRecord, CreatedSession, DbAdapter, RenewedSession, ResolvedSession, Session, SessionInput, SessionRecord, SessionService, } from "./session/types.js";
|
|
7
|
+
export type { ActiveSession, AuthAccount, AuthAccountOf, AuthData, AuthScalar, AuthSessionRecord, AuthUser, AuthValue, CreateSessionRecord, CreatedSession, DbAdapter, RenewedSession, ResolvedSession, Session, SessionInput, SessionRecord, SessionService, } from "./session/types.js";
|
|
8
8
|
export type { SessionClient, SessionClientInput } from "./client/index.js";
|
|
9
9
|
export type { SessionCacheConfig } from "./session/cache.js";
|
|
10
|
+
export type { CreateSocialRecord, SocialAccountRecord, SocialAuthorizationInput, SocialCallbackInput, SocialConfig, SocialDbAdapter, SocialIdentity, SocialIntent, SocialProvider, SocialProviderId, SocialRegistrationConfig, SocialRegistrationInput, SocialRegistrationResult, } from "./social/types.js";
|
|
10
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC5D,YAAY,EACR,YAAY,EACZ,cAAc,EACd,cAAc,EACd,aAAa,EACb,iBAAiB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EACR,aAAa,EACb,WAAW,EACX,aAAa,EACb,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,cAAc,EACd,eAAe,EACf,OAAO,EACP,YAAY,EACZ,aAAa,EACb,cAAc,GACjB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC5D,YAAY,EACR,YAAY,EACZ,cAAc,EACd,cAAc,EACd,aAAa,EACb,iBAAiB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EACR,aAAa,EACb,WAAW,EACX,aAAa,EACb,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,cAAc,EACd,eAAe,EACf,OAAO,EACP,YAAY,EACZ,aAAa,EACb,cAAc,GACjB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EACR,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,GAC3B,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { SocialIdentity, SocialProviderId } from "../social/types.js";
|
|
2
|
+
export type ProviderConfig = {
|
|
3
|
+
callbackUrl: string;
|
|
4
|
+
clientId: string;
|
|
5
|
+
clientSecret: string;
|
|
6
|
+
};
|
|
7
|
+
type RequestJsonInput = {
|
|
8
|
+
init?: RequestInit;
|
|
9
|
+
provider: SocialProviderId;
|
|
10
|
+
url: string;
|
|
11
|
+
};
|
|
12
|
+
type IdentityInput = {
|
|
13
|
+
avatarUrl?: unknown;
|
|
14
|
+
email: unknown;
|
|
15
|
+
emailVerified: boolean;
|
|
16
|
+
name: unknown;
|
|
17
|
+
provider: SocialProviderId;
|
|
18
|
+
providerId: unknown;
|
|
19
|
+
username?: unknown;
|
|
20
|
+
};
|
|
21
|
+
type RequireAccessTokenInput = {
|
|
22
|
+
provider: SocialProviderId;
|
|
23
|
+
value: unknown;
|
|
24
|
+
};
|
|
25
|
+
export declare const requireProviderConfig: ({ callbackUrl, clientId, clientSecret, }: ProviderConfig) => ProviderConfig;
|
|
26
|
+
export declare const requestJson: ({ init, provider, url }: RequestJsonInput) => Promise<unknown>;
|
|
27
|
+
export declare const requireAccessToken: ({ provider, value }: RequireAccessTokenInput) => string;
|
|
28
|
+
export declare const createIdentity: ({ avatarUrl, email, emailVerified, name, provider, providerId, username, }: IdentityInput) => SocialIdentity;
|
|
29
|
+
export declare const createForm: (values: Record<string, string>) => URLSearchParams;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/providers/common.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3E,MAAM,MAAM,cAAc,GAAG;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACpB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,aAAa,GAAG;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAIF,KAAK,uBAAuB,GAAG;IAC3B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,0CAInC,cAAc,KAAG,cA0BnB,CAAC;AAEF,eAAO,MAAM,WAAW,GAAU,yBAAyB,gBAAgB,KAAG,OAAO,CAAC,OAAO,CAwB5F,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,qBAAqB,uBAAuB,KAAG,MASjF,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,4EAQ5B,aAAa,KAAG,cAoClB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,eAE3D,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { createError, isAuthError } from "../errors.js";
|
|
2
|
+
import { isRecord } from "../session/guards.js";
|
|
3
|
+
const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
4
|
+
export const requireProviderConfig = ({ callbackUrl, clientId, clientSecret, }) => {
|
|
5
|
+
if (!clientId.trim() || !clientSecret.trim()) {
|
|
6
|
+
throw createError({
|
|
7
|
+
code: "AUTH_CONFIG_INVALID",
|
|
8
|
+
message: "Social provider credentials are required.",
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
try {
|
|
12
|
+
const url = new URL(callbackUrl);
|
|
13
|
+
if ((url.protocol !== "https:" && url.protocol !== "http:") ||
|
|
14
|
+
url.username ||
|
|
15
|
+
url.password) {
|
|
16
|
+
throw new Error("invalid URL");
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
throw createError({
|
|
21
|
+
code: "AUTH_CONFIG_INVALID",
|
|
22
|
+
message: "Social provider callbackUrl must be an absolute HTTP URL.",
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return { callbackUrl, clientId, clientSecret };
|
|
26
|
+
};
|
|
27
|
+
export const requestJson = async ({ init, provider, url }) => {
|
|
28
|
+
try {
|
|
29
|
+
const response = await fetch(url, init);
|
|
30
|
+
const value = await response.json();
|
|
31
|
+
if (!response.ok || (isRecord(value) && typeof value.error === "string")) {
|
|
32
|
+
throw createError({
|
|
33
|
+
code: "SOCIAL_PROVIDER_ERROR",
|
|
34
|
+
message: `${provider} authentication failed.`,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return value;
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
if (isAuthError(error)) {
|
|
41
|
+
throw error;
|
|
42
|
+
}
|
|
43
|
+
throw createError({
|
|
44
|
+
cause: error,
|
|
45
|
+
code: "SOCIAL_PROVIDER_ERROR",
|
|
46
|
+
message: `${provider} authentication failed.`,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
export const requireAccessToken = ({ provider, value }) => {
|
|
51
|
+
if (!isRecord(value) || typeof value.access_token !== "string" || !value.access_token) {
|
|
52
|
+
throw createError({
|
|
53
|
+
code: "SOCIAL_PROVIDER_ERROR",
|
|
54
|
+
message: `${provider} did not return an access token.`,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
return value.access_token;
|
|
58
|
+
};
|
|
59
|
+
export const createIdentity = ({ avatarUrl, email, emailVerified, name, provider, providerId, username, }) => {
|
|
60
|
+
const normalizedEmail = typeof email === "string" ? email.trim().toLowerCase() : "";
|
|
61
|
+
const normalizedId = typeof providerId === "string" || typeof providerId === "number"
|
|
62
|
+
? String(providerId).trim()
|
|
63
|
+
: "";
|
|
64
|
+
const normalizedUsername = typeof username === "string" && username.trim() ? username.trim() : null;
|
|
65
|
+
const normalizedName = typeof name === "string" && name.trim()
|
|
66
|
+
? name.trim()
|
|
67
|
+
: (normalizedUsername ?? normalizedEmail.split("@")[0] ?? "");
|
|
68
|
+
if (!emailVerified ||
|
|
69
|
+
!emailPattern.test(normalizedEmail) ||
|
|
70
|
+
!normalizedId ||
|
|
71
|
+
!normalizedName) {
|
|
72
|
+
throw createError({
|
|
73
|
+
code: "SOCIAL_EMAIL_INVALID",
|
|
74
|
+
message: `${provider} must return a verified email address.`,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return {
|
|
78
|
+
avatarUrl: typeof avatarUrl === "string" && avatarUrl.trim() ? avatarUrl.trim() : null,
|
|
79
|
+
email: normalizedEmail,
|
|
80
|
+
name: normalizedName,
|
|
81
|
+
provider,
|
|
82
|
+
providerId: normalizedId,
|
|
83
|
+
username: normalizedUsername,
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
export const createForm = (values) => {
|
|
87
|
+
return new URLSearchParams(values);
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/providers/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/providers/github.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAGH,KAAK,cAAc,EAItB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC;AA0B1C,eAAO,MAAM,MAAM,GAAI,OAAO,YAAY,KAAG,cA+E5C,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { createError } from "../errors.js";
|
|
2
|
+
import { isRecord } from "../session/guards.js";
|
|
3
|
+
import { createForm, createIdentity, requestJson, requireAccessToken, requireProviderConfig, } from "./common.js";
|
|
4
|
+
const readEmails = (value) => {
|
|
5
|
+
if (!Array.isArray(value)) {
|
|
6
|
+
throw createError({
|
|
7
|
+
code: "SOCIAL_EMAIL_INVALID",
|
|
8
|
+
message: "github did not return a verified email address.",
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
return value.flatMap((item) => {
|
|
12
|
+
return isRecord(item) &&
|
|
13
|
+
typeof item.email === "string" &&
|
|
14
|
+
typeof item.primary === "boolean" &&
|
|
15
|
+
typeof item.verified === "boolean"
|
|
16
|
+
? [{ email: item.email, primary: item.primary, verified: item.verified }]
|
|
17
|
+
: [];
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
export const github = (input) => {
|
|
21
|
+
const config = requireProviderConfig(input);
|
|
22
|
+
return {
|
|
23
|
+
callbackUrl: config.callbackUrl,
|
|
24
|
+
getAuthorizationUrl: ({ codeChallenge, state }) => {
|
|
25
|
+
const url = new URL("https://github.com/login/oauth/authorize");
|
|
26
|
+
url.search = createForm({
|
|
27
|
+
client_id: config.clientId,
|
|
28
|
+
code_challenge: codeChallenge,
|
|
29
|
+
code_challenge_method: "S256",
|
|
30
|
+
redirect_uri: config.callbackUrl,
|
|
31
|
+
response_type: "code",
|
|
32
|
+
scope: "read:user user:email",
|
|
33
|
+
state,
|
|
34
|
+
}).toString();
|
|
35
|
+
return url.toString();
|
|
36
|
+
},
|
|
37
|
+
getIdentity: async ({ code, codeVerifier }) => {
|
|
38
|
+
const token = await requestJson({
|
|
39
|
+
init: {
|
|
40
|
+
body: createForm({
|
|
41
|
+
client_id: config.clientId,
|
|
42
|
+
client_secret: config.clientSecret,
|
|
43
|
+
code,
|
|
44
|
+
code_verifier: codeVerifier,
|
|
45
|
+
redirect_uri: config.callbackUrl,
|
|
46
|
+
}),
|
|
47
|
+
headers: {
|
|
48
|
+
accept: "application/json",
|
|
49
|
+
"content-type": "application/x-www-form-urlencoded",
|
|
50
|
+
},
|
|
51
|
+
method: "POST",
|
|
52
|
+
},
|
|
53
|
+
provider: "github",
|
|
54
|
+
url: "https://github.com/login/oauth/access_token",
|
|
55
|
+
});
|
|
56
|
+
const accessToken = requireAccessToken({
|
|
57
|
+
provider: "github",
|
|
58
|
+
value: token,
|
|
59
|
+
});
|
|
60
|
+
const headers = {
|
|
61
|
+
accept: "application/vnd.github+json",
|
|
62
|
+
authorization: `Bearer ${accessToken}`,
|
|
63
|
+
"x-github-api-version": "2022-11-28",
|
|
64
|
+
};
|
|
65
|
+
const [profile, emailValue] = await Promise.all([
|
|
66
|
+
requestJson({
|
|
67
|
+
init: { headers },
|
|
68
|
+
provider: "github",
|
|
69
|
+
url: "https://api.github.com/user",
|
|
70
|
+
}),
|
|
71
|
+
requestJson({
|
|
72
|
+
init: { headers },
|
|
73
|
+
provider: "github",
|
|
74
|
+
url: "https://api.github.com/user/emails",
|
|
75
|
+
}),
|
|
76
|
+
]);
|
|
77
|
+
const emails = readEmails(emailValue);
|
|
78
|
+
const email = emails.find((value) => value.primary && value.verified) ??
|
|
79
|
+
emails.find((value) => value.verified);
|
|
80
|
+
return createIdentity({
|
|
81
|
+
avatarUrl: isRecord(profile) ? profile.avatar_url : null,
|
|
82
|
+
email: email?.email,
|
|
83
|
+
emailVerified: Boolean(email),
|
|
84
|
+
name: isRecord(profile) ? profile.name : null,
|
|
85
|
+
provider: "github",
|
|
86
|
+
providerId: isRecord(profile) ? profile.id : null,
|
|
87
|
+
username: isRecord(profile) ? profile.login : null,
|
|
88
|
+
});
|
|
89
|
+
},
|
|
90
|
+
id: "github",
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=github.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/providers/github.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../src/providers/google.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAGH,KAAK,cAAc,EAItB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC;AAE1C,eAAO,MAAM,MAAM,GAAI,OAAO,YAAY,KAAG,cAyD5C,CAAC"}
|