@quiltt/react-native 3.3.0 → 3.3.1

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,14 @@
1
1
  # @quiltt/react-native
2
2
 
3
+ ## 3.3.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 9bfbc03: Match eventType with MessageType in react native sdk
8
+ - Updated dependencies [9bfbc03]
9
+ - @quiltt/core@3.3.1
10
+ - @quiltt/react@3.3.1
11
+
3
12
  ## 3.3.0
4
13
 
5
14
  ### Minor Changes
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var h=Object.defineProperty;var W=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var L=Object.prototype.hasOwnProperty;var Q=(r,a)=>{for(var s in a)h(r,s,{get:a[s],enumerable:!0})},T=(r,a,s,t)=>{if(a&&typeof a=="object"||typeof a=="function")for(let c of D(a))!L.call(r,c)&&c!==s&&h(r,c,{get:()=>a[c],enumerable:!(t=W(a,c))||t.enumerable});return r};var K=r=>T(h({},"__esModule",{value:!0}),r);var M={};Q(M,{QuilttConnector:()=>k,default:()=>j});module.exports=K(M);var F=require("core-js/stable/atob"),G=require("core-js/stable/url");var p=require("@quiltt/core"),n=require("react"),y=require("react-native"),A=require("react-native-webview");var l=require("react-native"),C=require("react/jsx-runtime"),g=({children:r})=>(0,C.jsx)(l.SafeAreaView,{style:U.AndroidSafeArea,children:r}),U=l.StyleSheet.create({AndroidSafeArea:{flex:1,backgroundColor:"white",paddingTop:l.Platform.OS==="android"?l.StatusBar.currentHeight:0}});var P=require("@quiltt/react"),w=require("react/jsx-runtime"),$=({connectorId:r,connectionId:a,oauthRedirectUrl:s,onEvent:t,onLoad:c,onExit:i,onExitSuccess:u,onExitAbort:m,onExitError:f})=>{let S=(0,n.useRef)(null),{session:d}=(0,P.useQuilttSession)();s=encodeURIComponent(s);let R=`https://${r}.quiltt.app/?mode=webview&oauth_redirect_url=${s}&sdk=react-native`,V=(0,n.useCallback)(()=>{var e;let o=` const options = { source: 'quiltt', type: 'Options', token: '${d==null?void 0:d.token}', connectorId: '${r}', connectionId: '${a}', }; const compactedOptions = Object.keys(options).reduce((acc, key) => { if (options[key] !== 'undefined') { acc[key] = options[key]; } return acc; }, {}); window.postMessage(compactedOptions); `;(e=S.current)==null||e.injectJavaScript(o)},[a,r,d==null?void 0:d.token]),q=o=>{let e=new URL(o.url);return e.protocol==="quilttconnector:"?(O(e),!1):!0},b=()=>{var e;let o="localStorage.clear();";(e=S.current)==null||e.injectJavaScript(o)},O=o=>{o.searchParams.delete("source"),o.searchParams.append("connectorId",r);let e=Object.fromEntries(o.searchParams);switch(o.host){case"Loaded":V(),t==null||t(p.ConnectorSDKEventType.Load,e),c==null||c(e);break;case"ExitAbort":b(),t==null||t(p.ConnectorSDKEventType.ExitAbort,e),i==null||i(p.ConnectorSDKEventType.ExitAbort,e),m==null||m(e);break;case"ExitError":b(),t==null||t(p.ConnectorSDKEventType.ExitError,e),i==null||i(p.ConnectorSDKEventType.ExitError,e),f==null||f(e);break;case"ExitSuccess":b(),t==null||t(p.ConnectorSDKEventType.ExitSuccess,e),i==null||i(p.ConnectorSDKEventType.ExitSuccess,e),u==null||u(e);break;case"OauthRequested":y.Linking.openURL(o.searchParams.get("oauthUrl"));break;default:console.log("unhandled event",o);break}};return(0,w.jsx)(g,{children:(0,w.jsx)(A.WebView,{ref:S,originWhitelist:["https://*","quilttconnector://*"],source:{uri:R},onShouldStartLoadWithRequest:q,javaScriptEnabled:!0,domStorageEnabled:!0,webviewDebuggingEnabled:!0})})},k=$;var j=k;0&&(module.exports={QuilttConnector});
1
+ "use strict";var h=Object.defineProperty;var W=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var L=Object.prototype.hasOwnProperty;var Q=(r,a)=>{for(var s in a)h(r,s,{get:a[s],enumerable:!0})},T=(r,a,s,t)=>{if(a&&typeof a=="object"||typeof a=="function")for(let c of D(a))!L.call(r,c)&&c!==s&&h(r,c,{get:()=>a[c],enumerable:!(t=W(a,c))||t.enumerable});return r};var K=r=>T(h({},"__esModule",{value:!0}),r);var M={};Q(M,{QuilttConnector:()=>k,default:()=>j});module.exports=K(M);var F=require("core-js/stable/atob"),G=require("core-js/stable/url");var p=require("@quiltt/core"),n=require("react"),y=require("react-native"),A=require("react-native-webview");var l=require("react-native"),C=require("react/jsx-runtime"),g=({children:r})=>(0,C.jsx)(l.SafeAreaView,{style:U.AndroidSafeArea,children:r}),U=l.StyleSheet.create({AndroidSafeArea:{flex:1,backgroundColor:"white",paddingTop:l.Platform.OS==="android"?l.StatusBar.currentHeight:0}});var P=require("@quiltt/react"),w=require("react/jsx-runtime"),$=({connectorId:r,connectionId:a,oauthRedirectUrl:s,onEvent:t,onLoad:c,onExit:i,onExitSuccess:u,onExitAbort:m,onExitError:f})=>{let S=(0,n.useRef)(null),{session:d}=(0,P.useQuilttSession)();s=encodeURIComponent(s);let R=`https://${r}.quiltt.app/?mode=webview&oauth_redirect_url=${s}&sdk=react-native`,V=(0,n.useCallback)(()=>{var e;let o=` const options = { source: 'quiltt', type: 'Options', token: '${d==null?void 0:d.token}', connectorId: '${r}', connectionId: '${a}', }; const compactedOptions = Object.keys(options).reduce((acc, key) => { if (options[key] !== 'undefined') { acc[key] = options[key]; } return acc; }, {}); window.postMessage(compactedOptions); `;(e=S.current)==null||e.injectJavaScript(o)},[a,r,d==null?void 0:d.token]),q=o=>{let e=new URL(o.url);return e.protocol==="quilttconnector:"?(O(e),!1):!0},b=()=>{var e;let o="localStorage.clear();";(e=S.current)==null||e.injectJavaScript(o)},O=o=>{o.searchParams.delete("source"),o.searchParams.append("connectorId",r);let e=Object.fromEntries(o.searchParams);switch(o.host){case"Load":V(),t==null||t(p.ConnectorSDKEventType.Load,e),c==null||c(e);break;case"ExitAbort":b(),t==null||t(p.ConnectorSDKEventType.ExitAbort,e),i==null||i(p.ConnectorSDKEventType.ExitAbort,e),m==null||m(e);break;case"ExitError":b(),t==null||t(p.ConnectorSDKEventType.ExitError,e),i==null||i(p.ConnectorSDKEventType.ExitError,e),f==null||f(e);break;case"ExitSuccess":b(),t==null||t(p.ConnectorSDKEventType.ExitSuccess,e),i==null||i(p.ConnectorSDKEventType.ExitSuccess,e),u==null||u(e);break;case"OauthRequested":y.Linking.openURL(o.searchParams.get("oauthUrl"));break;default:console.log("unhandled event",o);break}};return(0,w.jsx)(g,{children:(0,w.jsx)(A.WebView,{ref:S,originWhitelist:["https://*","quilttconnector://*"],source:{uri:R},onShouldStartLoadWithRequest:q,javaScriptEnabled:!0,domStorageEnabled:!0,webviewDebuggingEnabled:!0})})},k=$;var j=k;0&&(module.exports={QuilttConnector});
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/components/QuilttConnector.tsx","../src/components/AndroidSafeAreaView.tsx"],"sourcesContent":["// Hermes doesn't have atob\n// https://github.com/facebook/hermes/issues/1178\nimport 'core-js/stable/atob'\n// React Native's URL implementation is incomplete\n// https://github.com/facebook/react-native/issues/16434\nimport 'core-js/stable/url'\nimport QuilttConnector from './components/QuilttConnector'\n\nexport { QuilttConnector }\nexport default QuilttConnector\n","import {\n ConnectorSDKCallbackMetadata,\n ConnectorSDKCallbacks,\n ConnectorSDKEventType,\n} from '@quiltt/core'\nimport { useCallback, useRef } from 'react'\nimport { Linking } from 'react-native'\nimport { WebView } from 'react-native-webview'\nimport { AndroidSafeAreaView } from './AndroidSafeAreaView'\nimport type { ShouldStartLoadRequest } from 'react-native-webview/lib/WebViewTypes'\nimport { useQuilttSession } from '@quiltt/react'\n\ntype QuilttConnectorProps = {\n connectorId: string\n connectionId?: string\n oauthRedirectUrl: string\n} & ConnectorSDKCallbacks\n\nexport const QuilttConnector = ({\n connectorId,\n connectionId,\n oauthRedirectUrl,\n onEvent,\n onLoad,\n onExit,\n onExitSuccess,\n onExitAbort,\n onExitError,\n}: QuilttConnectorProps) => {\n const webViewRef = useRef<WebView>(null)\n const { session } = useQuilttSession()\n oauthRedirectUrl = encodeURIComponent(oauthRedirectUrl)\n const connectorUrl = `https://${connectorId}.quiltt.app/?mode=webview&oauth_redirect_url=${oauthRedirectUrl}&sdk=react-native` // @todo append version from package.json\n\n const initInjectedJavaScript = useCallback(() => {\n const script = `\\\n const options = {\\\n source: 'quiltt',\\\n type: 'Options',\\\n token: '${session?.token}',\\\n connectorId: '${connectorId}',\\\n connectionId: '${connectionId}',\\\n };\\\n const compactedOptions = Object.keys(options).reduce((acc, key) => {\\\n if (options[key] !== 'undefined') {\\\n acc[key] = options[key];\\\n }\\\n return acc;\\\n }, {});\\\n window.postMessage(compactedOptions);\\\n `\n webViewRef.current?.injectJavaScript(script)\n }, [connectionId, connectorId, session?.token])\n\n const eventHandler = (request: ShouldStartLoadRequest) => {\n const url = new URL(request.url)\n if (url.protocol === 'quilttconnector:') {\n handleQuilttEvent(url)\n return false\n }\n return true\n }\n\n const clearLocalStorage = () => {\n const script = 'localStorage.clear();'\n webViewRef.current?.injectJavaScript(script)\n }\n\n const handleQuilttEvent = (url: URL) => {\n url.searchParams.delete('source')\n url.searchParams.append('connectorId', connectorId)\n const metadata = Object.fromEntries(url.searchParams) as ConnectorSDKCallbackMetadata\n\n const eventType = url.host\n switch (eventType) {\n case 'Loaded':\n initInjectedJavaScript()\n onEvent?.(ConnectorSDKEventType.Load, metadata)\n onLoad?.(metadata)\n break\n case 'ExitAbort':\n clearLocalStorage()\n onEvent?.(ConnectorSDKEventType.ExitAbort, metadata)\n onExit?.(ConnectorSDKEventType.ExitAbort, metadata)\n onExitAbort?.(metadata)\n break\n case 'ExitError':\n clearLocalStorage()\n onEvent?.(ConnectorSDKEventType.ExitError, metadata)\n onExit?.(ConnectorSDKEventType.ExitError, metadata)\n onExitError?.(metadata)\n break\n case 'ExitSuccess':\n clearLocalStorage()\n onEvent?.(ConnectorSDKEventType.ExitSuccess, metadata)\n onExit?.(ConnectorSDKEventType.ExitSuccess, metadata)\n onExitSuccess?.(metadata)\n break\n case 'OauthRequested':\n Linking.openURL(url.searchParams.get('oauthUrl') as string)\n break\n default:\n console.log('unhandled event', url)\n break\n }\n }\n\n return (\n <AndroidSafeAreaView>\n <WebView\n ref={webViewRef}\n originWhitelist={['https://*', 'quilttconnector://*']} // Maybe relax this to *?\n source={{ uri: connectorUrl }}\n onShouldStartLoadWithRequest={eventHandler}\n javaScriptEnabled\n domStorageEnabled // To enable localStorage in Android webview\n webviewDebuggingEnabled // Not sure if this works\n />\n </AndroidSafeAreaView>\n )\n}\n\nexport default QuilttConnector\n","import { SafeAreaView, StyleSheet, Platform, StatusBar } from 'react-native'\nimport { PropsWithChildren } from 'react'\n\nexport const AndroidSafeAreaView = ({ children }: PropsWithChildren) => (\n <SafeAreaView style={styles.AndroidSafeArea}>{children}</SafeAreaView>\n)\n\nconst styles = StyleSheet.create({\n AndroidSafeArea: {\n flex: 1,\n backgroundColor: 'white',\n paddingTop: Platform.OS === 'android' ? StatusBar.currentHeight : 0,\n },\n})\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAAO,+BAGPC,EAAO,8BCLP,IAAAC,EAIO,wBACPC,EAAoC,iBACpCC,EAAwB,wBACxBC,EAAwB,gCCPxB,IAAAC,EAA8D,wBAI5DC,EAAA,6BADWC,EAAsB,CAAC,CAAE,SAAAC,CAAS,OAC7C,OAAC,gBAAa,MAAOC,EAAO,gBAAkB,SAAAD,EAAS,EAGnDC,EAAS,aAAW,OAAO,CAC/B,gBAAiB,CACf,KAAM,EACN,gBAAiB,QACjB,WAAY,WAAS,KAAO,UAAY,YAAU,cAAgB,CACpE,CACF,CAAC,EDHD,IAAAC,EAAiC,yBAmG3BC,EAAA,6BA3FOC,EAAkB,CAAC,CAC9B,YAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,QAAAC,EACA,OAAAC,EACA,OAAAC,EACA,cAAAC,EACA,YAAAC,EACA,YAAAC,CACF,IAA4B,CAC1B,IAAMC,KAAa,UAAgB,IAAI,EACjC,CAAE,QAAAC,CAAQ,KAAI,oBAAiB,EACrCR,EAAmB,mBAAmBA,CAAgB,EACtD,IAAMS,EAAe,WAAWX,iDAA2DE,qBAErFU,KAAyB,eAAY,IAAM,CAlCnD,IAAAC,EAmCI,IAAMC,EAAS,2FAIDJ,GAAA,YAAAA,EAAS,gCACHV,6BACCC,8PAUrBY,EAAAJ,EAAW,UAAX,MAAAI,EAAoB,iBAAiBC,EACvC,EAAG,CAACb,EAAcD,EAAaU,GAAA,YAAAA,EAAS,KAAK,CAAC,EAExCK,EAAgBC,GAAoC,CACxD,IAAMC,EAAM,IAAI,IAAID,EAAQ,GAAG,EAC/B,OAAIC,EAAI,WAAa,oBACnBC,EAAkBD,CAAG,EACd,IAEF,EACT,EAEME,EAAoB,IAAM,CA/DlC,IAAAN,EAgEI,IAAMC,EAAS,yBACfD,EAAAJ,EAAW,UAAX,MAAAI,EAAoB,iBAAiBC,EACvC,EAEMI,EAAqBD,GAAa,CACtCA,EAAI,aAAa,OAAO,QAAQ,EAChCA,EAAI,aAAa,OAAO,cAAejB,CAAW,EAClD,IAAMoB,EAAW,OAAO,YAAYH,EAAI,YAAY,EAGpD,OADkBA,EAAI,KACH,CACjB,IAAK,SACHL,EAAuB,EACvBT,GAAA,MAAAA,EAAU,wBAAsB,KAAMiB,GACtChB,GAAA,MAAAA,EAASgB,GACT,MACF,IAAK,YACHD,EAAkB,EAClBhB,GAAA,MAAAA,EAAU,wBAAsB,UAAWiB,GAC3Cf,GAAA,MAAAA,EAAS,wBAAsB,UAAWe,GAC1Cb,GAAA,MAAAA,EAAca,GACd,MACF,IAAK,YACHD,EAAkB,EAClBhB,GAAA,MAAAA,EAAU,wBAAsB,UAAWiB,GAC3Cf,GAAA,MAAAA,EAAS,wBAAsB,UAAWe,GAC1CZ,GAAA,MAAAA,EAAcY,GACd,MACF,IAAK,cACHD,EAAkB,EAClBhB,GAAA,MAAAA,EAAU,wBAAsB,YAAaiB,GAC7Cf,GAAA,MAAAA,EAAS,wBAAsB,YAAae,GAC5Cd,GAAA,MAAAA,EAAgBc,GAChB,MACF,IAAK,iBACH,UAAQ,QAAQH,EAAI,aAAa,IAAI,UAAU,CAAW,EAC1D,MACF,QACE,QAAQ,IAAI,kBAAmBA,CAAG,EAClC,KACJ,CACF,EAEA,SACE,OAACI,EAAA,CACC,mBAAC,WACC,IAAKZ,EACL,gBAAiB,CAAC,YAAa,qBAAqB,EACpD,OAAQ,CAAE,IAAKE,CAAa,EAC5B,6BAA8BI,EAC9B,kBAAiB,GACjB,kBAAiB,GACjB,wBAAuB,GACzB,EACF,CAEJ,EAEOO,EAAQvB,EDjHf,IAAOwB,EAAQC","names":["src_exports","__export","QuilttConnector_default","src_default","__toCommonJS","import_atob","import_url","import_core","import_react","import_react_native","import_react_native_webview","import_react_native","import_jsx_runtime","AndroidSafeAreaView","children","styles","import_react","import_jsx_runtime","QuilttConnector","connectorId","connectionId","oauthRedirectUrl","onEvent","onLoad","onExit","onExitSuccess","onExitAbort","onExitError","webViewRef","session","connectorUrl","initInjectedJavaScript","_a","script","eventHandler","request","url","handleQuilttEvent","clearLocalStorage","metadata","AndroidSafeAreaView","QuilttConnector_default","src_default","QuilttConnector_default"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/components/QuilttConnector.tsx","../src/components/AndroidSafeAreaView.tsx"],"sourcesContent":["// Hermes doesn't have atob\n// https://github.com/facebook/hermes/issues/1178\nimport 'core-js/stable/atob'\n// React Native's URL implementation is incomplete\n// https://github.com/facebook/react-native/issues/16434\nimport 'core-js/stable/url'\nimport QuilttConnector from './components/QuilttConnector'\n\nexport { QuilttConnector }\nexport default QuilttConnector\n","import {\n ConnectorSDKCallbackMetadata,\n ConnectorSDKCallbacks,\n ConnectorSDKEventType,\n} from '@quiltt/core'\nimport { useCallback, useRef } from 'react'\nimport { Linking } from 'react-native'\nimport { WebView } from 'react-native-webview'\nimport { AndroidSafeAreaView } from './AndroidSafeAreaView'\nimport type { ShouldStartLoadRequest } from 'react-native-webview/lib/WebViewTypes'\nimport { useQuilttSession } from '@quiltt/react'\n\ntype QuilttConnectorProps = {\n connectorId: string\n connectionId?: string\n oauthRedirectUrl: string\n} & ConnectorSDKCallbacks\n\nexport const QuilttConnector = ({\n connectorId,\n connectionId,\n oauthRedirectUrl,\n onEvent,\n onLoad,\n onExit,\n onExitSuccess,\n onExitAbort,\n onExitError,\n}: QuilttConnectorProps) => {\n const webViewRef = useRef<WebView>(null)\n const { session } = useQuilttSession()\n oauthRedirectUrl = encodeURIComponent(oauthRedirectUrl)\n const connectorUrl = `https://${connectorId}.quiltt.app/?mode=webview&oauth_redirect_url=${oauthRedirectUrl}&sdk=react-native` // @todo append version from package.json\n\n const initInjectedJavaScript = useCallback(() => {\n const script = `\\\n const options = {\\\n source: 'quiltt',\\\n type: 'Options',\\\n token: '${session?.token}',\\\n connectorId: '${connectorId}',\\\n connectionId: '${connectionId}',\\\n };\\\n const compactedOptions = Object.keys(options).reduce((acc, key) => {\\\n if (options[key] !== 'undefined') {\\\n acc[key] = options[key];\\\n }\\\n return acc;\\\n }, {});\\\n window.postMessage(compactedOptions);\\\n `\n webViewRef.current?.injectJavaScript(script)\n }, [connectionId, connectorId, session?.token])\n\n const eventHandler = (request: ShouldStartLoadRequest) => {\n const url = new URL(request.url)\n if (url.protocol === 'quilttconnector:') {\n handleQuilttEvent(url)\n return false\n }\n return true\n }\n\n const clearLocalStorage = () => {\n const script = 'localStorage.clear();'\n webViewRef.current?.injectJavaScript(script)\n }\n\n const handleQuilttEvent = (url: URL) => {\n url.searchParams.delete('source')\n url.searchParams.append('connectorId', connectorId)\n const metadata = Object.fromEntries(url.searchParams) as ConnectorSDKCallbackMetadata\n\n const eventType = url.host\n switch (eventType) {\n case 'Load':\n initInjectedJavaScript()\n onEvent?.(ConnectorSDKEventType.Load, metadata)\n onLoad?.(metadata)\n break\n case 'ExitAbort':\n clearLocalStorage()\n onEvent?.(ConnectorSDKEventType.ExitAbort, metadata)\n onExit?.(ConnectorSDKEventType.ExitAbort, metadata)\n onExitAbort?.(metadata)\n break\n case 'ExitError':\n clearLocalStorage()\n onEvent?.(ConnectorSDKEventType.ExitError, metadata)\n onExit?.(ConnectorSDKEventType.ExitError, metadata)\n onExitError?.(metadata)\n break\n case 'ExitSuccess':\n clearLocalStorage()\n onEvent?.(ConnectorSDKEventType.ExitSuccess, metadata)\n onExit?.(ConnectorSDKEventType.ExitSuccess, metadata)\n onExitSuccess?.(metadata)\n break\n case 'OauthRequested':\n Linking.openURL(url.searchParams.get('oauthUrl') as string)\n break\n default:\n console.log('unhandled event', url)\n break\n }\n }\n\n return (\n <AndroidSafeAreaView>\n <WebView\n ref={webViewRef}\n originWhitelist={['https://*', 'quilttconnector://*']} // Maybe relax this to *?\n source={{ uri: connectorUrl }}\n onShouldStartLoadWithRequest={eventHandler}\n javaScriptEnabled\n domStorageEnabled // To enable localStorage in Android webview\n webviewDebuggingEnabled // Not sure if this works\n />\n </AndroidSafeAreaView>\n )\n}\n\nexport default QuilttConnector\n","import { SafeAreaView, StyleSheet, Platform, StatusBar } from 'react-native'\nimport { PropsWithChildren } from 'react'\n\nexport const AndroidSafeAreaView = ({ children }: PropsWithChildren) => (\n <SafeAreaView style={styles.AndroidSafeArea}>{children}</SafeAreaView>\n)\n\nconst styles = StyleSheet.create({\n AndroidSafeArea: {\n flex: 1,\n backgroundColor: 'white',\n paddingTop: Platform.OS === 'android' ? StatusBar.currentHeight : 0,\n },\n})\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAAO,+BAGPC,EAAO,8BCLP,IAAAC,EAIO,wBACPC,EAAoC,iBACpCC,EAAwB,wBACxBC,EAAwB,gCCPxB,IAAAC,EAA8D,wBAI5DC,EAAA,6BADWC,EAAsB,CAAC,CAAE,SAAAC,CAAS,OAC7C,OAAC,gBAAa,MAAOC,EAAO,gBAAkB,SAAAD,EAAS,EAGnDC,EAAS,aAAW,OAAO,CAC/B,gBAAiB,CACf,KAAM,EACN,gBAAiB,QACjB,WAAY,WAAS,KAAO,UAAY,YAAU,cAAgB,CACpE,CACF,CAAC,EDHD,IAAAC,EAAiC,yBAmG3BC,EAAA,6BA3FOC,EAAkB,CAAC,CAC9B,YAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,QAAAC,EACA,OAAAC,EACA,OAAAC,EACA,cAAAC,EACA,YAAAC,EACA,YAAAC,CACF,IAA4B,CAC1B,IAAMC,KAAa,UAAgB,IAAI,EACjC,CAAE,QAAAC,CAAQ,KAAI,oBAAiB,EACrCR,EAAmB,mBAAmBA,CAAgB,EACtD,IAAMS,EAAe,WAAWX,iDAA2DE,qBAErFU,KAAyB,eAAY,IAAM,CAlCnD,IAAAC,EAmCI,IAAMC,EAAS,2FAIDJ,GAAA,YAAAA,EAAS,gCACHV,6BACCC,8PAUrBY,EAAAJ,EAAW,UAAX,MAAAI,EAAoB,iBAAiBC,EACvC,EAAG,CAACb,EAAcD,EAAaU,GAAA,YAAAA,EAAS,KAAK,CAAC,EAExCK,EAAgBC,GAAoC,CACxD,IAAMC,EAAM,IAAI,IAAID,EAAQ,GAAG,EAC/B,OAAIC,EAAI,WAAa,oBACnBC,EAAkBD,CAAG,EACd,IAEF,EACT,EAEME,EAAoB,IAAM,CA/DlC,IAAAN,EAgEI,IAAMC,EAAS,yBACfD,EAAAJ,EAAW,UAAX,MAAAI,EAAoB,iBAAiBC,EACvC,EAEMI,EAAqBD,GAAa,CACtCA,EAAI,aAAa,OAAO,QAAQ,EAChCA,EAAI,aAAa,OAAO,cAAejB,CAAW,EAClD,IAAMoB,EAAW,OAAO,YAAYH,EAAI,YAAY,EAGpD,OADkBA,EAAI,KACH,CACjB,IAAK,OACHL,EAAuB,EACvBT,GAAA,MAAAA,EAAU,wBAAsB,KAAMiB,GACtChB,GAAA,MAAAA,EAASgB,GACT,MACF,IAAK,YACHD,EAAkB,EAClBhB,GAAA,MAAAA,EAAU,wBAAsB,UAAWiB,GAC3Cf,GAAA,MAAAA,EAAS,wBAAsB,UAAWe,GAC1Cb,GAAA,MAAAA,EAAca,GACd,MACF,IAAK,YACHD,EAAkB,EAClBhB,GAAA,MAAAA,EAAU,wBAAsB,UAAWiB,GAC3Cf,GAAA,MAAAA,EAAS,wBAAsB,UAAWe,GAC1CZ,GAAA,MAAAA,EAAcY,GACd,MACF,IAAK,cACHD,EAAkB,EAClBhB,GAAA,MAAAA,EAAU,wBAAsB,YAAaiB,GAC7Cf,GAAA,MAAAA,EAAS,wBAAsB,YAAae,GAC5Cd,GAAA,MAAAA,EAAgBc,GAChB,MACF,IAAK,iBACH,UAAQ,QAAQH,EAAI,aAAa,IAAI,UAAU,CAAW,EAC1D,MACF,QACE,QAAQ,IAAI,kBAAmBA,CAAG,EAClC,KACJ,CACF,EAEA,SACE,OAACI,EAAA,CACC,mBAAC,WACC,IAAKZ,EACL,gBAAiB,CAAC,YAAa,qBAAqB,EACpD,OAAQ,CAAE,IAAKE,CAAa,EAC5B,6BAA8BI,EAC9B,kBAAiB,GACjB,kBAAiB,GACjB,wBAAuB,GACzB,EACF,CAEJ,EAEOO,EAAQvB,EDjHf,IAAOwB,EAAQC","names":["src_exports","__export","QuilttConnector_default","src_default","__toCommonJS","import_atob","import_url","import_core","import_react","import_react_native","import_react_native_webview","import_react_native","import_jsx_runtime","AndroidSafeAreaView","children","styles","import_react","import_jsx_runtime","QuilttConnector","connectorId","connectionId","oauthRedirectUrl","onEvent","onLoad","onExit","onExitSuccess","onExitAbort","onExitError","webViewRef","session","connectorUrl","initInjectedJavaScript","_a","script","eventHandler","request","url","handleQuilttEvent","clearLocalStorage","metadata","AndroidSafeAreaView","QuilttConnector_default","src_default","QuilttConnector_default"]}
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import"core-js/stable/atob";import"core-js/stable/url";import{ConnectorSDKEventType as o}from"@quiltt/core";import{useCallback as O,useRef as W}from"react";import{Linking as D}from"react-native";import{WebView as L}from"react-native-webview";import{SafeAreaView as y,StyleSheet as A,Platform as P,StatusBar as R}from"react-native";import{jsx as q}from"react/jsx-runtime";var S=({children:c})=>q(y,{style:V.AndroidSafeArea,children:c}),V=A.create({AndroidSafeArea:{flex:1,backgroundColor:"white",paddingTop:P.OS==="android"?R.currentHeight:0}});import{useQuilttSession as Q}from"@quiltt/react";import{jsx as b}from"react/jsx-runtime";var T=({connectorId:c,connectionId:f,oauthRedirectUrl:s,onEvent:t,onLoad:l,onExit:a,onExitSuccess:p,onExitAbort:d,onExitError:n})=>{let u=W(null),{session:i}=Q();s=encodeURIComponent(s);let w=`https://${c}.quiltt.app/?mode=webview&oauth_redirect_url=${s}&sdk=react-native`,k=O(()=>{var e;let r=` const options = { source: 'quiltt', type: 'Options', token: '${i==null?void 0:i.token}', connectorId: '${c}', connectionId: '${f}', }; const compactedOptions = Object.keys(options).reduce((acc, key) => { if (options[key] !== 'undefined') { acc[key] = options[key]; } return acc; }, {}); window.postMessage(compactedOptions); `;(e=u.current)==null||e.injectJavaScript(r)},[f,c,i==null?void 0:i.token]),g=r=>{let e=new URL(r.url);return e.protocol==="quilttconnector:"?(C(e),!1):!0},m=()=>{var e;let r="localStorage.clear();";(e=u.current)==null||e.injectJavaScript(r)},C=r=>{r.searchParams.delete("source"),r.searchParams.append("connectorId",c);let e=Object.fromEntries(r.searchParams);switch(r.host){case"Loaded":k(),t==null||t(o.Load,e),l==null||l(e);break;case"ExitAbort":m(),t==null||t(o.ExitAbort,e),a==null||a(o.ExitAbort,e),d==null||d(e);break;case"ExitError":m(),t==null||t(o.ExitError,e),a==null||a(o.ExitError,e),n==null||n(e);break;case"ExitSuccess":m(),t==null||t(o.ExitSuccess,e),a==null||a(o.ExitSuccess,e),p==null||p(e);break;case"OauthRequested":D.openURL(r.searchParams.get("oauthUrl"));break;default:console.log("unhandled event",r);break}};return b(S,{children:b(L,{ref:u,originWhitelist:["https://*","quilttconnector://*"],source:{uri:w},onShouldStartLoadWithRequest:g,javaScriptEnabled:!0,domStorageEnabled:!0,webviewDebuggingEnabled:!0})})},h=T;var v=h;export{h as QuilttConnector,v as default};
1
+ import"core-js/stable/atob";import"core-js/stable/url";import{ConnectorSDKEventType as o}from"@quiltt/core";import{useCallback as O,useRef as W}from"react";import{Linking as D}from"react-native";import{WebView as L}from"react-native-webview";import{SafeAreaView as y,StyleSheet as A,Platform as P,StatusBar as R}from"react-native";import{jsx as q}from"react/jsx-runtime";var S=({children:c})=>q(y,{style:V.AndroidSafeArea,children:c}),V=A.create({AndroidSafeArea:{flex:1,backgroundColor:"white",paddingTop:P.OS==="android"?R.currentHeight:0}});import{useQuilttSession as Q}from"@quiltt/react";import{jsx as b}from"react/jsx-runtime";var T=({connectorId:c,connectionId:f,oauthRedirectUrl:s,onEvent:t,onLoad:l,onExit:a,onExitSuccess:p,onExitAbort:d,onExitError:n})=>{let u=W(null),{session:i}=Q();s=encodeURIComponent(s);let w=`https://${c}.quiltt.app/?mode=webview&oauth_redirect_url=${s}&sdk=react-native`,k=O(()=>{var e;let r=` const options = { source: 'quiltt', type: 'Options', token: '${i==null?void 0:i.token}', connectorId: '${c}', connectionId: '${f}', }; const compactedOptions = Object.keys(options).reduce((acc, key) => { if (options[key] !== 'undefined') { acc[key] = options[key]; } return acc; }, {}); window.postMessage(compactedOptions); `;(e=u.current)==null||e.injectJavaScript(r)},[f,c,i==null?void 0:i.token]),g=r=>{let e=new URL(r.url);return e.protocol==="quilttconnector:"?(C(e),!1):!0},m=()=>{var e;let r="localStorage.clear();";(e=u.current)==null||e.injectJavaScript(r)},C=r=>{r.searchParams.delete("source"),r.searchParams.append("connectorId",c);let e=Object.fromEntries(r.searchParams);switch(r.host){case"Load":k(),t==null||t(o.Load,e),l==null||l(e);break;case"ExitAbort":m(),t==null||t(o.ExitAbort,e),a==null||a(o.ExitAbort,e),d==null||d(e);break;case"ExitError":m(),t==null||t(o.ExitError,e),a==null||a(o.ExitError,e),n==null||n(e);break;case"ExitSuccess":m(),t==null||t(o.ExitSuccess,e),a==null||a(o.ExitSuccess,e),p==null||p(e);break;case"OauthRequested":D.openURL(r.searchParams.get("oauthUrl"));break;default:console.log("unhandled event",r);break}};return b(S,{children:b(L,{ref:u,originWhitelist:["https://*","quilttconnector://*"],source:{uri:w},onShouldStartLoadWithRequest:g,javaScriptEnabled:!0,domStorageEnabled:!0,webviewDebuggingEnabled:!0})})},h=T;var v=h;export{h as QuilttConnector,v as default};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/components/QuilttConnector.tsx","../src/components/AndroidSafeAreaView.tsx"],"sourcesContent":["// Hermes doesn't have atob\n// https://github.com/facebook/hermes/issues/1178\nimport 'core-js/stable/atob'\n// React Native's URL implementation is incomplete\n// https://github.com/facebook/react-native/issues/16434\nimport 'core-js/stable/url'\nimport QuilttConnector from './components/QuilttConnector'\n\nexport { QuilttConnector }\nexport default QuilttConnector\n","import {\n ConnectorSDKCallbackMetadata,\n ConnectorSDKCallbacks,\n ConnectorSDKEventType,\n} from '@quiltt/core'\nimport { useCallback, useRef } from 'react'\nimport { Linking } from 'react-native'\nimport { WebView } from 'react-native-webview'\nimport { AndroidSafeAreaView } from './AndroidSafeAreaView'\nimport type { ShouldStartLoadRequest } from 'react-native-webview/lib/WebViewTypes'\nimport { useQuilttSession } from '@quiltt/react'\n\ntype QuilttConnectorProps = {\n connectorId: string\n connectionId?: string\n oauthRedirectUrl: string\n} & ConnectorSDKCallbacks\n\nexport const QuilttConnector = ({\n connectorId,\n connectionId,\n oauthRedirectUrl,\n onEvent,\n onLoad,\n onExit,\n onExitSuccess,\n onExitAbort,\n onExitError,\n}: QuilttConnectorProps) => {\n const webViewRef = useRef<WebView>(null)\n const { session } = useQuilttSession()\n oauthRedirectUrl = encodeURIComponent(oauthRedirectUrl)\n const connectorUrl = `https://${connectorId}.quiltt.app/?mode=webview&oauth_redirect_url=${oauthRedirectUrl}&sdk=react-native` // @todo append version from package.json\n\n const initInjectedJavaScript = useCallback(() => {\n const script = `\\\n const options = {\\\n source: 'quiltt',\\\n type: 'Options',\\\n token: '${session?.token}',\\\n connectorId: '${connectorId}',\\\n connectionId: '${connectionId}',\\\n };\\\n const compactedOptions = Object.keys(options).reduce((acc, key) => {\\\n if (options[key] !== 'undefined') {\\\n acc[key] = options[key];\\\n }\\\n return acc;\\\n }, {});\\\n window.postMessage(compactedOptions);\\\n `\n webViewRef.current?.injectJavaScript(script)\n }, [connectionId, connectorId, session?.token])\n\n const eventHandler = (request: ShouldStartLoadRequest) => {\n const url = new URL(request.url)\n if (url.protocol === 'quilttconnector:') {\n handleQuilttEvent(url)\n return false\n }\n return true\n }\n\n const clearLocalStorage = () => {\n const script = 'localStorage.clear();'\n webViewRef.current?.injectJavaScript(script)\n }\n\n const handleQuilttEvent = (url: URL) => {\n url.searchParams.delete('source')\n url.searchParams.append('connectorId', connectorId)\n const metadata = Object.fromEntries(url.searchParams) as ConnectorSDKCallbackMetadata\n\n const eventType = url.host\n switch (eventType) {\n case 'Loaded':\n initInjectedJavaScript()\n onEvent?.(ConnectorSDKEventType.Load, metadata)\n onLoad?.(metadata)\n break\n case 'ExitAbort':\n clearLocalStorage()\n onEvent?.(ConnectorSDKEventType.ExitAbort, metadata)\n onExit?.(ConnectorSDKEventType.ExitAbort, metadata)\n onExitAbort?.(metadata)\n break\n case 'ExitError':\n clearLocalStorage()\n onEvent?.(ConnectorSDKEventType.ExitError, metadata)\n onExit?.(ConnectorSDKEventType.ExitError, metadata)\n onExitError?.(metadata)\n break\n case 'ExitSuccess':\n clearLocalStorage()\n onEvent?.(ConnectorSDKEventType.ExitSuccess, metadata)\n onExit?.(ConnectorSDKEventType.ExitSuccess, metadata)\n onExitSuccess?.(metadata)\n break\n case 'OauthRequested':\n Linking.openURL(url.searchParams.get('oauthUrl') as string)\n break\n default:\n console.log('unhandled event', url)\n break\n }\n }\n\n return (\n <AndroidSafeAreaView>\n <WebView\n ref={webViewRef}\n originWhitelist={['https://*', 'quilttconnector://*']} // Maybe relax this to *?\n source={{ uri: connectorUrl }}\n onShouldStartLoadWithRequest={eventHandler}\n javaScriptEnabled\n domStorageEnabled // To enable localStorage in Android webview\n webviewDebuggingEnabled // Not sure if this works\n />\n </AndroidSafeAreaView>\n )\n}\n\nexport default QuilttConnector\n","import { SafeAreaView, StyleSheet, Platform, StatusBar } from 'react-native'\nimport { PropsWithChildren } from 'react'\n\nexport const AndroidSafeAreaView = ({ children }: PropsWithChildren) => (\n <SafeAreaView style={styles.AndroidSafeArea}>{children}</SafeAreaView>\n)\n\nconst styles = StyleSheet.create({\n AndroidSafeArea: {\n flex: 1,\n backgroundColor: 'white',\n paddingTop: Platform.OS === 'android' ? StatusBar.currentHeight : 0,\n },\n})\n"],"mappings":"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","names":["ConnectorSDKEventType","useCallback","useRef","Linking","WebView","SafeAreaView","StyleSheet","Platform","StatusBar","jsx","AndroidSafeAreaView","children","styles","useQuilttSession","jsx","QuilttConnector","connectorId","connectionId","oauthRedirectUrl","onEvent","onLoad","onExit","onExitSuccess","onExitAbort","onExitError","webViewRef","useRef","session","connectorUrl","initInjectedJavaScript","useCallback","_a","script","eventHandler","request","url","handleQuilttEvent","clearLocalStorage","metadata","ConnectorSDKEventType","Linking","AndroidSafeAreaView","WebView","QuilttConnector_default","src_default","QuilttConnector_default"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/components/QuilttConnector.tsx","../src/components/AndroidSafeAreaView.tsx"],"sourcesContent":["// Hermes doesn't have atob\n// https://github.com/facebook/hermes/issues/1178\nimport 'core-js/stable/atob'\n// React Native's URL implementation is incomplete\n// https://github.com/facebook/react-native/issues/16434\nimport 'core-js/stable/url'\nimport QuilttConnector from './components/QuilttConnector'\n\nexport { QuilttConnector }\nexport default QuilttConnector\n","import {\n ConnectorSDKCallbackMetadata,\n ConnectorSDKCallbacks,\n ConnectorSDKEventType,\n} from '@quiltt/core'\nimport { useCallback, useRef } from 'react'\nimport { Linking } from 'react-native'\nimport { WebView } from 'react-native-webview'\nimport { AndroidSafeAreaView } from './AndroidSafeAreaView'\nimport type { ShouldStartLoadRequest } from 'react-native-webview/lib/WebViewTypes'\nimport { useQuilttSession } from '@quiltt/react'\n\ntype QuilttConnectorProps = {\n connectorId: string\n connectionId?: string\n oauthRedirectUrl: string\n} & ConnectorSDKCallbacks\n\nexport const QuilttConnector = ({\n connectorId,\n connectionId,\n oauthRedirectUrl,\n onEvent,\n onLoad,\n onExit,\n onExitSuccess,\n onExitAbort,\n onExitError,\n}: QuilttConnectorProps) => {\n const webViewRef = useRef<WebView>(null)\n const { session } = useQuilttSession()\n oauthRedirectUrl = encodeURIComponent(oauthRedirectUrl)\n const connectorUrl = `https://${connectorId}.quiltt.app/?mode=webview&oauth_redirect_url=${oauthRedirectUrl}&sdk=react-native` // @todo append version from package.json\n\n const initInjectedJavaScript = useCallback(() => {\n const script = `\\\n const options = {\\\n source: 'quiltt',\\\n type: 'Options',\\\n token: '${session?.token}',\\\n connectorId: '${connectorId}',\\\n connectionId: '${connectionId}',\\\n };\\\n const compactedOptions = Object.keys(options).reduce((acc, key) => {\\\n if (options[key] !== 'undefined') {\\\n acc[key] = options[key];\\\n }\\\n return acc;\\\n }, {});\\\n window.postMessage(compactedOptions);\\\n `\n webViewRef.current?.injectJavaScript(script)\n }, [connectionId, connectorId, session?.token])\n\n const eventHandler = (request: ShouldStartLoadRequest) => {\n const url = new URL(request.url)\n if (url.protocol === 'quilttconnector:') {\n handleQuilttEvent(url)\n return false\n }\n return true\n }\n\n const clearLocalStorage = () => {\n const script = 'localStorage.clear();'\n webViewRef.current?.injectJavaScript(script)\n }\n\n const handleQuilttEvent = (url: URL) => {\n url.searchParams.delete('source')\n url.searchParams.append('connectorId', connectorId)\n const metadata = Object.fromEntries(url.searchParams) as ConnectorSDKCallbackMetadata\n\n const eventType = url.host\n switch (eventType) {\n case 'Load':\n initInjectedJavaScript()\n onEvent?.(ConnectorSDKEventType.Load, metadata)\n onLoad?.(metadata)\n break\n case 'ExitAbort':\n clearLocalStorage()\n onEvent?.(ConnectorSDKEventType.ExitAbort, metadata)\n onExit?.(ConnectorSDKEventType.ExitAbort, metadata)\n onExitAbort?.(metadata)\n break\n case 'ExitError':\n clearLocalStorage()\n onEvent?.(ConnectorSDKEventType.ExitError, metadata)\n onExit?.(ConnectorSDKEventType.ExitError, metadata)\n onExitError?.(metadata)\n break\n case 'ExitSuccess':\n clearLocalStorage()\n onEvent?.(ConnectorSDKEventType.ExitSuccess, metadata)\n onExit?.(ConnectorSDKEventType.ExitSuccess, metadata)\n onExitSuccess?.(metadata)\n break\n case 'OauthRequested':\n Linking.openURL(url.searchParams.get('oauthUrl') as string)\n break\n default:\n console.log('unhandled event', url)\n break\n }\n }\n\n return (\n <AndroidSafeAreaView>\n <WebView\n ref={webViewRef}\n originWhitelist={['https://*', 'quilttconnector://*']} // Maybe relax this to *?\n source={{ uri: connectorUrl }}\n onShouldStartLoadWithRequest={eventHandler}\n javaScriptEnabled\n domStorageEnabled // To enable localStorage in Android webview\n webviewDebuggingEnabled // Not sure if this works\n />\n </AndroidSafeAreaView>\n )\n}\n\nexport default QuilttConnector\n","import { SafeAreaView, StyleSheet, Platform, StatusBar } from 'react-native'\nimport { PropsWithChildren } from 'react'\n\nexport const AndroidSafeAreaView = ({ children }: PropsWithChildren) => (\n <SafeAreaView style={styles.AndroidSafeArea}>{children}</SafeAreaView>\n)\n\nconst styles = StyleSheet.create({\n AndroidSafeArea: {\n flex: 1,\n backgroundColor: 'white',\n paddingTop: Platform.OS === 'android' ? StatusBar.currentHeight : 0,\n },\n})\n"],"mappings":"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","names":["ConnectorSDKEventType","useCallback","useRef","Linking","WebView","SafeAreaView","StyleSheet","Platform","StatusBar","jsx","AndroidSafeAreaView","children","styles","useQuilttSession","jsx","QuilttConnector","connectorId","connectionId","oauthRedirectUrl","onEvent","onLoad","onExit","onExitSuccess","onExitAbort","onExitError","webViewRef","useRef","session","connectorUrl","initInjectedJavaScript","useCallback","_a","script","eventHandler","request","url","handleQuilttEvent","clearLocalStorage","metadata","ConnectorSDKEventType","Linking","AndroidSafeAreaView","WebView","QuilttConnector_default","src_default","QuilttConnector_default"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quiltt/react-native",
3
- "version": "3.3.0",
3
+ "version": "3.3.1",
4
4
  "description": "React Native components for Quiltt Connector",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -23,8 +23,8 @@
23
23
  "dependencies": {
24
24
  "core-js": "3.33.2",
25
25
  "react-native-webview": "13.6.2",
26
- "@quiltt/core": "3.3.0",
27
- "@quiltt/react": "3.3.0"
26
+ "@quiltt/core": "3.3.1",
27
+ "@quiltt/react": "3.3.1"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@apollo/client": "3.7.16",
@@ -73,7 +73,7 @@ export const QuilttConnector = ({
73
73
 
74
74
  const eventType = url.host
75
75
  switch (eventType) {
76
- case 'Loaded':
76
+ case 'Load':
77
77
  initInjectedJavaScript()
78
78
  onEvent?.(ConnectorSDKEventType.Load, metadata)
79
79
  onLoad?.(metadata)