@tap-payments/auth-jsconnect 2.0.57-test → 2.0.58-test

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.
@@ -84,6 +84,7 @@ export interface BusinessData {
84
84
  nidData: NIDFormValues & ResponseData & {
85
85
  type: string;
86
86
  };
87
+ civilIdData: CivilFormValues & ResponseData;
87
88
  businessTypeData: BusinessTypeFormValues & ResponseData;
88
89
  activitiesData: ActivitiesFormValues & ResponseData;
89
90
  customersData: CustomersFormValues & ResponseData;
@@ -620,6 +620,9 @@ var initialState = {
620
620
  otp: '',
621
621
  isNID: false
622
622
  },
623
+ civilIdData: {
624
+ civilId: ''
625
+ },
623
626
  nidData: {
624
627
  nid: '',
625
628
  dob: getEighteenYearsAgo(),
@@ -102,11 +102,12 @@ export declare const connectSlice: import("@reduxjs/toolkit").Slice<ConnectState
102
102
  stopLoader: (state: ConnectState) => void;
103
103
  resetMobileScreen: (state: ConnectState) => void;
104
104
  resetNIDScreen: (state: ConnectState) => void;
105
+ resetCivilScreen: (state: ConnectState) => void;
105
106
  resetOTPScreen: (state: ConnectState) => void;
106
107
  resetIndividualScreen: (state: ConnectState) => void;
107
108
  resetMerchantScreen: (state: ConnectState) => void;
108
109
  }, "connect/store">;
109
- export declare const clearError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, stopLoader: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetMobileScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetOTPScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetIndividualScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetMerchantScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetNIDScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
110
+ export declare const clearError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, stopLoader: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetMobileScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetOTPScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetIndividualScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetMerchantScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetNIDScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetCivilScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
110
111
  declare const _default: import("redux").Reducer<ConnectState, import("redux").AnyAction>;
111
112
  export default _default;
112
113
  export declare const connectSelector: (state: RootState) => ConnectState;
@@ -274,16 +274,16 @@ export var verifyPACI = createAsyncThunk('verifyPACI', function (params, thunkAp
274
274
  _a = thunkApi.getState(), settings = _a.settings, connect = _a.connect;
275
275
  responseBody = connect.data.civilIdData.responseBody;
276
276
  expiry = (responseBody === null || responseBody === void 0 ? void 0 : responseBody.expiry) || 120;
277
- interval = 5;
277
+ interval = 3;
278
278
  maxCalls = Math.floor(expiry / interval);
279
279
  response = null;
280
- if (thunkApi.signal.aborted) {
281
- return [2, { response: null }];
282
- }
283
280
  count = 1;
284
281
  _f.label = 1;
285
282
  case 1:
286
283
  if (!(count <= maxCalls)) return [3, 7];
284
+ if (thunkApi.signal.aborted) {
285
+ return [3, 7];
286
+ }
287
287
  return [4, API.authService.getVerifyAuth(responseBody === null || responseBody === void 0 ? void 0 : responseBody.auth_token)];
288
288
  case 2:
289
289
  data = _f.sent();
@@ -608,8 +608,13 @@ export var connectSlice = createSlice({
608
608
  state.loading = false;
609
609
  },
610
610
  resetMobileScreen: function (state) {
611
+ state.data.mobileData = __assign(__assign({}, state.data.mobileData), initialState.data.mobileData);
611
612
  },
612
613
  resetNIDScreen: function (state) {
614
+ state.data.nidData = __assign(__assign({}, state.data.nidData), initialState.data.nidData);
615
+ },
616
+ resetCivilScreen: function (state) {
617
+ state.data.civilIdData = __assign(__assign({}, state.data.civilIdData), initialState.data.civilIdData);
613
618
  },
614
619
  resetOTPScreen: function (state) {
615
620
  state.data.otpData.otp = '';
@@ -951,6 +956,6 @@ export var connectSlice = createSlice({
951
956
  });
952
957
  }
953
958
  });
954
- export var clearError = (_a = connectSlice.actions, _a.clearError), stopLoader = _a.stopLoader, resetMobileScreen = _a.resetMobileScreen, resetOTPScreen = _a.resetOTPScreen, resetIndividualScreen = _a.resetIndividualScreen, resetMerchantScreen = _a.resetMerchantScreen, resetNIDScreen = _a.resetNIDScreen;
959
+ export var clearError = (_a = connectSlice.actions, _a.clearError), stopLoader = _a.stopLoader, resetMobileScreen = _a.resetMobileScreen, resetOTPScreen = _a.resetOTPScreen, resetIndividualScreen = _a.resetIndividualScreen, resetMerchantScreen = _a.resetMerchantScreen, resetNIDScreen = _a.resetNIDScreen, resetCivilScreen = _a.resetCivilScreen;
955
960
  export default connectSlice.reducer;
956
961
  export var connectSelector = function (state) { return state.connect; };
@@ -1,4 +1,4 @@
1
1
  import * as yup from 'yup';
2
2
  export var civilIDValidationSchema = yup.object().shape({
3
- civilId: yup.string().min(12, 'invalid_civil_id').required('invalid_civil_id')
3
+ civilId: yup.string().matches(/^\d+$/, 'invalid_civil_id').min(12, 'invalid_civil_id').required('invalid_civil_id')
4
4
  });
@@ -46,17 +46,16 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
46
46
  }
47
47
  };
