@quiltt/react 3.4.1 → 3.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,34 @@
1
1
  # @quiltt/react
2
2
 
3
+ ## 3.5.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#202](https://github.com/quiltt/quiltt-public/pull/202) [`42705f0`](https://github.com/quiltt/quiltt-public/commit/42705f0e01b0adb35ab627697169433e1065a8f0) Thanks [@sirwolfgang](https://github.com/sirwolfgang)! - Expose Institutions to React API
8
+
9
+ - Updated dependencies [[`42705f0`](https://github.com/quiltt/quiltt-public/commit/42705f0e01b0adb35ab627697169433e1065a8f0)]:
10
+ - @quiltt/core@3.5.2
11
+
12
+ ## 3.5.1
13
+
14
+ ### Patch Changes
15
+
16
+ - [#200](https://github.com/quiltt/quiltt-public/pull/200) [`0a07431`](https://github.com/quiltt/quiltt-public/commit/0a07431ff936e6cd4fd3aeee66bba1fec21f6624) Thanks [@sirwolfgang](https://github.com/sirwolfgang)! - Fix release
17
+
18
+ - Updated dependencies [[`0a07431`](https://github.com/quiltt/quiltt-public/commit/0a07431ff936e6cd4fd3aeee66bba1fec21f6624)]:
19
+ - @quiltt/core@3.5.1
20
+
21
+ ## 3.5.0
22
+
23
+ ### Minor Changes
24
+
25
+ - [#198](https://github.com/quiltt/quiltt-public/pull/198) [`c65d87a`](https://github.com/quiltt/quiltt-public/commit/c65d87a8316dbec82635a0c4108714de7bbd082b) Thanks [@sirwolfgang](https://github.com/sirwolfgang)! - Add Institutions to the Connect API
26
+
27
+ ### Patch Changes
28
+
29
+ - Updated dependencies [[`c65d87a`](https://github.com/quiltt/quiltt-public/commit/c65d87a8316dbec82635a0c4108714de7bbd082b)]:
30
+ - @quiltt/core@3.5.0
31
+
3
32
  ## 3.4.1
4
33
 
5
34
  ### Patch Changes
@@ -6,7 +6,7 @@ import { ConnectorSDKCallbacks } from '@quiltt/core';
6
6
  type AnyTag = string | FC<any> | (new (props: any) => Component);
7
7
  type PropsOf<Tag> = Tag extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[Tag] : Tag extends ComponentType<infer Props> ? Props & JSX.IntrinsicAttributes : never;
8
8
 
9
- declare const QuilttButton: <T extends AnyTag = "button">({ as, connectorId, connectionId, onEvent, onLoad, onExit, onExitSuccess, onExitAbort, onExitError, children, ...props }: {
9
+ declare const QuilttButton: <T extends AnyTag = "button">({ as, connectorId, connectionId, institution, onEvent, onLoad, onExit, onExitSuccess, onExitAbort, onExitError, children, ...props }: {
10
10
  as?: T | undefined;
11
11
  connectorId: string;
12
12
  connectionId?: string | undefined;
@@ -1,2 +1,2 @@
1
- "use strict";var ze=Object.create;var T=Object.defineProperty,Ze=Object.defineProperties,et=Object.getOwnPropertyDescriptor,tt=Object.getOwnPropertyDescriptors,rt=Object.getOwnPropertyNames,O=Object.getOwnPropertySymbols,nt=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable;var de=(t,e,r)=>e in t?T(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,g=(t,e)=>{for(var r in e||(e={}))B.call(e,r)&&de(t,r,e[r]);if(O)for(var r of O(e))me.call(e,r)&&de(t,r,e[r]);return t},L=(t,e)=>Ze(t,tt(e));var R=(t,e)=>{var r={};for(var o in t)B.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&O)for(var o of O(t))e.indexOf(o)<0&&me.call(t,o)&&(r[o]=t[o]);return r};var ye=(t,e)=>{for(var r in e)T(t,r,{get:e[r],enumerable:!0})},P=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of rt(e))!B.call(t,n)&&n!==r&&T(t,n,{get:()=>e[n],enumerable:!(o=et(e,n))||o.enumerable});return t},_=(t,e,r)=>(P(t,e,"default"),r&&P(r,e,"default")),Se=(t,e,r)=>(r=t!=null?ze(nt(t)):{},P(e||!t||!t.__esModule?T(r,"default",{value:t,enumerable:!0}):r,t)),ot=t=>P(T({},"__esModule",{value:!0}),t);var m=(t,e,r)=>new Promise((o,n)=>{var s=u=>{try{a(r.next(u))}catch(f){n(f)}},i=u=>{try{a(r.throw(u))}catch(f){n(f)}},a=u=>u.done?o(u.value):Promise.resolve(u.value).then(s,i);a((r=r.apply(t,e)).next())});var bt={};ye(bt,{QuilttButton:()=>Je,QuilttContainer:()=>$e});module.exports=ot(bt);var v={};ye(v,{QuilttAuthProvider:()=>ce,QuilttButton:()=>Je,QuilttContainer:()=>$e,QuilttProvider:()=>ht,QuilttSettings:()=>G,QuilttSettingsProvider:()=>le,useAuthenticateSession:()=>$,useEventListener:()=>it,useIdentifySession:()=>J,useImportSession:()=>X,useIsomorphicLayoutEffect:()=>ve,useQuilttClient:()=>St,useQuilttConnector:()=>C,useQuilttSession:()=>A,useQuilttSettings:()=>se,useRevokeSession:()=>Y,useSession:()=>ie,useStorage:()=>oe});_(v,require("@quiltt/core"));var I=require("react");var D=require("react"),ve=typeof window!="undefined"?D.useLayoutEffect:D.useEffect,he=ve;function it(t,e,r,o){let n=(0,I.useRef)(e);he(()=>{n.current=e},[e]),(0,I.useEffect)(()=>{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])}var be=require("react");var J=(t,e)=>(0,be.useCallback)((o,n)=>m(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]);var xe=require("react");var $=(t,e)=>(0,xe.useCallback)((o,n)=>m(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]);var ge=require("react"),Ee=require("@quiltt/core");var X=(t,e,r,o)=>(0,ge.useCallback)(s=>m(void 0,null,function*(){if(!s)return!!e;if(e&&e.token==s)return!0;let i=(0,Ee.JsonWebTokenParse)(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]);var Te=require("react");var Y=(t,e,r)=>(0,Te.useCallback)(()=>m(void 0,null,function*(){e&&(yield t.revoke(e.token),r(null))}),[t,e,r]);var z=function(t,e){return z=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])},z(t,e)};function _e(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");z(t,e);function r(){this.constructor=t}t.prototype=e===null?Object.create(e):(r.prototype=e.prototype,new r)}var Z="Invariant Violation",we=Object.setPrototypeOf,st=we===void 0?function(t,e){return t.__proto__=e,t}:we,Ae=function(t){_e(e,t);function e(r){r===void 0&&(r=Z);var o=t.call(this,typeof r=="number"?Z+": "+r+" (see https://github.com/apollographql/invariant-packages)":r)||this;return o.framesToPop=1,o.name=Z,st(o,e.prototype),o}return e}(Error);function d(t,e){if(!t)throw new Ae(e)}var Ce=["debug","log","warn","error","silent"],at=Ce.indexOf("log");function N(t){return function(){if(Ce.indexOf(t)>=at){var e=console[t]||console.log;return e.apply(console,arguments)}}}(function(t){t.debug=N("debug"),t.log=N("log"),t.warn=N("warn"),t.error=N("error")})(d||(d={}));function l(t){try{return t()}catch(e){}}var Q=l(function(){return globalThis})||l(function(){return window})||l(function(){return self})||l(function(){return global})||l(function(){return l.constructor("return this")()});var Oe="__",Pe=[Oe,Oe].join("DEV");function ut(){try{return!!__DEV__}catch(t){return Object.defineProperty(Q,Pe,{value:l(function(){return process.env.NODE_ENV})!=="production",enumerable:!1,configurable:!0,writable:!0}),Q[Pe]}}var M=ut();function y(t){try{return t()}catch(e){}}var ee=y(function(){return globalThis})||y(function(){return window})||y(function(){return self})||y(function(){return global})||y(function(){return y.constructor("return this")()}),te=!1;function ct(){ee&&!y(function(){return process.env.NODE_ENV})&&!y(function(){return process})&&(Object.defineProperty(ee,"process",{value:{env:{NODE_ENV:"production"}},configurable:!0,enumerable:!1,writable:!0}),te=!0)}ct();function re(){te&&(delete ee.process,te=!1)}function U(t,e){if(!!!t)throw new Error(e)}function Le(t){return j(t,[])}function j(t,e){switch(typeof t){case"string":return JSON.stringify(t);case"function":return t.name?`[function ${t.name}]`:"[function]";case"object":return lt(t,e);default:return String(t)}}function lt(t,e){if(t===null)return"null";if(e.includes(t))return"[Circular]";let r=[...e,t];if(ft(t)){let o=t.toJSON();if(o!==t)return typeof o=="string"?o:j(o,r)}else if(Array.isArray(t))return dt(t,r);return pt(t,r)}function ft(t){return typeof t.toJSON=="function"}function pt(t,e){let r=Object.entries(t);return r.length===0?"{}":e.length>2?"["+mt(t)+"]":"{ "+r.map(([n,s])=>n+": "+j(s,e)).join(", ")+" }"}function dt(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(j(t[s],e));return o===1?n.push("... 1 more item"):o>1&&n.push(`... ${o} more items`),"["+n.join(", ")+"]"}function mt(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 E=class{constructor(e,r="GraphQL request",o={line:1,column:1}){typeof e=="string"||U(!1,`Body must be a string. Received: ${Le(e)}.`),this.body=e,this.name=r,this.locationOffset=o,this.locationOffset.line>0||U(!1,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||U(!1,"column in locationOffset is 1-indexed and must be positive.")}get[Symbol.toStringTag](){return"Source"}};function Re(){return typeof E=="function"?re():re()}function yt(){__DEV__?d(typeof M=="boolean",M):d(typeof M=="boolean",39)}Re();yt();var Vr=typeof WeakMap=="function"&&l(function(){return navigator.product})!=="ReactNative";var De=typeof Symbol=="function"&&typeof Symbol.for=="function";var Kr=typeof l(function(){return window.document.createElement})=="function",Fr=l(function(){return navigator.userAgent.indexOf("jsdom")>=0})||!1;var k=Se(require("react"),1);var Ie=De?Symbol.for("__APOLLO_CONTEXT__"):"__APOLLO_CONTEXT__";function S(){var t=k.createContext[Ie];return t||(Object.defineProperty(k.createContext,Ie,{value:t=k.createContext({}),enumerable:!1,writable:!1,configurable:!0}),t.displayName="ApolloContext"),t}var ne=Se(require("react"),1);var V=function(t){var e=t.client,r=t.children,o=S();return ne.createElement(o.Consumer,null,function(n){return n===void 0&&(n={}),e&&n.client!==e&&(n=Object.assign({},n,{client:e})),__DEV__?d(n.client,'ApolloProvider was not passed a client instance. Make sure you pass in your client via the "client" prop.'):d(n.client,29),ne.createElement(o.Provider,{value:n},r)})};var Ne=require("react");function Qe(t){var e=(0,Ne.useContext)(S()),r=t||e.client;return __DEV__?d(!!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.'):d(!!r,32),r}var St=Qe;var c=require("react");var ke=require("react");var je=require("react"),K=require("react"),F=require("@quiltt/core");var b=require("react"),w=require("@quiltt/core"),oe=(t,e)=>{let r=(0,b.useCallback)(()=>{let i;return(i=w.GlobalStorage.get(t))!==void 0?i:e},[t,e]),[o,n]=(0,b.useState)(r()),s=(0,b.useCallback)(i=>{let a=i instanceof Function?i(o):i;o!==a&&w.GlobalStorage.set(t,a)},[t,o]);return(0,b.useEffect)(()=>(w.GlobalStorage.subscribe(t,n),n(r()),()=>w.GlobalStorage.unsubscribe(t,n)),[]),[o,s]};var Me=F.JsonWebTokenParse,Ue=new F.Timeoutable,ie=(t="session")=>{let[e,r]=oe(t),o=(0,je.useMemo)(()=>Me(e),[e]);(0,K.useEffect)(()=>{if(!o)return;let s=o.claims.exp*1e3,i=()=>r(null);if(Date.now()>=s)i();else return Ue.set(i,s-Date.now()),()=>Ue.clear(i)},[o,r]);let n=(0,K.useCallback)(s=>{let i=s instanceof Function?s(e):s;e!==i&&(!i||Me(i))&&r(i)},[e,r]);return[o,n]};var Ve=require("@quiltt/core");var W=require("react");var G=(0,W.createContext)({}),se=()=>{let t=(0,W.useContext)(G);return g({},t)};var A=t=>{let{clientId:e}=se(),[r,o]=ie(),n=new Ve.AuthAPI(e),s=X(n,r,o,t),i=J(n,o),a=$(n,o),u=Y(n,r,o),f=(0,ke.useCallback)(p=>m(void 0,null,function*(){(!p||r&&p&&p==r.token)&&o(null)}),[r,o]);return{session:r,importSession:s,identifySession:i,authenticateSession:a,revokeSession:u,forgetSession:f}};var q=require("react"),ae={};function vt(t){let e=document.querySelector(`script[src="${t}"]`),r=e==null?void 0:e.getAttribute("data-status");return{node:e,status:r}}function Ke(t,e){let[r,o]=(0,q.useState)(()=>{var n;return!t||e!=null&&e.shouldPreventLoad?"idle":typeof window=="undefined"?"loading":(n=ae[t])!=null?n:"loading"});return(0,q.useEffect)(()=>{var u,f;if(!t||e!=null&&e.shouldPreventLoad)return;let n=ae[t];if(n==="ready"||n==="error"){o(n);return}let s=vt(t),i=s.node;if(i)o((f=(u=s.status)!=null?u:n)!=null?f:"loading");else{i=document.createElement("script"),i.src=t,i.async=!0,i.setAttribute("data-status","loading"),document.body.appendChild(i);let p=x=>{let h=x.type==="load"?"ready":"error";i==null||i.setAttribute("data-status",h)};i.addEventListener("load",p),i.addEventListener("error",p)}let a=p=>{let x=p.type==="load"?"ready":"error";o(x),ae[t]=x};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}var We=require("@quiltt/core");var Fe="3.4.1";var C=(t,e)=>{let r=Ke(`${We.cdnBase}/v1/connector.js?agent=react-${Fe}`),{session:o}=A(),[n,s]=(0,c.useState)(),[i,a]=(0,c.useState)(!1);return(0,c.useEffect)(()=>{typeof Quiltt!="undefined"&&Quiltt.authenticate(o==null?void 0:o.token)},[r,o]),(0,c.useEffect)(()=>{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]),(0,c.useEffect)(()=>{if(!(!n||!(e!=null&&e.onEvent)))return n.onEvent(e.onEvent),()=>n.offEvent(e.onEvent)},[n,e==null?void 0:e.onEvent]),(0,c.useEffect)(()=>{if(!(!n||!(e!=null&&e.onLoad)))return n.onLoad(e.onLoad),()=>n.offLoad(e.onLoad)},[n,e==null?void 0:e.onLoad]),(0,c.useEffect)(()=>{if(!(!n||!(e!=null&&e.onExit)))return n.onExit(e.onExit),()=>n.offExit(e.onExit)},[n,e==null?void 0:e.onExit]),(0,c.useEffect)(()=>{if(!(!n||!(e!=null&&e.onExitSuccess)))return n.onExitSuccess(e.onExitSuccess),()=>n.offExitSuccess(e.onExitSuccess)},[n,e==null?void 0:e.onExitSuccess]),(0,c.useEffect)(()=>{if(!(!n||!(e!=null&&e.onExitAbort)))return n.onExitAbort(e.onExitAbort),()=>n.offExitAbort(e.onExitAbort)},[n,e==null?void 0:e.onExitAbort]),(0,c.useEffect)(()=>{if(!(!n||!(e!=null&&e.onExitError)))return n.onExitError(e.onExitError),()=>n.offExitError(e.onExitError)},[n,e==null?void 0:e.onExitError]),(0,c.useEffect)(()=>{n&&i&&(a(!1),n.open())},[n,i]),{open:(0,c.useCallback)(()=>{if(t)a(!0);else throw new Error("Must provide `connectorId` to `open` Quiltt Connector with Method Call")},[t,a])}};var ue=require("react");var H=require("@quiltt/core");var qe=require("react/jsx-runtime"),Ge=new H.QuilttClient({cache:new H.InMemoryCache}),ce=({token:t,children:e})=>{let{session:r,importSession:o}=A();return(0,ue.useEffect)(()=>{t&&o(t)},[t]),(0,ue.useEffect)(()=>{Ge.resetStore()},[r]),(0,qe.jsx)(V,{client:Ge,children:e})};var He=require("react");var Be=require("react/jsx-runtime"),le=({clientId:t,children:e})=>{let[r]=(0,He.useState)(t);return(0,Be.jsx)(G.Provider,{value:{clientId:r},children:e})};var fe=require("react/jsx-runtime"),ht=({clientId:t,token:e,children:r})=>(0,fe.jsx)(le,{clientId:t,children:(0,fe.jsx)(ce,{token:e,children:r})});var Xe=require("react/jsx-runtime"),Je=x=>{var h=x,{as:t,connectorId:e,connectionId:r,onEvent:o,onLoad:n,onExit:s,onExitSuccess:i,onExitAbort:a,onExitError:u,children:f}=h,p=R(h,["as","connectorId","connectionId","onEvent","onLoad","onExit","onExitSuccess","onExitAbort","onExitError","children"]);let{open:pe}=C(e,{connectionId:r,onEvent:o,onLoad:n,onExit:s,onExitSuccess:i,onExitAbort:a,onExitError:u});return(0,Xe.jsx)(t||"button",L(g({onClick:pe,"quiltt-connection":r},p),{children:f}))};var Ye=require("react/jsx-runtime"),$e=x=>{var h=x,{as:t,connectorId:e,connectionId:r,onEvent:o,onLoad:n,onExit:s,onExitSuccess:i,onExitAbort:a,onExitError:u,children:f}=h,p=R(h,["as","connectorId","connectionId","onEvent","onLoad","onExit","onExitSuccess","onExitAbort","onExitError","children"]);return C(e,{onEvent:o,onLoad:n,onExit:s,onExitSuccess:i,onExitAbort:a,onExitError:u}),(0,Ye.jsx)(t||"div",L(g({"quiltt-container":e,"quiltt-connection":r},p),{children:f}))};0&&(module.exports={QuilttButton,QuilttContainer});
1
+ "use strict";var Ze=Object.create;var T=Object.defineProperty,et=Object.defineProperties,tt=Object.getOwnPropertyDescriptor,rt=Object.getOwnPropertyDescriptors,nt=Object.getOwnPropertyNames,O=Object.getOwnPropertySymbols,ot=Object.getPrototypeOf,J=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable;var de=(t,e,r)=>e in t?T(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,x=(t,e)=>{for(var r in e||(e={}))J.call(e,r)&&de(t,r,e[r]);if(O)for(var r of O(e))me.call(e,r)&&de(t,r,e[r]);return t},L=(t,e)=>et(t,rt(e));var R=(t,e)=>{var r={};for(var o in t)J.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&O)for(var o of O(t))e.indexOf(o)<0&&me.call(t,o)&&(r[o]=t[o]);return r};var ye=(t,e)=>{for(var r in e)T(t,r,{get:e[r],enumerable:!0})},P=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of nt(e))!J.call(t,n)&&n!==r&&T(t,n,{get:()=>e[n],enumerable:!(o=tt(e,n))||o.enumerable});return t},_=(t,e,r)=>(P(t,e,"default"),r&&P(r,e,"default")),Se=(t,e,r)=>(r=t!=null?Ze(ot(t)):{},P(e||!t||!t.__esModule?T(r,"default",{value:t,enumerable:!0}):r,t)),it=t=>P(T({},"__esModule",{value:!0}),t);var m=(t,e,r)=>new Promise((o,n)=>{var s=u=>{try{a(r.next(u))}catch(f){n(f)}},i=u=>{try{a(r.throw(u))}catch(f){n(f)}},a=u=>u.done?o(u.value):Promise.resolve(u.value).then(s,i);a((r=r.apply(t,e)).next())});var xt={};ye(xt,{QuilttButton:()=>Je,QuilttContainer:()=>$e});module.exports=it(xt);var v={};ye(v,{QuilttAuthProvider:()=>le,QuilttButton:()=>Je,QuilttContainer:()=>$e,QuilttProvider:()=>bt,QuilttSettings:()=>G,QuilttSettingsProvider:()=>fe,useAuthenticateSession:()=>X,useEventListener:()=>st,useIdentifySession:()=>$,useImportSession:()=>Y,useIsomorphicLayoutEffect:()=>ve,useQuilttClient:()=>vt,useQuilttConnector:()=>C,useQuilttSession:()=>A,useQuilttSettings:()=>ae,useRevokeSession:()=>z,useSession:()=>se,useStorage:()=>ie});_(v,require("@quiltt/core"));var I=require("react");var D=require("react"),ve=typeof window!="undefined"?D.useLayoutEffect:D.useEffect,he=ve;function st(t,e,r,o){let n=(0,I.useRef)(e);he(()=>{n.current=e},[e]),(0,I.useEffect)(()=>{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])}var be=require("react");var $=(t,e)=>(0,be.useCallback)((o,n)=>m(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]);var xe=require("react");var X=(t,e)=>(0,xe.useCallback)((o,n)=>m(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]);var ge=require("react"),Ee=require("@quiltt/core");var Y=(t,e,r,o)=>(0,ge.useCallback)(s=>m(void 0,null,function*(){if(!s)return!!e;if(e&&e.token==s)return!0;let i=(0,Ee.JsonWebTokenParse)(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]);var Te=require("react");var z=(t,e,r)=>(0,Te.useCallback)(()=>m(void 0,null,function*(){e&&(yield t.revoke(e.token),r(null))}),[t,e,r]);var Z=function(t,e){return Z=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])},Z(t,e)};function _e(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");Z(t,e);function r(){this.constructor=t}t.prototype=e===null?Object.create(e):(r.prototype=e.prototype,new r)}var ee="Invariant Violation",we=Object.setPrototypeOf,at=we===void 0?function(t,e){return t.__proto__=e,t}:we,Ae=function(t){_e(e,t);function e(r){r===void 0&&(r=ee);var o=t.call(this,typeof r=="number"?ee+": "+r+" (see https://github.com/apollographql/invariant-packages)":r)||this;return o.framesToPop=1,o.name=ee,at(o,e.prototype),o}return e}(Error);function d(t,e){if(!t)throw new Ae(e)}var Ce=["debug","log","warn","error","silent"],ut=Ce.indexOf("log");function N(t){return function(){if(Ce.indexOf(t)>=ut){var e=console[t]||console.log;return e.apply(console,arguments)}}}(function(t){t.debug=N("debug"),t.log=N("log"),t.warn=N("warn"),t.error=N("error")})(d||(d={}));function l(t){try{return t()}catch(e){}}var Q=l(function(){return globalThis})||l(function(){return window})||l(function(){return self})||l(function(){return global})||l(function(){return l.constructor("return this")()});var Oe="__",Pe=[Oe,Oe].join("DEV");function ct(){try{return!!__DEV__}catch(t){return Object.defineProperty(Q,Pe,{value:l(function(){return process.env.NODE_ENV})!=="production",enumerable:!1,configurable:!0,writable:!0}),Q[Pe]}}var M=ct();function y(t){try{return t()}catch(e){}}var te=y(function(){return globalThis})||y(function(){return window})||y(function(){return self})||y(function(){return global})||y(function(){return y.constructor("return this")()}),re=!1;function lt(){te&&!y(function(){return process.env.NODE_ENV})&&!y(function(){return process})&&(Object.defineProperty(te,"process",{value:{env:{NODE_ENV:"production"}},configurable:!0,enumerable:!1,writable:!0}),re=!0)}lt();function ne(){re&&(delete te.process,re=!1)}function U(t,e){if(!!!t)throw new Error(e)}function Le(t){return j(t,[])}function j(t,e){switch(typeof t){case"string":return JSON.stringify(t);case"function":return t.name?`[function ${t.name}]`:"[function]";case"object":return ft(t,e);default:return String(t)}}function ft(t,e){if(t===null)return"null";if(e.includes(t))return"[Circular]";let r=[...e,t];if(pt(t)){let o=t.toJSON();if(o!==t)return typeof o=="string"?o:j(o,r)}else if(Array.isArray(t))return mt(t,r);return dt(t,r)}function pt(t){return typeof t.toJSON=="function"}function dt(t,e){let r=Object.entries(t);return r.length===0?"{}":e.length>2?"["+yt(t)+"]":"{ "+r.map(([n,s])=>n+": "+j(s,e)).join(", ")+" }"}function mt(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(j(t[s],e));return o===1?n.push("... 1 more item"):o>1&&n.push(`... ${o} more items`),"["+n.join(", ")+"]"}function yt(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 g=class{constructor(e,r="GraphQL request",o={line:1,column:1}){typeof e=="string"||U(!1,`Body must be a string. Received: ${Le(e)}.`),this.body=e,this.name=r,this.locationOffset=o,this.locationOffset.line>0||U(!1,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||U(!1,"column in locationOffset is 1-indexed and must be positive.")}get[Symbol.toStringTag](){return"Source"}};function Re(){return typeof g=="function"?ne():ne()}function St(){__DEV__?d(typeof M=="boolean",M):d(typeof M=="boolean",39)}Re();St();var Kr=typeof WeakMap=="function"&&l(function(){return navigator.product})!=="ReactNative";var De=typeof Symbol=="function"&&typeof Symbol.for=="function";var Fr=typeof l(function(){return window.document.createElement})=="function",Wr=l(function(){return navigator.userAgent.indexOf("jsdom")>=0})||!1;var k=Se(require("react"),1);var Ie=De?Symbol.for("__APOLLO_CONTEXT__"):"__APOLLO_CONTEXT__";function S(){var t=k.createContext[Ie];return t||(Object.defineProperty(k.createContext,Ie,{value:t=k.createContext({}),enumerable:!1,writable:!1,configurable:!0}),t.displayName="ApolloContext"),t}var oe=Se(require("react"),1);var V=function(t){var e=t.client,r=t.children,o=S();return oe.createElement(o.Consumer,null,function(n){return n===void 0&&(n={}),e&&n.client!==e&&(n=Object.assign({},n,{client:e})),__DEV__?d(n.client,'ApolloProvider was not passed a client instance. Make sure you pass in your client via the "client" prop.'):d(n.client,29),oe.createElement(o.Provider,{value:n},r)})};var Ne=require("react");function Qe(t){var e=(0,Ne.useContext)(S()),r=t||e.client;return __DEV__?d(!!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.'):d(!!r,32),r}var vt=Qe;var c=require("react");var ke=require("react");var je=require("react"),K=require("react"),F=require("@quiltt/core");var b=require("react"),w=require("@quiltt/core"),ie=(t,e)=>{let r=(0,b.useCallback)(()=>{let i;return(i=w.GlobalStorage.get(t))!==void 0?i:e},[t,e]),[o,n]=(0,b.useState)(r()),s=(0,b.useCallback)(i=>{let a=i instanceof Function?i(o):i;o!==a&&w.GlobalStorage.set(t,a)},[t,o]);return(0,b.useEffect)(()=>(w.GlobalStorage.subscribe(t,n),n(r()),()=>w.GlobalStorage.unsubscribe(t,n)),[]),[o,s]};var Me=F.JsonWebTokenParse,Ue=new F.Timeoutable,se=(t="session")=>{let[e,r]=ie(t),o=(0,je.useMemo)(()=>Me(e),[e]);(0,K.useEffect)(()=>{if(!o)return;let s=o.claims.exp*1e3,i=()=>r(null);if(Date.now()>=s)i();else return Ue.set(i,s-Date.now()),()=>Ue.clear(i)},[o,r]);let n=(0,K.useCallback)(s=>{let i=s instanceof Function?s(e):s;e!==i&&(!i||Me(i))&&r(i)},[e,r]);return[o,n]};var Ve=require("@quiltt/core");var W=require("react");var G=(0,W.createContext)({}),ae=()=>{let t=(0,W.useContext)(G);return x({},t)};var A=t=>{let{clientId:e}=ae(),[r,o]=se(),n=new Ve.AuthAPI(e),s=Y(n,r,o,t),i=$(n,o),a=X(n,o),u=z(n,r,o),f=(0,ke.useCallback)(p=>m(void 0,null,function*(){(!p||r&&p&&p==r.token)&&o(null)}),[r,o]);return{session:r,importSession:s,identifySession:i,authenticateSession:a,revokeSession:u,forgetSession:f}};var q=require("react"),ue={};function ht(t){let e=document.querySelector(`script[src="${t}"]`),r=e==null?void 0:e.getAttribute("data-status");return{node:e,status:r}}function Ke(t,e){let[r,o]=(0,q.useState)(()=>{var n;return!t||e!=null&&e.shouldPreventLoad?"idle":typeof window=="undefined"?"loading":(n=ue[t])!=null?n:"loading"});return(0,q.useEffect)(()=>{var u,f;if(!t||e!=null&&e.shouldPreventLoad)return;let n=ue[t];if(n==="ready"||n==="error"){o(n);return}let s=ht(t),i=s.node;if(i)o((f=(u=s.status)!=null?u:n)!=null?f:"loading");else{i=document.createElement("script"),i.src=t,i.async=!0,i.setAttribute("data-status","loading"),document.body.appendChild(i);let p=h=>{let E=h.type==="load"?"ready":"error";i==null||i.setAttribute("data-status",E)};i.addEventListener("load",p),i.addEventListener("error",p)}let a=p=>{let h=p.type==="load"?"ready":"error";o(h),ue[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}var We=require("@quiltt/core");var Fe="3.5.2";var C=(t,e)=>{let r=Ke(`${We.cdnBase}/v1/connector.js?agent=react-${Fe}`),{session:o}=A(),[n,s]=(0,c.useState)(),[i,a]=(0,c.useState)(!1);return(0,c.useEffect)(()=>{typeof Quiltt!="undefined"&&Quiltt.authenticate(o==null?void 0:o.token)},[r,o]),(0,c.useEffect)(()=>{typeof Quiltt=="undefined"||!t||(e!=null&&e.connectionId?s(Quiltt.reconnect(t,{connectionId:e.connectionId})):s(Quiltt.connect(t,{institution:e==null?void 0:e.institution})))},[r,t,e==null?void 0:e.connectionId,e==null?void 0:e.institution]),(0,c.useEffect)(()=>{if(!(!n||!(e!=null&&e.onEvent)))return n.onEvent(e.onEvent),()=>n.offEvent(e.onEvent)},[n,e==null?void 0:e.onEvent]),(0,c.useEffect)(()=>{if(!(!n||!(e!=null&&e.onLoad)))return n.onLoad(e.onLoad),()=>n.offLoad(e.onLoad)},[n,e==null?void 0:e.onLoad]),(0,c.useEffect)(()=>{if(!(!n||!(e!=null&&e.onExit)))return n.onExit(e.onExit),()=>n.offExit(e.onExit)},[n,e==null?void 0:e.onExit]),(0,c.useEffect)(()=>{if(!(!n||!(e!=null&&e.onExitSuccess)))return n.onExitSuccess(e.onExitSuccess),()=>n.offExitSuccess(e.onExitSuccess)},[n,e==null?void 0:e.onExitSuccess]),(0,c.useEffect)(()=>{if(!(!n||!(e!=null&&e.onExitAbort)))return n.onExitAbort(e.onExitAbort),()=>n.offExitAbort(e.onExitAbort)},[n,e==null?void 0:e.onExitAbort]),(0,c.useEffect)(()=>{if(!(!n||!(e!=null&&e.onExitError)))return n.onExitError(e.onExitError),()=>n.offExitError(e.onExitError)},[n,e==null?void 0:e.onExitError]),(0,c.useEffect)(()=>{n&&i&&(a(!1),n.open())},[n,i]),{open:(0,c.useCallback)(()=>{if(t)a(!0);else throw new Error("Must provide `connectorId` to `open` Quiltt Connector with Method Call")},[t,a])}};var ce=require("react");var H=require("@quiltt/core");var qe=require("react/jsx-runtime"),Ge=new H.QuilttClient({cache:new H.InMemoryCache}),le=({token:t,children:e})=>{let{session:r,importSession:o}=A();return(0,ce.useEffect)(()=>{t&&o(t)},[t]),(0,ce.useEffect)(()=>{Ge.resetStore()},[r]),(0,qe.jsx)(V,{client:Ge,children:e})};var He=require("react");var Be=require("react/jsx-runtime"),fe=({clientId:t,children:e})=>{let[r]=(0,He.useState)(t);return(0,Be.jsx)(G.Provider,{value:{clientId:r},children:e})};var pe=require("react/jsx-runtime"),bt=({clientId:t,token:e,children:r})=>(0,pe.jsx)(fe,{clientId:t,children:(0,pe.jsx)(le,{token:e,children:r})});var Xe=require("react/jsx-runtime"),Je=E=>{var B=E,{as:t,connectorId:e,connectionId:r,institution:o,onEvent:n,onLoad:s,onExit:i,onExitSuccess:a,onExitAbort:u,onExitError:f,children:p}=B,h=R(B,["as","connectorId","connectionId","institution","onEvent","onLoad","onExit","onExitSuccess","onExitAbort","onExitError","children"]);let{open:ze}=C(e,{connectionId:r,institution:o,onEvent:n,onLoad:s,onExit:i,onExitSuccess:a,onExitAbort:u,onExitError:f});return(0,Xe.jsx)(t||"button",L(x({onClick:ze,"quiltt-connection":r},h),{children:p}))};var Ye=require("react/jsx-runtime"),$e=h=>{var E=h,{as:t,connectorId:e,connectionId:r,onEvent:o,onLoad:n,onExit:s,onExitSuccess:i,onExitAbort:a,onExitError:u,children:f}=E,p=R(E,["as","connectorId","connectionId","onEvent","onLoad","onExit","onExitSuccess","onExitAbort","onExitError","children"]);return C(e,{onEvent:o,onLoad:n,onExit:s,onExitSuccess:i,onExitAbort:a,onExitError:u}),(0,Ye.jsx)(t||"div",L(x({"quiltt-container":e,"quiltt-connection":r},p),{children:f}))};0&&(module.exports={QuilttButton,QuilttContainer});
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/index.ts","../../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 './QuilttButton'\nexport * from './QuilttContainer'\n","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.1'\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":["components_exports","__export","QuilttButton","QuilttContainer","__toCommonJS","src_exports","__export","QuilttAuthProvider","QuilttButton","QuilttContainer","QuilttProvider","QuilttSettings","QuilttSettingsProvider","useAuthenticateSession","useEventListener","useIdentifySession","useImportSession","useIsomorphicLayoutEffect","useQuilttClient","useQuilttConnector","useQuilttSession","useQuilttSettings","useRevokeSession","useSession","useStorage","__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"]}
1
+ {"version":3,"sources":["../../src/components/index.ts","../../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 './QuilttButton'\nexport * from './QuilttContainer'\n","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, { institution: options?.institution }))\n }\n }, [status, connectorId, options?.connectionId, options?.institution])\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.5.2'\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 institution,\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 institution,\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":["components_exports","__export","QuilttButton","QuilttContainer","__toCommonJS","src_exports","__export","QuilttAuthProvider","QuilttButton","QuilttContainer","QuilttProvider","QuilttSettings","QuilttSettingsProvider","useAuthenticateSession","useEventListener","useIdentifySession","useImportSession","useIsomorphicLayoutEffect","useQuilttClient","useQuilttConnector","useQuilttSession","useQuilttSettings","useRevokeSession","useSession","useStorage","__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","institution","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,4 +1,4 @@
1
- export { Q as QuilttButton, a as QuilttContainer } from '../QuilttContainer-570b0ab3.js';
1
+ export { Q as QuilttButton, a as QuilttContainer } from '../QuilttContainer-05ba4927.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
4
  import '@quiltt/core';