@turnkey/react-wallet-kit 1.11.0 → 1.11.1
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/providers/client/Provider.d.ts.map +1 -1
- package/dist/providers/client/Provider.js +300 -303
- package/dist/providers/client/Provider.js.map +1 -1
- package/dist/providers/client/Provider.mjs +145 -156
- package/dist/providers/client/Provider.mjs.map +1 -1
- package/dist/utils/oauth/completion.d.ts +132 -0
- package/dist/utils/oauth/completion.d.ts.map +1 -0
- package/dist/utils/oauth/completion.js +136 -0
- package/dist/utils/oauth/completion.js.map +1 -0
- package/dist/utils/oauth/completion.mjs +176 -0
- package/dist/utils/oauth/completion.mjs.map +1 -0
- package/dist/utils/oauth/config.d.ts +34 -0
- package/dist/utils/oauth/config.d.ts.map +1 -0
- package/dist/utils/oauth/config.js +69 -0
- package/dist/utils/oauth/config.js.map +1 -0
- package/dist/utils/oauth/config.mjs +54 -0
- package/dist/utils/oauth/config.mjs.map +1 -0
- package/dist/utils/oauth/helpers.d.ts +13 -0
- package/dist/utils/oauth/helpers.d.ts.map +1 -0
- package/dist/utils/oauth/helpers.js +38 -0
- package/dist/utils/oauth/helpers.js.map +1 -0
- package/dist/utils/oauth/helpers.mjs +35 -0
- package/dist/utils/oauth/helpers.mjs.map +1 -0
- package/dist/utils/oauth/index.d.ts +7 -0
- package/dist/utils/oauth/index.d.ts.map +1 -0
- package/dist/utils/oauth/pkce.d.ts +14 -0
- package/dist/utils/oauth/pkce.d.ts.map +1 -0
- package/dist/utils/oauth/pkce.js +48 -0
- package/dist/utils/oauth/pkce.js.map +1 -0
- package/dist/utils/oauth/pkce.mjs +85 -0
- package/dist/utils/oauth/pkce.mjs.map +1 -0
- package/dist/utils/oauth/storage.d.ts +48 -0
- package/dist/utils/oauth/storage.d.ts.map +1 -0
- package/dist/utils/oauth/storage.js +87 -0
- package/dist/utils/oauth/storage.js.map +1 -0
- package/dist/utils/oauth/storage.mjs +78 -0
- package/dist/utils/oauth/storage.mjs.map +1 -0
- package/dist/utils/oauth/url.d.ts +92 -0
- package/dist/utils/oauth/url.d.ts.map +1 -0
- package/dist/utils/oauth/url.js +222 -0
- package/dist/utils/oauth/url.js.map +1 -0
- package/dist/utils/oauth/url.mjs +228 -0
- package/dist/utils/oauth/url.mjs.map +1 -0
- package/package.json +3 -3
- package/dist/utils/oauth.d.ts +0 -323
- package/dist/utils/oauth.d.ts.map +0 -1
- package/dist/utils/oauth.js +0 -613
- package/dist/utils/oauth.js.map +0 -1
- package/dist/utils/oauth.mjs +0 -670
- package/dist/utils/oauth.mjs.map +0 -1
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { AuthAction, BaseAuthResult, OAuthProviders } from "@turnkey/sdk-types";
|
|
2
|
+
import type { TurnkeyCallbacks } from "../../types/base";
|
|
3
|
+
import { type PKCEProvider } from "./storage";
|
|
4
|
+
import type { OAuthResponseResult } from "./url";
|
|
5
|
+
/**
|
|
6
|
+
* Parameters for unified OAuth completion.
|
|
7
|
+
* This handles the core completion logic for both popup and redirect flows,
|
|
8
|
+
* for both PKCE and non-PKCE providers.
|
|
9
|
+
*/
|
|
10
|
+
export interface CompleteOAuthFlowParams {
|
|
11
|
+
/** The OAuth provider */
|
|
12
|
+
provider: OAuthProviders;
|
|
13
|
+
/** The public key generated during OAuth initiation */
|
|
14
|
+
publicKey: string;
|
|
15
|
+
/** The OIDC token (for non-PKCE providers, or after PKCE exchange) */
|
|
16
|
+
oidcToken: string;
|
|
17
|
+
/** Optional session key from the state parameter */
|
|
18
|
+
sessionKey?: string | undefined;
|
|
19
|
+
/** Optional callbacks for custom handling */
|
|
20
|
+
callbacks?: TurnkeyCallbacks | undefined;
|
|
21
|
+
/** Function to complete the OAuth authentication flow */
|
|
22
|
+
completeOauth: (params: {
|
|
23
|
+
oidcToken: string;
|
|
24
|
+
publicKey: string;
|
|
25
|
+
providerName: string;
|
|
26
|
+
sessionKey?: string;
|
|
27
|
+
}) => Promise<BaseAuthResult & {
|
|
28
|
+
action: AuthAction;
|
|
29
|
+
}>;
|
|
30
|
+
/** Optional callback when OAuth succeeds (alternative to completeOauth) */
|
|
31
|
+
onOauthSuccess?: ((params: {
|
|
32
|
+
publicKey: string;
|
|
33
|
+
oidcToken: string;
|
|
34
|
+
providerName: string;
|
|
35
|
+
sessionKey?: string;
|
|
36
|
+
}) => void) | undefined;
|
|
37
|
+
/** Optional callback for "add provider" flow (takes priority over auth) */
|
|
38
|
+
onAddProvider?: ((oidcToken: string) => Promise<void>) | undefined;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Unified OAuth completion handler.
|
|
42
|
+
* Routes to the appropriate completion handler based on params:
|
|
43
|
+
* Priority: onAddProvider > onOauthSuccess > callbacks.onOauthRedirect > completeOauth
|
|
44
|
+
*
|
|
45
|
+
* This is the core completion logic used by both popup and redirect flows.
|
|
46
|
+
*/
|
|
47
|
+
export declare function completeOAuthFlow(params: CompleteOAuthFlowParams): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Common OAuth completion handler for popup flows
|
|
50
|
+
* Handles both PKCE and non-PKCE provider completion
|
|
51
|
+
*/
|
|
52
|
+
export interface CompleteOAuthPopupParams {
|
|
53
|
+
provider: OAuthProviders;
|
|
54
|
+
publicKey: string;
|
|
55
|
+
result: OAuthResponseResult;
|
|
56
|
+
callbacks?: TurnkeyCallbacks | undefined;
|
|
57
|
+
completeOauth: (params: {
|
|
58
|
+
oidcToken: string;
|
|
59
|
+
publicKey: string;
|
|
60
|
+
providerName: string;
|
|
61
|
+
sessionKey?: string;
|
|
62
|
+
}) => Promise<BaseAuthResult & {
|
|
63
|
+
action: AuthAction;
|
|
64
|
+
}>;
|
|
65
|
+
onOauthSuccess?: ((params: {
|
|
66
|
+
publicKey: string;
|
|
67
|
+
oidcToken: string;
|
|
68
|
+
providerName: string;
|
|
69
|
+
sessionKey?: string;
|
|
70
|
+
}) => void) | undefined;
|
|
71
|
+
/** For PKCE providers: function to exchange code for token */
|
|
72
|
+
exchangeCodeForToken?: ((verifier: string) => Promise<string>) | undefined;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Completes OAuth flow in popup - handles both PKCE and non-PKCE providers
|
|
76
|
+
*/
|
|
77
|
+
export declare function completeOAuthPopup(params: CompleteOAuthPopupParams): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Parameters for the unified PKCE flow handler.
|
|
80
|
+
* This is used by all PKCE-based OAuth providers (Facebook, Discord, Twitter/X).
|
|
81
|
+
*/
|
|
82
|
+
export interface CompletePKCEFlowParams {
|
|
83
|
+
/** The public key generated during OAuth initiation */
|
|
84
|
+
publicKey: string;
|
|
85
|
+
/** The provider name */
|
|
86
|
+
providerName: PKCEProvider;
|
|
87
|
+
/** Optional session key from the state parameter */
|
|
88
|
+
sessionKey?: string | undefined;
|
|
89
|
+
/** Optional callbacks for custom handling */
|
|
90
|
+
callbacks?: TurnkeyCallbacks | undefined;
|
|
91
|
+
/** Function to complete the OAuth flow */
|
|
92
|
+
completeOauth: (params: {
|
|
93
|
+
oidcToken: string;
|
|
94
|
+
publicKey: string;
|
|
95
|
+
providerName: string;
|
|
96
|
+
sessionKey?: string;
|
|
97
|
+
}) => Promise<BaseAuthResult & {
|
|
98
|
+
action: AuthAction;
|
|
99
|
+
}>;
|
|
100
|
+
/** Optional callback when OAuth succeeds (used in popup flow) */
|
|
101
|
+
onOauthSuccess?: ((params: {
|
|
102
|
+
publicKey: string;
|
|
103
|
+
oidcToken: string;
|
|
104
|
+
providerName: string;
|
|
105
|
+
sessionKey?: string;
|
|
106
|
+
}) => void) | undefined;
|
|
107
|
+
/**
|
|
108
|
+
* Optional callback for handling "add provider" flow in redirect scenarios.
|
|
109
|
+
* When provided, this is called instead of completeOauth when adding an OAuth provider.
|
|
110
|
+
* @param oidcToken - The OIDC token from the OAuth provider
|
|
111
|
+
*/
|
|
112
|
+
onAddProvider?: ((oidcToken: string) => Promise<void>) | undefined;
|
|
113
|
+
/**
|
|
114
|
+
* Function to exchange the authorization code for an OIDC token.
|
|
115
|
+
* This is provider-specific:
|
|
116
|
+
* - Discord/Twitter: uses proxyOAuth2Authenticate
|
|
117
|
+
* - Facebook: uses exchangeCodeForToken
|
|
118
|
+
*/
|
|
119
|
+
exchangeCodeForToken: (verifier: string) => Promise<string>;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Unified PKCE flow handler for all PKCE-based OAuth providers.
|
|
123
|
+
* Handles the complete PKCE flow: verifier retrieval, token exchange, and completion routing.
|
|
124
|
+
*
|
|
125
|
+
* This function abstracts the common logic shared between popup and redirect flows
|
|
126
|
+
* for Facebook, Discord, and Twitter/X.
|
|
127
|
+
*
|
|
128
|
+
* @param params - The PKCE flow parameters
|
|
129
|
+
* @returns A promise that resolves when the flow is complete
|
|
130
|
+
*/
|
|
131
|
+
export declare function completePKCEFlow({ publicKey, providerName, sessionKey, callbacks, completeOauth, onOauthSuccess, onAddProvider, exchangeCodeForToken, }: CompletePKCEFlowParams): Promise<void>;
|
|
132
|
+
//# sourceMappingURL=completion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../../src/utils/oauth/completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var sdkTypes = require('@turnkey/sdk-types');
|
|
4
|
+
var storage = require('./storage.js');
|
|
5
|
+
var config = require('./config.js');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Unified OAuth completion handler.
|
|
9
|
+
* Routes to the appropriate completion handler based on params:
|
|
10
|
+
* Priority: onAddProvider > onOauthSuccess > callbacks.onOauthRedirect > completeOauth
|
|
11
|
+
*
|
|
12
|
+
* This is the core completion logic used by both popup and redirect flows.
|
|
13
|
+
*/
|
|
14
|
+
async function completeOAuthFlow(params) {
|
|
15
|
+
const {
|
|
16
|
+
provider,
|
|
17
|
+
publicKey,
|
|
18
|
+
oidcToken,
|
|
19
|
+
sessionKey,
|
|
20
|
+
callbacks,
|
|
21
|
+
completeOauth,
|
|
22
|
+
onOauthSuccess,
|
|
23
|
+
onAddProvider
|
|
24
|
+
} = params;
|
|
25
|
+
if (onAddProvider) {
|
|
26
|
+
await onAddProvider(oidcToken);
|
|
27
|
+
} else if (onOauthSuccess) {
|
|
28
|
+
onOauthSuccess({
|
|
29
|
+
publicKey,
|
|
30
|
+
oidcToken,
|
|
31
|
+
providerName: provider,
|
|
32
|
+
...(sessionKey && {
|
|
33
|
+
sessionKey
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
} else if (callbacks?.onOauthRedirect) {
|
|
37
|
+
callbacks.onOauthRedirect({
|
|
38
|
+
idToken: oidcToken,
|
|
39
|
+
publicKey,
|
|
40
|
+
...(sessionKey && {
|
|
41
|
+
sessionKey
|
|
42
|
+
})
|
|
43
|
+
});
|
|
44
|
+
} else {
|
|
45
|
+
await completeOauth({
|
|
46
|
+
oidcToken,
|
|
47
|
+
publicKey,
|
|
48
|
+
providerName: provider,
|
|
49
|
+
...(sessionKey && {
|
|
50
|
+
sessionKey
|
|
51
|
+
})
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Completes OAuth flow in popup - handles both PKCE and non-PKCE providers
|
|
57
|
+
*/
|
|
58
|
+
async function completeOAuthPopup(params) {
|
|
59
|
+
const {
|
|
60
|
+
provider,
|
|
61
|
+
publicKey,
|
|
62
|
+
result,
|
|
63
|
+
callbacks,
|
|
64
|
+
completeOauth,
|
|
65
|
+
onOauthSuccess,
|
|
66
|
+
exchangeCodeForToken
|
|
67
|
+
} = params;
|
|
68
|
+
const config$1 = config.OAUTH_PROVIDER_CONFIGS[provider];
|
|
69
|
+
if (config$1.usesPKCE) {
|
|
70
|
+
// PKCE flow, so we use completePKCEFlow
|
|
71
|
+
if (!exchangeCodeForToken) {
|
|
72
|
+
throw new sdkTypes.TurnkeyError("exchangeCodeForToken is required for PKCE providers", sdkTypes.TurnkeyErrorCodes.INTERNAL_ERROR);
|
|
73
|
+
}
|
|
74
|
+
await completePKCEFlow({
|
|
75
|
+
publicKey,
|
|
76
|
+
providerName: provider,
|
|
77
|
+
sessionKey: result.sessionKey,
|
|
78
|
+
callbacks,
|
|
79
|
+
completeOauth,
|
|
80
|
+
onOauthSuccess,
|
|
81
|
+
exchangeCodeForToken
|
|
82
|
+
});
|
|
83
|
+
} else {
|
|
84
|
+
// this is a non-PKCE flow, so we use our unified completion handler
|
|
85
|
+
await completeOAuthFlow({
|
|
86
|
+
provider,
|
|
87
|
+
publicKey,
|
|
88
|
+
oidcToken: result.idToken,
|
|
89
|
+
sessionKey: result.sessionKey,
|
|
90
|
+
callbacks,
|
|
91
|
+
completeOauth,
|
|
92
|
+
onOauthSuccess
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Unified PKCE flow handler for all PKCE-based OAuth providers.
|
|
98
|
+
* Handles the complete PKCE flow: verifier retrieval, token exchange, and completion routing.
|
|
99
|
+
*
|
|
100
|
+
* This function abstracts the common logic shared between popup and redirect flows
|
|
101
|
+
* for Facebook, Discord, and Twitter/X.
|
|
102
|
+
*
|
|
103
|
+
* @param params - The PKCE flow parameters
|
|
104
|
+
* @returns A promise that resolves when the flow is complete
|
|
105
|
+
*/
|
|
106
|
+
async function completePKCEFlow({
|
|
107
|
+
publicKey,
|
|
108
|
+
providerName,
|
|
109
|
+
sessionKey,
|
|
110
|
+
callbacks,
|
|
111
|
+
completeOauth,
|
|
112
|
+
onOauthSuccess,
|
|
113
|
+
onAddProvider,
|
|
114
|
+
exchangeCodeForToken
|
|
115
|
+
}) {
|
|
116
|
+
// Consume the verifier (retrieves and removes from storage)
|
|
117
|
+
const verifier = storage.consumePKCEVerifier(providerName);
|
|
118
|
+
// Exchange the code for an OIDC token using the provider-specific function
|
|
119
|
+
const oidcToken = await exchangeCodeForToken(verifier);
|
|
120
|
+
// Use unified completion handler
|
|
121
|
+
await completeOAuthFlow({
|
|
122
|
+
provider: providerName,
|
|
123
|
+
publicKey,
|
|
124
|
+
oidcToken,
|
|
125
|
+
sessionKey,
|
|
126
|
+
callbacks,
|
|
127
|
+
completeOauth,
|
|
128
|
+
onOauthSuccess,
|
|
129
|
+
onAddProvider
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
exports.completeOAuthFlow = completeOAuthFlow;
|
|
134
|
+
exports.completeOAuthPopup = completeOAuthPopup;
|
|
135
|
+
exports.completePKCEFlow = completePKCEFlow;
|
|
136
|
+
//# sourceMappingURL=completion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.js","sources":["../../../src/utils/oauth/completion.ts"],"sourcesContent":[null],"names":["completeOAuthFlow","params","provider","publicKey","oidcToken","sessionKey","callbacks","completeOauth","onOauthSuccess","onAddProvider","providerName","onOauthRedirect","idToken","completeOAuthPopup","result","exchangeCodeForToken","config","OAUTH_PROVIDER_CONFIGS","usesPKCE","TurnkeyError","TurnkeyErrorCodes","INTERNAL_ERROR","completePKCEFlow","verifier","consumePKCEVerifier"],"mappings":";;;;;;AAgDA;;;;;;AAMG;AACI,eAAeA,iBAAiBA,CACrCC,MAA+B,EAAA;EAE/B,MAAM;IACJC,QAAQ;IACRC,SAAS;IACTC,SAAS;IACTC,UAAU;IACVC,SAAS;IACTC,aAAa;IACbC,cAAc;AACdC,IAAAA;AAAa,GACd,GAAGR,MAAM;AAEV,EAAA,IAAIQ,aAAa,EAAE;IACjB,MAAMA,aAAa,CAACL,SAAS,CAAC;EAChC,CAAC,MAAM,IAAII,cAAc,EAAE;AACzBA,IAAAA,cAAc,CAAC;MACbL,SAAS;MACTC,SAAS;AACTM,MAAAA,YAAY,EAAER,QAAQ;AACtB,MAAA,IAAIG,UAAU,IAAI;AAAEA,QAAAA;OAAY;AACjC,KAAA,CAAC;AACJ,EAAA,CAAC,MAAM,IAAIC,SAAS,EAAEK,eAAe,EAAE;IACrCL,SAAS,CAACK,eAAe,CAAC;AACxBC,MAAAA,OAAO,EAAER,SAAS;MAClBD,SAAS;AACT,MAAA,IAAIE,UAAU,IAAI;AAAEA,QAAAA;OAAY;AACjC,KAAA,CAAC;AACJ,EAAA,CAAC,MAAM;AACL,IAAA,MAAME,aAAa,CAAC;MAClBH,SAAS;MACTD,SAAS;AACTO,MAAAA,YAAY,EAAER,QAAQ;AACtB,MAAA,IAAIG,UAAU,IAAI;AAAEA,QAAAA;OAAY;AACjC,KAAA,CAAC;AACJ,EAAA;AACF;AA6BA;;AAEG;AACI,eAAeQ,kBAAkBA,CACtCZ,MAAgC,EAAA;EAEhC,MAAM;IACJC,QAAQ;IACRC,SAAS;IACTW,MAAM;IACNR,SAAS;IACTC,aAAa;IACbC,cAAc;AACdO,IAAAA;AAAoB,GACrB,GAAGd,MAAM;AAEV,EAAA,MAAMe,QAAM,GAAGC,6BAAsB,CAACf,QAAQ,CAAC;EAE/C,IAAIc,QAAM,CAACE,QAAQ,EAAE;AACnB;IACA,IAAI,CAACH,oBAAoB,EAAE;MACzB,MAAM,IAAII,qBAAY,CACpB,qDAAqD,EACrDC,0BAAiB,CAACC,cAAc,CACjC;AACH,IAAA;AAEA,IAAA,MAAMC,gBAAgB,CAAC;MACrBnB,SAAS;AACTO,MAAAA,YAAY,EAAER,QAAwB;MACtCG,UAAU,EAAES,MAAM,CAACT,UAAU;MAC7BC,SAAS;MACTC,aAAa;MACbC,cAAc;AACdO,MAAAA;AACD,KAAA,CAAC;AACJ,EAAA,CAAC,MAAM;AACL;AACA,IAAA,MAAMf,iBAAiB,CAAC;MACtBE,QAAQ;MACRC,SAAS;MACTC,SAAS,EAAEU,MAAM,CAACF,OAAQ;MAC1BP,UAAU,EAAES,MAAM,CAACT,UAAU;MAC7BC,SAAS;MACTC,aAAa;AACbC,MAAAA;AACD,KAAA,CAAC;AACJ,EAAA;AACF;AA8CA;;;;;;;;;AASG;AACI,eAAec,gBAAgBA,CAAC;EACrCnB,SAAS;EACTO,YAAY;EACZL,UAAU;EACVC,SAAS;EACTC,aAAa;EACbC,cAAc;EACdC,aAAa;AACbM,EAAAA;AAAoB,CACG,EAAA;AACvB;AACA,EAAA,MAAMQ,QAAQ,GAAGC,2BAAmB,CAACd,YAAY,CAAC;AAElD;AACA,EAAA,MAAMN,SAAS,GAAG,MAAMW,oBAAoB,CAACQ,QAAQ,CAAC;AAEtD;AACA,EAAA,MAAMvB,iBAAiB,CAAC;AACtBE,IAAAA,QAAQ,EAAEQ,YAAY;IACtBP,SAAS;IACTC,SAAS;IACTC,UAAU;IACVC,SAAS;IACTC,aAAa;IACbC,cAAc;AACdC,IAAAA;AACD,GAAA,CAAC;AACJ;;;;;;"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { asyncToGenerator as _asyncToGenerator, regenerator as _regenerator, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
|
|
2
|
+
import { TurnkeyError, TurnkeyErrorCodes } from '@turnkey/sdk-types';
|
|
3
|
+
import { consumePKCEVerifier } from './storage.mjs';
|
|
4
|
+
import { OAUTH_PROVIDER_CONFIGS } from './config.mjs';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Unified OAuth completion handler.
|
|
8
|
+
* Routes to the appropriate completion handler based on params:
|
|
9
|
+
* Priority: onAddProvider > onOauthSuccess > callbacks.onOauthRedirect > completeOauth
|
|
10
|
+
*
|
|
11
|
+
* This is the core completion logic used by both popup and redirect flows.
|
|
12
|
+
*/
|
|
13
|
+
function completeOAuthFlow(_x) {
|
|
14
|
+
return _completeOAuthFlow.apply(this, arguments);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Completes OAuth flow in popup - handles both PKCE and non-PKCE providers
|
|
18
|
+
*/
|
|
19
|
+
function _completeOAuthFlow() {
|
|
20
|
+
_completeOAuthFlow = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(params) {
|
|
21
|
+
var provider, publicKey, oidcToken, sessionKey, callbacks, completeOauth, onOauthSuccess, onAddProvider;
|
|
22
|
+
return _regenerator().w(function (_context) {
|
|
23
|
+
while (1) switch (_context.n) {
|
|
24
|
+
case 0:
|
|
25
|
+
provider = params.provider, publicKey = params.publicKey, oidcToken = params.oidcToken, sessionKey = params.sessionKey, callbacks = params.callbacks, completeOauth = params.completeOauth, onOauthSuccess = params.onOauthSuccess, onAddProvider = params.onAddProvider;
|
|
26
|
+
if (!onAddProvider) {
|
|
27
|
+
_context.n = 2;
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
_context.n = 1;
|
|
31
|
+
return onAddProvider(oidcToken);
|
|
32
|
+
case 1:
|
|
33
|
+
_context.n = 5;
|
|
34
|
+
break;
|
|
35
|
+
case 2:
|
|
36
|
+
if (!onOauthSuccess) {
|
|
37
|
+
_context.n = 3;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
onOauthSuccess(_objectSpread2({
|
|
41
|
+
publicKey: publicKey,
|
|
42
|
+
oidcToken: oidcToken,
|
|
43
|
+
providerName: provider
|
|
44
|
+
}, sessionKey && {
|
|
45
|
+
sessionKey: sessionKey
|
|
46
|
+
}));
|
|
47
|
+
_context.n = 5;
|
|
48
|
+
break;
|
|
49
|
+
case 3:
|
|
50
|
+
if (!(callbacks !== null && callbacks !== void 0 && callbacks.onOauthRedirect)) {
|
|
51
|
+
_context.n = 4;
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
callbacks.onOauthRedirect(_objectSpread2({
|
|
55
|
+
idToken: oidcToken,
|
|
56
|
+
publicKey: publicKey
|
|
57
|
+
}, sessionKey && {
|
|
58
|
+
sessionKey: sessionKey
|
|
59
|
+
}));
|
|
60
|
+
_context.n = 5;
|
|
61
|
+
break;
|
|
62
|
+
case 4:
|
|
63
|
+
_context.n = 5;
|
|
64
|
+
return completeOauth(_objectSpread2({
|
|
65
|
+
oidcToken: oidcToken,
|
|
66
|
+
publicKey: publicKey,
|
|
67
|
+
providerName: provider
|
|
68
|
+
}, sessionKey && {
|
|
69
|
+
sessionKey: sessionKey
|
|
70
|
+
}));
|
|
71
|
+
case 5:
|
|
72
|
+
return _context.a(2);
|
|
73
|
+
}
|
|
74
|
+
}, _callee);
|
|
75
|
+
}));
|
|
76
|
+
return _completeOAuthFlow.apply(this, arguments);
|
|
77
|
+
}
|
|
78
|
+
function completeOAuthPopup(_x2) {
|
|
79
|
+
return _completeOAuthPopup.apply(this, arguments);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Unified PKCE flow handler for all PKCE-based OAuth providers.
|
|
83
|
+
* Handles the complete PKCE flow: verifier retrieval, token exchange, and completion routing.
|
|
84
|
+
*
|
|
85
|
+
* This function abstracts the common logic shared between popup and redirect flows
|
|
86
|
+
* for Facebook, Discord, and Twitter/X.
|
|
87
|
+
*
|
|
88
|
+
* @param params - The PKCE flow parameters
|
|
89
|
+
* @returns A promise that resolves when the flow is complete
|
|
90
|
+
*/
|
|
91
|
+
function _completeOAuthPopup() {
|
|
92
|
+
_completeOAuthPopup = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(params) {
|
|
93
|
+
var provider, publicKey, result, callbacks, completeOauth, onOauthSuccess, exchangeCodeForToken, config;
|
|
94
|
+
return _regenerator().w(function (_context2) {
|
|
95
|
+
while (1) switch (_context2.n) {
|
|
96
|
+
case 0:
|
|
97
|
+
provider = params.provider, publicKey = params.publicKey, result = params.result, callbacks = params.callbacks, completeOauth = params.completeOauth, onOauthSuccess = params.onOauthSuccess, exchangeCodeForToken = params.exchangeCodeForToken;
|
|
98
|
+
config = OAUTH_PROVIDER_CONFIGS[provider];
|
|
99
|
+
if (!config.usesPKCE) {
|
|
100
|
+
_context2.n = 3;
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
if (exchangeCodeForToken) {
|
|
104
|
+
_context2.n = 1;
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
throw new TurnkeyError("exchangeCodeForToken is required for PKCE providers", TurnkeyErrorCodes.INTERNAL_ERROR);
|
|
108
|
+
case 1:
|
|
109
|
+
_context2.n = 2;
|
|
110
|
+
return completePKCEFlow({
|
|
111
|
+
publicKey: publicKey,
|
|
112
|
+
providerName: provider,
|
|
113
|
+
sessionKey: result.sessionKey,
|
|
114
|
+
callbacks: callbacks,
|
|
115
|
+
completeOauth: completeOauth,
|
|
116
|
+
onOauthSuccess: onOauthSuccess,
|
|
117
|
+
exchangeCodeForToken: exchangeCodeForToken
|
|
118
|
+
});
|
|
119
|
+
case 2:
|
|
120
|
+
_context2.n = 4;
|
|
121
|
+
break;
|
|
122
|
+
case 3:
|
|
123
|
+
_context2.n = 4;
|
|
124
|
+
return completeOAuthFlow({
|
|
125
|
+
provider: provider,
|
|
126
|
+
publicKey: publicKey,
|
|
127
|
+
oidcToken: result.idToken,
|
|
128
|
+
sessionKey: result.sessionKey,
|
|
129
|
+
callbacks: callbacks,
|
|
130
|
+
completeOauth: completeOauth,
|
|
131
|
+
onOauthSuccess: onOauthSuccess
|
|
132
|
+
});
|
|
133
|
+
case 4:
|
|
134
|
+
return _context2.a(2);
|
|
135
|
+
}
|
|
136
|
+
}, _callee2);
|
|
137
|
+
}));
|
|
138
|
+
return _completeOAuthPopup.apply(this, arguments);
|
|
139
|
+
}
|
|
140
|
+
function completePKCEFlow(_x3) {
|
|
141
|
+
return _completePKCEFlow.apply(this, arguments);
|
|
142
|
+
}
|
|
143
|
+
function _completePKCEFlow() {
|
|
144
|
+
_completePKCEFlow = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(_ref) {
|
|
145
|
+
var publicKey, providerName, sessionKey, callbacks, completeOauth, onOauthSuccess, onAddProvider, exchangeCodeForToken, verifier, oidcToken;
|
|
146
|
+
return _regenerator().w(function (_context3) {
|
|
147
|
+
while (1) switch (_context3.n) {
|
|
148
|
+
case 0:
|
|
149
|
+
publicKey = _ref.publicKey, providerName = _ref.providerName, sessionKey = _ref.sessionKey, callbacks = _ref.callbacks, completeOauth = _ref.completeOauth, onOauthSuccess = _ref.onOauthSuccess, onAddProvider = _ref.onAddProvider, exchangeCodeForToken = _ref.exchangeCodeForToken;
|
|
150
|
+
// Consume the verifier (retrieves and removes from storage)
|
|
151
|
+
verifier = consumePKCEVerifier(providerName); // Exchange the code for an OIDC token using the provider-specific function
|
|
152
|
+
_context3.n = 1;
|
|
153
|
+
return exchangeCodeForToken(verifier);
|
|
154
|
+
case 1:
|
|
155
|
+
oidcToken = _context3.v;
|
|
156
|
+
_context3.n = 2;
|
|
157
|
+
return completeOAuthFlow({
|
|
158
|
+
provider: providerName,
|
|
159
|
+
publicKey: publicKey,
|
|
160
|
+
oidcToken: oidcToken,
|
|
161
|
+
sessionKey: sessionKey,
|
|
162
|
+
callbacks: callbacks,
|
|
163
|
+
completeOauth: completeOauth,
|
|
164
|
+
onOauthSuccess: onOauthSuccess,
|
|
165
|
+
onAddProvider: onAddProvider
|
|
166
|
+
});
|
|
167
|
+
case 2:
|
|
168
|
+
return _context3.a(2);
|
|
169
|
+
}
|
|
170
|
+
}, _callee3);
|
|
171
|
+
}));
|
|
172
|
+
return _completePKCEFlow.apply(this, arguments);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export { completeOAuthFlow, completeOAuthPopup, completePKCEFlow };
|
|
176
|
+
//# sourceMappingURL=completion.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.mjs","sources":["../../../src/utils/oauth/completion.ts"],"sourcesContent":[null],"names":["completeOAuthFlow","_x","_completeOAuthFlow","apply","arguments","_asyncToGenerator","_regenerator","m","_callee","params","provider","publicKey","oidcToken","sessionKey","callbacks","completeOauth","onOauthSuccess","onAddProvider","w","_context","n","_objectSpread","providerName","onOauthRedirect","idToken","a","completeOAuthPopup","_x2","_completeOAuthPopup","_callee2","result","exchangeCodeForToken","config","_context2","OAUTH_PROVIDER_CONFIGS","usesPKCE","TurnkeyError","TurnkeyErrorCodes","INTERNAL_ERROR","completePKCEFlow","_x3","_completePKCEFlow","_callee3","_ref","verifier","_context3","consumePKCEVerifier","v"],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { OAuthProviders } from "@turnkey/sdk-types";
|
|
2
|
+
export declare const DISCORD_AUTH_URL = "https://discord.com/oauth2/authorize";
|
|
3
|
+
export declare const X_AUTH_URL = "https://x.com/i/oauth2/authorize";
|
|
4
|
+
export declare const GOOGLE_AUTH_URL = "https://accounts.google.com/o/oauth2/v2/auth";
|
|
5
|
+
export declare const APPLE_AUTH_URL = "https://account.apple.com/auth/authorize";
|
|
6
|
+
export declare const APPLE_AUTH_SCRIPT_URL = "https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js";
|
|
7
|
+
export declare const FACEBOOK_AUTH_URL = "https://www.facebook.com/v11.0/dialog/oauth";
|
|
8
|
+
export declare const FACEBOOK_GRAPH_URL = "https://graph.facebook.com/v11.0/oauth/access_token";
|
|
9
|
+
export declare const popupWidth = 500;
|
|
10
|
+
export declare const popupHeight = 600;
|
|
11
|
+
/**
|
|
12
|
+
* OAuth provider configuration for unified OAuth flow handling
|
|
13
|
+
*/
|
|
14
|
+
export interface OAuthProviderConfig {
|
|
15
|
+
/** The provider identifier */
|
|
16
|
+
provider: OAuthProviders;
|
|
17
|
+
/** The base OAuth authorization URL */
|
|
18
|
+
authUrl: string;
|
|
19
|
+
/** OAuth scopes to request */
|
|
20
|
+
scopes: string;
|
|
21
|
+
/** Whether this provider uses PKCE */
|
|
22
|
+
usesPKCE: boolean;
|
|
23
|
+
/** Response type for the OAuth request */
|
|
24
|
+
responseType: string;
|
|
25
|
+
/** Optional response mode (e.g., 'fragment' for Apple) */
|
|
26
|
+
responseMode?: string;
|
|
27
|
+
/** Whether to include nonce in the URL params (vs state) */
|
|
28
|
+
nonceInParams?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Pre-configured OAuth provider settings
|
|
32
|
+
*/
|
|
33
|
+
export declare const OAUTH_PROVIDER_CONFIGS: Record<OAuthProviders, OAuthProviderConfig>;
|
|
34
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/utils/oauth/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,eAAO,MAAM,gBAAgB,yCAAyC,CAAC;AACvE,eAAO,MAAM,UAAU,qCAAqC,CAAC;AAC7D,eAAO,MAAM,eAAe,iDAAiD,CAAC;AAC9E,eAAO,MAAM,cAAc,6CAA6C,CAAC;AACzE,eAAO,MAAM,qBAAqB,yFACsD,CAAC;AACzF,eAAO,MAAM,iBAAiB,gDAAgD,CAAC;AAC/E,eAAO,MAAM,kBAAkB,wDACwB,CAAC;AAExD,eAAO,MAAM,UAAU,MAAM,CAAC;AAC9B,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,8BAA8B;IAC9B,QAAQ,EAAE,cAAc,CAAC;IACzB,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,cAAc,EACd,mBAAmB,CA2CpB,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var sdkTypes = require('@turnkey/sdk-types');
|
|
4
|
+
|
|
5
|
+
const DISCORD_AUTH_URL = "https://discord.com/oauth2/authorize";
|
|
6
|
+
const X_AUTH_URL = "https://x.com/i/oauth2/authorize";
|
|
7
|
+
const GOOGLE_AUTH_URL = "https://accounts.google.com/o/oauth2/v2/auth";
|
|
8
|
+
const APPLE_AUTH_URL = "https://account.apple.com/auth/authorize";
|
|
9
|
+
const FACEBOOK_AUTH_URL = "https://www.facebook.com/v11.0/dialog/oauth";
|
|
10
|
+
const FACEBOOK_GRAPH_URL = "https://graph.facebook.com/v11.0/oauth/access_token";
|
|
11
|
+
const popupWidth = 500;
|
|
12
|
+
const popupHeight = 600;
|
|
13
|
+
/**
|
|
14
|
+
* Pre-configured OAuth provider settings
|
|
15
|
+
*/
|
|
16
|
+
const OAUTH_PROVIDER_CONFIGS = {
|
|
17
|
+
[sdkTypes.OAuthProviders.GOOGLE]: {
|
|
18
|
+
provider: sdkTypes.OAuthProviders.GOOGLE,
|
|
19
|
+
authUrl: GOOGLE_AUTH_URL,
|
|
20
|
+
scopes: "openid email profile",
|
|
21
|
+
usesPKCE: false,
|
|
22
|
+
responseType: "id_token",
|
|
23
|
+
nonceInParams: true
|
|
24
|
+
},
|
|
25
|
+
[sdkTypes.OAuthProviders.APPLE]: {
|
|
26
|
+
provider: sdkTypes.OAuthProviders.APPLE,
|
|
27
|
+
authUrl: APPLE_AUTH_URL,
|
|
28
|
+
scopes: "",
|
|
29
|
+
usesPKCE: false,
|
|
30
|
+
responseType: "code id_token",
|
|
31
|
+
responseMode: "fragment",
|
|
32
|
+
nonceInParams: true
|
|
33
|
+
},
|
|
34
|
+
[sdkTypes.OAuthProviders.FACEBOOK]: {
|
|
35
|
+
provider: sdkTypes.OAuthProviders.FACEBOOK,
|
|
36
|
+
authUrl: FACEBOOK_AUTH_URL,
|
|
37
|
+
scopes: "openid",
|
|
38
|
+
usesPKCE: true,
|
|
39
|
+
responseType: "code",
|
|
40
|
+
nonceInParams: true
|
|
41
|
+
},
|
|
42
|
+
[sdkTypes.OAuthProviders.DISCORD]: {
|
|
43
|
+
provider: sdkTypes.OAuthProviders.DISCORD,
|
|
44
|
+
authUrl: DISCORD_AUTH_URL,
|
|
45
|
+
scopes: "identify email",
|
|
46
|
+
usesPKCE: true,
|
|
47
|
+
responseType: "code",
|
|
48
|
+
nonceInParams: false
|
|
49
|
+
},
|
|
50
|
+
[sdkTypes.OAuthProviders.X]: {
|
|
51
|
+
provider: sdkTypes.OAuthProviders.X,
|
|
52
|
+
authUrl: X_AUTH_URL,
|
|
53
|
+
scopes: "tweet.read users.read",
|
|
54
|
+
usesPKCE: true,
|
|
55
|
+
responseType: "code",
|
|
56
|
+
nonceInParams: false
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
exports.APPLE_AUTH_URL = APPLE_AUTH_URL;
|
|
61
|
+
exports.DISCORD_AUTH_URL = DISCORD_AUTH_URL;
|
|
62
|
+
exports.FACEBOOK_AUTH_URL = FACEBOOK_AUTH_URL;
|
|
63
|
+
exports.FACEBOOK_GRAPH_URL = FACEBOOK_GRAPH_URL;
|
|
64
|
+
exports.GOOGLE_AUTH_URL = GOOGLE_AUTH_URL;
|
|
65
|
+
exports.OAUTH_PROVIDER_CONFIGS = OAUTH_PROVIDER_CONFIGS;
|
|
66
|
+
exports.X_AUTH_URL = X_AUTH_URL;
|
|
67
|
+
exports.popupHeight = popupHeight;
|
|
68
|
+
exports.popupWidth = popupWidth;
|
|
69
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sources":["../../../src/utils/oauth/config.ts"],"sourcesContent":[null],"names":["DISCORD_AUTH_URL","X_AUTH_URL","GOOGLE_AUTH_URL","APPLE_AUTH_URL","FACEBOOK_AUTH_URL","FACEBOOK_GRAPH_URL","popupWidth","popupHeight","OAUTH_PROVIDER_CONFIGS","OAuthProviders","GOOGLE","provider","authUrl","scopes","usesPKCE","responseType","nonceInParams","APPLE","responseMode","FACEBOOK","DISCORD","X"],"mappings":";;;;AAEO,MAAMA,gBAAgB,GAAG;AACzB,MAAMC,UAAU,GAAG;AACnB,MAAMC,eAAe,GAAG;AACxB,MAAMC,cAAc,GAAG;AAGvB,MAAMC,iBAAiB,GAAG;AAC1B,MAAMC,kBAAkB,GAC7B;AAEK,MAAMC,UAAU,GAAG;AACnB,MAAMC,WAAW,GAAG;AAsB3B;;AAEG;AACI,MAAMC,sBAAsB,GAG/B;EACF,CAACC,uBAAc,CAACC,MAAM,GAAG;IACvBC,QAAQ,EAAEF,uBAAc,CAACC,MAAM;AAC/BE,IAAAA,OAAO,EAAEV,eAAe;AACxBW,IAAAA,MAAM,EAAE,sBAAsB;AAC9BC,IAAAA,QAAQ,EAAE,KAAK;AACfC,IAAAA,YAAY,EAAE,UAAU;AACxBC,IAAAA,aAAa,EAAE;GAChB;EACD,CAACP,uBAAc,CAACQ,KAAK,GAAG;IACtBN,QAAQ,EAAEF,uBAAc,CAACQ,KAAK;AAC9BL,IAAAA,OAAO,EAAET,cAAc;AACvBU,IAAAA,MAAM,EAAE,EAAE;AACVC,IAAAA,QAAQ,EAAE,KAAK;AACfC,IAAAA,YAAY,EAAE,eAAe;AAC7BG,IAAAA,YAAY,EAAE,UAAU;AACxBF,IAAAA,aAAa,EAAE;GAChB;EACD,CAACP,uBAAc,CAACU,QAAQ,GAAG;IACzBR,QAAQ,EAAEF,uBAAc,CAACU,QAAQ;AACjCP,IAAAA,OAAO,EAAER,iBAAiB;AAC1BS,IAAAA,MAAM,EAAE,QAAQ;AAChBC,IAAAA,QAAQ,EAAE,IAAI;AACdC,IAAAA,YAAY,EAAE,MAAM;AACpBC,IAAAA,aAAa,EAAE;GAChB;EACD,CAACP,uBAAc,CAACW,OAAO,GAAG;IACxBT,QAAQ,EAAEF,uBAAc,CAACW,OAAO;AAChCR,IAAAA,OAAO,EAAEZ,gBAAgB;AACzBa,IAAAA,MAAM,EAAE,gBAAgB;AACxBC,IAAAA,QAAQ,EAAE,IAAI;AACdC,IAAAA,YAAY,EAAE,MAAM;AACpBC,IAAAA,aAAa,EAAE;GAChB;EACD,CAACP,uBAAc,CAACY,CAAC,GAAG;IAClBV,QAAQ,EAAEF,uBAAc,CAACY,CAAC;AAC1BT,IAAAA,OAAO,EAAEX,UAAU;AACnBY,IAAAA,MAAM,EAAE,uBAAuB;AAC/BC,IAAAA,QAAQ,EAAE,IAAI;AACdC,IAAAA,YAAY,EAAE,MAAM;AACpBC,IAAAA,aAAa,EAAE;AAChB;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { defineProperty as _defineProperty } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
|
|
2
|
+
import { OAuthProviders } from '@turnkey/sdk-types';
|
|
3
|
+
|
|
4
|
+
var DISCORD_AUTH_URL = "https://discord.com/oauth2/authorize";
|
|
5
|
+
var X_AUTH_URL = "https://x.com/i/oauth2/authorize";
|
|
6
|
+
var GOOGLE_AUTH_URL = "https://accounts.google.com/o/oauth2/v2/auth";
|
|
7
|
+
var APPLE_AUTH_URL = "https://account.apple.com/auth/authorize";
|
|
8
|
+
var FACEBOOK_AUTH_URL = "https://www.facebook.com/v11.0/dialog/oauth";
|
|
9
|
+
var FACEBOOK_GRAPH_URL = "https://graph.facebook.com/v11.0/oauth/access_token";
|
|
10
|
+
var popupWidth = 500;
|
|
11
|
+
var popupHeight = 600;
|
|
12
|
+
/**
|
|
13
|
+
* Pre-configured OAuth provider settings
|
|
14
|
+
*/
|
|
15
|
+
var OAUTH_PROVIDER_CONFIGS = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, OAuthProviders.GOOGLE, {
|
|
16
|
+
provider: OAuthProviders.GOOGLE,
|
|
17
|
+
authUrl: GOOGLE_AUTH_URL,
|
|
18
|
+
scopes: "openid email profile",
|
|
19
|
+
usesPKCE: false,
|
|
20
|
+
responseType: "id_token",
|
|
21
|
+
nonceInParams: true
|
|
22
|
+
}), OAuthProviders.APPLE, {
|
|
23
|
+
provider: OAuthProviders.APPLE,
|
|
24
|
+
authUrl: APPLE_AUTH_URL,
|
|
25
|
+
scopes: "",
|
|
26
|
+
usesPKCE: false,
|
|
27
|
+
responseType: "code id_token",
|
|
28
|
+
responseMode: "fragment",
|
|
29
|
+
nonceInParams: true
|
|
30
|
+
}), OAuthProviders.FACEBOOK, {
|
|
31
|
+
provider: OAuthProviders.FACEBOOK,
|
|
32
|
+
authUrl: FACEBOOK_AUTH_URL,
|
|
33
|
+
scopes: "openid",
|
|
34
|
+
usesPKCE: true,
|
|
35
|
+
responseType: "code",
|
|
36
|
+
nonceInParams: true
|
|
37
|
+
}), OAuthProviders.DISCORD, {
|
|
38
|
+
provider: OAuthProviders.DISCORD,
|
|
39
|
+
authUrl: DISCORD_AUTH_URL,
|
|
40
|
+
scopes: "identify email",
|
|
41
|
+
usesPKCE: true,
|
|
42
|
+
responseType: "code",
|
|
43
|
+
nonceInParams: false
|
|
44
|
+
}), OAuthProviders.X, {
|
|
45
|
+
provider: OAuthProviders.X,
|
|
46
|
+
authUrl: X_AUTH_URL,
|
|
47
|
+
scopes: "tweet.read users.read",
|
|
48
|
+
usesPKCE: true,
|
|
49
|
+
responseType: "code",
|
|
50
|
+
nonceInParams: false
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
export { APPLE_AUTH_URL, DISCORD_AUTH_URL, FACEBOOK_AUTH_URL, FACEBOOK_GRAPH_URL, GOOGLE_AUTH_URL, OAUTH_PROVIDER_CONFIGS, X_AUTH_URL, popupHeight, popupWidth };
|
|
54
|
+
//# sourceMappingURL=config.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.mjs","sources":["../../../src/utils/oauth/config.ts"],"sourcesContent":[null],"names":["DISCORD_AUTH_URL","X_AUTH_URL","GOOGLE_AUTH_URL","APPLE_AUTH_URL","FACEBOOK_AUTH_URL","FACEBOOK_GRAPH_URL","popupWidth","popupHeight","OAUTH_PROVIDER_CONFIGS","_defineProperty","OAuthProviders","GOOGLE","provider","authUrl","scopes","usesPKCE","responseType","nonceInParams","APPLE","responseMode","FACEBOOK","DISCORD","X"],"mappings":";;;AAEO,IAAMA,gBAAgB,GAAG;AACzB,IAAMC,UAAU,GAAG;AACnB,IAAMC,eAAe,GAAG;AACxB,IAAMC,cAAc,GAAG;AAGvB,IAAMC,iBAAiB,GAAG;AAC1B,IAAMC,kBAAkB,GAC7B;AAEK,IAAMC,UAAU,GAAG;AACnB,IAAMC,WAAW,GAAG;AAsB3B;;AAEG;IACUC,sBAAsB,GAAAC,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAA,EAAA,EAIhCC,cAAc,CAACC,MAAM,EAAG;EACvBC,QAAQ,EAAEF,cAAc,CAACC,MAAM;AAC/BE,EAAAA,OAAO,EAAEX,eAAe;AACxBY,EAAAA,MAAM,EAAE,sBAAsB;AAC9BC,EAAAA,QAAQ,EAAE,KAAK;AACfC,EAAAA,YAAY,EAAE,UAAU;AACxBC,EAAAA,aAAa,EAAE;AAChB,CAAA,CAAA,EACAP,cAAc,CAACQ,KAAK,EAAG;EACtBN,QAAQ,EAAEF,cAAc,CAACQ,KAAK;AAC9BL,EAAAA,OAAO,EAAEV,cAAc;AACvBW,EAAAA,MAAM,EAAE,EAAE;AACVC,EAAAA,QAAQ,EAAE,KAAK;AACfC,EAAAA,YAAY,EAAE,eAAe;AAC7BG,EAAAA,YAAY,EAAE,UAAU;AACxBF,EAAAA,aAAa,EAAE;AAChB,CAAA,CAAA,EACAP,cAAc,CAACU,QAAQ,EAAG;EACzBR,QAAQ,EAAEF,cAAc,CAACU,QAAQ;AACjCP,EAAAA,OAAO,EAAET,iBAAiB;AAC1BU,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,QAAQ,EAAE,IAAI;AACdC,EAAAA,YAAY,EAAE,MAAM;AACpBC,EAAAA,aAAa,EAAE;AAChB,CAAA,CAAA,EACAP,cAAc,CAACW,OAAO,EAAG;EACxBT,QAAQ,EAAEF,cAAc,CAACW,OAAO;AAChCR,EAAAA,OAAO,EAAEb,gBAAgB;AACzBc,EAAAA,MAAM,EAAE,gBAAgB;AACxBC,EAAAA,QAAQ,EAAE,IAAI;AACdC,EAAAA,YAAY,EAAE,MAAM;AACpBC,EAAAA,aAAa,EAAE;AAChB,CAAA,CAAA,EACAP,cAAc,CAACY,CAAC,EAAG;EAClBV,QAAQ,EAAEF,cAAc,CAACY,CAAC;AAC1BT,EAAAA,OAAO,EAAEZ,UAAU;AACnBa,EAAAA,MAAM,EAAE,uBAAuB;AAC/BC,EAAAA,QAAQ,EAAE,IAAI;AACdC,EAAAA,YAAY,EAAE,MAAM;AACpBC,EAAAA,aAAa,EAAE;AAChB,CAAA;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capitalizes the first letter of a provider name
|
|
3
|
+
* @param provider - The provider name (e.g., "facebook", "discord")
|
|
4
|
+
* @returns The capitalized provider name (e.g., "Facebook", "Discord")
|
|
5
|
+
*/
|
|
6
|
+
export declare function capitalizeProviderName(provider: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* Gets the FontAwesome icon for an OAuth provider
|
|
9
|
+
* @param provider - The provider name
|
|
10
|
+
* @returns The FontAwesome icon definition
|
|
11
|
+
*/
|
|
12
|
+
export declare function getProviderIcon(provider: string | null | undefined): import("@fortawesome/free-brands-svg-icons").IconDefinition;
|
|
13
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/utils/oauth/helpers.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,+DAclE"}
|