48
48
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
49
+ import * as React from 'react';
49
50
  import Box from '@mui/material/Box/Box';
50
51
  import { styled } from '@mui/material/styles';
51
- import * as React from 'react';
52
52
  import { useTranslation } from 'react-i18next';
53
53
  import Text from '../../../../components/Text';
54
- import { connectSelector, verifyPACI as verifyPACIFun } from '../../../app/connect/connectStore';
54
+ import { businessSelector, verifyPACI as verifyPACIFun } from '../../../app/business/businessStore';
55
55
  import { handlePrevScreenStep } from '../../../../app/settings';
56
56
  import { ScreenContainer } from '../../../shared/Containers';
57
57
  import { MobileButton } from '../../../shared/Button';
58
58
  import { useAppDispatch, useAppSelector } from '../../../../hooks';
59
- import Icon from '../../../../components/Icon';
60
59
  import { mobileOS, sleep } from '../../../../utils';
61
60
  import VerifyPACILoading from './VerifyPACILoading';
62
61
  import VerifyPACISuccess from './VerifyPACISuccess';
@@ -89,17 +88,6 @@ var Container = styled(Box)(function (_a) {
89
88
  maxHeight: '300px'
90
89
  });
91
90
  });
92
- var IconStyled = styled(Icon)(function (_a) {
93
- var theme = _a.theme;
94
- return ({
95
- position: 'absolute',
96
- top: '50%',
97
- left: '50%',
98
- transform: 'translate(-50%, -50%)',
99
- width: 64,
100
- height: 64
101
- });
102
- });
103
91
  var BackButton = styled('button')(function (_a) {
104
92
  var theme = _a.theme;
105
93
  return ({
@@ -119,8 +107,9 @@ var BackButton = styled('button')(function (_a) {
119
107
  });
120
108
  var VerifyPACI = function () {
121
109
  var _a = React.useState(false), success = _a[0], setSuccess = _a[1];
110
+ var _b = React.useState(false), isReady = _b[0], setIsReady = _b[1];
122
111
  var dispatch = useAppDispatch();
123
- var data = useAppSelector(connectSelector).data;
112
+ var data = useAppSelector(businessSelector).data;
124
113
  var responseBody = data.civilIdData.responseBody;
125
114
  var t = useTranslation().t;
126
115
  var onSuccess = function () { return __awaiter(void 0, void 0, void 0, function () {
@@ -136,13 +125,20 @@ var VerifyPACI = function () {
136
125
  });
137
126
  }); };
138
127
  React.useEffect(function () {
139
- var promise = null;
140
- if (responseBody)
141
- promise = dispatch(verifyPACIFun({ onSuccess: onSuccess }));
128
+ if (responseBody) {
129
+ setIsReady(true);
130
+ }
131
+ }, [responseBody]);
132
+ React.useEffect(function () {
133
+ if (!isReady)
134
+ return;
135
+ var promise = dispatch(verifyPACIFun({ onSuccess: onSuccess }));
136
+ alert('promise');
142
137
  return function () {
143
138
  promise === null || promise === void 0 ? void 0 : promise.abort();
139
+ alert('abort');
144
140
  };
145
- }, [responseBody]);
141
+ }, [isReady]);
146
142
  var onRedirect = React.useCallback(function () {
147
143
  if (os === 'Android') {
148
144
  window.open(responseBody === null || responseBody === void 0 ? void 0 : responseBody.app_url_android, '_blank');
@@ -18,7 +18,7 @@ import { yupResolver } from '@hookform/resolvers/yup';
18
18
  import { civilIDValidationSchema } from './validation';
19
19
  import { useAppDispatch, useLanguage, useAppSelector } from '../../../../hooks';
20
20
  import { handlePrevScreenStep, settingsSelector } from '../../../../app/settings';
21
- import { clearError, connectSelector, createCivilIdAuth } from '../../../app/connect/connectStore';
21
+ import { clearError, connectSelector, createCivilIdAuth, resetMobileScreen } from '../../../app/connect/connectStore';
22
22
  import Form from '../../../../components/Form';
23
23
  import Button, { MobileButton } from '../../../shared/Button';
24
24
  import { ScreenContainer } from '../../../shared/Containers';
@@ -71,6 +71,7 @@ var CivilID = function (_a) {
71
71
  }, [methods.formState.isValid]);
72
72
  var onSubmit = function (data) {
73
73
  dispatch(createCivilIdAuth(data));
74
+ dispatch(resetMobileScreen());
74
75
  };
75
76
  var handleClearError = function () {
76
77
  if (error)
@@ -1,4 +1,4 @@
1
1
  import * as yup from 'yup';
2
2
  export var civilIDValidationSchema = yup.object().shape({
3
- civilId: yup.string().min(12, 'invalid_civil_id').required('invalid_civil_id')
3
+ civilId: yup.string().matches(/^\d+$/, 'invalid_civil_id').min(12, 'invalid_civil_id').required('invalid_civil_id')
4
4
  });
@@ -43,9 +43,10 @@ var Individual = function (_a) {
43
43
  var t = useTranslation().t;
44
44
  var isAr = useLanguage().isAr;
45
45
  var isAbsher = (_b = data.otpData) === null || _b === void 0 ? void 0 : _b.isAbsher;
46
+ var isMobile = data.mobileData.mobile;
46
47
  var individualData = data.individualData;
47
48
  var methods = useForm({
48
- resolver: yupResolver(isAbsher ? IndividualMobileValidation : IndividualValidation),
49
+ resolver: yupResolver(!isMobile ? IndividualMobileValidation : IndividualValidation),
49
50
  defaultValues: data.individualData,
50
51
  mode: 'onChange'
51
52
  });
@@ -83,6 +84,6 @@ var Individual = function (_a) {
83
84
  }, [(_c = data.individualData) === null || _c === void 0 ? void 0 : _c.responseBody]);
84
85
  var emailErrChecks = !methods.formState.isValid || !!methods.formState.errors.email || !!error;
85
86
  var disabled = emailErrChecks || emailChecking || !((_d = data.individualData.responseBody) === null || _d === void 0 ? void 0 : _d.is_available);
86
- return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(Name, { show: !listActive }), _jsx(MobileNumber, { show: isAbsher, onListOpen: function () { return handleMenuListClick(); }, onListClose: function () { return handleMenuListClick(); }, countries: countriesCode }), _jsx(Email, { show: !listActive, fetchingEmail: function (v) { return setEmailChecking(v); }, emailChecking: emailChecking }), _jsx(Collapse, __assign({ in: !listActive }, { children: _jsx(Button, __assign({ onBackClicked: function () { return onBack(); }, disabled: disabled, isAr: isAr, loading: loading, error: t(error || '') }, { children: t('next') })) }))] })) })) }));
87
+ return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(Name, { show: !listActive }), _jsx(MobileNumber, { show: !isMobile, onListOpen: function () { return handleMenuListClick(); }, onListClose: function () { return handleMenuListClick(); }, countries: countriesCode }), _jsx(Email, { show: !listActive, fetchingEmail: function (v) { return setEmailChecking(v); }, emailChecking: emailChecking }), _jsx(Collapse, __assign({ in: !listActive }, { children: _jsx(Button, __assign({ onBackClicked: function () { return onBack(); }, disabled: disabled, isAr: isAr, loading: loading, error: t(error || '') }, { children: t('next') })) }))] })) })) }));
87
88
  };
