@tern-secure/auth 1.1.0-canary.v20251108045933 → 1.1.0-canary.v20251125170702
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/492_ternsecure_f36de9_1.1.0-canary.v20251125170702.js +1 -0
- package/dist/687_ternsecure_f36de9_1.1.0-canary.v20251125170702.js +1 -0
- package/dist/68_ternsecure_f36de9_1.1.0-canary.v20251125170702.js +1 -0
- package/dist/framework_ternsecure_f36de9_1.1.0-canary.v20251125170702.js +1 -0
- package/dist/signin_ternsecure_f36de9_1.1.0-canary.v20251125170702.css +2 -0
- package/dist/signin_ternsecure_f36de9_1.1.0-canary.v20251125170702.js +1 -0
- package/dist/signup_ternsecure_f36de9_1.1.0-canary.v20251125170702.css +2 -0
- package/dist/signup_ternsecure_f36de9_1.1.0-canary.v20251125170702.js +1 -0
- package/dist/ternsecure.browser.js +30 -0
- package/dist/ternsecure.css +2 -0
- package/dist/ternsecure.js +17 -0
- package/dist/ternsecure.mjs +17 -0
- package/dist/types/auth/AuthCookieManager.d.ts +0 -1
- package/dist/types/auth/cookies/authTime_cookie.d.ts +0 -1
- package/dist/types/index.browser.d.ts +1 -0
- package/dist/types/index.d.ts +3 -10
- package/dist/types/instance/c_coreApiClient.d.ts +2 -2
- package/dist/types/instance/constants.d.ts +3 -0
- package/dist/types/instance/coreApiClient.d.ts +0 -1
- package/dist/types/instance/events.d.ts +0 -1
- package/dist/types/instance/{TernAuth.d.ts → ternsecure.d.ts} +31 -7
- package/dist/types/lib/utils.d.ts +2 -0
- package/dist/types/resources/Base.d.ts +16 -3
- package/dist/types/resources/Error.d.ts +0 -1
- package/dist/types/resources/Session.d.ts +2 -2
- package/dist/types/resources/SignIn.d.ts +27 -10
- package/dist/types/resources/SignUp.d.ts +12 -10
- package/dist/types/resources/internal.d.ts +1 -2
- package/dist/types/ui/Renderer.d.ts +26 -0
- package/dist/types/ui/common/ProviderInitialIcon.d.ts +6 -0
- package/dist/types/ui/common/VerificationCodeCard.d.ts +12 -0
- package/dist/types/ui/common/VerificationLinkCard.d.ts +7 -0
- package/dist/types/ui/common/constants.d.ts +8 -0
- package/dist/types/ui/common/index.d.ts +3 -0
- package/dist/types/ui/components/sign-in/ResetPassword.d.ts +1 -0
- package/dist/types/ui/components/sign-in/ResetPasswordSuccess.d.ts +1 -0
- package/dist/types/ui/components/sign-in/SignIn.d.ts +4 -0
- package/dist/types/ui/components/sign-in/SignInEmailLinkCard.d.ts +2 -0
- package/dist/types/ui/components/sign-in/SignInFactorOne.d.ts +1 -0
- package/dist/types/ui/components/sign-in/SignInFactorOneCodeForm.d.ts +7 -0
- package/dist/types/ui/components/sign-in/SignInFactorOnePasswordCard.d.ts +6 -0
- package/dist/types/ui/components/sign-in/SignInFactorOnePhoneCodeCard.d.ts +7 -0
- package/dist/types/ui/components/sign-in/SignInPassword.d.ts +8 -0
- package/dist/types/ui/components/sign-in/SignInSocialButtons.d.ts +1 -0
- package/dist/types/ui/components/sign-in/SignInStart.d.ts +7 -0
- package/dist/types/ui/components/sign-in/SignInVerifyEmail.d.ts +1 -0
- package/dist/types/ui/components/sign-in/index.d.ts +4 -0
- package/dist/types/ui/components/sign-up/SignUp.d.ts +8 -0
- package/dist/types/ui/components/sign-up/SignUpEmailLinkCard.d.ts +2 -0
- package/dist/types/ui/components/sign-up/SignUpSocialButtons.d.ts +1 -0
- package/dist/types/ui/components/sign-up/SignUpStart.d.ts +1 -0
- package/dist/types/ui/components/sign-up/SignUpVerifyEmail.d.ts +1 -0
- package/dist/types/ui/components/sign-up/index.d.ts +2 -0
- package/dist/types/ui/components/sign-up/util.d.ts +14 -0
- package/dist/types/ui/components/user-button/index.d.ts +1 -0
- package/dist/types/ui/components/user-button/userButton.d.ts +1 -0
- package/dist/types/ui/ctx/TernAuthContext.d.ts +4 -0
- package/dist/types/ui/ctx/TernAuthUIComponentCtx.d.ts +8 -0
- package/dist/types/ui/ctx/TernSecureContextWrapper.d.ts +8 -0
- package/dist/types/ui/ctx/TernSecureOptions.d.ts +10 -0
- package/dist/types/ui/ctx/components/SignIn.d.ts +21 -0
- package/dist/types/ui/ctx/components/SignUp.d.ts +14 -0
- package/dist/types/ui/ctx/components/UserButton.d.ts +10 -0
- package/dist/types/ui/ctx/components/index.d.ts +3 -0
- package/dist/types/ui/ctx/index.d.ts +4 -0
- package/dist/types/ui/ctx/utils.d.ts +3 -0
- package/dist/types/ui/customize/FieldControl.d.ts +15 -0
- package/dist/types/ui/customize/FieldLabelControl.d.ts +11 -0
- package/dist/types/ui/customize/Form.d.ts +36 -0
- package/dist/types/ui/elements/CodeControl.d.ts +47 -0
- package/dist/types/ui/elements/ErrorCard.d.ts +10 -0
- package/dist/types/ui/elements/LoadingCard.d.ts +1 -0
- package/dist/types/ui/elements/RouterLink.d.ts +42 -0
- package/dist/types/ui/elements/SocialButtons.d.ts +6 -0
- package/dist/types/ui/elements/TimerButton.d.ts +9 -0
- package/dist/types/ui/elements/alert.d.ts +8 -0
- package/dist/types/ui/elements/avatar.d.ts +6 -0
- package/dist/types/ui/elements/button.d.ts +10 -0
- package/dist/types/ui/elements/card.d.ts +9 -0
- package/dist/types/ui/elements/ctx/CardStateCtx.d.ts +26 -0
- package/dist/types/ui/elements/ctx/index.d.ts +1 -0
- package/dist/types/ui/elements/field.d.ts +24 -0
- package/dist/types/ui/elements/index.d.ts +16 -0
- package/dist/types/ui/elements/input.d.ts +3 -0
- package/dist/types/ui/elements/label.d.ts +4 -0
- package/dist/types/ui/elements/separator.d.ts +4 -0
- package/dist/types/ui/hooks/index.d.ts +6 -0
- package/dist/types/ui/hooks/useEmailLink.d.ts +11 -0
- package/dist/types/ui/hooks/useFetch.d.ts +44 -0
- package/dist/types/ui/hooks/useLoadingStatus.d.ts +14 -0
- package/dist/types/ui/hooks/useNavigateToFlowStart.d.ts +3 -0
- package/dist/types/ui/hooks/useSafeState.d.ts +9 -0
- package/dist/types/ui/hooks/useWindowEventListener.d.ts +3 -0
- package/dist/types/ui/icons/index.d.ts +13 -0
- package/dist/types/ui/lazyLoading/common.d.ts +2 -0
- package/dist/types/ui/lazyLoading/components.d.ts +11 -0
- package/dist/types/ui/lazyLoading/providersCtx.d.ts +26 -0
- package/dist/types/ui/portal/index.d.ts +12 -0
- package/dist/types/ui/router/BaseRouter.d.ts +21 -0
- package/dist/types/ui/router/HashRouter.d.ts +8 -0
- package/dist/types/ui/router/PathRouter.d.ts +8 -0
- package/dist/types/ui/router/Route.d.ts +19 -0
- package/dist/types/ui/router/RouterCtx.d.ts +32 -0
- package/dist/types/ui/router/Switch.d.ts +4 -0
- package/dist/types/ui/router/index.d.ts +7 -0
- package/dist/types/ui/router/newPaths.d.ts +1 -0
- package/dist/types/ui/router/pathToRegexp.d.ts +127 -0
- package/dist/types/ui/types.d.ts +18 -0
- package/dist/types/ui/utils/form.d.ts +19 -0
- package/dist/types/ui/utils/index.d.ts +1 -0
- package/dist/types/ui/utils/sleep.d.ts +1 -0
- package/dist/types/utils/construct.d.ts +3 -1
- package/dist/types/utils/index.d.ts +1 -1
- package/dist/types/utils/normalizeRoutingOptions.d.ts +6 -0
- package/dist/types/utils/path.d.ts +0 -1
- package/dist/types/utils/querystring.d.ts +0 -1
- package/dist/types/utils/redirectUrls.d.ts +4 -9
- package/dist/types/utils/windowNavigate.d.ts +0 -1
- package/dist/ui-common_ternsecure_f36de9_1.1.0-canary.v20251125170702.js +1 -0
- package/dist/userbutton_ternsecure_f36de9_1.1.0-canary.v20251125170702.js +1 -0
- package/dist/vendors_ternsecure_f36de9_1.1.0-canary.v20251125170702.js +1 -0
- package/package.json +63 -24
- package/dist/cjs/auth/AuthCookieManager.js +0 -113
- package/dist/cjs/auth/AuthCookieManager.js.map +0 -1
- package/dist/cjs/auth/cookies/authTime_cookie.js +0 -62
- package/dist/cjs/auth/cookies/authTime_cookie.js.map +0 -1
- package/dist/cjs/auth/request.js +0 -159
- package/dist/cjs/auth/request.js.map +0 -1
- package/dist/cjs/global.d.js +0 -2
- package/dist/cjs/global.d.js.map +0 -1
- package/dist/cjs/index.js +0 -47
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/instance/TernAuth.js +0 -524
- package/dist/cjs/instance/TernAuth.js.map +0 -1
- package/dist/cjs/instance/TernAuthServer.js +0 -95
- package/dist/cjs/instance/TernAuthServer.js.map +0 -1
- package/dist/cjs/instance/c_coreApiClient.js +0 -264
- package/dist/cjs/instance/c_coreApiClient.js.map +0 -1
- package/dist/cjs/instance/coreApiClient.js +0 -255
- package/dist/cjs/instance/coreApiClient.js.map +0 -1
- package/dist/cjs/instance/events.js +0 -39
- package/dist/cjs/instance/events.js.map +0 -1
- package/dist/cjs/instance/jwtClient.js +0 -72
- package/dist/cjs/instance/jwtClient.js.map +0 -1
- package/dist/cjs/resources/Base.js +0 -137
- package/dist/cjs/resources/Base.js.map +0 -1
- package/dist/cjs/resources/Error.js +0 -31
- package/dist/cjs/resources/Error.js.map +0 -1
- package/dist/cjs/resources/Session.js +0 -105
- package/dist/cjs/resources/Session.js.map +0 -1
- package/dist/cjs/resources/SignIn.js +0 -256
- package/dist/cjs/resources/SignIn.js.map +0 -1
- package/dist/cjs/resources/SignUp.js +0 -72
- package/dist/cjs/resources/SignUp.js.map +0 -1
- package/dist/cjs/resources/Token.js +0 -32
- package/dist/cjs/resources/Token.js.map +0 -1
- package/dist/cjs/resources/UserData.js +0 -43
- package/dist/cjs/resources/UserData.js.map +0 -1
- package/dist/cjs/resources/cookie.js +0 -154
- package/dist/cjs/resources/cookie.js.map +0 -1
- package/dist/cjs/resources/index.js +0 -23
- package/dist/cjs/resources/index.js.map +0 -1
- package/dist/cjs/resources/internal.js +0 -35
- package/dist/cjs/resources/internal.js.map +0 -1
- package/dist/cjs/utils/construct.js +0 -253
- package/dist/cjs/utils/construct.js.map +0 -1
- package/dist/cjs/utils/index.js +0 -29
- package/dist/cjs/utils/index.js.map +0 -1
- package/dist/cjs/utils/jwt.js +0 -46
- package/dist/cjs/utils/jwt.js.map +0 -1
- package/dist/cjs/utils/mapDecode.js +0 -33
- package/dist/cjs/utils/mapDecode.js.map +0 -1
- package/dist/cjs/utils/path.js +0 -33
- package/dist/cjs/utils/path.js.map +0 -1
- package/dist/cjs/utils/querystring.js +0 -70
- package/dist/cjs/utils/querystring.js.map +0 -1
- package/dist/cjs/utils/redirectUrls.js +0 -156
- package/dist/cjs/utils/redirectUrls.js.map +0 -1
- package/dist/cjs/utils/windowNavigate.js +0 -45
- package/dist/cjs/utils/windowNavigate.js.map +0 -1
- package/dist/esm/auth/AuthCookieManager.js +0 -89
- package/dist/esm/auth/AuthCookieManager.js.map +0 -1
- package/dist/esm/auth/cookies/authTime_cookie.js +0 -38
- package/dist/esm/auth/cookies/authTime_cookie.js.map +0 -1
- package/dist/esm/auth/request.js +0 -134
- package/dist/esm/auth/request.js.map +0 -1
- package/dist/esm/global.d.js +0 -1
- package/dist/esm/global.d.js.map +0 -1
- package/dist/esm/index.js +0 -16
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/instance/TernAuth.js +0 -510
- package/dist/esm/instance/TernAuth.js.map +0 -1
- package/dist/esm/instance/TernAuthServer.js +0 -73
- package/dist/esm/instance/TernAuthServer.js.map +0 -1
- package/dist/esm/instance/c_coreApiClient.js +0 -236
- package/dist/esm/instance/c_coreApiClient.js.map +0 -1
- package/dist/esm/instance/coreApiClient.js +0 -226
- package/dist/esm/instance/coreApiClient.js.map +0 -1
- package/dist/esm/instance/events.js +0 -14
- package/dist/esm/instance/events.js.map +0 -1
- package/dist/esm/instance/jwtClient.js +0 -47
- package/dist/esm/instance/jwtClient.js.map +0 -1
- package/dist/esm/resources/Base.js +0 -113
- package/dist/esm/resources/Base.js.map +0 -1
- package/dist/esm/resources/Error.js +0 -9
- package/dist/esm/resources/Error.js.map +0 -1
- package/dist/esm/resources/Session.js +0 -81
- package/dist/esm/resources/Session.js.map +0 -1
- package/dist/esm/resources/SignIn.js +0 -240
- package/dist/esm/resources/SignIn.js.map +0 -1
- package/dist/esm/resources/SignUp.js +0 -48
- package/dist/esm/resources/SignUp.js.map +0 -1
- package/dist/esm/resources/Token.js +0 -8
- package/dist/esm/resources/Token.js.map +0 -1
- package/dist/esm/resources/UserData.js +0 -19
- package/dist/esm/resources/UserData.js.map +0 -1
- package/dist/esm/resources/cookie.js +0 -130
- package/dist/esm/resources/cookie.js.map +0 -1
- package/dist/esm/resources/index.js +0 -2
- package/dist/esm/resources/index.js.map +0 -1
- package/dist/esm/resources/internal.js +0 -8
- package/dist/esm/resources/internal.js.map +0 -1
- package/dist/esm/utils/construct.js +0 -215
- package/dist/esm/utils/construct.js.map +0 -1
- package/dist/esm/utils/index.js +0 -5
- package/dist/esm/utils/index.js.map +0 -1
- package/dist/esm/utils/jwt.js +0 -22
- package/dist/esm/utils/jwt.js.map +0 -1
- package/dist/esm/utils/mapDecode.js +0 -9
- package/dist/esm/utils/mapDecode.js.map +0 -1
- package/dist/esm/utils/path.js +0 -9
- package/dist/esm/utils/path.js.map +0 -1
- package/dist/esm/utils/querystring.js +0 -45
- package/dist/esm/utils/querystring.js.map +0 -1
- package/dist/esm/utils/redirectUrls.js +0 -132
- package/dist/esm/utils/redirectUrls.js.map +0 -1
- package/dist/esm/utils/windowNavigate.js +0 -19
- package/dist/esm/utils/windowNavigate.js.map +0 -1
- package/dist/types/auth/AuthCookieManager.d.ts.map +0 -1
- package/dist/types/auth/cookies/authTime_cookie.d.ts.map +0 -1
- package/dist/types/auth/request.d.ts +0 -49
- package/dist/types/auth/request.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/instance/TernAuth.d.ts.map +0 -1
- package/dist/types/instance/TernAuthServer.d.ts +0 -32
- package/dist/types/instance/TernAuthServer.d.ts.map +0 -1
- package/dist/types/instance/c_coreApiClient.d.ts.map +0 -1
- package/dist/types/instance/coreApiClient.d.ts.map +0 -1
- package/dist/types/instance/events.d.ts.map +0 -1
- package/dist/types/instance/jwtClient.d.ts +0 -22
- package/dist/types/instance/jwtClient.d.ts.map +0 -1
- package/dist/types/resources/Base.d.ts.map +0 -1
- package/dist/types/resources/Error.d.ts.map +0 -1
- package/dist/types/resources/Session.d.ts.map +0 -1
- package/dist/types/resources/SignIn.d.ts.map +0 -1
- package/dist/types/resources/SignUp.d.ts.map +0 -1
- package/dist/types/resources/Token.d.ts +0 -5
- package/dist/types/resources/Token.d.ts.map +0 -1
- package/dist/types/resources/UserData.d.ts +0 -8
- package/dist/types/resources/UserData.d.ts.map +0 -1
- package/dist/types/resources/cookie.d.ts +0 -24
- package/dist/types/resources/cookie.d.ts.map +0 -1
- package/dist/types/resources/index.d.ts +0 -2
- package/dist/types/resources/index.d.ts.map +0 -1
- package/dist/types/resources/internal.d.ts.map +0 -1
- package/dist/types/utils/construct.d.ts.map +0 -1
- package/dist/types/utils/index.d.ts.map +0 -1
- package/dist/types/utils/jwt.d.ts +0 -12
- package/dist/types/utils/jwt.d.ts.map +0 -1
- package/dist/types/utils/mapDecode.d.ts +0 -4
- package/dist/types/utils/mapDecode.d.ts.map +0 -1
- package/dist/types/utils/path.d.ts.map +0 -1
- package/dist/types/utils/querystring.d.ts.map +0 -1
- package/dist/types/utils/redirectUrls.d.ts.map +0 -1
- package/dist/types/utils/windowNavigate.d.ts.map +0 -1
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var redirectUrls_exports = {};
|
|
20
|
-
__export(redirectUrls_exports, {
|
|
21
|
-
RedirectUrls: () => RedirectUrls
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(redirectUrls_exports);
|
|
24
|
-
var import_caseUtils = require("@tern-secure/shared/caseUtils");
|
|
25
|
-
var import_object = require("@tern-secure/shared/object");
|
|
26
|
-
var import_construct = require("./construct");
|
|
27
|
-
class RedirectUrls {
|
|
28
|
-
static keys = [
|
|
29
|
-
"signInForceRedirectUrl",
|
|
30
|
-
"signInFallbackRedirectUrl",
|
|
31
|
-
"signUpForceRedirectUrl",
|
|
32
|
-
"signUpFallbackRedirectUrl",
|
|
33
|
-
"afterSignInUrl",
|
|
34
|
-
"afterSignUpUrl",
|
|
35
|
-
"redirectUrl"
|
|
36
|
-
];
|
|
37
|
-
static preserved = ["redirectUrl"];
|
|
38
|
-
options;
|
|
39
|
-
fromOptions;
|
|
40
|
-
fromProps;
|
|
41
|
-
fromSearchParams;
|
|
42
|
-
constructor(options, props = {}, searchParams = {}) {
|
|
43
|
-
this.options = options;
|
|
44
|
-
this.fromOptions = this.#parse(options || {});
|
|
45
|
-
this.fromProps = this.#parse(props || {});
|
|
46
|
-
this.fromSearchParams = this.#parseSearchParams(searchParams || {});
|
|
47
|
-
}
|
|
48
|
-
getAfterSignInUrl() {
|
|
49
|
-
return this.#getRedirectUrl("signIn");
|
|
50
|
-
}
|
|
51
|
-
getAfterSignUpUrl() {
|
|
52
|
-
return this.#getRedirectUrl("signUp");
|
|
53
|
-
}
|
|
54
|
-
getPreservedSearchParams() {
|
|
55
|
-
return this.#toSearchParams(this.#flattenPreserved());
|
|
56
|
-
}
|
|
57
|
-
toSearchParams() {
|
|
58
|
-
return this.#toSearchParams(this.#flattenAll());
|
|
59
|
-
}
|
|
60
|
-
#toSearchParams(obj) {
|
|
61
|
-
const camelCased = Object.fromEntries(
|
|
62
|
-
Object.entries(obj).map(([key, value]) => [(0, import_caseUtils.camelToSnake)(key), value])
|
|
63
|
-
);
|
|
64
|
-
return new URLSearchParams((0, import_object.removeUndefined)(camelCased));
|
|
65
|
-
}
|
|
66
|
-
#flattenPreserved() {
|
|
67
|
-
return Object.fromEntries(
|
|
68
|
-
Object.entries({ ...this.fromSearchParams }).filter(
|
|
69
|
-
([key]) => RedirectUrls.preserved.includes(key)
|
|
70
|
-
)
|
|
71
|
-
);
|
|
72
|
-
}
|
|
73
|
-
#flattenAll() {
|
|
74
|
-
const signUpForceRedirectUrl = this.fromSearchParams.signUpForceRedirectUrl || this.fromProps.signUpForceRedirectUrl || this.fromOptions.signUpForceRedirectUrl;
|
|
75
|
-
const signUpFallbackRedirectUrl = this.fromSearchParams.signUpFallbackRedirectUrl || this.fromProps.signUpFallbackRedirectUrl || this.fromOptions.signUpFallbackRedirectUrl;
|
|
76
|
-
const signInForceRedirectUrl = this.fromSearchParams.signInForceRedirectUrl || this.fromProps.signInForceRedirectUrl || this.fromOptions.signInForceRedirectUrl;
|
|
77
|
-
const signInFallbackRedirectUrl = this.fromSearchParams.signInFallbackRedirectUrl || this.fromProps.signInFallbackRedirectUrl || this.fromOptions.signInFallbackRedirectUrl;
|
|
78
|
-
const afterSignInUrl = this.fromSearchParams.afterSignInUrl || this.fromProps.afterSignInUrl || this.fromOptions.afterSignInUrl;
|
|
79
|
-
const afterSignUpUrl = this.fromSearchParams.afterSignUpUrl || this.fromProps.afterSignUpUrl || this.fromOptions.afterSignUpUrl;
|
|
80
|
-
const redirectUrl = this.fromSearchParams.redirectUrl || this.fromProps.redirectUrl || this.fromOptions.redirectUrl;
|
|
81
|
-
const res = {
|
|
82
|
-
signUpForceRedirectUrl,
|
|
83
|
-
signUpFallbackRedirectUrl,
|
|
84
|
-
signInForceRedirectUrl,
|
|
85
|
-
signInFallbackRedirectUrl,
|
|
86
|
-
afterSignInUrl,
|
|
87
|
-
afterSignUpUrl,
|
|
88
|
-
redirectUrl
|
|
89
|
-
};
|
|
90
|
-
return res;
|
|
91
|
-
}
|
|
92
|
-
#getRedirectUrl(prefix) {
|
|
93
|
-
const forceKey = `${prefix}ForceRedirectUrl`;
|
|
94
|
-
const fallbackKey = `${prefix}FallbackRedirectUrl`;
|
|
95
|
-
let newKeyInUse;
|
|
96
|
-
let result;
|
|
97
|
-
result = this.fromSearchParams[forceKey] || this.fromProps[forceKey] || this.fromOptions[forceKey];
|
|
98
|
-
if (result) {
|
|
99
|
-
newKeyInUse = forceKey;
|
|
100
|
-
}
|
|
101
|
-
result ||= this.fromSearchParams.redirectUrl;
|
|
102
|
-
if (result) {
|
|
103
|
-
newKeyInUse = "redirectUrl";
|
|
104
|
-
}
|
|
105
|
-
result ||= this.fromSearchParams[fallbackKey] || this.fromProps[fallbackKey] || this.fromOptions[fallbackKey];
|
|
106
|
-
if (result) {
|
|
107
|
-
newKeyInUse = fallbackKey;
|
|
108
|
-
}
|
|
109
|
-
if (!result) {
|
|
110
|
-
if (typeof window === "undefined") {
|
|
111
|
-
return "/";
|
|
112
|
-
}
|
|
113
|
-
return window.location.href;
|
|
114
|
-
}
|
|
115
|
-
return result || "/";
|
|
116
|
-
}
|
|
117
|
-
#parse(obj) {
|
|
118
|
-
const res = {};
|
|
119
|
-
RedirectUrls.keys.forEach((key) => {
|
|
120
|
-
res[key] = obj[key];
|
|
121
|
-
});
|
|
122
|
-
return (0, import_object.applyFunctionToObj)(
|
|
123
|
-
this.#filterRedirects(this.#toAbsoluteUrls((0, import_object.filterProps)(res, Boolean))),
|
|
124
|
-
(val) => val.toString()
|
|
125
|
-
);
|
|
126
|
-
}
|
|
127
|
-
#parseSearchParams(obj) {
|
|
128
|
-
const res = {};
|
|
129
|
-
RedirectUrls.keys.forEach((key) => {
|
|
130
|
-
if (obj instanceof URLSearchParams) {
|
|
131
|
-
res[key] = obj.get((0, import_caseUtils.camelToSnake)(key));
|
|
132
|
-
} else {
|
|
133
|
-
res[key] = obj[(0, import_caseUtils.camelToSnake)(key)];
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
return (0, import_object.applyFunctionToObj)(
|
|
137
|
-
this.#filterRedirects(this.#toAbsoluteUrls((0, import_object.filterProps)(res, Boolean))),
|
|
138
|
-
(val) => val.toString()
|
|
139
|
-
);
|
|
140
|
-
}
|
|
141
|
-
#toAbsoluteUrls(obj) {
|
|
142
|
-
const origin = typeof window !== "undefined" ? window.location.origin : "";
|
|
143
|
-
if (!origin) return obj;
|
|
144
|
-
return (0, import_object.applyFunctionToObj)(obj, (url) => (0, import_construct.relativeToAbsoluteUrl)(url, origin));
|
|
145
|
-
}
|
|
146
|
-
#filterRedirects = (obj) => {
|
|
147
|
-
var _a;
|
|
148
|
-
const origin = typeof window !== "undefined" ? window.location.origin : "";
|
|
149
|
-
return (0, import_object.filterProps)(obj, (0, import_construct.isAllowedRedirect)((_a = this.options) == null ? void 0 : _a.allowedRedirectOrigins, origin));
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
153
|
-
0 && (module.exports = {
|
|
154
|
-
RedirectUrls
|
|
155
|
-
});
|
|
156
|
-
//# sourceMappingURL=redirectUrls.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/redirectUrls.ts"],"sourcesContent":["import { camelToSnake } from '@tern-secure/shared/caseUtils';\nimport { applyFunctionToObj, filterProps, removeUndefined } from '@tern-secure/shared/object';\nimport type { RedirectOptions, TernSecureAuthOptions } from '@tern-secure/types';\n\nimport { isAllowedRedirect, relativeToAbsoluteUrl } from './construct';\n\n/**\n * RedirectUrls class handles all redirect URL construction logic\n * for sign-in, sign-up, and post-authentication flows.\n *\n * This class centralizes the redirect logic previously scattered across\n * multiple methods, making it reusable and maintainable.\n */\nexport class RedirectUrls {\n private static keys: (keyof RedirectOptions)[] = [\n 'signInForceRedirectUrl',\n 'signInFallbackRedirectUrl',\n 'signUpForceRedirectUrl',\n 'signUpFallbackRedirectUrl',\n 'afterSignInUrl',\n 'afterSignUpUrl',\n 'redirectUrl',\n ];\n\n private static preserved = ['redirectUrl'];\n\n private readonly options: TernSecureAuthOptions;\n private readonly fromOptions: RedirectOptions;\n private readonly fromProps: RedirectOptions;\n private readonly fromSearchParams: RedirectOptions & { redirectUrl?: string | null };\n\n constructor(options: TernSecureAuthOptions, props: RedirectOptions = {}, searchParams: any = {}) {\n this.options = options;\n this.fromOptions = this.#parse(options || {});\n this.fromProps = this.#parse(props || {});\n this.fromSearchParams = this.#parseSearchParams(searchParams || {});\n }\n\n getAfterSignInUrl() {\n return this.#getRedirectUrl('signIn');\n }\n\n getAfterSignUpUrl() {\n return this.#getRedirectUrl('signUp');\n }\n\n getPreservedSearchParams() {\n return this.#toSearchParams(this.#flattenPreserved());\n }\n\n toSearchParams() {\n return this.#toSearchParams(this.#flattenAll());\n }\n\n #toSearchParams(obj: Record<string, string | undefined | null>): URLSearchParams {\n const camelCased = Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [camelToSnake(key), value]),\n );\n return new URLSearchParams(removeUndefined(camelCased) as Record<string, string>);\n }\n\n #flattenPreserved() {\n return Object.fromEntries(\n Object.entries({ ...this.fromSearchParams }).filter(([key]) =>\n RedirectUrls.preserved.includes(key),\n ),\n );\n }\n\n #flattenAll() {\n const signUpForceRedirectUrl =\n this.fromSearchParams.signUpForceRedirectUrl ||\n this.fromProps.signUpForceRedirectUrl ||\n this.fromOptions.signUpForceRedirectUrl;\n const signUpFallbackRedirectUrl =\n this.fromSearchParams.signUpFallbackRedirectUrl ||\n this.fromProps.signUpFallbackRedirectUrl ||\n this.fromOptions.signUpFallbackRedirectUrl;\n const signInForceRedirectUrl =\n this.fromSearchParams.signInForceRedirectUrl ||\n this.fromProps.signInForceRedirectUrl ||\n this.fromOptions.signInForceRedirectUrl;\n const signInFallbackRedirectUrl =\n this.fromSearchParams.signInFallbackRedirectUrl ||\n this.fromProps.signInFallbackRedirectUrl ||\n this.fromOptions.signInFallbackRedirectUrl;\n const afterSignInUrl =\n this.fromSearchParams.afterSignInUrl ||\n this.fromProps.afterSignInUrl ||\n this.fromOptions.afterSignInUrl;\n const afterSignUpUrl =\n this.fromSearchParams.afterSignUpUrl ||\n this.fromProps.afterSignUpUrl ||\n this.fromOptions.afterSignUpUrl;\n const redirectUrl =\n this.fromSearchParams.redirectUrl ||\n this.fromProps.redirectUrl ||\n this.fromOptions.redirectUrl;\n\n const res: RedirectOptions = {\n signUpForceRedirectUrl,\n signUpFallbackRedirectUrl,\n signInForceRedirectUrl,\n signInFallbackRedirectUrl,\n afterSignInUrl,\n afterSignUpUrl,\n redirectUrl,\n };\n return res;\n }\n\n #getRedirectUrl(prefix: 'signIn' | 'signUp') {\n const forceKey = `${prefix}ForceRedirectUrl` as const;\n const fallbackKey = `${prefix}FallbackRedirectUrl` as const;\n\n let newKeyInUse: string | undefined;\n\n let result;\n // Prioritize forceRedirectUrl\n result =\n this.fromSearchParams[forceKey] || this.fromProps[forceKey] || this.fromOptions[forceKey];\n if (result) {\n newKeyInUse = forceKey;\n }\n\n // Try to get redirect_url, only allowed as a search param\n result ||= this.fromSearchParams.redirectUrl;\n if (result) {\n newKeyInUse = 'redirectUrl';\n }\n\n // Otherwise, fallback to fallbackRedirectUrl\n result ||=\n this.fromSearchParams[fallbackKey] ||\n this.fromProps[fallbackKey] ||\n this.fromOptions[fallbackKey];\n if (result) {\n newKeyInUse = fallbackKey;\n }\n\n if (!result) {\n if (typeof window === 'undefined') {\n return '/';\n }\n return window.location.href;\n }\n return result || '/';\n }\n\n #parse(obj: unknown) {\n const res = {} as RedirectOptions;\n RedirectUrls.keys.forEach(key => {\n // @ts-expect-error\n res[key] = obj[key];\n });\n\n //const absoluteUrls = this.#toAbsoluteUrls(filterProps(res, Boolean));\n //const filtered = this.#filterRedirects(absoluteUrls);\n //return applyFunctionToObj(filtered, val => val.toString());\n\n return applyFunctionToObj(\n this.#filterRedirects(this.#toAbsoluteUrls(filterProps(res, Boolean))),\n val => val.toString(),\n );\n }\n\n #parseSearchParams(obj: any) {\n const res = {} as typeof this.fromSearchParams;\n RedirectUrls.keys.forEach(key => {\n if (obj instanceof URLSearchParams) {\n res[key] = obj.get(camelToSnake(key));\n } else {\n res[key] = obj[camelToSnake(key)];\n }\n });\n\n return applyFunctionToObj(\n this.#filterRedirects(this.#toAbsoluteUrls(filterProps(res, Boolean))),\n val => val.toString(),\n );\n }\n\n #toAbsoluteUrls(obj: RedirectOptions) {\n const origin = typeof window !== 'undefined' ? window.location.origin : '';\n // If no origin (server-side), return URLs as-is without conversion\n // They will be properly converted on the client-side\n if (!origin) return obj;\n\n return applyFunctionToObj(obj, (url: string) => relativeToAbsoluteUrl(url, origin));\n }\n\n #filterRedirects = (obj: RedirectOptions) => {\n const origin = typeof window !== 'undefined' ? window.location.origin : '';\n return filterProps(obj, isAllowedRedirect(this.options?.allowedRedirectOrigins, origin));\n };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var windowNavigate_exports = {};
|
|
20
|
-
__export(windowNavigate_exports, {
|
|
21
|
-
ALLOWED_PROTOCOLS: () => ALLOWED_PROTOCOLS,
|
|
22
|
-
BEFORE_UNLOAD_EVENT: () => BEFORE_UNLOAD_EVENT,
|
|
23
|
-
windowNavigate: () => windowNavigate
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(windowNavigate_exports);
|
|
26
|
-
const BEFORE_UNLOAD_EVENT = "ternsecure:beforeunload";
|
|
27
|
-
const ALLOWED_PROTOCOLS = [
|
|
28
|
-
"http:",
|
|
29
|
-
"https:",
|
|
30
|
-
// Refers to https://wails.io/
|
|
31
|
-
"wails:",
|
|
32
|
-
"chrome-extension:"
|
|
33
|
-
];
|
|
34
|
-
function windowNavigate(to) {
|
|
35
|
-
const toURL = new URL(to, window.location.href);
|
|
36
|
-
window.dispatchEvent(new CustomEvent(BEFORE_UNLOAD_EVENT));
|
|
37
|
-
window.location.href = toURL.href;
|
|
38
|
-
}
|
|
39
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
40
|
-
0 && (module.exports = {
|
|
41
|
-
ALLOWED_PROTOCOLS,
|
|
42
|
-
BEFORE_UNLOAD_EVENT,
|
|
43
|
-
windowNavigate
|
|
44
|
-
});
|
|
45
|
-
//# sourceMappingURL=windowNavigate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/windowNavigate.ts"],"sourcesContent":["export const BEFORE_UNLOAD_EVENT = 'ternsecure:beforeunload';\n\n/**\n * Additional protocols can be provided using the `allowedRedirectProtocols` option.\n */\nexport const ALLOWED_PROTOCOLS = [\n 'http:',\n 'https:',\n // Refers to https://wails.io/\n 'wails:',\n 'chrome-extension:',\n];\n\n/**\n * Helper utility to navigate via window.location.href. Also dispatches a ternsecure:beforeunload custom event.\n *\n * Note that this utility should **never** be called with a user-provided URL. We make no specific checks against the contents of the URL here and assume it is safe.\n */\nexport function windowNavigate(to: URL | string): void {\n const toURL = new URL(to, window.location.href);\n window.dispatchEvent(new CustomEvent(BEFORE_UNLOAD_EVENT));\n window.location.href = toURL.href;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,sBAAsB;AAK5B,MAAM,oBAAoB;AAAA,EAC/B;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AACF;AAOO,SAAS,eAAe,IAAwB;AACrD,QAAM,QAAQ,IAAI,IAAI,IAAI,OAAO,SAAS,IAAI;AAC9C,SAAO,cAAc,IAAI,YAAY,mBAAmB,CAAC;AACzD,SAAO,SAAS,OAAO,MAAM;AAC/B;","names":[]}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { cookieHandler } from "@tern-secure/shared/cookie";
|
|
2
|
-
import { createTernAUT } from "./cookies/authTime_cookie";
|
|
3
|
-
const CSRF_COOKIE_NAME = "__terncf";
|
|
4
|
-
const CSRF_COOKIE_OPTIONS = {
|
|
5
|
-
secure: true,
|
|
6
|
-
sameSite: "strict",
|
|
7
|
-
expires: 1 / 24
|
|
8
|
-
//1 hour
|
|
9
|
-
};
|
|
10
|
-
class AuthCookieManager {
|
|
11
|
-
csrfCookieHandler = cookieHandler(CSRF_COOKIE_NAME);
|
|
12
|
-
ternAutCookie = createTernAUT();
|
|
13
|
-
constructor() {
|
|
14
|
-
this.ensureCSRFToken();
|
|
15
|
-
this.ensureAuthTimeCookie();
|
|
16
|
-
}
|
|
17
|
-
generateCSRFToken() {
|
|
18
|
-
const array = new Uint8Array(32);
|
|
19
|
-
crypto.getRandomValues(array);
|
|
20
|
-
return Array.from(array, (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
21
|
-
}
|
|
22
|
-
ensureCSRFToken() {
|
|
23
|
-
let ctoken = this.getCSRFToken();
|
|
24
|
-
if (!ctoken) {
|
|
25
|
-
ctoken = this.generateCSRFToken();
|
|
26
|
-
this.setCSRFToken({ token: ctoken });
|
|
27
|
-
}
|
|
28
|
-
return ctoken;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Ensures the tern_aut cookie exists with value 0 if not already set.
|
|
32
|
-
* This is critical for SSR with browserCookie persistence so middleware
|
|
33
|
-
* doesn't throw errors when the cookie is missing.
|
|
34
|
-
*/
|
|
35
|
-
ensureAuthTimeCookie() {
|
|
36
|
-
this.ternAutCookie.initialize();
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Get auth_time value from cookie
|
|
40
|
-
*/
|
|
41
|
-
getAuthTime() {
|
|
42
|
-
return this.ternAutCookie.get();
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Set auth_time value in cookie
|
|
46
|
-
* Only accepts non-zero values from server
|
|
47
|
-
*/
|
|
48
|
-
setAuthTime(authTime) {
|
|
49
|
-
this.ternAutCookie.set(authTime);
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Set CSRFcookie
|
|
53
|
-
*/
|
|
54
|
-
setCSRFToken(token) {
|
|
55
|
-
try {
|
|
56
|
-
if (token.token) {
|
|
57
|
-
this.csrfCookieHandler.set(token.token, CSRF_COOKIE_OPTIONS);
|
|
58
|
-
}
|
|
59
|
-
} catch (error) {
|
|
60
|
-
console.error("Failed to set CSRF token:", error);
|
|
61
|
-
throw new Error("Unable to store CSRF token");
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Get CSRF token from cookies
|
|
66
|
-
*/
|
|
67
|
-
getCSRFToken() {
|
|
68
|
-
try {
|
|
69
|
-
return this.csrfCookieHandler.get();
|
|
70
|
-
} catch (error) {
|
|
71
|
-
console.error("Failed to get CSRF token:", error);
|
|
72
|
-
return void 0;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Clear all authentication cookies
|
|
77
|
-
*/
|
|
78
|
-
clearAuth() {
|
|
79
|
-
try {
|
|
80
|
-
this.csrfCookieHandler.remove();
|
|
81
|
-
} catch (error) {
|
|
82
|
-
console.error("Failed to clear auth cookies:", error);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
export {
|
|
87
|
-
AuthCookieManager
|
|
88
|
-
};
|
|
89
|
-
//# sourceMappingURL=AuthCookieManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/auth/AuthCookieManager.ts"],"sourcesContent":["import type { CookieAttributes } from '@tern-secure/shared/cookie';\nimport { cookieHandler } from '@tern-secure/shared/cookie';\n\nimport { createTernAUT } from './cookies/authTime_cookie';\n\nconst CSRF_COOKIE_NAME = '__terncf';\n\ntype CSRFToken = {\n token: string | null;\n};\n\ntype CookieOptions = CookieAttributes;\n\nconst CSRF_COOKIE_OPTIONS: CookieOptions = {\n secure: true,\n sameSite: 'strict',\n expires: 1 / 24, //1 hour\n};\n\n/**\n * AuthCookieManager class for managing authentication state and cookies\n */\nexport class AuthCookieManager {\n private readonly csrfCookieHandler = cookieHandler(CSRF_COOKIE_NAME);\n private readonly ternAutCookie = createTernAUT();\n\n constructor() {\n this.ensureCSRFToken();\n this.ensureAuthTimeCookie();\n }\n\n private generateCSRFToken(): string {\n const array = new Uint8Array(32);\n crypto.getRandomValues(array);\n return Array.from(array, byte => byte.toString(16).padStart(2, '0')).join('');\n }\n\n private ensureCSRFToken(): string {\n let ctoken = this.getCSRFToken();\n if (!ctoken) {\n ctoken = this.generateCSRFToken();\n this.setCSRFToken({ token: ctoken });\n }\n return ctoken;\n }\n\n /**\n * Ensures the tern_aut cookie exists with value 0 if not already set.\n * This is critical for SSR with browserCookie persistence so middleware\n * doesn't throw errors when the cookie is missing.\n */\n private ensureAuthTimeCookie(): void {\n this.ternAutCookie.initialize();\n }\n\n /**\n * Get auth_time value from cookie\n */\n getAuthTime(): number {\n return this.ternAutCookie.get();\n }\n\n /**\n * Set auth_time value in cookie\n * Only accepts non-zero values from server\n */\n setAuthTime(authTime: number): void {\n this.ternAutCookie.set(authTime);\n }\n\n /**\n * Set CSRFcookie\n */\n\n setCSRFToken(token: CSRFToken): void {\n try {\n if (token.token) {\n this.csrfCookieHandler.set(token.token, CSRF_COOKIE_OPTIONS);\n }\n } catch (error) {\n console.error('Failed to set CSRF token:', error);\n throw new Error('Unable to store CSRF token');\n }\n }\n\n\n /**\n * Get CSRF token from cookies\n */\n getCSRFToken(): string | undefined {\n try {\n return this.csrfCookieHandler.get();\n } catch (error) {\n console.error('Failed to get CSRF token:', error);\n return undefined;\n }\n }\n\n\n /**\n * Clear all authentication cookies\n */\n clearAuth(): void {\n try {\n this.csrfCookieHandler.remove();\n } catch (error) {\n console.error('Failed to clear auth cookies:', error);\n }\n }\n}\n"],"mappings":"AACA,SAAS,qBAAqB;AAE9B,SAAS,qBAAqB;AAE9B,MAAM,mBAAmB;AAQzB,MAAM,sBAAqC;AAAA,EACzC,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS,IAAI;AAAA;AACf;AAKO,MAAM,kBAAkB;AAAA,EACZ,oBAAoB,cAAc,gBAAgB;AAAA,EAClD,gBAAgB,cAAc;AAAA,EAE/C,cAAc;AACZ,SAAK,gBAAgB;AACrB,SAAK,qBAAqB;AAAA,EAC5B;AAAA,EAEQ,oBAA4B;AAClC,UAAM,QAAQ,IAAI,WAAW,EAAE;AAC/B,WAAO,gBAAgB,KAAK;AAC5B,WAAO,MAAM,KAAK,OAAO,UAAQ,KAAK,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE;AAAA,EAC9E;AAAA,EAEQ,kBAA0B;AAChC,QAAI,SAAS,KAAK,aAAa;AAC/B,QAAI,CAAC,QAAQ;AACX,eAAS,KAAK,kBAAkB;AAChC,WAAK,aAAa,EAAE,OAAO,OAAO,CAAC;AAAA,IACrC;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOQ,uBAA6B;AACnC,SAAK,cAAc,WAAW;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,cAAsB;AACpB,WAAO,KAAK,cAAc,IAAI;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,UAAwB;AAClC,SAAK,cAAc,IAAI,QAAQ;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAMA,aAAa,OAAwB;AACnC,QAAI;AACF,UAAI,MAAM,OAAO;AACf,aAAK,kBAAkB,IAAI,MAAM,OAAO,mBAAmB;AAAA,MAC7D;AAAA,IACF,SAAS,OAAO;AACd,cAAQ,MAAM,6BAA6B,KAAK;AAChD,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAC9C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAMA,eAAmC;AACjC,QAAI;AACF,aAAO,KAAK,kBAAkB,IAAI;AAAA,IACpC,SAAS,OAAO;AACd,cAAQ,MAAM,6BAA6B,KAAK;AAChD,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAMA,YAAkB;AAChB,QAAI;AACF,WAAK,kBAAkB,OAAO;AAAA,IAChC,SAAS,OAAO;AACd,cAAQ,MAAM,iCAAiC,KAAK;AAAA,IACtD;AAAA,EACF;AACF;","names":[]}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { cookieHandler } from "@tern-secure/shared/cookie";
|
|
2
|
-
import { addYears } from "@tern-secure/shared/date";
|
|
3
|
-
const TERN_AUT = "tern_aut";
|
|
4
|
-
const createTernAUT = () => {
|
|
5
|
-
const ternAutCookie = cookieHandler(TERN_AUT);
|
|
6
|
-
const get = () => {
|
|
7
|
-
const value = ternAutCookie.get();
|
|
8
|
-
return value ? parseInt(value, 10) : 0;
|
|
9
|
-
};
|
|
10
|
-
const set = (uat) => {
|
|
11
|
-
const expires = addYears(Date.now(), 1);
|
|
12
|
-
if (!Number.isInteger(uat) || uat < 0) {
|
|
13
|
-
console.warn("[tern_aut] Invalid auth_time value provided:", uat);
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
const currentValue = get();
|
|
17
|
-
if (uat === 0 && currentValue > 0) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
ternAutCookie.set(uat.toString(), { secure: true, expires });
|
|
21
|
-
};
|
|
22
|
-
const initialize = () => {
|
|
23
|
-
const currentValue = ternAutCookie.get();
|
|
24
|
-
if (currentValue === void 0 || currentValue === null) {
|
|
25
|
-
const expires = addYears(Date.now(), 1);
|
|
26
|
-
ternAutCookie.set("0", { secure: true, expires });
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
return {
|
|
30
|
-
get,
|
|
31
|
-
set,
|
|
32
|
-
initialize
|
|
33
|
-
};
|
|
34
|
-
};
|
|
35
|
-
export {
|
|
36
|
-
createTernAUT
|
|
37
|
-
};
|
|
38
|
-
//# sourceMappingURL=authTime_cookie.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/auth/cookies/authTime_cookie.ts"],"sourcesContent":["import { cookieHandler } from '@tern-secure/shared/cookie';\nimport { addYears } from '@tern-secure/shared/date';\n\nconst TERN_AUT = 'tern_aut';\n\nexport type TernAUTCookie = {\n get: () => number;\n set: (aut: number) => void;\n initialize: () => void;\n}\n\nexport const createTernAUT = (): TernAUTCookie => {\n const ternAutCookie = cookieHandler(TERN_AUT);\n\n const get = (): number => {\n const value = ternAutCookie.get();\n return value ? parseInt(value, 10) : 0;\n }\n\n const set = (uat: number): void => {\n const expires = addYears(Date.now(), 1);\n\n if (!Number.isInteger(uat) || uat < 0) {\n console.warn('[tern_aut] Invalid auth_time value provided:', uat);\n return;\n }\n\n // Get current value to check if we should update\n const currentValue = get();\n\n // If trying to set 0 but cookie already has a non-zero value, don't overwrite\n // This prevents client from resetting server-set auth_time\n if (uat === 0 && currentValue > 0) {\n return;\n }\n\n ternAutCookie.set(uat.toString(), { secure: true, expires });\n }\n\n const initialize = (): void => {\n const currentValue = ternAutCookie.get();\n if (currentValue === undefined || currentValue === null) {\n const expires = addYears(Date.now(), 1);\n ternAutCookie.set('0', { secure: true, expires });\n }\n }\n\n return {\n get,\n set,\n initialize,\n };\n}"],"mappings":"AAAA,SAAS,qBAAqB;AAC9B,SAAS,gBAAgB;AAEzB,MAAM,WAAW;AAQV,MAAM,gBAAgB,MAAqB;AAC9C,QAAM,gBAAgB,cAAc,QAAQ;AAE5C,QAAM,MAAM,MAAc;AACtB,UAAM,QAAQ,cAAc,IAAI;AAChC,WAAO,QAAQ,SAAS,OAAO,EAAE,IAAI;AAAA,EACzC;AAEA,QAAM,MAAM,CAAC,QAAsB;AAC/B,UAAM,UAAU,SAAS,KAAK,IAAI,GAAG,CAAC;AAEtC,QAAI,CAAC,OAAO,UAAU,GAAG,KAAK,MAAM,GAAG;AACnC,cAAQ,KAAK,gDAAgD,GAAG;AAChE;AAAA,IACJ;AAGA,UAAM,eAAe,IAAI;AAIzB,QAAI,QAAQ,KAAK,eAAe,GAAG;AAC/B;AAAA,IACJ;AAEA,kBAAc,IAAI,IAAI,SAAS,GAAG,EAAE,QAAQ,MAAM,QAAQ,CAAC;AAAA,EAC/D;AAEA,QAAM,aAAa,MAAY;AAC3B,UAAM,eAAe,cAAc,IAAI;AACvC,QAAI,iBAAiB,UAAa,iBAAiB,MAAM;AACrD,YAAM,UAAU,SAAS,KAAK,IAAI,GAAG,CAAC;AACtC,oBAAc,IAAI,KAAK,EAAE,QAAQ,MAAM,QAAQ,CAAC;AAAA,IACpD;AAAA,EACJ;AAEA,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;","names":[]}
|
package/dist/esm/auth/request.js
DELETED
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import { Cookie } from "../resources/cookie";
|
|
2
|
-
import { UserData } from "../resources/UserData";
|
|
3
|
-
class ClientAuthRequest {
|
|
4
|
-
cookie;
|
|
5
|
-
userData;
|
|
6
|
-
constructor() {
|
|
7
|
-
this.cookie = new Cookie();
|
|
8
|
-
this.userData = new UserData();
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Get UserData
|
|
12
|
-
*/
|
|
13
|
-
async getUserData() {
|
|
14
|
-
try {
|
|
15
|
-
const response = await this.userData.get();
|
|
16
|
-
if (response == null ? void 0 : response.response) {
|
|
17
|
-
return response.response;
|
|
18
|
-
}
|
|
19
|
-
return null;
|
|
20
|
-
} catch (error) {
|
|
21
|
-
console.error("[ClientAuthRequest] Failed to get user data:", error);
|
|
22
|
-
throw error;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Get ID token from httpOnly cookies
|
|
27
|
-
*/
|
|
28
|
-
async getIdTokenFromCookie() {
|
|
29
|
-
try {
|
|
30
|
-
return await this.cookie.getIdToken();
|
|
31
|
-
} catch (error) {
|
|
32
|
-
return {
|
|
33
|
-
success: false,
|
|
34
|
-
error: `Failed to retrieve ID token from cookies: ${error instanceof Error ? error.message : String(error)}`
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Get session token from httpOnly cookies
|
|
40
|
-
*/
|
|
41
|
-
async getSessionTokenFromCookie() {
|
|
42
|
-
try {
|
|
43
|
-
return await this.cookie.getSessionToken();
|
|
44
|
-
} catch (error) {
|
|
45
|
-
return {
|
|
46
|
-
success: false,
|
|
47
|
-
error: `Failed to retrieve session token from cookies: ${error instanceof Error ? error.message : String(error)}`
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Get refresh token from httpOnly cookies
|
|
53
|
-
*/
|
|
54
|
-
async getRefreshTokenFromCookie() {
|
|
55
|
-
try {
|
|
56
|
-
return await this.cookie.getRefreshToken();
|
|
57
|
-
} catch (error) {
|
|
58
|
-
return {
|
|
59
|
-
success: false,
|
|
60
|
-
error: `Failed to retrieve refresh token from cookies: ${error instanceof Error ? error.message : String(error)}`
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Get custom token from httpOnly cookies
|
|
66
|
-
*/
|
|
67
|
-
async getCustomTokenFromCookie() {
|
|
68
|
-
try {
|
|
69
|
-
return await this.cookie.getCustomToken();
|
|
70
|
-
} catch (error) {
|
|
71
|
-
return {
|
|
72
|
-
success: false,
|
|
73
|
-
error: `Failed to retrieve custom token from cookies: ${error instanceof Error ? error.message : String(error)}`
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Get all tokens from httpOnly cookies
|
|
79
|
-
*/
|
|
80
|
-
async getAllTokensFromCookies() {
|
|
81
|
-
try {
|
|
82
|
-
return await this.cookie.getAllTokens();
|
|
83
|
-
} catch (error) {
|
|
84
|
-
const errorMessage = `Failed to retrieve tokens from cookies: ${error instanceof Error ? error.message : String(error)}`;
|
|
85
|
-
return {
|
|
86
|
-
idToken: { success: false, error: errorMessage },
|
|
87
|
-
sessionToken: { success: false, error: errorMessage },
|
|
88
|
-
refreshToken: { success: false, error: errorMessage },
|
|
89
|
-
customToken: { success: false, error: errorMessage }
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Check if a specific token exists in cookies
|
|
95
|
-
*/
|
|
96
|
-
async hasTokenInCookie(tokenType) {
|
|
97
|
-
try {
|
|
98
|
-
return await this.cookie.hasToken(tokenType);
|
|
99
|
-
} catch (error) {
|
|
100
|
-
console.error(`[ClientAuthRequest] Failed to check ${tokenType} existence:`, error);
|
|
101
|
-
return false;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Get user data using token from cookies
|
|
106
|
-
* First tries to get ID token from cookies, then uses it for user data request
|
|
107
|
-
*/
|
|
108
|
-
async getUserDataWithCookieToken() {
|
|
109
|
-
try {
|
|
110
|
-
const idTokenResult = await this.getIdTokenFromCookie();
|
|
111
|
-
if (!idTokenResult.success || !idTokenResult.token) {
|
|
112
|
-
console.warn("[ClientAuthRequest] No ID token available in cookies for user data request");
|
|
113
|
-
return null;
|
|
114
|
-
}
|
|
115
|
-
const userData = new UserData();
|
|
116
|
-
const response = await userData.get();
|
|
117
|
-
if (response == null ? void 0 : response.response) {
|
|
118
|
-
return response.response;
|
|
119
|
-
}
|
|
120
|
-
return null;
|
|
121
|
-
} catch (error) {
|
|
122
|
-
console.error("[ClientAuthRequest] Failed to get user data with cookie token:", error);
|
|
123
|
-
throw error;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
function createClientAuthRequest() {
|
|
128
|
-
return new ClientAuthRequest();
|
|
129
|
-
}
|
|
130
|
-
export {
|
|
131
|
-
ClientAuthRequest,
|
|
132
|
-
createClientAuthRequest
|
|
133
|
-
};
|
|
134
|
-
//# sourceMappingURL=request.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/auth/request.ts"],"sourcesContent":["import type { TernSecureUserData } from '@tern-secure/types';\n\nimport type { TokenResult } from '../resources/cookie';\nimport { Cookie } from '../resources/cookie';\nimport { UserData } from '../resources/UserData';\n\nexport interface UserDataParams {\n idToken: string;\n}\n\n/**\n * Client-side authentication request functionality\n * Uses backend API calls through the configured apiUrl\n */\nexport class ClientAuthRequest {\n private cookie: Cookie;\n private userData: UserData;\n\n constructor() {\n this.cookie = new Cookie();\n this.userData = new UserData();\n }\n\n /**\n * Get UserData\n */\n async getUserData(): Promise<TernSecureUserData | null> {\n try {\n const response = await this.userData.get();\n\n if (response?.response) {\n return response.response as TernSecureUserData;\n }\n\n return null;\n } catch (error) {\n console.error('[ClientAuthRequest] Failed to get user data:', error);\n throw error;\n }\n }\n\n /**\n * Get ID token from httpOnly cookies\n */\n async getIdTokenFromCookie(): Promise<TokenResult> {\n try {\n return await this.cookie.getIdToken();\n } catch (error) {\n return {\n success: false,\n error: `Failed to retrieve ID token from cookies: ${error instanceof Error ? error.message : String(error)}`,\n };\n }\n }\n\n /**\n * Get session token from httpOnly cookies\n */\n async getSessionTokenFromCookie(): Promise<TokenResult> {\n try {\n return await this.cookie.getSessionToken();\n } catch (error) {\n return {\n success: false,\n error: `Failed to retrieve session token from cookies: ${error instanceof Error ? error.message : String(error)}`,\n };\n }\n }\n\n /**\n * Get refresh token from httpOnly cookies\n */\n async getRefreshTokenFromCookie(): Promise<TokenResult> {\n try {\n return await this.cookie.getRefreshToken();\n } catch (error) {\n return {\n success: false,\n error: `Failed to retrieve refresh token from cookies: ${error instanceof Error ? error.message : String(error)}`,\n };\n }\n }\n\n /**\n * Get custom token from httpOnly cookies\n */\n async getCustomTokenFromCookie(): Promise<TokenResult> {\n try {\n return await this.cookie.getCustomToken();\n } catch (error) {\n return {\n success: false,\n error: `Failed to retrieve custom token from cookies: ${error instanceof Error ? error.message : String(error)}`,\n };\n }\n }\n\n /**\n * Get all tokens from httpOnly cookies\n */\n async getAllTokensFromCookies(): Promise<Record<string, TokenResult>> {\n try {\n return await this.cookie.getAllTokens();\n } catch (error) {\n const errorMessage = `Failed to retrieve tokens from cookies: ${error instanceof Error ? error.message : String(error)}`;\n return {\n idToken: { success: false, error: errorMessage },\n sessionToken: { success: false, error: errorMessage },\n refreshToken: { success: false, error: errorMessage },\n customToken: { success: false, error: errorMessage },\n };\n }\n }\n\n /**\n * Check if a specific token exists in cookies\n */\n async hasTokenInCookie(\n tokenType: 'idToken' | 'sessionToken' | 'refreshToken' | 'customToken',\n ): Promise<boolean> {\n try {\n return await this.cookie.hasToken(tokenType);\n } catch (error) {\n console.error(`[ClientAuthRequest] Failed to check ${tokenType} existence:`, error);\n return false;\n }\n }\n\n /**\n * Get user data using token from cookies\n * First tries to get ID token from cookies, then uses it for user data request\n */\n async getUserDataWithCookieToken(): Promise<TernSecureUserData | null> {\n try {\n const idTokenResult = await this.getIdTokenFromCookie();\n\n if (!idTokenResult.success || !idTokenResult.token) {\n console.warn('[ClientAuthRequest] No ID token available in cookies for user data request');\n return null;\n }\n\n const userData = new UserData();\n const response = await userData.get();\n\n if (response?.response) {\n return response.response as TernSecureUserData;\n }\n\n return null;\n } catch (error) {\n console.error('[ClientAuthRequest] Failed to get user data with cookie token:', error);\n throw error;\n }\n }\n}\n\nexport function createClientAuthRequest(): ClientAuthRequest {\n return new ClientAuthRequest();\n}\n"],"mappings":"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","names":[]}
|
package/dist/esm/global.d.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=global.d.js.map
|
package/dist/esm/global.d.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/esm/index.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { TernSecureAuth } from "./instance/TernAuth";
|
|
2
|
-
import { TernServerAuth } from "./instance/TernAuthServer";
|
|
3
|
-
import { CoreApiClient, coreApiClient } from "./instance/coreApiClient";
|
|
4
|
-
import { SignIn, TernSecureBase, buildURL } from "./resources/internal";
|
|
5
|
-
import { RedirectUrls } from "./utils/redirectUrls";
|
|
6
|
-
export {
|
|
7
|
-
CoreApiClient,
|
|
8
|
-
RedirectUrls,
|
|
9
|
-
SignIn,
|
|
10
|
-
TernSecureAuth,
|
|
11
|
-
TernSecureBase,
|
|
12
|
-
TernServerAuth,
|
|
13
|
-
buildURL,
|
|
14
|
-
coreApiClient
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export { TernSecureAuth } from './instance/TernAuth';\nexport type { TernAuth } from './instance/TernAuth';\nexport { TernServerAuth } from './instance/TernAuthServer';\nexport type { TernServerAuthOptions, AuthenticatedApp } from './instance/TernAuthServer';\n\nexport { CoreApiClient, coreApiClient } from './instance/coreApiClient';\nexport type { \n ApiResponse, \n ApiResponseJSON, \n RequestOptions,\n BeforeRequestHook,\n AfterResponseHook\n} from './instance/coreApiClient';\n\nexport { SignIn, TernSecureBase, buildURL } from './resources/internal';\n\nexport type {\n AuthErrorTree,\n TernSecureConfig,\n SignInFormValues,\n SignInProps,\n SignUpProps,\n SignInResponse,\n SignInForceRedirectUrl,\n SignUpForceRedirectUrl,\n SignInFallbackRedirectUrl,\n SignUpFallbackRedirectUrl,\n ResendEmailVerification,\n TernSecureUser,\n TernSecureState\n} from '@tern-secure/types';\n\nexport { RedirectUrls } from './utils/redirectUrls';"],"mappings":"AAAA,SAAS,sBAAsB;AAE/B,SAAS,sBAAsB;AAG/B,SAAS,eAAe,qBAAqB;AAS7C,SAAS,QAAQ,gBAAgB,gBAAgB;AAkBjD,SAAS,oBAAoB;","names":[]}
|