@tryfinch/react-connect 3.11.0 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +15 -7
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +15 -7
- package/dist/index.js.map +1 -1
- package/example/src/App.tsx +12 -27
- package/package.json +1 -1
- package/src/index.ts +16 -6
package/README.md
CHANGED
|
@@ -18,7 +18,13 @@ const App = () => {
|
|
|
18
18
|
const [code, setCode] = useState(null);
|
|
19
19
|
|
|
20
20
|
const onSuccess = ({ code }) => setCode(code);
|
|
21
|
-
|
|
21
|
+
/**
|
|
22
|
+
* @param {string} errorMessage - The error message
|
|
23
|
+
* @param {'validation_error' | 'employer_error'} errorType - The type of error
|
|
24
|
+
* - 'validation_error': Finch Connect failed to open due to validation error
|
|
25
|
+
* - 'employer_connection_error': The errors employers see within the Finch Connect flow
|
|
26
|
+
*/
|
|
27
|
+
const onError = ({ errorMessage, errorType }) => console.error(errorMessage, errorType);
|
|
22
28
|
const onClose = () => console.log('User exited Finch Connect');
|
|
23
29
|
|
|
24
30
|
const { open } = useFinchConnect({
|
package/dist/index.d.ts
CHANGED
|
@@ -3,8 +3,10 @@ export type SuccessEvent = {
|
|
|
3
3
|
state?: string;
|
|
4
4
|
idpRedirectUri?: string;
|
|
5
5
|
};
|
|
6
|
+
type ErrorType = 'validation_error' | 'employer_connection_error';
|
|
6
7
|
export type ErrorEvent = {
|
|
7
8
|
errorMessage: string;
|
|
9
|
+
errorType?: ErrorType;
|
|
8
10
|
};
|
|
9
11
|
export type Sandbox = 'finch' /** This is to enable the new Finch (simulated) Sandbox */ | 'provider' /** This is to enable the new Provider Sandbox */ | boolean /** This is the old sandbox flag retained for backwards compatibility */;
|
|
10
12
|
type BaseConnectOptions = {
|
|
@@ -29,6 +31,7 @@ type ConnectOptionsWithClientId = BaseConnectOptions & {
|
|
|
29
31
|
payrollProvider: string | null;
|
|
30
32
|
products: string[];
|
|
31
33
|
clientName?: string;
|
|
34
|
+
connectionId?: string;
|
|
32
35
|
sandbox: Sandbox;
|
|
33
36
|
};
|
|
34
37
|
export type ConnectOptions = ConnectOptionsWithSessionId | ConnectOptionsWithClientId;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,YAAY,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,KAAK,SAAS,GAAG,kBAAkB,GAAG,2BAA2B,CAAC;AAElE,MAAM,MAAM,UAAU,GAAG;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,OAAO,GACf,OAAO,CAAC,0DAA0D,GAClE,UAAU,CAAC,iDAAiD,GAC5D,OAAO,CAAC,wEAAwE,CAAC;AAErF,KAAK,kBAAkB,GAAG;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,KAAK,2BAA2B,GAAG,kBAAkB,GAAG;IAEtD,SAAS,EAAE,MAAM,CAAC;IAElB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,KAAK,0BAA0B,GAAG,kBAAkB,GAAG;IACrD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,2BAA2B,GAAG,0BAA0B,CAAC;AAEtF,KAAK,MAAM,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;AA0G5D,eAAO,MAAM,eAAe,YAAa,QAAQ,cAAc,CAAC;UAAW,MAAM;CA+GhF,CAAC"}
|
package/dist/index.es.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { useRef, useEffect } from 'react';
|
|
2
2
|
|
|
3
|
+
const POST_MESSAGE_NAME = 'finch-auth-message-v2';
|
|
3
4
|
const BASE_FINCH_CONNECT_URI = 'https://connect.tryfinch.com';
|
|
4
5
|
const DEFAULT_FINCH_REDIRECT_URI = 'https://tryfinch.com';
|
|
5
6
|
const FINCH_CONNECT_IFRAME_ID = 'finch-connect-iframe';
|
|
6
|
-
const FINCH_AUTH_MESSAGE_NAME = 'finch-auth-message';
|
|
7
7
|
const constructAuthUrl = (connectOptions) => {
|
|
8
8
|
const { state, apiConfig } = connectOptions;
|
|
9
9
|
const CONNECT_URL = (apiConfig === null || apiConfig === void 0 ? void 0 : apiConfig.connectUrl) || BASE_FINCH_CONNECT_URI;
|
|
@@ -16,7 +16,7 @@ const constructAuthUrl = (connectOptions) => {
|
|
|
16
16
|
authUrl.searchParams.append('products', products.join(' '));
|
|
17
17
|
}
|
|
18
18
|
else {
|
|
19
|
-
const { clientId, payrollProvider, category, products, manual, sandbox, clientName, } = connectOptions;
|
|
19
|
+
const { clientId, payrollProvider, category, products, manual, sandbox, clientName, connectionId, } = connectOptions;
|
|
20
20
|
if (clientId)
|
|
21
21
|
authUrl.searchParams.append('client_id', clientId);
|
|
22
22
|
if (payrollProvider)
|
|
@@ -25,6 +25,8 @@ const constructAuthUrl = (connectOptions) => {
|
|
|
25
25
|
authUrl.searchParams.append('category', category);
|
|
26
26
|
if (clientName)
|
|
27
27
|
authUrl.searchParams.append('client_name', clientName);
|
|
28
|
+
if (connectionId)
|
|
29
|
+
authUrl.searchParams.append('connection_id', connectionId);
|
|
28
30
|
authUrl.searchParams.append('products', (products !== null && products !== void 0 ? products : []).join(' '));
|
|
29
31
|
if (manual)
|
|
30
32
|
authUrl.searchParams.append('manual', String(manual));
|
|
@@ -39,7 +41,7 @@ const constructAuthUrl = (connectOptions) => {
|
|
|
39
41
|
if (state)
|
|
40
42
|
authUrl.searchParams.append('state', state);
|
|
41
43
|
// replace with actual SDK version by rollup
|
|
42
|
-
authUrl.searchParams.append('sdk_version', 'react-3.
|
|
44
|
+
authUrl.searchParams.append('sdk_version', 'react-3.13.0');
|
|
43
45
|
return authUrl.href;
|
|
44
46
|
};
|
|
45
47
|
const noop = () => {
|
|
@@ -104,21 +106,27 @@ const useFinchConnect = (options) => {
|
|
|
104
106
|
};
|
|
105
107
|
useEffect(() => {
|
|
106
108
|
function handleFinchAuth(event) {
|
|
107
|
-
var _a;
|
|
109
|
+
var _a, _b, _c, _d;
|
|
108
110
|
const CONNECT_URL = ((_a = combinedOptions.apiConfig) === null || _a === void 0 ? void 0 : _a.connectUrl) || BASE_FINCH_CONNECT_URI;
|
|
109
111
|
if (!event.data)
|
|
110
112
|
return;
|
|
111
|
-
if (event.data.name !==
|
|
113
|
+
if (event.data.name !== POST_MESSAGE_NAME)
|
|
112
114
|
return;
|
|
113
115
|
if (!event.origin.startsWith(CONNECT_URL))
|
|
114
116
|
return;
|
|
115
|
-
|
|
117
|
+
if (event.data.kind !== 'error')
|
|
118
|
+
close();
|
|
116
119
|
switch (event.data.kind) {
|
|
117
120
|
case 'closed':
|
|
118
121
|
combinedOptions.onClose();
|
|
119
122
|
break;
|
|
120
123
|
case 'error':
|
|
121
|
-
|
|
124
|
+
if ((_b = event.data.error) === null || _b === void 0 ? void 0 : _b.shouldClose)
|
|
125
|
+
close();
|
|
126
|
+
combinedOptions.onError({
|
|
127
|
+
errorMessage: (_c = event.data.error) === null || _c === void 0 ? void 0 : _c.message,
|
|
128
|
+
errorType: (_d = event.data.error) === null || _d === void 0 ? void 0 : _d.type,
|
|
129
|
+
});
|
|
122
130
|
break;
|
|
123
131
|
case 'success':
|
|
124
132
|
combinedOptions.onSuccess({
|
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/src/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,10 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var react = require('react');
|
|
6
6
|
|
|
7
|
+
const POST_MESSAGE_NAME = 'finch-auth-message-v2';
|
|
7
8
|
const BASE_FINCH_CONNECT_URI = 'https://connect.tryfinch.com';
|
|
8
9
|
const DEFAULT_FINCH_REDIRECT_URI = 'https://tryfinch.com';
|
|
9
10
|
const FINCH_CONNECT_IFRAME_ID = 'finch-connect-iframe';
|
|
10
|
-
const FINCH_AUTH_MESSAGE_NAME = 'finch-auth-message';
|
|
11
11
|
const constructAuthUrl = (connectOptions) => {
|
|
12
12
|
const { state, apiConfig } = connectOptions;
|
|
13
13
|
const CONNECT_URL = (apiConfig === null || apiConfig === void 0 ? void 0 : apiConfig.connectUrl) || BASE_FINCH_CONNECT_URI;
|
|
@@ -20,7 +20,7 @@ const constructAuthUrl = (connectOptions) => {
|
|
|
20
20
|
authUrl.searchParams.append('products', products.join(' '));
|
|
21
21
|
}
|
|
22
22
|
else {
|
|
23
|
-
const { clientId, payrollProvider, category, products, manual, sandbox, clientName, } = connectOptions;
|
|
23
|
+
const { clientId, payrollProvider, category, products, manual, sandbox, clientName, connectionId, } = connectOptions;
|
|
24
24
|
if (clientId)
|
|
25
25
|
authUrl.searchParams.append('client_id', clientId);
|
|
26
26
|
if (payrollProvider)
|
|
@@ -29,6 +29,8 @@ const constructAuthUrl = (connectOptions) => {
|
|
|
29
29
|
authUrl.searchParams.append('category', category);
|
|
30
30
|
if (clientName)
|
|
31
31
|
authUrl.searchParams.append('client_name', clientName);
|
|
32
|
+
if (connectionId)
|
|
33
|
+
authUrl.searchParams.append('connection_id', connectionId);
|
|
32
34
|
authUrl.searchParams.append('products', (products !== null && products !== void 0 ? products : []).join(' '));
|
|
33
35
|
if (manual)
|
|
34
36
|
authUrl.searchParams.append('manual', String(manual));
|
|
@@ -43,7 +45,7 @@ const constructAuthUrl = (connectOptions) => {
|
|
|
43
45
|
if (state)
|
|
44
46
|
authUrl.searchParams.append('state', state);
|
|
45
47
|
// replace with actual SDK version by rollup
|
|
46
|
-
authUrl.searchParams.append('sdk_version', 'react-3.
|
|
48
|
+
authUrl.searchParams.append('sdk_version', 'react-3.13.0');
|
|
47
49
|
return authUrl.href;
|
|
48
50
|
};
|
|
49
51
|
const noop = () => {
|
|
@@ -108,21 +110,27 @@ const useFinchConnect = (options) => {
|
|
|
108
110
|
};
|
|
109
111
|
react.useEffect(() => {
|
|
110
112
|
function handleFinchAuth(event) {
|
|
111
|
-
var _a;
|
|
113
|
+
var _a, _b, _c, _d;
|
|
112
114
|
const CONNECT_URL = ((_a = combinedOptions.apiConfig) === null || _a === void 0 ? void 0 : _a.connectUrl) || BASE_FINCH_CONNECT_URI;
|
|
113
115
|
if (!event.data)
|
|
114
116
|
return;
|
|
115
|
-
if (event.data.name !==
|
|
117
|
+
if (event.data.name !== POST_MESSAGE_NAME)
|
|
116
118
|
return;
|
|
117
119
|
if (!event.origin.startsWith(CONNECT_URL))
|
|
118
120
|
return;
|
|
119
|
-
|
|
121
|
+
if (event.data.kind !== 'error')
|
|
122
|
+
close();
|
|
120
123
|
switch (event.data.kind) {
|
|
121
124
|
case 'closed':
|
|
122
125
|
combinedOptions.onClose();
|
|
123
126
|
break;
|
|
124
127
|
case 'error':
|
|
125
|
-
|
|
128
|
+
if ((_b = event.data.error) === null || _b === void 0 ? void 0 : _b.shouldClose)
|
|
129
|
+
close();
|
|
130
|
+
combinedOptions.onError({
|
|
131
|
+
errorMessage: (_c = event.data.error) === null || _c === void 0 ? void 0 : _c.message,
|
|
132
|
+
errorType: (_d = event.data.error) === null || _d === void 0 ? void 0 : _d.type,
|
|
133
|
+
});
|
|
126
134
|
break;
|
|
127
135
|
case 'success':
|
|
128
136
|
combinedOptions.onSuccess({
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/src/index.ts"],"sourcesContent":[null],"names":["useRef","useEffect"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/src/index.ts"],"sourcesContent":[null],"names":["useRef","useEffect"],"mappings":";;;;;;AAwDA,MAAM,iBAAiB,GAAG,uBAAgC,CAAC;AAuB3D,MAAM,sBAAsB,GAAG,8BAA8B,CAAC;AAC9D,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AAE1D,MAAM,uBAAuB,GAAG,sBAAsB,CAAC;AAEvD,MAAM,gBAAgB,GAAG,CAAC,cAA8B,KAAI;AAC1D,IAAA,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC;AAE5C,IAAA,MAAM,WAAW,GAAG,CAAA,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,UAAU,KAAI,sBAAsB,CAAC;AACpE,IAAA,MAAM,YAAY,GAAG,CAAA,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,WAAW,KAAI,0BAA0B,CAAC;IAE1E,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAG,EAAA,WAAW,CAAY,UAAA,CAAA,CAAC,CAAC;IAEpD,IAAI,WAAW,IAAI,cAAc,EAAE;AACjC,QAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QAC/C,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAClD,QAAA,IAAI,QAAQ;AAAE,YAAA,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3E,KAAA;AAAM,SAAA;AACL,QAAA,MAAM,EACJ,QAAQ,EACR,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,OAAO,EACP,UAAU,EACV,YAAY,GACb,GAAG,cAAc,CAAC;AAEnB,QAAA,IAAI,QAAQ;YAAE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACjE,QAAA,IAAI,eAAe;YAAE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;AACtF,QAAA,IAAI,QAAQ;YAAE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAChE,QAAA,IAAI,UAAU;YAAE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AACvE,QAAA,IAAI,YAAY;YAAE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAC7E,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,QAAQ,KAAR,IAAA,IAAA,QAAQ,cAAR,QAAQ,GAAI,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,QAAA,IAAI,MAAM;AAAE,YAAA,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAClE,QAAA,IAAI,OAAO;AAAE,YAAA,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACtE,KAAA;IAED,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC/C,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;;AAE1D,IAAA,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAChD,IAAA,IAAI,KAAK;QAAE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;;IAEvD,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,cAAmB,CAAC,CAAC;IAEhE,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,MAAK;;AAElB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG;AACpB,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,MAAM,EAAE,GAAG;CACZ,CAAC;AAEF,MAAM,8BAA8B,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAC/B,aAAa,CAAA,EAAA,EAChB,QAAQ,EAAE,EAAE,EACZ,QAAQ,EAAE,IAAI,EACd,MAAM,EAAE,KAAK,EACb,eAAe,EAAE,IAAI,EACrB,QAAQ,EAAE,EAAE,EACZ,UAAU,EAAE,SAAS,EACrB,OAAO,EAAE,KAAK,GACf,CAAC;AAEF,MAAM,+BAA+B,mCAChC,aAAa,CAAA,EAAA,EAChB,SAAS,EAAE,EAAE,GACd,CAAC;AAEF,IAAI,4BAA4B,GAAG,KAAK,CAAC;AAE5B,MAAA,eAAe,GAAG,CAAC,OAAgC,KAAsB;AACpF,IAAA,IAAI,EAAE,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,UAAU,IAAI,OAAO,CAAC,EAAE;AACzD,QAAA,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;AAC7F,KAAA;AAED,IAAA,IAAI,WAAW,IAAI,OAAO,IAAI,UAAU,IAAI,OAAO,EAAE;AACnD,QAAA,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;AAC9F,KAAA;AAED,IAAA,MAAM,aAAa,GAAGA,YAAM,CAAC,KAAK,CAAC,CAAC;IAEpCC,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;AAC1B,YAAA,IAAI,4BAA4B,EAAE;AAChC,gBAAA,OAAO,CAAC,KAAK,CACX,6OAA6O,CAC9O,CAAC;AACH,aAAA;AAAM,iBAAA;gBACL,4BAA4B,GAAG,IAAI,CAAC;AACrC,aAAA;AAED,YAAA,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;AAC9B,SAAA;KACF,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,MAAM,eAAe,GACnB,WAAW,IAAI,OAAO;UACnB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,+BAA+B,CAAA,EAAK,OAAO,CAAA,GACjD,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,8BAA8B,CAAA,EAAK,OAAO,CAAE,CAAC;AAExD,IAAA,MAAM,IAAI,GAAW,CAAC,SAAS,KAAI;AACjC,QAAA,MAAM,WAAW,GACZ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,eAAe,CACf,EAAA,SAAS,CACb,CAAC;AAEF,QAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,EAAE;YACrD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChD,YAAA,MAAM,CAAC,GAAG,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;AAC3C,YAAA,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC;AACzB,YAAA,MAAM,CAAC,EAAE,GAAG,uBAAuB,CAAC;AACpC,YAAA,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;AACpD,YAAA,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,YAAA,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;AAC5B,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;AACvB,YAAA,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,kBAAkB,CAAC;AAClD,YAAA,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,YAAA,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzC,SAAA;AACH,KAAC,CAAC;IAEF,MAAM,KAAK,GAAG,MAAK;;QACjB,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;AACvE,QAAA,IAAI,aAAa,EAAE;YACjB,CAAA,EAAA,GAAA,aAAa,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,CAAC,aAAa,CAAC,CAAC;YACrD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;AAC1C,SAAA;AACH,KAAC,CAAC;IAEFA,eAAS,CAAC,MAAK;QACb,SAAS,eAAe,CAAC,KAA8B,EAAA;;YACrD,MAAM,WAAW,GAAG,CAAA,CAAA,EAAA,GAAA,eAAe,CAAC,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,KAAI,sBAAsB,CAAC;YAEpF,IAAI,CAAC,KAAK,CAAC,IAAI;gBAAE,OAAO;AACxB,YAAA,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB;gBAAE,OAAO;YAClD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC;gBAAE,OAAO;AAElD,YAAA,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO;AAAE,gBAAA,KAAK,EAAE,CAAC;AAEzC,YAAA,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI;AACrB,gBAAA,KAAK,QAAQ;oBACX,eAAe,CAAC,OAAO,EAAE,CAAC;oBAC1B,MAAM;AACR,gBAAA,KAAK,OAAO;AACV,oBAAA,IAAI,MAAA,KAAK,CAAC,IAAI,CAAC,KAAK,0CAAE,WAAW;AAAE,wBAAA,KAAK,EAAE,CAAC;oBAE3C,eAAe,CAAC,OAAO,CAAC;wBACtB,YAAY,EAAE,MAAA,KAAK,CAAC,IAAI,CAAC,KAAK,0CAAE,OAAO;wBACvC,SAAS,EAAE,MAAA,KAAK,CAAC,IAAI,CAAC,KAAK,0CAAE,IAAI;AAClC,qBAAA,CAAC,CAAC;oBACH,MAAM;AACR,gBAAA,KAAK,SAAS;oBACZ,eAAe,CAAC,SAAS,CAAC;AACxB,wBAAA,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;AACrB,wBAAA,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;AACvB,wBAAA,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc;AAC1C,qBAAA,CAAC,CAAC;oBACH,MAAM;AACR,gBAAA,SAAS;;oBAEP,eAAe,CAAC,OAAO,CAAC;wBACtB,YAAY,EAAE,CAAgF,6EAAA,EAAA,IAAI,CAAC,SAAS,CAC1G,KAAK,CAAC,IAAI,CACX,CAAE,CAAA;AACJ,qBAAA,CAAC,CAAC;AACJ,iBAAA;AACF,aAAA;SACF;AAED,QAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;AACpD,QAAA,OAAO,MAAK;AACV,YAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YACvD,4BAA4B,GAAG,KAAK,CAAC;AACvC,SAAC,CAAC;AACJ,KAAC,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;IAElF,OAAO;QACL,IAAI;KACL,CAAC;AACJ;;;;"}
|
package/example/src/App.tsx
CHANGED
|
@@ -14,44 +14,31 @@ const App = () => {
|
|
|
14
14
|
const onClose = () => setResult({ kind: 'closed' });
|
|
15
15
|
|
|
16
16
|
const { open } = useFinchConnect({
|
|
17
|
-
clientId: '
|
|
18
|
-
products: [
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
'payment',
|
|
24
|
-
'pay_statement',
|
|
25
|
-
'benefits',
|
|
26
|
-
],
|
|
27
|
-
payrollProvider: 'gusto',
|
|
28
|
-
state: '',
|
|
17
|
+
clientId: '<your-client-id>',
|
|
18
|
+
products: ['company', 'directory', 'individual', 'employment'],
|
|
19
|
+
// For 'sandbox`, omit or use 'false' if in production. Use "finch" or "provider" for sandbox testing, depending on test plan. See Finch's [documentation](https://developer.tryfinch.com/implementation-guide/Test/Testing-Plan) for an overview of Finch and Provider sandboxes.
|
|
20
|
+
// sandbox: false,
|
|
21
|
+
// payrollProvider: '<payroll-provider-id>',
|
|
22
|
+
//connectionId: '<connection-id>', // Used for reauth of an existing connection
|
|
29
23
|
onSuccess,
|
|
30
24
|
onError,
|
|
31
25
|
onClose,
|
|
32
26
|
});
|
|
33
27
|
|
|
34
|
-
const submissionHandler: React.FormEventHandler<HTMLFormElement>
|
|
28
|
+
const submissionHandler: React.FormEventHandler<HTMLFormElement> = (e) => {
|
|
35
29
|
e.preventDefault();
|
|
36
30
|
open({
|
|
37
31
|
...(sendState ? { state: new Date().toISOString() } : undefined),
|
|
38
|
-
})
|
|
32
|
+
})
|
|
39
33
|
};
|
|
40
34
|
|
|
41
35
|
return (
|
|
42
36
|
<div className="container">
|
|
43
|
-
<h2>
|
|
44
|
-
<a href="https://www.npmjs.com/package/@tryfinch/react-connect">@tryfinch/react-connect</a>{' '}
|
|
45
|
-
Example App
|
|
46
|
-
</h2>
|
|
37
|
+
<h2><a href="https://www.npmjs.com/package/@tryfinch/react-connect">@tryfinch/react-connect</a> Example App</h2>
|
|
47
38
|
<form className="actions" onSubmit={submissionHandler}>
|
|
48
39
|
<div className="row">
|
|
49
40
|
<label className="top-label">Include State:</label>
|
|
50
|
-
<input
|
|
51
|
-
type="checkbox"
|
|
52
|
-
checked={sendState}
|
|
53
|
-
onChange={() => setSendState((prev) => !prev)}
|
|
54
|
-
/>
|
|
41
|
+
<input type="checkbox" checked={sendState} onChange={() => setSendState(prev => !prev)} />
|
|
55
42
|
</div>
|
|
56
43
|
<div className="row">
|
|
57
44
|
<button className="cta" type="submit">
|
|
@@ -60,10 +47,8 @@ const App = () => {
|
|
|
60
47
|
</div>
|
|
61
48
|
</form>
|
|
62
49
|
<div className="results">
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
)}
|
|
66
|
-
{result && <Result result={result} />}
|
|
50
|
+
{ !result && <p>Complete a Finch Connect session and the success event will be displayed here</p> }
|
|
51
|
+
{ result && <Result result={result} /> }
|
|
67
52
|
</div>
|
|
68
53
|
</div>
|
|
69
54
|
);
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -8,8 +8,11 @@ export type SuccessEvent = {
|
|
|
8
8
|
idpRedirectUri?: string;
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
+
type ErrorType = 'validation_error' | 'employer_connection_error';
|
|
12
|
+
|
|
11
13
|
export type ErrorEvent = {
|
|
12
14
|
errorMessage: string;
|
|
15
|
+
errorType?: ErrorType;
|
|
13
16
|
};
|
|
14
17
|
|
|
15
18
|
export type Sandbox =
|
|
@@ -43,6 +46,7 @@ type ConnectOptionsWithClientId = BaseConnectOptions & {
|
|
|
43
46
|
payrollProvider: string | null;
|
|
44
47
|
products: string[];
|
|
45
48
|
clientName?: string;
|
|
49
|
+
connectionId?: string;
|
|
46
50
|
sandbox: Sandbox;
|
|
47
51
|
};
|
|
48
52
|
|
|
@@ -50,7 +54,7 @@ export type ConnectOptions = ConnectOptionsWithSessionId | ConnectOptionsWithCli
|
|
|
50
54
|
|
|
51
55
|
type OpenFn = (overrides?: Partial<ConnectOptions>) => void;
|
|
52
56
|
|
|
53
|
-
const POST_MESSAGE_NAME = 'finch-auth-message' as const;
|
|
57
|
+
const POST_MESSAGE_NAME = 'finch-auth-message-v2' as const;
|
|
54
58
|
|
|
55
59
|
type FinchConnectAuthMessage = { name: typeof POST_MESSAGE_NAME } & (
|
|
56
60
|
| {
|
|
@@ -64,7 +68,7 @@ type FinchConnectAuthMessage = { name: typeof POST_MESSAGE_NAME } & (
|
|
|
64
68
|
}
|
|
65
69
|
| {
|
|
66
70
|
kind: 'error';
|
|
67
|
-
error: string;
|
|
71
|
+
error: { shouldClose: boolean; message: string; type: ErrorType };
|
|
68
72
|
}
|
|
69
73
|
);
|
|
70
74
|
|
|
@@ -77,7 +81,6 @@ const BASE_FINCH_CONNECT_URI = 'https://connect.tryfinch.com';
|
|
|
77
81
|
const DEFAULT_FINCH_REDIRECT_URI = 'https://tryfinch.com';
|
|
78
82
|
|
|
79
83
|
const FINCH_CONNECT_IFRAME_ID = 'finch-connect-iframe';
|
|
80
|
-
const FINCH_AUTH_MESSAGE_NAME = 'finch-auth-message';
|
|
81
84
|
|
|
82
85
|
const constructAuthUrl = (connectOptions: ConnectOptions) => {
|
|
83
86
|
const { state, apiConfig } = connectOptions;
|
|
@@ -100,12 +103,14 @@ const constructAuthUrl = (connectOptions: ConnectOptions) => {
|
|
|
100
103
|
manual,
|
|
101
104
|
sandbox,
|
|
102
105
|
clientName,
|
|
106
|
+
connectionId,
|
|
103
107
|
} = connectOptions;
|
|
104
108
|
|
|
105
109
|
if (clientId) authUrl.searchParams.append('client_id', clientId);
|
|
106
110
|
if (payrollProvider) authUrl.searchParams.append('payroll_provider', payrollProvider);
|
|
107
111
|
if (category) authUrl.searchParams.append('category', category);
|
|
108
112
|
if (clientName) authUrl.searchParams.append('client_name', clientName);
|
|
113
|
+
if (connectionId) authUrl.searchParams.append('connection_id', connectionId);
|
|
109
114
|
authUrl.searchParams.append('products', (products ?? []).join(' '));
|
|
110
115
|
if (manual) authUrl.searchParams.append('manual', String(manual));
|
|
111
116
|
if (sandbox) authUrl.searchParams.append('sandbox', String(sandbox));
|
|
@@ -219,17 +224,22 @@ export const useFinchConnect = (options: Partial<ConnectOptions>): { open: OpenF
|
|
|
219
224
|
const CONNECT_URL = combinedOptions.apiConfig?.connectUrl || BASE_FINCH_CONNECT_URI;
|
|
220
225
|
|
|
221
226
|
if (!event.data) return;
|
|
222
|
-
if (event.data.name !==
|
|
227
|
+
if (event.data.name !== POST_MESSAGE_NAME) return;
|
|
223
228
|
if (!event.origin.startsWith(CONNECT_URL)) return;
|
|
224
229
|
|
|
225
|
-
close();
|
|
230
|
+
if (event.data.kind !== 'error') close();
|
|
226
231
|
|
|
227
232
|
switch (event.data.kind) {
|
|
228
233
|
case 'closed':
|
|
229
234
|
combinedOptions.onClose();
|
|
230
235
|
break;
|
|
231
236
|
case 'error':
|
|
232
|
-
|
|
237
|
+
if (event.data.error?.shouldClose) close();
|
|
238
|
+
|
|
239
|
+
combinedOptions.onError({
|
|
240
|
+
errorMessage: event.data.error?.message,
|
|
241
|
+
errorType: event.data.error?.type,
|
|
242
|
+
});
|
|
233
243
|
break;
|
|
234
244
|
case 'success':
|
|
235
245
|
combinedOptions.onSuccess({
|