88
89
  export default React.memo(Individual);
@@ -22,7 +22,7 @@ import Button, { AbsherButton } from '../../../shared/Button';
22
22
  import { useAppDispatch, useAppSelector } from '../../../../hooks';
23
23
  import { handlePrevScreenStep, settingsSelector } from '../../../../app/settings';
24
24
  import ScreenContainer from '../../../shared/Containers/ScreenContainer';
25
- import { clearError, connectSelector, createMobileAuth } from '../../../app/connect/connectStore';
25
+ import { clearError, connectSelector, createMobileAuth, resetNIDScreen, resetCivilScreen } from '../../../app/connect/connectStore';
26
26
  import { useLanguage } from '../../../../hooks';
27
27
  import Divider from '@mui/material/Divider';
28
28
  import { isKW } from '../../../../utils';
@@ -99,6 +99,8 @@ var Mobile = function (_a) {
99
99
  }, [methods.formState.isValid]);
100
100
  var onSubmit = function (formData) {
101
101
  dispatch(createMobileAuth(formData));
102
+ dispatch(resetNIDScreen());
103
+ dispatch(resetCivilScreen());
102
104
  };
103
105
  var isKWCountry = React.useMemo(function () { var _a; return isKW((_a = settingsStore.data.businessCountry) === null || _a === void 0 ? void 0 : _a.iso2); }, [(_b = settingsStore.data.businessCountry) === null || _b === void 0 ? void 0 : _b.iso2]);
