@tap-payments/auth-jsconnect 2.12.7-development → 2.12.7

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 CHANGED
@@ -20,12 +20,17 @@ yarn add @tap-payments/auth-jsconnect
20
20
 
21
21
  ## Features
22
22
 
23
- - [Connect](#Connect)
24
- - [Business](#Business)
25
- - [Password](#Password)
26
- - [Individual](#Individual)
27
- - [Bank](#Bank)
28
- - [Tax](#Tax)
23
+ - [Connect](#Connect) - Create a new account with Tap Payments
24
+ - [ConnectExpress](#ConnectExpress) - Simplified connect flow
25
+ - [Business](#Business) - Business entity onboarding and verification
26
+ - [Individual](#Individual) - Individual entity onboarding and verification
27
+ - [Entity](#Entity) - Entity management and verification
28
+ - [Password](#Password) - Password management and recovery
29
+ - [Bank](#Bank) - Bank account management
30
+ - [Tax](#Tax) - Tax information management
31
+ - [Terminal](#Terminal) - Terminal kit for point-of-sale operations
32
+ - [Auth](#Auth) - Authentication module
33
+ - [KYC](#KYC) - Know Your Customer verification
29
34
 
30
35
  ## Examples
31
36
 
@@ -135,17 +140,48 @@ const App = () => {
135
140
  ```
136
141
 
137
142
  ## Connect
138
- - Help our merchants to create a account with Tap Payments
143
+ - Help merchants create an account with Tap Payments
139
144
 
140
- ## Business
145
+ ## ConnectExpress
146
+ - Streamlined onboarding flow with simplified user experience
141
147
 
142
- ## Password
148
+ ## Business
149
+ - Business entity registration and verification
150
+ - License number validation
151
+ - Support for creating new sessions after expiry
143
152
 
144
153
  ## Individual
154
+ - Individual entity registration and verification
155
+ - Arabic name validation (English names only accepted)
156
+ - Support for creating new sessions after expiry
157
+
158
+ ## Entity
159
+ - Entity information management
160
+ - Frontend-editable fields even when non-editable from backend
161
+ - Entity verification workflows
162
+
163
+ ## Password
164
+ - Password management and recovery
165
+ - Session expiry handling with new session creation support
145
166
 
146
167
  ## Bank
168
+ - Bank account information management and verification
147
169
 
148
170
  ## Tax
171
+ - Tax identification and information management
172
+ - Support for creating new sessions after expiry
173
+ - UNN Collection logic improvements
174
+
175
+ ## Terminal
176
+ - Point-of-sale terminal operations
177
+ - Session expiry management with new session creation support
178
+ - Hotfix for improved session handling
179
+
180
+ ## Auth
181
+ - Core authentication module for the library
182
+
183
+ ## KYC
184
+ - Know Your Customer verification processes
149
185
 
150
186
  ```
151
187
 
@@ -164,4 +200,18 @@ const App = () => {
164
200
  | onFlowCompleted `required` - `function` | callback function will called after completing the flow |
165
201
  | onReady `required` - `function` | callback function will call after loading library configuration |
166
202
  | onStepError `required` - `function` | callback function will call in case if any error happened in the screen |
167
- | onStepStarted `required` - `function` | callback function will call in the begging of each step |
203
+ | onStepCompleted `optional` - `function` | callback function will call after completing each step |
204
+ | onStepStarted `required` - `function` | callback function will call in the beginning of each step |
205
+
206
+ ## Branch Information
207
+
208
+ This repository maintains multiple branches for different environments and stages:
209
+
210
+ | Branch | Purpose | Environment |
211
+ | ------------- | ------------------------------ | ----------- |
212
+ | `main` | Production releases | Production |
213
+ | `beta` | Beta features and testing | Beta |
214
+ | `sandbox` | Sandbox environment testing | Sandbox |
215
+ | `development` | Development features and fixes | Development |
216
+
217
+ **Workflow**: `development` → `sandbox` → `beta` → `main` (production)
@@ -10,5 +10,6 @@ declare const fileService: {
10
10
  uploadFile: (data: UploadFileBody, config?: AxiosRequestConfig) => Promise<import("axios").AxiosResponse<any, any, {}>>;
11
11
  uploadFileInfo: (data: UploadFileBody, config?: AxiosRequestConfig) => Promise<any>;
12
12
  downloadFile: (id: string, name: string, config?: AxiosRequestConfig) => Promise<import("axios").AxiosResponse<any, any, {}>>;
13
+ retrieveFileInfo: (fileId: string) => Promise<any>;
13
14
  };
14
15
  export { fileService };
package/build/api/file.js CHANGED
@@ -29,9 +29,17 @@ var downloadFile = function (id, name, config) {
29
29
  return response;
30
30
  });
31
31
  };
32
+ var retrieveFileInfo = function (fileId) {
33
+ return httpClient({
34
+ method: 'get',
35
+ url: "".concat(ENDPOINT_PATHS.FILES_PATH, "/content?fileId=").concat(fileId),
36
+ responseType: 'blob'
37
+ });
38
+ };
32
39
  var fileService = {
33
40
  uploadFile: uploadFile,
34
41
  uploadFileInfo: uploadFileInfo,
35
- downloadFile: downloadFile
42
+ downloadFile: downloadFile,
43
+ retrieveFileInfo: retrieveFileInfo
36
44
  };
37
45
  export { fileService };
@@ -157,6 +157,7 @@ declare const API: {
157
157
  uploadFile: (data: UploadFileBody, config?: import("axios").AxiosRequestConfig<any> | undefined) => Promise<import("axios").AxiosResponse<any, any, {}>>;
158
158
  uploadFileInfo: (data: UploadFileBody, config?: import("axios").AxiosRequestConfig<any> | undefined) => Promise<any>;
159
159
  downloadFile: (id: string, name: string, config?: import("axios").AxiosRequestConfig<any> | undefined) => Promise<import("axios").AxiosResponse<any, any, {}>>;
160
+ retrieveFileInfo: (fileId: string) => Promise<any>;
160
161
  };
161
162
  documentService: {
162
163
  updateDocumentInfo: (data: DocumentUpdateBody) => Promise<any>;
@@ -393,6 +393,7 @@
393
393
  "kyc_token_invalid": "May you please verify link of which you are trying to open.",
394
394
  "kyc_users_description": "Please select an authorized registered ID to approve with {{provider}}",
395
395
  "kyc_verification": "Know Your Customer (KYC)",
396
+ "kyc_privacy_policy": "Privacy Policy",
396
397
  "language": "العربية",
397
398
  "license_info": "License information",
398
399
  "license_name_hint": "Enter legal name",
@@ -33,7 +33,7 @@ var StyledTooltip = styled(function (_a) {
33
33
  var _b;
34
34
  var theme = _a.theme;
35
35
  return (_b = {},
36
- _b["& .".concat(tooltipClasses.tooltip)] = __assign(__assign({ color: alpha(theme.palette.text.primary, 0.5), width: 'fit-content', maxHeight: 'fit-content' }, theme.typography.body2), { fontWeight: theme.typography.fontWeightLight, backgroundColor: theme.palette.secondary.light, border: "1px solid ".concat(alpha(theme.palette.divider, 0.8)) }),
36
+ _b["& .".concat(tooltipClasses.tooltip)] = __assign(__assign({ color: alpha(theme.palette.text.primary, 0.5), width: 'fit-content', maxHeight: 'fit-content' }, theme.typography.body2), { fontWeight: theme.typography.fontWeightLight, backgroundColor: theme.palette.secondary.light, border: "1px solid ".concat(alpha(theme.palette.divider, 0.8)), zIndex: 2147483647 }),
37
37
  _b);
38
38
  });
39
39
  var TextStyled = styled(Text, { shouldForwardProp: function (prop) { return prop !== 'isAr'; } })(function (_a) {
@@ -14,6 +14,7 @@ export declare const ENDPOINT_PATHS: {
14
14
  PRODUCTION_BASE_URL_SA: string;
15
15
  PRODUCTION_BASE_URL_SA_DR: string;
16
16
  DEV_BASE_URL: string;
17
+ BETA_BASE_URL: string;
17
18
  BUSINESS_COUNTRIES: string;
18
19
  COUNTRIES: string;
19
20
  IP: string;
@@ -1,8 +1,9 @@
1
1
  var SANDBOX_BASE_URL = 'https://connect-mw.sandbox.tap.company/middleware';
2
2
  var PRODUCTION_BASE_URL = 'https://connect-mw.tap.company/middleware';
3
3
  var PRODUCTION_BASE_URL_SA = 'https://connect-mw.tap.com.sa/middleware';
4
- var PRODUCTION_BASE_URL_SA_DR = 'https://connect-mw.tap.com.sa/middleware';
4
+ var PRODUCTION_BASE_URL_SA_DR = 'https://connect-mw-tmp.tap.com.sa/middleware';
5
5
  var DEV_BASE_URL = 'https://connect-mw.dev.tap.company/middleware';
6
+ var BETA_BASE_URL = 'https://connect-mw.beta.tap.company/middleware';
6
7
  var API_BUSINESS_COUNTRIES = 'https://godata.sandbox.tap.company/api/v1/business/country/list';
7
8
  var API_COUNTRIES = 'https://utilities.tap.company/api/v1/country/list';
8
9
  var CURRENCY_PATH = 'https://utilities.tap.company/api/v1/currency/iso';
@@ -73,6 +74,7 @@ export var ENDPOINT_PATHS = {
73
74
  PRODUCTION_BASE_URL_SA: PRODUCTION_BASE_URL_SA,
74
75
  PRODUCTION_BASE_URL_SA_DR: PRODUCTION_BASE_URL_SA_DR,
75
76
  DEV_BASE_URL: DEV_BASE_URL,
77
+ BETA_BASE_URL: BETA_BASE_URL,
76
78
  BUSINESS_COUNTRIES: API_BUSINESS_COUNTRIES,
77
79
  COUNTRIES: API_COUNTRIES,
78
80
  IP: IP_PATH,
@@ -1,5 +1,7 @@
1
1
  import { ScreenStepNavigation, BusinessType, POSInfo, TerminalInfo } from '../@types';
2
2
  export declare const CONNECT_DEV_URL = "https://connect.dev.tap.company";
3
+ export declare const CONNECT_SANDBOX_URL = "https://connect.sandbox.tap.company";
4
+ export declare const CONNECT_BETA_URL = "https://connect.beta.tap.company";
3
5
  export declare const CONNECT_PROD_URL = "https://connect.tap.company";
4
6
  export declare const CLIENT_ORIGIN: string;
5
7
  export declare const TAP_WEBSITE = "https://www.tap.company/";
@@ -1,6 +1,8 @@
1
1
  import { BusinessType } from '../@types';
2
2
  import { CONNECT_FLOWS } from './flows';
3
3
  export var CONNECT_DEV_URL = 'https://connect.dev.tap.company';
4
+ export var CONNECT_SANDBOX_URL = 'https://connect.sandbox.tap.company';
5
+ export var CONNECT_BETA_URL = 'https://connect.beta.tap.company';
4
6
  export var CONNECT_PROD_URL = 'https://connect.tap.company';
5
7
  export var CLIENT_ORIGIN = window.location.origin;
6
8
  export var TAP_WEBSITE = 'https://www.tap.company/';
@@ -818,7 +818,7 @@ export var updateIndividualInfo = createAsyncThunk('updateIndividualInfo', funct
818
818
  documentsList.push({ type: DocumentPurpose.CUSTOMER_SIGNATURE, images: signatureFileId });
819
819
  if (!(documentsList.length > 0)) return [3, 6];
820
820
  documentBody = {
821
- individual_type_id: ((ids === null || ids === void 0 ? void 0 : ids.length) ? ids.find(function (i) { return i.includes('usr_'); }) : id) || '',
821
+ individual_type_id: ((ids === null || ids === void 0 ? void 0 : ids.length) ? ids[0] : id) || '',
822
822
  country: businessCountry.iso2,
823
823
  documents: documentsList
824
824
  };
@@ -1274,6 +1274,7 @@ export var individualSlice = createSlice({
1274
1274
  state.data.individualData.isAuthorized = is_authorized;
1275
1275
  })
1276
1276
  .addCase(retrieveIndividualInfo.rejected, function (state, action) {
1277
+ state.addOrRequestDetailLoading = false;
1277
1278
  state.error = action.error.message;
1278
1279
  })
1279
1280
  .addCase(getIndividualList.pending, function (state) {
@@ -40,6 +40,9 @@ export declare const linkNewTerminal: import("@reduxjs/toolkit").AsyncThunk<{
40
40
  export declare const retrievePOSDevices: import("@reduxjs/toolkit").AsyncThunk<{
41
41
  data: any;
42
42
  }, void, {}>;
43
+ export declare const retrieveTerminalPlatformBrandLogo: import("@reduxjs/toolkit").AsyncThunk<{
44
+ logo: string;
45
+ }, void, {}>;
43
46
  interface pushNotificationLinkNewTerminalParams {
44
47
  newTerminal: boolean;
45
48
  onSuccess: () => void;
@@ -51,7 +51,7 @@ import { handleCurrentActiveScreen, handlePublicKey, handleSetCountryByIso2, onC
51
51
  import { FlowsTypes } from '../../../@types';
52
52
  import { CONNECT_FLOWS, NAFATH_PACI_TIMEOUT_DURATION, SELECTED_POS_DEFAULT_INFO, SELECTED_TERMINAL_DEFAULT_INFO, TERMINAL_PUSH_NOTIFICATION_DURATION, TERMINAL_PUSH_NOTIFICATION_FAILED, TERMINAL_STEP_NAMES } from '../../../constants';
53
53
  import API, { setAuthSessionToGlobalHeaders } from '../../../api';
54
- import { isAuthenticationVerificationFailed, isNetworkError, isNoDataFoundError, isTimeoutError, retrieveIndividualData, sleep } from '../../../utils';
54
+ import { createImageObjectURL, isAuthenticationVerificationFailed, isNetworkError, isNoDataFoundError, isTimeoutError, retrieveIndividualData, sleep } from '../../../utils';
55
55
  export var verifyToken = createAsyncThunk('terminal/verifyLeadToken', function (_a, thunkApi) {
56
56
  var token = _a.token, isInternally = _a.isInternally;
57
57
  return __awaiter(void 0, void 0, void 0, function () {
@@ -262,6 +262,25 @@ export var retrievePOSDevices = createAsyncThunk('terminal/retrievePOSDevices',
262
262
  }
263
263
  });
264
264
  }); });
265
+ export var retrieveTerminalPlatformBrandLogo = createAsyncThunk('terminal/retrieveTerminalPlatformBrandLogo', function (_, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
266
+ var terminal, list, logoFileId, data, logo;
267
+ var _a, _b, _c, _d, _e, _f;
268
+ return __generator(this, function (_g) {
269
+ switch (_g.label) {
270
+ case 0:
271
+ terminal = thunkApi.getState().terminal;
272
+ list = (_c = (_b = (_a = terminal.data.responseData) === null || _a === void 0 ? void 0 : _a.terminalData) === null || _b === void 0 ? void 0 : _b.list) !== null && _c !== void 0 ? _c : [];
273
+ logoFileId = (_f = (_e = (_d = list === null || list === void 0 ? void 0 : list[0]) === null || _d === void 0 ? void 0 : _d.platform) === null || _e === void 0 ? void 0 : _e.brand) === null || _f === void 0 ? void 0 : _f.logo;
274
+ if (!logoFileId)
275
+ return [2, { logo: '' }];
276
+ return [4, API.fileService.retrieveFileInfo(logoFileId)];
277
+ case 1:
278
+ data = _g.sent();
279
+ logo = createImageObjectURL(data);
280
+ return [2, { logo: logo }];
281
+ }
282
+ });
283
+ }); });
265
284
  export var pushNotificationLinkNewTerminal = createAsyncThunk('terminal/pushNotificationLinkNewTerminal', function (_a, thunkApi) {
266
285
  var newTerminal = _a.newTerminal, onSuccess = _a.onSuccess, onFailure = _a.onFailure;
267
286
  return __awaiter(void 0, void 0, void 0, function () {
@@ -655,6 +674,20 @@ export var terminalSlice = createSlice({
655
674
  .addCase(retrievePOSDevices.pending, function (state) {
656
675
  state.posDevicesLoading = true;
657
676
  state.error = null;
677
+ })
678
+ .addCase(retrieveTerminalPlatformBrandLogo.pending, function (state) {
679
+ state.error = null;
680
+ })
681
+ .addCase(retrieveTerminalPlatformBrandLogo.fulfilled, function (state, action) {
682
+ var _a;
683
+ state.error = null;
684
+ var prevLogo = (_a = state.data.responseData) === null || _a === void 0 ? void 0 : _a.terminalPlatformBrandLogo;
685
+ if (prevLogo)
686
+ URL.revokeObjectURL(prevLogo);
687
+ state.data.responseData = __assign(__assign({}, state.data.responseData), { terminalPlatformBrandLogo: action.payload.logo });
688
+ })
689
+ .addCase(retrieveTerminalPlatformBrandLogo.rejected, function (state) {
690
+ state.error = null;
658
691
  })
659
692
  .addCase(retrieveTerminalList.pending, function (state) {
660
693
  state.error = null;
@@ -42,14 +42,15 @@ var redirect = function (link) {
42
42
  window.open(link, '_blank');
43
43
  };
44
44
  export var Terms = function () {
45
- var _a, _b, _c;
45
+ var _a, _b, _c, _d, _e;
46
46
  var st = useSanitizedTranslation();
47
47
  var isAr = useLanguage().isAr;
48
48
  var dispatch = useAppDispatch();
49
49
  var settingsData = useAppSelector(settingsSelector).data;
50
- var _d = useAppSelector(kycSelector), loading = _d.loading, error = _d.error, data = _d.data;
51
- var hasOneUserOnly = ((_b = (_a = data.responseData) === null || _a === void 0 ? void 0 : _a.userList) === null || _b === void 0 ? void 0 : _b.length) === 1;
52
- var user = hasOneUserOnly ? (_c = data.responseData) === null || _c === void 0 ? void 0 : _c.userList[0] : undefined;
50
+ var _f = useAppSelector(kycSelector), loading = _f.loading, error = _f.error, data = _f.data;
51
+ var hasUsers = (_b = (_a = data.responseData) === null || _a === void 0 ? void 0 : _a.userList) === null || _b === void 0 ? void 0 : _b.length;
52
+ var hasOneUserOnly = ((_d = (_c = data.responseData) === null || _c === void 0 ? void 0 : _c.userList) === null || _d === void 0 ? void 0 : _d.length) === 1;
53
+ var user = hasOneUserOnly ? (_e = data.responseData) === null || _e === void 0 ? void 0 : _e.userList[0] : undefined;
53
54
  var idNumber = user ? maskIDNumber(user.identification.id) : '';
54
55
  var countryCode = settingsData.businessCountry.iso2.toLowerCase();
55
56
  var termsAndConditionsLink = getWebsiteLink(isAr, countryCode, EXTERNAL_LINKS.TERMS_CONDITIONS);
@@ -82,6 +83,6 @@ export var Terms = function () {
82
83
  return st('continue');
83
84
  return isSACountry ? st('approve_with_nafath_app') : st('approve_with_paci_app');
84
85
  };
85
- return (_jsxs(ScreenContainer, { children: [_jsx(Header, { idNumber: idNumber }), _jsx(BoxStyled, __assign({ onClick: function () { return redirect(termsAndConditionsLink); } }, { children: st('kyc_terms_conditions') })), _jsx(BoxStyled, __assign({ onClick: function () { return redirect(termsAndConditionsLink); } }, { children: st('kyc_refund_policy') })), _jsx(BoxStyled, __assign({ onClick: function () { return redirect(termsAndConditionsLink); } }, { children: st('kyc_dispute_policy') })), _jsx(BoxStyled, __assign({ onClick: function () { return redirect(privacyPolicyLink); }, sx: { mb: error ? 3 : 0 } }, { children: st('kyc_privacy_policy') })), _jsx(Button, __assign({ disabled: isOtherThanKWOrSACountry, sx: { mt: 3 }, disableBack: true, isAr: isAr, loading: loading, error: st(error || ''), onClick: onNext }, { children: getNextButtonTitle() }))] }));
86
+ return (_jsxs(ScreenContainer, { children: [_jsx(Header, { idNumber: idNumber }), _jsx(BoxStyled, __assign({ onClick: function () { return redirect(termsAndConditionsLink); } }, { children: st('kyc_terms_conditions') })), _jsx(BoxStyled, __assign({ onClick: function () { return redirect(termsAndConditionsLink); } }, { children: st('kyc_refund_policy') })), _jsx(BoxStyled, __assign({ onClick: function () { return redirect(termsAndConditionsLink); } }, { children: st('kyc_dispute_policy') })), _jsx(BoxStyled, __assign({ onClick: function () { return redirect(privacyPolicyLink); }, sx: { mb: error ? 3 : 0 } }, { children: st('kyc_privacy_policy') })), _jsx(Button, __assign({ disabled: isOtherThanKWOrSACountry ? true : !hasUsers, sx: { mt: 3 }, disableBack: true, isAr: isAr, loading: loading, error: st(error || ''), onClick: onNext }, { children: getNextButtonTitle() }))] }));
86
87
  };
87
88
  export default memo(Terms);
@@ -56,7 +56,7 @@ import Button from '../../../../components/Button';
56
56
  import Loader from '../../../../components/Loader';
57
57
  import Warning from '../../../../components/Warning';
58
58
  import Box from '@mui/material/Box';
59
- import { clearError, resetTerminalLinkResponse, retrieveBoardDetails, retrieveBoardStatus, retrievePOSDevices, storeSelectedTerminal, terminalSelector } from '../../../app/terminal/terminalStore';
59
+ import { clearError, resetTerminalLinkResponse, retrieveBoardDetails, retrieveBoardStatus, retrievePOSDevices, retrieveTerminalPlatformBrandLogo, storeSelectedTerminal, terminalSelector } from '../../../app/terminal/terminalStore';
60
60
  import { Header, Container, TextTypography } from '../shared';
61
61
  import DeviceList from './DeviceList';
62
62
  var TerminalDeviceList = function () {
@@ -100,6 +100,7 @@ var TerminalDeviceList = function () {
100
100
  _a.label = 1;
101
101
  case 1:
102
102
  _a.trys.push([1, 3, , 4]);
103
+ dispatch(retrieveTerminalPlatformBrandLogo());
103
104
  return [4, dispatch(retrievePOSDevices()).unwrap()];
104
105
  case 2:
105
106
  _a.sent();
@@ -9,14 +9,14 @@ import { useAppSelector } from '../../../../hooks';
9
9
  import { terminalSelector } from '../../../../features/app/terminal/terminalStore';
10
10
  import { useTheme } from '@mui/material/styles';
11
11
  var POSDeviceList = function (_a) {
12
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
13
- var posDevices = _a.posDevices, onClick = _a.onClick, selectedPOS = _a.selectedPOS, _m = _a.select, select = _m === void 0 ? true : _m, loading = _a.loading;
12
+ var _b, _c, _d, _e, _f, _g;
13
+ var posDevices = _a.posDevices, onClick = _a.onClick, selectedPOS = _a.selectedPOS, _h = _a.select, select = _h === void 0 ? true : _h, loading = _a.loading;
14
14
  var t = useTranslation().t;
15
15
  var typography = useTheme().typography;
16
16
  var responseData = useAppSelector(terminalSelector).data.responseData;
17
- var terminalData = (responseData || {}).terminalData;
18
- var platformImage = ((_e = (_d = (_c = (_b = terminalData === null || terminalData === void 0 ? void 0 : terminalData.list) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.platform) === null || _d === void 0 ? void 0 : _d.brand) === null || _e === void 0 ? void 0 : _e.logo) || ICONS_NAMES.platform_image;
19
- var platformName = (_l = (_k = (_j = (_h = (_g = (_f = terminalData === null || terminalData === void 0 ? void 0 : terminalData.list) === null || _f === void 0 ? void 0 : _f[0]) === null || _g === void 0 ? void 0 : _g.platform) === null || _h === void 0 ? void 0 : _h.brand) === null || _j === void 0 ? void 0 : _j.name) === null || _k === void 0 ? void 0 : _k[0]) === null || _l === void 0 ? void 0 : _l.text;
17
+ var _j = responseData || {}, terminalData = _j.terminalData, terminalPlatformBrandLogo = _j.terminalPlatformBrandLogo;
18
+ var platformImage = terminalPlatformBrandLogo || ICONS_NAMES.platform_image;
19
+ var platformName = (_g = (_f = (_e = (_d = (_c = (_b = terminalData === null || terminalData === void 0 ? void 0 : terminalData.list) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.platform) === null || _d === void 0 ? void 0 : _d.brand) === null || _e === void 0 ? void 0 : _e.name) === null || _f === void 0 ? void 0 : _f[0]) === null || _g === void 0 ? void 0 : _g.text;
20
20
  var getEndComponent = function (pos) {
21
21
  if (loading && (selectedPOS === null || selectedPOS === void 0 ? void 0 : selectedPOS.id) === (pos === null || pos === void 0 ? void 0 : pos.id))
22
22
  return _jsx(Loader, { innerColor: 'black', outerColor: 'black', size: 10, style: { height: 24, width: 24 }, toggleAnimation: !!loading });
@@ -1,5 +1,5 @@
1
1
  import { axiosInstance } from '../api';
2
- import { ENDPOINT_PATHS, CONNECT_DEV_URL, CONNECT_PROD_URL } from '../constants';
2
+ import { ENDPOINT_PATHS, CONNECT_SANDBOX_URL, CONNECT_PROD_URL } from '../constants';
3
3
  import { objectHasValues } from './object';
4
4
  import { isDisasterRecoveryEnv, isSA } from './string';
5
5
  export var sleep = function (milliseconds) {
@@ -17,7 +17,7 @@ export var setBaseUrl = function (publicKey, region) {
17
17
  var isProd = publicKey.includes('pk_live');
18
18
  var _a = region.split('-'), country = _a[0], envType = _a[1];
19
19
  if (!isProd) {
20
- axiosInstance.defaults.baseURL = ENDPOINT_PATHS.DEV_BASE_URL;
20
+ axiosInstance.defaults.baseURL = ENDPOINT_PATHS.SANDBOX_BASE_URL;
21
21
  return;
22
22
  }
23
23
  if (isSA(country)) {
@@ -44,7 +44,7 @@ export var updateLocationUrlWithCountry = function (countryIso2) {
44
44
  window.history.replaceState({}, '', newUrl);
45
45
  };
46
46
  export var openConnect = function (pk, countryCode) {
47
- var newUrl = new URL(pk.includes('pk_live') ? CONNECT_PROD_URL : CONNECT_DEV_URL);
47
+ var newUrl = new URL(pk.includes('pk_live') ? CONNECT_PROD_URL : CONNECT_SANDBOX_URL);
48
48
  if (countryCode) {
49
49
  newUrl.pathname = "/".concat(countryCode.toLowerCase());
50
50
  }
@@ -0,0 +1 @@
1
+ export declare const createImageObjectURL: (blob: Blob) => string;
@@ -0,0 +1,6 @@
1
+ export var createImageObjectURL = function (blob) {
2
+ var _a;
3
+ if (!(blob === null || blob === void 0 ? void 0 : blob.size) || !((_a = blob === null || blob === void 0 ? void 0 : blob.type) === null || _a === void 0 ? void 0 : _a.startsWith('image/')))
4
+ return '';
5
+ return URL.createObjectURL(blob);
6
+ };
@@ -8,6 +8,7 @@ export * from './string';
8
8
  export * from './device';
9
9
  export * from './rsa';
10
10
  export * from './common';
11
+ export * from './file';
11
12
  export * from './date';
12
13
  export * from './error';
13
14
  export * from './gtm';
@@ -8,6 +8,7 @@ export * from './string';
8
8
  export * from './device';
9
9
  export * from './rsa';
10
10
  export * from './common';
11
+ export * from './file';
11
12
  export * from './date';
12
13
  export * from './error';
13
14
  export * from './gtm';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tap-payments/auth-jsconnect",
3
- "version": "2.12.7-development",
3
+ "version": "2.12.7",
4
4
  "description": "connect library, auth",
5
5
  "private": false,
6
6
  "main": "build/index.js",
@@ -21,7 +21,7 @@
21
21
  "copy:files": "copyfiles -u 1 src/**/*.css build/",
22
22
  "tsc:alias": "tsc-alias -p tsconfig.json",
23
23
  "ts:build": "rm -rf build && tsc -p tsconfig.json && tsc-alias -p tsconfig.json && yarn copy:files",
24
- "push": "npm publish --access public --tag development"
24
+ "push": "npm publish --access public"
25
25
  },
26
26
  "keywords": [],
27
27
  "author": {