@quiltt/react 3.3.9 → 3.4.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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/hooks/helpers/useEventListener.ts","../src/hooks/helpers/useIsomorphicLayoutEffect.ts","../src/hooks/session/useIdentifySession.ts","../src/hooks/session/useAuthenticateSession.ts","../src/hooks/session/useImportSession.ts","../src/hooks/session/useRevokeSession.ts","../../../node_modules/.pnpm/tslib@2.5.0/node_modules/tslib/tslib.es6.js","../../../node_modules/.pnpm/ts-invariant@0.10.3/node_modules/ts-invariant/src/invariant.ts","../../../node_modules/.pnpm/@apollo+client@3.7.16_graphql@16.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@apollo/src/utilities/globals/maybe.ts","../../../node_modules/.pnpm/@apollo+client@3.7.16_graphql@16.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@apollo/src/utilities/globals/global.ts","../../../node_modules/.pnpm/@apollo+client@3.7.16_graphql@16.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@apollo/src/utilities/globals/DEV.ts","../../../node_modules/.pnpm/ts-invariant@0.10.3/node_modules/ts-invariant/process/index.js","../../../node_modules/.pnpm/graphql@16.8.1/node_modules/graphql/jsutils/devAssert.mjs","../../../node_modules/.pnpm/graphql@16.8.1/node_modules/graphql/jsutils/inspect.mjs","../../../node_modules/.pnpm/graphql@16.8.1/node_modules/graphql/language/source.mjs","../../../node_modules/.pnpm/@apollo+client@3.7.16_graphql@16.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@apollo/src/utilities/globals/fix-graphql.ts","../../../node_modules/.pnpm/@apollo+client@3.7.16_graphql@16.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@apollo/src/utilities/globals/index.ts","../../../node_modules/.pnpm/@apollo+client@3.7.16_graphql@16.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@apollo/src/utilities/common/canUse.ts","../../../node_modules/.pnpm/@apollo+client@3.7.16_graphql@16.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@apollo/src/react/context/ApolloContext.ts","../../../node_modules/.pnpm/@apollo+client@3.7.16_graphql@16.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@apollo/src/react/context/ApolloProvider.tsx","../../../node_modules/.pnpm/@apollo+client@3.7.16_graphql@16.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@apollo/src/react/hooks/useApolloClient.ts","../src/hooks/useQuilttClient.ts","../src/hooks/useQuilttConnector.ts","../src/hooks/useQuilttSession.ts","../src/hooks/useSession.ts","../src/hooks/useStorage.ts","../src/hooks/useQuilttSettings.ts","../src/hooks/useScript.ts","../src/providers/QuilttAuthProvider.tsx","../src/providers/QuilttSettingsProvider.tsx","../src/providers/QuilttProvider.tsx","../src/components/QuilttButton.tsx","../src/components/QuilttContainer.tsx"],"sourcesContent":["export * from '@quiltt/core'\nexport * from './hooks'\nexport * from './providers'\nexport * from './components'\n","'use client'\n\nimport { RefObject, useEffect, useRef } from 'react'\n\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect'\n\n// MediaQueryList Event based useEventListener interface\nexport function useEventListener<K extends keyof MediaQueryListEventMap>(\n eventName: K,\n handler: (event: MediaQueryListEventMap[K]) => void,\n element: RefObject<MediaQueryList>,\n options?: boolean | AddEventListenerOptions\n): void\n\n// Window Event based useEventListener interface\nexport function useEventListener<K extends keyof WindowEventMap>(\n eventName: K,\n handler: (event: WindowEventMap[K]) => void,\n element?: undefined,\n options?: boolean | AddEventListenerOptions\n): void\n\n// Element Event based useEventListener interface\nexport function useEventListener<\n K extends keyof HTMLElementEventMap,\n T extends HTMLElement = HTMLDivElement\n>(\n eventName: K,\n handler: (event: HTMLElementEventMap[K]) => void,\n element: RefObject<T>,\n options?: boolean | AddEventListenerOptions\n): void\n\n// Document Event based useEventListener interface\nexport function useEventListener<K extends keyof DocumentEventMap>(\n eventName: K,\n handler: (event: DocumentEventMap[K]) => void,\n element: RefObject<Document>,\n options?: boolean | AddEventListenerOptions\n): void\n\n/**\n * Supports Window, Element and Document and custom events with almost\n * the same parameters as the native addEventListener options.\n */\nexport function useEventListener<\n KW extends keyof WindowEventMap,\n KH extends keyof HTMLElementEventMap,\n KM extends keyof MediaQueryListEventMap,\n T extends HTMLElement | MediaQueryList | void = void\n>(\n eventName: KW | KH | KM,\n handler: (\n event: WindowEventMap[KW] | HTMLElementEventMap[KH] | MediaQueryListEventMap[KM] | Event\n ) => void,\n element?: RefObject<T>,\n options?: boolean | AddEventListenerOptions\n) {\n // Create a ref that stores handler\n const savedHandler = useRef(handler)\n\n useIsomorphicLayoutEffect(() => {\n savedHandler.current = handler\n }, [handler])\n\n useEffect(() => {\n // Define the listening target\n const targetElement: T | Window = element?.current ?? window\n\n if (!(targetElement && targetElement.addEventListener)) return\n\n // Create event listener that calls handler function stored in ref\n const listener: typeof handler = (event) => savedHandler.current(event)\n\n targetElement.addEventListener(eventName, listener, options)\n\n // Remove event listener on cleanup\n return () => {\n targetElement.removeEventListener(eventName, listener, options)\n }\n }, [eventName, element, options])\n}\n\nexport default useEventListener\n","'use client'\n\nimport { useEffect, useLayoutEffect } from 'react'\n\n/**\n * This hook is a browser hook. But React code could be generated from the server without the Window API.\n * This hook switches between useEffect and useLayoutEffect following the execution environment.\n */\nexport const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n\nexport default useIsomorphicLayoutEffect\n","import { useCallback } from 'react'\n\nimport type {\n AuthAPI,\n SessionResponse,\n UnprocessableData,\n UnprocessableResponse,\n UsernamePayload,\n} from '@quiltt/core'\n\nimport type { SetSession } from '../useSession'\n\ntype IdentifySessionCallbacks = {\n onSuccess?: () => unknown\n onChallenged?: () => unknown\n onError?: (errors: UnprocessableData) => unknown\n}\nexport type IdentifySession = (\n payload: UsernamePayload,\n callbacks: IdentifySessionCallbacks\n) => Promise<unknown>\n\ntype UseIdentifySession = (auth: AuthAPI, setSession: SetSession) => IdentifySession\n\nexport const useIdentifySession: UseIdentifySession = (auth, setSession) => {\n const identifySession = useCallback<IdentifySession>(\n async (payload, callbacks) => {\n const response = await auth.identify(payload)\n const unprocessableResponse = response as UnprocessableResponse\n\n switch (response.status) {\n case 201: // Created\n setSession((response as SessionResponse).data.token)\n if (callbacks.onSuccess) return callbacks.onSuccess()\n break\n\n case 202: // Accepted\n if (callbacks.onChallenged) return callbacks.onChallenged()\n break\n\n case 422: // Unprocessable Content\n if (callbacks.onError) return callbacks.onError(unprocessableResponse.data)\n break\n\n default:\n throw new Error(`Unexpected auth identify response status: ${response.status}`)\n }\n },\n [auth, setSession]\n )\n\n return identifySession\n}\n\nexport default useIdentifySession\n","import { useCallback } from 'react'\n\nimport type {\n AuthAPI,\n PasscodePayload,\n SessionResponse,\n UnprocessableData,\n UnprocessableResponse,\n} from '@quiltt/core'\n\nimport type { SetSession } from '../'\n\ntype AuthenticateSessionCallbacks = {\n onSuccess?: () => unknown\n onFailure?: () => unknown\n onError?: (errors: UnprocessableData) => unknown\n}\nexport type AuthenticateSession = (\n payload: PasscodePayload,\n callbacks: AuthenticateSessionCallbacks\n) => Promise<unknown>\n\ntype UseAuthenticateSession = (auth: AuthAPI, setSession: SetSession) => AuthenticateSession\n\nexport const useAuthenticateSession: UseAuthenticateSession = (auth, setSession) => {\n const authenticateSession: AuthenticateSession = useCallback(\n async (payload, callbacks) => {\n const response = await auth.authenticate(payload)\n\n switch (response.status) {\n case 201:\n setSession((response as SessionResponse).data.token)\n if (callbacks.onSuccess) return callbacks.onSuccess()\n break\n\n case 401:\n if (callbacks.onFailure) return callbacks.onFailure()\n break\n\n case 422:\n if (callbacks.onError) return callbacks.onError((response as UnprocessableResponse).data)\n break\n\n default:\n throw new Error(`Unexpected auth authenticate response status: ${response.status}`)\n }\n },\n [auth, setSession]\n )\n\n return authenticateSession\n}\n\nexport default useAuthenticateSession\n","import { useCallback } from 'react'\n\nimport type { AuthAPI, Maybe, QuilttJWT } from '@quiltt/core'\nimport { JsonWebTokenParse, PrivateClaims } from '@quiltt/core'\n\nimport type { SetSession } from '../useSession'\n\nexport type ImportSession = (token: string) => Promise<boolean>\n\ntype UseImportSession = (\n auth: AuthAPI,\n session: Maybe<QuilttJWT> | undefined,\n setSession: SetSession,\n environmentId?: string\n) => ImportSession\n\n/**\n * Optionally Accepts environmentId to validate session is from with your desired environment\n */\nexport const useImportSession: UseImportSession = (auth, session, setSession, environmentId) => {\n const importSession = useCallback<ImportSession>(\n async (token) => {\n // Is there a token?\n if (!token) return !!session\n\n // Is this token already imported?\n if (session && session.token == token) return true\n\n const jwt = JsonWebTokenParse<PrivateClaims>(token)\n\n // Is this token a valid JWT?\n if (!jwt) return false\n\n // Is this token within the expected environment?\n if (environmentId && jwt.claims.eid !== environmentId) return false\n\n // Is this token active?\n const response = await auth.ping(token)\n switch (response.status) {\n case 200:\n setSession(token)\n return true\n break\n\n case 401:\n return false\n break\n\n default:\n throw new Error(`Unexpected auth ping response status: ${response.status}`)\n }\n },\n [auth, session, setSession, environmentId]\n )\n\n return importSession\n}\n\nexport default useImportSession\n","import { useCallback } from 'react'\n\nimport type { AuthAPI, Maybe, QuilttJWT } from '@quiltt/core'\n\nimport type { SetSession } from '../useSession'\n\nexport type RevokeSession = () => Promise<void>\n\ntype UseRevokeSession = (\n auth: AuthAPI,\n session: Maybe<QuilttJWT> | undefined,\n setSession: SetSession\n) => RevokeSession\n\nexport const useRevokeSession: UseRevokeSession = (auth, session, setSession) => {\n const revokeSession = useCallback<RevokeSession>(async () => {\n if (!session) return\n\n await auth.revoke(session.token)\n\n setSession(null)\n }, [auth, session, setSession])\n\n return revokeSession\n}\n\nexport default useRevokeSession\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","const genericMessage = \"Invariant Violation\";\nconst {\n setPrototypeOf = function (obj: any, proto: any) {\n obj.__proto__ = proto;\n return obj;\n },\n} = Object as any;\n\nexport class InvariantError extends Error {\n framesToPop = 1;\n name = genericMessage;\n constructor(message: string | number = genericMessage) {\n super(\n typeof message === \"number\"\n ? `${genericMessage}: ${message} (see https://github.com/apollographql/invariant-packages)`\n : message\n );\n setPrototypeOf(this, InvariantError.prototype);\n }\n}\n\nexport function invariant(\n condition: any,\n message?: string | number,\n): asserts condition {\n if (!condition) {\n throw new InvariantError(message);\n }\n}\n\nconst verbosityLevels = [\"debug\", \"log\", \"warn\", \"error\", \"silent\"] as const;\nexport type VerbosityLevel = (typeof verbosityLevels)[number];\nexport type ConsoleMethodName = Exclude<VerbosityLevel, \"silent\">;\nlet verbosityLevel = verbosityLevels.indexOf(\"log\");\n\nfunction wrapConsoleMethod<M extends ConsoleMethodName>(name: M) {\n return function () {\n if (verbosityLevels.indexOf(name) >= verbosityLevel) {\n // Default to console.log if this host environment happens not to provide\n // all the console.* methods we need.\n const method = console[name] || console.log;\n return method.apply(console, arguments as any);\n }\n } as (typeof console)[M];\n}\n\nexport namespace invariant {\n export const debug = wrapConsoleMethod(\"debug\");\n export const log = wrapConsoleMethod(\"log\");\n export const warn = wrapConsoleMethod(\"warn\");\n export const error = wrapConsoleMethod(\"error\");\n}\n\nexport function setVerbosity(level: VerbosityLevel): VerbosityLevel {\n const old = verbosityLevels[verbosityLevel];\n verbosityLevel = Math.max(0, verbosityLevels.indexOf(level));\n return old;\n}\n\nexport default invariant;\n","export function maybe<T>(thunk: () => T): T | undefined {\n try { return thunk() } catch {}\n}\n","import { maybe } from \"./maybe\";\n\ndeclare global {\n // Despite our attempts to reuse the React Native __DEV__ constant instead of\n // inventing something new and Apollo-specific, declaring a useful type for\n // __DEV__ unfortunately conflicts (TS2451) with the global declaration in\n // @types/react-native/index.d.ts.\n //\n // To hide that harmless conflict, we @ts-ignore this line, which should\n // continue to provide a type for __DEV__ elsewhere in the Apollo Client\n // codebase, even when @types/react-native is not in use.\n //\n // However, because TypeScript drops @ts-ignore comments when generating .d.ts\n // files (https://github.com/microsoft/TypeScript/issues/38628), we also\n // sanitize the dist/utilities/globals/global.d.ts file to avoid declaring\n // __DEV__ globally altogether when @apollo/client is installed in the\n // node_modules directory of an application.\n //\n // @ts-ignore\n const __DEV__: boolean | undefined;\n}\n\nexport default (\n maybe(() => globalThis) ||\n maybe(() => window) ||\n maybe(() => self) ||\n maybe(() => global) ||\n // We don't expect the Function constructor ever to be invoked at runtime, as\n // long as at least one of globalThis, window, self, or global is defined, so\n // we are under no obligation to make it easy for static analysis tools to\n // detect syntactic usage of the Function constructor. If you think you can\n // improve your static analysis to detect this obfuscation, think again. This\n // is an arms race you cannot win, at least not in JavaScript.\n maybe(function() { return maybe.constructor(\"return this\")() })\n) as typeof globalThis & {\n __DEV__: typeof __DEV__;\n};\n","import global from \"./global\";\nimport { maybe } from \"./maybe\";\n\n// To keep string-based find/replace minifiers from messing with __DEV__ inside\n// string literals or properties like global.__DEV__, we construct the \"__DEV__\"\n// string in a roundabout way that won't be altered by find/replace strategies.\nconst __ = \"__\";\nconst GLOBAL_KEY = [__, __].join(\"DEV\");\n\nfunction getDEV() {\n try {\n return Boolean(__DEV__);\n } catch {\n Object.defineProperty(global, GLOBAL_KEY, {\n // In a buildless browser environment, maybe(() => process.env.NODE_ENV)\n // evaluates as undefined, so __DEV__ becomes true by default, but can be\n // initialized to false instead by a script/module that runs earlier.\n value: maybe(() => process.env.NODE_ENV) !== \"production\",\n enumerable: false,\n configurable: true,\n writable: true,\n });\n // Using computed property access rather than global.__DEV__ here prevents\n // string-based find/replace strategies from munging this to global.false:\n return (global as any)[GLOBAL_KEY];\n }\n}\n\nexport default getDEV();\n","function maybe(thunk) {\n try { return thunk() } catch (_) {}\n}\n\nvar safeGlobal = (\n maybe(function() { return globalThis }) ||\n maybe(function() { return window }) ||\n maybe(function() { return self }) ||\n maybe(function() { return global }) ||\n // We don't expect the Function constructor ever to be invoked at runtime, as\n // long as at least one of globalThis, window, self, or global is defined, so\n // we are under no obligation to make it easy for static analysis tools to\n // detect syntactic usage of the Function constructor. If you think you can\n // improve your static analysis to detect this obfuscation, think again. This\n // is an arms race you cannot win, at least not in JavaScript.\n maybe(function() { return maybe.constructor(\"return this\")() })\n);\n\nvar needToRemove = false;\n\nexport function install() {\n if (safeGlobal &&\n !maybe(function() { return process.env.NODE_ENV }) &&\n !maybe(function() { return process })) {\n Object.defineProperty(safeGlobal, \"process\", {\n value: {\n env: {\n // This default needs to be \"production\" instead of \"development\", to\n // avoid the problem https://github.com/graphql/graphql-js/pull/2894\n // will eventually solve, once merged and released.\n NODE_ENV: \"production\",\n },\n },\n // Let anyone else change global.process as they see fit, but hide it from\n // Object.keys(global) enumeration.\n configurable: true,\n enumerable: false,\n writable: true,\n });\n needToRemove = true;\n }\n}\n\n// Call install() at least once, when this module is imported.\ninstall();\n\nexport function remove() {\n if (needToRemove) {\n delete safeGlobal.process;\n needToRemove = false;\n }\n}\n","export function devAssert(condition, message) {\n const booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}\n","const MAX_ARRAY_LENGTH = 10;\nconst MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport function inspect(value) {\n return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n switch (typeof value) {\n case 'string':\n return JSON.stringify(value);\n\n case 'function':\n return value.name ? `[function ${value.name}]` : '[function]';\n\n case 'object':\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (value === null) {\n return 'null';\n }\n\n if (previouslySeenValues.includes(value)) {\n return '[Circular]';\n }\n\n const seenValues = [...previouslySeenValues, value];\n\n if (isJSONable(value)) {\n const jsonValue = value.toJSON(); // check for infinite recursion\n\n if (jsonValue !== value) {\n return typeof jsonValue === 'string'\n ? jsonValue\n : formatValue(jsonValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction isJSONable(value) {\n return typeof value.toJSON === 'function';\n}\n\nfunction formatObject(object, seenValues) {\n const entries = Object.entries(object);\n\n if (entries.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n const properties = entries.map(\n ([key, value]) => key + ': ' + formatValue(value, seenValues),\n );\n return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n\n const len = Math.min(MAX_ARRAY_LENGTH, array.length);\n const remaining = array.length - len;\n const items = [];\n\n for (let i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push('... 1 more item');\n } else if (remaining > 1) {\n items.push(`... ${remaining} more items`);\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getObjectTag(object) {\n const tag = Object.prototype.toString\n .call(object)\n .replace(/^\\[object /, '')\n .replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n const name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { instanceOf } from '../jsutils/instanceOf.mjs';\n\n/**\n * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are\n * optional, but they are useful for clients who store GraphQL documents in source files.\n * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might\n * be useful for `name` to be `\"Foo.graphql\"` and location to be `{ line: 40, column: 1 }`.\n * The `line` and `column` properties in `locationOffset` are 1-indexed.\n */\nexport class Source {\n constructor(\n body,\n name = 'GraphQL request',\n locationOffset = {\n line: 1,\n column: 1,\n },\n ) {\n typeof body === 'string' ||\n devAssert(false, `Body must be a string. Received: ${inspect(body)}.`);\n this.body = body;\n this.name = name;\n this.locationOffset = locationOffset;\n this.locationOffset.line > 0 ||\n devAssert(\n false,\n 'line in locationOffset is 1-indexed and must be positive.',\n );\n this.locationOffset.column > 0 ||\n devAssert(\n false,\n 'column in locationOffset is 1-indexed and must be positive.',\n );\n }\n\n get [Symbol.toStringTag]() {\n return 'Source';\n }\n}\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n\nexport function isSource(source) {\n return instanceOf(source, Source);\n}\n","// The ordering of these imports is important, because it ensures the temporary\n// process.env.NODE_ENV polyfill is defined globally (if necessary) before we\n// import { Source } from 'graphql'. The instanceOf function that we really care\n// about (the one that uses process.env.NODE_ENV) is not exported from the\n// top-level graphql package, but graphql/language/source uses instanceOf, and\n// has relatively few dependencies, so importing it here should not increase\n// bundle sizes as much as other options.\nimport { remove } from 'ts-invariant/process';\nimport { Source } from 'graphql';\n\nexport function removeTemporaryGlobals() {\n // Using Source here here just to make sure it won't be tree-shaken away.\n return typeof Source === \"function\" ? remove() : remove();\n}\n","import { invariant, InvariantError } from \"ts-invariant\";\n\n// Just in case the graphql package switches from process.env.NODE_ENV to\n// __DEV__, make sure __DEV__ is polyfilled before importing graphql.\nimport DEV from \"./DEV\";\nexport { DEV }\nexport function checkDEV() {\n invariant(\"boolean\" === typeof DEV, DEV);\n}\n\n// Import graphql/jsutils/instanceOf safely, working around its unchecked usage\n// of process.env.NODE_ENV and https://github.com/graphql/graphql-js/pull/2894.\nimport { removeTemporaryGlobals } from \"./fix-graphql\";\n\n// Synchronously undo the global process.env.NODE_ENV polyfill that we created\n// temporarily while importing the offending graphql/jsutils/instanceOf module.\nremoveTemporaryGlobals();\n\nexport { maybe } from \"./maybe\";\nexport { default as global } from \"./global\";\nexport { invariant, InvariantError }\n\n// Ensure __DEV__ was properly initialized, and prevent tree-shaking bundlers\n// from mistakenly pruning the ./DEV module (see issue #8674).\ncheckDEV();\n","import { maybe } from \"../globals\";\n\nexport const canUseWeakMap =\n typeof WeakMap === 'function' &&\n maybe(() => navigator.product) !== 'ReactNative';\n\nexport const canUseWeakSet = typeof WeakSet === 'function';\n\nexport const canUseSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.for === 'function';\n\nexport const canUseAsyncIteratorSymbol = canUseSymbol && Symbol.asyncIterator;\n\nexport const canUseDOM =\n typeof maybe(() => window.document.createElement) === \"function\";\n\nconst usingJSDOM: boolean =\n // Following advice found in this comment from @domenic (maintainer of jsdom):\n // https://github.com/jsdom/jsdom/issues/1537#issuecomment-229405327\n //\n // Since we control the version of Jest and jsdom used when running Apollo\n // Client tests, and that version is recent enought to include \" jsdom/x.y.z\"\n // at the end of the user agent string, I believe this case is all we need to\n // check. Testing for \"Node.js\" was recommended for backwards compatibility\n // with older version of jsdom, but we don't have that problem.\n maybe(() => navigator.userAgent.indexOf(\"jsdom\") >= 0) || false;\n\n// Our tests should all continue to pass if we remove this !usingJSDOM\n// condition, thereby allowing useLayoutEffect when using jsdom. Unfortunately,\n// if we allow useLayoutEffect, then useSyncExternalStore generates many\n// warnings about useLayoutEffect doing nothing on the server. While these\n// warnings are harmless, this !usingJSDOM condition seems to be the best way to\n// prevent them (i.e. skipping useLayoutEffect when using jsdom).\nexport const canUseLayoutEffect = canUseDOM && !usingJSDOM;\n","import * as React from 'react';\nimport { ApolloClient } from '../../core';\nimport { canUseSymbol } from '../../utilities';\nimport type { RenderPromises } from '../ssr';\n\nexport interface ApolloContextValue {\n client?: ApolloClient<object>;\n renderPromises?: RenderPromises;\n}\n\n// To make sure Apollo Client doesn't create more than one React context\n// (which can lead to problems like having an Apollo Client instance added\n// in one context, then attempting to retrieve it from another different\n// context), a single Apollo context is created and tracked in global state.\nconst contextKey = canUseSymbol\n ? Symbol.for('__APOLLO_CONTEXT__')\n : '__APOLLO_CONTEXT__';\n\nexport function getApolloContext(): React.Context<ApolloContextValue> {\n let context = (React.createContext as any)[contextKey] as React.Context<ApolloContextValue>;\n if (!context) {\n Object.defineProperty(React.createContext, contextKey, {\n value: context = React.createContext<ApolloContextValue>({}),\n enumerable: false,\n writable: false,\n configurable: true,\n });\n context.displayName = 'ApolloContext';\n }\n return context;\n}\n\nexport { getApolloContext as resetApolloContext }\n","import { invariant } from '../../utilities/globals';\n\nimport * as React from 'react';\n\nimport { ApolloClient } from '../../core';\nimport { getApolloContext } from './ApolloContext';\n\nexport interface ApolloProviderProps<TCache> {\n client: ApolloClient<TCache>;\n children: React.ReactNode | React.ReactNode[] | null;\n}\n\nexport const ApolloProvider: React.FC<ApolloProviderProps<any>> = ({\n client,\n children\n}) => {\n const ApolloContext = getApolloContext();\n return (\n <ApolloContext.Consumer>\n {(context: any = {}) => {\n if (client && context.client !== client) {\n context = Object.assign({}, context, { client });\n }\n\n invariant(\n context.client,\n 'ApolloProvider was not passed a client instance. Make ' +\n 'sure you pass in your client via the \"client\" prop.'\n );\n\n return (\n <ApolloContext.Provider value={context}>\n {children}\n </ApolloContext.Provider>\n );\n }}\n </ApolloContext.Consumer>\n );\n};\n","import { invariant } from '../../utilities/globals';\nimport { useContext } from 'react';\nimport { ApolloClient } from '../../core';\nimport { getApolloContext } from '../context';\n\nexport function useApolloClient(\n override?: ApolloClient<object>,\n): ApolloClient<object> {\n const context = useContext(getApolloContext());\n const client = override || context.client;\n invariant(\n !!client,\n 'Could not find \"client\" in the context or passed in as an option. ' +\n 'Wrap the root component in an <ApolloProvider>, or pass an ApolloClient ' +\n 'instance in via options.',\n );\n\n return client;\n}\n","import { useApolloClient } from '@apollo/client/index.js'\n\nexport const useQuilttClient = useApolloClient\n\nexport default useQuilttClient\n","'use client'\n\nimport { useCallback, useEffect, useState } from 'react'\nimport { useQuilttSession } from './useQuilttSession'\nimport { useScript } from './useScript'\nimport {\n cdnBase,\n ConnectorSDK,\n ConnectorSDKConnector,\n ConnectorSDKConnectorOptions,\n} from '@quiltt/core'\n\ndeclare const Quiltt: ConnectorSDK\n\nexport const useQuilttConnector = (\n connectorId?: string,\n options?: ConnectorSDKConnectorOptions\n) => {\n const status = useScript(`${cdnBase}/v1/connector.js`)\n const { session } = useQuilttSession()\n const [connector, setConnector] = useState<ConnectorSDKConnector>()\n const [isOpening, setIsOpening] = useState<boolean>(false)\n\n // Set Session\n useEffect(() => {\n if (typeof Quiltt === 'undefined') return\n\n Quiltt.authenticate(session?.token)\n }, [status, session])\n\n // Set Connector\n useEffect(() => {\n if (typeof Quiltt === 'undefined' || !connectorId) return\n\n if (options?.connectionId) {\n setConnector(Quiltt.reconnect(connectorId, { connectionId: options.connectionId }))\n } else {\n setConnector(Quiltt.connect(connectorId))\n }\n }, [status, connectorId, options?.connectionId])\n\n // onEvent\n useEffect(() => {\n if (!connector || !options?.onEvent) return\n\n connector.onEvent(options.onEvent)\n return () => connector.offEvent(options.onEvent as any)\n }, [connector, options?.onEvent])\n\n // onLoad\n useEffect(() => {\n if (!connector || !options?.onLoad) return\n\n connector.onLoad(options.onLoad)\n return () => connector.offLoad(options.onLoad as any)\n }, [connector, options?.onLoad])\n\n // onExit\n useEffect(() => {\n if (!connector || !options?.onExit) return\n\n connector.onExit(options.onExit)\n return () => connector.offExit(options.onExit as any)\n }, [connector, options?.onExit])\n\n // onExitSuccess\n useEffect(() => {\n if (!connector || !options?.onExitSuccess) return\n\n connector.onExitSuccess(options.onExitSuccess)\n return () => connector.offExitSuccess(options.onExitSuccess as any)\n }, [connector, options?.onExitSuccess])\n\n // onExitAbort\n useEffect(() => {\n if (!connector || !options?.onExitAbort) return\n\n connector.onExitAbort(options.onExitAbort)\n return () => connector.offExitAbort(options.onExitAbort as any)\n }, [connector, options?.onExitAbort])\n\n // onExitError\n useEffect(() => {\n if (!connector || !options?.onExitError) return\n\n connector.onExitError(options.onExitError)\n return () => connector.offExitError(options.onExitError as any)\n }, [connector, options?.onExitError])\n\n // This is used to hide any potential race conditions from usage; allowing\n // interaction before the script may have loaded.\n useEffect(() => {\n if (connector && isOpening) {\n setIsOpening(false)\n connector.open()\n }\n }, [connector, isOpening])\n\n const open = useCallback(() => {\n if (connectorId) {\n setIsOpening(true)\n } else {\n throw new Error('Must provide `connectorId` to `open` Quiltt Connector with Method Call')\n }\n }, [connectorId, setIsOpening])\n\n return { open }\n}\n","import { useCallback } from 'react'\n\nimport { useSession } from './useSession'\n\nimport { AuthAPI, Maybe, QuilttJWT } from '@quiltt/core'\n\nimport {\n AuthenticateSession,\n IdentifySession,\n ImportSession,\n RevokeSession,\n useAuthenticateSession,\n useIdentifySession,\n useImportSession,\n useRevokeSession,\n} from './session'\nimport { useQuilttSettings } from './useQuilttSettings'\n\nexport type UseQuilttSession = (environmentId?: string) => {\n session: Maybe<QuilttJWT> | undefined\n importSession: ImportSession\n identifySession: IdentifySession\n authenticateSession: AuthenticateSession\n revokeSession: RevokeSession\n forgetSession: (token?: string) => Promise<void>\n}\n\nexport const useQuilttSession: UseQuilttSession = (environmentId) => {\n const { clientId } = useQuilttSettings()\n const [session, setSession] = useSession()\n\n const auth = new AuthAPI(clientId)\n const importSession = useImportSession(auth, session, setSession, environmentId)\n const identifySession = useIdentifySession(auth, setSession)\n const authenticateSession = useAuthenticateSession(auth, setSession)\n const revokeSession = useRevokeSession(auth, session, setSession)\n\n // Optionally takes a token, to help guard against async processes clearing the wrong session\n const forgetSession = useCallback(\n async (token?: string) => {\n if (!token || (session && token && token == session.token)) {\n setSession(null)\n }\n },\n [session, setSession]\n )\n\n return {\n session,\n importSession,\n identifySession,\n authenticateSession,\n revokeSession,\n forgetSession,\n }\n}\n\nexport default useQuilttSession\n","'use client'\n\nimport { Dispatch, SetStateAction, useMemo } from 'react'\nimport { useEffect, useCallback } from 'react'\n\nimport type { Maybe, PrivateClaims, QuilttJWT } from '@quiltt/core'\nimport { JsonWebTokenParse, Timeoutable } from '@quiltt/core'\n\nimport { useStorage } from './useStorage'\n\nexport type SetSession = Dispatch<SetStateAction<Maybe<string> | undefined>>\n\nconst parse = JsonWebTokenParse<PrivateClaims>\n\n/**\n * Singleton timeout, allows hooks to come and go, while ensuring that there is\n * one notification being sent, preventing race conditions.\n */\nconst sessionTimer = new Timeoutable()\n\n/**\n * useSession uses useStorage to support a global singleton style of access. When\n * updated, all components, and windows should also invalidate.\n *\n * TODO: Support Rotation before Expiry\n *\n * Dataflow can come from two directions:\n * 1. Login - Bottom Up\n * This happens on login, when a token is passed up through the setSession\n * callback. From here it needs to be stored, and shared for usage.\n * 2. Refresh - Top Down\n * This happens when a page is reloaded or a person returns, and everything is\n * reinitialized.\n */\nexport const useSession = (storageKey = 'session'): [Maybe<QuilttJWT> | undefined, SetSession] => {\n const [token, setToken] = useStorage<string>(storageKey)\n const session = useMemo(() => parse(token), [token])\n\n // Clear session if/when it expires\n useEffect(() => {\n if (!session) return\n\n const expirationMS = session.claims.exp * 1000\n const expire = () => setToken(null)\n\n if (Date.now() >= expirationMS) {\n expire()\n } else {\n sessionTimer.set(expire, expirationMS - Date.now())\n return () => sessionTimer.clear(expire)\n }\n }, [session, setToken])\n\n // Bubbles up from Login\n const setSession = useCallback(\n (nextState: Maybe<string> | SetStateAction<Maybe<string> | undefined> | undefined) => {\n const newState = nextState instanceof Function ? nextState(token) : nextState\n\n if (token !== newState && (!newState || parse(newState))) {\n setToken(newState)\n }\n },\n [token, setToken]\n )\n\n return [session, setSession]\n}\n\nexport default useSession\n","'use client'\n\nimport type { Dispatch, SetStateAction } from 'react'\nimport { useCallback, useEffect, useState } from 'react'\n\nimport type { Maybe } from '@quiltt/core'\nimport { GlobalStorage } from '@quiltt/core'\n\n/**\n * Attempt to persist state with local storage, so it remains after refresh and\n * across open documents. Falls back to in memory storage when localStorage is\n * unavailable.\n *\n * This hook is used in the same way as useState except that you must pass the\n * storage key in the 1st parameter. If the window object is not present (as in SSR),\n * useStorage() will return the default nextState.\n *\n * Expect values to remain in sync\n * Across Hooks\n * Across Reloads\n * Across Windows (Documents)\n *\n * @param key\n * @param initialState\n * @returns {Array} [storage, setStorage]\n */\nexport const useStorage = <T>(\n key: string,\n initialState?: Maybe<T>\n): [Maybe<T> | undefined, Dispatch<SetStateAction<Maybe<T> | undefined>>] => {\n const getStorage = useCallback(() => {\n let state\n\n if ((state = GlobalStorage.get(key)) !== undefined) {\n return state\n }\n\n return initialState\n }, [key, initialState])\n\n const [hookState, setHookState] = useState<Maybe<T> | undefined>(getStorage())\n\n const setStorage = useCallback(\n (nextState: Maybe<T> | SetStateAction<Maybe<T> | undefined>) => {\n const newState = nextState instanceof Function ? nextState(hookState) : nextState\n\n if (hookState !== newState) {\n GlobalStorage.set(key, newState)\n }\n },\n [key, hookState]\n )\n\n /**\n * The empty dependency array ensures that the effect runs only once when the component mounts\n * and doesn't re-run unnecessarily on subsequent renders because it doesn't depend on any\n * props or state variables that could change during the component's lifetime.\n *\n * Use an empty dependency array to avoid unnecessary re-renders.\n */\n useEffect(() => {\n GlobalStorage.subscribe(key, setHookState)\n\n setHookState(getStorage())\n\n return () => GlobalStorage.unsubscribe(key, setHookState)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return [hookState, setStorage]\n}\n\nexport default useStorage\n","'use client'\n\nimport { createContext, useContext } from 'react'\n\ntype QuilttSettingsContext = {\n clientId?: string | undefined\n}\n\nexport const QuilttSettings = createContext<QuilttSettingsContext>({})\n\nexport const useQuilttSettings = () => {\n const settings = useContext(QuilttSettings)\n\n return { ...settings }\n}\n\nexport default useQuilttSettings\n","'use client'\nimport { useEffect, useState } from 'react'\n\nexport type UseScriptStatus = 'idle' | 'loading' | 'ready' | 'error'\nexport interface UseScriptOptions {\n shouldPreventLoad?: boolean\n removeOnUnmount?: boolean\n}\n\n// Cached script statuses\nconst cachedScriptStatuses: Record<string, UseScriptStatus | undefined> = {}\n\nfunction getScriptNode(src: string) {\n const node: HTMLScriptElement | null = document.querySelector(`script[src=\"${src}\"]`)\n const status = node?.getAttribute('data-status') as UseScriptStatus | undefined\n\n return {\n node,\n status,\n }\n}\n\n// @see https://usehooks-ts.com/react-hook/use-script\nexport function useScript(src: string | null, options?: UseScriptOptions): UseScriptStatus {\n const [status, setStatus] = useState<UseScriptStatus>(() => {\n if (!src || options?.shouldPreventLoad) {\n return 'idle'\n }\n\n if (typeof window === 'undefined') {\n // SSR Handling - always return 'loading'\n return 'loading'\n }\n\n return cachedScriptStatuses[src] ?? 'loading'\n })\n\n useEffect(() => {\n if (!src || options?.shouldPreventLoad) {\n return\n }\n\n const cachedScriptStatus = cachedScriptStatuses[src]\n if (cachedScriptStatus === 'ready' || cachedScriptStatus === 'error') {\n // If the script is already cached, set its status immediately\n setStatus(cachedScriptStatus)\n return\n }\n\n // Fetch existing script element by src\n // It may have been added by another instance of this hook\n const script = getScriptNode(src)\n let scriptNode = script.node\n\n if (!scriptNode) {\n // Create script element and add it to document body\n scriptNode = document.createElement('script')\n scriptNode.src = src\n scriptNode.async = true\n scriptNode.setAttribute('data-status', 'loading')\n document.body.appendChild(scriptNode)\n\n // Store status in attribute on script\n // This can be read by other instances of this hook\n const setAttributeFromEvent = (event: Event) => {\n const scriptStatus: UseScriptStatus = event.type === 'load' ? 'ready' : 'error'\n\n scriptNode?.setAttribute('data-status', scriptStatus)\n }\n\n scriptNode.addEventListener('load', setAttributeFromEvent)\n scriptNode.addEventListener('error', setAttributeFromEvent)\n } else {\n // Grab existing script status from attribute and set to state.\n setStatus(script.status ?? cachedScriptStatus ?? 'loading')\n }\n\n // Script event handler to update status in state\n // Note: Even if the script already exists we still need to add\n // event handlers to update the state for *this* hook instance.\n const setStateFromEvent = (event: Event) => {\n const newStatus = event.type === 'load' ? 'ready' : 'error'\n setStatus(newStatus)\n cachedScriptStatuses[src] = newStatus\n }\n\n // Add event listeners\n scriptNode.addEventListener('load', setStateFromEvent)\n scriptNode.addEventListener('error', setStateFromEvent)\n\n // Remove event listeners on cleanup\n return () => {\n if (scriptNode) {\n scriptNode.removeEventListener('load', setStateFromEvent)\n scriptNode.removeEventListener('error', setStateFromEvent)\n }\n\n if (scriptNode && options?.removeOnUnmount) {\n scriptNode.remove()\n }\n }\n }, [src, options?.shouldPreventLoad, options?.removeOnUnmount])\n\n return status\n}\n","'use client'\n\nimport type { FC, PropsWithChildren } from 'react'\nimport { useEffect } from 'react'\n\nimport { ApolloProvider } from '@apollo/client'\nimport { InMemoryCache, QuilttClient } from '@quiltt/core'\nimport { useQuilttSession } from '../hooks'\n\ntype QuilttAuthProviderProps = PropsWithChildren & {\n token?: string\n}\n\nconst Client = new QuilttClient({\n cache: new InMemoryCache(),\n})\n\n/**\n * If a token is provided, will validate the token against the api and then import\n * it into trusted storage. While this process is happening, the component is put\n * into a loading state and the children are not rendered to prevent race conditions\n * from triggering within the transitionary state.\n *\n */\nexport const QuilttAuthProvider: FC<QuilttAuthProviderProps> = ({ token, children }) => {\n const { session, importSession } = useQuilttSession()\n\n // Import Passed in Tokens\n useEffect(() => {\n if (token) importSession(token)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [token])\n\n // Reset Client Store when logging in or out\n useEffect(() => {\n Client.resetStore()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [session])\n\n return <ApolloProvider client={Client}>{children}</ApolloProvider>\n}\n\nexport default QuilttAuthProvider\n","'use client'\n\nimport type { FC, PropsWithChildren } from 'react'\nimport { useState } from 'react'\n\nimport { QuilttSettings } from '../hooks'\n\ntype QuilttSettingsProviderProps = PropsWithChildren & {\n clientId?: string\n}\n\nexport const QuilttSettingsProvider: FC<QuilttSettingsProviderProps> = ({ clientId, children }) => {\n const [_clientId] = useState(clientId)\n\n return (\n <QuilttSettings.Provider value={{ clientId: _clientId }}>{children}</QuilttSettings.Provider>\n )\n}\n\nexport default QuilttSettingsProvider\n","import type { FC, PropsWithChildren } from 'react'\n\nimport { QuilttAuthProvider } from './QuilttAuthProvider'\nimport { QuilttSettingsProvider } from './QuilttSettingsProvider'\n\ntype QuilttProviderProps = PropsWithChildren & {\n clientId?: string\n token?: string\n}\n\nexport const QuilttProvider: FC<QuilttProviderProps> = ({ clientId, token, children }) => {\n return (\n <QuilttSettingsProvider clientId={clientId}>\n <QuilttAuthProvider token={token}>{children}</QuilttAuthProvider>\n </QuilttSettingsProvider>\n )\n}\n\nexport default QuilttProvider\n","import { PropsWithChildren } from 'react'\nimport { useQuilttConnector } from '..'\nimport { AnyTag, PropsOf } from '../types'\n\nimport { ConnectorSDKCallbacks } from '@quiltt/core'\n\ntype QuilttButtonProps<T extends AnyTag> = PropsWithChildren<\n {\n as?: T\n connectorId: string\n connectionId?: string // For Reconnect Mode\n } & ConnectorSDKCallbacks\n>\n\nexport const QuilttButton = <T extends AnyTag = 'button'>({\n as,\n connectorId,\n connectionId,\n onEvent,\n onLoad,\n onExit,\n onExitSuccess,\n onExitAbort,\n onExitError,\n children,\n ...props\n}: QuilttButtonProps<T> & PropsOf<T>) => {\n const { open } = useQuilttConnector(connectorId, {\n connectionId,\n onEvent,\n onLoad,\n onExit,\n onExitSuccess,\n onExitAbort,\n onExitError,\n })\n\n const Button = as || 'button'\n\n return (\n <Button onClick={open} quiltt-connection={connectionId} {...props}>\n {children}\n </Button>\n )\n}\n\nexport default QuilttButton\n","import { PropsWithChildren } from 'react'\nimport { useQuilttConnector } from '..'\nimport { AnyTag, PropsOf } from '../types'\n\nimport { ConnectorSDKCallbacks } from '@quiltt/core'\n\ntype QuilttContainerProps<T extends AnyTag> = PropsWithChildren<\n {\n as?: T\n connectorId: string\n connectionId?: string // For Reconnect Mode\n } & ConnectorSDKCallbacks\n>\n\n/**\n * QuilttContainer uses globally shared callbacks. It's recommended you only use\n * one Container at a time.\n */\nexport const QuilttContainer = <T extends AnyTag = 'div'>({\n as,\n connectorId,\n connectionId,\n onEvent,\n onLoad,\n onExit,\n onExitSuccess,\n onExitAbort,\n onExitError,\n children,\n ...props\n}: QuilttContainerProps<T> & PropsOf<T>) => {\n useQuilttConnector(connectorId, {\n onEvent,\n onLoad,\n onExit,\n onExitSuccess,\n onExitAbort,\n onExitError,\n })\n\n const Container = as || 'div'\n\n return (\n <Container quiltt-container={connectorId} quiltt-connection={connectionId} {...props}>\n {children}\n </Container>\n )\n}\n\nexport default QuilttContainer\n"],"mappings":"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","names":["src_exports","__export","QuilttAuthProvider","QuilttButton","QuilttContainer","QuilttProvider","QuilttSettings","QuilttSettingsProvider","useAuthenticateSession","useEventListener","useIdentifySession","useImportSession","useIsomorphicLayoutEffect","useQuilttClient","useQuilttConnector","useQuilttSession","useQuilttSettings","useRevokeSession","useSession","useStorage","__toCommonJS","__reExport","import_react","import_react","useIsomorphicLayoutEffect","useIsomorphicLayoutEffect_default","useEventListener","eventName","handler","element","options","savedHandler","useIsomorphicLayoutEffect_default","_a","targetElement","listener","event","import_react","useIdentifySession","auth","setSession","payload","callbacks","__async","response","unprocessableResponse","import_react","useAuthenticateSession","auth","setSession","payload","callbacks","__async","response","import_react","import_core","useImportSession","auth","session","setSession","environmentId","token","__async","jwt","response","import_react","useRevokeSession","auth","session","setSession","__async","extendStatics","d","b","p","__extends","__","genericMessage","_a","setPrototypeOf","obj","proto","InvariantError","_super","__extends","message","_this","invariant","condition","message","InvariantError","verbosityLevels","verbosityLevel","wrapConsoleMethod","name","method","maybe","thunk","_a","global_default","maybe","__","GLOBAL_KEY","getDEV","_a","global_default","maybe","DEV_default","maybe","thunk","_","safeGlobal","needToRemove","install","remove","devAssert","condition","message","inspect","value","formatValue","seenValues","formatObjectValue","previouslySeenValues","isJSONable","jsonValue","formatArray","formatObject","object","entries","getObjectTag","key","array","len","remaining","items","i","tag","name","Source","body","name","locationOffset","devAssert","inspect","removeTemporaryGlobals","Source","remove","checkDEV","invariant","DEV_default","removeTemporaryGlobals","checkDEV","canUseWeakMap","maybe","canUseSymbol","canUseDOM","maybe","usingJSDOM","React","contextKey","canUseSymbol","getApolloContext","context","React","ApolloProvider","_a","client","children","ApolloContext","getApolloContext","context","invariant","import_react","useApolloClient","override","context","getApolloContext","client","invariant","useQuilttClient","useApolloClient","import_react","import_react","import_react","import_core","import_react","import_core","useStorage","key","initialState","getStorage","state","hookState","setHookState","setStorage","nextState","newState","parse","sessionTimer","useSession","storageKey","token","setToken","useStorage","session","expirationMS","expire","setSession","nextState","newState","import_core","import_react","QuilttSettings","useQuilttSettings","settings","__spreadValues","useQuilttSession","environmentId","clientId","useQuilttSettings","session","setSession","useSession","auth","importSession","useImportSession","identifySession","useIdentifySession","authenticateSession","useAuthenticateSession","revokeSession","useRevokeSession","forgetSession","token","__async","import_react","cachedScriptStatuses","getScriptNode","src","node","status","useScript","options","setStatus","_a","_b","cachedScriptStatus","script","scriptNode","setAttributeFromEvent","event","scriptStatus","setStateFromEvent","newStatus","import_core","useQuilttConnector","connectorId","options","status","useScript","session","useQuilttSession","connector","setConnector","isOpening","setIsOpening","import_react","import_core","import_jsx_runtime","Client","QuilttAuthProvider","token","children","session","importSession","useQuilttSession","ApolloProvider","import_react","import_jsx_runtime","QuilttSettingsProvider","clientId","children","_clientId","QuilttSettings","import_jsx_runtime","QuilttProvider","clientId","token","children","QuilttSettingsProvider","QuilttAuthProvider","import_jsx_runtime","QuilttButton","_a","_b","as","connectorId","connectionId","onEvent","onLoad","onExit","onExitSuccess","onExitAbort","onExitError","children","props","__objRest","open","useQuilttConnector","__spreadProps","__spreadValues","import_jsx_runtime","QuilttContainer","_a","_b","as","connectorId","connectionId","onEvent","onLoad","onExit","onExitSuccess","onExitAbort","onExitError","children","props","__objRest","useQuilttConnector","__spreadProps","__spreadValues"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/hooks/helpers/useEventListener.ts","../src/hooks/helpers/useIsomorphicLayoutEffect.ts","../src/hooks/session/useIdentifySession.ts","../src/hooks/session/useAuthenticateSession.ts","../src/hooks/session/useImportSession.ts","../src/hooks/session/useRevokeSession.ts","../../../node_modules/.pnpm/tslib@2.5.0/node_modules/tslib/tslib.es6.js","../../../node_modules/.pnpm/ts-invariant@0.10.3/node_modules/ts-invariant/src/invariant.ts","../../../node_modules/.pnpm/@apollo+client@3.7.16_graphql@16.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@apollo/src/utilities/globals/maybe.ts","../../../node_modules/.pnpm/@apollo+client@3.7.16_graphql@16.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@apollo/src/utilities/globals/global.ts","../../../node_modules/.pnpm/@apollo+client@3.7.16_graphql@16.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@apollo/src/utilities/globals/DEV.ts","../../../node_modules/.pnpm/ts-invariant@0.10.3/node_modules/ts-invariant/process/index.js","../../../node_modules/.pnpm/graphql@16.8.1/node_modules/graphql/jsutils/devAssert.mjs","../../../node_modules/.pnpm/graphql@16.8.1/node_modules/graphql/jsutils/inspect.mjs","../../../node_modules/.pnpm/graphql@16.8.1/node_modules/graphql/language/source.mjs","../../../node_modules/.pnpm/@apollo+client@3.7.16_graphql@16.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@apollo/src/utilities/globals/fix-graphql.ts","../../../node_modules/.pnpm/@apollo+client@3.7.16_graphql@16.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@apollo/src/utilities/globals/index.ts","../../../node_modules/.pnpm/@apollo+client@3.7.16_graphql@16.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@apollo/src/utilities/common/canUse.ts","../../../node_modules/.pnpm/@apollo+client@3.7.16_graphql@16.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@apollo/src/react/context/ApolloContext.ts","../../../node_modules/.pnpm/@apollo+client@3.7.16_graphql@16.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@apollo/src/react/context/ApolloProvider.tsx","../../../node_modules/.pnpm/@apollo+client@3.7.16_graphql@16.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@apollo/src/react/hooks/useApolloClient.ts","../src/hooks/useQuilttClient.ts","../src/hooks/useQuilttConnector.ts","../src/hooks/useQuilttSession.ts","../src/hooks/useSession.ts","../src/hooks/useStorage.ts","../src/hooks/useQuilttSettings.ts","../src/hooks/useScript.ts","../src/version.ts","../src/providers/QuilttAuthProvider.tsx","../src/providers/QuilttSettingsProvider.tsx","../src/providers/QuilttProvider.tsx","../src/components/QuilttButton.tsx","../src/components/QuilttContainer.tsx"],"sourcesContent":["export * from '@quiltt/core'\nexport * from './hooks'\nexport * from './providers'\nexport * from './components'\n","'use client'\n\nimport { RefObject, useEffect, useRef } from 'react'\n\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect'\n\n// MediaQueryList Event based useEventListener interface\nexport function useEventListener<K extends keyof MediaQueryListEventMap>(\n eventName: K,\n handler: (event: MediaQueryListEventMap[K]) => void,\n element: RefObject<MediaQueryList>,\n options?: boolean | AddEventListenerOptions\n): void\n\n// Window Event based useEventListener interface\nexport function useEventListener<K extends keyof WindowEventMap>(\n eventName: K,\n handler: (event: WindowEventMap[K]) => void,\n element?: undefined,\n options?: boolean | AddEventListenerOptions\n): void\n\n// Element Event based useEventListener interface\nexport function useEventListener<\n K extends keyof HTMLElementEventMap,\n T extends HTMLElement = HTMLDivElement\n>(\n eventName: K,\n handler: (event: HTMLElementEventMap[K]) => void,\n element: RefObject<T>,\n options?: boolean | AddEventListenerOptions\n): void\n\n// Document Event based useEventListener interface\nexport function useEventListener<K extends keyof DocumentEventMap>(\n eventName: K,\n handler: (event: DocumentEventMap[K]) => void,\n element: RefObject<Document>,\n options?: boolean | AddEventListenerOptions\n): void\n\n/**\n * Supports Window, Element and Document and custom events with almost\n * the same parameters as the native addEventListener options.\n */\nexport function useEventListener<\n KW extends keyof WindowEventMap,\n KH extends keyof HTMLElementEventMap,\n KM extends keyof MediaQueryListEventMap,\n T extends HTMLElement | MediaQueryList | void = void\n>(\n eventName: KW | KH | KM,\n handler: (\n event: WindowEventMap[KW] | HTMLElementEventMap[KH] | MediaQueryListEventMap[KM] | Event\n ) => void,\n element?: RefObject<T>,\n options?: boolean | AddEventListenerOptions\n) {\n // Create a ref that stores handler\n const savedHandler = useRef(handler)\n\n useIsomorphicLayoutEffect(() => {\n savedHandler.current = handler\n }, [handler])\n\n useEffect(() => {\n // Define the listening target\n const targetElement: T | Window = element?.current ?? window\n\n if (!(targetElement && targetElement.addEventListener)) return\n\n // Create event listener that calls handler function stored in ref\n const listener: typeof handler = (event) => savedHandler.current(event)\n\n targetElement.addEventListener(eventName, listener, options)\n\n // Remove event listener on cleanup\n return () => {\n targetElement.removeEventListener(eventName, listener, options)\n }\n }, [eventName, element, options])\n}\n\nexport default useEventListener\n","'use client'\n\nimport { useEffect, useLayoutEffect } from 'react'\n\n/**\n * This hook is a browser hook. But React code could be generated from the server without the Window API.\n * This hook switches between useEffect and useLayoutEffect following the execution environment.\n */\nexport const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n\nexport default useIsomorphicLayoutEffect\n","import { useCallback } from 'react'\n\nimport type {\n AuthAPI,\n SessionResponse,\n UnprocessableData,\n UnprocessableResponse,\n UsernamePayload,\n} from '@quiltt/core'\n\nimport type { SetSession } from '../useSession'\n\ntype IdentifySessionCallbacks = {\n onSuccess?: () => unknown\n onChallenged?: () => unknown\n onError?: (errors: UnprocessableData) => unknown\n}\nexport type IdentifySession = (\n payload: UsernamePayload,\n callbacks: IdentifySessionCallbacks\n) => Promise<unknown>\n\ntype UseIdentifySession = (auth: AuthAPI, setSession: SetSession) => IdentifySession\n\nexport const useIdentifySession: UseIdentifySession = (auth, setSession) => {\n const identifySession = useCallback<IdentifySession>(\n async (payload, callbacks) => {\n const response = await auth.identify(payload)\n const unprocessableResponse = response as UnprocessableResponse\n\n switch (response.status) {\n case 201: // Created\n setSession((response as SessionResponse).data.token)\n if (callbacks.onSuccess) return callbacks.onSuccess()\n break\n\n case 202: // Accepted\n if (callbacks.onChallenged) return callbacks.onChallenged()\n break\n\n case 422: // Unprocessable Content\n if (callbacks.onError) return callbacks.onError(unprocessableResponse.data)\n break\n\n default:\n throw new Error(`Unexpected auth identify response status: ${response.status}`)\n }\n },\n [auth, setSession]\n )\n\n return identifySession\n}\n\nexport default useIdentifySession\n","import { useCallback } from 'react'\n\nimport type {\n AuthAPI,\n PasscodePayload,\n SessionResponse,\n UnprocessableData,\n UnprocessableResponse,\n} from '@quiltt/core'\n\nimport type { SetSession } from '../'\n\ntype AuthenticateSessionCallbacks = {\n onSuccess?: () => unknown\n onFailure?: () => unknown\n onError?: (errors: UnprocessableData) => unknown\n}\nexport type AuthenticateSession = (\n payload: PasscodePayload,\n callbacks: AuthenticateSessionCallbacks\n) => Promise<unknown>\n\ntype UseAuthenticateSession = (auth: AuthAPI, setSession: SetSession) => AuthenticateSession\n\nexport const useAuthenticateSession: UseAuthenticateSession = (auth, setSession) => {\n const authenticateSession: AuthenticateSession = useCallback(\n async (payload, callbacks) => {\n const response = await auth.authenticate(payload)\n\n switch (response.status) {\n case 201:\n setSession((response as SessionResponse).data.token)\n if (callbacks.onSuccess) return callbacks.onSuccess()\n break\n\n case 401:\n if (callbacks.onFailure) return callbacks.onFailure()\n break\n\n case 422:\n if (callbacks.onError) return callbacks.onError((response as UnprocessableResponse).data)\n break\n\n default:\n throw new Error(`Unexpected auth authenticate response status: ${response.status}`)\n }\n },\n [auth, setSession]\n )\n\n return authenticateSession\n}\n\nexport default useAuthenticateSession\n","import { useCallback } from 'react'\n\nimport type { AuthAPI, Maybe, QuilttJWT } from '@quiltt/core'\nimport { JsonWebTokenParse, PrivateClaims } from '@quiltt/core'\n\nimport type { SetSession } from '../useSession'\n\nexport type ImportSession = (token: string) => Promise<boolean>\n\ntype UseImportSession = (\n auth: AuthAPI,\n session: Maybe<QuilttJWT> | undefined,\n setSession: SetSession,\n environmentId?: string\n) => ImportSession\n\n/**\n * Optionally Accepts environmentId to validate session is from with your desired environment\n */\nexport const useImportSession: UseImportSession = (auth, session, setSession, environmentId) => {\n const importSession = useCallback<ImportSession>(\n async (token) => {\n // Is there a token?\n if (!token) return !!session\n\n // Is this token already imported?\n if (session && session.token == token) return true\n\n const jwt = JsonWebTokenParse<PrivateClaims>(token)\n\n // Is this token a valid JWT?\n if (!jwt) return false\n\n // Is this token within the expected environment?\n if (environmentId && jwt.claims.eid !== environmentId) return false\n\n // Is this token active?\n const response = await auth.ping(token)\n switch (response.status) {\n case 200:\n setSession(token)\n return true\n break\n\n case 401:\n return false\n break\n\n default:\n throw new Error(`Unexpected auth ping response status: ${response.status}`)\n }\n },\n [auth, session, setSession, environmentId]\n )\n\n return importSession\n}\n\nexport default useImportSession\n","import { useCallback } from 'react'\n\nimport type { AuthAPI, Maybe, QuilttJWT } from '@quiltt/core'\n\nimport type { SetSession } from '../useSession'\n\nexport type RevokeSession = () => Promise<void>\n\ntype UseRevokeSession = (\n auth: AuthAPI,\n session: Maybe<QuilttJWT> | undefined,\n setSession: SetSession\n) => RevokeSession\n\nexport const useRevokeSession: UseRevokeSession = (auth, session, setSession) => {\n const revokeSession = useCallback<RevokeSession>(async () => {\n if (!session) return\n\n await auth.revoke(session.token)\n\n setSession(null)\n }, [auth, session, setSession])\n\n return revokeSession\n}\n\nexport default useRevokeSession\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","const genericMessage = \"Invariant Violation\";\nconst {\n setPrototypeOf = function (obj: any, proto: any) {\n obj.__proto__ = proto;\n return obj;\n },\n} = Object as any;\n\nexport class InvariantError extends Error {\n framesToPop = 1;\n name = genericMessage;\n constructor(message: string | number = genericMessage) {\n super(\n typeof message === \"number\"\n ? `${genericMessage}: ${message} (see https://github.com/apollographql/invariant-packages)`\n : message\n );\n setPrototypeOf(this, InvariantError.prototype);\n }\n}\n\nexport function invariant(\n condition: any,\n message?: string | number,\n): asserts condition {\n if (!condition) {\n throw new InvariantError(message);\n }\n}\n\nconst verbosityLevels = [\"debug\", \"log\", \"warn\", \"error\", \"silent\"] as const;\nexport type VerbosityLevel = (typeof verbosityLevels)[number];\nexport type ConsoleMethodName = Exclude<VerbosityLevel, \"silent\">;\nlet verbosityLevel = verbosityLevels.indexOf(\"log\");\n\nfunction wrapConsoleMethod<M extends ConsoleMethodName>(name: M) {\n return function () {\n if (verbosityLevels.indexOf(name) >= verbosityLevel) {\n // Default to console.log if this host environment happens not to provide\n // all the console.* methods we need.\n const method = console[name] || console.log;\n return method.apply(console, arguments as any);\n }\n } as (typeof console)[M];\n}\n\nexport namespace invariant {\n export const debug = wrapConsoleMethod(\"debug\");\n export const log = wrapConsoleMethod(\"log\");\n export const warn = wrapConsoleMethod(\"warn\");\n export const error = wrapConsoleMethod(\"error\");\n}\n\nexport function setVerbosity(level: VerbosityLevel): VerbosityLevel {\n const old = verbosityLevels[verbosityLevel];\n verbosityLevel = Math.max(0, verbosityLevels.indexOf(level));\n return old;\n}\n\nexport default invariant;\n","export function maybe<T>(thunk: () => T): T | undefined {\n try { return thunk() } catch {}\n}\n","import { maybe } from \"./maybe\";\n\ndeclare global {\n // Despite our attempts to reuse the React Native __DEV__ constant instead of\n // inventing something new and Apollo-specific, declaring a useful type for\n // __DEV__ unfortunately conflicts (TS2451) with the global declaration in\n // @types/react-native/index.d.ts.\n //\n // To hide that harmless conflict, we @ts-ignore this line, which should\n // continue to provide a type for __DEV__ elsewhere in the Apollo Client\n // codebase, even when @types/react-native is not in use.\n //\n // However, because TypeScript drops @ts-ignore comments when generating .d.ts\n // files (https://github.com/microsoft/TypeScript/issues/38628), we also\n // sanitize the dist/utilities/globals/global.d.ts file to avoid declaring\n // __DEV__ globally altogether when @apollo/client is installed in the\n // node_modules directory of an application.\n //\n // @ts-ignore\n const __DEV__: boolean | undefined;\n}\n\nexport default (\n maybe(() => globalThis) ||\n maybe(() => window) ||\n maybe(() => self) ||\n maybe(() => global) ||\n // We don't expect the Function constructor ever to be invoked at runtime, as\n // long as at least one of globalThis, window, self, or global is defined, so\n // we are under no obligation to make it easy for static analysis tools to\n // detect syntactic usage of the Function constructor. If you think you can\n // improve your static analysis to detect this obfuscation, think again. This\n // is an arms race you cannot win, at least not in JavaScript.\n maybe(function() { return maybe.constructor(\"return this\")() })\n) as typeof globalThis & {\n __DEV__: typeof __DEV__;\n};\n","import global from \"./global\";\nimport { maybe } from \"./maybe\";\n\n// To keep string-based find/replace minifiers from messing with __DEV__ inside\n// string literals or properties like global.__DEV__, we construct the \"__DEV__\"\n// string in a roundabout way that won't be altered by find/replace strategies.\nconst __ = \"__\";\nconst GLOBAL_KEY = [__, __].join(\"DEV\");\n\nfunction getDEV() {\n try {\n return Boolean(__DEV__);\n } catch {\n Object.defineProperty(global, GLOBAL_KEY, {\n // In a buildless browser environment, maybe(() => process.env.NODE_ENV)\n // evaluates as undefined, so __DEV__ becomes true by default, but can be\n // initialized to false instead by a script/module that runs earlier.\n value: maybe(() => process.env.NODE_ENV) !== \"production\",\n enumerable: false,\n configurable: true,\n writable: true,\n });\n // Using computed property access rather than global.__DEV__ here prevents\n // string-based find/replace strategies from munging this to global.false:\n return (global as any)[GLOBAL_KEY];\n }\n}\n\nexport default getDEV();\n","function maybe(thunk) {\n try { return thunk() } catch (_) {}\n}\n\nvar safeGlobal = (\n maybe(function() { return globalThis }) ||\n maybe(function() { return window }) ||\n maybe(function() { return self }) ||\n maybe(function() { return global }) ||\n // We don't expect the Function constructor ever to be invoked at runtime, as\n // long as at least one of globalThis, window, self, or global is defined, so\n // we are under no obligation to make it easy for static analysis tools to\n // detect syntactic usage of the Function constructor. If you think you can\n // improve your static analysis to detect this obfuscation, think again. This\n // is an arms race you cannot win, at least not in JavaScript.\n maybe(function() { return maybe.constructor(\"return this\")() })\n);\n\nvar needToRemove = false;\n\nexport function install() {\n if (safeGlobal &&\n !maybe(function() { return process.env.NODE_ENV }) &&\n !maybe(function() { return process })) {\n Object.defineProperty(safeGlobal, \"process\", {\n value: {\n env: {\n // This default needs to be \"production\" instead of \"development\", to\n // avoid the problem https://github.com/graphql/graphql-js/pull/2894\n // will eventually solve, once merged and released.\n NODE_ENV: \"production\",\n },\n },\n // Let anyone else change global.process as they see fit, but hide it from\n // Object.keys(global) enumeration.\n configurable: true,\n enumerable: false,\n writable: true,\n });\n needToRemove = true;\n }\n}\n\n// Call install() at least once, when this module is imported.\ninstall();\n\nexport function remove() {\n if (needToRemove) {\n delete safeGlobal.process;\n needToRemove = false;\n }\n}\n","export function devAssert(condition, message) {\n const booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}\n","const MAX_ARRAY_LENGTH = 10;\nconst MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport function inspect(value) {\n return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n switch (typeof value) {\n case 'string':\n return JSON.stringify(value);\n\n case 'function':\n return value.name ? `[function ${value.name}]` : '[function]';\n\n case 'object':\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (value === null) {\n return 'null';\n }\n\n if (previouslySeenValues.includes(value)) {\n return '[Circular]';\n }\n\n const seenValues = [...previouslySeenValues, value];\n\n if (isJSONable(value)) {\n const jsonValue = value.toJSON(); // check for infinite recursion\n\n if (jsonValue !== value) {\n return typeof jsonValue === 'string'\n ? jsonValue\n : formatValue(jsonValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction isJSONable(value) {\n return typeof value.toJSON === 'function';\n}\n\nfunction formatObject(object, seenValues) {\n const entries = Object.entries(object);\n\n if (entries.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n const properties = entries.map(\n ([key, value]) => key + ': ' + formatValue(value, seenValues),\n );\n return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n\n const len = Math.min(MAX_ARRAY_LENGTH, array.length);\n const remaining = array.length - len;\n const items = [];\n\n for (let i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push('... 1 more item');\n } else if (remaining > 1) {\n items.push(`... ${remaining} more items`);\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getObjectTag(object) {\n const tag = Object.prototype.toString\n .call(object)\n .replace(/^\\[object /, '')\n .replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n const name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { instanceOf } from '../jsutils/instanceOf.mjs';\n\n/**\n * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are\n * optional, but they are useful for clients who store GraphQL documents in source files.\n * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might\n * be useful for `name` to be `\"Foo.graphql\"` and location to be `{ line: 40, column: 1 }`.\n * The `line` and `column` properties in `locationOffset` are 1-indexed.\n */\nexport class Source {\n constructor(\n body,\n name = 'GraphQL request',\n locationOffset = {\n line: 1,\n column: 1,\n },\n ) {\n typeof body === 'string' ||\n devAssert(false, `Body must be a string. Received: ${inspect(body)}.`);\n this.body = body;\n this.name = name;\n this.locationOffset = locationOffset;\n this.locationOffset.line > 0 ||\n devAssert(\n false,\n 'line in locationOffset is 1-indexed and must be positive.',\n );\n this.locationOffset.column > 0 ||\n devAssert(\n false,\n 'column in locationOffset is 1-indexed and must be positive.',\n );\n }\n\n get [Symbol.toStringTag]() {\n return 'Source';\n }\n}\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n\nexport function isSource(source) {\n return instanceOf(source, Source);\n}\n","// The ordering of these imports is important, because it ensures the temporary\n// process.env.NODE_ENV polyfill is defined globally (if necessary) before we\n// import { Source } from 'graphql'. The instanceOf function that we really care\n// about (the one that uses process.env.NODE_ENV) is not exported from the\n// top-level graphql package, but graphql/language/source uses instanceOf, and\n// has relatively few dependencies, so importing it here should not increase\n// bundle sizes as much as other options.\nimport { remove } from 'ts-invariant/process';\nimport { Source } from 'graphql';\n\nexport function removeTemporaryGlobals() {\n // Using Source here here just to make sure it won't be tree-shaken away.\n return typeof Source === \"function\" ? remove() : remove();\n}\n","import { invariant, InvariantError } from \"ts-invariant\";\n\n// Just in case the graphql package switches from process.env.NODE_ENV to\n// __DEV__, make sure __DEV__ is polyfilled before importing graphql.\nimport DEV from \"./DEV\";\nexport { DEV }\nexport function checkDEV() {\n invariant(\"boolean\" === typeof DEV, DEV);\n}\n\n// Import graphql/jsutils/instanceOf safely, working around its unchecked usage\n// of process.env.NODE_ENV and https://github.com/graphql/graphql-js/pull/2894.\nimport { removeTemporaryGlobals } from \"./fix-graphql\";\n\n// Synchronously undo the global process.env.NODE_ENV polyfill that we created\n// temporarily while importing the offending graphql/jsutils/instanceOf module.\nremoveTemporaryGlobals();\n\nexport { maybe } from \"./maybe\";\nexport { default as global } from \"./global\";\nexport { invariant, InvariantError }\n\n// Ensure __DEV__ was properly initialized, and prevent tree-shaking bundlers\n// from mistakenly pruning the ./DEV module (see issue #8674).\ncheckDEV();\n","import { maybe } from \"../globals\";\n\nexport const canUseWeakMap =\n typeof WeakMap === 'function' &&\n maybe(() => navigator.product) !== 'ReactNative';\n\nexport const canUseWeakSet = typeof WeakSet === 'function';\n\nexport const canUseSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.for === 'function';\n\nexport const canUseAsyncIteratorSymbol = canUseSymbol && Symbol.asyncIterator;\n\nexport const canUseDOM =\n typeof maybe(() => window.document.createElement) === \"function\";\n\nconst usingJSDOM: boolean =\n // Following advice found in this comment from @domenic (maintainer of jsdom):\n // https://github.com/jsdom/jsdom/issues/1537#issuecomment-229405327\n //\n // Since we control the version of Jest and jsdom used when running Apollo\n // Client tests, and that version is recent enought to include \" jsdom/x.y.z\"\n // at the end of the user agent string, I believe this case is all we need to\n // check. Testing for \"Node.js\" was recommended for backwards compatibility\n // with older version of jsdom, but we don't have that problem.\n maybe(() => navigator.userAgent.indexOf(\"jsdom\") >= 0) || false;\n\n// Our tests should all continue to pass if we remove this !usingJSDOM\n// condition, thereby allowing useLayoutEffect when using jsdom. Unfortunately,\n// if we allow useLayoutEffect, then useSyncExternalStore generates many\n// warnings about useLayoutEffect doing nothing on the server. While these\n// warnings are harmless, this !usingJSDOM condition seems to be the best way to\n// prevent them (i.e. skipping useLayoutEffect when using jsdom).\nexport const canUseLayoutEffect = canUseDOM && !usingJSDOM;\n","import * as React from 'react';\nimport { ApolloClient } from '../../core';\nimport { canUseSymbol } from '../../utilities';\nimport type { RenderPromises } from '../ssr';\n\nexport interface ApolloContextValue {\n client?: ApolloClient<object>;\n renderPromises?: RenderPromises;\n}\n\n// To make sure Apollo Client doesn't create more than one React context\n// (which can lead to problems like having an Apollo Client instance added\n// in one context, then attempting to retrieve it from another different\n// context), a single Apollo context is created and tracked in global state.\nconst contextKey = canUseSymbol\n ? Symbol.for('__APOLLO_CONTEXT__')\n : '__APOLLO_CONTEXT__';\n\nexport function getApolloContext(): React.Context<ApolloContextValue> {\n let context = (React.createContext as any)[contextKey] as React.Context<ApolloContextValue>;\n if (!context) {\n Object.defineProperty(React.createContext, contextKey, {\n value: context = React.createContext<ApolloContextValue>({}),\n enumerable: false,\n writable: false,\n configurable: true,\n });\n context.displayName = 'ApolloContext';\n }\n return context;\n}\n\nexport { getApolloContext as resetApolloContext }\n","import { invariant } from '../../utilities/globals';\n\nimport * as React from 'react';\n\nimport { ApolloClient } from '../../core';\nimport { getApolloContext } from './ApolloContext';\n\nexport interface ApolloProviderProps<TCache> {\n client: ApolloClient<TCache>;\n children: React.ReactNode | React.ReactNode[] | null;\n}\n\nexport const ApolloProvider: React.FC<ApolloProviderProps<any>> = ({\n client,\n children\n}) => {\n const ApolloContext = getApolloContext();\n return (\n <ApolloContext.Consumer>\n {(context: any = {}) => {\n if (client && context.client !== client) {\n context = Object.assign({}, context, { client });\n }\n\n invariant(\n context.client,\n 'ApolloProvider was not passed a client instance. Make ' +\n 'sure you pass in your client via the \"client\" prop.'\n );\n\n return (\n <ApolloContext.Provider value={context}>\n {children}\n </ApolloContext.Provider>\n );\n }}\n </ApolloContext.Consumer>\n );\n};\n","import { invariant } from '../../utilities/globals';\nimport { useContext } from 'react';\nimport { ApolloClient } from '../../core';\nimport { getApolloContext } from '../context';\n\nexport function useApolloClient(\n override?: ApolloClient<object>,\n): ApolloClient<object> {\n const context = useContext(getApolloContext());\n const client = override || context.client;\n invariant(\n !!client,\n 'Could not find \"client\" in the context or passed in as an option. ' +\n 'Wrap the root component in an <ApolloProvider>, or pass an ApolloClient ' +\n 'instance in via options.',\n );\n\n return client;\n}\n","import { useApolloClient } from '@apollo/client/index.js'\n\nexport const useQuilttClient = useApolloClient\n\nexport default useQuilttClient\n","'use client'\n\nimport { useCallback, useEffect, useState } from 'react'\nimport { useQuilttSession } from './useQuilttSession'\nimport { useScript } from './useScript'\nimport {\n cdnBase,\n ConnectorSDK,\n ConnectorSDKConnector,\n ConnectorSDKConnectorOptions,\n} from '@quiltt/core'\nimport { version } from '../version'\n\ndeclare const Quiltt: ConnectorSDK\n\nexport const useQuilttConnector = (\n connectorId?: string,\n options?: ConnectorSDKConnectorOptions\n) => {\n const status = useScript(`${cdnBase}/v1/connector.js?agent=react-${version}`)\n const { session } = useQuilttSession()\n const [connector, setConnector] = useState<ConnectorSDKConnector>()\n const [isOpening, setIsOpening] = useState<boolean>(false)\n\n // Set Session\n useEffect(() => {\n if (typeof Quiltt === 'undefined') return\n\n Quiltt.authenticate(session?.token)\n }, [status, session])\n\n // Set Connector\n useEffect(() => {\n if (typeof Quiltt === 'undefined' || !connectorId) return\n\n if (options?.connectionId) {\n setConnector(Quiltt.reconnect(connectorId, { connectionId: options.connectionId }))\n } else {\n setConnector(Quiltt.connect(connectorId))\n }\n }, [status, connectorId, options?.connectionId])\n\n // onEvent\n useEffect(() => {\n if (!connector || !options?.onEvent) return\n\n connector.onEvent(options.onEvent)\n return () => connector.offEvent(options.onEvent as any)\n }, [connector, options?.onEvent])\n\n // onLoad\n useEffect(() => {\n if (!connector || !options?.onLoad) return\n\n connector.onLoad(options.onLoad)\n return () => connector.offLoad(options.onLoad as any)\n }, [connector, options?.onLoad])\n\n // onExit\n useEffect(() => {\n if (!connector || !options?.onExit) return\n\n connector.onExit(options.onExit)\n return () => connector.offExit(options.onExit as any)\n }, [connector, options?.onExit])\n\n // onExitSuccess\n useEffect(() => {\n if (!connector || !options?.onExitSuccess) return\n\n connector.onExitSuccess(options.onExitSuccess)\n return () => connector.offExitSuccess(options.onExitSuccess as any)\n }, [connector, options?.onExitSuccess])\n\n // onExitAbort\n useEffect(() => {\n if (!connector || !options?.onExitAbort) return\n\n connector.onExitAbort(options.onExitAbort)\n return () => connector.offExitAbort(options.onExitAbort as any)\n }, [connector, options?.onExitAbort])\n\n // onExitError\n useEffect(() => {\n if (!connector || !options?.onExitError) return\n\n connector.onExitError(options.onExitError)\n return () => connector.offExitError(options.onExitError as any)\n }, [connector, options?.onExitError])\n\n // This is used to hide any potential race conditions from usage; allowing\n // interaction before the script may have loaded.\n useEffect(() => {\n if (connector && isOpening) {\n setIsOpening(false)\n connector.open()\n }\n }, [connector, isOpening])\n\n const open = useCallback(() => {\n if (connectorId) {\n setIsOpening(true)\n } else {\n throw new Error('Must provide `connectorId` to `open` Quiltt Connector with Method Call')\n }\n }, [connectorId, setIsOpening])\n\n return { open }\n}\n","import { useCallback } from 'react'\n\nimport { useSession } from './useSession'\n\nimport { AuthAPI, Maybe, QuilttJWT } from '@quiltt/core'\n\nimport {\n AuthenticateSession,\n IdentifySession,\n ImportSession,\n RevokeSession,\n useAuthenticateSession,\n useIdentifySession,\n useImportSession,\n useRevokeSession,\n} from './session'\nimport { useQuilttSettings } from './useQuilttSettings'\n\nexport type UseQuilttSession = (environmentId?: string) => {\n session: Maybe<QuilttJWT> | undefined\n importSession: ImportSession\n identifySession: IdentifySession\n authenticateSession: AuthenticateSession\n revokeSession: RevokeSession\n forgetSession: (token?: string) => Promise<void>\n}\n\nexport const useQuilttSession: UseQuilttSession = (environmentId) => {\n const { clientId } = useQuilttSettings()\n const [session, setSession] = useSession()\n\n const auth = new AuthAPI(clientId)\n const importSession = useImportSession(auth, session, setSession, environmentId)\n const identifySession = useIdentifySession(auth, setSession)\n const authenticateSession = useAuthenticateSession(auth, setSession)\n const revokeSession = useRevokeSession(auth, session, setSession)\n\n // Optionally takes a token, to help guard against async processes clearing the wrong session\n const forgetSession = useCallback(\n async (token?: string) => {\n if (!token || (session && token && token == session.token)) {\n setSession(null)\n }\n },\n [session, setSession]\n )\n\n return {\n session,\n importSession,\n identifySession,\n authenticateSession,\n revokeSession,\n forgetSession,\n }\n}\n\nexport default useQuilttSession\n","'use client'\n\nimport { Dispatch, SetStateAction, useMemo } from 'react'\nimport { useEffect, useCallback } from 'react'\n\nimport type { Maybe, PrivateClaims, QuilttJWT } from '@quiltt/core'\nimport { JsonWebTokenParse, Timeoutable } from '@quiltt/core'\n\nimport { useStorage } from './useStorage'\n\nexport type SetSession = Dispatch<SetStateAction<Maybe<string> | undefined>>\n\nconst parse = JsonWebTokenParse<PrivateClaims>\n\n/**\n * Singleton timeout, allows hooks to come and go, while ensuring that there is\n * one notification being sent, preventing race conditions.\n */\nconst sessionTimer = new Timeoutable()\n\n/**\n * useSession uses useStorage to support a global singleton style of access. When\n * updated, all components, and windows should also invalidate.\n *\n * TODO: Support Rotation before Expiry\n *\n * Dataflow can come from two directions:\n * 1. Login - Bottom Up\n * This happens on login, when a token is passed up through the setSession\n * callback. From here it needs to be stored, and shared for usage.\n * 2. Refresh - Top Down\n * This happens when a page is reloaded or a person returns, and everything is\n * reinitialized.\n */\nexport const useSession = (storageKey = 'session'): [Maybe<QuilttJWT> | undefined, SetSession] => {\n const [token, setToken] = useStorage<string>(storageKey)\n const session = useMemo(() => parse(token), [token])\n\n // Clear session if/when it expires\n useEffect(() => {\n if (!session) return\n\n const expirationMS = session.claims.exp * 1000\n const expire = () => setToken(null)\n\n if (Date.now() >= expirationMS) {\n expire()\n } else {\n sessionTimer.set(expire, expirationMS - Date.now())\n return () => sessionTimer.clear(expire)\n }\n }, [session, setToken])\n\n // Bubbles up from Login\n const setSession = useCallback(\n (nextState: Maybe<string> | SetStateAction<Maybe<string> | undefined> | undefined) => {\n const newState = nextState instanceof Function ? nextState(token) : nextState\n\n if (token !== newState && (!newState || parse(newState))) {\n setToken(newState)\n }\n },\n [token, setToken]\n )\n\n return [session, setSession]\n}\n\nexport default useSession\n","'use client'\n\nimport type { Dispatch, SetStateAction } from 'react'\nimport { useCallback, useEffect, useState } from 'react'\n\nimport type { Maybe } from '@quiltt/core'\nimport { GlobalStorage } from '@quiltt/core'\n\n/**\n * Attempt to persist state with local storage, so it remains after refresh and\n * across open documents. Falls back to in memory storage when localStorage is\n * unavailable.\n *\n * This hook is used in the same way as useState except that you must pass the\n * storage key in the 1st parameter. If the window object is not present (as in SSR),\n * useStorage() will return the default nextState.\n *\n * Expect values to remain in sync\n * Across Hooks\n * Across Reloads\n * Across Windows (Documents)\n *\n * @param key\n * @param initialState\n * @returns {Array} [storage, setStorage]\n */\nexport const useStorage = <T>(\n key: string,\n initialState?: Maybe<T>\n): [Maybe<T> | undefined, Dispatch<SetStateAction<Maybe<T> | undefined>>] => {\n const getStorage = useCallback(() => {\n let state\n\n if ((state = GlobalStorage.get(key)) !== undefined) {\n return state\n }\n\n return initialState\n }, [key, initialState])\n\n const [hookState, setHookState] = useState<Maybe<T> | undefined>(getStorage())\n\n const setStorage = useCallback(\n (nextState: Maybe<T> | SetStateAction<Maybe<T> | undefined>) => {\n const newState = nextState instanceof Function ? nextState(hookState) : nextState\n\n if (hookState !== newState) {\n GlobalStorage.set(key, newState)\n }\n },\n [key, hookState]\n )\n\n /**\n * The empty dependency array ensures that the effect runs only once when the component mounts\n * and doesn't re-run unnecessarily on subsequent renders because it doesn't depend on any\n * props or state variables that could change during the component's lifetime.\n *\n * Use an empty dependency array to avoid unnecessary re-renders.\n */\n useEffect(() => {\n GlobalStorage.subscribe(key, setHookState)\n\n setHookState(getStorage())\n\n return () => GlobalStorage.unsubscribe(key, setHookState)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return [hookState, setStorage]\n}\n\nexport default useStorage\n","'use client'\n\nimport { createContext, useContext } from 'react'\n\ntype QuilttSettingsContext = {\n clientId?: string | undefined\n}\n\nexport const QuilttSettings = createContext<QuilttSettingsContext>({})\n\nexport const useQuilttSettings = () => {\n const settings = useContext(QuilttSettings)\n\n return { ...settings }\n}\n\nexport default useQuilttSettings\n","'use client'\nimport { useEffect, useState } from 'react'\n\nexport type UseScriptStatus = 'idle' | 'loading' | 'ready' | 'error'\nexport interface UseScriptOptions {\n shouldPreventLoad?: boolean\n removeOnUnmount?: boolean\n}\n\n// Cached script statuses\nconst cachedScriptStatuses: Record<string, UseScriptStatus | undefined> = {}\n\nfunction getScriptNode(src: string) {\n const node: HTMLScriptElement | null = document.querySelector(`script[src=\"${src}\"]`)\n const status = node?.getAttribute('data-status') as UseScriptStatus | undefined\n\n return {\n node,\n status,\n }\n}\n\n// @see https://usehooks-ts.com/react-hook/use-script\nexport function useScript(src: string | null, options?: UseScriptOptions): UseScriptStatus {\n const [status, setStatus] = useState<UseScriptStatus>(() => {\n if (!src || options?.shouldPreventLoad) {\n return 'idle'\n }\n\n if (typeof window === 'undefined') {\n // SSR Handling - always return 'loading'\n return 'loading'\n }\n\n return cachedScriptStatuses[src] ?? 'loading'\n })\n\n useEffect(() => {\n if (!src || options?.shouldPreventLoad) {\n return\n }\n\n const cachedScriptStatus = cachedScriptStatuses[src]\n if (cachedScriptStatus === 'ready' || cachedScriptStatus === 'error') {\n // If the script is already cached, set its status immediately\n setStatus(cachedScriptStatus)\n return\n }\n\n // Fetch existing script element by src\n // It may have been added by another instance of this hook\n const script = getScriptNode(src)\n let scriptNode = script.node\n\n if (!scriptNode) {\n // Create script element and add it to document body\n scriptNode = document.createElement('script')\n scriptNode.src = src\n scriptNode.async = true\n scriptNode.setAttribute('data-status', 'loading')\n document.body.appendChild(scriptNode)\n\n // Store status in attribute on script\n // This can be read by other instances of this hook\n const setAttributeFromEvent = (event: Event) => {\n const scriptStatus: UseScriptStatus = event.type === 'load' ? 'ready' : 'error'\n\n scriptNode?.setAttribute('data-status', scriptStatus)\n }\n\n scriptNode.addEventListener('load', setAttributeFromEvent)\n scriptNode.addEventListener('error', setAttributeFromEvent)\n } else {\n // Grab existing script status from attribute and set to state.\n setStatus(script.status ?? cachedScriptStatus ?? 'loading')\n }\n\n // Script event handler to update status in state\n // Note: Even if the script already exists we still need to add\n // event handlers to update the state for *this* hook instance.\n const setStateFromEvent = (event: Event) => {\n const newStatus = event.type === 'load' ? 'ready' : 'error'\n setStatus(newStatus)\n cachedScriptStatuses[src] = newStatus\n }\n\n // Add event listeners\n scriptNode.addEventListener('load', setStateFromEvent)\n scriptNode.addEventListener('error', setStateFromEvent)\n\n // Remove event listeners on cleanup\n return () => {\n if (scriptNode) {\n scriptNode.removeEventListener('load', setStateFromEvent)\n scriptNode.removeEventListener('error', setStateFromEvent)\n }\n\n if (scriptNode && options?.removeOnUnmount) {\n scriptNode.remove()\n }\n }\n }, [src, options?.shouldPreventLoad, options?.removeOnUnmount])\n\n return status\n}\n","// Generated by genversion.\nexport const version = '3.4.0'\n","'use client'\n\nimport type { FC, PropsWithChildren } from 'react'\nimport { useEffect } from 'react'\n\nimport { ApolloProvider } from '@apollo/client'\nimport { InMemoryCache, QuilttClient } from '@quiltt/core'\nimport { useQuilttSession } from '../hooks'\n\ntype QuilttAuthProviderProps = PropsWithChildren & {\n token?: string\n}\n\nconst Client = new QuilttClient({\n cache: new InMemoryCache(),\n})\n\n/**\n * If a token is provided, will validate the token against the api and then import\n * it into trusted storage. While this process is happening, the component is put\n * into a loading state and the children are not rendered to prevent race conditions\n * from triggering within the transitionary state.\n *\n */\nexport const QuilttAuthProvider: FC<QuilttAuthProviderProps> = ({ token, children }) => {\n const { session, importSession } = useQuilttSession()\n\n // Import Passed in Tokens\n useEffect(() => {\n if (token) importSession(token)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [token])\n\n // Reset Client Store when logging in or out\n useEffect(() => {\n Client.resetStore()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [session])\n\n return <ApolloProvider client={Client}>{children}</ApolloProvider>\n}\n\nexport default QuilttAuthProvider\n","'use client'\n\nimport type { FC, PropsWithChildren } from 'react'\nimport { useState } from 'react'\n\nimport { QuilttSettings } from '../hooks'\n\ntype QuilttSettingsProviderProps = PropsWithChildren & {\n clientId?: string\n}\n\nexport const QuilttSettingsProvider: FC<QuilttSettingsProviderProps> = ({ clientId, children }) => {\n const [_clientId] = useState(clientId)\n\n return (\n <QuilttSettings.Provider value={{ clientId: _clientId }}>{children}</QuilttSettings.Provider>\n )\n}\n\nexport default QuilttSettingsProvider\n","import type { FC, PropsWithChildren } from 'react'\n\nimport { QuilttAuthProvider } from './QuilttAuthProvider'\nimport { QuilttSettingsProvider } from './QuilttSettingsProvider'\n\ntype QuilttProviderProps = PropsWithChildren & {\n clientId?: string\n token?: string\n}\n\nexport const QuilttProvider: FC<QuilttProviderProps> = ({ clientId, token, children }) => {\n return (\n <QuilttSettingsProvider clientId={clientId}>\n <QuilttAuthProvider token={token}>{children}</QuilttAuthProvider>\n </QuilttSettingsProvider>\n )\n}\n\nexport default QuilttProvider\n","import { PropsWithChildren } from 'react'\nimport { useQuilttConnector } from '..'\nimport { AnyTag, PropsOf } from '../types'\n\nimport { ConnectorSDKCallbacks } from '@quiltt/core'\n\ntype QuilttButtonProps<T extends AnyTag> = PropsWithChildren<\n {\n as?: T\n connectorId: string\n connectionId?: string // For Reconnect Mode\n } & ConnectorSDKCallbacks\n>\n\nexport const QuilttButton = <T extends AnyTag = 'button'>({\n as,\n connectorId,\n connectionId,\n onEvent,\n onLoad,\n onExit,\n onExitSuccess,\n onExitAbort,\n onExitError,\n children,\n ...props\n}: QuilttButtonProps<T> & PropsOf<T>) => {\n const { open } = useQuilttConnector(connectorId, {\n connectionId,\n onEvent,\n onLoad,\n onExit,\n onExitSuccess,\n onExitAbort,\n onExitError,\n })\n\n const Button = as || 'button'\n\n return (\n <Button onClick={open} quiltt-connection={connectionId} {...props}>\n {children}\n </Button>\n )\n}\n\nexport default QuilttButton\n","import { PropsWithChildren } from 'react'\nimport { useQuilttConnector } from '..'\nimport { AnyTag, PropsOf } from '../types'\n\nimport { ConnectorSDKCallbacks } from '@quiltt/core'\n\ntype QuilttContainerProps<T extends AnyTag> = PropsWithChildren<\n {\n as?: T\n connectorId: string\n connectionId?: string // For Reconnect Mode\n } & ConnectorSDKCallbacks\n>\n\n/**\n * QuilttContainer uses globally shared callbacks. It's recommended you only use\n * one Container at a time.\n */\nexport const QuilttContainer = <T extends AnyTag = 'div'>({\n as,\n connectorId,\n connectionId,\n onEvent,\n onLoad,\n onExit,\n onExitSuccess,\n onExitAbort,\n onExitError,\n children,\n ...props\n}: QuilttContainerProps<T> & PropsOf<T>) => {\n useQuilttConnector(connectorId, {\n onEvent,\n onLoad,\n onExit,\n onExitSuccess,\n onExitAbort,\n onExitError,\n })\n\n const Container = as || 'div'\n\n return (\n <Container quiltt-container={connectorId} quiltt-connection={connectionId} {...props}>\n {children}\n </Container>\n )\n}\n\nexport default QuilttContainer\n"],"mappings":"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","names":["src_exports","__export","QuilttAuthProvider","QuilttButton","QuilttContainer","QuilttProvider","QuilttSettings","QuilttSettingsProvider","useAuthenticateSession","useEventListener","useIdentifySession","useImportSession","useIsomorphicLayoutEffect","useQuilttClient","useQuilttConnector","useQuilttSession","useQuilttSettings","useRevokeSession","useSession","useStorage","__toCommonJS","__reExport","import_react","import_react","useIsomorphicLayoutEffect","useIsomorphicLayoutEffect_default","useEventListener","eventName","handler","element","options","savedHandler","useIsomorphicLayoutEffect_default","_a","targetElement","listener","event","import_react","useIdentifySession","auth","setSession","payload","callbacks","__async","response","unprocessableResponse","import_react","useAuthenticateSession","auth","setSession","payload","callbacks","__async","response","import_react","import_core","useImportSession","auth","session","setSession","environmentId","token","__async","jwt","response","import_react","useRevokeSession","auth","session","setSession","__async","extendStatics","d","b","p","__extends","__","genericMessage","_a","setPrototypeOf","obj","proto","InvariantError","_super","__extends","message","_this","invariant","condition","message","InvariantError","verbosityLevels","verbosityLevel","wrapConsoleMethod","name","method","maybe","thunk","_a","global_default","maybe","__","GLOBAL_KEY","getDEV","_a","global_default","maybe","DEV_default","maybe","thunk","_","safeGlobal","needToRemove","install","remove","devAssert","condition","message","inspect","value","formatValue","seenValues","formatObjectValue","previouslySeenValues","isJSONable","jsonValue","formatArray","formatObject","object","entries","getObjectTag","key","array","len","remaining","items","i","tag","name","Source","body","name","locationOffset","devAssert","inspect","removeTemporaryGlobals","Source","remove","checkDEV","invariant","DEV_default","removeTemporaryGlobals","checkDEV","canUseWeakMap","maybe","canUseSymbol","canUseDOM","maybe","usingJSDOM","React","contextKey","canUseSymbol","getApolloContext","context","React","ApolloProvider","_a","client","children","ApolloContext","getApolloContext","context","invariant","import_react","useApolloClient","override","context","getApolloContext","client","invariant","useQuilttClient","useApolloClient","import_react","import_react","import_react","import_core","import_react","import_core","useStorage","key","initialState","getStorage","state","hookState","setHookState","setStorage","nextState","newState","parse","sessionTimer","useSession","storageKey","token","setToken","useStorage","session","expirationMS","expire","setSession","nextState","newState","import_core","import_react","QuilttSettings","useQuilttSettings","settings","__spreadValues","useQuilttSession","environmentId","clientId","useQuilttSettings","session","setSession","useSession","auth","importSession","useImportSession","identifySession","useIdentifySession","authenticateSession","useAuthenticateSession","revokeSession","useRevokeSession","forgetSession","token","__async","import_react","cachedScriptStatuses","getScriptNode","src","node","status","useScript","options","setStatus","_a","_b","cachedScriptStatus","script","scriptNode","setAttributeFromEvent","event","scriptStatus","setStateFromEvent","newStatus","import_core","version","useQuilttConnector","connectorId","options","status","useScript","version","session","useQuilttSession","connector","setConnector","isOpening","setIsOpening","import_react","import_core","import_jsx_runtime","Client","QuilttAuthProvider","token","children","session","importSession","useQuilttSession","ApolloProvider","import_react","import_jsx_runtime","QuilttSettingsProvider","clientId","children","_clientId","QuilttSettings","import_jsx_runtime","QuilttProvider","clientId","token","children","QuilttSettingsProvider","QuilttAuthProvider","import_jsx_runtime","QuilttButton","_a","_b","as","connectorId","connectionId","onEvent","onLoad","onExit","onExitSuccess","onExitAbort","onExitError","children","props","__objRest","open","useQuilttConnector","__spreadProps","__spreadValues","import_jsx_runtime","QuilttContainer","_a","_b","as","connectorId","connectionId","onEvent","onLoad","onExit","onExitSuccess","onExitAbort","onExitError","children","props","__objRest","useQuilttConnector","__spreadProps","__spreadValues"]}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var ge=Object.defineProperty,Ee=Object.defineProperties;var Te=Object.getOwnPropertyDescriptors;var g=Object.getOwnPropertySymbols;var G=Object.prototype.hasOwnProperty,q=Object.prototype.propertyIsEnumerable;var W=(t,e,r)=>e in t?ge(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,b=(t,e)=>{for(var r in e||(e={}))G.call(e,r)&&W(t,r,e[r]);if(g)for(var r of g(e))q.call(e,r)&&W(t,r,e[r]);return t},E=(t,e)=>Ee(t,Te(e));var T=(t,e)=>{var r={};for(var o in t)G.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&g)for(var o of g(t))e.indexOf(o)<0&&q.call(t,o)&&(r[o]=t[o]);return r};var d=(t,e,r)=>new Promise((o,n)=>{var s=u=>{try{a(r.next(u))}catch(l){n(l)}},i=u=>{try{a(r.throw(u))}catch(l){n(l)}},a=u=>u.done?o(u.value):Promise.resolve(u.value).then(s,i);a((r=r.apply(t,e)).next())});export*from"@quiltt/core";import{useEffect as Ce,useRef as Oe}from"react";import{useEffect as _e,useLayoutEffect as we}from"react";var Ae=typeof window!="undefined"?we:_e,H=Ae;function gt(t,e,r,o){let n=Oe(e);H(()=>{n.current=e},[e]),Ce(()=>{var a;let s=(a=r==null?void 0:r.current)!=null?a:window;if(!(s&&s.addEventListener))return;let i=u=>n.current(u);return s.addEventListener(t,i,o),()=>{s.removeEventListener(t,i,o)}},[t,r,o])}import{useCallback as Pe}from"react";var B=(t,e)=>Pe((o,n)=>d(void 0,null,function*(){let s=yield t.identify(o),i=s;switch(s.status){case 201:if(e(s.data.token),n.onSuccess)return n.onSuccess();break;case 202:if(n.onChallenged)return n.onChallenged();break;case 422:if(n.onError)return n.onError(i.data);break;default:throw new Error(`Unexpected auth identify response status: ${s.status}`)}}),[t,e]);import{useCallback as Le}from"react";var J=(t,e)=>Le((o,n)=>d(void 0,null,function*(){let s=yield t.authenticate(o);switch(s.status){case 201:if(e(s.data.token),n.onSuccess)return n.onSuccess();break;case 401:if(n.onFailure)return n.onFailure();break;case 422:if(n.onError)return n.onError(s.data);break;default:throw new Error(`Unexpected auth authenticate response status: ${s.status}`)}}),[t,e]);import{useCallback as Re}from"react";import{JsonWebTokenParse as De}from"@quiltt/core";var $=(t,e,r,o)=>Re(s=>d(void 0,null,function*(){if(!s)return!!e;if(e&&e.token==s)return!0;let i=De(s);if(!i||o&&i.claims.eid!==o)return!1;let a=yield t.ping(s);switch(a.status){case 200:return r(s),!0;break;case 401:return!1;default:throw new Error(`Unexpected auth ping response status: ${a.status}`)}}),[t,e,r,o]);import{useCallback as Ie}from"react";var X=(t,e,r)=>Ie(()=>d(void 0,null,function*(){e&&(yield t.revoke(e.token),r(null))}),[t,e,r]);var N=function(t,e){return N=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,o){r.__proto__=o}||function(r,o){for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(r[n]=o[n])},N(t,e)};function Y(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");N(t,e);function r(){this.constructor=t}t.prototype=e===null?Object.create(e):(r.prototype=e.prototype,new r)}var Q="Invariant Violation",z=Object.setPrototypeOf,Ne=z===void 0?function(t,e){return t.__proto__=e,t}:z,Z=function(t){Y(e,t);function e(r){r===void 0&&(r=Q);var o=t.call(this,typeof r=="number"?Q+": "+r+" (see https://github.com/apollographql/invariant-packages)":r)||this;return o.framesToPop=1,o.name=Q,Ne(o,e.prototype),o}return e}(Error);function p(t,e){if(!t)throw new Z(e)}var ee=["debug","log","warn","error","silent"],Qe=ee.indexOf("log");function _(t){return function(){if(ee.indexOf(t)>=Qe){var e=console[t]||console.log;return e.apply(console,arguments)}}}(function(t){t.debug=_("debug"),t.log=_("log"),t.warn=_("warn"),t.error=_("error")})(p||(p={}));function c(t){try{return t()}catch(e){}}var w=c(function(){return globalThis})||c(function(){return window})||c(function(){return self})||c(function(){return global})||c(function(){return c.constructor("return this")()});var te="__",re=[te,te].join("DEV");function Me(){try{return!!__DEV__}catch(t){return Object.defineProperty(w,re,{value:c(function(){return process.env.NODE_ENV})!=="production",enumerable:!1,configurable:!0,writable:!0}),w[re]}}var A=Me();function y(t){try{return t()}catch(e){}}var M=y(function(){return globalThis})||y(function(){return window})||y(function(){return self})||y(function(){return global})||y(function(){return y.constructor("return this")()}),U=!1;function Ue(){M&&!y(function(){return process.env.NODE_ENV})&&!y(function(){return process})&&(Object.defineProperty(M,"process",{value:{env:{NODE_ENV:"production"}},configurable:!0,enumerable:!1,writable:!0}),U=!0)}Ue();function j(){U&&(delete M.process,U=!1)}function C(t,e){if(!!!t)throw new Error(e)}function ne(t){return O(t,[])}function O(t,e){switch(typeof t){case"string":return JSON.stringify(t);case"function":return t.name?`[function ${t.name}]`:"[function]";case"object":return je(t,e);default:return String(t)}}function je(t,e){if(t===null)return"null";if(e.includes(t))return"[Circular]";let r=[...e,t];if(ke(t)){let o=t.toJSON();if(o!==t)return typeof o=="string"?o:O(o,r)}else if(Array.isArray(t))return Ke(t,r);return Ve(t,r)}function ke(t){return typeof t.toJSON=="function"}function Ve(t,e){let r=Object.entries(t);return r.length===0?"{}":e.length>2?"["+Fe(t)+"]":"{ "+r.map(([n,s])=>n+": "+O(s,e)).join(", ")+" }"}function Ke(t,e){if(t.length===0)return"[]";if(e.length>2)return"[Array]";let r=Math.min(10,t.length),o=t.length-r,n=[];for(let s=0;s<r;++s)n.push(O(t[s],e));return o===1?n.push("... 1 more item"):o>1&&n.push(`... ${o} more items`),"["+n.join(", ")+"]"}function Fe(t){let e=Object.prototype.toString.call(t).replace(/^\[object /,"").replace(/]$/,"");if(e==="Object"&&typeof t.constructor=="function"){let r=t.constructor.name;if(typeof r=="string"&&r!=="")return r}return e}var x=class{constructor(e,r="GraphQL request",o={line:1,column:1}){typeof e=="string"||C(!1,`Body must be a string. Received: ${ne(e)}.`),this.body=e,this.name=r,this.locationOffset=o,this.locationOffset.line>0||C(!1,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||C(!1,"column in locationOffset is 1-indexed and must be positive.")}get[Symbol.toStringTag](){return"Source"}};function oe(){return typeof x=="function"?j():j()}function We(){__DEV__?p(typeof A=="boolean",A):p(typeof A=="boolean",39)}oe();We();var Fr=typeof WeakMap=="function"&&c(function(){return navigator.product})!=="ReactNative";var ie=typeof Symbol=="function"&&typeof Symbol.for=="function";var Wr=typeof c(function(){return window.document.createElement})=="function",Gr=c(function(){return navigator.userAgent.indexOf("jsdom")>=0})||!1;import*as P from"react";var se=ie?Symbol.for("__APOLLO_CONTEXT__"):"__APOLLO_CONTEXT__";function S(){var t=P.createContext[se];return t||(Object.defineProperty(P.createContext,se,{value:t=P.createContext({}),enumerable:!1,writable:!1,configurable:!0}),t.displayName="ApolloContext"),t}import*as k from"react";var L=function(t){var e=t.client,r=t.children,o=S();return k.createElement(o.Consumer,null,function(n){return n===void 0&&(n={}),e&&n.client!==e&&(n=Object.assign({},n,{client:e})),__DEV__?p(n.client,'ApolloProvider was not passed a client instance. Make sure you pass in your client via the "client" prop.'):p(n.client,29),k.createElement(o.Provider,{value:n},r)})};import{useContext as Ge}from"react";function ae(t){var e=Ge(S()),r=t||e.client;return __DEV__?p(!!r,'Could not find "client" in the context or passed in as an option. Wrap the root component in an <ApolloProvider>, or pass an ApolloClient instance in via options.'):p(!!r,32),r}var dn=ae;import{useCallback as it,useEffect as m,useState as ye}from"react";import{useCallback as et}from"react";import{useMemo as Be}from"react";import{useEffect as Je,useCallback as $e}from"react";import{JsonWebTokenParse as Xe,Timeoutable as Ye}from"@quiltt/core";import{useCallback as ue,useEffect as qe,useState as He}from"react";import{GlobalStorage as R}from"@quiltt/core";var ce=(t,e)=>{let r=ue(()=>{let i;return(i=R.get(t))!==void 0?i:e},[t,e]),[o,n]=He(r()),s=ue(i=>{let a=i instanceof Function?i(o):i;o!==a&&R.set(t,a)},[t,o]);return qe(()=>(R.subscribe(t,n),n(r()),()=>R.unsubscribe(t,n)),[]),[o,s]};var le=Xe,fe=new Ye,pe=(t="session")=>{let[e,r]=ce(t),o=Be(()=>le(e),[e]);Je(()=>{if(!o)return;let s=o.claims.exp*1e3,i=()=>r(null);if(Date.now()>=s)i();else return fe.set(i,s-Date.now()),()=>fe.clear(i)},[o,r]);let n=$e(s=>{let i=s instanceof Function?s(e):s;e!==i&&(!i||le(i))&&r(i)},[e,r]);return[o,n]};import{AuthAPI as tt}from"@quiltt/core";import{createContext as ze,useContext as Ze}from"react";var V=ze({}),de=()=>{let t=Ze(V);return b({},t)};var D=t=>{let{clientId:e}=de(),[r,o]=pe(),n=new tt(e),s=$(n,r,o,t),i=B(n,o),a=J(n,o),u=X(n,r,o),l=et(f=>d(void 0,null,function*(){(!f||r&&f&&f==r.token)&&o(null)}),[r,o]);return{session:r,importSession:s,identifySession:i,authenticateSession:a,revokeSession:u,forgetSession:l}};import{useEffect as rt,useState as nt}from"react";var K={};function ot(t){let e=document.querySelector(`script[src="${t}"]`),r=e==null?void 0:e.getAttribute("data-status");return{node:e,status:r}}function me(t,e){let[r,o]=nt(()=>{var n;return!t||e!=null&&e.shouldPreventLoad?"idle":typeof window=="undefined"?"loading":(n=K[t])!=null?n:"loading"});return rt(()=>{var u,l;if(!t||e!=null&&e.shouldPreventLoad)return;let n=K[t];if(n==="ready"||n==="error"){o(n);return}let s=ot(t),i=s.node;if(i)o((l=(u=s.status)!=null?u:n)!=null?l:"loading");else{i=document.createElement("script"),i.src=t,i.async=!0,i.setAttribute("data-status","loading"),document.body.appendChild(i);let f=h=>{let v=h.type==="load"?"ready":"error";i==null||i.setAttribute("data-status",v)};i.addEventListener("load",f),i.addEventListener("error",f)}let a=f=>{let h=f.type==="load"?"ready":"error";o(h),K[t]=h};return i.addEventListener("load",a),i.addEventListener("error",a),()=>{i&&(i.removeEventListener("load",a),i.removeEventListener("error",a)),i&&(e!=null&&e.removeOnUnmount)&&i.remove()}},[t,e==null?void 0:e.shouldPreventLoad,e==null?void 0:e.removeOnUnmount]),r}import{cdnBase as st}from"@quiltt/core";var I=(t,e)=>{let r=me(`${st}/v1/connector.js`),{session:o}=D(),[n,s]=ye(),[i,a]=ye(!1);return m(()=>{typeof Quiltt!="undefined"&&Quiltt.authenticate(o==null?void 0:o.token)},[r,o]),m(()=>{typeof Quiltt=="undefined"||!t||(e!=null&&e.connectionId?s(Quiltt.reconnect(t,{connectionId:e.connectionId})):s(Quiltt.connect(t)))},[r,t,e==null?void 0:e.connectionId]),m(()=>{if(!(!n||!(e!=null&&e.onEvent)))return n.onEvent(e.onEvent),()=>n.offEvent(e.onEvent)},[n,e==null?void 0:e.onEvent]),m(()=>{if(!(!n||!(e!=null&&e.onLoad)))return n.onLoad(e.onLoad),()=>n.offLoad(e.onLoad)},[n,e==null?void 0:e.onLoad]),m(()=>{if(!(!n||!(e!=null&&e.onExit)))return n.onExit(e.onExit),()=>n.offExit(e.onExit)},[n,e==null?void 0:e.onExit]),m(()=>{if(!(!n||!(e!=null&&e.onExitSuccess)))return n.onExitSuccess(e.onExitSuccess),()=>n.offExitSuccess(e.onExitSuccess)},[n,e==null?void 0:e.onExitSuccess]),m(()=>{if(!(!n||!(e!=null&&e.onExitAbort)))return n.onExitAbort(e.onExitAbort),()=>n.offExitAbort(e.onExitAbort)},[n,e==null?void 0:e.onExitAbort]),m(()=>{if(!(!n||!(e!=null&&e.onExitError)))return n.onExitError(e.onExitError),()=>n.offExitError(e.onExitError)},[n,e==null?void 0:e.onExitError]),m(()=>{n&&i&&(a(!1),n.open())},[n,i]),{open:it(()=>{if(t)a(!0);else throw new Error("Must provide `connectorId` to `open` Quiltt Connector with Method Call")},[t,a])}};import{useEffect as Se}from"react";import{InMemoryCache as at,QuilttClient as ut}from"@quiltt/core";import{jsx as ct}from"react/jsx-runtime";var ve=new ut({cache:new at}),he=({token:t,children:e})=>{let{session:r,importSession:o}=D();return Se(()=>{t&&o(t)},[t]),Se(()=>{ve.resetStore()},[r]),ct(L,{client:ve,children:e})};import{useState as lt}from"react";import{jsx as ft}from"react/jsx-runtime";var be=({clientId:t,children:e})=>{let[r]=lt(t);return ft(V.Provider,{value:{clientId:r},children:e})};import{jsx as xe}from"react/jsx-runtime";var co=({clientId:t,token:e,children:r})=>xe(be,{clientId:t,children:xe(he,{token:e,children:r})});import{jsx as pt}from"react/jsx-runtime";var mo=h=>{var v=h,{as:t,connectorId:e,connectionId:r,onEvent:o,onLoad:n,onExit:s,onExitSuccess:i,onExitAbort:a,onExitError:u,children:l}=v,f=T(v,["as","connectorId","connectionId","onEvent","onLoad","onExit","onExitSuccess","onExitAbort","onExitError","children"]);let{open:F}=I(e,{connectionId:r,onEvent:o,onLoad:n,onExit:s,onExitSuccess:i,onExitAbort:a,onExitError:u});return pt(t||"button",E(b({onClick:F,"quiltt-connection":r},f),{children:l}))};import{jsx as dt}from"react/jsx-runtime";var bo=h=>{var v=h,{as:t,connectorId:e,connectionId:r,onEvent:o,onLoad:n,onExit:s,onExitSuccess:i,onExitAbort:a,onExitError:u,children:l}=v,f=T(v,["as","connectorId","connectionId","onEvent","onLoad","onExit","onExitSuccess","onExitAbort","onExitError","children"]);return I(e,{onEvent:o,onLoad:n,onExit:s,onExitSuccess:i,onExitAbort:a,onExitError:u}),dt(t||"div",E(b({"quiltt-container":e,"quiltt-connection":r},f),{children:l}))};export{he as QuilttAuthProvider,mo as QuilttButton,bo as QuilttContainer,co as QuilttProvider,V as QuilttSettings,be as QuilttSettingsProvider,J as useAuthenticateSession,gt as useEventListener,B as useIdentifySession,$ as useImportSession,Ae as useIsomorphicLayoutEffect,dn as useQuilttClient,I as useQuilttConnector,D as useQuilttSession,de as useQuilttSettings,X as useRevokeSession,pe as useSession,ce as useStorage};
1
+ var Ee=Object.defineProperty,Te=Object.defineProperties;var _e=Object.getOwnPropertyDescriptors;var g=Object.getOwnPropertySymbols;var G=Object.prototype.hasOwnProperty,q=Object.prototype.propertyIsEnumerable;var W=(t,e,r)=>e in t?Ee(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,b=(t,e)=>{for(var r in e||(e={}))G.call(e,r)&&W(t,r,e[r]);if(g)for(var r of g(e))q.call(e,r)&&W(t,r,e[r]);return t},E=(t,e)=>Te(t,_e(e));var T=(t,e)=>{var r={};for(var o in t)G.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&g)for(var o of g(t))e.indexOf(o)<0&&q.call(t,o)&&(r[o]=t[o]);return r};var d=(t,e,r)=>new Promise((o,n)=>{var s=u=>{try{a(r.next(u))}catch(l){n(l)}},i=u=>{try{a(r.throw(u))}catch(l){n(l)}},a=u=>u.done?o(u.value):Promise.resolve(u.value).then(s,i);a((r=r.apply(t,e)).next())});export*from"@quiltt/core";import{useEffect as Oe,useRef as Pe}from"react";import{useEffect as we,useLayoutEffect as Ae}from"react";var Ce=typeof window!="undefined"?Ae:we,H=Ce;function Et(t,e,r,o){let n=Pe(e);H(()=>{n.current=e},[e]),Oe(()=>{var a;let s=(a=r==null?void 0:r.current)!=null?a:window;if(!(s&&s.addEventListener))return;let i=u=>n.current(u);return s.addEventListener(t,i,o),()=>{s.removeEventListener(t,i,o)}},[t,r,o])}import{useCallback as Le}from"react";var B=(t,e)=>Le((o,n)=>d(void 0,null,function*(){let s=yield t.identify(o),i=s;switch(s.status){case 201:if(e(s.data.token),n.onSuccess)return n.onSuccess();break;case 202:if(n.onChallenged)return n.onChallenged();break;case 422:if(n.onError)return n.onError(i.data);break;default:throw new Error(`Unexpected auth identify response status: ${s.status}`)}}),[t,e]);import{useCallback as Re}from"react";var J=(t,e)=>Re((o,n)=>d(void 0,null,function*(){let s=yield t.authenticate(o);switch(s.status){case 201:if(e(s.data.token),n.onSuccess)return n.onSuccess();break;case 401:if(n.onFailure)return n.onFailure();break;case 422:if(n.onError)return n.onError(s.data);break;default:throw new Error(`Unexpected auth authenticate response status: ${s.status}`)}}),[t,e]);import{useCallback as De}from"react";import{JsonWebTokenParse as Ie}from"@quiltt/core";var $=(t,e,r,o)=>De(s=>d(void 0,null,function*(){if(!s)return!!e;if(e&&e.token==s)return!0;let i=Ie(s);if(!i||o&&i.claims.eid!==o)return!1;let a=yield t.ping(s);switch(a.status){case 200:return r(s),!0;break;case 401:return!1;default:throw new Error(`Unexpected auth ping response status: ${a.status}`)}}),[t,e,r,o]);import{useCallback as Ne}from"react";var X=(t,e,r)=>Ne(()=>d(void 0,null,function*(){e&&(yield t.revoke(e.token),r(null))}),[t,e,r]);var N=function(t,e){return N=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,o){r.__proto__=o}||function(r,o){for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(r[n]=o[n])},N(t,e)};function Y(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");N(t,e);function r(){this.constructor=t}t.prototype=e===null?Object.create(e):(r.prototype=e.prototype,new r)}var Q="Invariant Violation",z=Object.setPrototypeOf,Qe=z===void 0?function(t,e){return t.__proto__=e,t}:z,Z=function(t){Y(e,t);function e(r){r===void 0&&(r=Q);var o=t.call(this,typeof r=="number"?Q+": "+r+" (see https://github.com/apollographql/invariant-packages)":r)||this;return o.framesToPop=1,o.name=Q,Qe(o,e.prototype),o}return e}(Error);function p(t,e){if(!t)throw new Z(e)}var ee=["debug","log","warn","error","silent"],Me=ee.indexOf("log");function _(t){return function(){if(ee.indexOf(t)>=Me){var e=console[t]||console.log;return e.apply(console,arguments)}}}(function(t){t.debug=_("debug"),t.log=_("log"),t.warn=_("warn"),t.error=_("error")})(p||(p={}));function c(t){try{return t()}catch(e){}}var w=c(function(){return globalThis})||c(function(){return window})||c(function(){return self})||c(function(){return global})||c(function(){return c.constructor("return this")()});var te="__",re=[te,te].join("DEV");function Ue(){try{return!!__DEV__}catch(t){return Object.defineProperty(w,re,{value:c(function(){return process.env.NODE_ENV})!=="production",enumerable:!1,configurable:!0,writable:!0}),w[re]}}var A=Ue();function y(t){try{return t()}catch(e){}}var M=y(function(){return globalThis})||y(function(){return window})||y(function(){return self})||y(function(){return global})||y(function(){return y.constructor("return this")()}),U=!1;function je(){M&&!y(function(){return process.env.NODE_ENV})&&!y(function(){return process})&&(Object.defineProperty(M,"process",{value:{env:{NODE_ENV:"production"}},configurable:!0,enumerable:!1,writable:!0}),U=!0)}je();function j(){U&&(delete M.process,U=!1)}function C(t,e){if(!!!t)throw new Error(e)}function ne(t){return O(t,[])}function O(t,e){switch(typeof t){case"string":return JSON.stringify(t);case"function":return t.name?`[function ${t.name}]`:"[function]";case"object":return ke(t,e);default:return String(t)}}function ke(t,e){if(t===null)return"null";if(e.includes(t))return"[Circular]";let r=[...e,t];if(Ve(t)){let o=t.toJSON();if(o!==t)return typeof o=="string"?o:O(o,r)}else if(Array.isArray(t))return Fe(t,r);return Ke(t,r)}function Ve(t){return typeof t.toJSON=="function"}function Ke(t,e){let r=Object.entries(t);return r.length===0?"{}":e.length>2?"["+We(t)+"]":"{ "+r.map(([n,s])=>n+": "+O(s,e)).join(", ")+" }"}function Fe(t,e){if(t.length===0)return"[]";if(e.length>2)return"[Array]";let r=Math.min(10,t.length),o=t.length-r,n=[];for(let s=0;s<r;++s)n.push(O(t[s],e));return o===1?n.push("... 1 more item"):o>1&&n.push(`... ${o} more items`),"["+n.join(", ")+"]"}function We(t){let e=Object.prototype.toString.call(t).replace(/^\[object /,"").replace(/]$/,"");if(e==="Object"&&typeof t.constructor=="function"){let r=t.constructor.name;if(typeof r=="string"&&r!=="")return r}return e}var x=class{constructor(e,r="GraphQL request",o={line:1,column:1}){typeof e=="string"||C(!1,`Body must be a string. Received: ${ne(e)}.`),this.body=e,this.name=r,this.locationOffset=o,this.locationOffset.line>0||C(!1,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||C(!1,"column in locationOffset is 1-indexed and must be positive.")}get[Symbol.toStringTag](){return"Source"}};function oe(){return typeof x=="function"?j():j()}function Ge(){__DEV__?p(typeof A=="boolean",A):p(typeof A=="boolean",39)}oe();Ge();var Wr=typeof WeakMap=="function"&&c(function(){return navigator.product})!=="ReactNative";var ie=typeof Symbol=="function"&&typeof Symbol.for=="function";var Gr=typeof c(function(){return window.document.createElement})=="function",qr=c(function(){return navigator.userAgent.indexOf("jsdom")>=0})||!1;import*as P from"react";var se=ie?Symbol.for("__APOLLO_CONTEXT__"):"__APOLLO_CONTEXT__";function S(){var t=P.createContext[se];return t||(Object.defineProperty(P.createContext,se,{value:t=P.createContext({}),enumerable:!1,writable:!1,configurable:!0}),t.displayName="ApolloContext"),t}import*as k from"react";var L=function(t){var e=t.client,r=t.children,o=S();return k.createElement(o.Consumer,null,function(n){return n===void 0&&(n={}),e&&n.client!==e&&(n=Object.assign({},n,{client:e})),__DEV__?p(n.client,'ApolloProvider was not passed a client instance. Make sure you pass in your client via the "client" prop.'):p(n.client,29),k.createElement(o.Provider,{value:n},r)})};import{useContext as qe}from"react";function ae(t){var e=qe(S()),r=t||e.client;return __DEV__?p(!!r,'Could not find "client" in the context or passed in as an option. Wrap the root component in an <ApolloProvider>, or pass an ApolloClient instance in via options.'):p(!!r,32),r}var mn=ae;import{useCallback as st,useEffect as m,useState as Se}from"react";import{useCallback as tt}from"react";import{useMemo as Je}from"react";import{useEffect as $e,useCallback as Xe}from"react";import{JsonWebTokenParse as Ye,Timeoutable as ze}from"@quiltt/core";import{useCallback as ue,useEffect as He,useState as Be}from"react";import{GlobalStorage as R}from"@quiltt/core";var ce=(t,e)=>{let r=ue(()=>{let i;return(i=R.get(t))!==void 0?i:e},[t,e]),[o,n]=Be(r()),s=ue(i=>{let a=i instanceof Function?i(o):i;o!==a&&R.set(t,a)},[t,o]);return He(()=>(R.subscribe(t,n),n(r()),()=>R.unsubscribe(t,n)),[]),[o,s]};var le=Ye,fe=new ze,pe=(t="session")=>{let[e,r]=ce(t),o=Je(()=>le(e),[e]);$e(()=>{if(!o)return;let s=o.claims.exp*1e3,i=()=>r(null);if(Date.now()>=s)i();else return fe.set(i,s-Date.now()),()=>fe.clear(i)},[o,r]);let n=Xe(s=>{let i=s instanceof Function?s(e):s;e!==i&&(!i||le(i))&&r(i)},[e,r]);return[o,n]};import{AuthAPI as rt}from"@quiltt/core";import{createContext as Ze,useContext as et}from"react";var V=Ze({}),de=()=>{let t=et(V);return b({},t)};var D=t=>{let{clientId:e}=de(),[r,o]=pe(),n=new rt(e),s=$(n,r,o,t),i=B(n,o),a=J(n,o),u=X(n,r,o),l=tt(f=>d(void 0,null,function*(){(!f||r&&f&&f==r.token)&&o(null)}),[r,o]);return{session:r,importSession:s,identifySession:i,authenticateSession:a,revokeSession:u,forgetSession:l}};import{useEffect as nt,useState as ot}from"react";var K={};function it(t){let e=document.querySelector(`script[src="${t}"]`),r=e==null?void 0:e.getAttribute("data-status");return{node:e,status:r}}function me(t,e){let[r,o]=ot(()=>{var n;return!t||e!=null&&e.shouldPreventLoad?"idle":typeof window=="undefined"?"loading":(n=K[t])!=null?n:"loading"});return nt(()=>{var u,l;if(!t||e!=null&&e.shouldPreventLoad)return;let n=K[t];if(n==="ready"||n==="error"){o(n);return}let s=it(t),i=s.node;if(i)o((l=(u=s.status)!=null?u:n)!=null?l:"loading");else{i=document.createElement("script"),i.src=t,i.async=!0,i.setAttribute("data-status","loading"),document.body.appendChild(i);let f=h=>{let v=h.type==="load"?"ready":"error";i==null||i.setAttribute("data-status",v)};i.addEventListener("load",f),i.addEventListener("error",f)}let a=f=>{let h=f.type==="load"?"ready":"error";o(h),K[t]=h};return i.addEventListener("load",a),i.addEventListener("error",a),()=>{i&&(i.removeEventListener("load",a),i.removeEventListener("error",a)),i&&(e!=null&&e.removeOnUnmount)&&i.remove()}},[t,e==null?void 0:e.shouldPreventLoad,e==null?void 0:e.removeOnUnmount]),r}import{cdnBase as at}from"@quiltt/core";var ye="3.4.0";var I=(t,e)=>{let r=me(`${at}/v1/connector.js?agent=react-${ye}`),{session:o}=D(),[n,s]=Se(),[i,a]=Se(!1);return m(()=>{typeof Quiltt!="undefined"&&Quiltt.authenticate(o==null?void 0:o.token)},[r,o]),m(()=>{typeof Quiltt=="undefined"||!t||(e!=null&&e.connectionId?s(Quiltt.reconnect(t,{connectionId:e.connectionId})):s(Quiltt.connect(t)))},[r,t,e==null?void 0:e.connectionId]),m(()=>{if(!(!n||!(e!=null&&e.onEvent)))return n.onEvent(e.onEvent),()=>n.offEvent(e.onEvent)},[n,e==null?void 0:e.onEvent]),m(()=>{if(!(!n||!(e!=null&&e.onLoad)))return n.onLoad(e.onLoad),()=>n.offLoad(e.onLoad)},[n,e==null?void 0:e.onLoad]),m(()=>{if(!(!n||!(e!=null&&e.onExit)))return n.onExit(e.onExit),()=>n.offExit(e.onExit)},[n,e==null?void 0:e.onExit]),m(()=>{if(!(!n||!(e!=null&&e.onExitSuccess)))return n.onExitSuccess(e.onExitSuccess),()=>n.offExitSuccess(e.onExitSuccess)},[n,e==null?void 0:e.onExitSuccess]),m(()=>{if(!(!n||!(e!=null&&e.onExitAbort)))return n.onExitAbort(e.onExitAbort),()=>n.offExitAbort(e.onExitAbort)},[n,e==null?void 0:e.onExitAbort]),m(()=>{if(!(!n||!(e!=null&&e.onExitError)))return n.onExitError(e.onExitError),()=>n.offExitError(e.onExitError)},[n,e==null?void 0:e.onExitError]),m(()=>{n&&i&&(a(!1),n.open())},[n,i]),{open:st(()=>{if(t)a(!0);else throw new Error("Must provide `connectorId` to `open` Quiltt Connector with Method Call")},[t,a])}};import{useEffect as ve}from"react";import{InMemoryCache as ut,QuilttClient as ct}from"@quiltt/core";import{jsx as lt}from"react/jsx-runtime";var he=new ct({cache:new ut}),be=({token:t,children:e})=>{let{session:r,importSession:o}=D();return ve(()=>{t&&o(t)},[t]),ve(()=>{he.resetStore()},[r]),lt(L,{client:he,children:e})};import{useState as ft}from"react";import{jsx as pt}from"react/jsx-runtime";var xe=({clientId:t,children:e})=>{let[r]=ft(t);return pt(V.Provider,{value:{clientId:r},children:e})};import{jsx as ge}from"react/jsx-runtime";var po=({clientId:t,token:e,children:r})=>ge(xe,{clientId:t,children:ge(be,{token:e,children:r})});import{jsx as dt}from"react/jsx-runtime";var vo=h=>{var v=h,{as:t,connectorId:e,connectionId:r,onEvent:o,onLoad:n,onExit:s,onExitSuccess:i,onExitAbort:a,onExitError:u,children:l}=v,f=T(v,["as","connectorId","connectionId","onEvent","onLoad","onExit","onExitSuccess","onExitAbort","onExitError","children"]);let{open:F}=I(e,{connectionId:r,onEvent:o,onLoad:n,onExit:s,onExitSuccess:i,onExitAbort:a,onExitError:u});return dt(t||"button",E(b({onClick:F,"quiltt-connection":r},f),{children:l}))};import{jsx as mt}from"react/jsx-runtime";var Eo=h=>{var v=h,{as:t,connectorId:e,connectionId:r,onEvent:o,onLoad:n,onExit:s,onExitSuccess:i,onExitAbort:a,onExitError:u,children:l}=v,f=T(v,["as","connectorId","connectionId","onEvent","onLoad","onExit","onExitSuccess","onExitAbort","onExitError","children"]);return I(e,{onEvent:o,onLoad:n,onExit:s,onExitSuccess:i,onExitAbort:a,onExitError:u}),mt(t||"div",E(b({"quiltt-container":e,"quiltt-connection":r},f),{children:l}))};export{be as QuilttAuthProvider,vo as QuilttButton,Eo as QuilttContainer,po as QuilttProvider,V as QuilttSettings,xe as QuilttSettingsProvider,J as useAuthenticateSession,Et as useEventListener,B as useIdentifySession,$ as useImportSession,Ce as useIsomorphicLayoutEffect,mn as useQuilttClient,I as useQuilttConnector,D as useQuilttSession,de as useQuilttSettings,X as useRevokeSession,pe as useSession,ce as useStorage};
2
2
  //# sourceMappingURL=index.js.map