104
106
  var onBack = function () {
@@ -18,7 +18,7 @@ import { yupResolver } from '@hookform/resolvers/yup';
18
18
  import { NIDValidationSchema } from './validation';
19
19
  import { useAppDispatch, useLanguage, useAppSelector } from '../../../../hooks';
20
20
  import { handlePrevScreenStep, settingsSelector } from '../../../../app/settings';
21
- import { clearError, connectSelector, createNIDAuth } from '../../../app/connect/connectStore';
21
+ import { clearError, connectSelector, createNIDAuth, resetMobileScreen } from '../../../app/connect/connectStore';
22
22
  import Form from '../../../../components/Form';
23
23
  import Button, { MobileButton } from '../../../shared/Button';
24
24
  import { ScreenContainer } from '../../../shared/Containers';
@@ -73,6 +73,7 @@ var NID = function (_a) {
73
73
  }, [methods.formState.isValid]);
74
74
  var onSubmit = function (data) {
75
75
  dispatch(createNIDAuth(data));
76
+ dispatch(resetMobileScreen());
76
77
  };
77
78
  var handleCollapseOpenClose = function (flag) {
78
79
  setCollapse(flag);
@@ -46,9 +46,9 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
46
46
  }
47
47
  };
48
48
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
49
+ import * as React from 'react';
49
50
  import Box from '@mui/material/Box/Box';
