@hexclave/react 1.0.18 → 1.0.20
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/components/credential-sign-in.js +5 -1
- package/dist/components/credential-sign-in.js.map +1 -1
- package/dist/components/team-switcher.js +3 -5
- package/dist/components/team-switcher.js.map +1 -1
- package/dist/components-page/auth-page.js +2 -2
- package/dist/components-page/auth-page.js.map +1 -1
- package/dist/components-page/forgot-password.js +5 -1
- package/dist/components-page/forgot-password.js.map +1 -1
- package/dist/components-page/oauth-callback.js +6 -1
- package/dist/components-page/oauth-callback.js.map +1 -1
- package/dist/components-page/team-creation.js +2 -3
- package/dist/components-page/team-creation.js.map +1 -1
- package/dist/esm/components/credential-sign-in.js +5 -1
- package/dist/esm/components/credential-sign-in.js.map +1 -1
- package/dist/esm/components/team-switcher.js +3 -5
- package/dist/esm/components/team-switcher.js.map +1 -1
- package/dist/esm/components-page/auth-page.js +2 -2
- package/dist/esm/components-page/auth-page.js.map +1 -1
- package/dist/esm/components-page/forgot-password.js +5 -1
- package/dist/esm/components-page/forgot-password.js.map +1 -1
- package/dist/esm/components-page/oauth-callback.js +6 -1
- package/dist/esm/components-page/oauth-callback.js.map +1 -1
- package/dist/esm/components-page/team-creation.js +2 -3
- package/dist/esm/components-page/team-creation.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js +34 -5
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts +1 -0
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js +24 -4
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/common.js +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.js +2 -2
- package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.d.ts +3 -2
- package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -1
- package/dist/esm/lib/hexclave-app/project-configs/index.d.ts +7 -0
- package/dist/esm/lib/hexclave-app/project-configs/index.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/projects/index.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/projects/index.js +1 -1
- package/dist/esm/lib/hexclave-app/projects/index.js.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js +34 -5
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts +1 -0
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js +24 -4
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/common.js +1 -1
- package/dist/lib/hexclave-app/apps/implementations/server-app-impl.js +2 -2
- package/dist/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -1
- package/dist/lib/hexclave-app/apps/interfaces/client-app.d.ts +3 -2
- package/dist/lib/hexclave-app/apps/interfaces/client-app.d.ts.map +1 -1
- package/dist/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -1
- package/dist/lib/hexclave-app/project-configs/index.d.ts +7 -0
- package/dist/lib/hexclave-app/project-configs/index.d.ts.map +1 -1
- package/dist/lib/hexclave-app/projects/index.d.ts.map +1 -1
- package/dist/lib/hexclave-app/projects/index.js +1 -1
- package/dist/lib/hexclave-app/projects/index.js.map +1 -1
- package/package.json +3 -3
- package/src/components/credential-sign-in.tsx +8 -1
- package/src/components/team-switcher.tsx +3 -5
- package/src/components-page/auth-page.tsx +2 -2
- package/src/components-page/forgot-password.tsx +7 -1
- package/src/components-page/oauth-callback.tsx +9 -1
- package/src/components-page/team-creation.tsx +2 -3
- package/src/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.ts +36 -0
- package/src/lib/hexclave-app/apps/implementations/client-app-impl.ts +43 -4
- package/src/lib/hexclave-app/apps/implementations/server-app-impl.ts +2 -2
- package/src/lib/hexclave-app/apps/interfaces/client-app.ts +3 -2
- package/src/lib/hexclave-app/project-configs/index.ts +8 -0
- package/src/lib/hexclave-app/projects/index.ts +13 -11
|
@@ -52,6 +52,20 @@ const nestedCrossDomainAuthQueryParams = {
|
|
|
52
52
|
codeChallengeMethod: "code_challenge_method",
|
|
53
53
|
afterCallbackRedirectUrl: "after_callback_redirect_url"
|
|
54
54
|
};
|
|
55
|
+
function getRedirectHelperInstruction(handlerName) {
|
|
56
|
+
if (handlerName === "handler") return "Use a page-specific redirect helper such as app.redirectToSignIn() instead.";
|
|
57
|
+
return `Use app.${`redirectTo${handlerName.slice(0, 1).toUpperCase()}${handlerName.slice(1)}`}() instead.`;
|
|
58
|
+
}
|
|
59
|
+
function createUrlsForPublicAccess(options) {
|
|
60
|
+
const hostedUrlNames = new Set(Object.entries(options.urls).filter(([, url]) => (0, ______url_targets_js.isHostedHandlerUrlForProject)({
|
|
61
|
+
url,
|
|
62
|
+
projectId: options.projectId
|
|
63
|
+
})).map(([handlerName]) => handlerName));
|
|
64
|
+
return new Proxy(options.urls, { get(target, property, receiver) {
|
|
65
|
+
if (typeof property === "string" && hostedUrlNames.has(property)) throw new Error(`app.urls.${property} cannot be used when this app is configured to use hosted components. \`app.urls\` is static and does not include the runtime redirect-back, cross-domain auth, or sign-out state required by hosted components. ` + getRedirectHelperInstruction(property));
|
|
66
|
+
return Reflect.get(target, property, receiver);
|
|
67
|
+
} });
|
|
68
|
+
}
|
|
55
69
|
const oauthCallbackResponseQueryParams = [
|
|
56
70
|
"code",
|
|
57
71
|
"state",
|
|
@@ -1125,7 +1139,7 @@ var _HexclaveClientAppImplIncomplete = class _HexclaveClientAppImplIncomplete {
|
|
|
1125
1139
|
teamId: crud.id,
|
|
1126
1140
|
email: options.email,
|
|
1127
1141
|
session,
|
|
1128
|
-
callbackUrl: options.callbackUrl ?? (0, ____________utils_url_js.constructRedirectUrl)(app.
|
|
1142
|
+
callbackUrl: options.callbackUrl ?? (0, ____________utils_url_js.constructRedirectUrl)(app._getUrls().teamInvitation, "callbackUrl")
|
|
1129
1143
|
});
|
|
1130
1144
|
await app._teamInvitationsCache.refresh([session, crud.id]);
|
|
1131
1145
|
},
|
|
@@ -1175,7 +1189,7 @@ var _HexclaveClientAppImplIncomplete = class _HexclaveClientAppImplIncomplete {
|
|
|
1175
1189
|
isPrimary: crud.is_primary,
|
|
1176
1190
|
usedForAuth: crud.used_for_auth,
|
|
1177
1191
|
async sendVerificationEmail(options) {
|
|
1178
|
-
await app._interface.sendCurrentUserContactChannelVerificationEmail(crud.id, options?.callbackUrl || (0, ____________utils_url_js.constructRedirectUrl)(app.
|
|
1192
|
+
await app._interface.sendCurrentUserContactChannelVerificationEmail(crud.id, options?.callbackUrl || (0, ____________utils_url_js.constructRedirectUrl)(app._getUrls().emailVerification, "callbackUrl"), session);
|
|
1179
1193
|
},
|
|
1180
1194
|
async update(data) {
|
|
1181
1195
|
await app._interface.updateClientContactChannel(crud.id, (0, ______contact_channels_index_js.contactChannelUpdateOptionsToCrud)(data), session);
|
|
@@ -1441,7 +1455,7 @@ var _HexclaveClientAppImplIncomplete = class _HexclaveClientAppImplIncomplete {
|
|
|
1441
1455
|
const location = await (0, _________auth_js.getNewOAuthProviderOrScopeUrl)(app._interface, {
|
|
1442
1456
|
provider,
|
|
1443
1457
|
redirectUrl: app._getOAuthCallbackRedirectUri(),
|
|
1444
|
-
errorRedirectUrl: app.
|
|
1458
|
+
errorRedirectUrl: app._getUrls().error,
|
|
1445
1459
|
providerScope: (0, _hexclave_shared_dist_utils_strings.mergeScopeStrings)(scopeString, (app._oauthScopesOnSignIn[provider] ?? []).join(" "))
|
|
1446
1460
|
}, session);
|
|
1447
1461
|
await app._redirectTo({ url: location });
|
|
@@ -1557,7 +1571,7 @@ var _HexclaveClientAppImplIncomplete = class _HexclaveClientAppImplIncomplete {
|
|
|
1557
1571
|
},
|
|
1558
1572
|
async sendVerificationEmail(options) {
|
|
1559
1573
|
if (!crud.primary_email) throw new _hexclave_shared_dist_utils_errors.HexclaveAssertionError("User does not have a primary email");
|
|
1560
|
-
return await app._interface.sendVerificationEmail(crud.primary_email, options?.callbackUrl ?? (0, ____________utils_url_js.constructRedirectUrl)(app.
|
|
1574
|
+
return await app._interface.sendVerificationEmail(crud.primary_email, options?.callbackUrl ?? (0, ____________utils_url_js.constructRedirectUrl)(app._getUrls().emailVerification, "callbackUrl"), session);
|
|
1561
1575
|
},
|
|
1562
1576
|
async updatePassword(options) {
|
|
1563
1577
|
const result = await app._interface.updatePassword(options, session);
|
|
@@ -1988,6 +2002,12 @@ var _HexclaveClientAppImplIncomplete = class _HexclaveClientAppImplIncomplete {
|
|
|
1988
2002
|
});
|
|
1989
2003
|
}
|
|
1990
2004
|
get urls() {
|
|
2005
|
+
return createUrlsForPublicAccess({
|
|
2006
|
+
urls: this._getUrls(),
|
|
2007
|
+
projectId: this.projectId
|
|
2008
|
+
});
|
|
2009
|
+
}
|
|
2010
|
+
_getUrls() {
|
|
1991
2011
|
return (0, __common_js.getUrls)(this._urlOptions, { projectId: this.projectId });
|
|
1992
2012
|
}
|
|
1993
2013
|
_prefetchCrossDomainHandoffParamsIfNeeded() {
|