@draftlab/auth 0.15.0 → 0.16.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/esm/allow.js +26 -0
- package/dist/esm/client.js +254 -0
- package/dist/esm/core.js +597 -0
- package/dist/esm/css.d.js +0 -0
- package/dist/esm/error.js +88 -0
- package/dist/esm/index.js +5 -0
- package/dist/esm/keys.js +126 -0
- package/dist/esm/mutex.js +53 -0
- package/dist/esm/pkce.js +87 -0
- package/dist/esm/provider/apple.js +15 -0
- package/dist/esm/provider/code.js +62 -0
- package/dist/esm/provider/discord.js +15 -0
- package/dist/esm/provider/facebook.js +15 -0
- package/dist/esm/provider/github.js +15 -0
- package/dist/esm/provider/gitlab.js +15 -0
- package/dist/esm/provider/google.js +16 -0
- package/dist/esm/provider/linkedin.js +15 -0
- package/dist/esm/provider/magiclink.js +83 -0
- package/dist/esm/provider/microsoft.js +15 -0
- package/dist/esm/provider/oauth2.js +130 -0
- package/dist/esm/provider/password.js +331 -0
- package/dist/esm/provider/provider.js +18 -0
- package/dist/esm/provider/reddit.js +15 -0
- package/dist/esm/provider/slack.js +15 -0
- package/dist/esm/provider/spotify.js +15 -0
- package/dist/esm/provider/twitch.js +15 -0
- package/dist/esm/provider/vercel.js +17 -0
- package/dist/esm/random.js +40 -0
- package/dist/esm/revocation.js +27 -0
- package/dist/esm/storage/memory.js +110 -0
- package/dist/esm/storage/storage.js +56 -0
- package/dist/esm/storage/turso.js +93 -0
- package/dist/esm/storage/unstorage.js +78 -0
- package/dist/esm/subject.js +7 -0
- package/dist/esm/themes/theme.js +115 -0
- package/dist/esm/toolkit/client.js +119 -0
- package/dist/esm/toolkit/index.js +25 -0
- package/dist/esm/toolkit/providers/facebook.js +11 -0
- package/dist/esm/toolkit/providers/github.js +11 -0
- package/dist/esm/toolkit/providers/google.js +11 -0
- package/dist/esm/toolkit/providers/strategy.js +0 -0
- package/dist/esm/toolkit/storage.js +81 -0
- package/dist/esm/toolkit/utils.js +18 -0
- package/dist/esm/types.js +0 -0
- package/dist/esm/ui/base.js +478 -0
- package/dist/esm/ui/code.js +186 -0
- package/dist/esm/ui/form.js +46 -0
- package/dist/esm/ui/icon.js +242 -0
- package/dist/esm/ui/magiclink.js +158 -0
- package/dist/esm/ui/password.js +435 -0
- package/dist/esm/ui/select.js +102 -0
- package/dist/esm/util.js +59 -0
- package/dist/{allow.d.mts → types/allow.d.ts} +9 -11
- package/dist/types/allow.d.ts.map +1 -0
- package/dist/types/client.d.ts +462 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/core.d.ts +113 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/{error.d.mts → types/error.d.ts} +95 -97
- package/dist/types/error.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/{keys.d.mts → types/keys.d.ts} +20 -24
- package/dist/types/keys.d.ts.map +1 -0
- package/dist/types/mutex.d.ts +42 -0
- package/dist/types/mutex.d.ts.map +1 -0
- package/dist/{pkce.d.mts → types/pkce.d.ts} +10 -11
- package/dist/types/pkce.d.ts.map +1 -0
- package/dist/types/provider/apple.d.ts +197 -0
- package/dist/types/provider/apple.d.ts.map +1 -0
- package/dist/types/provider/code.d.ts +288 -0
- package/dist/types/provider/code.d.ts.map +1 -0
- package/dist/types/provider/discord.d.ts +206 -0
- package/dist/types/provider/discord.d.ts.map +1 -0
- package/dist/types/provider/facebook.d.ts +200 -0
- package/dist/types/provider/facebook.d.ts.map +1 -0
- package/dist/types/provider/github.d.ts +220 -0
- package/dist/types/provider/github.d.ts.map +1 -0
- package/dist/types/provider/gitlab.d.ts +180 -0
- package/dist/types/provider/gitlab.d.ts.map +1 -0
- package/dist/types/provider/google.d.ts +158 -0
- package/dist/types/provider/google.d.ts.map +1 -0
- package/dist/types/provider/linkedin.d.ts +190 -0
- package/dist/types/provider/linkedin.d.ts.map +1 -0
- package/dist/types/provider/magiclink.d.ts +141 -0
- package/dist/types/provider/magiclink.d.ts.map +1 -0
- package/dist/types/provider/microsoft.d.ts +247 -0
- package/dist/types/provider/microsoft.d.ts.map +1 -0
- package/dist/types/provider/oauth2.d.ts +229 -0
- package/dist/types/provider/oauth2.d.ts.map +1 -0
- package/dist/types/provider/password.d.ts +408 -0
- package/dist/types/provider/password.d.ts.map +1 -0
- package/dist/types/provider/provider.d.ts +226 -0
- package/dist/types/provider/provider.d.ts.map +1 -0
- package/dist/types/provider/reddit.d.ts +159 -0
- package/dist/types/provider/reddit.d.ts.map +1 -0
- package/dist/types/provider/slack.d.ts +171 -0
- package/dist/types/provider/slack.d.ts.map +1 -0
- package/dist/types/provider/spotify.d.ts +168 -0
- package/dist/types/provider/spotify.d.ts.map +1 -0
- package/dist/types/provider/twitch.d.ts +163 -0
- package/dist/types/provider/twitch.d.ts.map +1 -0
- package/dist/types/provider/vercel.d.ts +294 -0
- package/dist/types/provider/vercel.d.ts.map +1 -0
- package/dist/{random.d.mts → types/random.d.ts} +4 -6
- package/dist/types/random.d.ts.map +1 -0
- package/dist/types/revocation.d.ts +76 -0
- package/dist/types/revocation.d.ts.map +1 -0
- package/dist/{storage/memory.d.mts → types/storage/memory.d.ts} +17 -21
- package/dist/types/storage/memory.d.ts.map +1 -0
- package/dist/types/storage/storage.d.ts +177 -0
- package/dist/types/storage/storage.d.ts.map +1 -0
- package/dist/{storage/turso.d.mts → types/storage/turso.d.ts} +4 -8
- package/dist/types/storage/turso.d.ts.map +1 -0
- package/dist/{storage/unstorage.d.mts → types/storage/unstorage.d.ts} +12 -11
- package/dist/types/storage/unstorage.d.ts.map +1 -0
- package/dist/types/subject.d.ts +115 -0
- package/dist/types/subject.d.ts.map +1 -0
- package/dist/types/themes/theme.d.ts +207 -0
- package/dist/types/themes/theme.d.ts.map +1 -0
- package/dist/types/toolkit/client.d.ts +235 -0
- package/dist/types/toolkit/client.d.ts.map +1 -0
- package/dist/types/toolkit/index.d.ts +45 -0
- package/dist/types/toolkit/index.d.ts.map +1 -0
- package/dist/types/toolkit/providers/facebook.d.ts +8 -0
- package/dist/types/toolkit/providers/facebook.d.ts.map +1 -0
- package/dist/types/toolkit/providers/github.d.ts +8 -0
- package/dist/types/toolkit/providers/github.d.ts.map +1 -0
- package/dist/types/toolkit/providers/google.d.ts +8 -0
- package/dist/types/toolkit/providers/google.d.ts.map +1 -0
- package/dist/types/toolkit/providers/strategy.d.ts +38 -0
- package/dist/types/toolkit/providers/strategy.d.ts.map +1 -0
- package/dist/{toolkit/storage.d.mts → types/toolkit/storage.d.ts} +37 -39
- package/dist/types/toolkit/storage.d.ts.map +1 -0
- package/dist/{toolkit/utils.d.mts → types/toolkit/utils.d.ts} +2 -4
- package/dist/types/toolkit/utils.d.ts.map +1 -0
- package/dist/types/types.d.ts +92 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/ui/base.d.ts +18 -0
- package/dist/types/ui/base.d.ts.map +1 -0
- package/dist/types/ui/code.d.ts +43 -0
- package/dist/types/ui/code.d.ts.map +1 -0
- package/dist/types/ui/form.d.ts +24 -0
- package/dist/types/ui/form.d.ts.map +1 -0
- package/dist/types/ui/icon.d.ts +60 -0
- package/dist/types/ui/icon.d.ts.map +1 -0
- package/dist/types/ui/magiclink.d.ts +41 -0
- package/dist/types/ui/magiclink.d.ts.map +1 -0
- package/dist/types/ui/password.d.ts +43 -0
- package/dist/types/ui/password.d.ts.map +1 -0
- package/dist/types/ui/select.d.ts +33 -0
- package/dist/types/ui/select.d.ts.map +1 -0
- package/dist/{util.d.mts → types/util.d.ts} +11 -13
- package/dist/types/util.d.ts.map +1 -0
- package/package.json +10 -16
- package/dist/adapters/node.d.mts +0 -18
- package/dist/adapters/node.mjs +0 -69
- package/dist/allow.mjs +0 -63
- package/dist/client.d.mts +0 -456
- package/dist/client.mjs +0 -283
- package/dist/core.d.mts +0 -110
- package/dist/core.mjs +0 -595
- package/dist/error.mjs +0 -237
- package/dist/index.d.mts +0 -2
- package/dist/index.mjs +0 -3
- package/dist/keys.mjs +0 -146
- package/dist/mutex.d.mts +0 -44
- package/dist/mutex.mjs +0 -110
- package/dist/pkce.mjs +0 -157
- package/dist/provider/apple.d.mts +0 -111
- package/dist/provider/apple.mjs +0 -164
- package/dist/provider/code.d.mts +0 -228
- package/dist/provider/code.mjs +0 -246
- package/dist/provider/discord.d.mts +0 -146
- package/dist/provider/discord.mjs +0 -156
- package/dist/provider/facebook.d.mts +0 -142
- package/dist/provider/facebook.mjs +0 -150
- package/dist/provider/github.d.mts +0 -140
- package/dist/provider/github.mjs +0 -169
- package/dist/provider/gitlab.d.mts +0 -106
- package/dist/provider/gitlab.mjs +0 -147
- package/dist/provider/google.d.mts +0 -112
- package/dist/provider/google.mjs +0 -109
- package/dist/provider/linkedin.d.mts +0 -132
- package/dist/provider/linkedin.mjs +0 -142
- package/dist/provider/magiclink.d.mts +0 -89
- package/dist/provider/magiclink.mjs +0 -143
- package/dist/provider/microsoft.d.mts +0 -178
- package/dist/provider/microsoft.mjs +0 -177
- package/dist/provider/oauth2.d.mts +0 -176
- package/dist/provider/oauth2.mjs +0 -222
- package/dist/provider/passkey.d.mts +0 -104
- package/dist/provider/passkey.mjs +0 -320
- package/dist/provider/password.d.mts +0 -412
- package/dist/provider/password.mjs +0 -363
- package/dist/provider/provider.d.mts +0 -227
- package/dist/provider/provider.mjs +0 -44
- package/dist/provider/reddit.d.mts +0 -107
- package/dist/provider/reddit.mjs +0 -127
- package/dist/provider/slack.d.mts +0 -114
- package/dist/provider/slack.mjs +0 -138
- package/dist/provider/spotify.d.mts +0 -113
- package/dist/provider/spotify.mjs +0 -135
- package/dist/provider/totp.d.mts +0 -112
- package/dist/provider/totp.mjs +0 -191
- package/dist/provider/twitch.d.mts +0 -108
- package/dist/provider/twitch.mjs +0 -131
- package/dist/provider/vercel.d.mts +0 -177
- package/dist/provider/vercel.mjs +0 -230
- package/dist/random.mjs +0 -86
- package/dist/revocation.d.mts +0 -55
- package/dist/revocation.mjs +0 -63
- package/dist/router/context.d.mts +0 -21
- package/dist/router/context.mjs +0 -193
- package/dist/router/cookies.d.mts +0 -8
- package/dist/router/cookies.mjs +0 -13
- package/dist/router/index.d.mts +0 -21
- package/dist/router/index.mjs +0 -107
- package/dist/router/matcher.d.mts +0 -15
- package/dist/router/matcher.mjs +0 -76
- package/dist/router/middleware/cors.d.mts +0 -15
- package/dist/router/middleware/cors.mjs +0 -114
- package/dist/router/safe-request.d.mts +0 -52
- package/dist/router/safe-request.mjs +0 -160
- package/dist/router/types.d.mts +0 -67
- package/dist/router/types.mjs +0 -1
- package/dist/router/variables.d.mts +0 -12
- package/dist/router/variables.mjs +0 -20
- package/dist/storage/memory.mjs +0 -125
- package/dist/storage/storage.d.mts +0 -179
- package/dist/storage/storage.mjs +0 -104
- package/dist/storage/turso.mjs +0 -117
- package/dist/storage/unstorage.mjs +0 -103
- package/dist/subject.d.mts +0 -62
- package/dist/subject.mjs +0 -36
- package/dist/themes/theme.d.mts +0 -209
- package/dist/themes/theme.mjs +0 -120
- package/dist/toolkit/client.d.mts +0 -169
- package/dist/toolkit/client.mjs +0 -209
- package/dist/toolkit/index.d.mts +0 -9
- package/dist/toolkit/index.mjs +0 -9
- package/dist/toolkit/providers/facebook.d.mts +0 -12
- package/dist/toolkit/providers/facebook.mjs +0 -16
- package/dist/toolkit/providers/github.d.mts +0 -12
- package/dist/toolkit/providers/github.mjs +0 -16
- package/dist/toolkit/providers/google.d.mts +0 -12
- package/dist/toolkit/providers/google.mjs +0 -20
- package/dist/toolkit/providers/strategy.d.mts +0 -40
- package/dist/toolkit/providers/strategy.mjs +0 -1
- package/dist/toolkit/storage.mjs +0 -157
- package/dist/toolkit/utils.mjs +0 -30
- package/dist/types.d.mts +0 -94
- package/dist/types.mjs +0 -1
- package/dist/ui/base.d.mts +0 -30
- package/dist/ui/base.mjs +0 -407
- package/dist/ui/code.d.mts +0 -43
- package/dist/ui/code.mjs +0 -173
- package/dist/ui/form.d.mts +0 -32
- package/dist/ui/form.mjs +0 -49
- package/dist/ui/icon.d.mts +0 -58
- package/dist/ui/icon.mjs +0 -247
- package/dist/ui/magiclink.d.mts +0 -41
- package/dist/ui/magiclink.mjs +0 -152
- package/dist/ui/passkey.d.mts +0 -27
- package/dist/ui/passkey.mjs +0 -323
- package/dist/ui/password.d.mts +0 -42
- package/dist/ui/password.mjs +0 -402
- package/dist/ui/select.d.mts +0 -34
- package/dist/ui/select.mjs +0 -98
- package/dist/ui/totp.d.mts +0 -34
- package/dist/ui/totp.mjs +0 -270
- package/dist/util.mjs +0 -128
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"facebook.d.ts","sourceRoot":"","sources":["../../../src/provider/facebook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AAEH,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAEnE;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,mBAAmB;IAC1D;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IAEzB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAE7B;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAA;IAEzB;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,cAAc,qEAStD,CAAA"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub authentication provider for Draft Auth.
|
|
3
|
+
* Implements OAuth 2.0 flow for authenticating users with their GitHub accounts.
|
|
4
|
+
*
|
|
5
|
+
* ## Quick Setup
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { GithubProvider } from "@draftlab/auth/provider/github"
|
|
9
|
+
*
|
|
10
|
+
* export default issuer({
|
|
11
|
+
* basePath: "/auth", // Important for callback URL
|
|
12
|
+
* providers: {
|
|
13
|
+
* github: GithubProvider({
|
|
14
|
+
* clientID: process.env.GITHUB_CLIENT_ID,
|
|
15
|
+
* clientSecret: process.env.GITHUB_CLIENT_SECRET,
|
|
16
|
+
* scopes: ["user:email", "read:user"]
|
|
17
|
+
* })
|
|
18
|
+
* }
|
|
19
|
+
* })
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* **Callback URL Pattern**: `{baseURL}{basePath}/{provider}/callback`
|
|
23
|
+
* - Development: `http://localhost:3000/auth/github/callback`
|
|
24
|
+
* - Production: `https://yourapp.com/auth/github/callback`
|
|
25
|
+
*
|
|
26
|
+
* Register this URL in your GitHub App/OAuth App settings.
|
|
27
|
+
*
|
|
28
|
+
* ## GitHub App vs OAuth App
|
|
29
|
+
*
|
|
30
|
+
* This provider works with both GitHub OAuth Apps and GitHub Apps:
|
|
31
|
+
*
|
|
32
|
+
* ### OAuth App (Recommended for user authentication)
|
|
33
|
+
* ```ts
|
|
34
|
+
* GithubProvider({
|
|
35
|
+
* clientID: "your-oauth-app-client-id",
|
|
36
|
+
* clientSecret: "your-oauth-app-client-secret",
|
|
37
|
+
* scopes: ["user:email", "read:user"]
|
|
38
|
+
* })
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* ### GitHub App (For organization-level integrations)
|
|
42
|
+
* ```ts
|
|
43
|
+
* GithubProvider({
|
|
44
|
+
* clientID: "your-github-app-client-id",
|
|
45
|
+
* clientSecret: "your-github-app-client-secret",
|
|
46
|
+
* scopes: ["user:email", "read:user", "repo"]
|
|
47
|
+
* })
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* ## Common Scopes
|
|
51
|
+
*
|
|
52
|
+
* - `user:email` - Access user's email addresses
|
|
53
|
+
* - `read:user` - Read user profile information
|
|
54
|
+
* - `repo` - Access public and private repositories
|
|
55
|
+
* - `public_repo` - Access public repositories only
|
|
56
|
+
* - `read:org` - Read organization membership
|
|
57
|
+
* - `gist` - Create and update gists
|
|
58
|
+
*
|
|
59
|
+
* ## User Data Access
|
|
60
|
+
*
|
|
61
|
+
* ```ts
|
|
62
|
+
* success: async (ctx, value) => {
|
|
63
|
+
* if (value.provider === "github") {
|
|
64
|
+
* const accessToken = value.tokenset.access
|
|
65
|
+
*
|
|
66
|
+
* // Fetch user information
|
|
67
|
+
* const userResponse = await fetch('https://api.github.com/user', {
|
|
68
|
+
* headers: { Authorization: `Bearer ${accessToken}` }
|
|
69
|
+
* })
|
|
70
|
+
* const user = await userResponse.json()
|
|
71
|
+
*
|
|
72
|
+
* // Fetch user emails (requires user:email scope)
|
|
73
|
+
* const emailsResponse = await fetch('https://api.github.com/user/emails', {
|
|
74
|
+
* headers: { Authorization: `Bearer ${accessToken}` }
|
|
75
|
+
* })
|
|
76
|
+
* const emails = await emailsResponse.json()
|
|
77
|
+
*
|
|
78
|
+
* // User info: `${user.login} (${user.name})`
|
|
79
|
+
* // Primary email: emails.find(e => e.primary)?.email
|
|
80
|
+
* }
|
|
81
|
+
* }
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* @packageDocumentation
|
|
85
|
+
*/
|
|
86
|
+
import { type Oauth2WrappedConfig } from "./oauth2";
|
|
87
|
+
/**
|
|
88
|
+
* Configuration options for GitHub OAuth 2.0 provider.
|
|
89
|
+
* Extends the base OAuth 2.0 configuration with GitHub-specific documentation.
|
|
90
|
+
*/
|
|
91
|
+
export interface GithubConfig extends Oauth2WrappedConfig {
|
|
92
|
+
/**
|
|
93
|
+
* GitHub OAuth App client ID or GitHub App client ID.
|
|
94
|
+
* Found in your GitHub App settings or OAuth App settings.
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```ts
|
|
98
|
+
* {
|
|
99
|
+
* clientID: "Iv1.a629723000043722" // OAuth App
|
|
100
|
+
* // or
|
|
101
|
+
* clientID: "Iv23liAG5t7VwMkUsKTi" // GitHub App
|
|
102
|
+
* }
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
readonly clientID: string;
|
|
106
|
+
/**
|
|
107
|
+
* GitHub OAuth App client secret or GitHub App client secret.
|
|
108
|
+
* Keep this secure and never expose it to client-side code.
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```ts
|
|
112
|
+
* {
|
|
113
|
+
* clientSecret: process.env.GITHUB_CLIENT_SECRET
|
|
114
|
+
* }
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
readonly clientSecret: string;
|
|
118
|
+
/**
|
|
119
|
+
* GitHub OAuth scopes to request access for.
|
|
120
|
+
* Determines what data and actions your app can access.
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```ts
|
|
124
|
+
* {
|
|
125
|
+
* scopes: [
|
|
126
|
+
* "user:email", // Access user email addresses
|
|
127
|
+
* "read:user", // Read user profile info
|
|
128
|
+
* "public_repo", // Access public repositories
|
|
129
|
+
* "read:org" // Read organization membership
|
|
130
|
+
* ]
|
|
131
|
+
* }
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
readonly scopes: string[];
|
|
135
|
+
/**
|
|
136
|
+
* Additional query parameters for GitHub OAuth authorization.
|
|
137
|
+
* Useful for GitHub-specific options like restricting to organizations.
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```ts
|
|
141
|
+
* {
|
|
142
|
+
* query: {
|
|
143
|
+
* allow_signup: "false", // Disable new account creation
|
|
144
|
+
* login: "suggested-username" // Pre-fill username field
|
|
145
|
+
* }
|
|
146
|
+
* }
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
readonly query?: Record<string, string>;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Creates a GitHub OAuth 2.0 authentication provider.
|
|
153
|
+
* Supports both GitHub OAuth Apps and GitHub Apps for user authentication.
|
|
154
|
+
*
|
|
155
|
+
* @param config - GitHub OAuth 2.0 configuration
|
|
156
|
+
* @returns OAuth 2.0 provider configured for GitHub
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```ts
|
|
160
|
+
* // Basic GitHub authentication
|
|
161
|
+
* const basicGithub = GithubProvider({
|
|
162
|
+
* clientID: process.env.GITHUB_CLIENT_ID,
|
|
163
|
+
* clientSecret: process.env.GITHUB_CLIENT_SECRET
|
|
164
|
+
* })
|
|
165
|
+
*
|
|
166
|
+
* // GitHub with specific scopes
|
|
167
|
+
* const githubWithScopes = GithubProvider({
|
|
168
|
+
* clientID: process.env.GITHUB_CLIENT_ID,
|
|
169
|
+
* clientSecret: process.env.GITHUB_CLIENT_SECRET,
|
|
170
|
+
* scopes: [
|
|
171
|
+
* "user:email",
|
|
172
|
+
* "read:user",
|
|
173
|
+
* "public_repo",
|
|
174
|
+
* "read:org"
|
|
175
|
+
* ]
|
|
176
|
+
* })
|
|
177
|
+
*
|
|
178
|
+
* // GitHub with custom authorization options
|
|
179
|
+
* const restrictedGithub = GithubProvider({
|
|
180
|
+
* clientID: process.env.GITHUB_CLIENT_ID,
|
|
181
|
+
* clientSecret: process.env.GITHUB_CLIENT_SECRET,
|
|
182
|
+
* scopes: ["user:email", "read:user"],
|
|
183
|
+
* query: {
|
|
184
|
+
* allow_signup: "false" // Don't allow new GitHub account creation
|
|
185
|
+
* }
|
|
186
|
+
* })
|
|
187
|
+
*
|
|
188
|
+
* // Using the access token to fetch data
|
|
189
|
+
* export default issuer({
|
|
190
|
+
* providers: { github: githubWithScopes },
|
|
191
|
+
* success: async (ctx, value) => {
|
|
192
|
+
* if (value.provider === "github") {
|
|
193
|
+
* const token = value.tokenset.access
|
|
194
|
+
*
|
|
195
|
+
* // Get user profile
|
|
196
|
+
* const userRes = await fetch('https://api.github.com/user', {
|
|
197
|
+
* headers: { Authorization: `Bearer ${token}` }
|
|
198
|
+
* })
|
|
199
|
+
* const user = await userRes.json()
|
|
200
|
+
*
|
|
201
|
+
* // Get user repositories (if repo scope granted)
|
|
202
|
+
* const reposRes = await fetch('https://api.github.com/user/repos', {
|
|
203
|
+
* headers: { Authorization: `Bearer ${token}` }
|
|
204
|
+
* })
|
|
205
|
+
* const repos = await reposRes.json()
|
|
206
|
+
*
|
|
207
|
+
* return ctx.subject("user", {
|
|
208
|
+
* githubId: user.id,
|
|
209
|
+
* username: user.login,
|
|
210
|
+
* email: user.email,
|
|
211
|
+
* name: user.name,
|
|
212
|
+
* repoCount: repos.length
|
|
213
|
+
* })
|
|
214
|
+
* }
|
|
215
|
+
* }
|
|
216
|
+
* })
|
|
217
|
+
* ```
|
|
218
|
+
*/
|
|
219
|
+
export declare const GithubProvider: (config: GithubConfig) => import("./provider").Provider<import("./oauth2").Oauth2UserData>;
|
|
220
|
+
//# sourceMappingURL=github.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../src/provider/github.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AAEH,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAEnE;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,mBAAmB;IACxD;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IAEzB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAE7B;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAA;IAEzB;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,YAAY,qEASlD,CAAA"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitLab authentication provider for Draft Auth.
|
|
3
|
+
* Implements OAuth 2.0 flow for authenticating users with their GitLab accounts.
|
|
4
|
+
*
|
|
5
|
+
* ## Quick Setup
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { GitlabProvider } from "@draftlab/auth/provider/gitlab"
|
|
9
|
+
*
|
|
10
|
+
* export default issuer({
|
|
11
|
+
* basePath: "/auth", // Important for callback URL
|
|
12
|
+
* providers: {
|
|
13
|
+
* gitlab: GitlabProvider({
|
|
14
|
+
* clientID: process.env.GITLAB_CLIENT_ID,
|
|
15
|
+
* clientSecret: process.env.GITLAB_CLIENT_SECRET,
|
|
16
|
+
* scopes: ["read_user", "read_api"]
|
|
17
|
+
* })
|
|
18
|
+
* }
|
|
19
|
+
* })
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* **Callback URL Pattern**: `{baseURL}{basePath}/{provider}/callback`
|
|
23
|
+
* - Development: `http://localhost:3000/auth/gitlab/callback`
|
|
24
|
+
* - Production: `https://yourapp.com/auth/gitlab/callback`
|
|
25
|
+
*
|
|
26
|
+
* Register this URL in your GitLab Application settings.
|
|
27
|
+
*
|
|
28
|
+
* ## Common Scopes
|
|
29
|
+
*
|
|
30
|
+
* - `read_user` - Access user profile
|
|
31
|
+
* - `read_api` - Read-access to the API
|
|
32
|
+
* - `read_repository` - Access to project repositories
|
|
33
|
+
* - `write_repository` - Write access to repositories
|
|
34
|
+
* - `api` - Full API access
|
|
35
|
+
* - `read_user_email` - Access user email
|
|
36
|
+
*
|
|
37
|
+
* ## Self-Hosted GitLab
|
|
38
|
+
*
|
|
39
|
+
* For self-hosted GitLab instances, you can override the endpoint URLs:
|
|
40
|
+
*
|
|
41
|
+
* ```ts
|
|
42
|
+
* const selfHostedGitlab = Oauth2Provider({
|
|
43
|
+
* clientID: process.env.GITLAB_CLIENT_ID,
|
|
44
|
+
* clientSecret: process.env.GITLAB_CLIENT_SECRET,
|
|
45
|
+
* scopes: ["read_user"],
|
|
46
|
+
* type: "gitlab",
|
|
47
|
+
* endpoint: {
|
|
48
|
+
* authorization: "https://your-gitlab.com/oauth/authorize",
|
|
49
|
+
* token: "https://your-gitlab.com/oauth/token"
|
|
50
|
+
* }
|
|
51
|
+
* })
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* **Callback URL Pattern**: `{baseURL}{basePath}/{provider}/callback`
|
|
55
|
+
* - Development: `http://localhost:3000/auth/gitlab/callback`
|
|
56
|
+
* - Production: `https://yourapp.com/auth/gitlab/callback`
|
|
57
|
+
*
|
|
58
|
+
* Register this URL in your GitLab Application settings.
|
|
59
|
+
*
|
|
60
|
+
* ## User Data Access
|
|
61
|
+
*
|
|
62
|
+
* ```ts
|
|
63
|
+
* success: async (ctx, value) => {
|
|
64
|
+
* if (value.provider === "gitlab") {
|
|
65
|
+
* const accessToken = value.tokenset.access
|
|
66
|
+
*
|
|
67
|
+
* // Fetch user information
|
|
68
|
+
* const userResponse = await fetch('https://gitlab.com/api/v4/user', {
|
|
69
|
+
* headers: { Authorization: `Bearer ${accessToken}` }
|
|
70
|
+
* })
|
|
71
|
+
* const user = await userResponse.json()
|
|
72
|
+
*
|
|
73
|
+
* // User info: id, username, email, name, avatar_url
|
|
74
|
+
* }
|
|
75
|
+
* }
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* @packageDocumentation
|
|
79
|
+
*/
|
|
80
|
+
import { type Oauth2WrappedConfig } from "./oauth2";
|
|
81
|
+
/**
|
|
82
|
+
* Configuration options for GitLab OAuth 2.0 provider.
|
|
83
|
+
* Extends the base OAuth 2.0 configuration with GitLab-specific documentation.
|
|
84
|
+
*/
|
|
85
|
+
export interface GitlabConfig extends Oauth2WrappedConfig {
|
|
86
|
+
/**
|
|
87
|
+
* GitLab application client ID.
|
|
88
|
+
* Get this from your GitLab application settings.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```ts
|
|
92
|
+
* {
|
|
93
|
+
* clientID: "abcdef123456"
|
|
94
|
+
* }
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
readonly clientID: string;
|
|
98
|
+
/**
|
|
99
|
+
* GitLab application client secret.
|
|
100
|
+
* Keep this secure and never expose it to client-side code.
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```ts
|
|
104
|
+
* {
|
|
105
|
+
* clientSecret: process.env.GITLAB_CLIENT_SECRET
|
|
106
|
+
* }
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
readonly clientSecret: string;
|
|
110
|
+
/**
|
|
111
|
+
* GitLab OAuth scopes to request access for.
|
|
112
|
+
* Determines what data and actions your app can access.
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```ts
|
|
116
|
+
* {
|
|
117
|
+
* scopes: [
|
|
118
|
+
* "read_user", // Access user profile
|
|
119
|
+
* "read_api", // Read-access to API
|
|
120
|
+
* "read_repository" // Access repositories
|
|
121
|
+
* ]
|
|
122
|
+
* }
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
readonly scopes: string[];
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Creates a GitLab OAuth 2.0 authentication provider.
|
|
129
|
+
* Allows users to authenticate using their GitLab accounts (gitlab.com or self-hosted).
|
|
130
|
+
*
|
|
131
|
+
* @param config - GitLab OAuth 2.0 configuration
|
|
132
|
+
* @returns OAuth 2.0 provider configured for GitLab
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```ts
|
|
136
|
+
* // Basic GitLab.com authentication
|
|
137
|
+
* const basicGitlab = GitlabProvider({
|
|
138
|
+
* clientID: process.env.GITLAB_CLIENT_ID,
|
|
139
|
+
* clientSecret: process.env.GITLAB_CLIENT_SECRET
|
|
140
|
+
* })
|
|
141
|
+
*
|
|
142
|
+
* // GitLab with read access
|
|
143
|
+
* const gitlabWithRead = GitlabProvider({
|
|
144
|
+
* clientID: process.env.GITLAB_CLIENT_ID,
|
|
145
|
+
* clientSecret: process.env.GITLAB_CLIENT_SECRET,
|
|
146
|
+
* scopes: ["read_user", "read_api"]
|
|
147
|
+
* })
|
|
148
|
+
*
|
|
149
|
+
* // Using the access token to fetch user data
|
|
150
|
+
* export default issuer({
|
|
151
|
+
* providers: { gitlab: gitlabWithRead },
|
|
152
|
+
* success: async (ctx, value) => {
|
|
153
|
+
* if (value.provider === "gitlab") {
|
|
154
|
+
* const token = value.tokenset.access
|
|
155
|
+
*
|
|
156
|
+
* const userRes = await fetch('https://gitlab.com/api/v4/user', {
|
|
157
|
+
* headers: { Authorization: `Bearer ${token}` }
|
|
158
|
+
* })
|
|
159
|
+
* const user = await userRes.json()
|
|
160
|
+
*
|
|
161
|
+
* return ctx.subject("user", {
|
|
162
|
+
* gitlabId: user.id,
|
|
163
|
+
* username: user.username,
|
|
164
|
+
* email: user.email,
|
|
165
|
+
* name: user.name,
|
|
166
|
+
* avatar: user.avatar_url
|
|
167
|
+
* })
|
|
168
|
+
* }
|
|
169
|
+
* }
|
|
170
|
+
* })
|
|
171
|
+
* ```
|
|
172
|
+
*
|
|
173
|
+
* **Callback URL Pattern**: `{baseURL}{basePath}/{provider}/callback`
|
|
174
|
+
* - Development: `http://localhost:3000/auth/gitlab/callback`
|
|
175
|
+
* - Production: `https://yourapp.com/auth/gitlab/callback`
|
|
176
|
+
*
|
|
177
|
+
* Register this URL in your GitLab Application settings.
|
|
178
|
+
*/
|
|
179
|
+
export declare const GitlabProvider: (config: GitlabConfig) => import("./provider").Provider<import("./oauth2").Oauth2UserData>;
|
|
180
|
+
//# sourceMappingURL=gitlab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitlab.d.ts","sourceRoot":"","sources":["../../../src/provider/gitlab.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AAEH,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAEnE;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,mBAAmB;IACxD;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IAEzB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAE7B;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,YAAY,qEASlD,CAAA"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Google OAuth 2.0 authentication provider for Draft Auth.
|
|
3
|
+
* Provides access tokens for calling Google APIs on behalf of users.
|
|
4
|
+
*
|
|
5
|
+
* ## Quick Setup
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { GoogleProvider } from "@draftlab/auth/provider/google"
|
|
9
|
+
*
|
|
10
|
+
* export default issuer({
|
|
11
|
+
* basePath: "/auth", // Important for callback URL
|
|
12
|
+
* providers: {
|
|
13
|
+
* google: GoogleProvider({
|
|
14
|
+
* clientID: process.env.GOOGLE_CLIENT_ID,
|
|
15
|
+
* clientSecret: process.env.GOOGLE_CLIENT_SECRET,
|
|
16
|
+
* scopes: ["profile", "email", "https://www.googleapis.com/auth/calendar.readonly"]
|
|
17
|
+
* })
|
|
18
|
+
* }
|
|
19
|
+
* })
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* **Callback URL Pattern**: `{baseURL}{basePath}/{provider}/callback`
|
|
23
|
+
* - Development: `http://localhost:3000/auth/google/callback`
|
|
24
|
+
* - Production: `https://yourapp.com/auth/google/callback`
|
|
25
|
+
*
|
|
26
|
+
* Register this URL in your Google Cloud Console OAuth 2.0 credentials.
|
|
27
|
+
*
|
|
28
|
+
* ## Configuration Options
|
|
29
|
+
*
|
|
30
|
+
* - Access tokens for Google API calls
|
|
31
|
+
* - Refresh tokens for long-lived access
|
|
32
|
+
* - Support for offline access
|
|
33
|
+
* - Custom scopes for specific Google services
|
|
34
|
+
*
|
|
35
|
+
* ## User Data Access
|
|
36
|
+
*
|
|
37
|
+
* ```ts
|
|
38
|
+
* success: async (ctx, value) => {
|
|
39
|
+
* if (value.provider === "google") {
|
|
40
|
+
* // Access token for API calls: value.tokenset.access
|
|
41
|
+
* // Refresh token (if requested): value.tokenset.refresh
|
|
42
|
+
* // Use the access token to call Google APIs
|
|
43
|
+
* const response = await fetch('https://www.googleapis.com/oauth2/v2/userinfo', {
|
|
44
|
+
* headers: { Authorization: `Bearer ${value.tokenset.access}` }
|
|
45
|
+
* })
|
|
46
|
+
* }
|
|
47
|
+
* }
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* @packageDocumentation
|
|
51
|
+
*/
|
|
52
|
+
import { type Oauth2WrappedConfig } from "./oauth2";
|
|
53
|
+
/**
|
|
54
|
+
* Configuration options for Google OAuth 2.0 provider.
|
|
55
|
+
* Extends the base OAuth 2.0 configuration with Google-specific defaults.
|
|
56
|
+
*/
|
|
57
|
+
export interface GoogleConfig extends Oauth2WrappedConfig {
|
|
58
|
+
/**
|
|
59
|
+
* Google OAuth 2.0 client ID from Google Cloud Console.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* {
|
|
64
|
+
* clientID: "123456789-abc123.apps.googleusercontent.com"
|
|
65
|
+
* }
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
readonly clientID: string;
|
|
69
|
+
/**
|
|
70
|
+
* Google OAuth 2.0 client secret from Google Cloud Console.
|
|
71
|
+
* Required for server-side OAuth 2.0 flows.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```ts
|
|
75
|
+
* {
|
|
76
|
+
* clientSecret: process.env.GOOGLE_CLIENT_SECRET
|
|
77
|
+
* }
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
readonly clientSecret: string;
|
|
81
|
+
/**
|
|
82
|
+
* Google OAuth 2.0 scopes to request.
|
|
83
|
+
* Common scopes include 'profile', 'email', and specific Google API scopes.
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```ts
|
|
87
|
+
* {
|
|
88
|
+
* scopes: [
|
|
89
|
+
* "profile",
|
|
90
|
+
* "email",
|
|
91
|
+
* "https://www.googleapis.com/auth/calendar.readonly",
|
|
92
|
+
* "https://www.googleapis.com/auth/drive.file"
|
|
93
|
+
* ]
|
|
94
|
+
* }
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
readonly scopes: string[];
|
|
98
|
+
/**
|
|
99
|
+
* Additional query parameters for Google OAuth 2.0.
|
|
100
|
+
* Useful for Google-specific options like hosted domain restrictions.
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```ts
|
|
104
|
+
* {
|
|
105
|
+
* query: {
|
|
106
|
+
* hd: "mycompany.com", // Restrict to Google Workspace domain
|
|
107
|
+
* access_type: "offline", // Request refresh token
|
|
108
|
+
* prompt: "consent", // Force consent screen
|
|
109
|
+
* include_granted_scopes: "true" // Incremental authorization
|
|
110
|
+
* }
|
|
111
|
+
* }
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
readonly query?: Record<string, string>;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Creates a Google OAuth 2.0 authentication provider.
|
|
118
|
+
* Use this when you need access tokens to call Google APIs on behalf of the user.
|
|
119
|
+
*
|
|
120
|
+
* @param config - Google OAuth 2.0 configuration
|
|
121
|
+
* @returns OAuth 2.0 provider configured for Google
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```ts
|
|
125
|
+
* // Basic setup for user authentication
|
|
126
|
+
* const basicGoogle = GoogleProvider({
|
|
127
|
+
* clientID: process.env.GOOGLE_CLIENT_ID,
|
|
128
|
+
* clientSecret: process.env.GOOGLE_CLIENT_SECRET
|
|
129
|
+
* })
|
|
130
|
+
*
|
|
131
|
+
* // Advanced setup with API access
|
|
132
|
+
* const advancedGoogle = GoogleProvider({
|
|
133
|
+
* clientID: process.env.GOOGLE_CLIENT_ID,
|
|
134
|
+
* clientSecret: process.env.GOOGLE_CLIENT_SECRET,
|
|
135
|
+
* scopes: [
|
|
136
|
+
* "profile",
|
|
137
|
+
* "email",
|
|
138
|
+
* "https://www.googleapis.com/auth/calendar.readonly",
|
|
139
|
+
* "https://www.googleapis.com/auth/drive.file"
|
|
140
|
+
* ],
|
|
141
|
+
* query: {
|
|
142
|
+
* access_type: "offline", // Get refresh token
|
|
143
|
+
* prompt: "consent", // Force consent for refresh token
|
|
144
|
+
* hd: "mycompany.com" // Restrict to company domain
|
|
145
|
+
* }
|
|
146
|
+
* })
|
|
147
|
+
*
|
|
148
|
+
* // Use the access token for API calls
|
|
149
|
+
* success: async (ctx, value) => {
|
|
150
|
+
* const accessToken = value.tokenset.access
|
|
151
|
+
* const response = await fetch('https://www.googleapis.com/calendar/v3/calendars/primary/events', {
|
|
152
|
+
* headers: { Authorization: `Bearer ${accessToken}` }
|
|
153
|
+
* })
|
|
154
|
+
* }
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
export declare const GoogleProvider: (config: GoogleConfig) => import("./provider").Provider<import("./oauth2").Oauth2UserData>;
|
|
158
|
+
//# sourceMappingURL=google.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../src/provider/google.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAEnE;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,mBAAmB;IACxD;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IAEzB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAE7B;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAA;IAEzB;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,YAAY,qEAUlD,CAAA"}
|