50
51
  import { styled } from '@mui/material/styles';
51
- import * as React from 'react';
52
52
  import { useTranslation } from 'react-i18next';
53
53
  import Text from '../../../../components/Text';
54
54
  import { connectSelector, verifyPACI as verifyPACIFun } from '../../../app/connect/connectStore';
@@ -56,7 +56,6 @@ import { handlePrevScreenStep } from '../../../../app/settings';
56
56
  import { ScreenContainer } from '../../../shared/Containers';
57
57
  import { MobileButton } from '../../../shared/Button';
58
58
  import { useAppDispatch, useAppSelector } from '../../../../hooks';
59
- import Icon from '../../../../components/Icon';
60
59
  import { mobileOS, sleep } from '../../../../utils';
61
60
  import VerifyPACILoading from './VerifyPACILoading';
62
61
  import VerifyPACISuccess from './VerifyPACISuccess';
@@ -89,17 +88,6 @@ var Container = styled(Box)(function (_a) {
89
88
  maxHeight: '300px'
90
89
  });
91
90
  });
92
- var IconStyled = styled(Icon)(function (_a) {
93
- var theme = _a.theme;
94
- return ({
95
- position: 'absolute',
96
- top: '50%',
97
- left: '50%',
98
- transform: 'translate(-50%, -50%)',
99
- width: 64,
100
- height: 64
101
- });
102
- });
103
91
  var BackButton = styled('button')(function (_a) {
104
92
  var theme = _a.theme;
105
93
  return ({
@@ -119,6 +107,7 @@ var BackButton = styled('button')(function (_a) {
119
107
  });
120
108
  var VerifyPACI = function () {
121
109
  var _a = React.useState(false), success = _a[0], setSuccess = _a[1];
110
+ var _b = React.useState(false), isReady = _b[0], setIsReady = _b[1];
122
111
  var dispatch = useAppDispatch();
123
112
  var data = useAppSelector(connectSelector).data;
124
113
  var responseBody = data.civilIdData.responseBody;
@@ -136,13 +125,18 @@ var VerifyPACI = function () {
136
125
  });
137
126
  }); };
138
127
  React.useEffect(function () {
139
- var promise = null;
140
- if (responseBody)
141
- promise = dispatch(verifyPACIFun({ onSuccess: onSuccess }));
128
+ if (responseBody) {
129
+ setIsReady(true);
130
+ }
131
+ }, [responseBody]);
132
+ React.useEffect(function () {
133
+ if (!isReady)
134
+ return;
135
+ var promise = dispatch(verifyPACIFun({ onSuccess: onSuccess }));
142
136
  return function () {
143
137
  promise === null || promise === void 0 ? void 0 : promise.abort();
144
138
  };
145
- }, [responseBody]);
139
+ }, [isReady]);
146
140
  var onRedirect = React.useCallback(function () {
147
141
  if (os === 'Android') {
148
142
  window.open(responseBody === null || responseBody === void 0 ? void 0 : responseBody.app_url_android, '_blank');
package/package.json CHANGED
@@ -1,129 +1,129 @@
1
- {
2
- "name": "@tap-payments/auth-jsconnect",
3
- "version": "2.0.57-test",
4
- "description": "connect library, auth",
5
- "private": false,
6
- "main": "build/index.js",
7
- "module": "build/index.js",
8
- "types": "build/index.d.ts",
9
- "files": [
10
- "build",
11
- "README.md"
12
- ],
13
- "scripts": {
14
- "husky:setup": "npx husky install",
15
- "prettier": "prettier --list-different \"src/**/*.{md,mdx,ts,js,tsx,jsx,json}\" *.json *.js",
16
- "prettier:fix": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json,md,css,json}\" *.json *.js",
17
- "lint": "eslint src --color --ext .js,.jsx,.ts,.tsx,.json",
18
- "lint:fix": "eslint src --ext .js,.jsx,.ts,.tsx --fix",
19
- "start": "cross-env NODE_ENV=development webpack serve",
20
- "build": "rm -rf build && cross-env NODE_ENV=production webpack",
21
- "copy:files": "copyfiles -u 1 src/**/*.css build/",
22
- "tsc:alias": "tsc-alias -p tsconfig.json",
23
- "ts:build": "rm -rf build && tsc -p tsconfig.json && tsc-alias -p tsconfig.json && yarn copy:files",
24
- "push": "npm publish --access public"
25
- },
26
- "keywords": [],
27
- "author": {
28
- "name": "Ahmed Elsharkawy",
29
- "email": "a.elsharkawy@tap.company"
30
- },
31
- "license": "ISC",
32
- "devDependencies": {
33
- "@babel/core": "^7.18.6",
34
- "@babel/preset-env": "^7.18.6",
35
- "@babel/preset-react": "^7.18.6",
36
- "@babel/preset-typescript": "^7.18.6",
37
- "@types/lodash-es": "^4.17.6",
38
- "@types/moment-hijri": "^2.1.0",
39
- "@types/react": "^18.0.15",
40
- "@types/react-calendar": "~3.5.1",
41
- "@types/react-dom": "^18.0.6",
42
- "@typescript-eslint/eslint-plugin": "^5.30.5",
43
- "@typescript-eslint/parser": "^5.30.5",
44
- "babel-loader": "^8.2.5",
45
- "copyfiles": "^2.4.1",
46
- "cross-env": "^7.0.3",
47
- "css-loader": "^6.7.1",
48
- "css-minimizer-webpack-plugin": "^4.0.0",
49
- "eslint": "^8.19.0",
50
- "eslint-config-airbnb": "^19.0.4",
51
- "eslint-config-prettier": "^8.5.0",
52
- "eslint-plugin-import": "^2.26.0",
53
- "eslint-plugin-jsx-a11y": "^6.6.0",
54
- "eslint-plugin-node": "^11.1.0",
55
- "eslint-plugin-prettier": "^4.2.1",
56
- "eslint-plugin-react": "^7.30.1",
57
- "eslint-plugin-react-hooks": "^4.6.0",
58
- "file-loader": "^6.2.0",
59
- "fork-ts-checker-webpack-plugin": "^7.2.12",
60
- "html-loader": "^3.1.2",
61
- "html-webpack-plugin": "^5.5.0",
62
- "husky": "^8.0.1",
63
- "lint-staged": "^13.0.3",
64
- "mini-css-extract-plugin": "^2.6.1",
65
- "prettier": "^2.7.1",
66
- "sass": "^1.53.0",
67
- "sass-loader": "^13.0.2",
68
- "style-loader": "^3.3.1",
69
- "terser-webpack-plugin": "^5.3.3",
70
- "tsc-alias": "^1.6.11",
71
- "typescript": "^4.7.4",
72
- "webpack": "^5.73.0",
73
- "webpack-cli": "^4.10.0",
74
- "webpack-dev-server": "^4.9.3",
75
- "webpack-merge": "^5.8.0"
76
- },
77
- "dependencies": {
78
- "@emotion/react": "^11.9.3",
79
- "@emotion/styled": "^11.9.3",
80
- "@fingerprintjs/fingerprintjs": "~3.3.4",
81
- "@hookform/resolvers": "^2.9.6",
82
- "@mui/icons-material": "^5.8.4",
83
- "@mui/material": "^5.8.7",
84
- "@reduxjs/toolkit": "^1.8.3",
85
- "axios": "^0.27.2",
86
- "device-detector-js": "^3.0.3",
87
- "i18next": "^21.8.14",
88
- "i18next-browser-languagedetector": "^6.1.4",
89
- "i18next-http-backend": "^1.4.1",
90
- "jsencrypt": "^2.3.1",
91
- "lodash-es": "^4.17.21",
92
- "lottie-web": "^5.9.6",
93
- "moment-hijri": "~2.1.2",
94
- "react": "^18.2.0",
95
- "react-calendar": "~3.7.0",
96
- "react-device-detect": "^2.2.2",
97
- "react-dom": "^18.2.0",
98
- "react-dropzone": "^14.2.2",
99
- "react-hook-form": "^7.33.1",
100
- "react-i18next": "^11.18.1",
101
- "react-otp-input": "^2.4.0",
102
- "react-redux": "^8.0.2",
103
- "react-spring-bottom-sheet": "^3.4.1",
104
- "yup": "^0.32.11"
105
- },
106
- "peerDependencies": {
107
- "react": "^18.2.0",
108
- "react-dom": "^18.2.0"
109
- },
110
- "lint-staged": {
111
- "src/**/*.{ts,tsx,json,js,jsx}": [
112
- "yarn run prettier:fix",
113
- "yarn run lint",
114
- "git add ."
115
- ]
116
- },
117
- "browserslist": {
118
- "production": [
119
- ">0.2%",
120
- "not dead",
121
- "not op_mini all"
122
- ],
123
- "development": [
124
- "last 1 chrome version",
125
- "last 1 firefox version",
126
- "last 1 safari version"
127
- ]
128
- }
129
- }
1
+ {
2
+ "name": "@tap-payments/auth-jsconnect",
3
+ "version": "2.0.58-test",
4
+ "description": "connect library, auth",
5
+ "private": false,
6
+ "main": "build/index.js",
7
+ "module": "build/index.js",
8
+ "types": "build/index.d.ts",
9
+ "files": [
10
+ "build",
11
+ "README.md"
12
+ ],
13
+ "scripts": {
14
+ "husky:setup": "npx husky install",
15
+ "prettier": "prettier --list-different \"src/**/*.{md,mdx,ts,js,tsx,jsx,json}\" *.json *.js",
16
+ "prettier:fix": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json,md,css,json}\" *.json *.js",
17
+ "lint": "eslint src --color --ext .js,.jsx,.ts,.tsx,.json",
18
+ "lint:fix": "eslint src --ext .js,.jsx,.ts,.tsx --fix",
19
+ "start": "cross-env NODE_ENV=development webpack serve",
20
+ "build": "rm -rf build && cross-env NODE_ENV=production webpack",
21
+ "copy:files": "copyfiles -u 1 src/**/*.css build/",
22
+ "tsc:alias": "tsc-alias -p tsconfig.json",
23
+ "ts:build": "rm -rf build && tsc -p tsconfig.json && tsc-alias -p tsconfig.json && yarn copy:files",
24
+ "push": "npm publish --access public"
25
+ },
26
+ "keywords": [],
27
+ "author": {
28
+ "name": "Ahmed Elsharkawy",
29
+ "email": "a.elsharkawy@tap.company"
30
+ },
31
+ "license": "ISC",
32
+ "devDependencies": {
33
+ "@babel/core": "^7.18.6",
34
+ "@babel/preset-env": "^7.18.6",
35
+ "@babel/preset-react": "^7.18.6",
36
+ "@babel/preset-typescript": "^7.18.6",
37
+ "@types/lodash-es": "^4.17.6",
38
+ "@types/moment-hijri": "^2.1.0",
39
+ "@types/react": "^18.0.15",
40
+ "@types/react-calendar": "~3.5.1",
41
+ "@types/react-dom": "^18.0.6",
42
+ "@typescript-eslint/eslint-plugin": "^5.30.5",
43
+ "@typescript-eslint/parser": "^5.30.5",
44
+ "babel-loader": "^8.2.5",
45
+ "copyfiles": "^2.4.1",
46
+ "cross-env": "^7.0.3",
47
+ "css-loader": "^6.7.1",
48
+ "css-minimizer-webpack-plugin": "^4.0.0",
49
+ "eslint": "^8.19.0",
50
+ "eslint-config-airbnb": "^19.0.4",
51
+ "eslint-config-prettier": "^8.5.0",
52
+ "eslint-plugin-import": "^2.26.0",
53
+ "eslint-plugin-jsx-a11y": "^6.6.0",
54
+ "eslint-plugin-node": "^11.1.0",
55
+ "eslint-plugin-prettier": "^4.2.1",
56
+ "eslint-plugin-react": "^7.30.1",
57
+ "eslint-plugin-react-hooks": "^4.6.0",
58
+ "file-loader": "^6.2.0",
59
+ "fork-ts-checker-webpack-plugin": "^7.2.12",
60
+ "html-loader": "^3.1.2",
61
+ "html-webpack-plugin": "^5.5.0",
62
+ "husky": "^8.0.1",
63
+ "lint-staged": "^13.0.3",
64
+ "mini-css-extract-plugin": "^2.6.1",
65
+ "prettier": "^2.7.1",
66
+ "sass": "^1.53.0",
67
+ "sass-loader": "^13.0.2",
68
+ "style-loader": "^3.3.1",
69
+ "terser-webpack-plugin": "^5.3.3",
70
+ "tsc-alias": "^1.6.11",
71
+ "typescript": "^4.7.4",
72
+ "webpack": "^5.73.0",
73
+ "webpack-cli": "^4.10.0",
74
+ "webpack-dev-server": "^4.9.3",
75
+ "webpack-merge": "^5.8.0"
76
+ },
77
+ "dependencies": {
78
+ "@emotion/react": "^11.9.3",
79
+ "@emotion/styled": "^11.9.3",
80
+ "@fingerprintjs/fingerprintjs": "~3.3.4",
81
+ "@hookform/resolvers": "^2.9.6",
82
+ "@mui/icons-material": "^5.8.4",
83
+ "@mui/material": "^5.8.7",
84
+ "@reduxjs/toolkit": "^1.8.3",
85
+ "axios": "^0.27.2",
86
+ "device-detector-js": "^3.0.3",
87
+ "i18next": "^21.8.14",
88
+ "i18next-browser-languagedetector": "^6.1.4",
89
+ "i18next-http-backend": "^1.4.1",
90
+ "jsencrypt": "^2.3.1",
91
+ "lodash-es": "^4.17.21",
92
+ "lottie-web": "^5.9.6",
93
+ "moment-hijri": "~2.1.2",
94
+ "react": "^18.2.0",
95
+ "react-calendar": "~3.7.0",
96
+ "react-device-detect": "^2.2.2",
97
+ "react-dom": "^18.2.0",
98
+ "react-dropzone": "^14.2.2",
99
+ "react-hook-form": "^7.33.1",
100
+ "react-i18next": "^11.18.1",
101
+ "react-otp-input": "^2.4.0",
102
+ "react-redux": "^8.0.2",
103
+ "react-spring-bottom-sheet": "^3.4.1",
104
+ "yup": "^0.32.11"
105
+ },
106
+ "peerDependencies": {
107
+ "react": "^18.2.0",
108
+ "react-dom": "^18.2.0"
109
+ },
110
+ "lint-staged": {
111
+ "src/**/*.{ts,tsx,json,js,jsx}": [
112
+ "yarn run prettier:fix",
113
+ "yarn run lint",
114
+ "git add ."
115
+ ]
116
+ },
117
+ "browserslist": {
118
+ "production": [
119
+ ">0.2%",
120
+ "not dead",
121
+ "not op_mini all"
122
+ ],
123
+ "development": [
124
+ "last 1 chrome version",
125
+ "last 1 firefox version",
126
+ "last 1 safari version"
127
+ ]
128
+ }
129
+ }