@stytch/nextjs 2.0.2 → 3.0.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.
@@ -0,0 +1,1011 @@
1
+ import React, { useRef, useState, useEffect, useCallback, createContext, useContext, useMemo } from 'react';
2
+
3
+ const noProviderError = (item, provider = 'StytchProvider') => `${item} can only be used inside <${provider}>.`;
4
+ const cannotInvokeMethodOnServerError = (path) => `[Stytch] Invalid serverside function call to ${path}.
5
+ The Stytch Javascript SDK is intended to ony be used on the client side.
6
+ Make sure to wrap your API calls in a hook to ensure they are executed on the client.
7
+ \`\`\`
8
+ const myComponent = () => {
9
+ const stytch = useStytch();
10
+ // This will error out on the server.
11
+ stytch.magicLinks.authenticate(...);
12
+ useEffect(() => {
13
+ // This will work well
14
+ stytch.magicLinks.authenticate(...);
15
+ }, []);
16
+ }
17
+ \`\`\`
18
+
19
+ If you want to make API calls from server environments, please use the Stytch Node Library
20
+ https://www.npmjs.com/package/stytch.
21
+ `;
22
+
23
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
+ function invariant(cond, message) {
25
+ if (!cond)
26
+ throw new Error(message);
27
+ }
28
+
29
+ // useState can cause memory leaks if it is set after the component unmounted. For example, if it is
30
+ // set after `await`, or in a `then`, `catch`, or `finally`, or in a setTimout/setInterval.
31
+ const useAsyncState = (initialState) => {
32
+ const isMounted = useRef(true);
33
+ const [state, setState] = useState(initialState);
34
+ useEffect(() => {
35
+ isMounted.current = true;
36
+ return () => {
37
+ isMounted.current = false;
38
+ };
39
+ }, []);
40
+ const setStateAction = useCallback((newState) => {
41
+ isMounted.current && setState(newState);
42
+ }, []);
43
+ return [state, setStateAction];
44
+ };
45
+
46
+ const SSRStubKey = Symbol('__stytch_SSRStubKey');
47
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
48
+ const isStytchSSRProxy = (proxy) => {
49
+ return !!proxy[SSRStubKey];
50
+ };
51
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
52
+ const createProxy = (path) => {
53
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
54
+ const noop = () => { };
55
+ return new Proxy(noop, {
56
+ get(target, p) {
57
+ if (p === SSRStubKey) {
58
+ return true;
59
+ }
60
+ return createProxy(path + '.' + String(p));
61
+ },
62
+ apply() {
63
+ throw new Error(cannotInvokeMethodOnServerError(path));
64
+ },
65
+ });
66
+ };
67
+ const createStytchSSRProxy = () => createProxy('stytch');
68
+
69
+ const initialMember = {
70
+ member: null,
71
+ fromCache: false,
72
+ isInitialized: false,
73
+ };
74
+ const initialMemberSession = {
75
+ session: null,
76
+ fromCache: false,
77
+ isInitialized: false,
78
+ };
79
+ const StytchContext = createContext({ isMounted: false });
80
+ const StytchMemberContext = createContext(initialMember);
81
+ const StytchMemberSessionContext = createContext(initialMemberSession);
82
+ const useIsMounted__INTERNAL = () => useContext(StytchContext).isMounted;
83
+ /**
84
+ * Returns the active member.
85
+ * The Stytch SDKs are used for client-side authentication and session management.
86
+ * Check the isInitialized property to determine if the SDK has completed initialization.
87
+ * Check the fromCache property to determine if the session data is from persistent storage.
88
+ * See Next's {@link https://nextjs.org/docs/authentication#authenticating-statically-generated-pages documentation} for more.
89
+ * @example
90
+ * const {member, isInitialized, fromCache} = useStytchMember();
91
+ * if (!isInitialized) {
92
+ * return <p>Loading...</p>;
93
+ * }
94
+ * return (<h1>Welcome, {member.name}</h1>);
95
+ */
96
+ const useStytchMember = () => {
97
+ invariant(useIsMounted__INTERNAL(), noProviderError('useStytchMember', 'StytchB2BProvider'));
98
+ return useContext(StytchMemberContext);
99
+ };
100
+ /**
101
+ * Returns the member's active Stytch member session.
102
+ * The Stytch SDKs are used for client-side authentication and session management.
103
+ * Check the isInitialized property to determine if the SDK has completed initialization.
104
+ * Check the fromCache property to determine if the session data is from persistent storage.
105
+ * See Next's {@link https://nextjs.org/docs/authentication#authenticating-statically-generated-pages documentation} for more.
106
+ * @example
107
+ * const {session, isInitialized, fromCache} = useStytchMemberSession();
108
+ * useEffect(() => {
109
+ * if (!isInitialized) {
110
+ * return;
111
+ * }
112
+ * if (!session) {
113
+ * router.replace('/login')
114
+ * }
115
+ * }, [session, isInitialized]);
116
+ */
117
+ const useStytchMemberSession = () => {
118
+ invariant(useIsMounted__INTERNAL(), noProviderError('useStytchMemberSession', 'StytchB2BProvider'));
119
+ return useContext(StytchMemberSessionContext);
120
+ };
121
+ /**
122
+ * Returns the Stytch client stored in the Stytch context.
123
+ *
124
+ * @example
125
+ * const stytch = useStytch();
126
+ * useEffect(() => {
127
+ * stytch.magicLinks.authenticate('...')
128
+ * }, [stytch]);
129
+ */
130
+ const useStytchB2BClient = () => {
131
+ const ctx = useContext(StytchContext);
132
+ invariant(ctx.isMounted, noProviderError('useStytchB2BClient', 'StytchB2BProvider'));
133
+ return ctx.client;
134
+ };
135
+ const withStytchB2BClient = (Component) => {
136
+ const WithStytch = (props) => {
137
+ invariant(useIsMounted__INTERNAL(), noProviderError('withStytchB2BClient', 'StytchB2BProvider'));
138
+ return React.createElement(Component, Object.assign({}, props, { stytch: useStytchB2BClient() }));
139
+ };
140
+ WithStytch.displayName = `withStytch(${Component.displayName || Component.name || 'Component'})`;
141
+ return WithStytch;
142
+ };
143
+ const withStytchMember = (Component) => {
144
+ const WithStytchUser = (props) => {
145
+ invariant(useIsMounted__INTERNAL(), noProviderError('withStytchMember', 'StytchB2BProvider'));
146
+ const { member, isInitialized, fromCache } = useStytchMember();
147
+ return (React.createElement(Component, Object.assign({}, props, { stytchMember: member, stytchMemberIsInitialized: isInitialized, stytchMemberIsFromCache: fromCache })));
148
+ };
149
+ WithStytchUser.displayName = `withStytchMember(${Component.displayName || Component.name || 'Component'})`;
150
+ return WithStytchUser;
151
+ };
152
+ const withStytchMemberSession = (Component) => {
153
+ const WithStytchSession = (props) => {
154
+ invariant(useIsMounted__INTERNAL(), noProviderError('withStytchMemberSession', 'StytchB2BProvider'));
155
+ const { session, isInitialized, fromCache } = useStytchMemberSession();
156
+ return (React.createElement(Component, Object.assign({}, props, { stytchMemberSession: session, stytchMemberSessionIsInitialized: isInitialized, stytchMemberSessionIsFromCache: fromCache })));
157
+ };
158
+ WithStytchSession.displayName = `withStytchMemberSession(${Component.displayName || Component.name || 'Component'})`;
159
+ return WithStytchSession;
160
+ };
161
+ /**
162
+ * The Stytch Context Provider.
163
+ * Wrap your application with this component in `_app.js` in order to use Stytch everywhere in your app.
164
+ * @example
165
+ * const stytch = createStytchB2BHeadlessClient('public-token-<find yours in the stytch dashboard>')
166
+ *
167
+ * return (
168
+ * <StytchB2BProvider stytch={stytch}>
169
+ * <App />
170
+ * </StytchB2BProvider>
171
+ * )
172
+ */
173
+ const StytchB2BProvider = ({ stytch, children }) => {
174
+ const ctx = useMemo(() => ({ client: stytch, isMounted: true }), [stytch]);
175
+ const [member, setMember] = useAsyncState(initialMember);
176
+ const [session, setMemberSession] = useAsyncState(initialMemberSession);
177
+ useEffect(() => {
178
+ if (isStytchSSRProxy(stytch)) {
179
+ return;
180
+ }
181
+ setMember({
182
+ member: stytch.member.getSync(),
183
+ fromCache: true,
184
+ isInitialized: true,
185
+ });
186
+ setMemberSession({
187
+ session: stytch.session.getSync(),
188
+ fromCache: true,
189
+ isInitialized: true,
190
+ });
191
+ const unsubscribeMember = stytch.member.onChange((member) => setMember({ member, fromCache: false, isInitialized: true }));
192
+ const unsubscribeMemberSession = stytch.session.onChange((session) => setMemberSession({ session, fromCache: false, isInitialized: true }));
193
+ return () => {
194
+ unsubscribeMember();
195
+ unsubscribeMemberSession();
196
+ };
197
+ }, [stytch, setMember, setMemberSession]);
198
+ const finalMemberSession = !!session.session === !!member.member ? session : initialMemberSession;
199
+ const finalMember = !!session.session === !!member.member ? member : initialMember;
200
+ return (React.createElement(StytchContext.Provider, { value: ctx },
201
+ React.createElement(StytchMemberContext.Provider, { value: finalMember },
202
+ React.createElement(StytchMemberSessionContext.Provider, { value: finalMemberSession }, children))));
203
+ };
204
+
205
+ function e(t) { return e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e; } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; }, e(t); }
206
+ function t(e) { return function (e) { if (Array.isArray(e))
207
+ return f(e); }(e) || function (e) { if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"])
208
+ return Array.from(e); }(e) || h(e) || function () { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }(); }
209
+ function r(e, t) { if ("function" != typeof t && null !== t)
210
+ throw new TypeError("Super expression must either be null or a function"); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, writable: !0, configurable: !0 } }), Object.defineProperty(e, "prototype", { writable: !1 }), t && n(e, t); }
211
+ function n(e, t) { return n = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (e, t) { return e.__proto__ = t, e; }, n(e, t); }
212
+ function o(t) { var r = function () { if ("undefined" == typeof Reflect || !Reflect.construct)
213
+ return !1; if (Reflect.construct.sham)
214
+ return !1; if ("function" == typeof Proxy)
215
+ return !0; try {
216
+ return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function () { }))), !0;
217
+ }
218
+ catch (e) {
219
+ return !1;
220
+ } }(); return function () { var n, o = i(t); if (r) {
221
+ var a = i(this).constructor;
222
+ n = Reflect.construct(o, arguments, a);
223
+ }
224
+ else
225
+ n = o.apply(this, arguments); return function (t, r) { if (r && ("object" === e(r) || "function" == typeof r))
226
+ return r; if (void 0 !== r)
227
+ throw new TypeError("Derived constructors may only return object or undefined"); return function (e) { if (void 0 === e)
228
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }(t); }(this, n); }; }
229
+ function i(e) { return i = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (e) { return e.__proto__ || Object.getPrototypeOf(e); }, i(e); }
230
+ function a() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ a = function () { return t; }; var t = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (e, t, r) { e[t] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, s = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function l(e, t, r) { return Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }), e[t]; } try {
231
+ l({}, "");
232
+ }
233
+ catch (e) {
234
+ l = function (e, t, r) { return e[t] = r; };
235
+ } function h(e, t, r, n) { var i = t && t.prototype instanceof p ? t : p, a = Object.create(i.prototype), s = new x(n || []); return o(a, "_invoke", { value: S(e, r, s) }), a; } function f(e, t, r) { try {
236
+ return { type: "normal", arg: e.call(t, r) };
237
+ }
238
+ catch (e) {
239
+ return { type: "throw", arg: e };
240
+ } } t.wrap = h; var d = {}; function p() { } function v() { } function m() { } var y = {}; l(y, s, (function () { return this; })); var _ = Object.getPrototypeOf, b = _ && _(_(C([]))); b && b !== r && n.call(b, s) && (y = b); var g = m.prototype = p.prototype = Object.create(y); function k(e) { ["next", "throw", "return"].forEach((function (t) { l(e, t, (function (e) { return this._invoke(t, e); })); })); } function w(t, r) { function i(o, a, s, c) { var u = f(t[o], t, a); if ("throw" !== u.type) {
241
+ var l = u.arg, h = l.value;
242
+ return h && "object" == e(h) && n.call(h, "__await") ? r.resolve(h.__await).then((function (e) { i("next", e, s, c); }), (function (e) { i("throw", e, s, c); })) : r.resolve(h).then((function (e) { l.value = e, s(l); }), (function (e) { return i("throw", e, s, c); }));
243
+ } c(u.arg); } var a; o(this, "_invoke", { value: function (e, t) { function n() { return new r((function (r, n) { i(e, t, r, n); })); } return a = a ? a.then(n, n) : n(); } }); } function S(e, t, r) { var n = "suspendedStart"; return function (o, i) { if ("executing" === n)
244
+ throw new Error("Generator is already running"); if ("completed" === n) {
245
+ if ("throw" === o)
246
+ throw i;
247
+ return P();
248
+ } for (r.method = o, r.arg = i;;) {
249
+ var a = r.delegate;
250
+ if (a) {
251
+ var s = O(a, r);
252
+ if (s) {
253
+ if (s === d)
254
+ continue;
255
+ return s;
256
+ }
257
+ }
258
+ if ("next" === r.method)
259
+ r.sent = r._sent = r.arg;
260
+ else if ("throw" === r.method) {
261
+ if ("suspendedStart" === n)
262
+ throw n = "completed", r.arg;
263
+ r.dispatchException(r.arg);
264
+ }
265
+ else
266
+ "return" === r.method && r.abrupt("return", r.arg);
267
+ n = "executing";
268
+ var c = f(e, t, r);
269
+ if ("normal" === c.type) {
270
+ if (n = r.done ? "completed" : "suspendedYield", c.arg === d)
271
+ continue;
272
+ return { value: c.arg, done: r.done };
273
+ }
274
+ "throw" === c.type && (n = "completed", r.method = "throw", r.arg = c.arg);
275
+ } }; } function O(e, t) { var r = t.method, n = e.iterator[r]; if (void 0 === n)
276
+ return t.delegate = null, "throw" === r && e.iterator.return && (t.method = "return", t.arg = void 0, O(e, t), "throw" === t.method) || "return" !== r && (t.method = "throw", t.arg = new TypeError("The iterator does not provide a '" + r + "' method")), d; var o = f(n, e.iterator, t.arg); if ("throw" === o.type)
277
+ return t.method = "throw", t.arg = o.arg, t.delegate = null, d; var i = o.arg; return i ? i.done ? (t[e.resultName] = i.value, t.next = e.nextLoc, "return" !== t.method && (t.method = "next", t.arg = void 0), t.delegate = null, d) : i : (t.method = "throw", t.arg = new TypeError("iterator result is not an object"), t.delegate = null, d); } function E(e) { var t = { tryLoc: e[0] }; 1 in e && (t.catchLoc = e[1]), 2 in e && (t.finallyLoc = e[2], t.afterLoc = e[3]), this.tryEntries.push(t); } function T(e) { var t = e.completion || {}; t.type = "normal", delete t.arg, e.completion = t; } function x(e) { this.tryEntries = [{ tryLoc: "root" }], e.forEach(E, this), this.reset(!0); } function C(e) { if (e) {
278
+ var t = e[s];
279
+ if (t)
280
+ return t.call(e);
281
+ if ("function" == typeof e.next)
282
+ return e;
283
+ if (!isNaN(e.length)) {
284
+ var r = -1, o = function t() { for (; ++r < e.length;)
285
+ if (n.call(e, r))
286
+ return t.value = e[r], t.done = !1, t; return t.value = void 0, t.done = !0, t; };
287
+ return o.next = o;
288
+ }
289
+ } return { next: P }; } function P() { return { value: void 0, done: !0 }; } return v.prototype = m, o(g, "constructor", { value: m, configurable: !0 }), o(m, "constructor", { value: v, configurable: !0 }), v.displayName = l(m, u, "GeneratorFunction"), t.isGeneratorFunction = function (e) { var t = "function" == typeof e && e.constructor; return !!t && (t === v || "GeneratorFunction" === (t.displayName || t.name)); }, t.mark = function (e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, m) : (e.__proto__ = m, l(e, u, "GeneratorFunction")), e.prototype = Object.create(g), e; }, t.awrap = function (e) { return { __await: e }; }, k(w.prototype), l(w.prototype, c, (function () { return this; })), t.AsyncIterator = w, t.async = function (e, r, n, o, i) { void 0 === i && (i = Promise); var a = new w(h(e, r, n, o), i); return t.isGeneratorFunction(r) ? a : a.next().then((function (e) { return e.done ? e.value : a.next(); })); }, k(g), l(g, u, "Generator"), l(g, s, (function () { return this; })), l(g, "toString", (function () { return "[object Generator]"; })), t.keys = function (e) { var t = Object(e), r = []; for (var n in t)
290
+ r.push(n); return r.reverse(), function e() { for (; r.length;) {
291
+ var n = r.pop();
292
+ if (n in t)
293
+ return e.value = n, e.done = !1, e;
294
+ } return e.done = !0, e; }; }, t.values = C, x.prototype = { constructor: x, reset: function (e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = void 0, this.done = !1, this.delegate = null, this.method = "next", this.arg = void 0, this.tryEntries.forEach(T), !e)
295
+ for (var t in this)
296
+ "t" === t.charAt(0) && n.call(this, t) && !isNaN(+t.slice(1)) && (this[t] = void 0); }, stop: function () { this.done = !0; var e = this.tryEntries[0].completion; if ("throw" === e.type)
297
+ throw e.arg; return this.rval; }, dispatchException: function (e) { if (this.done)
298
+ throw e; var t = this; function r(r, n) { return a.type = "throw", a.arg = e, t.next = r, n && (t.method = "next", t.arg = void 0), !!n; } for (var o = this.tryEntries.length - 1; o >= 0; --o) {
299
+ var i = this.tryEntries[o], a = i.completion;
300
+ if ("root" === i.tryLoc)
301
+ return r("end");
302
+ if (i.tryLoc <= this.prev) {
303
+ var s = n.call(i, "catchLoc"), c = n.call(i, "finallyLoc");
304
+ if (s && c) {
305
+ if (this.prev < i.catchLoc)
306
+ return r(i.catchLoc, !0);
307
+ if (this.prev < i.finallyLoc)
308
+ return r(i.finallyLoc);
309
+ }
310
+ else if (s) {
311
+ if (this.prev < i.catchLoc)
312
+ return r(i.catchLoc, !0);
313
+ }
314
+ else {
315
+ if (!c)
316
+ throw new Error("try statement without catch or finally");
317
+ if (this.prev < i.finallyLoc)
318
+ return r(i.finallyLoc);
319
+ }
320
+ }
321
+ } }, abrupt: function (e, t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) {
322
+ var o = this.tryEntries[r];
323
+ if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
324
+ var i = o;
325
+ break;
326
+ }
327
+ } i && ("break" === e || "continue" === e) && i.tryLoc <= t && t <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = e, a.arg = t, i ? (this.method = "next", this.next = i.finallyLoc, d) : this.complete(a); }, complete: function (e, t) { if ("throw" === e.type)
328
+ throw e.arg; return "break" === e.type || "continue" === e.type ? this.next = e.arg : "return" === e.type ? (this.rval = this.arg = e.arg, this.method = "return", this.next = "end") : "normal" === e.type && t && (this.next = t), d; }, finish: function (e) { for (var t = this.tryEntries.length - 1; t >= 0; --t) {
329
+ var r = this.tryEntries[t];
330
+ if (r.finallyLoc === e)
331
+ return this.complete(r.completion, r.afterLoc), T(r), d;
332
+ } }, catch: function (e) { for (var t = this.tryEntries.length - 1; t >= 0; --t) {
333
+ var r = this.tryEntries[t];
334
+ if (r.tryLoc === e) {
335
+ var n = r.completion;
336
+ if ("throw" === n.type) {
337
+ var o = n.arg;
338
+ T(r);
339
+ }
340
+ return o;
341
+ }
342
+ } throw new Error("illegal catch attempt"); }, delegateYield: function (e, t, r) { return this.delegate = { iterator: C(e), resultName: t, nextLoc: r }, "next" === this.method && (this.arg = void 0), d; } }, t; }
343
+ function s(e, t) { if (!(e instanceof t))
344
+ throw new TypeError("Cannot call a class as a function"); }
345
+ function c(e, t) { for (var r = 0; r < t.length; r++) {
346
+ var n = t[r];
347
+ n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, d(n.key), n);
348
+ } }
349
+ function u(e, t, r) { return t && c(e.prototype, t), r && c(e, r), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
350
+ function l(e, t) { return function (e) { if (Array.isArray(e))
351
+ return e; }(e) || function (e, t) { var r = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != r) {
352
+ var n, o, i, a, s = [], c = !0, u = !1;
353
+ try {
354
+ if (i = (r = r.call(e)).next, 0 === t) {
355
+ if (Object(r) !== r)
356
+ return;
357
+ c = !1;
358
+ }
359
+ else
360
+ for (; !(c = (n = i.call(r)).done) && (s.push(n.value), s.length !== t); c = !0)
361
+ ;
362
+ }
363
+ catch (e) {
364
+ u = !0, o = e;
365
+ }
366
+ finally {
367
+ try {
368
+ if (!c && null != r.return && (a = r.return(), Object(a) !== a))
369
+ return;
370
+ }
371
+ finally {
372
+ if (u)
373
+ throw o;
374
+ }
375
+ }
376
+ return s;
377
+ } }(e, t) || h(e, t) || function () { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }(); }
378
+ function h(e, t) { if (e) {
379
+ if ("string" == typeof e)
380
+ return f(e, t);
381
+ var r = Object.prototype.toString.call(e).slice(8, -1);
382
+ return "Object" === r && e.constructor && (r = e.constructor.name), "Map" === r || "Set" === r ? Array.from(e) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? f(e, t) : void 0;
383
+ } }
384
+ function f(e, t) { (null == t || t > e.length) && (t = e.length); for (var r = 0, n = new Array(t); r < t; r++)
385
+ n[r] = e[r]; return n; }
386
+ function d(t) { var r = function (t, r) { if ("object" !== e(t) || null === t)
387
+ return t; var n = t[Symbol.toPrimitive]; if (void 0 !== n) {
388
+ var o = n.call(t, r || "default");
389
+ if ("object" !== e(o))
390
+ return o;
391
+ throw new TypeError("@@toPrimitive must return a primitive value.");
392
+ } return ("string" === r ? String : Number)(t); }(t, "string"); return "symbol" === e(r) ? r : String(r); }
393
+ function p(e, t) { return function (e) { if (Array.isArray(e))
394
+ return e; }(e) || function (e, t) { var r = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != r) {
395
+ var n, o, i, a, s = [], c = !0, u = !1;
396
+ try {
397
+ if (i = (r = r.call(e)).next, 0 === t) {
398
+ if (Object(r) !== r)
399
+ return;
400
+ c = !1;
401
+ }
402
+ else
403
+ for (; !(c = (n = i.call(r)).done) && (s.push(n.value), s.length !== t); c = !0)
404
+ ;
405
+ }
406
+ catch (e) {
407
+ u = !0, o = e;
408
+ }
409
+ finally {
410
+ try {
411
+ if (!c && null != r.return && (a = r.return(), Object(a) !== a))
412
+ return;
413
+ }
414
+ finally {
415
+ if (u)
416
+ throw o;
417
+ }
418
+ }
419
+ return s;
420
+ } }(e, t) || m(e, t) || function () { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }(); }
421
+ function v(e) { return v = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e; } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; }, v(e); }
422
+ function m(e, t) { if (e) {
423
+ if ("string" == typeof e)
424
+ return y(e, t);
425
+ var r = Object.prototype.toString.call(e).slice(8, -1);
426
+ return "Object" === r && e.constructor && (r = e.constructor.name), "Map" === r || "Set" === r ? Array.from(e) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? y(e, t) : void 0;
427
+ } }
428
+ function y(e, t) { (null == t || t > e.length) && (t = e.length); for (var r = 0, n = new Array(t); r < t; r++)
429
+ n[r] = e[r]; return n; }
430
+ function _() {
431
+ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
432
+ _ = function () { return e; };
433
+ var e = {}, t = Object.prototype, r = t.hasOwnProperty, n = Object.defineProperty || function (e, t, r) { e[t] = r.value; }, o = "function" == typeof Symbol ? Symbol : {}, i = o.iterator || "@@iterator", a = o.asyncIterator || "@@asyncIterator", s = o.toStringTag || "@@toStringTag";
434
+ function c(e, t, r) { return Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }), e[t]; }
435
+ try {
436
+ c({}, "");
437
+ }
438
+ catch (e) {
439
+ c = function (e, t, r) { return e[t] = r; };
440
+ }
441
+ function u(e, t, r, o) { var i = t && t.prototype instanceof f ? t : f, a = Object.create(i.prototype), s = new x(o || []); return n(a, "_invoke", { value: S(e, r, s) }), a; }
442
+ function l(e, t, r) { try {
443
+ return { type: "normal", arg: e.call(t, r) };
444
+ }
445
+ catch (e) {
446
+ return { type: "throw", arg: e };
447
+ } }
448
+ e.wrap = u;
449
+ var h = {};
450
+ function f() { }
451
+ function d() { }
452
+ function p() { }
453
+ var m = {};
454
+ c(m, i, (function () { return this; }));
455
+ var y = Object.getPrototypeOf, b = y && y(y(C([])));
456
+ b && b !== t && r.call(b, i) && (m = b);
457
+ var g = p.prototype = f.prototype = Object.create(m);
458
+ function k(e) { ["next", "throw", "return"].forEach((function (t) { c(e, t, (function (e) { return this._invoke(t, e); })); })); }
459
+ function w(e, t) { function o(n, i, a, s) { var c = l(e[n], e, i); if ("throw" !== c.type) {
460
+ var u = c.arg, h = u.value;
461
+ return h && "object" == v(h) && r.call(h, "__await") ? t.resolve(h.__await).then((function (e) { o("next", e, a, s); }), (function (e) { o("throw", e, a, s); })) : t.resolve(h).then((function (e) { u.value = e, a(u); }), (function (e) { return o("throw", e, a, s); }));
462
+ } s(c.arg); } var i; n(this, "_invoke", { value: function (e, r) { function n() { return new t((function (t, n) { o(e, r, t, n); })); } return i = i ? i.then(n, n) : n(); } }); }
463
+ function S(e, t, r) { var n = "suspendedStart"; return function (o, i) { if ("executing" === n)
464
+ throw new Error("Generator is already running"); if ("completed" === n) {
465
+ if ("throw" === o)
466
+ throw i;
467
+ return P();
468
+ } for (r.method = o, r.arg = i;;) {
469
+ var a = r.delegate;
470
+ if (a) {
471
+ var s = O(a, r);
472
+ if (s) {
473
+ if (s === h)
474
+ continue;
475
+ return s;
476
+ }
477
+ }
478
+ if ("next" === r.method)
479
+ r.sent = r._sent = r.arg;
480
+ else if ("throw" === r.method) {
481
+ if ("suspendedStart" === n)
482
+ throw n = "completed", r.arg;
483
+ r.dispatchException(r.arg);
484
+ }
485
+ else
486
+ "return" === r.method && r.abrupt("return", r.arg);
487
+ n = "executing";
488
+ var c = l(e, t, r);
489
+ if ("normal" === c.type) {
490
+ if (n = r.done ? "completed" : "suspendedYield", c.arg === h)
491
+ continue;
492
+ return { value: c.arg, done: r.done };
493
+ }
494
+ "throw" === c.type && (n = "completed", r.method = "throw", r.arg = c.arg);
495
+ } }; }
496
+ function O(e, t) { var r = t.method, n = e.iterator[r]; if (void 0 === n)
497
+ return t.delegate = null, "throw" === r && e.iterator.return && (t.method = "return", t.arg = void 0, O(e, t), "throw" === t.method) || "return" !== r && (t.method = "throw", t.arg = new TypeError("The iterator does not provide a '" + r + "' method")), h; var o = l(n, e.iterator, t.arg); if ("throw" === o.type)
498
+ return t.method = "throw", t.arg = o.arg, t.delegate = null, h; var i = o.arg; return i ? i.done ? (t[e.resultName] = i.value, t.next = e.nextLoc, "return" !== t.method && (t.method = "next", t.arg = void 0), t.delegate = null, h) : i : (t.method = "throw", t.arg = new TypeError("iterator result is not an object"), t.delegate = null, h); }
499
+ function E(e) { var t = { tryLoc: e[0] }; 1 in e && (t.catchLoc = e[1]), 2 in e && (t.finallyLoc = e[2], t.afterLoc = e[3]), this.tryEntries.push(t); }
500
+ function T(e) { var t = e.completion || {}; t.type = "normal", delete t.arg, e.completion = t; }
501
+ function x(e) { this.tryEntries = [{ tryLoc: "root" }], e.forEach(E, this), this.reset(!0); }
502
+ function C(e) { if (e) {
503
+ var t = e[i];
504
+ if (t)
505
+ return t.call(e);
506
+ if ("function" == typeof e.next)
507
+ return e;
508
+ if (!isNaN(e.length)) {
509
+ var n = -1, o = function t() { for (; ++n < e.length;)
510
+ if (r.call(e, n))
511
+ return t.value = e[n], t.done = !1, t; return t.value = void 0, t.done = !0, t; };
512
+ return o.next = o;
513
+ }
514
+ } return { next: P }; }
515
+ function P() { return { value: void 0, done: !0 }; }
516
+ return d.prototype = p, n(g, "constructor", { value: p, configurable: !0 }), n(p, "constructor", { value: d, configurable: !0 }), d.displayName = c(p, s, "GeneratorFunction"), e.isGeneratorFunction = function (e) { var t = "function" == typeof e && e.constructor; return !!t && (t === d || "GeneratorFunction" === (t.displayName || t.name)); }, e.mark = function (e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, p) : (e.__proto__ = p, c(e, s, "GeneratorFunction")), e.prototype = Object.create(g), e; }, e.awrap = function (e) { return { __await: e }; }, k(w.prototype), c(w.prototype, a, (function () { return this; })), e.AsyncIterator = w, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new w(u(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then((function (e) { return e.done ? e.value : a.next(); })); }, k(g), c(g, s, "Generator"), c(g, i, (function () { return this; })), c(g, "toString", (function () { return "[object Generator]"; })), e.keys = function (e) { var t = Object(e), r = []; for (var n in t)
517
+ r.push(n); return r.reverse(), function e() { for (; r.length;) {
518
+ var n = r.pop();
519
+ if (n in t)
520
+ return e.value = n, e.done = !1, e;
521
+ } return e.done = !0, e; }; }, e.values = C, x.prototype = { constructor: x, reset: function (e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = void 0, this.done = !1, this.delegate = null, this.method = "next", this.arg = void 0, this.tryEntries.forEach(T), !e)
522
+ for (var t in this)
523
+ "t" === t.charAt(0) && r.call(this, t) && !isNaN(+t.slice(1)) && (this[t] = void 0); }, stop: function () { this.done = !0; var e = this.tryEntries[0].completion; if ("throw" === e.type)
524
+ throw e.arg; return this.rval; }, dispatchException: function (e) { if (this.done)
525
+ throw e; var t = this; function n(r, n) { return a.type = "throw", a.arg = e, t.next = r, n && (t.method = "next", t.arg = void 0), !!n; } for (var o = this.tryEntries.length - 1; o >= 0; --o) {
526
+ var i = this.tryEntries[o], a = i.completion;
527
+ if ("root" === i.tryLoc)
528
+ return n("end");
529
+ if (i.tryLoc <= this.prev) {
530
+ var s = r.call(i, "catchLoc"), c = r.call(i, "finallyLoc");
531
+ if (s && c) {
532
+ if (this.prev < i.catchLoc)
533
+ return n(i.catchLoc, !0);
534
+ if (this.prev < i.finallyLoc)
535
+ return n(i.finallyLoc);
536
+ }
537
+ else if (s) {
538
+ if (this.prev < i.catchLoc)
539
+ return n(i.catchLoc, !0);
540
+ }
541
+ else {
542
+ if (!c)
543
+ throw new Error("try statement without catch or finally");
544
+ if (this.prev < i.finallyLoc)
545
+ return n(i.finallyLoc);
546
+ }
547
+ }
548
+ } }, abrupt: function (e, t) { for (var n = this.tryEntries.length - 1; n >= 0; --n) {
549
+ var o = this.tryEntries[n];
550
+ if (o.tryLoc <= this.prev && r.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
551
+ var i = o;
552
+ break;
553
+ }
554
+ } i && ("break" === e || "continue" === e) && i.tryLoc <= t && t <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = e, a.arg = t, i ? (this.method = "next", this.next = i.finallyLoc, h) : this.complete(a); }, complete: function (e, t) { if ("throw" === e.type)
555
+ throw e.arg; return "break" === e.type || "continue" === e.type ? this.next = e.arg : "return" === e.type ? (this.rval = this.arg = e.arg, this.method = "return", this.next = "end") : "normal" === e.type && t && (this.next = t), h; }, finish: function (e) { for (var t = this.tryEntries.length - 1; t >= 0; --t) {
556
+ var r = this.tryEntries[t];
557
+ if (r.finallyLoc === e)
558
+ return this.complete(r.completion, r.afterLoc), T(r), h;
559
+ } }, catch: function (e) { for (var t = this.tryEntries.length - 1; t >= 0; --t) {
560
+ var r = this.tryEntries[t];
561
+ if (r.tryLoc === e) {
562
+ var n = r.completion;
563
+ if ("throw" === n.type) {
564
+ var o = n.arg;
565
+ T(r);
566
+ }
567
+ return o;
568
+ }
569
+ } throw new Error("illegal catch attempt"); }, delegateYield: function (e, t, r) { return this.delegate = { iterator: C(e), resultName: t, nextLoc: r }, "next" === this.method && (this.arg = void 0), h; } }, e;
570
+ }
571
+ function b(e, t) { for (var r = 0; r < t.length; r++) {
572
+ var n = t[r];
573
+ n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, (o = n.key, i = void 0, i = function (e, t) { if ("object" !== v(e) || null === e)
574
+ return e; var r = e[Symbol.toPrimitive]; if (void 0 !== r) {
575
+ var n = r.call(e, t || "default");
576
+ if ("object" !== v(n))
577
+ return n;
578
+ throw new TypeError("@@toPrimitive must return a primitive value.");
579
+ } return ("string" === t ? String : Number)(e); }(o, "string"), "symbol" === v(i) ? i : String(i)), n);
580
+ } var o, i; }
581
+ function g(e, t, r) { return t && b(e.prototype, t), r && b(e, r), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
582
+ function k(e, t) { if (!(e instanceof t))
583
+ throw new TypeError("Cannot call a class as a function"); }
584
+ function w(e, t) { if ("function" != typeof t && null !== t)
585
+ throw new TypeError("Super expression must either be null or a function"); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, writable: !0, configurable: !0 } }), Object.defineProperty(e, "prototype", { writable: !1 }), t && C(e, t); }
586
+ function S(e) { var t = x(); return function () { var r, n = P(e); if (t) {
587
+ var o = P(this).constructor;
588
+ r = Reflect.construct(n, arguments, o);
589
+ }
590
+ else
591
+ r = n.apply(this, arguments); return function (e, t) { if (t && ("object" === v(t) || "function" == typeof t))
592
+ return t; if (void 0 !== t)
593
+ throw new TypeError("Derived constructors may only return object or undefined"); return O(e); }(this, r); }; }
594
+ function O(e) { if (void 0 === e)
595
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
596
+ function E(e) { var t = "function" == typeof Map ? new Map : void 0; return E = function (e) { if (null === e || (r = e, -1 === Function.toString.call(r).indexOf("[native code]")))
597
+ return e; var r; if ("function" != typeof e)
598
+ throw new TypeError("Super expression must either be null or a function"); if (void 0 !== t) {
599
+ if (t.has(e))
600
+ return t.get(e);
601
+ t.set(e, n);
602
+ } function n() { return T(e, arguments, P(this).constructor); } return n.prototype = Object.create(e.prototype, { constructor: { value: n, enumerable: !1, writable: !0, configurable: !0 } }), C(n, e); }, E(e); }
603
+ function T(e, t, r) { return T = x() ? Reflect.construct.bind() : function (e, t, r) { var n = [null]; n.push.apply(n, t); var o = new (Function.bind.apply(e, n)); return r && C(o, r.prototype), o; }, T.apply(null, arguments); }
604
+ function x() { if ("undefined" == typeof Reflect || !Reflect.construct)
605
+ return !1; if (Reflect.construct.sham)
606
+ return !1; if ("function" == typeof Proxy)
607
+ return !0; try {
608
+ return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function () { }))), !0;
609
+ }
610
+ catch (e) {
611
+ return !1;
612
+ } }
613
+ function C(e, t) { return C = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (e, t) { return e.__proto__ = t, e; }, C(e, t); }
614
+ function P(e) { return P = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (e) { return e.__proto__ || Object.getPrototypeOf(e); }, P(e); }
615
+ var L, j, A, R, I, N;
616
+ !function (e) { e.emailMagicLinks = "emailMagicLinks", e.oauth = "oauth", e.otp = "otp", e.crypto = "crypto", e.passwords = "passwords"; }(L || (L = {})), function (e) { e.Google = "google", e.Microsoft = "microsoft", e.Apple = "apple", e.Github = "github", e.GitLab = "gitlab", e.Facebook = "facebook", e.Discord = "discord", e.Slack = "slack", e.Amazon = "amazon", e.Bitbucket = "bitbucket", e.LinkedIn = "linkedin", e.Coinbase = "coinbase", e.Twitch = "twitch"; }(j || (j = {})), function (e) { e.Vessel = "Vessel", e.Phantom = "Phantom", e.Metamask = "Metamask", e.Coinbase = "Coinbase", e.Binance = "Binance", e.GenericEthereumWallet = "Other Ethereum Wallet", e.GenericSolanaWallet = "Other Solana Wallet"; }(A || (A = {})), function (e) { e.embedded = "embedded", e.floating = "floating"; }(R || (R = {})), function (e) { e.SMS = "sms", e.WhatsApp = "whatsapp", e.Email = "email"; }(I || (I = {})), function (e) { e.MagicLinkLoginOrCreateEvent = "MAGIC_LINK_LOGIN_OR_CREATE", e.OTPsLoginOrCreateEvent = "OTP_LOGIN_OR_CREATE", e.OTPsAuthenticate = "OTP_AUTHENTICATE", e.CryptoWalletAuthenticateStart = "CRYPTO_WALLET_AUTHENTICATE_START", e.CryptoWalletAuthenticate = "CRYPTO_WALLET_AUTHENTICATE", e.PasswordCreate = "PASSWORD_CREATE", e.PasswordAuthenticate = "PASSWORD_AUTHENTICATE", e.PasswordResetByEmailStart = "PASSWORD_RESET_BY_EMAIL_START", e.PasswordResetByEmail = "PASSWORD_RESET_BY_EMAIL"; }(N || (N = {}));
617
+ var D, M, U = function (e) { w(r, E(Error)); var t = S(r); function r(e, n) { var o; return k(this, r), (o = t.call(this, e + "\n" + n)).message = e + "\n" + n, o.name = "SDKAPIUnreachableError", o.details = n, Object.setPrototypeOf(O(o), r.prototype), o; } return g(r); }(), B = function (e) { w(r, E(Error)); var t = S(r); function r(e, n) { var o; return k(this, r), (o = t.call(this)).name = "StytchSDKUsageError", o.message = "Invalid call to ".concat(e, "\n") + n, o; } return g(r); }(), K = function (e) { w(r, E(Error)); var t = S(r); function r(e) { var n, o; k(this, r), (n = t.call(this)).name = "StytchSDKSchemaError"; var i = null === (o = e.body) || void 0 === o ? void 0 : o.map((function (e) { return "".concat(e.dataPath, ": ").concat(e.message); })).join("\n"); return n.message = "[400] Request does not match expected schema\n".concat(i), n; } return g(r); }(), F = function (e) { w(r, E(Error)); var t = S(r); function r(e) { var n; k(this, r), (n = t.call(this)).name = "StytchSDKAPIError"; var o = e.status_code, i = e.error_type, a = e.error_message, s = e.error_url, c = e.request_id; return n.error_type = i, n.error_message = a, n.error_url = s, n.request_id = c, n.status_code = o, n.message = "[".concat(o, "] ").concat(i, "\n") + "".concat(a, "\n") + "See ".concat(s, " for more information.\n") + (c ? "request_id: ".concat(c, "\n") : ""), n; } return g(r); }(), q = ["unauthorized_credentials", "user_unauthenticated", "invalid_secret_authentication", "session_not_found"];
618
+ function z(e, t, r, n) { return new (r || (r = Promise))((function (o, i) { function a(e) { try {
619
+ c(n.next(e));
620
+ }
621
+ catch (e) {
622
+ i(e);
623
+ } } function s(e) { try {
624
+ c(n.throw(e));
625
+ }
626
+ catch (e) {
627
+ i(e);
628
+ } } function c(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof r ? t : new r((function (e) { e(t); }))).then(a, s); } c((n = n.apply(e, t || [])).next()); })); }
629
+ !function (e) { e.BiometricsSensorError = "biometrics_sensor_error", e.DeviceCredentialsNotAllowed = "device_credentials_not_allowed", e.DeviceHardwareError = "device_hardware_error", e.InternalError = "internal_error", e.KeyInvalidated = "key_invalidated", e.KeystoreUnavailable = "keystore_unavailable", e.NoBiometricsEnrolled = "no_biometrics_enrolled", e.NoBiometricsRegistration = "no_biometrics_registration", e.SessionExpired = "session_expired", e.UserCancellation = "user_cancellation", e.UserLockedOut = "user_locked_out"; }(D || (D = {}));
630
+ var G = new Uint8Array(16);
631
+ function W() { if (!M && !(M = "undefined" != typeof crypto && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || "undefined" != typeof msCrypto && "function" == typeof msCrypto.getRandomValues && msCrypto.getRandomValues.bind(msCrypto)))
632
+ throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported"); return M(G); }
633
+ var H = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
634
+ for (var V = [], Y = 0; Y < 256; ++Y)
635
+ V.push((Y + 256).toString(16).substr(1));
636
+ function J(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, r = (V[e[t + 0]] + V[e[t + 1]] + V[e[t + 2]] + V[e[t + 3]] + "-" + V[e[t + 4]] + V[e[t + 5]] + "-" + V[e[t + 6]] + V[e[t + 7]] + "-" + V[e[t + 8]] + V[e[t + 9]] + "-" + V[e[t + 10]] + V[e[t + 11]] + V[e[t + 12]] + V[e[t + 13]] + V[e[t + 14]] + V[e[t + 15]]).toLowerCase(); if (!function (e) { return "string" == typeof e && H.test(e); }(r))
637
+ throw TypeError("Stringified UUID is invalid"); return r; }
638
+ function $(e, t, r) { var n = (e = e || {}).random || (e.rng || W)(); if (n[6] = 15 & n[6] | 64, n[8] = 63 & n[8] | 128, t) {
639
+ r = r || 0;
640
+ for (var o = 0; o < 16; ++o)
641
+ t[r + o] = n[o];
642
+ return t;
643
+ } return J(n); }
644
+ var X = ["[Stytch]"], Z = { debug: function () { return false; }, log: function () { for (var e, t = arguments.length, r = new Array(t), n = 0; n < t; n++)
645
+ r[n] = arguments[n]; return (e = console).log.apply(e, X.concat(r)); }, warn: function () { for (var e, t = arguments.length, r = new Array(t), n = 0; n < t; n++)
646
+ r[n] = arguments[n]; return (e = console).warn.apply(e, X.concat(r)); }, error: function () { for (var e, t = arguments.length, r = new Array(t), n = 0; n < t; n++)
647
+ r[n] = arguments[n]; return (e = console).error.apply(e, X.concat(r)); } }, Q = "\nYou can find your public token at https://stytch.com/dashboard/api-keys.", ee = function (e) { var t = { isObject: function (r, n) { var o = "object" === v(n) && !Array.isArray(n) && null !== n; if (!o)
648
+ throw new B(e, r + " must be an object."); return t; }, isOptionalObject: function (e, r) { return void 0 === r ? t : t.isObject(e, r); }, isString: function (r, n) { if ("string" != typeof n)
649
+ throw new B(e, r + " must be a string."); return t; }, isOptionalString: function (e, r) { return void 0 === r ? t : t.isString(e, r); }, isStringArray: function (r, n) { if (!Array.isArray(n))
650
+ throw new B(e, r + " must be an array of strings."); var o, i = function (e, t) { var r = "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (!r) {
651
+ if (Array.isArray(e) || (r = m(e)) || t && e && "number" == typeof e.length) {
652
+ r && (e = r);
653
+ var n = 0, o = function () { };
654
+ return { s: o, n: function () { return n >= e.length ? { done: !0 } : { done: !1, value: e[n++] }; }, e: function (e) { throw e; }, f: o };
655
+ }
656
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
657
+ } var i, a = !0, s = !1; return { s: function () { r = r.call(e); }, n: function () { var e = r.next(); return a = e.done, e; }, e: function (e) { s = !0, i = e; }, f: function () { try {
658
+ a || null == r.return || r.return();
659
+ }
660
+ finally {
661
+ if (s)
662
+ throw i;
663
+ } } }; }(n); try {
664
+ for (i.s(); !(o = i.n()).done;) {
665
+ if ("string" != typeof o.value)
666
+ throw new B(e, r + " must be an array of strings.");
667
+ }
668
+ }
669
+ catch (e) {
670
+ i.e(e);
671
+ }
672
+ finally {
673
+ i.f();
674
+ } return t; }, isOptionalStringArray: function (e, r) { return void 0 === r ? t : t.isStringArray(e, r); }, isNumber: function (r, n) { if ("number" != typeof n)
675
+ throw new B(e, r + " must be a number."); return t; }, isOptionalNumber: function (e, r) { return void 0 === r ? t : t.isNumber(e, r); } }; return t; };
676
+ function te(e) { var t = e.method, r = e.errorMessage, n = e.finalURL, o = e.basicAuthHeader, i = e.xSDKClientHeader, a = e.xSDKParentHostHeader, s = e.body; return z(this, void 0, void 0, _().mark((function e() { var c, u, l, h, f; return _().wrap((function (e) { for (;;)
677
+ switch (e.prev = e.next) {
678
+ case 0: return c = { Authorization: o, "Content-Type": "application/json", "X-SDK-Client": i }, a && (c["X-SDK-Parent-Host"] = a), u = { method: t, headers: c, body: s && JSON.stringify(s) }, e.prev = 3, e.next = 6, fetch(n, u);
679
+ case 6:
680
+ l = e.sent, e.next = 14;
681
+ break;
682
+ case 9:
683
+ if (e.prev = 9, e.t0 = e.catch(3), "Failed to fetch" !== e.t0.message) {
684
+ e.next = 13;
685
+ break;
686
+ }
687
+ throw new U(r, "Unable to contact the Stytch servers. Are you online?");
688
+ case 13: throw e.t0;
689
+ case 14:
690
+ if (200 === l.status) {
691
+ e.next = 27;
692
+ break;
693
+ }
694
+ return e.prev = 15, e.next = 18, l.json();
695
+ case 18:
696
+ h = e.sent, e.next = 24;
697
+ break;
698
+ case 21: throw e.prev = 21, e.t1 = e.catch(15), new U(r, "Invalid or no response from server");
699
+ case 24:
700
+ if (!("body" in h || "params" in h || "query" in h)) {
701
+ e.next = 26;
702
+ break;
703
+ }
704
+ throw new K(h);
705
+ case 26: throw new F(h);
706
+ case 27: return e.prev = 27, e.next = 30, l.json();
707
+ case 30: return f = e.sent, e.abrupt("return", f.data);
708
+ case 34: throw e.prev = 34, e.t2 = e.catch(27), new U(r, "Invalid response from the Stytch servers.");
709
+ case 37:
710
+ case "end": return e.stop();
711
+ } }), e, null, [[3, 9], [15, 21], [27, 34]]); }))); }
712
+ var re = function () { function e(t, r) { var n = this; k(this, e), this._subscriptionService = t, this._headlessSessionClient = r, this._onDataChange = function (e) { (null == e ? void 0 : e.session) ? n.scheduleBackgroundRefresh() : n.cancelBackgroundRefresh(); }, this._reauthenticateWithBackoff = function () { var t = function (t) { return function (r) { return e.isUnrecoverableError(r) ? Promise.reject(r) : new Promise((function (r) { return setTimeout(r, e.timeoutForAttempt(t)); })).then((function () { return n._headlessSessionClient.authenticate(); })); }; }; return n._headlessSessionClient.authenticate().catch(t(0)).catch(t(1)).catch(t(2)).catch(t(3)).catch(t(4)); }, this.timeout = null, this._subscriptionService.subscribeToState(this._onDataChange); } return g(e, [{ key: "performBackgroundRefresh", value: function () { var e = this; this._reauthenticateWithBackoff().then((function () { e.scheduleBackgroundRefresh(); })).catch((function () { Z.warn("Session background refresh failed. Signalling to app that user is logged out."), e._subscriptionService.destroyState(); })); } }, { key: "scheduleBackgroundRefresh", value: function () { var t = this; this.cancelBackgroundRefresh(), this.timeout = setTimeout((function () { t.performBackgroundRefresh(); }), e.REFRESH_INTERVAL_MS); } }, { key: "cancelBackgroundRefresh", value: function () { null !== this.timeout && (clearTimeout(this.timeout), this.timeout = null); } }], [{ key: "timeoutForAttempt", value: function (e) { return Math.floor(350 * Math.random()) - 175 + 2e3 * Math.pow(2, e); } }, { key: "isUnrecoverableError", value: function (e) { return q.includes(e.error_type); } }]), e; }();
713
+ re.REFRESH_INTERVAL_MS = 18e4;
714
+ var ne = 15, oe = 800, ie = function () { function e(t) { k(this, e), this.maxBatchSize = t.maxBatchSize, this.logEventURL = t.logEventURL, setInterval(this.flush.bind(this), t.intervalDurationMs), this.batch = []; } return g(e, [{ key: "logEvent", value: function (e, t) { this.batch.push({ telemetry: e, event: t }), this.batch.length >= this.maxBatchSize && this.flush(); } }, { key: "flush", value: function () { return z(this, void 0, void 0, _().mark((function e() { var t; return _().wrap((function (e) { for (;;)
715
+ switch (e.prev = e.next) {
716
+ case 0:
717
+ if (this.batch.length) {
718
+ e.next = 2;
719
+ break;
720
+ }
721
+ return e.abrupt("return");
722
+ case 2: return t = this.batch, this.batch = [], e.prev = 4, e.next = 7, fetch(this.logEventURL, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(t) });
723
+ case 7:
724
+ e.next = 11;
725
+ break;
726
+ case 9: e.prev = 9, e.t0 = e.catch(4);
727
+ case 11:
728
+ case "end": return e.stop();
729
+ } }), e, this, [[4, 9]]); }))); } }]), e; }();
730
+ Promise.resolve({ pkceRequiredForEmailMagicLinks: !1 }), Promise.resolve({ pkceRequiredForPasswordResets: !1 });
731
+ var ae = Promise.resolve({ pkceRequiredForEmailMagicLinks: !1 }), se = function () { function e(t, r, n) { var o = this, i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : ae; k(this, e), this._networkClient = t, this._subscriptionService = r, this._pkceManager = n, this._config = i, this.email = { loginOrSignup: function (e) { return z(o, void 0, void 0, _().mark((function t() { var r, n; return _().wrap((function (t) { for (;;)
732
+ switch (t.prev = t.next) {
733
+ case 0: return ee("stytch.magicLinks.email.loginOrSignup").isString("email", e.email_address).isString("organization_id", e.organization_id).isOptionalString("login_redirect_url", e.login_redirect_url).isOptionalString("login_template_id", e.login_template_id).isOptionalString("signup_redirect_url", e.signup_redirect_url).isOptionalString("signup_template_id", e.signup_template_id), t.next = 3, this.getCodeChallenge();
734
+ case 3: return r = t.sent, n = Object.assign(Object.assign({}, e), { pkce_code_challenge: r }), t.abrupt("return", this._networkClient.fetchSDK({ url: "/b2b/magic_links/email/login_or_signup", body: n, errorMessage: "Failed to send magic link", method: "POST" }));
735
+ case 6:
736
+ case "end": return t.stop();
737
+ } }), t, this); }))); }, discovery: { send: function (e) { return z(o, void 0, void 0, _().mark((function t() { var r, n; return _().wrap((function (t) { for (;;)
738
+ switch (t.prev = t.next) {
739
+ case 0: return ee("stytch.magicLinks.email.discovery.send").isString("email_address", e.email_address).isOptionalString("discovery_redirect_url", e.discovery_redirect_url).isOptionalString("login_template_id", e.login_template_id), t.next = 3, this.getCodeChallenge();
740
+ case 3: return r = t.sent, n = Object.assign(Object.assign({}, e), { pkce_code_challenge: r }), t.abrupt("return", this._networkClient.fetchSDK({ url: "/b2b/magic_links/email/discovery/send", body: n, errorMessage: "Failed to send discovery magic link", method: "POST" }));
741
+ case 6:
742
+ case "end": return t.stop();
743
+ } }), t, this); }))); } } }, this.authenticate = function (e) { return z(o, void 0, void 0, _().mark((function t() { var r, n, o; return _().wrap((function (t) { for (;;)
744
+ switch (t.prev = t.next) {
745
+ case 0: return ee("stytch.magicLinks.authenticate").isString("magic_links_token", e.magic_links_token).isNumber("session_duration_minutes", e.session_duration_minutes), t.next = 3, this._pkceManager.getPKPair();
746
+ case 3: return r = t.sent, n = Object.assign({ pkce_code_verifier: null == r ? void 0 : r.code_verifier }, e), t.next = 7, this._networkClient.fetchSDK({ url: "/b2b/magic_links/authenticate", body: n, errorMessage: "Failed to authenticate token", method: "POST" });
747
+ case 7: return o = t.sent, this._pkceManager.clearPKPair(), this._subscriptionService.updateStateAndTokens({ state: { session: o.member_session, member: o.member }, session_token: o.session_token, session_jwt: o.session_jwt }), t.abrupt("return", o);
748
+ case 11:
749
+ case "end": return t.stop();
750
+ } }), t, this); }))); }, this.discovery = { authenticate: function (e) { return z(o, void 0, void 0, _().mark((function t() { var r, n, o; return _().wrap((function (t) { for (;;)
751
+ switch (t.prev = t.next) {
752
+ case 0: return ee("stytch.magicLinks.discovery.authenticate").isString("discovery_magic_links_token", e.discovery_magic_links_token), t.next = 3, this._pkceManager.getPKPair();
753
+ case 3: return r = t.sent, n = Object.assign({ pkce_code_verifier: null == r ? void 0 : r.code_verifier }, e), t.next = 7, this._networkClient.fetchSDK({ url: "/b2b/magic_links/discovery/authenticate", body: n, errorMessage: "Failed to authenticate intermediate magic link token", method: "POST" });
754
+ case 7: return o = t.sent, this._pkceManager.clearPKPair(), t.abrupt("return", o);
755
+ case 10:
756
+ case "end": return t.stop();
757
+ } }), t, this); }))); } }; } return g(e, [{ key: "getCodeChallenge", value: function () { return z(this, void 0, void 0, _().mark((function e() { var t, r; return _().wrap((function (e) { for (;;)
758
+ switch (e.prev = e.next) {
759
+ case 0: return e.next = 2, this._config;
760
+ case 2:
761
+ if (t = e.sent, t.pkceRequiredForEmailMagicLinks) {
762
+ e.next = 6;
763
+ break;
764
+ }
765
+ return e.abrupt("return", void 0);
766
+ case 6: return e.next = 8, this._pkceManager.getPKPair();
767
+ case 8:
768
+ if (!(r = e.sent)) {
769
+ e.next = 11;
770
+ break;
771
+ }
772
+ return e.abrupt("return", r.code_challenge);
773
+ case 11: return e.next = 13, this._pkceManager.startPKCETransaction();
774
+ case 13: return r = e.sent, e.abrupt("return", r.code_challenge);
775
+ case 15:
776
+ case "end": return e.stop();
777
+ } }), e, this); }))); } }]), e; }(), ce = g((function e(t, r) { var n = this; k(this, e), this._networkClient = t, this._subscriptionService = r, this.get = function () { return z(n, void 0, void 0, _().mark((function e() { var t; return _().wrap((function (e) { for (;;)
778
+ switch (e.prev = e.next) {
779
+ case 0: return e.next = 2, this._networkClient.fetchSDK({ url: "/b2b/organizations/members/me", errorMessage: "Failed to retrieve member info.", method: "GET" });
780
+ case 2: return t = e.sent, this._subscriptionService.updateMember(t.member), e.abrupt("return", t.member);
781
+ case 5:
782
+ case "end": return e.stop();
783
+ } }), e, this); }))); }, this.getSync = function () { return n._subscriptionService.getMember(); }, this.onChange = function (e) { return n._subscriptionService.subscribeToState((function (t) { var r; return e(null !== (r = null == t ? void 0 : t.member) && void 0 !== r ? r : null); })); }; })), ue = function () { function e(t, r, n, o, i) { k(this, e), this._networkClient = t, this._subscriptionService = r, this._pkceManager = n, this._dynamicConfig = o, this._config = i; } return g(e, [{ key: "authenticate", value: function (e) { return z(this, void 0, void 0, _().mark((function t() { var r, n; return _().wrap((function (t) { for (;;)
784
+ switch (t.prev = t.next) {
785
+ case 0: return ee("stytch.sso.authenticate").isString("sso_token", e.sso_token).isNumber("session_duration_minutes", e.session_duration_minutes), t.next = 3, this._pkceManager.getPKPair();
786
+ case 3: return (r = t.sent) || Z.warn("No code verifier found in local storage for SSO flow.\nConsider using stytch.oauth.$provider.start() to add PKCE to your OAuth flows for added security.\nSee https://stytch.com/docs/oauth#guides_pkce for more information."), t.next = 7, this._networkClient.fetchSDK({ url: "/sso/authenticate", method: "POST", body: Object.assign({ pkce_code_verifier: null == r ? void 0 : r.code_verifier }, e), errorMessage: "Failed to authenticate token" });
787
+ case 7: return n = t.sent, this._pkceManager.clearPKPair(), this._subscriptionService.updateStateAndTokens({ state: { session: n.member_session, member: n.member }, session_token: n.session_token, session_jwt: n.session_jwt }), t.abrupt("return", n);
788
+ case 11:
789
+ case "end": return t.stop();
790
+ } }), t, this); }))); } }, { key: "getBaseApiUrl", value: function () { return z(this, void 0, void 0, _().mark((function e() { return _().wrap((function (e) { for (;;)
791
+ switch (e.prev = e.next) {
792
+ case 0:
793
+ if (!this._config.publicToken.includes("public-token-test")) {
794
+ e.next = 2;
795
+ break;
796
+ }
797
+ return e.abrupt("return", this._config.testAPIURL);
798
+ case 2: return e.abrupt("return", this._config.liveAPIURL);
799
+ case 3:
800
+ case "end": return e.stop();
801
+ } }), e, this); }))); } }, { key: "start", value: function (e) { var t = e.connection_id, r = e.login_redirect_url, n = e.signup_redirect_url; return z(this, void 0, void 0, _().mark((function e() { var o, i, a, s, c; return _().wrap((function (e) { for (;;)
802
+ switch (e.prev = e.next) {
803
+ case 0: return e.next = 2, this._dynamicConfig;
804
+ case 2: return o = e.sent, i = o.pkceRequiredForSso, e.next = 6, this.getBaseApiUrl();
805
+ case 6:
806
+ if (a = e.sent, (s = new URL("".concat(a, "/v1/public/sso/start"))).searchParams.set("public_token", this._config.publicToken), s.searchParams.set("connection_id", t), !i) {
807
+ e.next = 17;
808
+ break;
809
+ }
810
+ return e.next = 13, this._pkceManager.startPKCETransaction();
811
+ case 13:
812
+ c = e.sent, s.searchParams.set("pkce_code_challenge", c.code_challenge), e.next = 18;
813
+ break;
814
+ case 17: this._pkceManager.clearPKPair();
815
+ case 18: r && s.searchParams.set("login_redirect_url", r), n && s.searchParams.set("signup_redirect_url", n), window.location.href = s.toString();
816
+ case 21:
817
+ case "end": return e.stop();
818
+ } }), e, this); }))); } }]), e; }(), le = g((function e(t) { var r = this; k(this, e), this._networkClient = t, this.get = function () { return z(r, void 0, void 0, _().mark((function e() { var t; return _().wrap((function (e) { for (;;)
819
+ switch (e.prev = e.next) {
820
+ case 0: return e.next = 2, this._networkClient.fetchSDK({ url: "/b2b/organizations/me", errorMessage: "Failed to retrieve organization info.", method: "GET" });
821
+ case 2: return t = e.sent, e.abrupt("return", t.organization);
822
+ case 4:
823
+ case "end": return e.stop();
824
+ } }), e, this); }))); }; })), he = function () { function e(t, r) { var n = this; k(this, e), this._networkClient = t, this._subscriptionService = r, this.getSync = function () { return n._subscriptionService.getSession(); }, this.onChange = function (e) { return n._subscriptionService.subscribeToState((function (t) { var r; return e(null !== (r = null == t ? void 0 : t.session) && void 0 !== r ? r : null); })); }, this.revoke = function (e) { return z(n, void 0, void 0, _().mark((function t() { var r; return _().wrap((function (t) { for (;;)
825
+ switch (t.prev = t.next) {
826
+ case 0: return t.prev = 0, t.next = 3, this._networkClient.fetchSDK({ url: "/b2b/sessions/revoke", errorMessage: "Error revoking session", method: "POST" });
827
+ case 3: return r = t.sent, this._subscriptionService.destroyState(), t.abrupt("return", r);
828
+ case 8: throw t.prev = 8, t.t0 = t.catch(0), ((null == e ? void 0 : e.forceClear) || q.includes(t.t0.error_type)) && this._subscriptionService.destroyState(), t.t0;
829
+ case 12:
830
+ case "end": return t.stop();
831
+ } }), t, this, [[0, 8]]); }))); }, this.authenticate = function (e) { return z(n, void 0, void 0, _().mark((function t() { var r, n; return _().wrap((function (t) { for (;;)
832
+ switch (t.prev = t.next) {
833
+ case 0: return t.prev = 0, r = { session_duration_minutes: null == e ? void 0 : e.session_duration_minutes }, t.next = 4, this._networkClient.fetchSDK({ url: "/b2b/sessions/authenticate", body: r, errorMessage: "Error authenticating session", method: "POST" });
834
+ case 4: return n = t.sent, this._subscriptionService.updateStateAndTokens({ state: { session: n.member_session, member: n.member }, session_token: n.session_token, session_jwt: n.session_jwt }), t.abrupt("return", n);
835
+ case 9: throw t.prev = 9, t.t0 = t.catch(0), q.includes(t.t0.error_type) && this._subscriptionService.destroyState(), t.t0;
836
+ case 13:
837
+ case "end": return t.stop();
838
+ } }), t, this, [[0, 9]]); }))); }, this.exchange = function (e) { return z(n, void 0, void 0, _().mark((function t() { var r; return _().wrap((function (t) { for (;;)
839
+ switch (t.prev = t.next) {
840
+ case 0: return ee("stytch.sessions.exchange").isString("organization_id", e.organization_id).isNumber("session_duration_minutes", e.session_duration_minutes), t.prev = 1, t.next = 4, this._networkClient.fetchSDK({ url: "/b2b/sessions/exchange", body: e, errorMessage: "Failed to exchange session", method: "POST" });
841
+ case 4: return r = t.sent, this._subscriptionService.updateStateAndTokens({ state: { session: r.member_session, member: r.member }, session_token: r.session_token, session_jwt: r.session_jwt }), t.abrupt("return", r);
842
+ case 9: throw t.prev = 9, t.t0 = t.catch(1), t.t0;
843
+ case 12:
844
+ case "end": return t.stop();
845
+ } }), t, this, [[1, 9]]); }))); }; } return g(e, [{ key: "getTokens", value: function () { return this._subscriptionService.getTokens(); } }]), e; }(), fe = g((function e(t, r) { var n = this; k(this, e), this._networkClient = t, this._subscriptionService = r, this.organizations = { list: function (e) { return z(n, void 0, void 0, _().mark((function t() { return _().wrap((function (t) { for (;;)
846
+ switch (t.prev = t.next) {
847
+ case 0: return ee("stytch.discovery.organizations.list").isOptionalString("intermediate_session_token", e.intermediate_session_token), t.abrupt("return", this._networkClient.fetchSDK({ url: "/b2b/discovery/organizations", body: e, errorMessage: "Failed to retrieve discovered organizations", method: "POST" }));
848
+ case 2:
849
+ case "end": return t.stop();
850
+ } }), t, this); }))); }, create: function (e) { return z(n, void 0, void 0, _().mark((function t() { var r; return _().wrap((function (t) { for (;;)
851
+ switch (t.prev = t.next) {
852
+ case 0: return ee("stytch.discovery.organizations.create").isString("intermediate_session_token", e.intermediate_session_token).isNumber("session_duration_minutes", e.session_duration_minutes).isString("organization_name", e.organization_name).isString("organization_slug", e.organization_slug).isOptionalString("organization_logo_url", e.organization_logo_url).isOptionalString("sso_jit_provisioning", e.sso_jit_provisioning).isOptionalStringArray("email_allowed_domains", e.email_allowed_domains).isOptionalString("email_invites", e.email_invites).isOptionalString("auth_methods", e.auth_methods).isOptionalStringArray("allowed_auth_methods", e.allowed_auth_methods), t.next = 3, this._networkClient.fetchSDK({ url: "/b2b/discovery/organizations/create", body: e, errorMessage: "Failed to create organization and member", method: "POST" });
853
+ case 3: return r = t.sent, this._subscriptionService.updateStateAndTokens({ state: { session: r.member_session, member: r.member }, session_token: r.session_token, session_jwt: r.session_jwt }), t.abrupt("return", r);
854
+ case 6:
855
+ case "end": return t.stop();
856
+ } }), t, this); }))); } }, this.intermediateSessions = { exchange: function (e) { return z(n, void 0, void 0, _().mark((function t() { var r; return _().wrap((function (t) { for (;;)
857
+ switch (t.prev = t.next) {
858
+ case 0: return ee("stytch.discovery.intermediateSessions.exchange").isString("intermediate_session_token", e.intermediate_session_token).isString("organization_id", e.organization_id).isNumber("session_duration_minutes", e.session_duration_minutes), t.next = 3, this._networkClient.fetchSDK({ url: "/b2b/discovery/intermediate_sessions/exchange", body: e, errorMessage: "Failed to exchange intermediate session", method: "POST" });
859
+ case 3: return r = t.sent, this._subscriptionService.updateStateAndTokens({ state: { session: r.member_session, member: r.member }, session_token: r.session_token, session_jwt: r.session_jwt }), t.abrupt("return", r);
860
+ case 6:
861
+ case "end": return t.stop();
862
+ } }), t, this); }))); } }; })), de = Symbol.for("stytch__internal"), pe = function (e, t) { Object.assign(e, function (e, t, r) { return (t = d(t)) in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e; }({}, de, t)); }, ve = function (e) { return (document.cookie ? document.cookie.split("; ") : []).filter((function (t) { var r = l(t.split("="), 1)[0]; return e === r; })).length > 1; };
863
+ function me(e, t, r, n) { return new (r || (r = Promise))((function (o, i) { function a(e) { try {
864
+ c(n.next(e));
865
+ }
866
+ catch (e) {
867
+ i(e);
868
+ } } function s(e) { try {
869
+ c(n.throw(e));
870
+ }
871
+ catch (e) {
872
+ i(e);
873
+ } } function c(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof r ? t : new r((function (e) { e(t); }))).then(a, s); } c((n = n.apply(e, t || [])).next()); })); }
874
+ var ye = function () { function e(t, r, n, o) { s(this, e), this._publicToken = t, this._subscriptionDataLayer = r, this.baseURL = n, this.additionalTelemetryDataFn = o, this.updateSessionToken = function () { return null; }, this.eventLogger = new ie({ maxBatchSize: ne, intervalDurationMs: oe, logEventURL: this.buildSDKUrl("/events") }); } return u(e, [{ key: "logEvent", value: function (e) { var t = e.name, r = e.details, n = e.error, o = void 0 === n ? {} : n; this.eventLogger.logEvent(this.createTelemetryBlob(), { public_token: this._publicToken, event_name: t, details: r, error_code: o.error_code, error_description: o.error_description, http_status_code: o.http_status_code }); } }, { key: "createTelemetryBlob", value: function () { return Object.assign(Object.assign({ event_id: "event-id-".concat($()), app_session_id: "app-session-id-".concat($()), persistent_id: "persistent-id-".concat($()), client_sent_at: (new Date).toISOString(), timezone: Intl.DateTimeFormat().resolvedOptions().timeZone }, this.additionalTelemetryDataFn()), { app: { identifier: window.location.hostname }, sdk: { identifier: "Stytch.js Javascript SDK", version: "0.11.0" } }); } }, { key: "fetchSDK", value: function (e) { var t = e.url, r = e.body, n = e.errorMessage, o = e.method; return me(this, void 0, void 0, a().mark((function e() { var i, s, c, u; return a().wrap((function (e) { for (;;)
875
+ switch (e.prev = e.next) {
876
+ case 0: return i = this._subscriptionDataLayer.readSessionCookie().session_token, s = "Basic " + window.btoa(this._publicToken + ":" + (i || this._publicToken)), c = window.btoa(JSON.stringify(this.createTelemetryBlob())), u = window.location.origin, e.abrupt("return", te({ basicAuthHeader: s, body: r, errorMessage: n, finalURL: this.buildSDKUrl(t), method: o, xSDKClientHeader: c, xSDKParentHostHeader: u }));
877
+ case 5:
878
+ case "end": return e.stop();
879
+ } }), e, this); }))); } }, { key: "buildSDKUrl", value: function (e) { return "".concat(this.baseURL, "/sdk/v1").concat(e); } }]), e; }();
880
+ /*! js-cookie v3.0.1 | MIT */
881
+ function _e(e) { for (var t = 1; t < arguments.length; t++) {
882
+ var r = arguments[t];
883
+ for (var n in r)
884
+ e[n] = r[n];
885
+ } return e; }
886
+ var be = function e(t, r) { function n(e, n, o) { if ("undefined" != typeof document) {
887
+ "number" == typeof (o = _e({}, r, o)).expires && (o.expires = new Date(Date.now() + 864e5 * o.expires)), o.expires && (o.expires = o.expires.toUTCString()), e = encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent).replace(/[()]/g, escape);
888
+ var i = "";
889
+ for (var a in o)
890
+ o[a] && (i += "; " + a, !0 !== o[a] && (i += "=" + o[a].split(";")[0]));
891
+ return document.cookie = e + "=" + t.write(n, e) + i;
892
+ } } return Object.create({ set: n, get: function (e) { if ("undefined" != typeof document && (!arguments.length || e)) {
893
+ for (var r = document.cookie ? document.cookie.split("; ") : [], n = {}, o = 0; o < r.length; o++) {
894
+ var i = r[o].split("="), a = i.slice(1).join("=");
895
+ try {
896
+ var s = decodeURIComponent(i[0]);
897
+ if (n[s] = t.read(a, s), e === s)
898
+ break;
899
+ }
900
+ catch (e) { }
901
+ }
902
+ return e ? n[e] : n;
903
+ } }, remove: function (e, t) { n(e, "", _e({}, t, { expires: -1 })); }, withAttributes: function (t) { return e(this.converter, _e({}, this.attributes, t)); }, withConverter: function (t) { return e(_e({}, this.converter, t), this.attributes); } }, { attributes: { value: Object.freeze(r) }, converter: { value: Object.freeze(t) } }); }({ read: function (e) { return '"' === e[0] && (e = e.slice(1, -1)), e.replace(/(%[\dA-F]{2})+/gi, decodeURIComponent); }, write: function (e) { return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, decodeURIComponent); } }, { path: "/" }), ge = "stytch_sdk_state_", ke = function (e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ""; return "".concat(ge).concat(e).concat(t ? "::".concat(t) : ""); }, we = function () { function e(t, r) { var n = this; s(this, e), this.browserSessionStorage = { getItem: function (e) { return sessionStorage.getItem(ke(n.publicToken, e)); }, setItem: function (e, t) { return sessionStorage.setItem(ke(n.publicToken, e), t); }, removeItem: function (e) { return sessionStorage.removeItem(ke(n.publicToken, e)); } }, this.publicToken = t, this.state = null, this.subscriptions = {}, (null == r ? void 0 : r.cookieOptions) ? (ee("SubscriptionDataLayer").isOptionalString("cookieOptions.opaqueTokenCookieName", r.cookieOptions.opaqueTokenCookieName).isOptionalString("cookieOptions.jwtCookieName", r.cookieOptions.jwtCookieName).isOptionalString("cookieOptions.path", r.cookieOptions.path), this._jwtCookieName = r.cookieOptions.jwtCookieName || null, this._opaqueTokenCookieName = r.cookieOptions.opaqueTokenCookieName || null, this._cookiePath = r.cookieOptions.path || null, this._cookieAvailableToSubdomains = r.cookieOptions.availableToSubdomains || !1) : (this._opaqueTokenCookieName = null, this._jwtCookieName = null, this._cookiePath = null, this._cookieAvailableToSubdomains = !1); var o = localStorage.getItem(ke(this.publicToken)); if (o) {
904
+ var i;
905
+ try {
906
+ i = JSON.parse(o);
907
+ }
908
+ catch (e) {
909
+ return this.syncToLocalStorage(), void this.removeSessionCookie();
910
+ }
911
+ this.state = i;
912
+ }
913
+ else
914
+ this.removeSessionCookie(); } return u(e, [{ key: "opaqueTokenCookieName", get: function () { var e; return null !== (e = this._opaqueTokenCookieName) && void 0 !== e ? e : "stytch_session"; } }, { key: "jwtCookieName", get: function () { var e; return null !== (e = this._jwtCookieName) && void 0 !== e ? e : "stytch_session_jwt"; } }, { key: "readSessionCookie", value: function () { return { session_token: be.get(this.opaqueTokenCookieName), session_jwt: be.get(this.jwtCookieName) }; } }, { key: "writeSessionCookie", value: function (t) { var r, n, o, i, a = t.state, s = t.session_token, c = t.session_jwt, u = e.generateCookieOpts({ expiresAt: null !== (n = null === (r = null == a ? void 0 : a.session) || void 0 === r ? void 0 : r.expires_at) && void 0 !== n ? n : "", availableToSubdomains: this._cookieAvailableToSubdomains, path: this._cookiePath }); be.set(this.opaqueTokenCookieName, s, u), be.set(this.jwtCookieName, c, u); var l = e.generateCookieOpts({ expiresAt: null !== (i = null === (o = null == a ? void 0 : a.session) || void 0 === o ? void 0 : o.expires_at) && void 0 !== i ? i : "", availableToSubdomains: !this._cookieAvailableToSubdomains, path: this._cookiePath }); ve(this.jwtCookieName) && be.remove(this.jwtCookieName, l), ve(this.opaqueTokenCookieName) && be.remove(this.opaqueTokenCookieName, l), ve(this.jwtCookieName) && Z.warn("Could not remove extraneous JWT cookie. This might happen if the cookie has been set using multiple `path` settings, and may produce unwanted behavior."), ve(this.opaqueTokenCookieName) && Z.warn("Could not remove extraneous opaque token cookie."); } }, { key: "removeSessionCookie", value: function () { var t = this; [!0, !1].forEach((function (r) { [t._cookiePath, null].forEach((function (n) { var o = e.generateCookieOpts({ expiresAt: new Date(0).toString(), availableToSubdomains: r, path: n }); be.remove(t.opaqueTokenCookieName, o), be.remove(t.jwtCookieName, o); })); })); } }, { key: "syncToLocalStorage", value: function () { localStorage.setItem(ke(this.publicToken), JSON.stringify(this.state)); } }, { key: "getItem", value: function (e) { return localStorage.getItem(ke(this.publicToken, e)); } }, { key: "setItem", value: function (e, t) { return localStorage.setItem(ke(this.publicToken, e), t); } }, { key: "removeItem", value: function (e) { return localStorage.removeItem(ke(this.publicToken, e)); } }], [{ key: "generateCookieOpts", value: function (e) { var t = e.path, r = e.availableToSubdomains, n = e.expiresAt, o = { expires: new Date(n), sameSite: "lax" }; return t && (o.path = t), Boolean("localhost" === window.location.hostname || "[::1]" === window.location.hostname || window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)) ? o.secure = !1 : (r && (o.domain = window.location.host), o.secure = !0), o; } }]), e; }(), Se = function (e) { r(n, we); var t = o(n); function n() { return s(this, n), t.apply(this, arguments); } return u(n); }(), Oe = Symbol.for("__stytch_b2b_DataLayer"), Ee = function (e, t) { var r, n = ((r = window)[Oe] || (r[Oe] = {}), r[Oe]); return n[e] || (n[e] = new Se(e, t)), n[e]; }, Te = function (e, t) { Object.values(e).forEach((function (e) { return e(t); })); }, xe = function () { var e = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).KEYS_TO_EXCLUDE, t = void 0 === e ? [] : e; return function e(r, n) { return v(r) === v(n) && (null === r || null === n ? r === n : "object" === v(r) ? Object.keys(r).length === Object.keys(n).length && !Object.keys(r).some((function (e) { return !(e in n); })) && Object.entries(r).filter((function (e) { var r = p(e, 1)[0]; return !t.includes(r); })).every((function (t) { var r = p(t, 2), o = r[0], i = r[1]; return e(i, n[o]); })) : r === n); }; }({ KEYS_TO_EXCLUDE: ["last_accessed_at"] }), Ce = function () { function e(t, r) { var n, o = this; s(this, e), this._publicToken = t, this._datalayer = r, this._listen = function (e) { e.key === ke(o._publicToken) && (null !== e.newValue ? o._updateStateAndTokensInternal(JSON.parse(e.newValue)) : o.destroyState()); }, window.addEventListener("storage", this._listen); var i = null === (n = this._datalayer.state) || void 0 === n ? void 0 : n.session; i && Date.parse(i.expires_at) < Date.now() ? this.destroyState() : this._datalayer.readSessionCookie().session_token || this.destroyState(); } return u(e, [{ key: "getTokens", value: function () { var e = this._datalayer.readSessionCookie(), t = e.session_token, r = e.session_jwt; return t && r ? { session_token: t, session_jwt: r } : null; } }, { key: "destroyState", value: function () { this.updateStateAndTokens({ state: null, session_token: null, session_jwt: null }); } }, { key: "_updateStateAndTokensInternal", value: function (e) { var t = e.state, r = this._datalayer.state; this._datalayer.state = t || null, xe(r, e.state) || Te(this._datalayer.subscriptions, e.state); } }, { key: "updateStateAndTokens", value: function (e) { e.state ? this._datalayer.writeSessionCookie(e) : this._datalayer.removeSessionCookie(), this._updateStateAndTokensInternal(e), this._datalayer.syncToLocalStorage(); } }, { key: "updateState", value: function (e) { var t = this._datalayer.state, r = Object.assign(Object.assign({}, this._datalayer.state), e); this._datalayer.state = r, xe(t, r) || (Te(this._datalayer.subscriptions, r), this._datalayer.syncToLocalStorage()); } }, { key: "subscribeToState", value: function (e) { return t = this._datalayer.subscriptions, r = e, n = Math.random().toString(36).slice(-10), t[n] = r, function () { return delete t[n]; }; var t, r, n; } }, { key: "getState", value: function () { return this._datalayer.state; } }, { key: "destroy", value: function () { window.removeEventListener("storage", this._listen); } }, { key: "syncFromDeviceStorage", value: function () { return null; } }]), e; }(), Pe = function (e) { r(n, Ce); var t = o(n); function n() { var e; return s(this, n), (e = t.apply(this, arguments)).updateMember = function (t) { return e.updateState({ member: t }); }, e.getMember = function () { var t, r; return null !== (r = null === (t = e.getState()) || void 0 === t ? void 0 : t.member) && void 0 !== r ? r : null; }, e.getSession = function () { var t, r; return null !== (r = null === (t = e.getState()) || void 0 === t ? void 0 : t.session) && void 0 !== r ? r : null; }, e; } return u(n); }();
915
+ function Le(e) { var t = e.toString(16); return 1 === t.length && (t = "0" + t), t; }
916
+ var je, Ae, Re, Ie, Ne, De, Me = function () { function e(t, r) { s(this, e), this._dataLayer = t, this.namespace = r; } return u(e, [{ key: "key", value: function () { return "PKCE_VERIFIER:" + this.namespace; } }, { key: "startPKCETransaction", value: function () { return me(this, void 0, void 0, a().mark((function t() { var r; return a().wrap((function (t) { for (;;)
917
+ switch (t.prev = t.next) {
918
+ case 0: return t.next = 2, e.createProofkeyPair();
919
+ case 2: return r = t.sent, this._dataLayer.setItem(this.key(), JSON.stringify(r)), t.abrupt("return", r);
920
+ case 5:
921
+ case "end": return t.stop();
922
+ } }), t, this); }))); } }, { key: "getPKPair", value: function () { var e = this._dataLayer.getItem(this.key()); if (null !== e)
923
+ try {
924
+ return JSON.parse(e);
925
+ }
926
+ catch (e) {
927
+ return void Z.warn("Found malformed Proof Key pair in localstorage.");
928
+ } } }, { key: "clearPKPair", value: function () { return this._dataLayer.removeItem(this.key()); } }], [{ key: "createProofkeyPair", value: function () { return me(this, void 0, void 0, a().mark((function e() { var r, n, o; return a().wrap((function (e) { for (;;)
929
+ switch (e.prev = e.next) {
930
+ case 0: return r = new Uint32Array(16), window.crypto.getRandomValues(r), n = Array.from(r).map(Le).join(""), e.next = 5, window.crypto.subtle.digest("SHA-256", (new TextEncoder).encode(n));
931
+ case 5: return o = e.sent, e.abrupt("return", { code_challenge: (i = o, a = void 0, btoa((a = String.fromCharCode).call.apply(a, [null].concat(t(new Uint8Array(i))))).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "")), code_verifier: n });
932
+ case 7:
933
+ case "end": return e.stop();
934
+ } var i, a; }), e); }))); } }]), e; }(), Ue = "bootstrap", Be = function () { return { displayWatermark: !1, cnameDomain: null, emailDomains: ["stytch.com"], captchaSettings: { enabled: !1 }, pkceRequiredForEmailMagicLinks: !1, pkceRequiredForPasswordResets: !1, pkceRequiredForOAuth: !1, pkceRequiredForSso: !1 }; }, Ke = function () { function e(t, r, n) { var o = this; s(this, e), this._publicToken = t, this._networkClient = r, this._dataLayer = n, this._bootstrapDataPromise = this._networkClient.fetchSDK({ url: "/projects/bootstrap/".concat(this._publicToken), method: "GET", errorMessage: "Error fetching bootstrap data for SDK for ".concat(this._publicToken) }).then(e.mapBootstrapData).then((function (e) { return o._dataLayer.setItem(Ue, JSON.stringify(e)), e; })).catch((function (e) { return Z.error(e), Be(); })); } return u(e, [{ key: "getSync", value: function () { var e = this._dataLayer.getItem(Ue); if (null === e)
935
+ return Be(); try {
936
+ return JSON.parse(e);
937
+ }
938
+ catch (e) {
939
+ return Be();
940
+ } } }, { key: "getAsync", value: function () { return this._bootstrapDataPromise; } }], [{ key: "mapBootstrapData", value: function (e) { return { displayWatermark: !e.disable_sdk_watermark, captchaSettings: e.captcha_settings, cnameDomain: e.cname_domain, emailDomains: e.email_domains, pkceRequiredForEmailMagicLinks: e.pkce_required_for_email_magic_links, pkceRequiredForPasswordResets: e.pkce_required_for_password_resets, pkceRequiredForOAuth: e.pkce_required_for_oauth, pkceRequiredForSso: e.pkce_required_for_sso }; } }]), e; }(), Fe = u((function e(t, r) { var n, o = this; s(this, e), function (e) { if ("undefined" == typeof window)
941
+ throw new Error("The ".concat(e, " is not compatible with server-side environments.\nIf using nextjs, use the create").concat(e, " method instead.\n```\n").concat("import { createStytchB2BHeadlessClient } from '@stytch/nextjs/b2b';\n \n const stytch = createStytchB2BHeadlessClient('public-token-...');\n ", "\n```\n")); }("StytchB2BHeadlessClient"), "string" != typeof (n = t) ? Z.warn("Public token is malformed. Expected a string, got ".concat(v(n), ".").concat(Q)) : "" === n ? Z.warn('Public token is malformed. Expected "public-token-...", got an empty string.'.concat(Q)) : n.startsWith("public-token-") || Z.warn('Public token is malformed. Expected "public-token-...", got '.concat(n, ".").concat(Q)); var i, a, c, u, l, h, f, d, p, m = r, y = { cookieOptions: null == (i = m) ? void 0 : i.cookieOptions, endpoints: { sdkBackendURL: null !== (c = null === (a = null == i ? void 0 : i.endpoints) || void 0 === a ? void 0 : a.sdkBackendURL) && void 0 !== c ? c : "https://web.stytch.com", testAPIURL: null !== (l = null === (u = null == i ? void 0 : i.endpoints) || void 0 === u ? void 0 : u.testAPIURL) && void 0 !== l ? l : "https://test.stytch.com", liveAPIURL: null !== (f = null === (h = null == i ? void 0 : i.endpoints) || void 0 === h ? void 0 : h.liveAPIURL) && void 0 !== f ? f : "https://api.stytch.com", clientsideServicesIframeURL: null !== (p = null === (d = null == i ? void 0 : i.endpoints) || void 0 === d ? void 0 : d.clientsideServicesIframeURL) && void 0 !== p ? p : "https://js.stytch.com/clientside-services/index.html" } }; this._dataLayer = Ee(t, m), this._subscriptionService = new Pe(t, this._dataLayer); this._networkClient = new ye(t, this._dataLayer, y.endpoints.sdkBackendURL, (function () { var e, t, r, n; return { stytch_member_id: null === (t = null === (e = o._dataLayer.state) || void 0 === e ? void 0 : e.member) || void 0 === t ? void 0 : t.member_id, stytch_member_session_id: null === (n = null === (r = o._dataLayer.state) || void 0 === r ? void 0 : r.session) || void 0 === n ? void 0 : n.member_session_id }; })); var _ = new Ke(t, this._networkClient, this._dataLayer); this.organization = new le(this._networkClient), this.member = new ce(this._networkClient, this._subscriptionService), this.session = new he(this._networkClient, this._subscriptionService), this.magicLinks = new se(this._networkClient, this._subscriptionService, new Me(this._dataLayer, "magic_links"), _.getAsync()), this.sso = new ue(this._networkClient, this._subscriptionService, new Me(this._dataLayer, "sso"), _.getAsync(), { publicToken: t, testAPIURL: y.endpoints.testAPIURL, liveAPIURL: y.endpoints.liveAPIURL }), this.discovery = new fe(this._networkClient, this._subscriptionService), this._sessionManager = new re(this._subscriptionService, this.session), this._dataLayer.readSessionCookie().session_token && this._sessionManager.performBackgroundRefresh(), this._networkClient.logEvent({ name: "b2b_sdk_instance_instantiated", details: { event_callback_registered: !1, error_callback_registered: !1, success_callback_registered: !1 } }), pe(this, { bootstrap: _, publicToken: t }); }));
942
+ function qe(e) { return qe = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e; } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; }, qe(e); }
943
+ function ze(e, t) { for (var r = 0; r < t.length; r++) {
944
+ var n = t[r];
945
+ n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, (o = n.key, i = void 0, i = function (e, t) { if ("object" !== qe(e) || null === e)
946
+ return e; var r = e[Symbol.toPrimitive]; if (void 0 !== r) {
947
+ var n = r.call(e, t || "default");
948
+ if ("object" !== qe(n))
949
+ return n;
950
+ throw new TypeError("@@toPrimitive must return a primitive value.");
951
+ } return ("string" === t ? String : Number)(e); }(o, "string"), "symbol" === qe(i) ? i : String(i)), n);
952
+ } var o, i; }
953
+ function Ge(e, t, r) { return t && ze(e.prototype, t), r && ze(e, r), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
954
+ function We(e, t) { if (!(e instanceof t))
955
+ throw new TypeError("Cannot call a class as a function"); }
956
+ function He(e, t) { if ("function" != typeof t && null !== t)
957
+ throw new TypeError("Super expression must either be null or a function"); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, writable: !0, configurable: !0 } }), Object.defineProperty(e, "prototype", { writable: !1 }), t && Ze(e, t); }
958
+ function Ve(e) { var t = Xe(); return function () { var r, n = Qe(e); if (t) {
959
+ var o = Qe(this).constructor;
960
+ r = Reflect.construct(n, arguments, o);
961
+ }
962
+ else
963
+ r = n.apply(this, arguments); return function (e, t) { if (t && ("object" === qe(t) || "function" == typeof t))
964
+ return t; if (void 0 !== t)
965
+ throw new TypeError("Derived constructors may only return object or undefined"); return Ye(e); }(this, r); }; }
966
+ function Ye(e) { if (void 0 === e)
967
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
968
+ function Je(e) { var t = "function" == typeof Map ? new Map : void 0; return Je = function (e) { if (null === e || (r = e, -1 === Function.toString.call(r).indexOf("[native code]")))
969
+ return e; var r; if ("function" != typeof e)
970
+ throw new TypeError("Super expression must either be null or a function"); if (void 0 !== t) {
971
+ if (t.has(e))
972
+ return t.get(e);
973
+ t.set(e, n);
974
+ } function n() { return $e(e, arguments, Qe(this).constructor); } return n.prototype = Object.create(e.prototype, { constructor: { value: n, enumerable: !1, writable: !0, configurable: !0 } }), Ze(n, e); }, Je(e); }
975
+ function $e(e, t, r) { return $e = Xe() ? Reflect.construct.bind() : function (e, t, r) { var n = [null]; n.push.apply(n, t); var o = new (Function.bind.apply(e, n)); return r && Ze(o, r.prototype), o; }, $e.apply(null, arguments); }
976
+ function Xe() { if ("undefined" == typeof Reflect || !Reflect.construct)
977
+ return !1; if (Reflect.construct.sham)
978
+ return !1; if ("function" == typeof Proxy)
979
+ return !0; try {
980
+ return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function () { }))), !0;
981
+ }
982
+ catch (e) {
983
+ return !1;
984
+ } }
985
+ function Ze(e, t) { return Ze = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (e, t) { return e.__proto__ = t, e; }, Ze(e, t); }
986
+ function Qe(e) { return Qe = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (e) { return e.__proto__ || Object.getPrototypeOf(e); }, Qe(e); }
987
+ !function (e) { e.emailMagicLinks = "emailMagicLinks", e.oauth = "oauth", e.otp = "otp", e.crypto = "crypto", e.passwords = "passwords"; }(je || (je = {})), function (e) { e.Google = "google", e.Microsoft = "microsoft", e.Apple = "apple", e.Github = "github", e.GitLab = "gitlab", e.Facebook = "facebook", e.Discord = "discord", e.Slack = "slack", e.Amazon = "amazon", e.Bitbucket = "bitbucket", e.LinkedIn = "linkedin", e.Coinbase = "coinbase", e.Twitch = "twitch"; }(Ae || (Ae = {})), function (e) { e.Vessel = "Vessel", e.Phantom = "Phantom", e.Metamask = "Metamask", e.Coinbase = "Coinbase", e.Binance = "Binance", e.GenericEthereumWallet = "Other Ethereum Wallet", e.GenericSolanaWallet = "Other Solana Wallet"; }(Re || (Re = {})), function (e) { e.embedded = "embedded", e.floating = "floating"; }(Ie || (Ie = {})), function (e) { e.SMS = "sms", e.WhatsApp = "whatsapp", e.Email = "email"; }(Ne || (Ne = {})), function (e) { e.MagicLinkLoginOrCreateEvent = "MAGIC_LINK_LOGIN_OR_CREATE", e.OTPsLoginOrCreateEvent = "OTP_LOGIN_OR_CREATE", e.OTPsAuthenticate = "OTP_AUTHENTICATE", e.CryptoWalletAuthenticateStart = "CRYPTO_WALLET_AUTHENTICATE_START", e.CryptoWalletAuthenticate = "CRYPTO_WALLET_AUTHENTICATE", e.PasswordCreate = "PASSWORD_CREATE", e.PasswordAuthenticate = "PASSWORD_AUTHENTICATE", e.PasswordResetByEmailStart = "PASSWORD_RESET_BY_EMAIL_START", e.PasswordResetByEmail = "PASSWORD_RESET_BY_EMAIL"; }(De || (De = {}));
988
+ var et; (function (e) { He(r, Je(Error)); var t = Ve(r); function r(e, n) { var o; return We(this, r), (o = t.call(this, e + "\n" + n)).message = e + "\n" + n, o.name = "SDKAPIUnreachableError", o.details = n, Object.setPrototypeOf(Ye(o), r.prototype), o; } return Ge(r); })(); (function (e) { He(r, Je(Error)); var t = Ve(r); function r(e, n) { var o; return We(this, r), (o = t.call(this)).name = "StytchSDKUsageError", o.message = "Invalid call to ".concat(e, "\n") + n, o; } return Ge(r); })(); (function (e) { He(r, Je(Error)); var t = Ve(r); function r(e) { var n, o; We(this, r), (n = t.call(this)).name = "StytchSDKSchemaError"; var i = null === (o = e.body) || void 0 === o ? void 0 : o.map((function (e) { return "".concat(e.dataPath, ": ").concat(e.message); })).join("\n"); return n.message = "[400] Request does not match expected schema\n".concat(i), n; } return Ge(r); })(); (function (e) { He(r, Je(Error)); var t = Ve(r); function r(e) { var n; We(this, r), (n = t.call(this)).name = "StytchSDKAPIError"; var o = e.status_code, i = e.error_type, a = e.error_message, s = e.error_url, c = e.request_id; return n.error_type = i, n.error_message = a, n.error_url = s, n.request_id = c, n.status_code = o, n.message = "[".concat(o, "] ").concat(i, "\n") + "".concat(a, "\n") + "See ".concat(s, " for more information.\n") + (c ? "request_id: ".concat(c, "\n") : ""), n; } return Ge(r); })(); (function (e) { He(r, Je(Error)); var t = Ve(r); function r(e) { var n; return We(this, r), (n = t.call(this)).name = "StytchSDKNativeError", n.error_type = e, n.message = "".concat(e), n; } return Ge(r); })();
989
+ !function (e) { e.BiometricsSensorError = "biometrics_sensor_error", e.DeviceCredentialsNotAllowed = "device_credentials_not_allowed", e.DeviceHardwareError = "device_hardware_error", e.InternalError = "internal_error", e.KeyInvalidated = "key_invalidated", e.KeystoreUnavailable = "keystore_unavailable", e.NoBiometricsEnrolled = "no_biometrics_enrolled", e.NoBiometricsRegistration = "no_biometrics_registration", e.SessionExpired = "session_expired", e.UserCancellation = "user_cancellation", e.UserLockedOut = "user_locked_out"; }(et || (et = {}));
990
+
991
+ /**
992
+ * Creates a Headless Stytch client object to call the stytch B2B APIs.
993
+ * The Stytch client is not available serverside.
994
+ * @example
995
+ * const stytch = createStytchB2BHeadlessClient('public-token-<find yours in the stytch dashboard>')
996
+ *
997
+ * return (
998
+ * <StytchB2BProvider stytch={stytch}>
999
+ * <App />
1000
+ * </StytchB2BProvider>
1001
+ * )
1002
+ * @returns A {@link StytchHeadlessClient}
1003
+ */
1004
+ const createStytchB2BHeadlessClient = (...args) => {
1005
+ if (typeof window === 'undefined') {
1006
+ return createStytchSSRProxy();
1007
+ }
1008
+ return new Fe(...args);
1009
+ };
1010
+
1011
+ export { StytchB2BProvider, createStytchB2BHeadlessClient, useStytchB2BClient, useStytchMember, useStytchMemberSession, withStytchB2BClient, withStytchMember, withStytchMemberSession };