@stytch/nextjs 2.0.0 → 2.0.2

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.
@@ -1,946 +0,0 @@
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 t(e) { return t = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, t(e); }
206
- function e(t) { return function (t) { if (Array.isArray(t))
207
- return r(t); }(t) || function (t) { if ("undefined" != typeof Symbol && null != t[Symbol.iterator] || null != t["@@iterator"])
208
- return Array.from(t); }(t) || function (t, e) { if (!t)
209
- return; if ("string" == typeof t)
210
- return r(t, e); var n = Object.prototype.toString.call(t).slice(8, -1); "Object" === n && t.constructor && (n = t.constructor.name); if ("Map" === n || "Set" === n)
211
- return Array.from(t); if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
212
- return r(t, e); }(t) || 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."); }(); }
213
- function r(t, e) { (null == e || e > t.length) && (e = t.length); for (var r = 0, n = new Array(e); r < e; r++)
214
- n[r] = t[r]; return n; }
215
- function n(t, e) { if ("function" != typeof e && null !== e)
216
- throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && o(t, e); }
217
- function o(t, e) { return o = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, o(t, e); }
218
- function i(e) { var r = function () { if ("undefined" == typeof Reflect || !Reflect.construct)
219
- return !1; if (Reflect.construct.sham)
220
- return !1; if ("function" == typeof Proxy)
221
- return !0; try {
222
- return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function () { }))), !0;
223
- }
224
- catch (t) {
225
- return !1;
226
- } }(); return function () { var n, o = a(e); if (r) {
227
- var i = a(this).constructor;
228
- n = Reflect.construct(o, arguments, i);
229
- }
230
- else
231
- n = o.apply(this, arguments); return function (e, r) { if (r && ("object" === t(r) || "function" == typeof r))
232
- return r; if (void 0 !== r)
233
- throw new TypeError("Derived constructors may only return object or undefined"); return function (t) { if (void 0 === t)
234
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return t; }(e); }(this, n); }; }
235
- function a(t) { return a = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, a(t); }
236
- function s() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ s = function () { return e; }; var e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function l(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try {
237
- l({}, "");
238
- }
239
- catch (t) {
240
- l = function (t, e, r) { return t[e] = r; };
241
- } function f(t, e, r, n) { var i = e && e.prototype instanceof d ? e : d, a = Object.create(i.prototype), s = new P(n || []); return o(a, "_invoke", { value: S(t, r, s) }), a; } function h(t, e, r) { try {
242
- return { type: "normal", arg: t.call(e, r) };
243
- }
244
- catch (t) {
245
- return { type: "throw", arg: t };
246
- } } e.wrap = f; var p = {}; function d() { } function v() { } function y() { } var m = {}; l(m, a, (function () { return this; })); var b = Object.getPrototypeOf, g = b && b(b(L([]))); g && g !== r && n.call(g, a) && (m = g); var _ = y.prototype = d.prototype = Object.create(m); function w(t) { ["next", "throw", "return"].forEach((function (e) { l(t, e, (function (t) { return this._invoke(e, t); })); })); } function k(e, r) { function i(o, a, s, c) { var u = h(e[o], e, a); if ("throw" !== u.type) {
247
- var l = u.arg, f = l.value;
248
- return f && "object" == t(f) && n.call(f, "__await") ? r.resolve(f.__await).then((function (t) { i("next", t, s, c); }), (function (t) { i("throw", t, s, c); })) : r.resolve(f).then((function (t) { l.value = t, s(l); }), (function (t) { return i("throw", t, s, c); }));
249
- } c(u.arg); } var a; o(this, "_invoke", { value: function (t, e) { function n() { return new r((function (r, n) { i(t, e, r, n); })); } return a = a ? a.then(n, n) : n(); } }); } function S(t, e, r) { var n = "suspendedStart"; return function (o, i) { if ("executing" === n)
250
- throw new Error("Generator is already running"); if ("completed" === n) {
251
- if ("throw" === o)
252
- throw i;
253
- return x();
254
- } for (r.method = o, r.arg = i;;) {
255
- var a = r.delegate;
256
- if (a) {
257
- var s = E(a, r);
258
- if (s) {
259
- if (s === p)
260
- continue;
261
- return s;
262
- }
263
- }
264
- if ("next" === r.method)
265
- r.sent = r._sent = r.arg;
266
- else if ("throw" === r.method) {
267
- if ("suspendedStart" === n)
268
- throw n = "completed", r.arg;
269
- r.dispatchException(r.arg);
270
- }
271
- else
272
- "return" === r.method && r.abrupt("return", r.arg);
273
- n = "executing";
274
- var c = h(t, e, r);
275
- if ("normal" === c.type) {
276
- if (n = r.done ? "completed" : "suspendedYield", c.arg === p)
277
- continue;
278
- return { value: c.arg, done: r.done };
279
- }
280
- "throw" === c.type && (n = "completed", r.method = "throw", r.arg = c.arg);
281
- } }; } function E(t, e) { var r = e.method, n = t.iterator[r]; if (void 0 === n)
282
- return e.delegate = null, "throw" === r && t.iterator.return && (e.method = "return", e.arg = void 0, E(t, e), "throw" === e.method) || "return" !== r && (e.method = "throw", e.arg = new TypeError("The iterator does not provide a '" + r + "' method")), p; var o = h(n, t.iterator, e.arg); if ("throw" === o.type)
283
- return e.method = "throw", e.arg = o.arg, e.delegate = null, p; var i = o.arg; return i ? i.done ? (e[t.resultName] = i.value, e.next = t.nextLoc, "return" !== e.method && (e.method = "next", e.arg = void 0), e.delegate = null, p) : i : (e.method = "throw", e.arg = new TypeError("iterator result is not an object"), e.delegate = null, p); } function O(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function T(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function P(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(O, this), this.reset(!0); } function L(t) { if (t) {
284
- var e = t[a];
285
- if (e)
286
- return e.call(t);
287
- if ("function" == typeof t.next)
288
- return t;
289
- if (!isNaN(t.length)) {
290
- var r = -1, o = function e() { for (; ++r < t.length;)
291
- if (n.call(t, r))
292
- return e.value = t[r], e.done = !1, e; return e.value = void 0, e.done = !0, e; };
293
- return o.next = o;
294
- }
295
- } return { next: x }; } function x() { return { value: void 0, done: !0 }; } return v.prototype = y, o(_, "constructor", { value: y, configurable: !0 }), o(y, "constructor", { value: v, configurable: !0 }), v.displayName = l(y, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === v || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, y) : (t.__proto__ = y, l(t, u, "GeneratorFunction")), t.prototype = Object.create(_), t; }, e.awrap = function (t) { return { __await: t }; }, w(k.prototype), l(k.prototype, c, (function () { return this; })), e.AsyncIterator = k, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new k(f(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then((function (t) { return t.done ? t.value : a.next(); })); }, w(_), l(_, u, "Generator"), l(_, a, (function () { return this; })), l(_, "toString", (function () { return "[object Generator]"; })), e.keys = function (t) { var e = Object(t), r = []; for (var n in e)
296
- r.push(n); return r.reverse(), function t() { for (; r.length;) {
297
- var n = r.pop();
298
- if (n in e)
299
- return t.value = n, t.done = !1, t;
300
- } return t.done = !0, t; }; }, e.values = L, P.prototype = { constructor: P, reset: function (t) { 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), !t)
301
- for (var e in this)
302
- "t" === e.charAt(0) && n.call(this, e) && !isNaN(+e.slice(1)) && (this[e] = void 0); }, stop: function () { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type)
303
- throw t.arg; return this.rval; }, dispatchException: function (t) { if (this.done)
304
- throw t; var e = this; function r(r, n) { return a.type = "throw", a.arg = t, e.next = r, n && (e.method = "next", e.arg = void 0), !!n; } for (var o = this.tryEntries.length - 1; o >= 0; --o) {
305
- var i = this.tryEntries[o], a = i.completion;
306
- if ("root" === i.tryLoc)
307
- return r("end");
308
- if (i.tryLoc <= this.prev) {
309
- var s = n.call(i, "catchLoc"), c = n.call(i, "finallyLoc");
310
- if (s && c) {
311
- if (this.prev < i.catchLoc)
312
- return r(i.catchLoc, !0);
313
- if (this.prev < i.finallyLoc)
314
- return r(i.finallyLoc);
315
- }
316
- else if (s) {
317
- if (this.prev < i.catchLoc)
318
- return r(i.catchLoc, !0);
319
- }
320
- else {
321
- if (!c)
322
- throw new Error("try statement without catch or finally");
323
- if (this.prev < i.finallyLoc)
324
- return r(i.finallyLoc);
325
- }
326
- }
327
- } }, abrupt: function (t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) {
328
- var o = this.tryEntries[r];
329
- if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
330
- var i = o;
331
- break;
332
- }
333
- } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, p) : this.complete(a); }, complete: function (t, e) { if ("throw" === t.type)
334
- throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), p; }, finish: function (t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) {
335
- var r = this.tryEntries[e];
336
- if (r.finallyLoc === t)
337
- return this.complete(r.completion, r.afterLoc), T(r), p;
338
- } }, catch: function (t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) {
339
- var r = this.tryEntries[e];
340
- if (r.tryLoc === t) {
341
- var n = r.completion;
342
- if ("throw" === n.type) {
343
- var o = n.arg;
344
- T(r);
345
- }
346
- return o;
347
- }
348
- } throw new Error("illegal catch attempt"); }, delegateYield: function (t, e, r) { return this.delegate = { iterator: L(t), resultName: e, nextLoc: r }, "next" === this.method && (this.arg = void 0), p; } }, e; }
349
- function c(t, e) { if (!(t instanceof e))
350
- throw new TypeError("Cannot call a class as a function"); }
351
- function u(t, e) { for (var r = 0; r < e.length; r++) {
352
- var n = e[r];
353
- n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, f(n.key), n);
354
- } }
355
- function l(t, e, r) { return e && u(t.prototype, e), r && u(t, r), Object.defineProperty(t, "prototype", { writable: !1 }), t; }
356
- function f(e) { var r = function (e, r) { if ("object" !== t(e) || null === e)
357
- return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) {
358
- var o = n.call(e, r || "default");
359
- if ("object" !== t(o))
360
- return o;
361
- throw new TypeError("@@toPrimitive must return a primitive value.");
362
- } return ("string" === r ? String : Number)(e); }(e, "string"); return "symbol" === t(r) ? r : String(r); }
363
- function h(t, e) { return function (t) { if (Array.isArray(t))
364
- return t; }(t) || function (t, e) { var r = null == t ? null : "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]; if (null != r) {
365
- var n, o, i, a, s = [], c = !0, u = !1;
366
- try {
367
- if (i = (r = r.call(t)).next, 0 === e) {
368
- if (Object(r) !== r)
369
- return;
370
- c = !1;
371
- }
372
- else
373
- for (; !(c = (n = i.call(r)).done) && (s.push(n.value), s.length !== e); c = !0)
374
- ;
375
- }
376
- catch (t) {
377
- u = !0, o = t;
378
- }
379
- finally {
380
- try {
381
- if (!c && null != r.return && (a = r.return(), Object(a) !== a))
382
- return;
383
- }
384
- finally {
385
- if (u)
386
- throw o;
387
- }
388
- }
389
- return s;
390
- } }(t, e) || d(t, e) || 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."); }(); }
391
- function p(t) { return p = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, p(t); }
392
- function d(t, e) { if (t) {
393
- if ("string" == typeof t)
394
- return v(t, e);
395
- var r = Object.prototype.toString.call(t).slice(8, -1);
396
- return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? v(t, e) : void 0;
397
- } }
398
- function v(t, e) { (null == e || e > t.length) && (e = t.length); for (var r = 0, n = new Array(e); r < e; r++)
399
- n[r] = t[r]; return n; }
400
- function y() {
401
- /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
402
- y = function () { return t; };
403
- var t = {}, e = Object.prototype, r = e.hasOwnProperty, n = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, o = "function" == typeof Symbol ? Symbol : {}, i = o.iterator || "@@iterator", a = o.asyncIterator || "@@asyncIterator", s = o.toStringTag || "@@toStringTag";
404
- function c(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; }
405
- try {
406
- c({}, "");
407
- }
408
- catch (t) {
409
- c = function (t, e, r) { return t[e] = r; };
410
- }
411
- function u(t, e, r, o) { var i = e && e.prototype instanceof h ? e : h, a = Object.create(i.prototype), s = new P(o || []); return n(a, "_invoke", { value: S(t, r, s) }), a; }
412
- function l(t, e, r) { try {
413
- return { type: "normal", arg: t.call(e, r) };
414
- }
415
- catch (t) {
416
- return { type: "throw", arg: t };
417
- } }
418
- t.wrap = u;
419
- var f = {};
420
- function h() { }
421
- function d() { }
422
- function v() { }
423
- var m = {};
424
- c(m, i, (function () { return this; }));
425
- var b = Object.getPrototypeOf, g = b && b(b(L([])));
426
- g && g !== e && r.call(g, i) && (m = g);
427
- var _ = v.prototype = h.prototype = Object.create(m);
428
- function w(t) { ["next", "throw", "return"].forEach((function (e) { c(t, e, (function (t) { return this._invoke(e, t); })); })); }
429
- function k(t, e) { function o(n, i, a, s) { var c = l(t[n], t, i); if ("throw" !== c.type) {
430
- var u = c.arg, f = u.value;
431
- return f && "object" == p(f) && r.call(f, "__await") ? e.resolve(f.__await).then((function (t) { o("next", t, a, s); }), (function (t) { o("throw", t, a, s); })) : e.resolve(f).then((function (t) { u.value = t, a(u); }), (function (t) { return o("throw", t, a, s); }));
432
- } s(c.arg); } var i; n(this, "_invoke", { value: function (t, r) { function n() { return new e((function (e, n) { o(t, r, e, n); })); } return i = i ? i.then(n, n) : n(); } }); }
433
- function S(t, e, r) { var n = "suspendedStart"; return function (o, i) { if ("executing" === n)
434
- throw new Error("Generator is already running"); if ("completed" === n) {
435
- if ("throw" === o)
436
- throw i;
437
- return x();
438
- } for (r.method = o, r.arg = i;;) {
439
- var a = r.delegate;
440
- if (a) {
441
- var s = E(a, r);
442
- if (s) {
443
- if (s === f)
444
- continue;
445
- return s;
446
- }
447
- }
448
- if ("next" === r.method)
449
- r.sent = r._sent = r.arg;
450
- else if ("throw" === r.method) {
451
- if ("suspendedStart" === n)
452
- throw n = "completed", r.arg;
453
- r.dispatchException(r.arg);
454
- }
455
- else
456
- "return" === r.method && r.abrupt("return", r.arg);
457
- n = "executing";
458
- var c = l(t, e, r);
459
- if ("normal" === c.type) {
460
- if (n = r.done ? "completed" : "suspendedYield", c.arg === f)
461
- continue;
462
- return { value: c.arg, done: r.done };
463
- }
464
- "throw" === c.type && (n = "completed", r.method = "throw", r.arg = c.arg);
465
- } }; }
466
- function E(t, e) { var r = e.method, n = t.iterator[r]; if (void 0 === n)
467
- return e.delegate = null, "throw" === r && t.iterator.return && (e.method = "return", e.arg = void 0, E(t, e), "throw" === e.method) || "return" !== r && (e.method = "throw", e.arg = new TypeError("The iterator does not provide a '" + r + "' method")), f; var o = l(n, t.iterator, e.arg); if ("throw" === o.type)
468
- return e.method = "throw", e.arg = o.arg, e.delegate = null, f; var i = o.arg; return i ? i.done ? (e[t.resultName] = i.value, e.next = t.nextLoc, "return" !== e.method && (e.method = "next", e.arg = void 0), e.delegate = null, f) : i : (e.method = "throw", e.arg = new TypeError("iterator result is not an object"), e.delegate = null, f); }
469
- function O(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); }
470
- function T(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; }
471
- function P(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(O, this), this.reset(!0); }
472
- function L(t) { if (t) {
473
- var e = t[i];
474
- if (e)
475
- return e.call(t);
476
- if ("function" == typeof t.next)
477
- return t;
478
- if (!isNaN(t.length)) {
479
- var n = -1, o = function e() { for (; ++n < t.length;)
480
- if (r.call(t, n))
481
- return e.value = t[n], e.done = !1, e; return e.value = void 0, e.done = !0, e; };
482
- return o.next = o;
483
- }
484
- } return { next: x }; }
485
- function x() { return { value: void 0, done: !0 }; }
486
- return d.prototype = v, n(_, "constructor", { value: v, configurable: !0 }), n(v, "constructor", { value: d, configurable: !0 }), d.displayName = c(v, s, "GeneratorFunction"), t.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === d || "GeneratorFunction" === (e.displayName || e.name)); }, t.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, v) : (t.__proto__ = v, c(t, s, "GeneratorFunction")), t.prototype = Object.create(_), t; }, t.awrap = function (t) { return { __await: t }; }, w(k.prototype), c(k.prototype, a, (function () { return this; })), t.AsyncIterator = k, t.async = function (e, r, n, o, i) { void 0 === i && (i = Promise); var a = new k(u(e, r, n, o), i); return t.isGeneratorFunction(r) ? a : a.next().then((function (t) { return t.done ? t.value : a.next(); })); }, w(_), c(_, s, "Generator"), c(_, i, (function () { return this; })), c(_, "toString", (function () { return "[object Generator]"; })), t.keys = function (t) { var e = Object(t), r = []; for (var n in e)
487
- r.push(n); return r.reverse(), function t() { for (; r.length;) {
488
- var n = r.pop();
489
- if (n in e)
490
- return t.value = n, t.done = !1, t;
491
- } return t.done = !0, t; }; }, t.values = L, P.prototype = { constructor: P, reset: function (t) { 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), !t)
492
- for (var e in this)
493
- "t" === e.charAt(0) && r.call(this, e) && !isNaN(+e.slice(1)) && (this[e] = void 0); }, stop: function () { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type)
494
- throw t.arg; return this.rval; }, dispatchException: function (t) { if (this.done)
495
- throw t; var e = this; function n(r, n) { return a.type = "throw", a.arg = t, e.next = r, n && (e.method = "next", e.arg = void 0), !!n; } for (var o = this.tryEntries.length - 1; o >= 0; --o) {
496
- var i = this.tryEntries[o], a = i.completion;
497
- if ("root" === i.tryLoc)
498
- return n("end");
499
- if (i.tryLoc <= this.prev) {
500
- var s = r.call(i, "catchLoc"), c = r.call(i, "finallyLoc");
501
- if (s && c) {
502
- if (this.prev < i.catchLoc)
503
- return n(i.catchLoc, !0);
504
- if (this.prev < i.finallyLoc)
505
- return n(i.finallyLoc);
506
- }
507
- else if (s) {
508
- if (this.prev < i.catchLoc)
509
- return n(i.catchLoc, !0);
510
- }
511
- else {
512
- if (!c)
513
- throw new Error("try statement without catch or finally");
514
- if (this.prev < i.finallyLoc)
515
- return n(i.finallyLoc);
516
- }
517
- }
518
- } }, abrupt: function (t, e) { for (var n = this.tryEntries.length - 1; n >= 0; --n) {
519
- var o = this.tryEntries[n];
520
- if (o.tryLoc <= this.prev && r.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
521
- var i = o;
522
- break;
523
- }
524
- } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, f) : this.complete(a); }, complete: function (t, e) { if ("throw" === t.type)
525
- throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), f; }, finish: function (t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) {
526
- var r = this.tryEntries[e];
527
- if (r.finallyLoc === t)
528
- return this.complete(r.completion, r.afterLoc), T(r), f;
529
- } }, catch: function (t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) {
530
- var r = this.tryEntries[e];
531
- if (r.tryLoc === t) {
532
- var n = r.completion;
533
- if ("throw" === n.type) {
534
- var o = n.arg;
535
- T(r);
536
- }
537
- return o;
538
- }
539
- } throw new Error("illegal catch attempt"); }, delegateYield: function (t, e, r) { return this.delegate = { iterator: L(t), resultName: e, nextLoc: r }, "next" === this.method && (this.arg = void 0), f; } }, t;
540
- }
541
- function m(t, e) { for (var r = 0; r < e.length; r++) {
542
- var n = e[r];
543
- n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, (o = n.key, i = void 0, i = function (t, e) { if ("object" !== p(t) || null === t)
544
- return t; var r = t[Symbol.toPrimitive]; if (void 0 !== r) {
545
- var n = r.call(t, e || "default");
546
- if ("object" !== p(n))
547
- return n;
548
- throw new TypeError("@@toPrimitive must return a primitive value.");
549
- } return ("string" === e ? String : Number)(t); }(o, "string"), "symbol" === p(i) ? i : String(i)), n);
550
- } var o, i; }
551
- function b(t, e, r) { return e && m(t.prototype, e), r && m(t, r), Object.defineProperty(t, "prototype", { writable: !1 }), t; }
552
- function g(t, e) { if (!(t instanceof e))
553
- throw new TypeError("Cannot call a class as a function"); }
554
- function _(t, e) { if ("function" != typeof e && null !== e)
555
- throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && T(t, e); }
556
- function w(t) { var e = O(); return function () { var r, n = P(t); if (e) {
557
- var o = P(this).constructor;
558
- r = Reflect.construct(n, arguments, o);
559
- }
560
- else
561
- r = n.apply(this, arguments); return function (t, e) { if (e && ("object" === p(e) || "function" == typeof e))
562
- return e; if (void 0 !== e)
563
- throw new TypeError("Derived constructors may only return object or undefined"); return k(t); }(this, r); }; }
564
- function k(t) { if (void 0 === t)
565
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return t; }
566
- function S(t) { var e = "function" == typeof Map ? new Map : void 0; return S = function (t) { if (null === t || (r = t, -1 === Function.toString.call(r).indexOf("[native code]")))
567
- return t; var r; if ("function" != typeof t)
568
- throw new TypeError("Super expression must either be null or a function"); if (void 0 !== e) {
569
- if (e.has(t))
570
- return e.get(t);
571
- e.set(t, n);
572
- } function n() { return E(t, arguments, P(this).constructor); } return n.prototype = Object.create(t.prototype, { constructor: { value: n, enumerable: !1, writable: !0, configurable: !0 } }), T(n, t); }, S(t); }
573
- function E(t, e, r) { return E = O() ? Reflect.construct.bind() : function (t, e, r) { var n = [null]; n.push.apply(n, e); var o = new (Function.bind.apply(t, n)); return r && T(o, r.prototype), o; }, E.apply(null, arguments); }
574
- function O() { if ("undefined" == typeof Reflect || !Reflect.construct)
575
- return !1; if (Reflect.construct.sham)
576
- return !1; if ("function" == typeof Proxy)
577
- return !0; try {
578
- return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function () { }))), !0;
579
- }
580
- catch (t) {
581
- return !1;
582
- } }
583
- function T(t, e) { return T = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, T(t, e); }
584
- function P(t) { return P = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, P(t); }
585
- var L, x, C, j, A, R;
586
- !function (t) { t.emailMagicLinks = "emailMagicLinks", t.oauth = "oauth", t.otp = "otp", t.crypto = "crypto", t.passwords = "passwords"; }(L || (L = {})), function (t) { t.Google = "google", t.Microsoft = "microsoft", t.Apple = "apple", t.Github = "github", t.GitLab = "gitlab", t.Facebook = "facebook", t.Discord = "discord", t.Slack = "slack", t.Amazon = "amazon", t.Bitbucket = "bitbucket", t.LinkedIn = "linkedin", t.Coinbase = "coinbase", t.Twitch = "twitch"; }(x || (x = {})), function (t) { t.Vessel = "Vessel", t.Phantom = "Phantom", t.Metamask = "Metamask", t.Coinbase = "Coinbase", t.Binance = "Binance", t.GenericEthereumWallet = "Other Ethereum Wallet", t.GenericSolanaWallet = "Other Solana Wallet"; }(C || (C = {})), function (t) { t.embedded = "embedded", t.floating = "floating"; }(j || (j = {})), function (t) { t.SMS = "sms", t.WhatsApp = "whatsapp", t.Email = "email"; }(A || (A = {})), function (t) { t.MagicLinkLoginOrCreateEvent = "MAGIC_LINK_LOGIN_OR_CREATE", t.OTPsLoginOrCreateEvent = "OTP_LOGIN_OR_CREATE", t.OTPsAuthenticate = "OTP_AUTHENTICATE", t.CryptoWalletAuthenticateStart = "CRYPTO_WALLET_AUTHENTICATE_START", t.CryptoWalletAuthenticate = "CRYPTO_WALLET_AUTHENTICATE", t.PasswordCreate = "PASSWORD_CREATE", t.PasswordAuthenticate = "PASSWORD_AUTHENTICATE", t.PasswordResetByEmailStart = "PASSWORD_RESET_BY_EMAIL_START", t.PasswordResetByEmail = "PASSWORD_RESET_BY_EMAIL"; }(R || (R = {}));
587
- var I, D, N = function (t) { _(r, S(Error)); var e = w(r); function r(t, n) { var o; return g(this, r), (o = e.call(this, t + "\n" + n)).message = t + "\n" + n, o.name = "SDKAPIUnreachableError", o.details = n, Object.setPrototypeOf(k(o), r.prototype), o; } return b(r); }(), M = function (t) { _(r, S(Error)); var e = w(r); function r(t, n) { var o; return g(this, r), (o = e.call(this)).name = "StytchSDKUsageError", o.message = "Invalid call to ".concat(t, "\n") + n, o; } return b(r); }(), U = function (t) { _(r, S(Error)); var e = w(r); function r(t) { var n, o; g(this, r), (n = e.call(this)).name = "StytchSDKSchemaError"; var i = null === (o = t.body) || void 0 === o ? void 0 : o.map((function (t) { return "".concat(t.dataPath, ": ").concat(t.message); })).join("\n"); return n.message = "[400] Request does not match expected schema\n".concat(i), n; } return b(r); }(), B = function (t) { _(r, S(Error)); var e = w(r); function r(t) { var n; g(this, r), (n = e.call(this)).name = "StytchSDKAPIError"; var o = t.status_code, i = t.error_type, a = t.error_message, s = t.error_url, c = t.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 b(r); }();
588
- function K(t, e, r, n) { return new (r || (r = Promise))((function (o, i) { function a(t) { try {
589
- c(n.next(t));
590
- }
591
- catch (t) {
592
- i(t);
593
- } } function s(t) { try {
594
- c(n.throw(t));
595
- }
596
- catch (t) {
597
- i(t);
598
- } } function c(t) { var e; t.done ? o(t.value) : (e = t.value, e instanceof r ? e : new r((function (t) { t(e); }))).then(a, s); } c((n = n.apply(t, e || [])).next()); })); }
599
- !function (t) { t.BiometricsSensorError = "biometrics_sensor_error", t.DeviceCredentialsNotAllowed = "device_credentials_not_allowed", t.DeviceHardwareError = "device_hardware_error", t.InternalError = "internal_error", t.KeyInvalidated = "key_invalidated", t.KeystoreUnavailable = "keystore_unavailable", t.NoBiometricsEnrolled = "no_biometrics_enrolled", t.NoBiometricsRegistration = "no_biometrics_registration", t.SessionExpired = "session_expired", t.UserCancellation = "user_cancellation", t.UserLockedOut = "user_locked_out"; }(I || (I = {}));
600
- var F = new Uint8Array(16);
601
- function q() { if (!D && !(D = "undefined" != typeof crypto && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || "undefined" != typeof msCrypto && "function" == typeof msCrypto.getRandomValues && msCrypto.getRandomValues.bind(msCrypto)))
602
- throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported"); return D(F); }
603
- var G = /^(?:[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;
604
- for (var W = [], H = 0; H < 256; ++H)
605
- W.push((H + 256).toString(16).substr(1));
606
- function z(t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, r = (W[t[e + 0]] + W[t[e + 1]] + W[t[e + 2]] + W[t[e + 3]] + "-" + W[t[e + 4]] + W[t[e + 5]] + "-" + W[t[e + 6]] + W[t[e + 7]] + "-" + W[t[e + 8]] + W[t[e + 9]] + "-" + W[t[e + 10]] + W[t[e + 11]] + W[t[e + 12]] + W[t[e + 13]] + W[t[e + 14]] + W[t[e + 15]]).toLowerCase(); if (!function (t) { return "string" == typeof t && G.test(t); }(r))
607
- throw TypeError("Stringified UUID is invalid"); return r; }
608
- function V(t, e, r) { var n = (t = t || {}).random || (t.rng || q)(); if (n[6] = 15 & n[6] | 64, n[8] = 63 & n[8] | 128, e) {
609
- r = r || 0;
610
- for (var o = 0; o < 16; ++o)
611
- e[r + o] = n[o];
612
- return e;
613
- } return z(n); }
614
- var Y = ["[Stytch]"], J = { debug: function () { return false; }, log: function () { for (var t, e = arguments.length, r = new Array(e), n = 0; n < e; n++)
615
- r[n] = arguments[n]; return (t = console).log.apply(t, Y.concat(r)); }, warn: function () { for (var t, e = arguments.length, r = new Array(e), n = 0; n < e; n++)
616
- r[n] = arguments[n]; return (t = console).warn.apply(t, Y.concat(r)); }, error: function () { for (var t, e = arguments.length, r = new Array(e), n = 0; n < e; n++)
617
- r[n] = arguments[n]; return (t = console).error.apply(t, Y.concat(r)); } }, $ = "\nYou can find your public token at https://stytch.com/dashboard/api-keys.", X = function (t) { var e = { isObject: function (r, n) { var o = "object" === p(n) && !Array.isArray(n) && null !== n; if (!o)
618
- throw new M(t, r + " must be an object."); return e; }, isOptionalObject: function (t, r) { return void 0 === r ? e : e.isObject(t, r); }, isString: function (r, n) { if ("string" != typeof n)
619
- throw new M(t, r + " must be a string."); return e; }, isOptionalString: function (t, r) { return void 0 === r ? e : e.isString(t, r); }, isStringArray: function (r, n) { if (!Array.isArray(n))
620
- throw new M(t, r + " must be an array of strings."); var o, i = function (t, e) { var r = "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]; if (!r) {
621
- if (Array.isArray(t) || (r = d(t)) || e && t && "number" == typeof t.length) {
622
- r && (t = r);
623
- var n = 0, o = function () { };
624
- return { s: o, n: function () { return n >= t.length ? { done: !0 } : { done: !1, value: t[n++] }; }, e: function (t) { throw t; }, f: o };
625
- }
626
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
627
- } var i, a = !0, s = !1; return { s: function () { r = r.call(t); }, n: function () { var t = r.next(); return a = t.done, t; }, e: function (t) { s = !0, i = t; }, f: function () { try {
628
- a || null == r.return || r.return();
629
- }
630
- finally {
631
- if (s)
632
- throw i;
633
- } } }; }(n); try {
634
- for (i.s(); !(o = i.n()).done;) {
635
- if ("string" != typeof o.value)
636
- throw new M(t, r + " must be an array of strings.");
637
- }
638
- }
639
- catch (t) {
640
- i.e(t);
641
- }
642
- finally {
643
- i.f();
644
- } return e; }, isNumber: function (r, n) { if ("number" != typeof n)
645
- throw new M(t, r + " must be a number."); return e; }, isOptionalNumber: function (t, r) { return void 0 === r ? e : e.isNumber(t, r); } }; return e; };
646
- function Z(t) { var e = t.method, r = t.errorMessage, n = t.finalURL, o = t.basicAuthHeader, i = t.xSDKClientHeader, a = t.xSDKParentHostHeader, s = t.body; return K(this, void 0, void 0, y().mark((function t() { var c, u, l, f, h; return y().wrap((function (t) { for (;;)
647
- switch (t.prev = t.next) {
648
- case 0: return c = { Authorization: o, "Content-Type": "application/json", "X-SDK-Client": i }, a && (c["X-SDK-Parent-Host"] = a), u = { method: e, headers: c, body: s && JSON.stringify(s) }, t.prev = 3, t.next = 6, fetch(n, u);
649
- case 6:
650
- l = t.sent, t.next = 14;
651
- break;
652
- case 9:
653
- if (t.prev = 9, t.t0 = t.catch(3), "Failed to fetch" !== t.t0.message) {
654
- t.next = 13;
655
- break;
656
- }
657
- throw new N(r, "Unable to contact the Stytch servers. Are you online?");
658
- case 13: throw t.t0;
659
- case 14:
660
- if (200 === l.status) {
661
- t.next = 27;
662
- break;
663
- }
664
- return t.prev = 15, t.next = 18, l.json();
665
- case 18:
666
- f = t.sent, t.next = 24;
667
- break;
668
- case 21: throw t.prev = 21, t.t1 = t.catch(15), new N(r, "Invalid or no response from server");
669
- case 24:
670
- if (!("body" in f || "params" in f || "query" in f)) {
671
- t.next = 26;
672
- break;
673
- }
674
- throw new U(f);
675
- case 26: throw new B(f);
676
- case 27: return t.prev = 27, t.next = 30, l.json();
677
- case 30: return h = t.sent, t.abrupt("return", h.data);
678
- case 34: throw t.prev = 34, t.t2 = t.catch(27), new N(r, "Invalid response from the Stytch servers.");
679
- case 37:
680
- case "end": return t.stop();
681
- } }), t, null, [[3, 9], [15, 21], [27, 34]]); }))); }
682
- var Q = function () { function t(e, r) { var n = this; g(this, t), this._subscriptionService = e, this._headlessSessionClient = r, this._onDataChange = function (t) { (null == t ? void 0 : t.session) ? n.scheduleBackgroundRefresh() : n.cancelBackgroundRefresh(); }, this._reauthenticateWithBackoff = function () { var e = function (e) { return function (r) { return t.isUnrecoverableRecoverableError(r) ? Promise.reject(r) : new Promise((function (r) { return setTimeout(r, t.timeoutForAttempt(e)); })).then((function () { return n._headlessSessionClient.authenticate(); })); }; }; return n._headlessSessionClient.authenticate().catch(e(0)).catch(e(1)).catch(e(2)).catch(e(3)).catch(e(4)); }, this.timeout = null, this._subscriptionService.subscribeToState(this._onDataChange); } return b(t, [{ key: "performBackgroundRefresh", value: function () { var t = this; this._reauthenticateWithBackoff().then((function () { t.scheduleBackgroundRefresh(); })).catch((function () { J.warn("Session background refresh failed. Signalling to app that user is logged out."), t._subscriptionService.destroyState(); })); } }, { key: "scheduleBackgroundRefresh", value: function () { var e = this; this.cancelBackgroundRefresh(), this.timeout = setTimeout((function () { e.performBackgroundRefresh(); }), t.REFRESH_INTERVAL_MS); } }, { key: "cancelBackgroundRefresh", value: function () { null !== this.timeout && (clearTimeout(this.timeout), this.timeout = null); } }], [{ key: "timeoutForAttempt", value: function (t) { return Math.floor(350 * Math.random()) - 175 + 2e3 * Math.pow(2, t); } }, { key: "isUnrecoverableRecoverableError", value: function (t) { return "unauthorized_credentials" === t.error_type || "user_unauthenticated" === t.error_type; } }]), t; }();
683
- Q.REFRESH_INTERVAL_MS = 18e4;
684
- var tt = 15, et = 800, rt = function () { function t(e) { g(this, t), this.maxBatchSize = e.maxBatchSize, this.logEventURL = e.logEventURL, setInterval(this.flush.bind(this), e.intervalDurationMs), this.batch = []; } return b(t, [{ key: "logEvent", value: function (t, e) { this.batch.push({ telemetry: t, event: e }), this.batch.length >= this.maxBatchSize && this.flush(); } }, { key: "flush", value: function () { return K(this, void 0, void 0, y().mark((function t() { var e; return y().wrap((function (t) { for (;;)
685
- switch (t.prev = t.next) {
686
- case 0:
687
- if (this.batch.length) {
688
- t.next = 2;
689
- break;
690
- }
691
- return t.abrupt("return");
692
- case 2: return e = this.batch, this.batch = [], t.prev = 4, t.next = 7, fetch(this.logEventURL, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(e) });
693
- case 7:
694
- t.next = 11;
695
- break;
696
- case 9: t.prev = 9, t.t0 = t.catch(4);
697
- case 11:
698
- case "end": return t.stop();
699
- } }), t, this, [[4, 9]]); }))); } }]), t; }();
700
- Promise.resolve({ pkceRequiredForEmailMagicLinks: !1 }), Promise.resolve({ pkceRequiredForPasswordResets: !1 });
701
- var nt = Promise.resolve({ pkceRequiredForEmailMagicLinks: !1 }), ot = function () { function t(e, r, n) { var o = this, i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : nt; g(this, t), this._networkClient = e, this._subscriptionService = r, this._pkceManager = n, this._config = i, this.email = { loginOrSignup: function (t) { return K(o, void 0, void 0, y().mark((function e() { var r, n, o, i; return y().wrap((function (e) { for (;;)
702
- switch (e.prev = e.next) {
703
- case 0: return X("stytch.magicLinks.email.loginOrSignup").isString("email", t.email_address).isString("organization_id", t.organization_id).isOptionalString("login_redirect_url", t.login_redirect_url).isOptionalString("login_template_id", t.login_template_id).isOptionalString("signup_redirect_url", t.signup_redirect_url).isOptionalString("signup_template_id", t.signup_template_id), e.next = 3, this._config;
704
- case 3:
705
- if (r = e.sent, n = r.pkceRequiredForEmailMagicLinks, o = void 0, !n) {
706
- e.next = 10;
707
- break;
708
- }
709
- return e.next = 9, this.getCodeChallenge();
710
- case 9: o = e.sent;
711
- case 10: return i = Object.assign(Object.assign({}, t), { pkce_code_challenge: o }), e.abrupt("return", this._networkClient.fetchSDK({ url: "/b2b/magic_links/email/login_or_signup", body: i, errorMessage: "Failed to send magic link", method: "POST" }));
712
- case 12:
713
- case "end": return e.stop();
714
- } }), e, this); }))); } }, this.authenticate = function (t) { return K(o, void 0, void 0, y().mark((function e() { var r, n, o; return y().wrap((function (e) { for (;;)
715
- switch (e.prev = e.next) {
716
- case 0: return X("stytch.magicLinks.authenticate").isString("magic_links_token", t.magic_links_token).isNumber("session_duration_minutes", t.session_duration_minutes), n = Object.assign({ pkce_code_verifier: null === (r = this._pkceManager.getPKPair()) || void 0 === r ? void 0 : r.code_verifier }, t), e.next = 4, this._networkClient.fetchSDK({ url: "/b2b/magic_links/authenticate", body: n, errorMessage: "Failed to authenticate token.", method: "POST" });
717
- case 4: return o = e.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 }), e.abrupt("return", o);
718
- case 8:
719
- case "end": return e.stop();
720
- } }), e, this); }))); }; } return b(t, [{ key: "getCodeChallenge", value: function () { return K(this, void 0, void 0, y().mark((function t() { var e; return y().wrap((function (t) { for (;;)
721
- switch (t.prev = t.next) {
722
- case 0:
723
- if (!(e = this._pkceManager.getPKPair())) {
724
- t.next = 3;
725
- break;
726
- }
727
- return t.abrupt("return", e.code_challenge);
728
- case 3: return t.next = 5, this._pkceManager.startPKCETransaction();
729
- case 5: return e = t.sent, t.abrupt("return", e.code_challenge);
730
- case 7:
731
- case "end": return t.stop();
732
- } }), t, this); }))); } }]), t; }(), it = b((function t(e, r) { var n = this; g(this, t), this._networkClient = e, this._subscriptionService = r, this.get = function () { return K(n, void 0, void 0, y().mark((function t() { var e; return y().wrap((function (t) { for (;;)
733
- switch (t.prev = t.next) {
734
- case 0: return t.next = 2, this._networkClient.fetchSDK({ url: "/b2b/organizations/members/me", errorMessage: "Failed to retrieve member info.", method: "GET" });
735
- case 2: return e = t.sent, this._subscriptionService.updateMember(e.member), t.abrupt("return", e.member);
736
- case 5:
737
- case "end": return t.stop();
738
- } }), t, this); }))); }, this.getSync = function () { return n._subscriptionService.getMember(); }, this.onChange = function (t) { return n._subscriptionService.subscribeToState((function (e) { var r; return t(null !== (r = null == e ? void 0 : e.member) && void 0 !== r ? r : null); })); }; })), at = function () { function t(e, r, n, o, i) { g(this, t), this._networkClient = e, this._subscriptionService = r, this._pkceManager = n, this._dynamicConfig = o, this._config = i; } return b(t, [{ key: "authenticate", value: function (t) { return K(this, void 0, void 0, y().mark((function e() { var r, n; return y().wrap((function (e) { for (;;)
739
- switch (e.prev = e.next) {
740
- case 0: return X("stytch.sso.authenticate").isString("sso_token", t.sso_token).isNumber("session_duration_minutes", t.session_duration_minutes), (r = this._pkceManager.getPKPair()) || J.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."), e.next = 5, this._networkClient.fetchSDK({ url: "/sso/authenticate", method: "POST", body: Object.assign({ pkce_code_verifier: null == r ? void 0 : r.code_verifier }, t), errorMessage: "Failed to authenticate token" });
741
- case 5: return n = e.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 }), e.abrupt("return", n);
742
- case 9:
743
- case "end": return e.stop();
744
- } }), e, this); }))); } }, { key: "getBaseApiUrl", value: function () { return K(this, void 0, void 0, y().mark((function t() { return y().wrap((function (t) { for (;;)
745
- switch (t.prev = t.next) {
746
- case 0:
747
- if (!this._config.publicToken.includes("public-token-test")) {
748
- t.next = 2;
749
- break;
750
- }
751
- return t.abrupt("return", this._config.testAPIURL);
752
- case 2: return t.abrupt("return", this._config.liveAPIURL);
753
- case 3:
754
- case "end": return t.stop();
755
- } }), t, this); }))); } }, { key: "start", value: function (t) { var e = t.connection_id, r = t.login_redirect_url, n = t.signup_redirect_url; return K(this, void 0, void 0, y().mark((function t() { var o, i, a, s, c; return y().wrap((function (t) { for (;;)
756
- switch (t.prev = t.next) {
757
- case 0: return t.next = 2, this._dynamicConfig;
758
- case 2: return o = t.sent, i = o.pkceRequiredForSso, t.next = 6, this.getBaseApiUrl();
759
- case 6:
760
- if (a = t.sent, (s = new URL("".concat(a, "/v1/public/sso/start"))).searchParams.set("public_token", this._config.publicToken), s.searchParams.set("connection_id", e), !i) {
761
- t.next = 17;
762
- break;
763
- }
764
- return t.next = 13, this._pkceManager.startPKCETransaction();
765
- case 13:
766
- c = t.sent, s.searchParams.set("pkce_code_challenge", c.code_challenge), t.next = 18;
767
- break;
768
- case 17: this._pkceManager.clearPKPair();
769
- case 18: r && s.searchParams.set("login_redirect_url", r), n && s.searchParams.set("signup_redirect_url", n), window.location.href = s.toString();
770
- case 21:
771
- case "end": return t.stop();
772
- } }), t, this); }))); } }]), t; }(), st = b((function t(e) { var r = this; g(this, t), this._networkClient = e, this.get = function () { return K(r, void 0, void 0, y().mark((function t() { var e; return y().wrap((function (t) { for (;;)
773
- switch (t.prev = t.next) {
774
- case 0: return t.next = 2, this._networkClient.fetchSDK({ url: "/b2b/organizations/me", errorMessage: "Failed to retrieve organization info.", method: "GET" });
775
- case 2: return e = t.sent, t.abrupt("return", e.organization);
776
- case 4:
777
- case "end": return t.stop();
778
- } }), t, this); }))); }; })), ct = function () { function t(e, r) { var n = this; g(this, t), this._networkClient = e, this._subscriptionService = r, this.getSync = function () { return n._subscriptionService.getSession(); }, this.onChange = function (t) { return n._subscriptionService.subscribeToState((function (e) { var r; return t(null !== (r = null == e ? void 0 : e.session) && void 0 !== r ? r : null); })); }, this.revoke = function () { return K(n, void 0, void 0, y().mark((function t() { var e; return y().wrap((function (t) { for (;;)
779
- switch (t.prev = t.next) {
780
- case 0: return t.next = 2, this._networkClient.fetchSDK({ url: "/b2b/sessions/revoke", errorMessage: "Error revoking session", method: "POST" });
781
- case 2:
782
- e = t.sent;
783
- try {
784
- this._subscriptionService.destroyState();
785
- }
786
- catch (t) { }
787
- return t.abrupt("return", e);
788
- case 5:
789
- case "end": return t.stop();
790
- } }), t, this); }))); }, this.authenticate = function (t) { return K(n, void 0, void 0, y().mark((function e() { var r, n; return y().wrap((function (e) { for (;;)
791
- switch (e.prev = e.next) {
792
- case 0: return e.prev = 0, r = { session_duration_minutes: null == t ? void 0 : t.session_duration_minutes }, e.next = 4, this._networkClient.fetchSDK({ url: "/b2b/sessions/authenticate", body: r, errorMessage: "Error authenticating session", method: "POST" });
793
- case 4: return n = e.sent, this._subscriptionService.updateStateAndTokens({ state: { session: n.member_session, member: n.member }, session_token: n.session_token, session_jwt: n.session_jwt }), e.abrupt("return", n);
794
- case 9: throw e.prev = 9, e.t0 = e.catch(0), this._subscriptionService.destroyState(), e.t0;
795
- case 13:
796
- case "end": return e.stop();
797
- } }), e, this, [[0, 9]]); }))); }; } return b(t, [{ key: "getTokens", value: function () { return this._subscriptionService.getTokens(); } }]), t; }(), ut = Symbol.for("stytch__internal"), lt = function (t, e) { Object.assign(t, function (t, e, r) { return (e = f(e)) in t ? Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = r, t; }({}, ut, e)); };
798
- function ft(t, e, r, n) { return new (r || (r = Promise))((function (o, i) { function a(t) { try {
799
- c(n.next(t));
800
- }
801
- catch (t) {
802
- i(t);
803
- } } function s(t) { try {
804
- c(n.throw(t));
805
- }
806
- catch (t) {
807
- i(t);
808
- } } function c(t) { var e; t.done ? o(t.value) : (e = t.value, e instanceof r ? e : new r((function (t) { t(e); }))).then(a, s); } c((n = n.apply(t, e || [])).next()); })); }
809
- var ht = function () { function t(e, r, n, o) { c(this, t), this._publicToken = e, this._subscriptionDataLayer = r, this.baseURL = n, this.additionalTelemetryDataFn = o, this.updateSessionToken = function () { return null; }, this.eventLogger = new rt({ maxBatchSize: tt, intervalDurationMs: et, logEventURL: this.buildSDKUrl("/events") }); } return l(t, [{ key: "logEvent", value: function (t) { var e = t.name, r = t.details, n = t.error, o = void 0 === n ? {} : n; this.eventLogger.logEvent(this.createTelemetryBlob(), { public_token: this._publicToken, event_name: e, 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(V()), app_session_id: "app-session-id-".concat(V()), persistent_id: "persistent-id-".concat(V()), 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.10.0" } }); } }, { key: "fetchSDK", value: function (t) { var e = t.url, r = t.body, n = t.errorMessage, o = t.method; return ft(this, void 0, void 0, s().mark((function t() { var i, a, c, u; return s().wrap((function (t) { for (;;)
810
- switch (t.prev = t.next) {
811
- case 0: return i = this._subscriptionDataLayer.readSessionCookie().session_token, a = "Basic " + window.btoa(this._publicToken + ":" + (i || this._publicToken)), c = window.btoa(JSON.stringify(this.createTelemetryBlob())), u = window.location.origin, t.abrupt("return", Z({ basicAuthHeader: a, body: r, errorMessage: n, finalURL: this.buildSDKUrl(e), method: o, xSDKClientHeader: c, xSDKParentHostHeader: u }));
812
- case 5:
813
- case "end": return t.stop();
814
- } }), t, this); }))); } }, { key: "buildSDKUrl", value: function (t) { return "".concat(this.baseURL, "/sdk/v1").concat(t); } }]), t; }();
815
- /*! js-cookie v3.0.1 | MIT */
816
- function pt(t) { for (var e = 1; e < arguments.length; e++) {
817
- var r = arguments[e];
818
- for (var n in r)
819
- t[n] = r[n];
820
- } return t; }
821
- var dt = function t(e, r) { function n(t, n, o) { if ("undefined" != typeof document) {
822
- "number" == typeof (o = pt({}, r, o)).expires && (o.expires = new Date(Date.now() + 864e5 * o.expires)), o.expires && (o.expires = o.expires.toUTCString()), t = encodeURIComponent(t).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent).replace(/[()]/g, escape);
823
- var i = "";
824
- for (var a in o)
825
- o[a] && (i += "; " + a, !0 !== o[a] && (i += "=" + o[a].split(";")[0]));
826
- return document.cookie = t + "=" + e.write(n, t) + i;
827
- } } return Object.create({ set: n, get: function (t) { if ("undefined" != typeof document && (!arguments.length || t)) {
828
- for (var r = document.cookie ? document.cookie.split("; ") : [], n = {}, o = 0; o < r.length; o++) {
829
- var i = r[o].split("="), a = i.slice(1).join("=");
830
- try {
831
- var s = decodeURIComponent(i[0]);
832
- if (n[s] = e.read(a, s), t === s)
833
- break;
834
- }
835
- catch (t) { }
836
- }
837
- return t ? n[t] : n;
838
- } }, remove: function (t, e) { n(t, "", pt({}, e, { expires: -1 })); }, withAttributes: function (e) { return t(this.converter, pt({}, this.attributes, e)); }, withConverter: function (e) { return t(pt({}, this.converter, e), this.attributes); } }, { attributes: { value: Object.freeze(r) }, converter: { value: Object.freeze(e) } }); }({ read: function (t) { return '"' === t[0] && (t = t.slice(1, -1)), t.replace(/(%[\dA-F]{2})+/gi, decodeURIComponent); }, write: function (t) { return encodeURIComponent(t).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, decodeURIComponent); } }, { path: "/" }), vt = "stytch_sdk_state_", yt = function (t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ""; return "".concat(vt).concat(t).concat(e ? "::".concat(e) : ""); }, mt = function () { function t(e, r) { var n = this; c(this, t), this.browserSessionStorage = { getItem: function (t) { return sessionStorage.getItem(yt(n.publicToken, t)); }, setItem: function (t, e) { return sessionStorage.setItem(yt(n.publicToken, t), e); }, removeItem: function (t) { return sessionStorage.removeItem(yt(n.publicToken, t)); } }, this.publicToken = e, this.state = null, this.subscriptions = {}, (null == r ? void 0 : r.cookieOptions) ? (X("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(yt(this.publicToken)); if (o) {
839
- var i;
840
- try {
841
- i = JSON.parse(o);
842
- }
843
- catch (t) {
844
- return this.syncToLocalStorage(), void this.removeSessionCookie();
845
- }
846
- this.state = i;
847
- }
848
- else
849
- this.removeSessionCookie(); } return l(t, [{ key: "opaqueTokenCookieName", get: function () { var t; return null !== (t = this._opaqueTokenCookieName) && void 0 !== t ? t : "stytch_session"; } }, { key: "jwtCookieName", get: function () { var t; return null !== (t = this._jwtCookieName) && void 0 !== t ? t : "stytch_session_jwt"; } }, { key: "readSessionCookie", value: function () { return { session_token: dt.get(this.opaqueTokenCookieName), session_jwt: dt.get(this.jwtCookieName) }; } }, { key: "writeSessionCookie", value: function (e) { var r, n, o = e.state, i = e.session_token, a = e.session_jwt, s = t.generateCookieOpts({ expiresAt: null !== (n = null === (r = null == o ? void 0 : o.session) || void 0 === r ? void 0 : r.expires_at) && void 0 !== n ? n : "", availableToSubdomains: this._cookieAvailableToSubdomains, path: this._cookiePath }); dt.set(this.opaqueTokenCookieName, i, s), dt.set(this.jwtCookieName, a, s); } }, { key: "removeSessionCookie", value: function () { var e = this; [!0, !1].forEach((function (r) { [e._cookiePath, null].forEach((function (n) { var o = t.generateCookieOpts({ expiresAt: new Date(0).toString(), availableToSubdomains: r, path: n }); dt.remove(e.opaqueTokenCookieName, o), dt.remove(e.jwtCookieName, o); })); })); } }, { key: "syncToLocalStorage", value: function () { localStorage.setItem(yt(this.publicToken), JSON.stringify(this.state)); } }, { key: "getItem", value: function (t) { return localStorage.getItem(yt(this.publicToken, t)); } }, { key: "setItem", value: function (t, e) { return localStorage.setItem(yt(this.publicToken, t), e); } }, { key: "removeItem", value: function (t) { return localStorage.removeItem(yt(this.publicToken, t)); } }], [{ key: "generateCookieOpts", value: function (t) { var e = t.path, r = t.availableToSubdomains, n = t.expiresAt, o = { expires: new Date(n), sameSite: "lax" }; return e && (o.path = e), 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; } }]), t; }(), bt = function (t) { n(r, mt); var e = i(r); function r() { return c(this, r), e.apply(this, arguments); } return l(r); }(), gt = Symbol.for("__stytch_b2b_DataLayer"), _t = function (t, e) { var r, n = ((r = window)[gt] || (r[gt] = {}), r[gt]); return n[t] || (n[t] = new bt(t, e)), n[t]; }, wt = function (t, e) { Object.values(t).forEach((function (t) { return t(e); })); }, kt = function () { var t = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).KEYS_TO_EXCLUDE, e = void 0 === t ? [] : t; return function t(r, n) { return p(r) === p(n) && (null === r || null === n ? r === n : "object" === p(r) ? Object.keys(r).length === Object.keys(n).length && !Object.keys(r).some((function (t) { return !(t in n); })) && Object.entries(r).filter((function (t) { var r = h(t, 1)[0]; return !e.includes(r); })).every((function (e) { var r = h(e, 2), o = r[0], i = r[1]; return t(i, n[o]); })) : r === n); }; }({ KEYS_TO_EXCLUDE: ["last_accessed_at"] }), St = function () { function t(e, r) { var n, o = this; c(this, t), this._publicToken = e, this._datalayer = r, this._listen = function (t) { t.key === yt(o._publicToken) && (null !== t.newValue ? o._updateStateAndTokensInternal(JSON.parse(t.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 l(t, [{ key: "getTokens", value: function () { var t = this._datalayer.readSessionCookie(), e = t.session_token, r = t.session_jwt; return e && r ? { session_token: e, session_jwt: r } : null; } }, { key: "destroyState", value: function () { this.updateStateAndTokens({ state: null, session_token: null, session_jwt: null }); } }, { key: "_updateStateAndTokensInternal", value: function (t) { var e = t.state, r = this._datalayer.state; this._datalayer.state = e || null, kt(r, t.state) || wt(this._datalayer.subscriptions, t.state); } }, { key: "updateStateAndTokens", value: function (t) { t.state ? this._datalayer.writeSessionCookie(t) : this._datalayer.removeSessionCookie(), this._updateStateAndTokensInternal(t), this._datalayer.syncToLocalStorage(); } }, { key: "updateState", value: function (t) { var e = this._datalayer.state, r = Object.assign(Object.assign({}, this._datalayer.state), t); this._datalayer.state = r, kt(e, r) || (wt(this._datalayer.subscriptions, r), this._datalayer.syncToLocalStorage()); } }, { key: "subscribeToState", value: function (t) { return e = this._datalayer.subscriptions, r = t, n = Math.random().toString(36).slice(-10), e[n] = r, function () { return delete e[n]; }; var e, 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; } }]), t; }(), Et = function (t) { n(r, St); var e = i(r); function r() { var t; return c(this, r), (t = e.apply(this, arguments)).updateMember = function (e) { return t.updateState({ member: e }); }, t.getMember = function () { var e, r; return null !== (r = null === (e = t.getState()) || void 0 === e ? void 0 : e.member) && void 0 !== r ? r : null; }, t.getSession = function () { var e, r; return null !== (r = null === (e = t.getState()) || void 0 === e ? void 0 : e.session) && void 0 !== r ? r : null; }, t; } return l(r); }();
850
- function Ot(t) { var e = t.toString(16); return 1 === e.length && (e = "0" + e), e; }
851
- var Tt, Pt, Lt, xt, Ct, jt, At = function () { function t(e, r) { c(this, t), this._dataLayer = e, this.namespace = r; } return l(t, [{ key: "key", value: function () { return "PKCE_VERIFIER:" + this.namespace; } }, { key: "startPKCETransaction", value: function () { return ft(this, void 0, void 0, s().mark((function e() { var r; return s().wrap((function (e) { for (;;)
852
- switch (e.prev = e.next) {
853
- case 0: return e.next = 2, t.createProofkeyPair();
854
- case 2: return r = e.sent, this._dataLayer.setItem(this.key(), JSON.stringify(r)), e.abrupt("return", r);
855
- case 5:
856
- case "end": return e.stop();
857
- } }), e, this); }))); } }, { key: "getPKPair", value: function () { var t = this._dataLayer.getItem(this.key()); if (null !== t)
858
- try {
859
- return JSON.parse(t);
860
- }
861
- catch (t) {
862
- return void J.warn("Found malformed Proof Key pair in localstorage.");
863
- } } }, { key: "clearPKPair", value: function () { return this._dataLayer.removeItem(this.key()); } }], [{ key: "createProofkeyPair", value: function () { return ft(this, void 0, void 0, s().mark((function t() { var r, n, o; return s().wrap((function (t) { for (;;)
864
- switch (t.prev = t.next) {
865
- case 0: return r = new Uint32Array(16), window.crypto.getRandomValues(r), n = Array.from(r).map(Ot).join(""), t.next = 5, window.crypto.subtle.digest("SHA-256", (new TextEncoder).encode(n));
866
- case 5: return o = t.sent, t.abrupt("return", { code_challenge: (i = o, a = void 0, btoa((a = String.fromCharCode).call.apply(a, [null].concat(e(new Uint8Array(i))))).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "")), code_verifier: n });
867
- case 7:
868
- case "end": return t.stop();
869
- } var i, a; }), t); }))); } }]), t; }(), Rt = "bootstrap", It = function () { return { displayWatermark: !1, cnameDomain: null, emailDomains: ["stytch.com"], captchaSettings: { enabled: !1 }, pkceRequiredForEmailMagicLinks: !1, pkceRequiredForPasswordResets: !1, pkceRequiredForOAuth: !1, pkceRequiredForSso: !1 }; }, Dt = function () { function t(e, r, n) { var o = this; c(this, t), this._publicToken = e, 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(t.mapBootstrapData).then((function (t) { return o._dataLayer.setItem(Rt, JSON.stringify(t)), t; })).catch((function (t) { return J.error(t), It(); })); } return l(t, [{ key: "getSync", value: function () { var t = this._dataLayer.getItem(Rt); if (null === t)
870
- return It(); try {
871
- return JSON.parse(t);
872
- }
873
- catch (t) {
874
- return It();
875
- } } }, { key: "getAsync", value: function () { return this._bootstrapDataPromise; } }], [{ key: "mapBootstrapData", value: function (t) { return { displayWatermark: !t.disable_sdk_watermark, captchaSettings: t.captcha_settings, cnameDomain: t.cname_domain, emailDomains: t.email_domains, pkceRequiredForEmailMagicLinks: t.pkce_required_for_email_magic_links, pkceRequiredForPasswordResets: t.pkce_required_for_password_resets, pkceRequiredForOAuth: t.pkce_required_for_oauth, pkceRequiredForSso: t.pkce_required_for_sso }; } }]), t; }(), Nt = l((function t(e, r) { var n, o = this; c(this, t), function (t) { if ("undefined" == typeof window)
876
- throw new Error("The ".concat(t, " is not compatible with server-side environments.\nIf using nextjs, use the create").concat(t, " 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 = e) ? J.warn("Public token is malformed. Expected a string, got ".concat(p(n), ".").concat($)) : "" === n ? J.warn('Public token is malformed. Expected "public-token-...", got an empty string.'.concat($)) : n.startsWith("public-token-") || J.warn('Public token is malformed. Expected "public-token-...", got '.concat(n, ".").concat($)); var i, a, s, u, l, f, h, d, v, y = r, m = { cookieOptions: null == (i = y) ? void 0 : i.cookieOptions, endpoints: { sdkBackendURL: null !== (s = null === (a = null == i ? void 0 : i.endpoints) || void 0 === a ? void 0 : a.sdkBackendURL) && void 0 !== s ? s : "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 !== (h = null === (f = null == i ? void 0 : i.endpoints) || void 0 === f ? void 0 : f.liveAPIURL) && void 0 !== h ? h : "https://api.stytch.com", clientsideServicesIframeURL: null !== (v = null === (d = null == i ? void 0 : i.endpoints) || void 0 === d ? void 0 : d.clientsideServicesIframeURL) && void 0 !== v ? v : "https://js.stytch.com/clientside-services/index.html" } }; this._dataLayer = _t(e, y), this._subscriptionService = new Et(e, this._dataLayer); this._networkClient = new ht(e, this._dataLayer, m.endpoints.sdkBackendURL, (function () { var t, e, r, n; return { stytch_member_id: null === (e = null === (t = o._dataLayer.state) || void 0 === t ? void 0 : t.member) || void 0 === e ? void 0 : e.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 b = new Dt(e, this._networkClient, this._dataLayer); this.organization = new st(this._networkClient), this.member = new it(this._networkClient, this._subscriptionService), this.session = new ct(this._networkClient, this._subscriptionService), this.magicLinks = new ot(this._networkClient, this._subscriptionService, new At(this._dataLayer, "magic_links"), b.getAsync()), this.sso = new at(this._networkClient, this._subscriptionService, new At(this._dataLayer, "sso"), b.getAsync(), { publicToken: e, testAPIURL: m.endpoints.testAPIURL, liveAPIURL: m.endpoints.liveAPIURL }), this._sessionManager = new Q(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 } }), lt(this, { bootstrap: b, publicToken: e }); }));
877
- function Mt(t) { return Mt = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, Mt(t); }
878
- function Ut(t, e) { for (var r = 0; r < e.length; r++) {
879
- var n = e[r];
880
- n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, (o = n.key, i = void 0, i = function (t, e) { if ("object" !== Mt(t) || null === t)
881
- return t; var r = t[Symbol.toPrimitive]; if (void 0 !== r) {
882
- var n = r.call(t, e || "default");
883
- if ("object" !== Mt(n))
884
- return n;
885
- throw new TypeError("@@toPrimitive must return a primitive value.");
886
- } return ("string" === e ? String : Number)(t); }(o, "string"), "symbol" === Mt(i) ? i : String(i)), n);
887
- } var o, i; }
888
- function Bt(t, e, r) { return e && Ut(t.prototype, e), r && Ut(t, r), Object.defineProperty(t, "prototype", { writable: !1 }), t; }
889
- function Kt(t, e) { if (!(t instanceof e))
890
- throw new TypeError("Cannot call a class as a function"); }
891
- function Ft(t, e) { if ("function" != typeof e && null !== e)
892
- throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && Vt(t, e); }
893
- function qt(t) { var e = zt(); return function () { var r, n = Yt(t); if (e) {
894
- var o = Yt(this).constructor;
895
- r = Reflect.construct(n, arguments, o);
896
- }
897
- else
898
- r = n.apply(this, arguments); return function (t, e) { if (e && ("object" === Mt(e) || "function" == typeof e))
899
- return e; if (void 0 !== e)
900
- throw new TypeError("Derived constructors may only return object or undefined"); return Gt(t); }(this, r); }; }
901
- function Gt(t) { if (void 0 === t)
902
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return t; }
903
- function Wt(t) { var e = "function" == typeof Map ? new Map : void 0; return Wt = function (t) { if (null === t || (r = t, -1 === Function.toString.call(r).indexOf("[native code]")))
904
- return t; var r; if ("function" != typeof t)
905
- throw new TypeError("Super expression must either be null or a function"); if (void 0 !== e) {
906
- if (e.has(t))
907
- return e.get(t);
908
- e.set(t, n);
909
- } function n() { return Ht(t, arguments, Yt(this).constructor); } return n.prototype = Object.create(t.prototype, { constructor: { value: n, enumerable: !1, writable: !0, configurable: !0 } }), Vt(n, t); }, Wt(t); }
910
- function Ht(t, e, r) { return Ht = zt() ? Reflect.construct.bind() : function (t, e, r) { var n = [null]; n.push.apply(n, e); var o = new (Function.bind.apply(t, n)); return r && Vt(o, r.prototype), o; }, Ht.apply(null, arguments); }
911
- function zt() { if ("undefined" == typeof Reflect || !Reflect.construct)
912
- return !1; if (Reflect.construct.sham)
913
- return !1; if ("function" == typeof Proxy)
914
- return !0; try {
915
- return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function () { }))), !0;
916
- }
917
- catch (t) {
918
- return !1;
919
- } }
920
- function Vt(t, e) { return Vt = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, Vt(t, e); }
921
- function Yt(t) { return Yt = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, Yt(t); }
922
- !function (t) { t.emailMagicLinks = "emailMagicLinks", t.oauth = "oauth", t.otp = "otp", t.crypto = "crypto", t.passwords = "passwords"; }(Tt || (Tt = {})), function (t) { t.Google = "google", t.Microsoft = "microsoft", t.Apple = "apple", t.Github = "github", t.GitLab = "gitlab", t.Facebook = "facebook", t.Discord = "discord", t.Slack = "slack", t.Amazon = "amazon", t.Bitbucket = "bitbucket", t.LinkedIn = "linkedin", t.Coinbase = "coinbase", t.Twitch = "twitch"; }(Pt || (Pt = {})), function (t) { t.Vessel = "Vessel", t.Phantom = "Phantom", t.Metamask = "Metamask", t.Coinbase = "Coinbase", t.Binance = "Binance", t.GenericEthereumWallet = "Other Ethereum Wallet", t.GenericSolanaWallet = "Other Solana Wallet"; }(Lt || (Lt = {})), function (t) { t.embedded = "embedded", t.floating = "floating"; }(xt || (xt = {})), function (t) { t.SMS = "sms", t.WhatsApp = "whatsapp", t.Email = "email"; }(Ct || (Ct = {})), function (t) { t.MagicLinkLoginOrCreateEvent = "MAGIC_LINK_LOGIN_OR_CREATE", t.OTPsLoginOrCreateEvent = "OTP_LOGIN_OR_CREATE", t.OTPsAuthenticate = "OTP_AUTHENTICATE", t.CryptoWalletAuthenticateStart = "CRYPTO_WALLET_AUTHENTICATE_START", t.CryptoWalletAuthenticate = "CRYPTO_WALLET_AUTHENTICATE", t.PasswordCreate = "PASSWORD_CREATE", t.PasswordAuthenticate = "PASSWORD_AUTHENTICATE", t.PasswordResetByEmailStart = "PASSWORD_RESET_BY_EMAIL_START", t.PasswordResetByEmail = "PASSWORD_RESET_BY_EMAIL"; }(jt || (jt = {}));
923
- var Jt; (function (t) { Ft(r, Wt(Error)); var e = qt(r); function r(t, n) { var o; return Kt(this, r), (o = e.call(this, t + "\n" + n)).message = t + "\n" + n, o.name = "SDKAPIUnreachableError", o.details = n, Object.setPrototypeOf(Gt(o), r.prototype), o; } return Bt(r); })(); (function (t) { Ft(r, Wt(Error)); var e = qt(r); function r(t, n) { var o; return Kt(this, r), (o = e.call(this)).name = "StytchSDKUsageError", o.message = "Invalid call to ".concat(t, "\n") + n, o; } return Bt(r); })(); (function (t) { Ft(r, Wt(Error)); var e = qt(r); function r(t) { var n, o; Kt(this, r), (n = e.call(this)).name = "StytchSDKSchemaError"; var i = null === (o = t.body) || void 0 === o ? void 0 : o.map((function (t) { return "".concat(t.dataPath, ": ").concat(t.message); })).join("\n"); return n.message = "[400] Request does not match expected schema\n".concat(i), n; } return Bt(r); })(); (function (t) { Ft(r, Wt(Error)); var e = qt(r); function r(t) { var n; Kt(this, r), (n = e.call(this)).name = "StytchSDKAPIError"; var o = t.status_code, i = t.error_type, a = t.error_message, s = t.error_url, c = t.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 Bt(r); })(); (function (t) { Ft(r, Wt(Error)); var e = qt(r); function r(t) { var n; return Kt(this, r), (n = e.call(this)).name = "StytchSDKNativeError", n.error_type = t, n.message = "".concat(t), n; } return Bt(r); })();
924
- !function (t) { t.BiometricsSensorError = "biometrics_sensor_error", t.DeviceCredentialsNotAllowed = "device_credentials_not_allowed", t.DeviceHardwareError = "device_hardware_error", t.InternalError = "internal_error", t.KeyInvalidated = "key_invalidated", t.KeystoreUnavailable = "keystore_unavailable", t.NoBiometricsEnrolled = "no_biometrics_enrolled", t.NoBiometricsRegistration = "no_biometrics_registration", t.SessionExpired = "session_expired", t.UserCancellation = "user_cancellation", t.UserLockedOut = "user_locked_out"; }(Jt || (Jt = {}));
925
-
926
- /**
927
- * Creates a Headless Stytch client object to call the stytch B2B APIs.
928
- * The Stytch client is not available serverside.
929
- * @example
930
- * const stytch = createStytchB2BHeadlessClient('public-token-<find yours in the stytch dashboard>')
931
- *
932
- * return (
933
- * <StytchB2BProvider stytch={stytch}>
934
- * <App />
935
- * </StytchB2BProvider>
936
- * )
937
- * @returns A {@link StytchHeadlessClient}
938
- */
939
- const createStytchB2BHeadlessClient = (...args) => {
940
- if (typeof window === 'undefined') {
941
- return createStytchSSRProxy();
942
- }
943
- return new Nt(...args);
944
- };
945
-
946
- export { StytchB2BProvider, createStytchB2BHeadlessClient, useStytchB2BClient, useStytchMember, useStytchMemberSession, withStytchB2BClient, withStytchMember, withStytchMemberSession };