diff --git a/Customer App/app.json b/Customer App/app.json
index 5e43080..cad721e 100644
--- a/Customer App/app.json
+++ b/Customer App/app.json
@@ -2,6 +2,7 @@
"expo": {
"name": "Enatega",
"version": "1.0.16",
+ "scheme": "enategasinglevendor",
"description": "Enatega is a starter kit food ordering app built in React Native using Expo for IOS and Android. It's made keeping good aesthetics in mind as well keeping the best coding practices in mind. Its fully customisable to easily help you in your next food delivery project. https://market.nativebase.io/view/react-native-food-delivery-backend-app",
"slug": "enategasinglevendor",
"privacy": "public",
diff --git a/Customer App/package-lock.json b/Customer App/package-lock.json
index 322018d..2f4ff01 100644
--- a/Customer App/package-lock.json
+++ b/Customer App/package-lock.json
@@ -9,6 +9,7 @@
"version": "5.0.0",
"hasInstallScript": true,
"dependencies": {
+ "@amplitude/analytics-react-native": "^1.1.1",
"@apollo/react-hooks": "^3.1.3",
"@expo/vector-icons": "^13.0.0",
"@ptomasroos/react-native-multi-slider": "^2.2.2",
@@ -36,6 +37,7 @@
"expo-apple-authentication": "~5.0.1",
"expo-application": "~5.0.1",
"expo-asset": "~8.7.0",
+ "expo-auth-session": "~3.8.0",
"expo-camera": "~13.1.0",
"expo-constants": "~14.0.2",
"expo-contacts": "~11.0.1",
@@ -48,6 +50,7 @@
"expo-localization": "~14.0.0",
"expo-location": "~15.0.1",
"expo-notifications": "~0.17.0",
+ "expo-random": "~13.0.0",
"expo-sensors": "~12.0.1",
"expo-splash-screen": "~0.17.5",
"expo-tracking-transparency": "~3.0.1",
@@ -63,7 +66,7 @@
"react-native-button": "^3.0.1",
"react-native-flash-message": "^0.4.0",
"react-native-flatlist-slider": "^1.0.5",
- "react-native-gesture-handler": "~2.8.0",
+ "react-native-gesture-handler": "~~2.1.0",
"react-native-gifted-chat": "^1.1.1",
"react-native-i18n": "1.0.0",
"react-native-maps": "1.3.2",
@@ -102,6 +105,89 @@
"react-test-renderer": "^18.2.0"
}
},
+ "node_modules/@amplitude/analytics-client-common": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/@amplitude/analytics-client-common/-/analytics-client-common-0.6.1.tgz",
+ "integrity": "sha512-P9Zb1xfmbYMFy3QPfY7G+wwvbvTsfIOS5BOWSUiig+P9PduRwxslPe1Uscns0is6SaHcqIqrw47uuH58FEmmcg==",
+ "dependencies": {
+ "@amplitude/analytics-connector": "^1.4.5",
+ "@amplitude/analytics-core": "^0.12.0",
+ "@amplitude/analytics-types": "^0.17.0",
+ "tslib": "^2.4.1"
+ }
+ },
+ "node_modules/@amplitude/analytics-client-common/node_modules/tslib": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
+ },
+ "node_modules/@amplitude/analytics-connector": {
+ "version": "1.4.6",
+ "resolved": "https://registry.npmjs.org/@amplitude/analytics-connector/-/analytics-connector-1.4.6.tgz",
+ "integrity": "sha512-6jD2pOosRD4y8DT8StUCz7yTd5ZDkdOU9/AWnlWKM5qk90Mz7sdZrdZ9H7sA/L3yOJEpQOYZgQplQdWWUzyWug==",
+ "dependencies": {
+ "@amplitude/ua-parser-js": "0.7.31"
+ }
+ },
+ "node_modules/@amplitude/analytics-core": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/@amplitude/analytics-core/-/analytics-core-0.12.0.tgz",
+ "integrity": "sha512-Qg5own7VApdEOUtOnKwk7vFKbXubZ/YBQq0COYK+QFMCp0eF1xwLLLEiE4ThYiq49EwptvinH/bziU6IMi205g==",
+ "dependencies": {
+ "@amplitude/analytics-types": "^0.17.0",
+ "tslib": "^2.4.1"
+ }
+ },
+ "node_modules/@amplitude/analytics-core/node_modules/tslib": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
+ },
+ "node_modules/@amplitude/analytics-react-native": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@amplitude/analytics-react-native/-/analytics-react-native-1.1.1.tgz",
+ "integrity": "sha512-ybbpCUzjGO1E04J58TOi0vn2YMpCYSiq+nESkV6eVwZ5pyVmiYgtLvdkUg9Kr+vtR78ocD6S5HXKCFTER+cCcA==",
+ "dependencies": {
+ "@amplitude/analytics-client-common": "^0.6.1",
+ "@amplitude/analytics-core": "^0.12.0",
+ "@amplitude/analytics-types": "^0.17.0",
+ "@amplitude/ua-parser-js": "^0.7.31",
+ "@react-native-async-storage/async-storage": "^1.17.11",
+ "tslib": "^2.4.1"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/@amplitude/analytics-react-native/node_modules/tslib": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
+ },
+ "node_modules/@amplitude/analytics-types": {
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/@amplitude/analytics-types/-/analytics-types-0.17.0.tgz",
+ "integrity": "sha512-J6JdlUkYPaOInsqYBBOjxwhYi+3ZFl+ICE6yG/1SySX/Eu7a7jAJbBbrH1HrYk+0Hzl5sdO/WA2zhHi0j00qTQ=="
+ },
+ "node_modules/@amplitude/ua-parser-js": {
+ "version": "0.7.31",
+ "resolved": "https://registry.npmjs.org/@amplitude/ua-parser-js/-/ua-parser-js-0.7.31.tgz",
+ "integrity": "sha512-+z8UGRaj13Pt5NDzOnkTBy49HE2CX64jeL0ArB86HAtilpnfkPB7oqkigN7Lf2LxscMg4QhFD7mmCfedh3rqTg==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/ua-parser-js"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/faisalman"
+ }
+ ],
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/@ampproject/remapping": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
@@ -1991,15 +2077,39 @@
"node": ">=0.8.0"
}
},
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz",
+ "integrity": "sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==",
+ "dev": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz",
+ "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
"node_modules/@eslint/eslintrc": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz",
- "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz",
+ "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.4.0",
+ "espree": "^9.5.0",
"globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
@@ -2060,9 +2170,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "8.35.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz",
- "integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==",
+ "version": "8.36.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz",
+ "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -3773,16 +3883,16 @@
}
},
"node_modules/@jest/console": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.4.3.tgz",
- "integrity": "sha512-W/o/34+wQuXlgqlPYTansOSiBnuxrTv61dEVkA6HNmpcgHLUjfaUbdqt6oVvOzaawwo9IdW9QOtMgQ1ScSZC4A==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz",
+ "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==",
"dev": true,
"dependencies": {
- "@jest/types": "^29.4.3",
+ "@jest/types": "^29.5.0",
"@types/node": "*",
"chalk": "^4.0.0",
- "jest-message-util": "^29.4.3",
- "jest-util": "^29.4.3",
+ "jest-message-util": "^29.5.0",
+ "jest-util": "^29.5.0",
"slash": "^3.0.0"
},
"engines": {
@@ -3860,37 +3970,37 @@
}
},
"node_modules/@jest/core": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.4.3.tgz",
- "integrity": "sha512-56QvBq60fS4SPZCuM7T+7scNrkGIe7Mr6PVIXUpu48ouvRaWOFqRPV91eifvFM0ay2HmfswXiGf97NGUN5KofQ==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz",
+ "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==",
"dev": true,
"dependencies": {
- "@jest/console": "^29.4.3",
- "@jest/reporters": "^29.4.3",
- "@jest/test-result": "^29.4.3",
- "@jest/transform": "^29.4.3",
- "@jest/types": "^29.4.3",
+ "@jest/console": "^29.5.0",
+ "@jest/reporters": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
"@types/node": "*",
"ansi-escapes": "^4.2.1",
"chalk": "^4.0.0",
"ci-info": "^3.2.0",
"exit": "^0.1.2",
"graceful-fs": "^4.2.9",
- "jest-changed-files": "^29.4.3",
- "jest-config": "^29.4.3",
- "jest-haste-map": "^29.4.3",
- "jest-message-util": "^29.4.3",
+ "jest-changed-files": "^29.5.0",
+ "jest-config": "^29.5.0",
+ "jest-haste-map": "^29.5.0",
+ "jest-message-util": "^29.5.0",
"jest-regex-util": "^29.4.3",
- "jest-resolve": "^29.4.3",
- "jest-resolve-dependencies": "^29.4.3",
- "jest-runner": "^29.4.3",
- "jest-runtime": "^29.4.3",
- "jest-snapshot": "^29.4.3",
- "jest-util": "^29.4.3",
- "jest-validate": "^29.4.3",
- "jest-watcher": "^29.4.3",
+ "jest-resolve": "^29.5.0",
+ "jest-resolve-dependencies": "^29.5.0",
+ "jest-runner": "^29.5.0",
+ "jest-runtime": "^29.5.0",
+ "jest-snapshot": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-validate": "^29.5.0",
+ "jest-watcher": "^29.5.0",
"micromatch": "^4.0.4",
- "pretty-format": "^29.4.3",
+ "pretty-format": "^29.5.0",
"slash": "^3.0.0",
"strip-ansi": "^6.0.0"
},
@@ -3965,9 +4075,9 @@
}
},
"node_modules/@jest/core/node_modules/pretty-format": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz",
- "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz",
+ "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==",
"dev": true,
"dependencies": {
"@jest/schemas": "^29.4.3",
@@ -4009,48 +4119,48 @@
}
},
"node_modules/@jest/create-cache-key-function": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.4.3.tgz",
- "integrity": "sha512-AJVFQTTy6jnZAQiAZrdOaTAPzJUrvAE/4IMe+Foav6WPhypFszqg7a4lOTyuzYQEEiT5RSrGYg9IY+/ivxiyXw==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.5.0.tgz",
+ "integrity": "sha512-LIDZyZgnZss7uikvBKBB/USWwG+GO8+GnwRWT+YkCGDGsqLQlhm9BC3z6+7+eMs1kUlvXQIWEzBR8Q2Pnvx6lg==",
"dependencies": {
- "@jest/types": "^29.4.3"
+ "@jest/types": "^29.5.0"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
"node_modules/@jest/environment": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.4.3.tgz",
- "integrity": "sha512-dq5S6408IxIa+lr54zeqce+QgI+CJT4nmmA+1yzFgtcsGK8c/EyiUb9XQOgz3BMKrRDfKseeOaxj2eO8LlD3lA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz",
+ "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==",
"dev": true,
"dependencies": {
- "@jest/fake-timers": "^29.4.3",
- "@jest/types": "^29.4.3",
+ "@jest/fake-timers": "^29.5.0",
+ "@jest/types": "^29.5.0",
"@types/node": "*",
- "jest-mock": "^29.4.3"
+ "jest-mock": "^29.5.0"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
"node_modules/@jest/expect": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.4.3.tgz",
- "integrity": "sha512-iktRU/YsxEtumI9zsPctYUk7ptpC+AVLLk1Ax3AsA4g1C+8OOnKDkIQBDHtD5hA/+VtgMd5AWI5gNlcAlt2vxQ==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz",
+ "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==",
"dev": true,
"dependencies": {
- "expect": "^29.4.3",
- "jest-snapshot": "^29.4.3"
+ "expect": "^29.5.0",
+ "jest-snapshot": "^29.5.0"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
"node_modules/@jest/expect-utils": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.4.3.tgz",
- "integrity": "sha512-/6JWbkxHOP8EoS8jeeTd9dTfc9Uawi+43oLKHfp6zzux3U2hqOOVnV3ai4RpDYHOccL6g+5nrxpoc8DmJxtXVQ==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz",
+ "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==",
"dev": true,
"dependencies": {
"jest-get-type": "^29.4.3"
@@ -4060,48 +4170,48 @@
}
},
"node_modules/@jest/fake-timers": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.4.3.tgz",
- "integrity": "sha512-4Hote2MGcCTWSD2gwl0dwbCpBRHhE6olYEuTj8FMowdg3oQWNKr2YuxenPQYZ7+PfqPY1k98wKDU4Z+Hvd4Tiw==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz",
+ "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==",
"dev": true,
"dependencies": {
- "@jest/types": "^29.4.3",
+ "@jest/types": "^29.5.0",
"@sinonjs/fake-timers": "^10.0.2",
"@types/node": "*",
- "jest-message-util": "^29.4.3",
- "jest-mock": "^29.4.3",
- "jest-util": "^29.4.3"
+ "jest-message-util": "^29.5.0",
+ "jest-mock": "^29.5.0",
+ "jest-util": "^29.5.0"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
"node_modules/@jest/globals": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.4.3.tgz",
- "integrity": "sha512-8BQ/5EzfOLG7AaMcDh7yFCbfRLtsc+09E1RQmRBI4D6QQk4m6NSK/MXo+3bJrBN0yU8A2/VIcqhvsOLFmziioA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz",
+ "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==",
"dev": true,
"dependencies": {
- "@jest/environment": "^29.4.3",
- "@jest/expect": "^29.4.3",
- "@jest/types": "^29.4.3",
- "jest-mock": "^29.4.3"
+ "@jest/environment": "^29.5.0",
+ "@jest/expect": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "jest-mock": "^29.5.0"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
"node_modules/@jest/reporters": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.4.3.tgz",
- "integrity": "sha512-sr2I7BmOjJhyqj9ANC6CTLsL4emMoka7HkQpcoMRlhCbQJjz2zsRzw0BDPiPyEFDXAbxKgGFYuQZiSJ1Y6YoTg==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz",
+ "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==",
"dev": true,
"dependencies": {
"@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "^29.4.3",
- "@jest/test-result": "^29.4.3",
- "@jest/transform": "^29.4.3",
- "@jest/types": "^29.4.3",
+ "@jest/console": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
"@jridgewell/trace-mapping": "^0.3.15",
"@types/node": "*",
"chalk": "^4.0.0",
@@ -4114,9 +4224,9 @@
"istanbul-lib-report": "^3.0.0",
"istanbul-lib-source-maps": "^4.0.0",
"istanbul-reports": "^3.1.3",
- "jest-message-util": "^29.4.3",
- "jest-util": "^29.4.3",
- "jest-worker": "^29.4.3",
+ "jest-message-util": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-worker": "^29.5.0",
"slash": "^3.0.0",
"string-length": "^4.0.1",
"strip-ansi": "^6.0.0",
@@ -4230,13 +4340,13 @@
}
},
"node_modules/@jest/test-result": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.4.3.tgz",
- "integrity": "sha512-Oi4u9NfBolMq9MASPwuWTlC5WvmNRwI4S8YrQg5R5Gi47DYlBe3sh7ILTqi/LGrK1XUE4XY9KZcQJTH1WJCLLA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz",
+ "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==",
"dev": true,
"dependencies": {
- "@jest/console": "^29.4.3",
- "@jest/types": "^29.4.3",
+ "@jest/console": "^29.5.0",
+ "@jest/types": "^29.5.0",
"@types/istanbul-lib-coverage": "^2.0.0",
"collect-v8-coverage": "^1.0.0"
},
@@ -4245,14 +4355,14 @@
}
},
"node_modules/@jest/test-sequencer": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.4.3.tgz",
- "integrity": "sha512-yi/t2nES4GB4G0mjLc0RInCq/cNr9dNwJxcGg8sslajua5Kb4kmozAc+qPLzplhBgfw1vLItbjyHzUN92UXicw==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz",
+ "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==",
"dev": true,
"dependencies": {
- "@jest/test-result": "^29.4.3",
+ "@jest/test-result": "^29.5.0",
"graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.4.3",
+ "jest-haste-map": "^29.5.0",
"slash": "^3.0.0"
},
"engines": {
@@ -4260,22 +4370,22 @@
}
},
"node_modules/@jest/transform": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.4.3.tgz",
- "integrity": "sha512-8u0+fBGWolDshsFgPQJESkDa72da/EVwvL+II0trN2DR66wMwiQ9/CihaGfHdlLGFzbBZwMykFtxuwFdZqlKwg==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz",
+ "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==",
"dev": true,
"dependencies": {
"@babel/core": "^7.11.6",
- "@jest/types": "^29.4.3",
+ "@jest/types": "^29.5.0",
"@jridgewell/trace-mapping": "^0.3.15",
"babel-plugin-istanbul": "^6.1.1",
"chalk": "^4.0.0",
"convert-source-map": "^2.0.0",
"fast-json-stable-stringify": "^2.1.0",
"graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.4.3",
+ "jest-haste-map": "^29.5.0",
"jest-regex-util": "^29.4.3",
- "jest-util": "^29.4.3",
+ "jest-util": "^29.5.0",
"micromatch": "^4.0.4",
"pirates": "^4.0.4",
"slash": "^3.0.0",
@@ -4362,9 +4472,9 @@
}
},
"node_modules/@jest/types": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.4.3.tgz",
- "integrity": "sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz",
+ "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==",
"dependencies": {
"@jest/schemas": "^29.4.3",
"@types/istanbul-lib-coverage": "^2.0.0",
@@ -5866,9 +5976,9 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "18.14.4",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.4.tgz",
- "integrity": "sha512-VhCw7I7qO2X49+jaKcAUwi3rR+hbxT5VcYF493+Z5kMLI0DL568b7JI4IDJaxWFH0D/xwmGJNoXisyX+w7GH/g=="
+ "version": "18.15.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.1.tgz",
+ "integrity": "sha512-U2TWca8AeHSmbpi314QBESRk7oPjSZjDsR+c+H4ECC1l+kFgpZf8Ydhv3SJpPy51VyZHHqxlb6mTTqYNNRVAIw=="
},
"node_modules/@types/prettier": {
"version": "2.7.2",
@@ -6459,6 +6569,19 @@
"node": ">=0.10.0"
}
},
+ "node_modules/array-buffer-byte-length": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
+ "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "is-array-buffer": "^3.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/array-includes": {
"version": "3.1.6",
"resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
@@ -6840,15 +6963,15 @@
}
},
"node_modules/babel-jest": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.4.3.tgz",
- "integrity": "sha512-o45Wyn32svZE+LnMVWv/Z4x0SwtLbh4FyGcYtR20kIWd+rdrDZ9Fzq8Ml3MYLD+mZvEdzCjZsCnYZ2jpJyQ+Nw==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz",
+ "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==",
"dev": true,
"dependencies": {
- "@jest/transform": "^29.4.3",
+ "@jest/transform": "^29.5.0",
"@types/babel__core": "^7.1.14",
"babel-plugin-istanbul": "^6.1.1",
- "babel-preset-jest": "^29.4.3",
+ "babel-preset-jest": "^29.5.0",
"chalk": "^4.0.0",
"graceful-fs": "^4.2.9",
"slash": "^3.0.0"
@@ -6965,9 +7088,9 @@
}
},
"node_modules/babel-plugin-jest-hoist": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.3.tgz",
- "integrity": "sha512-mB6q2q3oahKphy5V7CpnNqZOCkxxZ9aokf1eh82Dy3jQmg4xvM1tGrh5y6BQUJh4a3Pj9+eLfwvAZ7VNKg7H8Q==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz",
+ "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==",
"dev": true,
"dependencies": {
"@babel/template": "^7.3.3",
@@ -7483,12 +7606,12 @@
"integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ=="
},
"node_modules/babel-preset-jest": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.4.3.tgz",
- "integrity": "sha512-gWx6COtSuma6n9bw+8/F+2PCXrIgxV/D1TJFnp6OyBK2cxPWg0K9p/sriNYeifKjpUkMViWQ09DSWtzJQRETsw==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz",
+ "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==",
"dev": true,
"dependencies": {
- "babel-plugin-jest-hoist": "^29.4.3",
+ "babel-plugin-jest-hoist": "^29.5.0",
"babel-preset-current-node-syntax": "^1.0.0"
},
"engines": {
@@ -7724,9 +7847,9 @@
}
},
"node_modules/bl/node_modules/readable-stream": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz",
- "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==",
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -8105,9 +8228,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001458",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001458.tgz",
- "integrity": "sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w==",
+ "version": "1.0.30001464",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001464.tgz",
+ "integrity": "sha512-oww27MtUmusatpRpCGSOneQk2/l5czXANDSFvsc7VuOQ86s3ANhZetpwXNf1zY/zdfP63Xvjz325DAdAoES13g==",
"funding": [
{
"type": "opencollective",
@@ -8506,6 +8629,17 @@
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
"integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
},
+ "node_modules/compare-urls": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/compare-urls/-/compare-urls-2.0.0.tgz",
+ "integrity": "sha512-eCJcWn2OYFEIqbm70ta7LQowJOOZZqq1a2YbbFCFI1uwSvj+TWMwXVn7vPR1ceFNcAIt5RSTDbwdlX82gYLTkA==",
+ "dependencies": {
+ "normalize-url": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/compare-versions": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz",
@@ -8632,9 +8766,9 @@
"hasInstallScript": true
},
"node_modules/core-js-compat": {
- "version": "3.29.0",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.0.tgz",
- "integrity": "sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==",
+ "version": "3.29.1",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz",
+ "integrity": "sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==",
"dependencies": {
"browserslist": "^4.21.5"
},
@@ -9124,9 +9258,9 @@
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"node_modules/electron-to-chromium": {
- "version": "1.4.317",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.317.tgz",
- "integrity": "sha512-JhCRm9v30FMNzQSsjl4kXaygU+qHBD0Yh7mKxyjmF0V8VwYVB6qpBRX28GyAucrM9wDCpSUctT6FpMUQxbyKuA=="
+ "version": "1.4.328",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz",
+ "integrity": "sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw=="
},
"node_modules/emittery": {
"version": "0.13.1",
@@ -9226,18 +9360,18 @@
}
},
"node_modules/es-abstract": {
- "version": "1.21.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
- "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
+ "version": "1.21.2",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz",
+ "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==",
"dev": true,
"dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
"es-set-tostringtag": "^2.0.1",
"es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
"function.prototype.name": "^1.1.5",
- "get-intrinsic": "^1.1.3",
+ "get-intrinsic": "^1.2.0",
"get-symbol-description": "^1.0.0",
"globalthis": "^1.0.3",
"gopd": "^1.0.1",
@@ -9245,8 +9379,8 @@
"has-property-descriptors": "^1.0.0",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3",
- "internal-slot": "^1.0.4",
- "is-array-buffer": "^3.0.1",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
"is-callable": "^1.2.7",
"is-negative-zero": "^2.0.2",
"is-regex": "^1.1.4",
@@ -9254,11 +9388,12 @@
"is-string": "^1.0.7",
"is-typed-array": "^1.1.10",
"is-weakref": "^1.0.2",
- "object-inspect": "^1.12.2",
+ "object-inspect": "^1.12.3",
"object-keys": "^1.1.1",
"object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
"safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.7",
"string.prototype.trimend": "^1.0.6",
"string.prototype.trimstart": "^1.0.6",
"typed-array-length": "^1.0.4",
@@ -9342,13 +9477,15 @@
}
},
"node_modules/eslint": {
- "version": "8.35.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz",
- "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==",
+ "version": "8.36.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz",
+ "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==",
"dev": true,
"dependencies": {
- "@eslint/eslintrc": "^2.0.0",
- "@eslint/js": "8.35.0",
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.4.0",
+ "@eslint/eslintrc": "^2.0.1",
+ "@eslint/js": "8.36.0",
"@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
@@ -9359,9 +9496,8 @@
"doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
"eslint-scope": "^7.1.1",
- "eslint-utils": "^3.0.0",
"eslint-visitor-keys": "^3.3.0",
- "espree": "^9.4.0",
+ "espree": "^9.5.0",
"esquery": "^1.4.2",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -9383,7 +9519,6 @@
"minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
"optionator": "^0.9.1",
- "regexpp": "^3.2.0",
"strip-ansi": "^6.0.1",
"strip-json-comments": "^3.1.0",
"text-table": "^0.2.0"
@@ -9803,6 +9938,7 @@
"resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
"integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
"dev": true,
+ "peer": true,
"dependencies": {
"eslint-visitor-keys": "^2.0.0"
},
@@ -9821,6 +9957,7 @@
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
"integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
"dev": true,
+ "peer": true,
"engines": {
"node": ">=10"
}
@@ -10005,9 +10142,9 @@
}
},
"node_modules/espree": {
- "version": "9.4.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
- "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz",
+ "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==",
"dev": true,
"dependencies": {
"acorn": "^8.8.0",
@@ -10313,16 +10450,16 @@
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/expect": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/expect/-/expect-29.4.3.tgz",
- "integrity": "sha512-uC05+Q7eXECFpgDrHdXA4k2rpMyStAYPItEDLyQDo5Ta7fVkJnNA/4zh/OIVkVVNZ1oOK1PipQoyNjuZ6sz6Dg==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz",
+ "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==",
"dev": true,
"dependencies": {
- "@jest/expect-utils": "^29.4.3",
+ "@jest/expect-utils": "^29.5.0",
"jest-get-type": "^29.4.3",
- "jest-matcher-utils": "^29.4.3",
- "jest-message-util": "^29.4.3",
- "jest-util": "^29.4.3"
+ "jest-matcher-utils": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-util": "^29.5.0"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
@@ -10652,6 +10789,38 @@
"url-parse": "^1.5.9"
}
},
+ "node_modules/expo-auth-session": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/expo-auth-session/-/expo-auth-session-3.8.0.tgz",
+ "integrity": "sha512-pQ8GryTTZL/JKHvifUGD4GGlZWo7RrcoQlvQ0O5m5edYfoa7fMHCg20MBX4Da4P3eVgJlqWZWCHfBC2fZxcRfA==",
+ "dependencies": {
+ "expo-constants": "~14.0.0",
+ "expo-crypto": "~12.0.0",
+ "expo-linking": "~3.3.0",
+ "expo-web-browser": "~12.0.0",
+ "invariant": "^2.2.4",
+ "qs": "6.9.1"
+ },
+ "peerDependencies": {
+ "expo-random": "*"
+ },
+ "peerDependenciesMeta": {
+ "expo-random": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/expo-auth-session/node_modules/qs": {
+ "version": "6.9.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz",
+ "integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==",
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/expo-camera": {
"version": "13.1.0",
"resolved": "https://registry.npmjs.org/expo-camera/-/expo-camera-13.1.0.tgz",
@@ -10712,6 +10881,14 @@
"expo": "*"
}
},
+ "node_modules/expo-crypto": {
+ "version": "12.0.0",
+ "resolved": "https://registry.npmjs.org/expo-crypto/-/expo-crypto-12.0.0.tgz",
+ "integrity": "sha512-2KC52eLYsXndDZOVFyr+K3Zs9wDgpqZ7F7fwAiUg+yNbE21CJrHKDFvo/Br0FAaDf/w9pUks5/qi1azB5sDzvg==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
"node_modules/expo-device": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/expo-device/-/expo-device-5.0.0.tgz",
@@ -11304,6 +11481,17 @@
"node": ">= 10.0.0"
}
},
+ "node_modules/expo-random": {
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/expo-random/-/expo-random-13.0.0.tgz",
+ "integrity": "sha512-aGb0vtUmFFuW0TF1rdOgsz89zEVD/RXUPUnnZy5+i3jJeQ2PerJ4uo72/EuWqHpCBNto8/qT+aCzFinmQDeTAA==",
+ "dependencies": {
+ "base64-js": "^1.3.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
"node_modules/expo-sensors": {
"version": "12.0.1",
"resolved": "https://registry.npmjs.org/expo-sensors/-/expo-sensors-12.0.1.tgz",
@@ -11373,6 +11561,17 @@
"expo": "*"
}
},
+ "node_modules/expo-web-browser": {
+ "version": "12.0.0",
+ "resolved": "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-12.0.0.tgz",
+ "integrity": "sha512-7/RUuE0sv5kf+mTw5/SOnks0Am1ctoxvT1Xi53Nom2EuXTKBV+b2Kf5xAw3ItoW5W4MHJUX3FdNI6qc9sS9+Pw==",
+ "dependencies": {
+ "compare-urls": "^2.0.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
"node_modules/expo/node_modules/cross-spawn": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
@@ -13342,15 +13541,15 @@
"integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg=="
},
"node_modules/jest": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest/-/jest-29.4.3.tgz",
- "integrity": "sha512-XvK65feuEFGZT8OO0fB/QAQS+LGHvQpaadkH5p47/j3Ocqq3xf2pK9R+G0GzgfuhXVxEv76qCOOcMb5efLk6PA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz",
+ "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==",
"dev": true,
"dependencies": {
- "@jest/core": "^29.4.3",
- "@jest/types": "^29.4.3",
+ "@jest/core": "^29.5.0",
+ "@jest/types": "^29.5.0",
"import-local": "^3.0.2",
- "jest-cli": "^29.4.3"
+ "jest-cli": "^29.5.0"
},
"bin": {
"jest": "bin/jest.js"
@@ -13368,9 +13567,9 @@
}
},
"node_modules/jest-changed-files": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.4.3.tgz",
- "integrity": "sha512-Vn5cLuWuwmi2GNNbokPOEcvrXGSGrqVnPEZV7rC6P7ck07Dyw9RFnvWglnupSh+hGys0ajGtw/bc2ZgweljQoQ==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz",
+ "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==",
"dev": true,
"dependencies": {
"execa": "^5.0.0",
@@ -13440,28 +13639,29 @@
}
},
"node_modules/jest-circus": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.4.3.tgz",
- "integrity": "sha512-Vw/bVvcexmdJ7MLmgdT3ZjkJ3LKu8IlpefYokxiqoZy6OCQ2VAm6Vk3t/qHiAGUXbdbJKJWnc8gH3ypTbB/OBw==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz",
+ "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==",
"dev": true,
"dependencies": {
- "@jest/environment": "^29.4.3",
- "@jest/expect": "^29.4.3",
- "@jest/test-result": "^29.4.3",
- "@jest/types": "^29.4.3",
+ "@jest/environment": "^29.5.0",
+ "@jest/expect": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/types": "^29.5.0",
"@types/node": "*",
"chalk": "^4.0.0",
"co": "^4.6.0",
"dedent": "^0.7.0",
"is-generator-fn": "^2.0.0",
- "jest-each": "^29.4.3",
- "jest-matcher-utils": "^29.4.3",
- "jest-message-util": "^29.4.3",
- "jest-runtime": "^29.4.3",
- "jest-snapshot": "^29.4.3",
- "jest-util": "^29.4.3",
+ "jest-each": "^29.5.0",
+ "jest-matcher-utils": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-runtime": "^29.5.0",
+ "jest-snapshot": "^29.5.0",
+ "jest-util": "^29.5.0",
"p-limit": "^3.1.0",
- "pretty-format": "^29.4.3",
+ "pretty-format": "^29.5.0",
+ "pure-rand": "^6.0.0",
"slash": "^3.0.0",
"stack-utils": "^2.0.3"
},
@@ -13528,9 +13728,9 @@
}
},
"node_modules/jest-circus/node_modules/pretty-format": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz",
- "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz",
+ "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==",
"dev": true,
"dependencies": {
"@jest/schemas": "^29.4.3",
@@ -13572,21 +13772,21 @@
}
},
"node_modules/jest-cli": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.4.3.tgz",
- "integrity": "sha512-PiiAPuFNfWWolCE6t3ZrDXQc6OsAuM3/tVW0u27UWc1KE+n/HSn5dSE6B2juqN7WP+PP0jAcnKtGmI4u8GMYCg==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz",
+ "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==",
"dev": true,
"dependencies": {
- "@jest/core": "^29.4.3",
- "@jest/test-result": "^29.4.3",
- "@jest/types": "^29.4.3",
+ "@jest/core": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/types": "^29.5.0",
"chalk": "^4.0.0",
"exit": "^0.1.2",
"graceful-fs": "^4.2.9",
"import-local": "^3.0.2",
- "jest-config": "^29.4.3",
- "jest-util": "^29.4.3",
- "jest-validate": "^29.4.3",
+ "jest-config": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-validate": "^29.5.0",
"prompts": "^2.0.1",
"yargs": "^17.3.1"
},
@@ -13676,31 +13876,31 @@
}
},
"node_modules/jest-config": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.4.3.tgz",
- "integrity": "sha512-eCIpqhGnIjdUCXGtLhz4gdDoxKSWXKjzNcc5r+0S1GKOp2fwOipx5mRcwa9GB/ArsxJ1jlj2lmlD9bZAsBxaWQ==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz",
+ "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==",
"dev": true,
"dependencies": {
"@babel/core": "^7.11.6",
- "@jest/test-sequencer": "^29.4.3",
- "@jest/types": "^29.4.3",
- "babel-jest": "^29.4.3",
+ "@jest/test-sequencer": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "babel-jest": "^29.5.0",
"chalk": "^4.0.0",
"ci-info": "^3.2.0",
"deepmerge": "^4.2.2",
"glob": "^7.1.3",
"graceful-fs": "^4.2.9",
- "jest-circus": "^29.4.3",
- "jest-environment-node": "^29.4.3",
+ "jest-circus": "^29.5.0",
+ "jest-environment-node": "^29.5.0",
"jest-get-type": "^29.4.3",
"jest-regex-util": "^29.4.3",
- "jest-resolve": "^29.4.3",
- "jest-runner": "^29.4.3",
- "jest-util": "^29.4.3",
- "jest-validate": "^29.4.3",
+ "jest-resolve": "^29.5.0",
+ "jest-runner": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-validate": "^29.5.0",
"micromatch": "^4.0.4",
"parse-json": "^5.2.0",
- "pretty-format": "^29.4.3",
+ "pretty-format": "^29.5.0",
"slash": "^3.0.0",
"strip-json-comments": "^3.1.1"
},
@@ -13779,9 +13979,9 @@
}
},
"node_modules/jest-config/node_modules/pretty-format": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz",
- "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz",
+ "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==",
"dev": true,
"dependencies": {
"@jest/schemas": "^29.4.3",
@@ -13823,15 +14023,15 @@
}
},
"node_modules/jest-diff": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.4.3.tgz",
- "integrity": "sha512-YB+ocenx7FZ3T5O9lMVMeLYV4265socJKtkwgk/6YUz/VsEzYDkiMuMhWzZmxm3wDRQvayJu/PjkjjSkjoHsCA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz",
+ "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==",
"dev": true,
"dependencies": {
"chalk": "^4.0.0",
"diff-sequences": "^29.4.3",
"jest-get-type": "^29.4.3",
- "pretty-format": "^29.4.3"
+ "pretty-format": "^29.5.0"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
@@ -13896,9 +14096,9 @@
}
},
"node_modules/jest-diff/node_modules/pretty-format": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz",
- "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz",
+ "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==",
"dev": true,
"dependencies": {
"@jest/schemas": "^29.4.3",
@@ -13952,16 +14152,16 @@
}
},
"node_modules/jest-each": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.4.3.tgz",
- "integrity": "sha512-1ElHNAnKcbJb/b+L+7j0/w7bDvljw4gTv1wL9fYOczeJrbTbkMGQ5iQPFJ3eFQH19VPTx1IyfePdqSpePKss7Q==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz",
+ "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==",
"dev": true,
"dependencies": {
- "@jest/types": "^29.4.3",
+ "@jest/types": "^29.5.0",
"chalk": "^4.0.0",
"jest-get-type": "^29.4.3",
- "jest-util": "^29.4.3",
- "pretty-format": "^29.4.3"
+ "jest-util": "^29.5.0",
+ "pretty-format": "^29.5.0"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
@@ -14026,9 +14226,9 @@
}
},
"node_modules/jest-each/node_modules/pretty-format": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz",
- "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz",
+ "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==",
"dev": true,
"dependencies": {
"@jest/schemas": "^29.4.3",
@@ -14070,17 +14270,17 @@
}
},
"node_modules/jest-environment-node": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.4.3.tgz",
- "integrity": "sha512-gAiEnSKF104fsGDXNkwk49jD/0N0Bqu2K9+aMQXA6avzsA9H3Fiv1PW2D+gzbOSR705bWd2wJZRFEFpV0tXISg==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz",
+ "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==",
"dev": true,
"dependencies": {
- "@jest/environment": "^29.4.3",
- "@jest/fake-timers": "^29.4.3",
- "@jest/types": "^29.4.3",
+ "@jest/environment": "^29.5.0",
+ "@jest/fake-timers": "^29.5.0",
+ "@jest/types": "^29.5.0",
"@types/node": "*",
- "jest-mock": "^29.4.3",
- "jest-util": "^29.4.3"
+ "jest-mock": "^29.5.0",
+ "jest-util": "^29.5.0"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
@@ -14096,20 +14296,20 @@
}
},
"node_modules/jest-haste-map": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.4.3.tgz",
- "integrity": "sha512-eZIgAS8tvm5IZMtKlR8Y+feEOMfo2pSQkmNbufdbMzMSn9nitgGxF1waM/+LbryO3OkMcKS98SUb+j/cQxp/vQ==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz",
+ "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==",
"dev": true,
"dependencies": {
- "@jest/types": "^29.4.3",
+ "@jest/types": "^29.5.0",
"@types/graceful-fs": "^4.1.3",
"@types/node": "*",
"anymatch": "^3.0.3",
"fb-watchman": "^2.0.0",
"graceful-fs": "^4.2.9",
"jest-regex-util": "^29.4.3",
- "jest-util": "^29.4.3",
- "jest-worker": "^29.4.3",
+ "jest-util": "^29.5.0",
+ "jest-worker": "^29.5.0",
"micromatch": "^4.0.4",
"walker": "^1.0.8"
},
@@ -14121,13 +14321,13 @@
}
},
"node_modules/jest-leak-detector": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.4.3.tgz",
- "integrity": "sha512-9yw4VC1v2NspMMeV3daQ1yXPNxMgCzwq9BocCwYrRgXe4uaEJPAN0ZK37nFBhcy3cUwEVstFecFLaTHpF7NiGA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz",
+ "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==",
"dev": true,
"dependencies": {
"jest-get-type": "^29.4.3",
- "pretty-format": "^29.4.3"
+ "pretty-format": "^29.5.0"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
@@ -14146,9 +14346,9 @@
}
},
"node_modules/jest-leak-detector/node_modules/pretty-format": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz",
- "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz",
+ "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==",
"dev": true,
"dependencies": {
"@jest/schemas": "^29.4.3",
@@ -14166,15 +14366,15 @@
"dev": true
},
"node_modules/jest-matcher-utils": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.4.3.tgz",
- "integrity": "sha512-TTciiXEONycZ03h6R6pYiZlSkvYgT0l8aa49z/DLSGYjex4orMUcafuLXYyyEDWB1RKglq00jzwY00Ei7yFNVg==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz",
+ "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==",
"dev": true,
"dependencies": {
"chalk": "^4.0.0",
- "jest-diff": "^29.4.3",
+ "jest-diff": "^29.5.0",
"jest-get-type": "^29.4.3",
- "pretty-format": "^29.4.3"
+ "pretty-format": "^29.5.0"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
@@ -14239,9 +14439,9 @@
}
},
"node_modules/jest-matcher-utils/node_modules/pretty-format": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz",
- "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz",
+ "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==",
"dev": true,
"dependencies": {
"@jest/schemas": "^29.4.3",
@@ -14283,18 +14483,18 @@
}
},
"node_modules/jest-message-util": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.4.3.tgz",
- "integrity": "sha512-1Y8Zd4ZCN7o/QnWdMmT76If8LuDv23Z1DRovBj/vcSFNlGCJGoO8D1nJDw1AdyAGUk0myDLFGN5RbNeJyCRGCw==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz",
+ "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.12.13",
- "@jest/types": "^29.4.3",
+ "@jest/types": "^29.5.0",
"@types/stack-utils": "^2.0.0",
"chalk": "^4.0.0",
"graceful-fs": "^4.2.9",
"micromatch": "^4.0.4",
- "pretty-format": "^29.4.3",
+ "pretty-format": "^29.5.0",
"slash": "^3.0.0",
"stack-utils": "^2.0.3"
},
@@ -14361,9 +14561,9 @@
}
},
"node_modules/jest-message-util/node_modules/pretty-format": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz",
- "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz",
+ "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==",
"dev": true,
"dependencies": {
"@jest/schemas": "^29.4.3",
@@ -14405,14 +14605,14 @@
}
},
"node_modules/jest-mock": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.4.3.tgz",
- "integrity": "sha512-LjFgMg+xed9BdkPMyIJh+r3KeHt1klXPJYBULXVVAkbTaaKjPX1o1uVCAZADMEp/kOxGTwy/Ot8XbvgItOrHEg==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz",
+ "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==",
"dev": true,
"dependencies": {
- "@jest/types": "^29.4.3",
+ "@jest/types": "^29.5.0",
"@types/node": "*",
- "jest-util": "^29.4.3"
+ "jest-util": "^29.5.0"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
@@ -14454,17 +14654,17 @@
}
},
"node_modules/jest-resolve": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.4.3.tgz",
- "integrity": "sha512-GPokE1tzguRyT7dkxBim4wSx6E45S3bOQ7ZdKEG+Qj0Oac9+6AwJPCk0TZh5Vu0xzeX4afpb+eDmgbmZFFwpOw==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz",
+ "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==",
"dev": true,
"dependencies": {
"chalk": "^4.0.0",
"graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.4.3",
+ "jest-haste-map": "^29.5.0",
"jest-pnp-resolver": "^1.2.2",
- "jest-util": "^29.4.3",
- "jest-validate": "^29.4.3",
+ "jest-util": "^29.5.0",
+ "jest-validate": "^29.5.0",
"resolve": "^1.20.0",
"resolve.exports": "^2.0.0",
"slash": "^3.0.0"
@@ -14474,13 +14674,13 @@
}
},
"node_modules/jest-resolve-dependencies": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.3.tgz",
- "integrity": "sha512-uvKMZAQ3nmXLH7O8WAOhS5l0iWyT3WmnJBdmIHiV5tBbdaDZ1wqtNX04FONGoaFvSOSHBJxnwAVnSn1WHdGVaw==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz",
+ "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==",
"dev": true,
"dependencies": {
"jest-regex-util": "^29.4.3",
- "jest-snapshot": "^29.4.3"
+ "jest-snapshot": "^29.5.0"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
@@ -14557,30 +14757,30 @@
}
},
"node_modules/jest-runner": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.4.3.tgz",
- "integrity": "sha512-GWPTEiGmtHZv1KKeWlTX9SIFuK19uLXlRQU43ceOQ2hIfA5yPEJC7AMkvFKpdCHx6pNEdOD+2+8zbniEi3v3gA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz",
+ "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==",
"dev": true,
"dependencies": {
- "@jest/console": "^29.4.3",
- "@jest/environment": "^29.4.3",
- "@jest/test-result": "^29.4.3",
- "@jest/transform": "^29.4.3",
- "@jest/types": "^29.4.3",
+ "@jest/console": "^29.5.0",
+ "@jest/environment": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
"@types/node": "*",
"chalk": "^4.0.0",
"emittery": "^0.13.1",
"graceful-fs": "^4.2.9",
"jest-docblock": "^29.4.3",
- "jest-environment-node": "^29.4.3",
- "jest-haste-map": "^29.4.3",
- "jest-leak-detector": "^29.4.3",
- "jest-message-util": "^29.4.3",
- "jest-resolve": "^29.4.3",
- "jest-runtime": "^29.4.3",
- "jest-util": "^29.4.3",
- "jest-watcher": "^29.4.3",
- "jest-worker": "^29.4.3",
+ "jest-environment-node": "^29.5.0",
+ "jest-haste-map": "^29.5.0",
+ "jest-leak-detector": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-resolve": "^29.5.0",
+ "jest-runtime": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-watcher": "^29.5.0",
+ "jest-worker": "^29.5.0",
"p-limit": "^3.1.0",
"source-map-support": "0.5.13"
},
@@ -14659,31 +14859,31 @@
}
},
"node_modules/jest-runtime": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.4.3.tgz",
- "integrity": "sha512-F5bHvxSH+LvLV24vVB3L8K467dt3y3dio6V3W89dUz9nzvTpqd/HcT9zfYKL2aZPvD63vQFgLvaUX/UpUhrP6Q==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz",
+ "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==",
"dev": true,
"dependencies": {
- "@jest/environment": "^29.4.3",
- "@jest/fake-timers": "^29.4.3",
- "@jest/globals": "^29.4.3",
+ "@jest/environment": "^29.5.0",
+ "@jest/fake-timers": "^29.5.0",
+ "@jest/globals": "^29.5.0",
"@jest/source-map": "^29.4.3",
- "@jest/test-result": "^29.4.3",
- "@jest/transform": "^29.4.3",
- "@jest/types": "^29.4.3",
+ "@jest/test-result": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
"@types/node": "*",
"chalk": "^4.0.0",
"cjs-module-lexer": "^1.0.0",
"collect-v8-coverage": "^1.0.0",
"glob": "^7.1.3",
"graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.4.3",
- "jest-message-util": "^29.4.3",
- "jest-mock": "^29.4.3",
+ "jest-haste-map": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-mock": "^29.5.0",
"jest-regex-util": "^29.4.3",
- "jest-resolve": "^29.4.3",
- "jest-snapshot": "^29.4.3",
- "jest-util": "^29.4.3",
+ "jest-resolve": "^29.5.0",
+ "jest-snapshot": "^29.5.0",
+ "jest-util": "^29.5.0",
"slash": "^3.0.0",
"strip-bom": "^4.0.0"
},
@@ -14774,9 +14974,9 @@
}
},
"node_modules/jest-snapshot": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.4.3.tgz",
- "integrity": "sha512-NGlsqL0jLPDW91dz304QTM/SNO99lpcSYYAjNiX0Ou+sSGgkanKBcSjCfp/pqmiiO1nQaOyLp6XQddAzRcx3Xw==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz",
+ "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==",
"dev": true,
"dependencies": {
"@babel/core": "^7.11.6",
@@ -14785,23 +14985,22 @@
"@babel/plugin-syntax-typescript": "^7.7.2",
"@babel/traverse": "^7.7.2",
"@babel/types": "^7.3.3",
- "@jest/expect-utils": "^29.4.3",
- "@jest/transform": "^29.4.3",
- "@jest/types": "^29.4.3",
+ "@jest/expect-utils": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
"@types/babel__traverse": "^7.0.6",
"@types/prettier": "^2.1.5",
"babel-preset-current-node-syntax": "^1.0.0",
"chalk": "^4.0.0",
- "expect": "^29.4.3",
+ "expect": "^29.5.0",
"graceful-fs": "^4.2.9",
- "jest-diff": "^29.4.3",
+ "jest-diff": "^29.5.0",
"jest-get-type": "^29.4.3",
- "jest-haste-map": "^29.4.3",
- "jest-matcher-utils": "^29.4.3",
- "jest-message-util": "^29.4.3",
- "jest-util": "^29.4.3",
+ "jest-matcher-utils": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-util": "^29.5.0",
"natural-compare": "^1.4.0",
- "pretty-format": "^29.4.3",
+ "pretty-format": "^29.5.0",
"semver": "^7.3.5"
},
"engines": {
@@ -14879,9 +15078,9 @@
}
},
"node_modules/jest-snapshot/node_modules/pretty-format": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz",
- "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz",
+ "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==",
"dev": true,
"dependencies": {
"@jest/schemas": "^29.4.3",
@@ -14944,12 +15143,12 @@
"dev": true
},
"node_modules/jest-util": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.4.3.tgz",
- "integrity": "sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz",
+ "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==",
"dev": true,
"dependencies": {
- "@jest/types": "^29.4.3",
+ "@jest/types": "^29.5.0",
"@types/node": "*",
"chalk": "^4.0.0",
"ci-info": "^3.2.0",
@@ -15031,17 +15230,17 @@
}
},
"node_modules/jest-validate": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.4.3.tgz",
- "integrity": "sha512-J3u5v7aPQoXPzaar6GndAVhdQcZr/3osWSgTeKg5v574I9ybX/dTyH0AJFb5XgXIB7faVhf+rS7t4p3lL9qFaw==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz",
+ "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==",
"dev": true,
"dependencies": {
- "@jest/types": "^29.4.3",
+ "@jest/types": "^29.5.0",
"camelcase": "^6.2.0",
"chalk": "^4.0.0",
"jest-get-type": "^29.4.3",
"leven": "^3.1.0",
- "pretty-format": "^29.4.3"
+ "pretty-format": "^29.5.0"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
@@ -15118,9 +15317,9 @@
}
},
"node_modules/jest-validate/node_modules/pretty-format": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz",
- "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz",
+ "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==",
"dev": true,
"dependencies": {
"@jest/schemas": "^29.4.3",
@@ -15162,18 +15361,18 @@
}
},
"node_modules/jest-watcher": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.4.3.tgz",
- "integrity": "sha512-zwlXH3DN3iksoIZNk73etl1HzKyi5FuQdYLnkQKm5BW4n8HpoG59xSwpVdFrnh60iRRaRBGw0gcymIxjJENPcA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz",
+ "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==",
"dev": true,
"dependencies": {
- "@jest/test-result": "^29.4.3",
- "@jest/types": "^29.4.3",
+ "@jest/test-result": "^29.5.0",
+ "@jest/types": "^29.5.0",
"@types/node": "*",
"ansi-escapes": "^4.2.1",
"chalk": "^4.0.0",
"emittery": "^0.13.1",
- "jest-util": "^29.4.3",
+ "jest-util": "^29.5.0",
"string-length": "^4.0.1"
},
"engines": {
@@ -15251,13 +15450,13 @@
}
},
"node_modules/jest-worker": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.4.3.tgz",
- "integrity": "sha512-GLHN/GTAAMEy5BFdvpUfzr9Dr80zQqBrh0fz1mtRMe05hqP45+HfQltu7oTBfduD0UeZs09d+maFtFYAXFWvAA==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz",
+ "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==",
"dev": true,
"dependencies": {
"@types/node": "*",
- "jest-util": "^29.4.3",
+ "jest-util": "^29.5.0",
"merge-stream": "^2.0.0",
"supports-color": "^8.0.0"
},
@@ -15751,9 +15950,9 @@
}
},
"node_modules/lilconfig": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz",
- "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
+ "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
"dev": true,
"engines": {
"node": ">=10"
@@ -15765,24 +15964,24 @@
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
},
"node_modules/lint-staged": {
- "version": "13.1.2",
- "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.1.2.tgz",
- "integrity": "sha512-K9b4FPbWkpnupvK3WXZLbgu9pchUJ6N7TtVZjbaPsoizkqFUDkUReUL25xdrCljJs7uLUF3tZ7nVPeo/6lp+6w==",
+ "version": "13.2.0",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.0.tgz",
+ "integrity": "sha512-GbyK5iWinax5Dfw5obm2g2ccUiZXNGtAS4mCbJ0Lv4rq6iEtfBSjOYdcbOtAIFtM114t0vdpViDDetjVTSd8Vw==",
"dev": true,
"dependencies": {
+ "chalk": "5.2.0",
"cli-truncate": "^3.1.0",
- "colorette": "^2.0.19",
- "commander": "^9.4.1",
+ "commander": "^10.0.0",
"debug": "^4.3.4",
- "execa": "^6.1.0",
- "lilconfig": "2.0.6",
- "listr2": "^5.0.5",
+ "execa": "^7.0.0",
+ "lilconfig": "2.1.0",
+ "listr2": "^5.0.7",
"micromatch": "^4.0.5",
"normalize-path": "^3.0.0",
- "object-inspect": "^1.12.2",
+ "object-inspect": "^1.12.3",
"pidtree": "^0.6.0",
"string-argv": "^0.3.1",
- "yaml": "^2.1.3"
+ "yaml": "^2.2.1"
},
"bin": {
"lint-staged": "bin/lint-staged.js"
@@ -15794,24 +15993,36 @@
"url": "https://opencollective.com/lint-staged"
}
},
- "node_modules/lint-staged/node_modules/commander": {
- "version": "9.5.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
- "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
+ "node_modules/lint-staged/node_modules/chalk": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz",
+ "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==",
"dev": true,
"engines": {
- "node": "^12.20.0 || >=14"
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/lint-staged/node_modules/commander": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz",
+ "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
}
},
"node_modules/lint-staged/node_modules/execa": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz",
- "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.0.tgz",
+ "integrity": "sha512-T6nIJO3LHxUZ6ahVRaxXz9WLEruXLqdcluA+UuTptXmLM7nDAn9lx9IfkxPyzEL21583qSt4RmL44pO71EHaJQ==",
"dev": true,
"dependencies": {
"cross-spawn": "^7.0.3",
"get-stream": "^6.0.1",
- "human-signals": "^3.0.1",
+ "human-signals": "^4.3.0",
"is-stream": "^3.0.0",
"merge-stream": "^2.0.0",
"npm-run-path": "^5.1.0",
@@ -15820,7 +16031,7 @@
"strip-final-newline": "^3.0.0"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": "^14.18.0 || ^16.14.0 || >=18.0.0"
},
"funding": {
"url": "https://github.com/sindresorhus/execa?sponsor=1"
@@ -15839,12 +16050,12 @@
}
},
"node_modules/lint-staged/node_modules/human-signals": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz",
- "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.0.tgz",
+ "integrity": "sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ==",
"dev": true,
"engines": {
- "node": ">=12.20.0"
+ "node": ">=14.18.0"
}
},
"node_modules/lint-staged/node_modules/is-stream": {
@@ -15926,9 +16137,9 @@
}
},
"node_modules/listr2": {
- "version": "5.0.7",
- "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.7.tgz",
- "integrity": "sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw==",
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.8.tgz",
+ "integrity": "sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==",
"dev": true,
"dependencies": {
"cli-truncate": "^2.1.0",
@@ -18038,6 +18249,40 @@
"node": ">=0.10.0"
}
},
+ "node_modules/normalize-url": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz",
+ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==",
+ "dependencies": {
+ "prepend-http": "^2.0.0",
+ "query-string": "^5.0.1",
+ "sort-keys": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/normalize-url/node_modules/query-string": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
+ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
+ "dependencies": {
+ "decode-uri-component": "^0.2.0",
+ "object-assign": "^4.1.0",
+ "strict-uri-encode": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/normalize-url/node_modules/strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/npm-package-arg": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz",
@@ -19231,6 +19476,14 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/prettier": {
"version": "2.8.4",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz",
@@ -19461,6 +19714,22 @@
"node": ">=6"
}
},
+ "node_modules/pure-rand": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.1.tgz",
+ "integrity": "sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/dubzzz"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fast-check"
+ }
+ ]
+ },
"node_modules/qrcode-terminal": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz",
@@ -19851,9 +20120,9 @@
"integrity": "sha512-F1C87eGIte9nfBU/MyNI6OOVKR/uCwFMrjVGv2j5u0LZjBm2WoEso96kPF2j0PIG8+XerD7Y2pmtGdCMCWxtcA=="
},
"node_modules/react-native-gesture-handler": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.8.0.tgz",
- "integrity": "sha512-poOSfz/w0IyD6Qwq7aaIRRfEaVTl1ecQFoyiIbpOpfNTjm2B1niY2FLrdVQIOtIOe+K9nH55Qal04nr4jGkHdQ==",
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.9.0.tgz",
+ "integrity": "sha512-a0BcH3Qb1tgVqUutc6d3VuWQkI1AM3+fJx8dkxzZs9t06qA27QgURYFoklpabuWpsUTzuKRpxleykp25E8m7tg==",
"dependencies": {
"@egjs/hammerjs": "^2.0.17",
"hoist-non-react-statics": "^3.3.0",
@@ -20636,9 +20905,9 @@
}
},
"node_modules/regexpu-core": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.1.tgz",
- "integrity": "sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ==",
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
+ "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
"dependencies": {
"@babel/regjsgen": "^0.8.0",
"regenerate": "^1.4.2",
@@ -20786,9 +21055,9 @@
"deprecated": "https://github.com/lydell/resolve-url#deprecated"
},
"node_modules/resolve.exports": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.0.tgz",
- "integrity": "sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.1.tgz",
+ "integrity": "sha512-OEJWVeimw8mgQuj3HfkNl4KqRevH7lzeQNaWRPfx0PPse7Jk6ozcsG4FKVgtzDsC1KUF+YlTHh17NcgHOPykLw==",
"dev": true,
"engines": {
"node": ">=10"
@@ -21411,6 +21680,25 @@
"node": ">=0.10.0"
}
},
+ "node_modules/sort-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz",
+ "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==",
+ "dependencies": {
+ "is-plain-obj": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/sort-keys/node_modules/is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -21449,9 +21737,9 @@
"deprecated": "See https://github.com/lydell/source-map-url#deprecated"
},
"node_modules/spdx-correct": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
- "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
"dependencies": {
"spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0"
@@ -21472,9 +21760,9 @@
}
},
"node_modules/spdx-license-ids": {
- "version": "3.0.12",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz",
- "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA=="
+ "version": "3.0.13",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz",
+ "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w=="
},
"node_modules/split": {
"version": "1.0.1",
@@ -21777,6 +22065,23 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/string.prototype.trim": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz",
+ "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/string.prototype.trimend": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
@@ -22005,9 +22310,9 @@
}
},
"node_modules/tar/node_modules/minipass": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz",
- "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==",
+ "version": "4.2.5",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz",
+ "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==",
"engines": {
"node": ">=8"
}
@@ -22370,9 +22675,9 @@
}
},
"node_modules/ua-parser-js": {
- "version": "0.7.33",
- "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.33.tgz",
- "integrity": "sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw==",
+ "version": "0.7.34",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.34.tgz",
+ "integrity": "sha512-cJMeh/eOILyGu0ejgTKB95yKT3zOenSe9UGE3vj6WfiOwgGYnmATUsnDixMFvdU+rNMvWih83hrUP8VwhF9yXQ==",
"funding": [
{
"type": "opencollective",
diff --git a/Customer App/package.json b/Customer App/package.json
index e34b812..14a84a2 100644
--- a/Customer App/package.json
+++ b/Customer App/package.json
@@ -24,6 +24,7 @@
]
},
"dependencies": {
+ "@amplitude/analytics-react-native": "^1.1.1",
"@apollo/react-hooks": "^3.1.3",
"@expo/vector-icons": "^13.0.0",
"@ptomasroos/react-native-multi-slider": "^2.2.2",
@@ -51,6 +52,7 @@
"expo-apple-authentication": "~5.0.1",
"expo-application": "~5.0.1",
"expo-asset": "~8.7.0",
+ "expo-auth-session": "~3.8.0",
"expo-camera": "~13.1.0",
"expo-constants": "~14.0.2",
"expo-contacts": "~11.0.1",
@@ -63,6 +65,7 @@
"expo-localization": "~14.0.0",
"expo-location": "~15.0.1",
"expo-notifications": "~0.17.0",
+ "expo-random": "~13.0.0",
"expo-sensors": "~12.0.1",
"expo-splash-screen": "~0.17.5",
"expo-tracking-transparency": "~3.0.1",
@@ -78,7 +81,7 @@
"react-native-button": "^3.0.1",
"react-native-flash-message": "^0.4.0",
"react-native-flatlist-slider": "^1.0.5",
- "react-native-gesture-handler": "~2.8.0",
+ "react-native-gesture-handler": "~~2.1.0",
"react-native-gifted-chat": "^1.1.1",
"react-native-i18n": "1.0.0",
"react-native-maps": "1.3.2",
diff --git a/Customer App/src/components/Menu/StatusCard/StatusCard.js b/Customer App/src/components/Menu/StatusCard/StatusCard.js
index cce1526..2f476d4 100644
--- a/Customer App/src/components/Menu/StatusCard/StatusCard.js
+++ b/Customer App/src/components/Menu/StatusCard/StatusCard.js
@@ -1,67 +1,67 @@
-import { useNavigation, useTheme } from '@react-navigation/native'
-import React, { useContext } from 'react'
-import { FlatList, TouchableOpacity, View } from 'react-native'
-import ConfigurationContext from '../../../context/Configuration'
-import UserContext from '../../../context/User'
-import { alignment } from '../../../utils/alignment'
-import { NAVIGATION_SCREEN } from '../../../utils/constant'
-import Spinner from '../../Spinner/Spinner'
-import TextDefault from '../../Text/TextDefault/TextDefault'
-import TextError from '../../Text/TextError/TextError'
-import useStyle from './styles'
+import { useNavigation, useTheme } from "@react-navigation/native";
+import React, { useContext } from "react";
+import { FlatList, TouchableOpacity, View } from "react-native";
+import ConfigurationContext from "../../../context/Configuration";
+import UserContext from "../../../context/User";
+import { alignment } from "../../../utils/alignment";
+import { NAVIGATION_SCREEN } from "../../../utils/constant";
+import Spinner from "../../Spinner/Spinner";
+import TextDefault from "../../Text/TextDefault/TextDefault";
+import TextError from "../../Text/TextError/TextError";
+import useStyle from "./styles";
export const orderStatuses = [
{
- key: 'PENDING',
+ key: "PENDING",
status: 1,
- statusText: 'Your order is still pending.'
+ statusText: "Your order is still pending.",
},
{
- key: 'ACCEPTED',
+ key: "ACCEPTED",
status: 2,
- statusText: 'Restaurant is preparing Food.'
+ statusText: "Restaurant is preparing Food.",
},
{
- key: 'PICKED',
+ key: "PICKED",
status: 3,
- statusText: 'Rider is on the way.'
+ statusText: "Rider is on the way.",
},
{
- key: 'DELIVERED',
+ key: "DELIVERED",
status: 4,
- statusText: 'Order is delivered.'
+ statusText: "Order is delivered.",
},
{
- key: 'COMPLETED',
+ key: "COMPLETED",
status: 5,
- statusText: 'Order is completed.'
- }
-]
+ statusText: "Order is completed.",
+ },
+];
-const orderStatusActive = ['PENDING', 'PICKED', 'ACCEPTED']
+const orderStatusActive = ["PENDING", "PICKED", "ACCEPTED"];
const StatusCard = () => {
- const { colors } = useTheme()
- const styles = useStyle()
- const navigation = useNavigation()
+ const { colors } = useTheme();
+ const styles = useStyle();
+ const navigation = useNavigation();
const {
loadingOrders,
errorOrders,
orders,
networkStatusOrders,
- fetchOrders
- } = useContext(UserContext)
- const configuration = useContext(ConfigurationContext)
+ fetchOrders,
+ } = useContext(UserContext);
+ const configuration = useContext(ConfigurationContext);
- const checkStatus = status => {
- const obj = orderStatuses.filter(x => {
- return x.key === status
- })
- return obj[0]
- }
+ const checkStatus = (status) => {
+ const obj = orderStatuses.filter((x) => {
+ return x.key === status;
+ });
+ return obj[0];
+ };
- if (loadingOrders) return
- if (errorOrders) return {errorOrders.message}
+ if (loadingOrders) return ;
+ if (errorOrders) return {errorOrders.message};
return (
{
horizontal={true}
refreshing={networkStatusOrders === 4}
onRefresh={() => networkStatusOrders === 7 && fetchOrders()}
- data={orders.filter(o => orderStatusActive.includes(o.order_status))}
- keyExtractor={item => item._id}
+ data={orders.filter((o) => orderStatusActive.includes(o.order_status))}
+ //keyExtractor={(item) => item._id}
+ keyExtractor={(item, index) => String(index)}
renderItem={({ item, index }) => (
{
onPress={() =>
navigation.navigate(NAVIGATION_SCREEN.OrderDetail, {
_id: item._id,
- currency_symbol: configuration.currency_symbol
+ currency_symbol: configuration.currency_symbol,
})
- }>
+ }
+ >
@@ -95,8 +97,8 @@ const StatusCard = () => {
Status
-
- {item.order_status}{' '}
+
+ {item.order_status}{" "}
{/* {checkStatus(item.order_status).status}.{' '} */}(
{checkStatus(item.order_status).statusText})
@@ -107,7 +109,7 @@ const StatusCard = () => {
)}
/>
- )
-}
+ );
+};
-export default StatusCard
+export default StatusCard;
diff --git a/Customer App/src/screens/Addresses/Addresses.js b/Customer App/src/screens/Addresses/Addresses.js
index 5af9445..a11b548 100644
--- a/Customer App/src/screens/Addresses/Addresses.js
+++ b/Customer App/src/screens/Addresses/Addresses.js
@@ -1,59 +1,59 @@
-import { useMutation } from '@apollo/react-hooks'
-import { useNavigation, useTheme } from '@react-navigation/native'
-import gql from 'graphql-tag'
-import React, { useContext, useLayoutEffect } from 'react'
-import { FlatList, TouchableOpacity, View } from 'react-native'
-import i18n from '../../../i18n'
-import { deleteAddress } from '../../apollo/server'
-import EmptyAddress from '../../assets/images/SVG/imageComponents/EmptyAddress'
+import { useMutation } from "@apollo/react-hooks";
+import { useNavigation, useTheme } from "@react-navigation/native";
+import gql from "graphql-tag";
+import React, { useContext, useLayoutEffect } from "react";
+import { FlatList, TouchableOpacity, View } from "react-native";
+import i18n from "../../../i18n";
+import { deleteAddress } from "../../apollo/server";
+import EmptyAddress from "../../assets/images/SVG/imageComponents/EmptyAddress";
import {
CustomIcon,
RightButton,
TextDefault,
- WrapperView
-} from '../../components'
-import UserContext from '../../context/User'
-import { COLORS } from '../../Theme'
-import { alignment } from '../../utils/alignment'
-import { ICONS_NAME, NAVIGATION_SCREEN } from '../../utils/constant'
-import { scale } from '../../utils/scaling'
-import useStyle from './styles'
+ WrapperView,
+} from "../../components";
+import UserContext from "../../context/User";
+import { COLORS } from "../../Theme";
+import { alignment } from "../../utils/alignment";
+import { ICONS_NAME, NAVIGATION_SCREEN } from "../../utils/constant";
+import { scale } from "../../utils/scaling";
+import useStyle from "./styles";
const DELETE_ADDRESS = gql`
${deleteAddress}
-`
+`;
function Addresses() {
- const styles = useStyle()
- const { colors } = useTheme()
- const navigation = useNavigation()
- const { profile } = useContext(UserContext)
- const [mutate, { loading: loadingMutation }] = useMutation(DELETE_ADDRESS)
+ const styles = useStyle();
+ const { colors } = useTheme();
+ const navigation = useNavigation();
+ const { profile } = useContext(UserContext);
+ const [mutate, { loading: loadingMutation }] = useMutation(DELETE_ADDRESS);
useLayoutEffect(() => {
navigation.setOptions({
- title: i18n.t('myAddresses'),
+ title: i18n.t("myAddresses"),
headerRight: () => (
navigation.navigate(NAVIGATION_SCREEN.NewAddress)}
/>
- )
- })
- }, [navigation])
+ ),
+ });
+ }, [navigation]);
const addressIcons = {
Home: ICONS_NAME.Home,
Work: ICONS_NAME.Cart,
- Other: ICONS_NAME.Location
- }
+ Other: ICONS_NAME.Location,
+ };
const colorIcons = {
Other: COLORS.primary,
Home: COLORS.redishPink,
- Work: COLORS.primaryLightBlue
- }
+ Work: COLORS.primaryLightBlue,
+ };
const emptyView = React.memo(() => {
return (
@@ -66,28 +66,30 @@ function Addresses() {
textColor={colors.fontMainColor}
bold
H5
- style={alignment.Msmall}>
+ style={alignment.Msmall}
+ >
No Addresses found.
You haven't saved any address yet.
- {'\n'}
+ {"\n"}
Click Add New Address to get started
navigation.navigate(NAVIGATION_SCREEN.NewAddress)}>
+ onPress={() => navigation.navigate(NAVIGATION_SCREEN.NewAddress)}
+ >
Add New Address
- )
- })
+ );
+ });
return (
@@ -101,7 +103,8 @@ function Addresses() {
: { flexGrow: 1 }
}
ListEmptyComponent={emptyView}
- keyExtractor={item => item._id}
+ // keyExtractor={(item) => item._id}
+ keyExtractor={(item, index) => String(index)}
ItemSeparatorComponent={() => }
ListHeaderComponent={() => }
renderItem={({ item: address }) => (
@@ -110,16 +113,18 @@ function Addresses() {
style={styles.width100}
onPress={() => {
navigation.navigate(NAVIGATION_SCREEN.EditAddress, {
- ...address
- })
- }}>
+ ...address,
+ });
+ }}
+ >
+ alignItems: "center",
+ flexDirection: "row",
+ flex: 1,
+ }}
+ >
+ style={[alignment.MTxSmall, alignment.MLsmall]}
+ >
{address.label}
@@ -139,9 +145,10 @@ function Addresses() {
style={[styles.iconButton, alignment.MRsmall]}
onPress={() => {
navigation.navigate(NAVIGATION_SCREEN.EditAddress, {
- ...address
- })
- }}>
+ ...address,
+ });
+ }}
+ >
{
- mutate({ variables: { id: address._id } })
- }}>
+ mutate({ variables: { id: address._id } });
+ }}
+ >
+ style={alignment.MBsmall}
+ >
All rights are reserved by Enatega
- )
+ );
}
-export default React.memo(Addresses)
+export default React.memo(Addresses);
diff --git a/Customer App/src/screens/CartAddress/CartAddress.js b/Customer App/src/screens/CartAddress/CartAddress.js
index 10416b9..2c129ef 100644
--- a/Customer App/src/screens/CartAddress/CartAddress.js
+++ b/Customer App/src/screens/CartAddress/CartAddress.js
@@ -1,56 +1,56 @@
-import { useMutation } from '@apollo/react-hooks'
-import { useNavigation, useTheme } from '@react-navigation/native'
-import gql from 'graphql-tag'
-import React, { useContext, useLayoutEffect } from 'react'
-import { FlatList, TouchableOpacity, View } from 'react-native'
-import i18n from '../../../i18n'
-import { selectAddress } from '../../apollo/server'
+import { useMutation } from "@apollo/react-hooks";
+import { useNavigation, useTheme } from "@react-navigation/native";
+import gql from "graphql-tag";
+import React, { useContext, useLayoutEffect } from "react";
+import { FlatList, TouchableOpacity, View } from "react-native";
+import i18n from "../../../i18n";
+import { selectAddress } from "../../apollo/server";
import {
CustomIcon,
RightButton,
TextDefault,
- WrapperView
-} from '../../components'
-import RadioButton from '../../components/FdRadioBtn/RadioBtn'
-import UserContext from '../../context/User'
-import { alignment } from '../../utils/alignment'
-import { ICONS_NAME, NAVIGATION_SCREEN } from '../../utils/constant'
-import { scale } from '../../utils/scaling'
-import useStyle from './styles'
+ WrapperView,
+} from "../../components";
+import RadioButton from "../../components/FdRadioBtn/RadioBtn";
+import UserContext from "../../context/User";
+import { alignment } from "../../utils/alignment";
+import { ICONS_NAME, NAVIGATION_SCREEN } from "../../utils/constant";
+import { scale } from "../../utils/scaling";
+import useStyle from "./styles";
const SELECT_ADDRESS = gql`
${selectAddress}
-`
+`;
function CartAddresses() {
- const { colors } = useTheme()
- const styles = useStyle()
- const navigation = useNavigation()
- const { profile } = useContext(UserContext)
+ const { colors } = useTheme();
+ const styles = useStyle();
+ const navigation = useNavigation();
+ const { profile } = useContext(UserContext);
- const [mutate] = useMutation(SELECT_ADDRESS, { onError })
+ const [mutate] = useMutation(SELECT_ADDRESS, { onError });
useLayoutEffect(() => {
navigation.setOptions({
- title: i18n.t('myAddresses'),
+ title: i18n.t("myAddresses"),
headerRight: () => (
navigation.navigate(NAVIGATION_SCREEN.NewAddress)}
/>
- )
- })
- }, [navigation])
+ ),
+ });
+ }, [navigation]);
function onError(error) {
- console.log(error)
+ console.log(error);
}
- const onSelectAddress = address => {
- mutate({ variables: { id: address._id } })
- navigation.goBack()
- }
+ const onSelectAddress = (address) => {
+ mutate({ variables: { id: address._id } });
+ navigation.goBack();
+ };
return (
@@ -59,7 +59,7 @@ function CartAddresses() {
showsVerticalScrollIndicator={false}
style={styles.flex}
data={profile.addresses}
- keyExtractor={item => item._id}
+ keyExtractor={(item, index) => String(index)}
contentContainerStyle={styles.contentContainer}
ItemSeparatorComponent={() => }
ListHeaderComponent={() => }
@@ -69,8 +69,9 @@ function CartAddresses() {
activeOpacity={0.7}
style={styles.width100}
onPress={() => {
- onSelectAddress(address)
- }}>
+ onSelectAddress(address);
+ }}
+ >
@@ -78,14 +79,14 @@ function CartAddresses() {
size={10}
outerColor={colors.radioOuterColor}
innerColor={colors.radioColor}
- animation={'bounceIn'}
+ animation={"bounceIn"}
isSelected={address.selected}
onPress={() => {
- onSelectAddress(address)
+ onSelectAddress(address);
}}
/>
-
+
{address.label}
navigation.navigate(NAVIGATION_SCREEN.EditAddress, {
- ...address
+ ...address,
})
- }>
+ }
+ >
+ bold
+ >
{address.delivery_address}
+ bold
+ >
{address.details}
@@ -125,7 +129,7 @@ function CartAddresses() {
/>
- )
+ );
}
-export default CartAddresses
+export default CartAddresses;
diff --git a/Customer App/src/screens/Chat/Chat.js b/Customer App/src/screens/Chat/Chat.js
index fdffb04..be21c99 100644
--- a/Customer App/src/screens/Chat/Chat.js
+++ b/Customer App/src/screens/Chat/Chat.js
@@ -1,90 +1,90 @@
-import { Feather, FontAwesome } from '@expo/vector-icons'
-import { useNavigation, useTheme } from '@react-navigation/native'
-import React, { useCallback, useEffect, useState } from 'react'
-import { Keyboard, View } from 'react-native'
+import { Feather, FontAwesome } from "@expo/vector-icons";
+import { useNavigation, useTheme } from "@react-navigation/native";
+import React, { useCallback, useEffect, useState } from "react";
+import { Keyboard, View } from "react-native";
import {
Bubble,
GiftedChat,
InputToolbar,
- Send
-} from 'react-native-gifted-chat'
-import { TextDefault, WrapperView } from '../../components'
-import { alignment } from '../../utils/alignment'
-import { scale } from '../../utils/scaling'
-import useStyle from './styles'
+ Send,
+} from "react-native-gifted-chat";
+import { TextDefault, WrapperView } from "../../components";
+import { alignment } from "../../utils/alignment";
+import { scale } from "../../utils/scaling";
+import useStyle from "./styles";
const UserInfo = {
_id: 1,
- name: 'Jason',
- active: true
-}
+ name: "Jason",
+ active: true,
+};
function Chat() {
- const styles = useStyle()
- const { colors } = useTheme()
- const navigation = useNavigation()
- const [messages, setMessages] = useState([])
- const [isTyping, setIsTyping] = useState(false)
+ const styles = useStyle();
+ const { colors } = useTheme();
+ const navigation = useNavigation();
+ const [messages, setMessages] = useState([]);
+ const [isTyping, setIsTyping] = useState(false);
useEffect(() => {
- Keyboard.addListener('keyboardDidShow', _keyboardDidShow)
- Keyboard.addListener('keyboardDidHide', _keyboardDidHide)
+ Keyboard.addListener("keyboardDidShow", _keyboardDidShow);
+ Keyboard.addListener("keyboardDidHide", _keyboardDidHide);
// cleanup function
return () => {
- Keyboard.removeListener('keyboardDidShow', _keyboardDidShow)
- Keyboard.removeListener('keyboardDidHide', _keyboardDidHide)
- }
- }, [])
+ Keyboard.remove("keyboardDidShow", _keyboardDidShow);
+ Keyboard.remove("keyboardDidHide", _keyboardDidHide);
+ };
+ }, []);
- const _keyboardDidShow = () => setIsTyping(true)
- const _keyboardDidHide = () => setIsTyping(false)
+ const _keyboardDidShow = () => setIsTyping(true);
+ const _keyboardDidHide = () => setIsTyping(false);
useEffect(() => {
navigation.setOptions({
- title: 'Chat'
- })
+ title: "Chat",
+ });
setMessages([
{
_id: 1,
- text: 'How can I help you?',
+ text: "How can I help you?",
sent: true,
received: true,
createdAt: new Date(),
user: {
_id: 2,
- name: 'React Native',
- avatar: 'https://placeimg.com/140/140/any'
- }
- }
- ])
- }, [navigation])
+ name: "React Native",
+ avatar: "https://placeimg.com/140/140/any",
+ },
+ },
+ ]);
+ }, [navigation]);
const onSend = useCallback((messages = []) => {
- setMessages(previousMessages =>
+ setMessages((previousMessages) =>
GiftedChat.append(previousMessages, messages)
- )
- }, [])
+ );
+ }, []);
- const renderBubble = props => {
+ const renderBubble = (props) => {
return (
- )
- }
+ );
+ };
- const renderSend = props => (
+ const renderSend = (props) => (
- )
- const customtInputToolbar = props => {
+ );
+ const customtInputToolbar = (props) => {
return (
- )
- }
+ );
+ };
return (
@@ -166,7 +166,7 @@ function Chat() {
color={UserInfo.active ? colors.active : colors.fontSecondColor}
/>
- {UserInfo.active ? UserInfo.name : 'Offline'}
+ {UserInfo.active ? UserInfo.name : "Offline"}
onSend(messages)}
+ onSend={(messages) => onSend(messages)}
renderAvatar={() => null}
renderBubble={renderBubble}
renderInputToolbar={customtInputToolbar}
@@ -192,20 +192,20 @@ function Chat() {
// }
timeTextStyle={{
left: {
- width: '100%',
+ width: "100%",
color: colors.fontMainColor,
fontSize: 11,
- textAlign: 'right'
+ textAlign: "right",
},
right: {
color: colors.fontMainColor,
- fontSize: 11
- }
+ fontSize: 11,
+ },
}}
/>
- )
+ );
}
-export default Chat
+export default Chat;
diff --git a/Customer App/src/screens/CreateAccount/CreateAccount.js b/Customer App/src/screens/CreateAccount/CreateAccount.js
index cca5398..b94b694 100644
--- a/Customer App/src/screens/CreateAccount/CreateAccount.js
+++ b/Customer App/src/screens/CreateAccount/CreateAccount.js
@@ -1,17 +1,18 @@
-import { useMutation } from '@apollo/react-hooks'
-import { FontAwesome } from '@expo/vector-icons'
-import { useNavigation, useTheme } from '@react-navigation/native'
-import * as AppAuth from 'expo-app-auth'
-import * as AppleAuthentication from 'expo-apple-authentication'
-import Constants from 'expo-constants'
-import * as Facebook from 'expo-facebook'
-import * as Google from 'expo-google-app-auth'
-import * as Notifications from 'expo-notifications'
-import gql from 'graphql-tag'
-import React, { useContext, useEffect, useState } from 'react'
-import { Platform, TouchableOpacity, View } from 'react-native'
-import getEnvVars from '../../../environment'
-import { login } from '../../apollo/server'
+import { useMutation } from "@apollo/react-hooks";
+import { FontAwesome } from "@expo/vector-icons";
+import { useNavigation, useTheme } from "@react-navigation/native";
+import * as AppAuth from "expo-app-auth";
+import * as AppleAuthentication from "expo-apple-authentication";
+import Constants from "expo-constants";
+import * as Facebook from "expo-facebook";
+//import * as Google from 'expo-google-app-auth'
+import * as Google from "expo-auth-session/providers/google";
+import * as Notifications from "expo-notifications";
+import gql from "graphql-tag";
+import React, { useContext, useEffect, useState } from "react";
+import { Platform, TouchableOpacity, View } from "react-native";
+import getEnvVars from "../../../environment";
+import { login } from "../../apollo/server";
import {
EnategaImage,
FdEmailBtn,
@@ -21,132 +22,137 @@ import {
RegistrationHeader,
Spinner,
TextDefault,
- WrapperView
-} from '../../components'
-import UserContext from '../../context/User'
-import { alignment } from '../../utils/alignment'
-import Analytics from '../../utils/analytics'
-import { NAVIGATION_SCREEN } from '../../utils/constant'
-import { scale } from '../../utils/scaling'
-import useStyle from './styles'
+ WrapperView,
+} from "../../components";
+import UserContext from "../../context/User";
+import { alignment } from "../../utils/alignment";
+import Analytics from "../../utils/analytics";
+import { NAVIGATION_SCREEN } from "../../utils/constant";
+import { scale } from "../../utils/scaling";
+import useStyle from "./styles";
-const { IOS_CLIENT_ID_GOOGLE, ANDROID_CLIENT_ID_GOOGLE, FACEBOOK_APP_ID } =
- getEnvVars()
+const {
+ IOS_CLIENT_ID_GOOGLE,
+ ANDROID_CLIENT_ID_GOOGLE,
+ FACEBOOK_APP_ID,
+ Expo_CLIENT_ID_GOOGLE,
+} = getEnvVars();
const LOGIN = gql`
${login}
-`
+`;
-const Logo = require('../../../assets/logo.png')
+const Logo = require("../../../assets/logo.png");
const CreateAccount = () => {
- const styles = useStyle()
- const { colors } = useTheme()
- const navigation = useNavigation()
- const [enableApple, setEnableApple] = useState(false)
- const [loginButton, loginButtonSetter] = useState(null)
- const [loading, setLoading] = useState(false)
+ const styles = useStyle();
+ const { colors } = useTheme();
+ const navigation = useNavigation();
+ const [enableApple, setEnableApple] = useState(false);
+ const [loginButton, loginButtonSetter] = useState(null);
+ const [loading, setLoading] = useState(false);
- const { setTokenAsync } = useContext(UserContext)
+ const { setTokenAsync } = useContext(UserContext);
useEffect(() => {
- checkIfSupportsAppleAuthentication()
- }, [])
+ checkIfSupportsAppleAuthentication();
+ }, []);
- const [mutate] = useMutation(LOGIN, { onCompleted, onError })
+ const [mutate] = useMutation(LOGIN, { onCompleted, onError });
async function checkIfSupportsAppleAuthentication() {
- setEnableApple(await AppleAuthentication.isAvailableAsync())
+ setEnableApple(await AppleAuthentication.isAvailableAsync());
}
async function onCompleted(data) {
try {
const trackingOpts = {
id: data.login.userId,
- usernameOrEmail: data.login.email
- }
- Analytics.identify(data.login.userId, trackingOpts)
- Analytics.track(Analytics.events.USER_CREATED_ACCOUNT, trackingOpts)
- setTokenAsync(data.login.token)
- navigation.navigate(NAVIGATION_SCREEN.Menu)
+ usernameOrEmail: data.login.email,
+ };
+ Analytics.identify(data.login.userId, trackingOpts);
+ Analytics.track(Analytics.events.USER_CREATED_ACCOUNT, trackingOpts);
+ setTokenAsync(data.login.token);
+ navigation.navigate(NAVIGATION_SCREEN.Menu);
} catch (e) {
- console.log(e)
+ console.log(e);
} finally {
- setLoading(false)
+ setLoading(false);
}
}
function onError(error) {
try {
- console.log(JSON.stringify(error))
+ console.log(JSON.stringify(error));
FlashMessage({
- message: error.graphQLErrors[0].message
- })
- loginButtonSetter(null)
+ message: error.graphQLErrors[0].message,
+ });
+ loginButtonSetter(null);
} catch (e) {
- console.log(e)
+ console.log(e);
} finally {
- setLoading(false)
+ setLoading(false);
}
}
async function mutateLogin(user) {
- setLoading(true)
- let notificationToken = null
+ setLoading(true);
+ let notificationToken = null;
if (Constants.isDevice) {
const { status: existingStatus } =
- await Notifications.getPermissionsAsync()
- if (existingStatus === 'granted') {
- notificationToken = (await Notifications.getExpoPushTokenAsync()).data
+ await Notifications.getPermissionsAsync();
+ if (existingStatus === "granted") {
+ notificationToken = (await Notifications.getExpoPushTokenAsync()).data;
}
}
- mutate({ variables: { ...user, notificationToken } })
+ mutate({ variables: { ...user, notificationToken } });
}
function renderAppleAction() {
- if (loading && loginButton === 'Apple') {
+ if (loading && loginButton === "Apple") {
return (
- )
+ );
}
return (
{
+ onPress={async () => {
try {
const credential = await AppleAuthentication.signInAsync({
requestedScopes: [
AppleAuthentication.AppleAuthenticationScope.FULL_NAME,
- AppleAuthentication.AppleAuthenticationScope.EMAIL
- ]
- })
+ AppleAuthentication.AppleAuthenticationScope.EMAIL,
+ ],
+ });
if (credential) {
const user = {
appleId: credential.user,
- phone: '',
+ phone: "",
email: credential.email,
- password: '',
+ password: "",
name:
credential.fullName.givenName +
- ' ' +
+ " " +
credential.fullName.familyName,
- picture: '',
- type: 'apple'
- }
- mutateLogin(user)
+ picture: "",
+ type: "apple",
+ };
+ mutateLogin(user);
}
- loginButtonSetter('Apple')
+ loginButtonSetter("Apple");
// signed in
} catch (e) {
- if (e.code === 'ERR_CANCELLED') {
+ if (e.code === "ERR_CANCELLED") {
// handle that the user canceled the sign-in flow
- loginButtonSetter(null)
+ loginButtonSetter(null);
} else {
// handle other errors
- loginButtonSetter(null)
+ loginButtonSetter(null);
}
}
- }}>
+ }}
+ >
{
Signup with Apple
- )
+ );
}
async function _facebookSignup() {
try {
- await Facebook.initializeAsync({ appId: FACEBOOK_APP_ID })
+ await Facebook.initializeAsync({ appId: FACEBOOK_APP_ID });
} catch (err) {
- console.log('err', err)
+ console.log("err", err);
}
try {
const { type, token } = await Facebook.logInWithReadPermissionsAsync({
- permissions: ['public_profile', 'email']
- })
- if (type === 'success') {
+ permissions: ["public_profile", "email"],
+ });
+ if (type === "success") {
// Get the user's name using Facebook's Graph API
const response = await fetch(
`https://graph.facebook.com/me?access_token=${token}&fields=email,name`
- )
- const user = await response.json()
- return user
+ );
+ const user = await response.json();
+ return user;
}
} catch (err) {
- console.log('error', err)
+ console.log("error", err);
}
}
- async function _googleSignup() {
- try {
- const { type, user } = await Google.logInAsync({
- iosClientId: IOS_CLIENT_ID_GOOGLE,
- iosStandaloneAppClientId: IOS_CLIENT_ID_GOOGLE,
- androidClientId: ANDROID_CLIENT_ID_GOOGLE,
- androidStandaloneAppClientId: ANDROID_CLIENT_ID_GOOGLE,
- redirectUrl: `${AppAuth.OAuthRedirect}:/oauth2redirect/google`,
- scopes: ['profile', 'email']
- })
- if (type === 'success') {
- /* `accessToken` is now valid and can be used to get data from the Google API with HTTP requests */
- return user
- }
- } catch (err) {
- console.log('err', err)
+
+ const [googleRequest, googleResponse, googlePromptAsync] =
+ Google.useAuthRequest({
+ expoClientId: Expo_CLIENT_ID_GOOGLE,
+ iosClientId: IOS_CLIENT_ID_GOOGLE,
+ iosStandaloneAppClientId: IOS_CLIENT_ID_GOOGLE,
+ androidClientId: ANDROID_CLIENT_ID_GOOGLE,
+ androidStandaloneAppClientId: ANDROID_CLIENT_ID_GOOGLE,
+ //redirectUrl: `${AuthSession.OAuthRedirect}:/oauth2redirect/google`,
+ scopes: ["profile", "email"],
+ ...{ useProxy: true },
+ });
+
+ const googleSignUp = () => {
+ if (googleResponse?.type === "success") {
+ const { authentication } = googleResponse;
+ console.log(authentication.accessToken);
+ (async () => {
+ const userInfoResponse = await fetch(
+ "https://www.googleapis.com/oauth2/v1/userinfo?alt=json",
+ {
+ headers: { Authorization: `Bearer ${authentication.accessToken}` },
+ }
+ );
+ const googleUser = await userInfoResponse.json();
+ const user = {
+ phone: "",
+ email: googleUser.email,
+ password: "",
+ name: googleUser.name,
+ picture: googleUser.picture,
+ type: "google",
+ };
+ mutateLogin(user);
+ })();
}
- }
+ };
+
+ useEffect(() => {
+ googleSignUp();
+ }, [googleResponse]);
function renderFacebookAction() {
return (
{
- loginButtonSetter('Facebook')
+ loginButtonSetter("Facebook");
}}
- onPress={async() => {
- const facebookUser = await _facebookSignup()
+ onPress={async () => {
+ const facebookUser = await _facebookSignup();
if (facebookUser) {
const user = {
facebookId: facebookUser.id,
- phone: '',
+ phone: "",
email: facebookUser.email,
- password: '',
+ password: "",
name: facebookUser.name,
- picture: '',
- type: 'facebook'
- }
- mutateLogin(user)
+ picture: "",
+ type: "facebook",
+ };
+ mutateLogin(user);
}
}}
/>
- )
+ );
}
function renderGoogleAction() {
return (
{
- loginButtonSetter('Google')
- }}
- onPress={async() => {
- const googleUser = await _googleSignup()
- if (googleUser) {
- const user = {
- phone: '',
- email: googleUser.email,
- password: '',
- name: googleUser.name,
- picture: googleUser.photoUrl,
- type: 'google'
- }
- mutateLogin(user)
- }
+ loginButtonSetter("Google");
}}
+ disabled={!googleRequest}
+ onPress={() => googlePromptAsync()}
/>
- )
+ );
}
function renderEmailAction() {
return (
{
- loginButtonSetter('Email')
- navigation.navigate(NAVIGATION_SCREEN.Register)
+ loginButtonSetter("Email");
+ navigation.navigate(NAVIGATION_SCREEN.Register);
}}
/>
- )
+ );
}
return (
-
+
{
/>
- {Platform.OS === 'ios' && renderFacebookAction()}
+ {Platform.OS === "ios" && renderFacebookAction()}
{renderGoogleAction()}
{enableApple && (
{renderAppleAction()}
@@ -286,7 +303,8 @@ const CreateAccount = () => {
navigation.navigate(NAVIGATION_SCREEN.Login)}>
+ onPress={() => navigation.navigate(NAVIGATION_SCREEN.Login)}
+ >
Already a member? Log in
@@ -295,6 +313,6 @@ const CreateAccount = () => {
- )
-}
-export default CreateAccount
+ );
+};
+export default CreateAccount;
diff --git a/Customer App/src/screens/Menu/Menu.js b/Customer App/src/screens/Menu/Menu.js
index b744306..6c3735c 100755
--- a/Customer App/src/screens/Menu/Menu.js
+++ b/Customer App/src/screens/Menu/Menu.js
@@ -1,51 +1,51 @@
-import { useQuery } from '@apollo/react-hooks'
-import { useNavigation } from '@react-navigation/native'
-import gql from 'graphql-tag'
-import React, { useContext, useLayoutEffect } from 'react'
-import { FlatList, View } from 'react-native'
-import { categories } from '../../apollo/server'
-import EmptyFood from '../../assets/images/SVG/imageComponents/EmptyFood'
+import { useQuery } from "@apollo/react-hooks";
+import { useNavigation } from "@react-navigation/native";
+import gql from "graphql-tag";
+import React, { useContext, useLayoutEffect } from "react";
+import { FlatList, View } from "react-native";
+import { categories } from "../../apollo/server";
+import EmptyFood from "../../assets/images/SVG/imageComponents/EmptyFood";
import {
MenuCard,
Spinner,
StatusCard,
TextDefault,
TextError,
- WrapperView
-} from '../../components'
-import UserContext from '../../context/User'
-import { alignment } from '../../utils/alignment'
-import { NAVIGATION_SCREEN } from '../../utils/constant'
-import { scale } from '../../utils/scaling'
-import useStyle from './styles'
+ WrapperView,
+} from "../../components";
+import UserContext from "../../context/User";
+import { alignment } from "../../utils/alignment";
+import { NAVIGATION_SCREEN } from "../../utils/constant";
+import { scale } from "../../utils/scaling";
+import useStyle from "./styles";
// constants
const CATEGORIES = gql`
${categories}
-`
+`;
function Menu() {
- const styles = useStyle()
- const navigation = useNavigation()
- const { isLoggedIn, profile } = useContext(UserContext)
- const { data, refetch, networkStatus, loading, error } = useQuery(CATEGORIES)
+ const styles = useStyle();
+ const navigation = useNavigation();
+ const { isLoggedIn, profile } = useContext(UserContext);
+ const { data, refetch, networkStatus, loading, error } = useQuery(CATEGORIES);
useLayoutEffect(() => {
navigation.setOptions({
- title: 'Home'
- })
- }, [])
+ title: "Home",
+ });
+ }, []);
function emptyView() {
if (loading) {
- return
+ return ;
} else if (error) {
return (
- )
+ );
} else {
return (
@@ -54,7 +54,7 @@ function Menu() {
No item found
- )
+ );
}
}
@@ -65,7 +65,7 @@ function Menu() {
style={styles.flex}
contentContainerStyle={styles.contentContainer}
showsVerticalScrollIndicator={false}
- keyExtractor={item => item._id}
+ keyExtractor={(item, index) => String(index)}
ListEmptyComponent={emptyView()}
data={loading ? [] : error ? [] : data.categories}
refreshing={networkStatus === 4}
@@ -80,28 +80,28 @@ function Menu() {
Featured
>
- )
+ );
}
- return null
+ return null;
}}
renderItem={({ item }) => (
navigation.navigate(NAVIGATION_SCREEN.MenuItems, {
- ...item
+ ...item,
})
}
title={item.title}
description={item.description}
- image={item.img_menu || ''}
+ image={item.img_menu || ""}
/>
)}
/>
- )
+ );
}
-export default React.memo(Menu)
+export default React.memo(Menu);
diff --git a/Customer App/src/screens/MenuItems/MenuItems.js b/Customer App/src/screens/MenuItems/MenuItems.js
index dbdecf1..2cbf3b3 100755
--- a/Customer App/src/screens/MenuItems/MenuItems.js
+++ b/Customer App/src/screens/MenuItems/MenuItems.js
@@ -247,7 +247,7 @@ function MenuItems() {
contentContainerStyle={styles.contentContaienr}
showsVerticalScrollIndicator={false}
ListHeaderComponent={renderListHeader()}
- keyExtractor={(item) => item._id}
+ keyExtractor={(item, index) => String(index)}
ListEmptyComponent={emptyView}
data={loading ? [] : error ? [] : sortData(data.foodByCategory)}
refreshing={networkStatus === 4}
diff --git a/Customer App/src/screens/MyOrders/MyOrders.js b/Customer App/src/screens/MyOrders/MyOrders.js
index 986c050..7897fc0 100755
--- a/Customer App/src/screens/MyOrders/MyOrders.js
+++ b/Customer App/src/screens/MyOrders/MyOrders.js
@@ -1,10 +1,10 @@
-import { useApolloClient } from '@apollo/react-hooks'
-import { useNavigation, useTheme } from '@react-navigation/native'
-import React, { useContext, useLayoutEffect } from 'react'
-import { FlatList, TouchableOpacity, View } from 'react-native'
-import uuid from 'uuid'
-import i18n from '../../../i18n'
-import EmptyOrder from '../../assets/images/SVG/imageComponents/EmptyOrder'
+import { useApolloClient } from "@apollo/react-hooks";
+import { useNavigation, useTheme } from "@react-navigation/native";
+import React, { useContext, useLayoutEffect } from "react";
+import { FlatList, TouchableOpacity, View } from "react-native";
+import uuid from "uuid";
+import i18n from "../../../i18n";
+import EmptyOrder from "../../assets/images/SVG/imageComponents/EmptyOrder";
import {
ActiveOrders,
CustomIcon,
@@ -12,24 +12,24 @@ import {
Spinner,
TextDefault,
TextError,
- WrapperView
-} from '../../components'
-import ConfigurationContext from '../../context/Configuration'
-import UserContext from '../../context/User'
-import { alignment } from '../../utils/alignment'
-import { ICONS_NAME, NAVIGATION_SCREEN } from '../../utils/constant'
-import { scale } from '../../utils/scaling'
-import useStyle from './style'
+ WrapperView,
+} from "../../components";
+import ConfigurationContext from "../../context/Configuration";
+import UserContext from "../../context/User";
+import { alignment } from "../../utils/alignment";
+import { ICONS_NAME, NAVIGATION_SCREEN } from "../../utils/constant";
+import { scale } from "../../utils/scaling";
+import useStyle from "./style";
-const orderStatusActive = ['PENDING', 'PICKED', 'ACCEPTED']
-const orderStatusInactive = ['DELIVERED', 'COMPLETED']
+const orderStatusActive = ["PENDING", "PICKED", "ACCEPTED"];
+const orderStatusInactive = ["DELIVERED", "COMPLETED"];
function MyOrders() {
- const styles = useStyle()
- const { colors } = useTheme()
- const client = useApolloClient()
- const navigation = useNavigation()
- const configuration = useContext(ConfigurationContext)
+ const styles = useStyle();
+ const { colors } = useTheme();
+ const client = useApolloClient();
+ const navigation = useNavigation();
+ const configuration = useContext(ConfigurationContext);
const {
orders,
loadingOrders,
@@ -37,47 +37,47 @@ function MyOrders() {
fetchOrders,
fetchMoreOrdersFunc,
networkStatusOrders,
- updateCart
- } = useContext(UserContext)
+ updateCart,
+ } = useContext(UserContext);
useLayoutEffect(() => {
navigation.setOptions({
- headerTitle: i18n.t('titleOrders'),
- headerRight: null
- })
- }, [navigation])
+ headerTitle: i18n.t("titleOrders"),
+ headerRight: null,
+ });
+ }, [navigation]);
// add items to cart and navigate to cart screen
async function onReOrder({ order }) {
const data = {
- cartItems: order.items.map(item => {
+ cartItems: order.items.map((item) => {
return {
...item.food,
key: uuid.v4(),
- __typename: 'CartItem',
+ __typename: "CartItem",
variation: {
- __typename: 'ItemVariation',
- _id: item.variation._id
+ __typename: "ItemVariation",
+ _id: item.variation._id,
},
quantity: item.quantity,
- addons: item.addons.map(addon => ({
+ addons: item.addons.map((addon) => ({
...addon,
- __typename: 'ItemAddon',
+ __typename: "ItemAddon",
options: addon.options.map(({ _id }) => ({
_id,
- __typename: 'ItemOption'
- }))
- }))
- }
- })
- }
- await updateCart(data.cartItems)
- navigation.navigate(NAVIGATION_SCREEN.Cart)
+ __typename: "ItemOption",
+ })),
+ })),
+ };
+ }),
+ };
+ await updateCart(data.cartItems);
+ navigation.navigate(NAVIGATION_SCREEN.Cart);
}
function emptyView() {
- if (loadingOrders) return
- if (errorOrders) return
+ if (loadingOrders) return ;
+ if (errorOrders) return ;
else {
return (
@@ -92,13 +92,14 @@ function MyOrders() {
navigation.navigate(NAVIGATION_SCREEN.Menu)}>
+ onPress={() => navigation.navigate(NAVIGATION_SCREEN.Menu)}
+ >
Start Shopping
- )
+ );
}
}
@@ -108,7 +109,7 @@ function MyOrders() {
data={
loadingOrders || errorOrders
? []
- : orders.filter(o => orderStatusInactive.includes(o.order_status))
+ : orders.filter((o) => orderStatusInactive.includes(o.order_status))
}
style={styles.container}
contentContainerStyle={styles.contentContainer}
@@ -116,17 +117,18 @@ function MyOrders() {
ListHeaderComponent={
+ activeOrders={orders.filter((o) =>
orderStatusActive.includes(o.order_status)
)}
- pastOrders={orders.filter(o =>
+ pastOrders={orders.filter((o) =>
orderStatusInactive.includes(o.order_status)
)}
loading={loadingOrders}
error={errorOrders}
/>
}
- keyExtractor={item => item._id}
+ //keyExtractor={(item) => item._id}
+ keyExtractor={(item, index) => String(index)}
refreshing={networkStatusOrders === 4}
onRefresh={() => networkStatusOrders === 7 && fetchOrders()}
renderItem={({ item }) => (
@@ -135,9 +137,10 @@ function MyOrders() {
onPress={() =>
navigation.navigate(NAVIGATION_SCREEN.OrderDetail, {
_id: item._id,
- currency_symbol: configuration.currency_symbol
+ currency_symbol: configuration.currency_symbol,
})
- }>
+ }
+ >
- {'ID: '}
+ {"ID: "}
{item.order_id}
@@ -163,9 +166,10 @@ function MyOrders() {
onReOrder({ order: item, client })}
- style={styles.subContainerRight}>
+ style={styles.subContainerRight}
+ >
-
+
- {'Re-Order'}
+ center
+ >
+ {"Re-Order"}
@@ -187,7 +192,7 @@ function MyOrders() {
onEndReached={fetchMoreOrdersFunc}
/>
- )
+ );
}
-export default MyOrders
+export default MyOrders;
diff --git a/Customer App/src/screens/Settings/Settings.js b/Customer App/src/screens/Settings/Settings.js
index 2f25a10..73a5b78 100644
--- a/Customer App/src/screens/Settings/Settings.js
+++ b/Customer App/src/screens/Settings/Settings.js
@@ -1,207 +1,207 @@
-import { useMutation } from '@apollo/react-hooks'
-import AsyncStorage from '@react-native-async-storage/async-storage'
-import { useNavigation, useTheme } from '@react-navigation/native'
-import Constants from 'expo-constants'
-import * as Device from 'expo-device'
-import * as Localization from 'expo-localization'
-import * as Notifications from 'expo-notifications'
-import * as Updates from 'expo-updates'
-import gql from 'graphql-tag'
-import React, { useContext, useEffect, useRef, useState } from 'react'
+import { useMutation } from "@apollo/react-hooks";
+import AsyncStorage from "@react-native-async-storage/async-storage";
+import { useNavigation, useTheme } from "@react-navigation/native";
+import Constants from "expo-constants";
+import * as Device from "expo-device";
+import * as Localization from "expo-localization";
+import * as Notifications from "expo-notifications";
+import * as Updates from "expo-updates";
+import gql from "graphql-tag";
+import React, { useContext, useEffect, useRef, useState } from "react";
import {
AppState,
Linking,
Platform,
StyleSheet,
TouchableOpacity,
- View
-} from 'react-native'
-import { Modalize } from 'react-native-modalize'
-import i18n from '../../../i18n'
+ View,
+} from "react-native";
+import { Modalize } from "react-native-modalize";
+import i18n from "../../../i18n";
import {
profile,
pushToken,
- updateNotificationStatus
-} from '../../apollo/server'
+ updateNotificationStatus,
+} from "../../apollo/server";
import {
CustomIcon,
FlashMessage,
Spinner,
TextDefault,
- WrapperView
-} from '../../components'
-import SwitchBtn from '../../components/FdSwitch/SwitchBtn'
-import UserContext from '../../context/User'
-import { alignment } from '../../utils/alignment'
-import { ICONS_NAME } from '../../utils/constant'
-import { scale } from '../../utils/scaling'
-import SettingModal from './components/SettingModal'
-import useStyle from './styles'
+ WrapperView,
+} from "../../components";
+import SwitchBtn from "../../components/FdSwitch/SwitchBtn";
+import UserContext from "../../context/User";
+import { alignment } from "../../utils/alignment";
+import { ICONS_NAME } from "../../utils/constant";
+import { scale } from "../../utils/scaling";
+import SettingModal from "./components/SettingModal";
+import useStyle from "./styles";
const languageTypes = [
- { value: 'English', code: 'en', index: 0 },
- { value: 'français', code: 'fr', index: 1 },
- { value: 'ភាសាខ្មែរ', code: 'km', index: 2 },
- { value: '中文', code: 'zh', index: 3 },
- { value: 'Deutsche', code: 'de', index: 4 }
-]
+ { value: "English", code: "en", index: 0 },
+ { value: "français", code: "fr", index: 1 },
+ { value: "ភាសាខ្មែរ", code: "km", index: 2 },
+ { value: "中文", code: "zh", index: 3 },
+ { value: "Deutsche", code: "de", index: 4 },
+];
const PUSH_TOKEN = gql`
${pushToken}
-`
+`;
const UPDATE_NOTIFICATION_TOKEN = gql`
${updateNotificationStatus}
-`
+`;
const PROFILE = gql`
${profile}
-`
+`;
function Settings() {
- const styles = useStyle()
- const { colors } = useTheme()
- const navigation = useNavigation()
- const { profile } = useContext(UserContext)
+ const styles = useStyle();
+ const { colors } = useTheme();
+ const navigation = useNavigation();
+ const { profile } = useContext(UserContext);
- const [languageName, languageNameSetter] = useState('English')
+ const [languageName, languageNameSetter] = useState("English");
const [offerNotification, offerNotificationSetter] = useState(
profile.is_offer_notification
- )
+ );
const [orderNotification, orderNotificationSetter] = useState(
profile.is_order_notification
- )
- const [activeRadio, activeRadioSetter] = useState(languageTypes[0].index)
+ );
+ const [activeRadio, activeRadioSetter] = useState(languageTypes[0].index);
// eslint-disable-next-line no-unused-vars
- const [appState, setAppState] = useState(AppState.currentState)
- const [uploadToken] = useMutation(PUSH_TOKEN)
+ const [appState, setAppState] = useState(AppState.currentState);
+ const [uploadToken] = useMutation(PUSH_TOKEN);
const [mutate, { loading }] = useMutation(UPDATE_NOTIFICATION_TOKEN, {
onCompleted,
onError,
- refetchQueries: [{ query: PROFILE }]
- })
- const modalizeRef = useRef(null)
+ refetchQueries: [{ query: PROFILE }],
+ });
+ const modalizeRef = useRef(null);
useEffect(() => {
navigation.setOptions({
- headerTitle: i18n.t('titleSettings'),
- headerRight: null
- })
- selectLanguage()
- checkPermission()
- }, [navigation])
+ headerTitle: i18n.t("titleSettings"),
+ headerRight: null,
+ });
+ selectLanguage();
+ checkPermission();
+ }, [navigation]);
- const _handleAppStateChange = async nextAppState => {
- if (nextAppState === 'active') {
- let token = null
- const permission = await getPermission()
- if (permission === 'granted') {
+ const _handleAppStateChange = async (nextAppState) => {
+ if (nextAppState === "active") {
+ let token = null;
+ const permission = await getPermission();
+ if (permission === "granted") {
if (!profile.notificationToken) {
- token = (await Notifications.getExpoPushTokenAsync()).data
- uploadToken({ variables: { token } })
+ token = (await Notifications.getExpoPushTokenAsync()).data;
+ uploadToken({ variables: { token } });
}
- offerNotificationSetter(profile.is_offer_notification)
- orderNotificationSetter(profile.is_order_notification)
+ offerNotificationSetter(profile.is_offer_notification);
+ orderNotificationSetter(profile.is_order_notification);
} else {
- offerNotificationSetter(false)
- orderNotificationSetter(false)
+ offerNotificationSetter(false);
+ orderNotificationSetter(false);
}
}
- setAppState(nextAppState)
- }
+ setAppState(nextAppState);
+ };
useEffect(() => {
- AppState.addEventListener('change', _handleAppStateChange)
+ AppState.addEventListener("change", _handleAppStateChange);
return () => {
- AppState.removeEventListener('change', _handleAppStateChange)
- }
- }, [])
+ AppState.remove("change", _handleAppStateChange);
+ };
+ }, []);
async function checkPermission() {
- const permission = await getPermission()
- if (permission !== 'granted') {
- offerNotificationSetter(false)
- orderNotificationSetter(false)
+ const permission = await getPermission();
+ if (permission !== "granted") {
+ offerNotificationSetter(false);
+ orderNotificationSetter(false);
} else {
- offerNotificationSetter(profile.is_offer_notification)
- orderNotificationSetter(profile.is_order_notification)
+ offerNotificationSetter(profile.is_offer_notification);
+ orderNotificationSetter(profile.is_order_notification);
}
}
async function getPermission() {
- const { status } = await Notifications.getPermissionsAsync()
- return status
+ const { status } = await Notifications.getPermissionsAsync();
+ return status;
}
async function selectLanguage() {
- const lang = await AsyncStorage.getItem('enatega-language')
+ const lang = await AsyncStorage.getItem("enatega-language");
if (lang) {
- const defLang = languageTypes.findIndex(el => el.code === lang)
- const langName = languageTypes[defLang].value
- activeRadioSetter(defLang)
- languageNameSetter(langName)
+ const defLang = languageTypes.findIndex((el) => el.code === lang);
+ const langName = languageTypes[defLang].value;
+ activeRadioSetter(defLang);
+ languageNameSetter(langName);
}
}
- const onSelectedLanguage = async active => {
- const languageInd = active
- if (Platform.OS === 'android') {
- const localization = await Localization.getLocalizationAsync()
- localization.locale = languageTypes[languageInd].code
+ const onSelectedLanguage = async (active) => {
+ const languageInd = active;
+ if (Platform.OS === "android") {
+ const localization = await Localization.getLocalizationAsync();
+ localization.locale = languageTypes[languageInd].code;
await AsyncStorage.setItem(
- 'enatega-language',
+ "enatega-language",
languageTypes[languageInd].code
- )
- Updates.reloadAsync()
+ );
+ Updates.reloadAsync();
}
- }
+ };
const onClose = () => {
- modalizeRef.current.close()
- }
+ modalizeRef.current.close();
+ };
function onCompleted() {
FlashMessage({
- message: 'Notification Status Updated'
- })
+ message: "Notification Status Updated",
+ });
}
function onError(error) {
try {
FlashMessage({
- message: error.networkError.result.errors[0].message
- })
+ message: error.networkError.result.errors[0].message,
+ });
} catch (err) {}
}
async function updateNotificationStatus(notificationCheck) {
- let orderNotify, offerNotify
+ let orderNotify, offerNotify;
if (!Device.isDevice) {
FlashMessage({
- message: 'Notification do not work on simulator'
- })
- return
+ message: "Notification do not work on simulator",
+ });
+ return;
}
- const permission = await getPermission()
- if (!profile.notificationToken || permission !== 'granted') {
- Linking.openSettings()
+ const permission = await getPermission();
+ if (!profile.notificationToken || permission !== "granted") {
+ Linking.openSettings();
}
- if (notificationCheck === 'offer') {
- offerNotificationSetter(!offerNotification)
- orderNotify = orderNotification
- offerNotify = !offerNotification
+ if (notificationCheck === "offer") {
+ offerNotificationSetter(!offerNotification);
+ orderNotify = orderNotification;
+ offerNotify = !offerNotification;
}
- if (notificationCheck === 'order') {
- orderNotificationSetter(!orderNotification)
- orderNotify = !orderNotification
- offerNotify = offerNotification
+ if (notificationCheck === "order") {
+ orderNotificationSetter(!orderNotification);
+ orderNotify = !orderNotification;
+ offerNotify = offerNotification;
}
mutate({
variables: {
offerNotification: offerNotify,
- orderNotification: orderNotify
- }
- })
+ orderNotification: orderNotify,
+ },
+ });
}
return (
@@ -213,7 +213,7 @@ function Settings() {
)}
- {Platform.OS === 'android' && (
+ {Platform.OS === "android" && (
@@ -221,7 +221,8 @@ function Settings() {
numberOfLines={1}
textColor={colors.fontSecondColor}
medium
- H5>
+ H5
+ >
Language
@@ -230,8 +231,9 @@ function Settings() {
modalizeRef.current.open('top')}
- style={styles.button}>
+ onPress={() => modalizeRef.current.open("top")}
+ style={styles.button}
+ >
{
- updateNotificationStatus('offer')
+ updateNotificationStatus("offer");
}}
- style={[styles.notificationContainer, styles.shadow]}>
+ style={[styles.notificationContainer, styles.shadow]}
+ >
- {' '}
- Receive Special Offers{' '}
+ textColor={colors.statusSecondColor}
+ >
+ {" "}
+ Receive Special Offers{" "}
{
- updateNotificationStatus('offer')
+ updateNotificationStatus("offer");
}}
/>
@@ -265,20 +269,22 @@ function Settings() {
{
- updateNotificationStatus('order')
+ updateNotificationStatus("order");
}}
- style={[styles.notificationContainer, styles.shadow]}>
+ style={[styles.notificationContainer, styles.shadow]}
+ >
- {' '}
- Get updates on your order status!{' '}
+ textColor={colors.statusSecondColor}
+ >
+ {" "}
+ Get updates on your order status!{" "}
{
- updateNotificationStatus('order')
+ updateNotificationStatus("order");
}}
/>
@@ -293,7 +299,8 @@ function Settings() {
+ center
+ >
All rights are reserved by Enatega
@@ -304,10 +311,11 @@ function Settings() {
handlePosition="inside"
avoidKeyboardLikeIOS={Platform.select({
ios: true,
- android: false
+ android: false,
})}
keyboardAvoidingOffset={2}
- keyboardAvoidingBehavior="height">
+ keyboardAvoidingBehavior="height"
+ >
- )
+ );
}
-export default Settings
+export default Settings;
diff --git a/Customer App/src/utils/analytics.js b/Customer App/src/utils/analytics.js
index 9db3946..2ed465d 100644
--- a/Customer App/src/utils/analytics.js
+++ b/Customer App/src/utils/analytics.js
@@ -1,15 +1,16 @@
-import * as Amplitude from 'expo-analytics-amplitude'
-import { normalizeTrackingOptions } from './analyticsUtils'
-import getEnvVars from '../../environment'
-import { getTrackingPermissions } from './useAppTrackingTransparency'
-const { AMPLITUDE_API_KEY } = getEnvVars()
+//import * as Amplitude from 'expo-analytics-amplitude'
+import * as Amplitude from "@amplitude/analytics-react-native";
+import { normalizeTrackingOptions } from "./analyticsUtils";
+import getEnvVars from "../../environment";
+import { getTrackingPermissions } from "./useAppTrackingTransparency";
+const { AMPLITUDE_API_KEY } = getEnvVars();
-let isInitialized = false
+let isInitialized = false;
export const events = {
- USER_LOGGED_IN: 'USER_LOGGED_IN',
- USER_LOGGED_OUT: 'USER_LOGGED_OUT',
- USER_CREATED_ACCOUNT: 'USER_CREATED_ACCOUNT',
+ USER_LOGGED_IN: "USER_LOGGED_IN",
+ USER_LOGGED_OUT: "USER_LOGGED_OUT",
+ USER_CREATED_ACCOUNT: "USER_CREATED_ACCOUNT",
// USER_RESET_PASSWORD: 'USER_RESET_PASSWORD',
// USER_LINKED_SOCIAL: 'USER_LINKED_SOCIAL',
// USER_UPDATED_EMAIL: 'USER_UPDATED_EMAIL',
@@ -20,40 +21,41 @@ export const events = {
// USER_REMOVED_PROJECT: 'USER_REMOVED_PROJECT',
// USER_OPENED_CREATION: 'USER_OPENED_CREATION',
// USER_UPDATED_SETTINGS: 'USER_UPDATED_SETTINGS',
- USER_PLACED_ORDER: 'USER_PLACED_ORDER'
-}
+ USER_PLACED_ORDER: "USER_PLACED_ORDER",
+};
export async function initialize() {
- const trackingStatus = await getTrackingPermissions()
- if (isInitialized || !AMPLITUDE_API_KEY || trackingStatus !== 'granted') {
- return
+ const trackingStatus = await getTrackingPermissions();
+ if (isInitialized || !AMPLITUDE_API_KEY || trackingStatus !== "granted") {
+ return;
}
- await Amplitude.initializeAsync(AMPLITUDE_API_KEY)
- isInitialized = true
+ Amplitude.init(AMPLITUDE_API_KEY);
+ isInitialized = true;
}
export async function identify(id, options) {
- initialize()
- const properties = normalizeTrackingOptions(options)
+ initialize();
+ const properties = normalizeTrackingOptions(options);
- if (id) {
- await Amplitude.setUserIdAsync(id)
- if (properties) {
- await Amplitude.setUserPropertiesAsync(properties)
- }
+ if (properties) {
+ Amplitude.Identify(properties);
+ //await Amplitude.setUserPropertiesAsync(properties)
} else {
- await Amplitude.clearUserPropertiesAsync()
+ //await Amplitude.clearUserPropertiesAsync()
+ const identifyObj = new Amplitude.Identify();
+ identifyObj.remove(properties);
+ Amplitude.Identify(identifyObj);
}
}
export async function track(event, options) {
- initialize()
- const properties = normalizeTrackingOptions(options)
+ initialize();
+ const properties = normalizeTrackingOptions(options);
if (properties) {
- await Amplitude.logEventWithPropertiesAsync(event, properties)
+ Amplitude.track(event, properties);
} else {
- await Amplitude.logEventAsync(event)
+ Amplitude.track(event);
}
}
@@ -61,5 +63,5 @@ export default {
events,
initialize,
identify,
- track
-}
+ track,
+};
diff --git a/Customer App/src/utils/androidBackButton.js b/Customer App/src/utils/androidBackButton.js
index ba67644..d5e347b 100644
--- a/Customer App/src/utils/androidBackButton.js
+++ b/Customer App/src/utils/androidBackButton.js
@@ -1,34 +1,35 @@
// packages
-import { BackHandler, Alert } from 'react-native'
+import { BackHandler, Alert } from "react-native";
/**
* Attaches an event listener that handles the android-only hardware
* back button
* @param {Function} callback The function to call on click
*/
-const handleAndroidBackButton = callback => {
- BackHandler.addEventListener('hardwareBackPress', () => {
- callback()
- return true
- })
-}
+const handleAndroidBackButton = (callback) => {
+ BackHandler.addEventListener("hardwareBackPress", () => {
+ callback();
+ return true;
+ });
+};
/**
* Removes the event listener in order not to add a new one
* every time the view component re-mounts
*/
const removeAndroidBackButtonHandler = () => {
- BackHandler.removeEventListener('hardwareBackPress')
-}
+ // BackHandler.removeEventListener('hardwareBackPress')
+ BackHandler.remove("hardwareBackPress");
+};
const exitAlert = () => {
- Alert.alert('Confirm exit', 'Do you want to quit the app?', [
- { text: 'CANCEL', style: 'cancel' },
+ Alert.alert("Confirm exit", "Do you want to quit the app?", [
+ { text: "CANCEL", style: "cancel" },
{
- text: 'OK',
+ text: "OK",
onPress: () => {
- BackHandler.exitApp()
- }
- }
- ])
- return true
-}
+ BackHandler.exitApp();
+ },
+ },
+ ]);
+ return true;
+};
-export { handleAndroidBackButton, removeAndroidBackButtonHandler, exitAlert }
+export { handleAndroidBackButton, removeAndroidBackButtonHandler, exitAlert };