@descope/web-js-sdk 1.27.1 → 1.28.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/cjs/index.cjs.js +1 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/index.d.ts +120 -12
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +2 -2
- package/dist/index.umd.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -182,8 +182,8 @@ declare const decoratedCreateSdk: <A extends CookieConfig>({ persistTokens: isPe
|
|
|
182
182
|
create: boolean;
|
|
183
183
|
}>>;
|
|
184
184
|
};
|
|
185
|
-
update: ((identifier: string, token
|
|
186
|
-
start: (loginId: string, origin: string, token
|
|
185
|
+
update: ((identifier: string, token?: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>) & {
|
|
186
|
+
start: (loginId: string, origin: string, token?: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
187
187
|
transactionId: string;
|
|
188
188
|
options: string;
|
|
189
189
|
create: boolean;
|
|
@@ -198,7 +198,27 @@ declare const decoratedCreateSdk: <A extends CookieConfig>({ persistTokens: isPe
|
|
|
198
198
|
};
|
|
199
199
|
};
|
|
200
200
|
fedcm: {
|
|
201
|
-
|
|
201
|
+
onetap: {
|
|
202
|
+
requestExchangeCode(options: {
|
|
203
|
+
provider?: string;
|
|
204
|
+
oneTapConfig?: OneTapConfig;
|
|
205
|
+
loginOptions?: _descope_core_js_sdk.LoginOptions;
|
|
206
|
+
onSkipped?: (reason?: string) => void;
|
|
207
|
+
onDismissed?: (reason?: string) => void;
|
|
208
|
+
onFailed?: (error: Error) => void;
|
|
209
|
+
onCodeReceived: (code: string) => void;
|
|
210
|
+
}): void;
|
|
211
|
+
requestAuthentication(options?: {
|
|
212
|
+
provider?: string;
|
|
213
|
+
oneTapConfig?: OneTapConfig;
|
|
214
|
+
loginOptions?: _descope_core_js_sdk.LoginOptions;
|
|
215
|
+
onSkipped?: (reason?: string) => void;
|
|
216
|
+
onDismissed?: (reason?: string) => void;
|
|
217
|
+
onFailed?: (error: Error) => void;
|
|
218
|
+
onAuthenticated?: (response: _descope_core_js_sdk.JWTResponse) => void;
|
|
219
|
+
}): void;
|
|
220
|
+
};
|
|
221
|
+
oneTap(provider?: string, oneTapConfig?: OneTapConfig, loginOptions?: _descope_core_js_sdk.LoginOptions, onSkipped?: (reason?: string) => void, onDismissed?: (reason?: string) => void): void;
|
|
202
222
|
launch(context?: "signin" | "signup" | "use" | "continue"): Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
203
223
|
isSupported(): boolean;
|
|
204
224
|
isLoggedIn(context?: "signin" | "signup" | "use" | "continue"): Promise<boolean>;
|
|
@@ -562,6 +582,13 @@ declare const decoratedCreateSdk: <A extends CookieConfig>({ persistTokens: isPe
|
|
|
562
582
|
exchange: (code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
563
583
|
startNative: (provider: string, loginOptions?: _descope_core_js_sdk.LoginOptions, implicit?: boolean) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>;
|
|
564
584
|
finishNative: (provider: string, stateId: string, user?: string, code?: string, idToken?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>;
|
|
585
|
+
getOneTapClientId: (provider: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
586
|
+
clientId: string;
|
|
587
|
+
}>>;
|
|
588
|
+
verifyOneTapIDToken: (provider: string, idToken: string, nonce: string, loginOptions?: _descope_core_js_sdk.LoginOptions) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
589
|
+
code: string;
|
|
590
|
+
}>>;
|
|
591
|
+
exchangeOneTapIDToken: (provider: string, idToken: string, nonce: string, loginOptions?: _descope_core_js_sdk.LoginOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
565
592
|
};
|
|
566
593
|
saml: {
|
|
567
594
|
start: (tenantIdOrEmail: string, redirectUrl?: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string, ssoId?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
|
|
@@ -793,8 +820,8 @@ declare const decoratedCreateSdk: <A extends CookieConfig>({ persistTokens: isPe
|
|
|
793
820
|
create: boolean;
|
|
794
821
|
}>>;
|
|
795
822
|
};
|
|
796
|
-
update: ((identifier: string, token
|
|
797
|
-
start: (loginId: string, origin: string, token
|
|
823
|
+
update: ((identifier: string, token?: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>) & {
|
|
824
|
+
start: (loginId: string, origin: string, token?: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
798
825
|
transactionId: string;
|
|
799
826
|
options: string;
|
|
800
827
|
create: boolean;
|
|
@@ -809,7 +836,27 @@ declare const decoratedCreateSdk: <A extends CookieConfig>({ persistTokens: isPe
|
|
|
809
836
|
};
|
|
810
837
|
};
|
|
811
838
|
fedcm: {
|
|
812
|
-
|
|
839
|
+
onetap: {
|
|
840
|
+
requestExchangeCode(options: {
|
|
841
|
+
provider?: string;
|
|
842
|
+
oneTapConfig?: OneTapConfig;
|
|
843
|
+
loginOptions?: _descope_core_js_sdk.LoginOptions;
|
|
844
|
+
onSkipped?: (reason?: string) => void;
|
|
845
|
+
onDismissed?: (reason?: string) => void;
|
|
846
|
+
onFailed?: (error: Error) => void;
|
|
847
|
+
onCodeReceived: (code: string) => void;
|
|
848
|
+
}): void;
|
|
849
|
+
requestAuthentication(options?: {
|
|
850
|
+
provider?: string;
|
|
851
|
+
oneTapConfig?: OneTapConfig;
|
|
852
|
+
loginOptions?: _descope_core_js_sdk.LoginOptions;
|
|
853
|
+
onSkipped?: (reason?: string) => void;
|
|
854
|
+
onDismissed?: (reason?: string) => void;
|
|
855
|
+
onFailed?: (error: Error) => void;
|
|
856
|
+
onAuthenticated?: (response: _descope_core_js_sdk.JWTResponse) => void;
|
|
857
|
+
}): void;
|
|
858
|
+
};
|
|
859
|
+
oneTap(provider?: string, oneTapConfig?: OneTapConfig, loginOptions?: _descope_core_js_sdk.LoginOptions, onSkipped?: (reason?: string) => void, onDismissed?: (reason?: string) => void): void;
|
|
813
860
|
launch(context?: "signin" | "signup" | "use" | "continue"): Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
814
861
|
isSupported(): boolean;
|
|
815
862
|
isLoggedIn(context?: "signin" | "signup" | "use" | "continue"): Promise<boolean>;
|
|
@@ -1173,6 +1220,13 @@ declare const decoratedCreateSdk: <A extends CookieConfig>({ persistTokens: isPe
|
|
|
1173
1220
|
exchange: (code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
1174
1221
|
startNative: (provider: string, loginOptions?: _descope_core_js_sdk.LoginOptions, implicit?: boolean) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>;
|
|
1175
1222
|
finishNative: (provider: string, stateId: string, user?: string, code?: string, idToken?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>;
|
|
1223
|
+
getOneTapClientId: (provider: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1224
|
+
clientId: string;
|
|
1225
|
+
}>>;
|
|
1226
|
+
verifyOneTapIDToken: (provider: string, idToken: string, nonce: string, loginOptions?: _descope_core_js_sdk.LoginOptions) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1227
|
+
code: string;
|
|
1228
|
+
}>>;
|
|
1229
|
+
exchangeOneTapIDToken: (provider: string, idToken: string, nonce: string, loginOptions?: _descope_core_js_sdk.LoginOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
1176
1230
|
};
|
|
1177
1231
|
saml: {
|
|
1178
1232
|
start: (tenantIdOrEmail: string, redirectUrl?: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string, ssoId?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
|
|
@@ -1411,8 +1465,8 @@ declare const decoratedCreateSdk: <A extends CookieConfig>({ persistTokens: isPe
|
|
|
1411
1465
|
create: boolean;
|
|
1412
1466
|
}>>;
|
|
1413
1467
|
};
|
|
1414
|
-
update: ((identifier: string, token
|
|
1415
|
-
start: (loginId: string, origin: string, token
|
|
1468
|
+
update: ((identifier: string, token?: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>) & {
|
|
1469
|
+
start: (loginId: string, origin: string, token?: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1416
1470
|
transactionId: string;
|
|
1417
1471
|
options: string;
|
|
1418
1472
|
create: boolean;
|
|
@@ -1427,7 +1481,27 @@ declare const decoratedCreateSdk: <A extends CookieConfig>({ persistTokens: isPe
|
|
|
1427
1481
|
};
|
|
1428
1482
|
};
|
|
1429
1483
|
fedcm: {
|
|
1430
|
-
|
|
1484
|
+
onetap: {
|
|
1485
|
+
requestExchangeCode(options: {
|
|
1486
|
+
provider?: string;
|
|
1487
|
+
oneTapConfig?: OneTapConfig;
|
|
1488
|
+
loginOptions?: _descope_core_js_sdk.LoginOptions;
|
|
1489
|
+
onSkipped?: (reason?: string) => void;
|
|
1490
|
+
onDismissed?: (reason?: string) => void;
|
|
1491
|
+
onFailed?: (error: Error) => void;
|
|
1492
|
+
onCodeReceived: (code: string) => void;
|
|
1493
|
+
}): void;
|
|
1494
|
+
requestAuthentication(options?: {
|
|
1495
|
+
provider?: string;
|
|
1496
|
+
oneTapConfig?: OneTapConfig;
|
|
1497
|
+
loginOptions?: _descope_core_js_sdk.LoginOptions;
|
|
1498
|
+
onSkipped?: (reason?: string) => void;
|
|
1499
|
+
onDismissed?: (reason?: string) => void;
|
|
1500
|
+
onFailed?: (error: Error) => void;
|
|
1501
|
+
onAuthenticated?: (response: _descope_core_js_sdk.JWTResponse) => void;
|
|
1502
|
+
}): void;
|
|
1503
|
+
};
|
|
1504
|
+
oneTap(provider?: string, oneTapConfig?: OneTapConfig, loginOptions?: _descope_core_js_sdk.LoginOptions, onSkipped?: (reason?: string) => void, onDismissed?: (reason?: string) => void): void;
|
|
1431
1505
|
launch(context?: "signin" | "signup" | "use" | "continue"): Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
1432
1506
|
isSupported(): boolean;
|
|
1433
1507
|
isLoggedIn(context?: "signin" | "signup" | "use" | "continue"): Promise<boolean>;
|
|
@@ -1791,6 +1865,13 @@ declare const decoratedCreateSdk: <A extends CookieConfig>({ persistTokens: isPe
|
|
|
1791
1865
|
exchange: (code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
1792
1866
|
startNative: (provider: string, loginOptions?: _descope_core_js_sdk.LoginOptions, implicit?: boolean) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>;
|
|
1793
1867
|
finishNative: (provider: string, stateId: string, user?: string, code?: string, idToken?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>;
|
|
1868
|
+
getOneTapClientId: (provider: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1869
|
+
clientId: string;
|
|
1870
|
+
}>>;
|
|
1871
|
+
verifyOneTapIDToken: (provider: string, idToken: string, nonce: string, loginOptions?: _descope_core_js_sdk.LoginOptions) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1872
|
+
code: string;
|
|
1873
|
+
}>>;
|
|
1874
|
+
exchangeOneTapIDToken: (provider: string, idToken: string, nonce: string, loginOptions?: _descope_core_js_sdk.LoginOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
1794
1875
|
};
|
|
1795
1876
|
saml: {
|
|
1796
1877
|
start: (tenantIdOrEmail: string, redirectUrl?: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string, ssoId?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
|
|
@@ -2022,8 +2103,8 @@ declare const decoratedCreateSdk: <A extends CookieConfig>({ persistTokens: isPe
|
|
|
2022
2103
|
create: boolean;
|
|
2023
2104
|
}>>;
|
|
2024
2105
|
};
|
|
2025
|
-
update: ((identifier: string, token
|
|
2026
|
-
start: (loginId: string, origin: string, token
|
|
2106
|
+
update: ((identifier: string, token?: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>) & {
|
|
2107
|
+
start: (loginId: string, origin: string, token?: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
2027
2108
|
transactionId: string;
|
|
2028
2109
|
options: string;
|
|
2029
2110
|
create: boolean;
|
|
@@ -2038,7 +2119,27 @@ declare const decoratedCreateSdk: <A extends CookieConfig>({ persistTokens: isPe
|
|
|
2038
2119
|
};
|
|
2039
2120
|
};
|
|
2040
2121
|
fedcm: {
|
|
2041
|
-
|
|
2122
|
+
onetap: {
|
|
2123
|
+
requestExchangeCode(options: {
|
|
2124
|
+
provider?: string;
|
|
2125
|
+
oneTapConfig?: OneTapConfig;
|
|
2126
|
+
loginOptions?: _descope_core_js_sdk.LoginOptions;
|
|
2127
|
+
onSkipped?: (reason?: string) => void;
|
|
2128
|
+
onDismissed?: (reason?: string) => void;
|
|
2129
|
+
onFailed?: (error: Error) => void;
|
|
2130
|
+
onCodeReceived: (code: string) => void;
|
|
2131
|
+
}): void;
|
|
2132
|
+
requestAuthentication(options?: {
|
|
2133
|
+
provider?: string;
|
|
2134
|
+
oneTapConfig?: OneTapConfig;
|
|
2135
|
+
loginOptions?: _descope_core_js_sdk.LoginOptions;
|
|
2136
|
+
onSkipped?: (reason?: string) => void;
|
|
2137
|
+
onDismissed?: (reason?: string) => void;
|
|
2138
|
+
onFailed?: (error: Error) => void;
|
|
2139
|
+
onAuthenticated?: (response: _descope_core_js_sdk.JWTResponse) => void;
|
|
2140
|
+
}): void;
|
|
2141
|
+
};
|
|
2142
|
+
oneTap(provider?: string, oneTapConfig?: OneTapConfig, loginOptions?: _descope_core_js_sdk.LoginOptions, onSkipped?: (reason?: string) => void, onDismissed?: (reason?: string) => void): void;
|
|
2042
2143
|
launch(context?: "signin" | "signup" | "use" | "continue"): Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
2043
2144
|
isSupported(): boolean;
|
|
2044
2145
|
isLoggedIn(context?: "signin" | "signup" | "use" | "continue"): Promise<boolean>;
|
|
@@ -2402,6 +2503,13 @@ declare const decoratedCreateSdk: <A extends CookieConfig>({ persistTokens: isPe
|
|
|
2402
2503
|
exchange: (code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
2403
2504
|
startNative: (provider: string, loginOptions?: _descope_core_js_sdk.LoginOptions, implicit?: boolean) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>;
|
|
2404
2505
|
finishNative: (provider: string, stateId: string, user?: string, code?: string, idToken?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>;
|
|
2506
|
+
getOneTapClientId: (provider: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
2507
|
+
clientId: string;
|
|
2508
|
+
}>>;
|
|
2509
|
+
verifyOneTapIDToken: (provider: string, idToken: string, nonce: string, loginOptions?: _descope_core_js_sdk.LoginOptions) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
2510
|
+
code: string;
|
|
2511
|
+
}>>;
|
|
2512
|
+
exchangeOneTapIDToken: (provider: string, idToken: string, nonce: string, loginOptions?: _descope_core_js_sdk.LoginOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
2405
2513
|
};
|
|
2406
2514
|
saml: {
|
|
2407
2515
|
start: (tenantIdOrEmail: string, redirectUrl?: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string, ssoId?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
|
package/dist/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as t}from"tslib";import e,{wrapWith as n}from"@descope/core-js-sdk";import{jwtDecode as o}from"jwt-decode";import i from"js-cookie";import{load as a,defaultEndpoint as s,defaultScriptUrlPattern as r}from"@fingerprintjs/fingerprintjs-pro";const l=(t,e)=>{var n;return["beforeRequest","afterRequest"].reduce(((n,o)=>{var i;return n[o]=[].concat((null===(i=t.hooks)||void 0===i?void 0:i[o])||[]).concat((null==e?void 0:e[o])||[]),n}),null!==(n=t.hooks)&&void 0!==n?n:t.hooks={}),t},c=async t=>{if(!(null==t?void 0:t.ok))return{};const e=await(null==t?void 0:t.clone().json());return(null==e?void 0:e.authInfo)||e||{}},u=async t=>{const e=await c(t);return(null==e?void 0:e.user)||((null==e?void 0:e.hasOwnProperty("userId"))?e:void 0)},d="undefined"!=typeof localStorage,g=(t,e)=>d&&(null===localStorage||void 0===localStorage?void 0:localStorage.setItem(t,e)),p=t=>d&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem(t)),f=t=>d&&(null===localStorage||void 0===localStorage?void 0:localStorage.removeItem(t)),w=(...t)=>{console.debug(...t)},v="undefined"!=typeof window,h=Math.pow(2,31)-1,m=t=>{let e=((n=t)?n.getTime()-(new Date).getTime():0)-2e4;var n;return e>h&&(w(`Timeout is too large (${e}ms), setting it to ${h}ms`),e=h),e},b="DS",y="DSR";function S(t,e,{cookiePath:n,cookieDomain:o,cookieExpiration:a,cookieSameSite:s="Strict",cookieSecure:r=!0}){if(e){const l=new Date(1e3*a),c=function(t){const e=window.location.hostname.split("."),n=t.split(".");return e.slice(-n.length).join(".")===t}(o);i.set(t,e,{path:n,domain:c?o:void 0,expires:l,sameSite:s,secure:r})}}function I(t=""){return p(`${t}${y}`)||""}function k(t=""){return i.get(b)||p(`${t}${b}`)||""}function O(t=""){f(`${t}${y}`),f(`${t}${b}`),i.remove(b)}const j=v&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://api.descope.com",U="vsid",A="vrid",x="fp",D=(t=!1)=>{const e=localStorage.getItem(x);if(!e)return null;const n=JSON.parse(e);return(new Date).getTime()>n.expiry&&!t?null:n.value},C=async(t,e=j)=>{try{if(D())return;const n=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),o=new URL(e);o.pathname="/fXj8gt3x8VulJBna/x96Emn69oZwcd7I6";const i=new URL(e);i.pathname="/fXj8gt3x8VulJBna/w78aRZnnDZ3Aqw0I";const l=i.toString()+"?apiKey=<apiKey>&version=<version>&loaderVersion=<loaderVersion>",c=a({apiKey:t,endpoint:[o.toString(),s],scriptUrlPattern:[l,r]}),u=await c,{requestId:d}=await u.get({linkedId:n}),g=((t,e)=>({[U]:t,[A]:e}))(n,d);(t=>{const e={value:t,expiry:(new Date).getTime()+864e5};localStorage.setItem(x,JSON.stringify(e))})(g)}catch(t){console.warn("Could not load fingerprint",t)}},L=()=>{localStorage.removeItem(x)},R=t=>{const e=D(!0);return e&&t.body&&(t.body.fpData=e),t},T="dls_last_user_login_id",J="dls_last_user_display_name",_=()=>p(T),K=()=>p(J),$=t=>async(...e)=>{var n;e[1]=e[1]||{};const[,o={}]=e,i=_(),a=K();i&&(null!==(n=o.lastAuth)&&void 0!==n||(o.lastAuth={}),o.lastAuth.loginId=i,o.lastAuth.name=a);return await t(...e)},N=t=>e=>async(...n)=>{const o=await e(...n);return t||(f(T),f(J)),o};function P(){const t=[];return{pub:e=>{t.forEach((t=>t(e)))},sub:e=>{const n=t.push(e)-1;return()=>t.splice(n,1)}}}const E=t=>e=>async(...n)=>{const o=await e(...n);return O(t),o};async function q(t){const e=function(t){var e;const n=JSON.parse(t);return n.publicKey.challenge=Z(n.publicKey.challenge),n.publicKey.user.id=Z(n.publicKey.user.id),null===(e=n.publicKey.excludeCredentials)||void 0===e||e.forEach((t=>{t.id=Z(t.id)})),n}(t),n=await navigator.credentials.create(e);return o=n,JSON.stringify({id:o.id,rawId:F(o.rawId),type:o.type,response:{attestationObject:F(o.response.attestationObject),clientDataJSON:F(o.response.clientDataJSON)}});var o}async function V(t){const e=G(t);return B(await navigator.credentials.get(e))}async function H(t,e){const n=G(t);n.signal=e.signal,n.mediation="conditional";return B(await navigator.credentials.get(n))}async function M(t=!1){if(!v)return Promise.resolve(!1);const e=!!(window.PublicKeyCredential&&navigator.credentials&&navigator.credentials.create&&navigator.credentials.get);return e&&t&&PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():e}function G(t){var e;const n=JSON.parse(t);return n.publicKey.challenge=Z(n.publicKey.challenge),null===(e=n.publicKey.allowCredentials)||void 0===e||e.forEach((t=>{t.id=Z(t.id)})),n}function B(t){return JSON.stringify({id:t.id,rawId:F(t.rawId),type:t.type,response:{authenticatorData:F(t.response.authenticatorData),clientDataJSON:F(t.response.clientDataJSON),signature:F(t.response.signature),userHandle:t.response.userHandle?F(t.response.userHandle):void 0}})}function Z(t){const e=t.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(e),(t=>t.charCodeAt(0))).buffer}function F(t){return btoa(String.fromCharCode.apply(null,new Uint8Array(t))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var X,z=(X=t=>({async signUp(e,n,o){const i=await t.webauthn.signUp.start(e,window.location.origin,n,o);if(!i.ok)return i;const a=await q(i.data.options);return await t.webauthn.signUp.finish(i.data.transactionId,a)},async signIn(e,n){const o=await t.webauthn.signIn.start(e,window.location.origin,void 0,void 0,n);if(!o.ok)return o;const i=await V(o.data.options);return await t.webauthn.signIn.finish(o.data.transactionId,i)},async signUpOrIn(e,n){var o;const i=await t.webauthn.signUpOrIn.start(e,window.location.origin,n);if(!i.ok)return i;if(null===(o=i.data)||void 0===o?void 0:o.create){const e=await q(i.data.options);return await t.webauthn.signUp.finish(i.data.transactionId,e)}{const e=await V(i.data.options);return await t.webauthn.signIn.finish(i.data.transactionId,e)}},async update(e,n,o){const i=await t.webauthn.update.start(e,window.location.origin,n,o);if(!i.ok)return i;const a=await q(i.data.options);return await t.webauthn.update.finish(i.data.transactionId,a)},helpers:{create:q,get:V,isSupported:M,conditional:H}}),(...t)=>{const e=X(...t);return Object.assign(e.signUp,t[0].webauthn.signUp),Object.assign(e.signIn,t[0].webauthn.signIn),Object.assign(e.signUpOrIn,t[0].webauthn.signUpOrIn),Object.assign(e.update,t[0].webauthn.update),e});const Q={config:"/fedcm/config"},W=(t,e)=>({async oneTap(e,n,o,i,a){const s=null!=e?e:"google",r=await t.oauth.startNative(s,o,!0);if(!r.ok)return r;const{clientId:l,stateId:c,nonce:u}=r.data,d=await async function(){return new Promise(((t,e)=>{if(window.google)return void t(window.google.accounts.id);let n=document.getElementById("google-gsi-client-script");n||(n=document.createElement("script"),document.head.appendChild(n),n.async=!0,n.defer=!0,n.id="google-gsi-client-script",n.src="https://accounts.google.com/gsi/client"),n.onload=function(){window.google?t(window.google.accounts.id):e("Failed to load Google GSI client script - not loaded properly")},n.onerror=function(){e("Failed to load Google GSI client script - failed to load")}}))}();return new Promise((e=>{var o,r;d.initialize(Object.assign(Object.assign({},n),{itp_support:null===(o=null==n?void 0:n.itp_support)||void 0===o||o,use_fedcm_for_prompt:null===(r=null==n?void 0:n.use_fedcm_for_prompt)||void 0===r||r,client_id:l,callback:n=>{e(t.oauth.finishNative(s,c,"","",n.credential))},nonce:u})),d.prompt((t=>{var e,n;if(a&&(null==t?void 0:t.isDismissedMoment())){const n=null===(e=t.getDismissedReason)||void 0===e?void 0:e.call(t);null==a||a(n)}else if(i&&(null==t?void 0:t.isSkippedMoment())){const e=null===(n=t.getSkippedReason)||void 0===n?void 0:n.call(t);null==i||i(e)}else;}))}))},async launch(n){var o;const i={identity:{context:n||"signin",providers:[{configURL:t.httpClient.buildUrl(e+Q.config),clientId:e}]}},a=await(null===(o=navigator.credentials)||void 0===o?void 0:o.get(i));return t.refresh(a.token)},isSupported:()=>v&&"IdentityCredential"in window,async isLoggedIn(n){var o;const i=t.httpClient.buildUrl(e+Q.config);try{const t={identity:{context:n||"signin",providers:[{configURL:i,clientId:e}]}},a=await(null===(o=navigator.credentials)||void 0===o?void 0:o.get(t));return!!a&&!!a.token}catch(t){return!1}}});var Y=t=>Object.assign(Object.assign({},t.flow),{start:async(...e)=>{const n=await M(),o=Object.assign(Object.assign({location:window.location.href},e[1]),{deviceInfo:{webAuthnSupport:n},startOptionsVersion:1});return e[1]=o,t.flow.start(...e)}});const tt=function(...t){return e=>t.reduce(((t,e)=>e(t)),e)}((e=>n=>{var{fpKey:o,fpLoad:i}=n,a=t(n,["fpKey","fpLoad"]);return v?(o&&i&&C(o).catch((()=>null)),e(l(a,{beforeRequest:R}))):e(a)}),(e=>i=>{var{autoRefresh:a}=i,s=t(i,["autoRefresh"]);if(!a)return e(s);const{clearAllTimers:r,setTimer:u}=(()=>{const t=[];return{clearAllTimers:()=>{for(;t.length;)clearTimeout(t.pop())},setTimer:(e,n)=>{t.push(setTimeout(e,n))}}})();let d,g;v&&document.addEventListener("visibilitychange",(()=>{"visible"===document.visibilityState&&d&&new Date>d&&(w("Expiration time passed, refreshing session"),p.refresh(I()||g))}));const p=e(l(s,{afterRequest:async(t,e)=>{const{refreshJwt:n,sessionJwt:i,sessionExpiration:a}=await c(e);if(401===(null==e?void 0:e.status))w("Received 401, canceling all timers"),r();else if(i||a){if(d=((t,e)=>{if(e)return new Date(1e3*e);w("Could not extract expiration time from session token, trying to decode the token");try{const e=o(t);if(e.exp)return new Date(1e3*e.exp)}catch(t){return null}})(i,a),!d)return void w("Could not extract expiration time from session token");g=n;const t=m(d);if(r(),t<=2e4)return void w("Session is too close to expiration, not setting refresh timer");const e=new Date(Date.now()+t).toLocaleTimeString("en-US",{hour12:!1});w(`Setting refresh timer for ${e}. (${t}ms)`),u((()=>{w("Refreshing session due to timer"),p.refresh(I()||n)}),t)}}}));return n(p,["logout","logoutAll"],(t=>async(...e)=>{const n=await t(...e);return w("Clearing all timers"),r(),n}))}),(t=>e=>t(Object.assign(Object.assign({},e),{baseHeaders:Object.assign({"x-descope-sdk-name":"web-js","x-descope-sdk-version":"1.27.1"},e.baseHeaders)}))),(t=>e=>{const o=P(),i=P(),a=P(),s=t(l(e,{afterRequest:async(t,e)=>{if(401===(null==e?void 0:e.status))i.pub(null),a.pub(null),o.pub(null);else{const t=await u(e);t&&a.pub(t);const{sessionJwt:n,sessionExpiration:s}=await c(e);n&&i.pub(n),(s||n)&&o.pub(s||42)}}})),r=n(s,["logout","logoutAll"],(t=>async(...e)=>{const n=await t(...e);return i.pub(null),a.pub(null),o.pub(null),n}));return Object.assign(r,{onSessionTokenChange:i.sub,onUserChange:a.sub,onIsAuthenticatedChange:t=>o.sub((e=>{t(!!e)}))})}),(e=>o=>{var{storeLastAuthenticatedUser:i=!0,keepLastAuthenticatedUserAfterLogout:a=!1}=o,s=t(o,["storeLastAuthenticatedUser","keepLastAuthenticatedUserAfterLogout"]);if(!i)return Object.assign(e(s),{getLastUserLoginId:_,getLastUserDisplayName:K});const r=e(l(s,{afterRequest:async(t,e)=>{var n;const o=await u(e),i=null===(n=null==o?void 0:o.loginIds)||void 0===n?void 0:n[0],a=null==o?void 0:o.name;i&&((t=>{g(T,t)})(i),(t=>{g(J,t)})(a))}}));let c=n(r,["flow.start"],$);return c=n(c,["logout","logoutAll"],N(a)),Object.assign(c,{getLastUserLoginId:_,getLastUserDisplayName:K})}),(e=>o=>{var{persistTokens:i,sessionTokenViaCookie:a,storagePrefix:s}=o,r=t(o,["persistTokens","sessionTokenViaCookie","storagePrefix"]);if(!i||!v)return e(r);const u=e(l(r,{beforeRequest:(d=s,t=>Object.assign(t,{token:t.token||I(d)})),afterRequest:async(e,n)=>{const o=/^\/v\d+\/mgmt\//.test(e.path);401===(null==n?void 0:n.status)?o||O(s):((e={},n,o)=>{var i,{refreshJwt:a,sessionJwt:s}=e,r=t(e,["refreshJwt","sessionJwt"]);if(void 0===n&&(n=!1),void 0===o&&(o=""),a&&g(`${o}${y}`,a),s)if(n){const t=n.sameSite||"Strict",e=null===(i=n.secure)||void 0===i||i;S(b,s,Object.assign(Object.assign({},r),{cookieSameSite:t,cookieSecure:e}))}else g(`${o}${b}`,s)})(await c(n),a,s)}}));var d;const p=n(u,["logout","logoutAll"],E(s));return Object.assign(p,{getRefreshToken:()=>I(s),getSessionToken:()=>k(s)})}))(((...t)=>{const n=e(...t);return Object.assign(Object.assign({},n),{refresh:t=>{const e=k(),o=I();return n.refresh(t,{dcs:e?"t":"f",dcr:o?"t":"f"})},flow:Y(n),webauthn:z(n),fedcm:W(n,t[0].projectId)})}));export{y as REFRESH_TOKEN_KEY,b as SESSION_TOKEN_KEY,L as clearFingerprintData,tt as default,C as ensureFingerprintIds};
|
|
1
|
+
import{__rest as e}from"tslib";import t,{wrapWith as n}from"@descope/core-js-sdk";import{jwtDecode as o}from"jwt-decode";import i from"js-cookie";import{load as a,defaultEndpoint as r,defaultScriptUrlPattern as s}from"@fingerprintjs/fingerprintjs-pro";const l=(e,t)=>{var n;return["beforeRequest","afterRequest"].reduce(((n,o)=>{var i;return n[o]=[].concat((null===(i=e.hooks)||void 0===i?void 0:i[o])||[]).concat((null==t?void 0:t[o])||[]),n}),null!==(n=e.hooks)&&void 0!==n?n:e.hooks={}),e},c=async e=>{if(!(null==e?void 0:e.ok))return{};const t=await(null==e?void 0:e.clone().json());return(null==t?void 0:t.authInfo)||t||{}},u=async e=>{const t=await c(e);return(null==t?void 0:t.user)||((null==t?void 0:t.hasOwnProperty("userId"))?t:void 0)},d="undefined"!=typeof localStorage,g=(e,t)=>d&&(null===localStorage||void 0===localStorage?void 0:localStorage.setItem(e,t)),p=e=>d&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem(e)),f=e=>d&&(null===localStorage||void 0===localStorage?void 0:localStorage.removeItem(e)),v=(...e)=>{console.debug(...e)},w="undefined"!=typeof window,h=Math.pow(2,31)-1,m=e=>{let t=((n=e)?n.getTime()-(new Date).getTime():0)-2e4;var n;return t>h&&(v(`Timeout is too large (${t}ms), setting it to ${h}ms`),t=h),t},b="DS",y="DSR";function S(e,t,{cookiePath:n,cookieDomain:o,cookieExpiration:a,cookieSameSite:r="Strict",cookieSecure:s=!0}){if(t){const l=new Date(1e3*a),c=function(e){const t=window.location.hostname.split("."),n=e.split(".");return t.slice(-n.length).join(".")===e}(o);i.set(e,t,{path:n,domain:c?o:void 0,expires:l,sameSite:r,secure:s})}}function I(e=""){return p(`${e}${y}`)||""}function O(e=""){return i.get(b)||p(`${e}${b}`)||""}function k(e=""){f(`${e}${y}`),f(`${e}${b}`),i.remove(b)}const j=w&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://api.descope.com",D="vsid",U="vrid",A="fp",T=(e=!1)=>{const t=localStorage.getItem(A);if(!t)return null;const n=JSON.parse(t);return(new Date).getTime()>n.expiry&&!e?null:n.value},x=async(e,t=j)=>{try{if(T())return;const n=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),o=new URL(t);o.pathname="/fXj8gt3x8VulJBna/x96Emn69oZwcd7I6";const i=new URL(t);i.pathname="/fXj8gt3x8VulJBna/w78aRZnnDZ3Aqw0I";const l=i.toString()+"?apiKey=<apiKey>&version=<version>&loaderVersion=<loaderVersion>",c=a({apiKey:e,endpoint:[o.toString(),r],scriptUrlPattern:[l,s]}),u=await c,{requestId:d}=await u.get({linkedId:n}),g=((e,t)=>({[D]:e,[U]:t}))(n,d);(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem(A,JSON.stringify(t))})(g)}catch(e){console.warn("Could not load fingerprint",e)}},C=()=>{localStorage.removeItem(A)},R=e=>{const t=T(!0);return t&&e.body&&(e.body.fpData=t),e},L="dls_last_user_login_id",J="dls_last_user_display_name",_=()=>p(L),K=()=>p(J),$=e=>async(...t)=>{var n;t[1]=t[1]||{};const[,o={}]=t,i=_(),a=K();i&&(null!==(n=o.lastAuth)&&void 0!==n||(o.lastAuth={}),o.lastAuth.loginId=i,o.lastAuth.name=a);return await e(...t)},E=e=>t=>async(...n)=>{const o=await t(...n);return e||(f(L),f(J)),o};function P(){const e=[];return{pub:t=>{e.forEach((e=>e(t)))},sub:t=>{const n=e.push(t)-1;return()=>e.splice(n,1)}}}const q=e=>t=>async(...n)=>{const o=await t(...n);return k(e),o};async function N(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=B(n.publicKey.challenge),n.publicKey.user.id=B(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=B(e.id)})),n}(e),n=await navigator.credentials.create(t);return o=n,JSON.stringify({id:o.id,rawId:Z(o.rawId),type:o.type,response:{attestationObject:Z(o.response.attestationObject),clientDataJSON:Z(o.response.clientDataJSON)}});var o}async function V(e){const t=H(e);return G(await navigator.credentials.get(t))}async function F(e,t){const n=H(e);n.signal=t.signal,n.mediation="conditional";return G(await navigator.credentials.get(n))}async function M(e=!1){if(!w)return Promise.resolve(!1);const t=!!(window.PublicKeyCredential&&navigator.credentials&&navigator.credentials.create&&navigator.credentials.get);return t&&e&&PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():t}function H(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=B(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=B(e.id)})),n}function G(e){return JSON.stringify({id:e.id,rawId:Z(e.rawId),type:e.type,response:{authenticatorData:Z(e.response.authenticatorData),clientDataJSON:Z(e.response.clientDataJSON),signature:Z(e.response.signature),userHandle:e.response.userHandle?Z(e.response.userHandle):void 0}})}function B(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function Z(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var X,z=(X=e=>({async signUp(t,n,o){const i=await e.webauthn.signUp.start(t,window.location.origin,n,o);if(!i.ok)return i;const a=await N(i.data.options);return await e.webauthn.signUp.finish(i.data.transactionId,a)},async signIn(t,n){const o=await e.webauthn.signIn.start(t,window.location.origin,void 0,void 0,n);if(!o.ok)return o;const i=await V(o.data.options);return await e.webauthn.signIn.finish(o.data.transactionId,i)},async signUpOrIn(t,n){var o;const i=await e.webauthn.signUpOrIn.start(t,window.location.origin,n);if(!i.ok)return i;if(null===(o=i.data)||void 0===o?void 0:o.create){const t=await N(i.data.options);return await e.webauthn.signUp.finish(i.data.transactionId,t)}{const t=await V(i.data.options);return await e.webauthn.signIn.finish(i.data.transactionId,t)}},async update(t,n,o){const i=await e.webauthn.update.start(t,window.location.origin,n,o);if(!i.ok)return i;const a=await N(i.data.options);return await e.webauthn.update.finish(i.data.transactionId,a)},helpers:{create:N,get:V,isSupported:M,conditional:F}}),(...e)=>{const t=X(...e);return Object.assign(t.signUp,e[0].webauthn.signUp),Object.assign(t.signIn,e[0].webauthn.signIn),Object.assign(t.signUpOrIn,e[0].webauthn.signUpOrIn),Object.assign(t.update,e[0].webauthn.update),t});const Q={config:"/fedcm/config"},W=()=>{if(window.crypto&&window.crypto.getRandomValues){const e=new Uint8Array(16);return window.crypto.getRandomValues(e),Array.from(e,(e=>e.toString(16).padStart(2,"0"))).join("")}return Math.random().toString(36).substring(2)};async function Y(e,t){var n,o,i;try{const i=await async function(e,t="google",n,o,i){const a=W(),r=await async function(){return new Promise(((e,t)=>{if(window.google)return void e(window.google.accounts.id);let n=document.getElementById("google-gsi-client-script");n||(n=document.createElement("script"),document.head.appendChild(n),n.async=!0,n.defer=!0,n.id="google-gsi-client-script",n.src="https://accounts.google.com/gsi/client"),n.onload=function(){window.google?e(window.google.accounts.id):t("Failed to load Google GSI client script - not loaded properly")},n.onerror=function(){t("Failed to load Google GSI client script - failed to load")}}))}(),s=await e.oauth.getOneTapClientId(t);if(!s.ok)throw new Error("Failed to get OneTap client ID for provider "+t);const l=s.data.clientId;return new Promise((e=>{var s,c;const u=n=>{e({provider:t,nonce:a,credential:null==n?void 0:n.credential})};r.initialize(Object.assign(Object.assign({},n),{itp_support:null===(s=null==n?void 0:n.itp_support)||void 0===s||s,use_fedcm_for_prompt:null===(c=null==n?void 0:n.use_fedcm_for_prompt)||void 0===c||c,client_id:l,callback:u,nonce:a})),r.prompt((e=>{var t,n;if(i&&(null==e?void 0:e.isDismissedMoment())){const n=null===(t=e.getDismissedReason)||void 0===t?void 0:t.call(e);return null==i||i(n),void u()}if(o&&(null==e?void 0:e.isSkippedMoment())){const t=null===(n=e.getSkippedReason)||void 0===n?void 0:n.call(e);return null==o||o(t),void u()}}))}))}(e,t.provider,t.oneTapConfig,t.onSkipped,t.onDismissed);if(!i.credential)return null;if(null==t?void 0:t.onCodeReceived){const o=await e.oauth.verifyOneTapIDToken(i.provider,i.credential,i.nonce,null==t?void 0:t.loginOptions);if(!o.ok||!o.data)throw new Error("Failed to verify OneTap client ID for provider "+i.provider);null===(n=null==t?void 0:t.onCodeReceived)||void 0===n||n.call(t,o.data.code)}else{const n=await e.oauth.exchangeOneTapIDToken(i.provider,i.credential,i.nonce,null==t?void 0:t.loginOptions);if(!n.ok||!n.data)throw new Error("Failed to exchange OneTap client ID for provider "+i.provider);null===(o=null==t?void 0:t.onAuthenticated)||void 0===o||o.call(t,n.data)}}catch(e){null===(i=null==t?void 0:t.onFailed)||void 0===i||i.call(t,e)}}var ee=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await M(),o=Object.assign(Object.assign({location:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n},startOptionsVersion:1});return t[1]=o,e.flow.start(...t)}});const te=function(...e){return t=>e.reduce(((e,t)=>t(e)),t)}((t=>n=>{var{fpKey:o,fpLoad:i}=n,a=e(n,["fpKey","fpLoad"]);return w?(o&&i&&x(o).catch((()=>null)),t(l(a,{beforeRequest:R}))):t(a)}),(t=>i=>{var{autoRefresh:a}=i,r=e(i,["autoRefresh"]);if(!a)return t(r);const{clearAllTimers:s,setTimer:u}=(()=>{const e=[];return{clearAllTimers:()=>{for(;e.length;)clearTimeout(e.pop())},setTimer:(t,n)=>{e.push(setTimeout(t,n))}}})();let d,g;w&&document.addEventListener("visibilitychange",(()=>{"visible"===document.visibilityState&&d&&new Date>d&&(v("Expiration time passed, refreshing session"),p.refresh(I()||g))}));const p=t(l(r,{afterRequest:async(e,t)=>{const{refreshJwt:n,sessionJwt:i,sessionExpiration:a}=await c(t);if(401===(null==t?void 0:t.status))v("Received 401, canceling all timers"),s();else if(i||a){if(d=((e,t)=>{if(t)return new Date(1e3*t);v("Could not extract expiration time from session token, trying to decode the token");try{const t=o(e);if(t.exp)return new Date(1e3*t.exp)}catch(e){return null}})(i,a),!d)return void v("Could not extract expiration time from session token");g=n;const e=m(d);if(s(),e<=2e4)return void v("Session is too close to expiration, not setting refresh timer");const t=new Date(Date.now()+e).toLocaleTimeString("en-US",{hour12:!1});v(`Setting refresh timer for ${t}. (${e}ms)`),u((()=>{v("Refreshing session due to timer"),p.refresh(I()||n)}),e)}}}));return n(p,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return v("Clearing all timers"),s(),n}))}),(e=>t=>e(Object.assign(Object.assign({},t),{baseHeaders:Object.assign({"x-descope-sdk-name":"web-js","x-descope-sdk-version":"1.28.0"},t.baseHeaders)}))),(e=>t=>{const o=P(),i=P(),a=P(),r=e(l(t,{afterRequest:async(e,t)=>{if(401===(null==t?void 0:t.status))i.pub(null),a.pub(null),o.pub(null);else{const e=await u(t);e&&a.pub(e);const{sessionJwt:n,sessionExpiration:r}=await c(t);n&&i.pub(n),(r||n)&&o.pub(r||42)}}})),s=n(r,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return i.pub(null),a.pub(null),o.pub(null),n}));return Object.assign(s,{onSessionTokenChange:i.sub,onUserChange:a.sub,onIsAuthenticatedChange:e=>o.sub((t=>{e(!!t)}))})}),(t=>o=>{var{storeLastAuthenticatedUser:i=!0,keepLastAuthenticatedUserAfterLogout:a=!1}=o,r=e(o,["storeLastAuthenticatedUser","keepLastAuthenticatedUserAfterLogout"]);if(!i)return Object.assign(t(r),{getLastUserLoginId:_,getLastUserDisplayName:K});const s=t(l(r,{afterRequest:async(e,t)=>{var n;const o=await u(t),i=null===(n=null==o?void 0:o.loginIds)||void 0===n?void 0:n[0],a=null==o?void 0:o.name;i&&((e=>{g(L,e)})(i),(e=>{g(J,e)})(a))}}));let c=n(s,["flow.start"],$);return c=n(c,["logout","logoutAll"],E(a)),Object.assign(c,{getLastUserLoginId:_,getLastUserDisplayName:K})}),(t=>o=>{var{persistTokens:i,sessionTokenViaCookie:a,storagePrefix:r}=o,s=e(o,["persistTokens","sessionTokenViaCookie","storagePrefix"]);if(!i||!w)return t(s);const u=t(l(s,{beforeRequest:(d=r,e=>Object.assign(e,{token:e.token||I(d)})),afterRequest:async(t,n)=>{const o=/^\/v\d+\/mgmt\//.test(t.path);401===(null==n?void 0:n.status)?o||k(r):((t={},n,o)=>{var i,{refreshJwt:a,sessionJwt:r}=t,s=e(t,["refreshJwt","sessionJwt"]);if(void 0===n&&(n=!1),void 0===o&&(o=""),a&&g(`${o}${y}`,a),r)if(n){const e=n.sameSite||"Strict",t=null===(i=n.secure)||void 0===i||i;S(b,r,Object.assign(Object.assign({},s),{cookieSameSite:e,cookieSecure:t}))}else g(`${o}${b}`,r)})(await c(n),a,r)}}));var d;const p=n(u,["logout","logoutAll"],q(r));return Object.assign(p,{getRefreshToken:()=>I(r),getSessionToken:()=>O(r)})}))(((...e)=>{const n=t(...e);return Object.assign(Object.assign({},n),{refresh:e=>{const t=O(),o=I();return n.refresh(e,{dcs:t?"t":"f",dcr:o?"t":"f"})},flow:ee(n),webauthn:z(n),fedcm:(o=n,i=e[0].projectId,{onetap:{requestExchangeCode(e){Y(o,e)},requestAuthentication(e){Y(o,e)}},oneTap(e,t,n,i,a){Y(o,{provider:e,oneTapConfig:t,loginOptions:n,onSkipped:i,onDismissed:a})},async launch(e){var t;const n={identity:{context:e||"signin",providers:[{configURL:o.httpClient.buildUrl(i+Q.config),clientId:i}]}},a=await(null===(t=navigator.credentials)||void 0===t?void 0:t.get(n));return o.refresh(a.token)},isSupported:()=>w&&"IdentityCredential"in window,async isLoggedIn(e){var t;const n=o.httpClient.buildUrl(i+Q.config);try{const o={identity:{context:e||"signin",providers:[{configURL:n,clientId:i}]}},a=await(null===(t=navigator.credentials)||void 0===t?void 0:t.get(o));return!!a&&!!a.token}catch(e){return!1}}})});var o,i}));export{y as REFRESH_TOKEN_KEY,b as SESSION_TOKEN_KEY,C as clearFingerprintData,te as default,x as ensureFingerprintIds};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|