@stytch/vanilla-js 5.25.2 → 5.26.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/CHANGELOG.md +11 -0
- package/dist/b2b/index.d.ts +2 -6
- package/dist/b2b/index.esm.js +5 -2
- package/dist/b2b/index.headless.esm.js +38 -2
- package/dist/b2b/index.headless.js +38 -2
- package/dist/b2b/index.js +5 -2
- package/dist/index.d.ts +3 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.headless.esm.js +38 -2
- package/dist/index.headless.js +38 -2
- package/dist/index.js +1 -1
- package/dist/types-BZJ7-EK3.d.ts +12 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @stytch/vanilla-js
|
|
2
2
|
|
|
3
|
+
## 5.26.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 0fa72fa: Adds in support for custom scopes to Consumer applications
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 06d3d08: Make session handling more resiliant to changing domains
|
|
12
|
+
- e410edb: Fix issue where SDKB2BDiscoveryIntermediateSessionsExchange can sometimes double trigger
|
|
13
|
+
|
|
3
14
|
## 5.25.2
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
package/dist/b2b/index.d.ts
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import { StytchB2BHeadlessClient } from './index.headless.js';
|
|
2
|
-
import {
|
|
2
|
+
import { StytchProjectConfigurationInput, StyleConfig, Callbacks, StytchB2BUIConfig, StringsOptions } from '@stytch/core/public';
|
|
3
3
|
export * from '@stytch/core/public';
|
|
4
|
+
import { B as B2BIDPConsentManifestGenerator } from '../types-BZJ7-EK3.js';
|
|
4
5
|
import '@stytch/core';
|
|
5
6
|
import '../OneTapClient-zVI7LxJ6.js';
|
|
6
7
|
import 'google-one-tap';
|
|
7
8
|
|
|
8
|
-
type B2BIDPConsentManifestGenerator = (input: {
|
|
9
|
-
scopes: string[];
|
|
10
|
-
clientName: string;
|
|
11
|
-
}) => IDPConsentScreenManifest;
|
|
12
|
-
|
|
13
9
|
/**
|
|
14
10
|
* A client used for invoking Stytch's B2B APIs.
|
|
15
11
|
* The Stytch UI Client can be used as a drop-in solution for authentication and session management.
|
package/dist/b2b/index.esm.js
CHANGED
|
@@ -4066,6 +4066,9 @@ var Discovery = function Discovery() {
|
|
|
4066
4066
|
var _useBootstrap2 = useBootstrap(),
|
|
4067
4067
|
createOrganizationEnabled = _useBootstrap2.createOrganizationEnabled;
|
|
4068
4068
|
p$1(function () {
|
|
4069
|
+
if (isExchangeInProgress) {
|
|
4070
|
+
return;
|
|
4071
|
+
}
|
|
4069
4072
|
var directLoginOrganization = shouldAllowDirectLoginToOrganization(state.formState.discoveryState.discoveredOrganizations, config.directLoginForSingleMembership);
|
|
4070
4073
|
if (shouldDirectLoginConfigEnabled && directLoginOrganization !== null) {
|
|
4071
4074
|
handleDiscoveryOrganizationStart(directLoginOrganization);
|
|
@@ -4116,7 +4119,7 @@ var Discovery = function Discovery() {
|
|
|
4116
4119
|
}
|
|
4117
4120
|
}),
|
|
4118
4121
|
stytchDiscoveryExchange = _useMutate3.trigger,
|
|
4119
|
-
|
|
4122
|
+
isExchangeInProgress = _useMutate3.isMutating;
|
|
4120
4123
|
var _useMutate4 = useMutate('stytch.discovery.organizations.create', function () {
|
|
4121
4124
|
return stytchClient.discovery.organizations.create({
|
|
4122
4125
|
session_duration_minutes: config.sessionOptions.sessionDurationMinutes
|
|
@@ -4135,7 +4138,7 @@ var Discovery = function Discovery() {
|
|
|
4135
4138
|
}),
|
|
4136
4139
|
stytchCreateOrganization = _useMutate4.trigger,
|
|
4137
4140
|
isCreateLoading = _useMutate4.isMutating;
|
|
4138
|
-
if (
|
|
4141
|
+
if (isExchangeInProgress) {
|
|
4139
4142
|
return /*#__PURE__*/y(LoggingInScreen, null);
|
|
4140
4143
|
}
|
|
4141
4144
|
if (isCreateLoading) {
|
|
@@ -216,7 +216,7 @@ var ClientsideServicesProvider = /*#__PURE__*/function () {
|
|
|
216
216
|
}
|
|
217
217
|
}]);
|
|
218
218
|
}();
|
|
219
|
-
var version = "5.
|
|
219
|
+
var version = "5.26.0";
|
|
220
220
|
var NetworkClient = /*#__PURE__*/function () {
|
|
221
221
|
function NetworkClient(_publicToken, _subscriptionDataLayer, _liveAPIURL, _testAPIURL, additionalTelemetryDataFn) {
|
|
222
222
|
_classCallCheck(this, NetworkClient);
|
|
@@ -583,6 +583,7 @@ var api = init(defaultConverter, {
|
|
|
583
583
|
var STYTCH_SESSION_COOKIE = 'stytch_session';
|
|
584
584
|
var STYTCH_SESSION_JWT_COOKIE = 'stytch_session_jwt';
|
|
585
585
|
var STYTCH_INTERMEDIATE_SESSION_TOKEN_COOKIE = 'stytch_intermediate_session_token';
|
|
586
|
+
var SEEN_DOMAINS_KEY = 'seen_domains';
|
|
586
587
|
var isStorageAvailable = function isStorageAvailable(storage) {
|
|
587
588
|
return typeof storage !== 'undefined' && storage !== null;
|
|
588
589
|
};
|
|
@@ -714,6 +715,9 @@ var SubscriptionDataLayer = /*#__PURE__*/function () {
|
|
|
714
715
|
path: this._cookiePath,
|
|
715
716
|
domain: this._domain
|
|
716
717
|
});
|
|
718
|
+
if (cookieOpts.domain) {
|
|
719
|
+
this.addSeenDomain(cookieOpts.domain);
|
|
720
|
+
}
|
|
717
721
|
api.set(this.opaqueTokenCookieName, session_token, cookieOpts);
|
|
718
722
|
api.set(this.jwtCookieName, session_jwt, cookieOpts);
|
|
719
723
|
var alternateCookieOptions = SubscriptionDataLayer.generateCookieOpts({
|
|
@@ -722,6 +726,9 @@ var SubscriptionDataLayer = /*#__PURE__*/function () {
|
|
|
722
726
|
path: this._cookiePath,
|
|
723
727
|
domain: this._domain
|
|
724
728
|
});
|
|
729
|
+
if (alternateCookieOptions.domain) {
|
|
730
|
+
this.addSeenDomain(alternateCookieOptions.domain);
|
|
731
|
+
}
|
|
725
732
|
if (hasMultipleCookies(this.jwtCookieName)) {
|
|
726
733
|
api.remove(this.jwtCookieName, alternateCookieOptions);
|
|
727
734
|
}
|
|
@@ -761,9 +768,12 @@ var SubscriptionDataLayer = /*#__PURE__*/function () {
|
|
|
761
768
|
key: "removeCookies",
|
|
762
769
|
value: function removeCookies(cookiesToRemove) {
|
|
763
770
|
var _this5 = this;
|
|
771
|
+
var trackedDomains = this.getSeenDomains();
|
|
772
|
+
var allDomains = [this._domain, null].concat(_toConsumableArray(trackedDomains));
|
|
773
|
+
var uniqueDomains = _toConsumableArray(new Set(allDomains));
|
|
764
774
|
[true, false].forEach(function (availableToSubdomains) {
|
|
765
775
|
[_this5._cookiePath, null].forEach(function (path) {
|
|
766
|
-
|
|
776
|
+
uniqueDomains.forEach(function (domain) {
|
|
767
777
|
var cookieOpts = SubscriptionDataLayer.generateCookieOpts({
|
|
768
778
|
expiresAt: new Date(0).toString(),
|
|
769
779
|
availableToSubdomains: availableToSubdomains,
|
|
@@ -811,6 +821,32 @@ var SubscriptionDataLayer = /*#__PURE__*/function () {
|
|
|
811
821
|
key: getPersistentStorageKey(this.publicToken, key)
|
|
812
822
|
});
|
|
813
823
|
}
|
|
824
|
+
}, {
|
|
825
|
+
key: "getSeenDomains",
|
|
826
|
+
value: function getSeenDomains() {
|
|
827
|
+
var storedDomains = this.getItem(SEEN_DOMAINS_KEY);
|
|
828
|
+
if (!storedDomains) {
|
|
829
|
+
return [];
|
|
830
|
+
}
|
|
831
|
+
try {
|
|
832
|
+
var parsed = JSON.parse(storedDomains);
|
|
833
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
834
|
+
} catch (e) {
|
|
835
|
+
return [];
|
|
836
|
+
}
|
|
837
|
+
}
|
|
838
|
+
}, {
|
|
839
|
+
key: "addSeenDomain",
|
|
840
|
+
value: function addSeenDomain(domain) {
|
|
841
|
+
if (!domain) {
|
|
842
|
+
return;
|
|
843
|
+
}
|
|
844
|
+
var storedDomains = this.getSeenDomains();
|
|
845
|
+
if (!storedDomains.includes(domain)) {
|
|
846
|
+
storedDomains.push(domain);
|
|
847
|
+
this.setItem(SEEN_DOMAINS_KEY, JSON.stringify(storedDomains));
|
|
848
|
+
}
|
|
849
|
+
}
|
|
814
850
|
}], [{
|
|
815
851
|
key: "generateCookieOpts",
|
|
816
852
|
value: function generateCookieOpts(_ref1) {
|
|
@@ -217,7 +217,7 @@ var ClientsideServicesProvider = /*#__PURE__*/function () {
|
|
|
217
217
|
}
|
|
218
218
|
}]);
|
|
219
219
|
}();
|
|
220
|
-
var version = "5.
|
|
220
|
+
var version = "5.26.0";
|
|
221
221
|
var NetworkClient = /*#__PURE__*/function () {
|
|
222
222
|
function NetworkClient(_publicToken, _subscriptionDataLayer, _liveAPIURL, _testAPIURL, additionalTelemetryDataFn) {
|
|
223
223
|
_classCallCheck(this, NetworkClient);
|
|
@@ -584,6 +584,7 @@ var api = init(defaultConverter, {
|
|
|
584
584
|
var STYTCH_SESSION_COOKIE = 'stytch_session';
|
|
585
585
|
var STYTCH_SESSION_JWT_COOKIE = 'stytch_session_jwt';
|
|
586
586
|
var STYTCH_INTERMEDIATE_SESSION_TOKEN_COOKIE = 'stytch_intermediate_session_token';
|
|
587
|
+
var SEEN_DOMAINS_KEY = 'seen_domains';
|
|
587
588
|
var isStorageAvailable = function isStorageAvailable(storage) {
|
|
588
589
|
return typeof storage !== 'undefined' && storage !== null;
|
|
589
590
|
};
|
|
@@ -715,6 +716,9 @@ var SubscriptionDataLayer = /*#__PURE__*/function () {
|
|
|
715
716
|
path: this._cookiePath,
|
|
716
717
|
domain: this._domain
|
|
717
718
|
});
|
|
719
|
+
if (cookieOpts.domain) {
|
|
720
|
+
this.addSeenDomain(cookieOpts.domain);
|
|
721
|
+
}
|
|
718
722
|
api.set(this.opaqueTokenCookieName, session_token, cookieOpts);
|
|
719
723
|
api.set(this.jwtCookieName, session_jwt, cookieOpts);
|
|
720
724
|
var alternateCookieOptions = SubscriptionDataLayer.generateCookieOpts({
|
|
@@ -723,6 +727,9 @@ var SubscriptionDataLayer = /*#__PURE__*/function () {
|
|
|
723
727
|
path: this._cookiePath,
|
|
724
728
|
domain: this._domain
|
|
725
729
|
});
|
|
730
|
+
if (alternateCookieOptions.domain) {
|
|
731
|
+
this.addSeenDomain(alternateCookieOptions.domain);
|
|
732
|
+
}
|
|
726
733
|
if (internal.hasMultipleCookies(this.jwtCookieName)) {
|
|
727
734
|
api.remove(this.jwtCookieName, alternateCookieOptions);
|
|
728
735
|
}
|
|
@@ -762,9 +769,12 @@ var SubscriptionDataLayer = /*#__PURE__*/function () {
|
|
|
762
769
|
key: "removeCookies",
|
|
763
770
|
value: function removeCookies(cookiesToRemove) {
|
|
764
771
|
var _this5 = this;
|
|
772
|
+
var trackedDomains = this.getSeenDomains();
|
|
773
|
+
var allDomains = [this._domain, null].concat(_toConsumableArray(trackedDomains));
|
|
774
|
+
var uniqueDomains = _toConsumableArray(new Set(allDomains));
|
|
765
775
|
[true, false].forEach(function (availableToSubdomains) {
|
|
766
776
|
[_this5._cookiePath, null].forEach(function (path) {
|
|
767
|
-
|
|
777
|
+
uniqueDomains.forEach(function (domain) {
|
|
768
778
|
var cookieOpts = SubscriptionDataLayer.generateCookieOpts({
|
|
769
779
|
expiresAt: new Date(0).toString(),
|
|
770
780
|
availableToSubdomains: availableToSubdomains,
|
|
@@ -812,6 +822,32 @@ var SubscriptionDataLayer = /*#__PURE__*/function () {
|
|
|
812
822
|
key: internal.getPersistentStorageKey(this.publicToken, key)
|
|
813
823
|
});
|
|
814
824
|
}
|
|
825
|
+
}, {
|
|
826
|
+
key: "getSeenDomains",
|
|
827
|
+
value: function getSeenDomains() {
|
|
828
|
+
var storedDomains = this.getItem(SEEN_DOMAINS_KEY);
|
|
829
|
+
if (!storedDomains) {
|
|
830
|
+
return [];
|
|
831
|
+
}
|
|
832
|
+
try {
|
|
833
|
+
var parsed = JSON.parse(storedDomains);
|
|
834
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
835
|
+
} catch (e) {
|
|
836
|
+
return [];
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
}, {
|
|
840
|
+
key: "addSeenDomain",
|
|
841
|
+
value: function addSeenDomain(domain) {
|
|
842
|
+
if (!domain) {
|
|
843
|
+
return;
|
|
844
|
+
}
|
|
845
|
+
var storedDomains = this.getSeenDomains();
|
|
846
|
+
if (!storedDomains.includes(domain)) {
|
|
847
|
+
storedDomains.push(domain);
|
|
848
|
+
this.setItem(SEEN_DOMAINS_KEY, JSON.stringify(storedDomains));
|
|
849
|
+
}
|
|
850
|
+
}
|
|
815
851
|
}], [{
|
|
816
852
|
key: "generateCookieOpts",
|
|
817
853
|
value: function generateCookieOpts(_ref1) {
|
package/dist/b2b/index.js
CHANGED
|
@@ -4067,6 +4067,9 @@ var Discovery = function Discovery() {
|
|
|
4067
4067
|
var _useBootstrap2 = useBootstrap(),
|
|
4068
4068
|
createOrganizationEnabled = _useBootstrap2.createOrganizationEnabled;
|
|
4069
4069
|
extractErrorMessage.p(function () {
|
|
4070
|
+
if (isExchangeInProgress) {
|
|
4071
|
+
return;
|
|
4072
|
+
}
|
|
4070
4073
|
var directLoginOrganization = shouldAllowDirectLoginToOrganization(state.formState.discoveryState.discoveredOrganizations, config.directLoginForSingleMembership);
|
|
4071
4074
|
if (shouldDirectLoginConfigEnabled && directLoginOrganization !== null) {
|
|
4072
4075
|
handleDiscoveryOrganizationStart(directLoginOrganization);
|
|
@@ -4117,7 +4120,7 @@ var Discovery = function Discovery() {
|
|
|
4117
4120
|
}
|
|
4118
4121
|
}),
|
|
4119
4122
|
stytchDiscoveryExchange = _useMutate3.trigger,
|
|
4120
|
-
|
|
4123
|
+
isExchangeInProgress = _useMutate3.isMutating;
|
|
4121
4124
|
var _useMutate4 = useMutate('stytch.discovery.organizations.create', function () {
|
|
4122
4125
|
return stytchClient.discovery.organizations.create({
|
|
4123
4126
|
session_duration_minutes: config.sessionOptions.sessionDurationMinutes
|
|
@@ -4136,7 +4139,7 @@ var Discovery = function Discovery() {
|
|
|
4136
4139
|
}),
|
|
4137
4140
|
stytchCreateOrganization = _useMutate4.trigger,
|
|
4138
4141
|
isCreateLoading = _useMutate4.isMutating;
|
|
4139
|
-
if (
|
|
4142
|
+
if (isExchangeInProgress) {
|
|
4140
4143
|
return /*#__PURE__*/extractErrorMessage.y(LoggingInScreen, null);
|
|
4141
4144
|
}
|
|
4142
4145
|
if (isCreateLoading) {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { StytchHeadlessClient } from './index.headless.js';
|
|
2
2
|
import { StytchProjectConfigurationInput, StytchLoginConfig, StyleConfig, Callbacks, StringsOptions } from '@stytch/core/public';
|
|
3
3
|
export * from '@stytch/core/public';
|
|
4
|
+
import { I as IDPConsentManifestGenerator } from './types-BZJ7-EK3.js';
|
|
4
5
|
import '@stytch/core';
|
|
5
6
|
import './OneTapClient-zVI7LxJ6.js';
|
|
6
7
|
import 'google-one-tap';
|
|
@@ -106,10 +107,11 @@ declare class StytchUIClient<TProjectConfiguration extends StytchProjectConfigur
|
|
|
106
107
|
* @param callbacks - Optional {@link Callbacks} triggered by various events in the Stytch SDK.
|
|
107
108
|
* @throws An error when the element specified by elementId cannot be found.
|
|
108
109
|
*/
|
|
109
|
-
mountIdentityProvider({ elementId, styles, callbacks, strings, }: {
|
|
110
|
+
mountIdentityProvider({ elementId, styles, callbacks, strings, getIDPConsentManifest, }: {
|
|
110
111
|
elementId: string;
|
|
111
112
|
styles?: StyleConfig;
|
|
112
113
|
callbacks?: Callbacks<TProjectConfiguration>;
|
|
114
|
+
getIDPConsentManifest?: IDPConsentManifestGenerator;
|
|
113
115
|
} & StringsOptions): void;
|
|
114
116
|
}
|
|
115
117
|
|