diff --git a/ComApp/CHANGELOG.md b/ComApp/CHANGELOG.md
new file mode 100644
index 0000000..5a0cb4f
--- /dev/null
+++ b/ComApp/CHANGELOG.md
@@ -0,0 +1,14 @@
+# 2.0.0
+## Bug
+- Fix format vidéo lors de la rotation de l'écran
+## Évolution
+- Bump React Native 0.70.1 -> 0.70.6
+- Amélioration de l'usage de Redux avec reducers, actions, etc.
+- Amélioration sur l'arborescence du projet.
+- Mise à jour du module BCrypt Bridge
+- Ajout de Sentry pour remonter les erreurs.
+- Création (+ BO) d'une configuration d'application pour permettre le maintiens d'un seul APK.
+- Mise en place de vérification par regex des champs obligatoires sur le formulaire de contact.
+- Ajout d'un bouton dans le header de la home pour aller directement sur la page d'ajout de contact.
+- Ajout de la possibilité de revenir à l'écran d'accueil en cliquant sur le logo présent dans le header.
+- Ajout d'un espace plus important entre les éléments cliquables du header + ajout d'un menu en overlay.
\ No newline at end of file
diff --git a/ComApp/android/app/build.gradle b/ComApp/android/app/build.gradle
index 5fd9258..7392f3f 100644
--- a/ComApp/android/app/build.gradle
+++ b/ComApp/android/app/build.gradle
@@ -135,11 +135,11 @@ android {
compileSdkVersion rootProject.ext.compileSdkVersion
defaultConfig {
- applicationId "com.comintl.app"
+ applicationId "com.comapp.ldc"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
- versionName "1.2"
+ versionName "2.0.0"
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
if (isNewArchitectureEnabled()) {
diff --git a/ComApp/android/app/src/main/ic_launcher-playstore.png b/ComApp/android/app/src/main/ic_launcher-playstore.png
index 9937cab..4e57a10 100644
Binary files a/ComApp/android/app/src/main/ic_launcher-playstore.png and b/ComApp/android/app/src/main/ic_launcher-playstore.png differ
diff --git a/ComApp/android/app/src/main/res/drawable/launch_screen.png b/ComApp/android/app/src/main/res/drawable/launch_screen.png
deleted file mode 100644
index 9449be2..0000000
Binary files a/ComApp/android/app/src/main/res/drawable/launch_screen.png and /dev/null differ
diff --git a/ComApp/android/app/src/main/res/drawable/splashscreen_image.png b/ComApp/android/app/src/main/res/drawable/splashscreen_image.png
index c6fb561..eccf00c 100644
Binary files a/ComApp/android/app/src/main/res/drawable/splashscreen_image.png and b/ComApp/android/app/src/main/res/drawable/splashscreen_image.png differ
diff --git a/ComApp/android/app/src/main/res/layout/launch_screen.xml b/ComApp/android/app/src/main/res/layout/launch_screen.xml
deleted file mode 100644
index 323780c..0000000
--- a/ComApp/android/app/src/main/res/layout/launch_screen.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
diff --git a/ComApp/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/ComApp/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
deleted file mode 100644
index 036d09b..0000000
--- a/ComApp/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/ComApp/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/ComApp/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
deleted file mode 100644
index 036d09b..0000000
--- a/ComApp/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/ComApp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/ComApp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..5d7480a
Binary files /dev/null and b/ComApp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/ComApp/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/ComApp/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
deleted file mode 100644
index 5fab4fe..0000000
Binary files a/ComApp/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/ComApp/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/ComApp/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000..91ade79
Binary files /dev/null and b/ComApp/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/ComApp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/ComApp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..918ac8f
Binary files /dev/null and b/ComApp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/ComApp/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/ComApp/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
deleted file mode 100644
index 40265af..0000000
Binary files a/ComApp/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/ComApp/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/ComApp/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000..9b96a2b
Binary files /dev/null and b/ComApp/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/ComApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/ComApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..722d47b
Binary files /dev/null and b/ComApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/ComApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/ComApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
deleted file mode 100644
index 0919a4a..0000000
Binary files a/ComApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/ComApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/ComApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..f9b858e
Binary files /dev/null and b/ComApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/ComApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/ComApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..319ea2b
Binary files /dev/null and b/ComApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/ComApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/ComApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
deleted file mode 100644
index bbd6492..0000000
Binary files a/ComApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/ComApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/ComApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..f1127a5
Binary files /dev/null and b/ComApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/ComApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/ComApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..3d28f62
Binary files /dev/null and b/ComApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/ComApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/ComApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
deleted file mode 100644
index b4ba36d..0000000
Binary files a/ComApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/ComApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/ComApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..2117232
Binary files /dev/null and b/ComApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/ComApp/android/app/src/main/res/values/strings.xml b/ComApp/android/app/src/main/res/values/strings.xml
index 116c7bc..a8abf61 100644
--- a/ComApp/android/app/src/main/res/values/strings.xml
+++ b/ComApp/android/app/src/main/res/values/strings.xml
@@ -1,5 +1,5 @@
contain
- Commerciaux - LDC International
+ Commerciaux LDC
diff --git a/ComApp/android/build.gradle b/ComApp/android/build.gradle
index 8569fee..1f3151e 100644
--- a/ComApp/android/build.gradle
+++ b/ComApp/android/build.gradle
@@ -49,3 +49,17 @@ allprojects {
maven { url 'https://www.jitpack.io' }
}
}
+
+// Patch needed for https://github.com/facebook/react-native/issues/35210
+// This is a patch to short-circuit the "+" dependencies inside the
+// users' app/build.gradle file and the various .gradle files of libraries.
+// As using plain "+" dependencies causes Gradle to always download the latest,
+// this logic forces Gradle to use latest release in the minor series.
+project.rootProject.allprojects {
+ configurations.all {
+ resolutionStrategy {
+ force "com.facebook.react:react-native:0.70.+"
+ force "com.facebook.react:hermes-engine:0.70.+"
+ }
+ }
+}
\ No newline at end of file
diff --git a/ComApp/package-lock.json b/ComApp/package-lock.json
index 6614bd6..faa8f68 100644
--- a/ComApp/package-lock.json
+++ b/ComApp/package-lock.json
@@ -8,16 +8,17 @@
"name": "ComApp",
"version": "0.0.1",
"dependencies": {
- "@react-native-community/netinfo": "^9.3.2",
+ "@react-native-community/netinfo": "^9.3.7",
"@react-native-community/slider": "^4.3.2",
"@react-native-picker/picker": "^2.4.6",
"@react-navigation/native": "^6.0.13",
"@react-navigation/native-stack": "^6.9.0",
"@rneui/base": "^0.0.0-edge.2",
"@rneui/themed": "^0.0.0-edge.2",
+ "@sentry/react-native": "^4.12.0",
"axios": "^0.27.2",
- "expo": "^46.0.13",
- "expo-av": "^12.0.4",
+ "expo": "^47.0.10",
+ "expo-av": "^13.0.2",
"expo-barcode-scanner": "^11.4.0",
"expo-splash-screen": "^0.16.2",
"expo-video-player": "^2.2.0",
@@ -26,9 +27,9 @@
"lodash": "^4.17.21",
"npm": "^8.19.2",
"react": "18.1.0",
- "react-native": "0.70.1",
+ "react-native": "^0.70.6",
"react-native-animated-tree-view": "^0.1.4",
- "react-native-b-crypt-bridge": "file:react-native-b-crypt-bridge-2.0.0.tgz",
+ "react-native-b-crypt-bridge": "file:react-native-b-crypt-bridge-2.1.0.tgz",
"react-native-blob-util": "^0.16.2",
"react-native-flash-message": "^0.3.1",
"react-native-gesture-handler": "^2.7.0",
@@ -50,7 +51,7 @@
"babel-jest": "^26.6.3",
"eslint": "^7.32.0",
"jest": "^26.6.3",
- "metro-react-native-babel-preset": "^0.72.1",
+ "metro-react-native-babel-preset": "^0.72.3",
"react-test-renderer": "18.1.0"
}
},
@@ -1867,7 +1868,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.18.6.tgz",
"integrity": "sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==",
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/helper-validator-option": "^7.18.6",
@@ -1899,7 +1899,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz",
"integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==",
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/helper-validator-option": "^7.18.6",
@@ -1916,7 +1915,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/register/-/register-7.18.9.tgz",
"integrity": "sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw==",
- "license": "MIT",
"dependencies": {
"clone-deep": "^4.0.1",
"find-cache-dir": "^2.0.0",
@@ -2080,22 +2078,22 @@
}
},
"node_modules/@expo/cli": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.3.1.tgz",
- "integrity": "sha512-amdsNf5quVs9ZbO+q35sdtpWJvvQz5pqtl8ZOv5jqRriIp1G9zcOFTDG0TnGxANQ0F2b5GcU4fn7pxAzRLDHmQ==",
+ "version": "0.4.10",
+ "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.4.10.tgz",
+ "integrity": "sha512-c8NJOVa5b8g9CYj8ahdaN21cVE2wPwUaFrtTE0kLeRR5ASy8reWLFEOcstEtt6eufdcN/uGgBWQ0FLovgLZuzw==",
"dependencies": {
"@babel/runtime": "^7.14.0",
- "@expo/code-signing-certificates": "^0.0.2",
- "@expo/config": "~7.0.1",
- "@expo/config-plugins": "~5.0.1",
- "@expo/dev-server": "~0.1.120",
+ "@expo/code-signing-certificates": "0.0.5",
+ "@expo/config": "~7.0.2",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/dev-server": "0.1.123",
"@expo/devcert": "^1.0.0",
"@expo/json-file": "^8.2.35",
- "@expo/metro-config": "~0.4.0",
+ "@expo/metro-config": "~0.5.0",
"@expo/osascript": "^2.0.31",
"@expo/package-manager": "~0.0.53",
"@expo/plist": "^0.0.18",
- "@expo/prebuild-config": "~5.0.3",
+ "@expo/prebuild-config": "5.0.7",
"@expo/rudder-sdk-node": "1.1.1",
"@expo/spawn-async": "1.5.0",
"@expo/xcpretty": "^4.2.1",
@@ -2116,6 +2114,7 @@
"getenv": "^1.0.0",
"graphql": "15.8.0",
"graphql-tag": "^2.10.1",
+ "https-proxy-agent": "^5.0.1",
"internal-ip": "4.3.0",
"is-root": "^2.1.0",
"js-yaml": "^3.13.1",
@@ -2158,9 +2157,18 @@
}
},
"node_modules/@expo/cli/node_modules/ci-info": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.4.0.tgz",
- "integrity": "sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug=="
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
},
"node_modules/@expo/cli/node_modules/cli-cursor": {
"version": "2.1.0",
@@ -2359,22 +2367,22 @@
}
},
"node_modules/@expo/code-signing-certificates": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.2.tgz",
- "integrity": "sha512-vnPHFjwOqxQ1VLztktY+fYCfwvLzjqpzKn09rchcQE7Sdf0wtW5fFtIZBEFOOY5wasp8tXSnp627zrAwazPHzg==",
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz",
+ "integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==",
"dependencies": {
"node-forge": "^1.2.1",
"nullthrows": "^1.1.1"
}
},
"node_modules/@expo/config": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/@expo/config/-/config-7.0.1.tgz",
- "integrity": "sha512-4lu0wr45XXJ2MXiLAm2+fmOyy/jjqF3NuDm92fO6nuulRzEEvTP4w3vsibJ690rT81ohtvhpruKhkRs0wSjKWA==",
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-7.0.3.tgz",
+ "integrity": "sha512-joVtB5o+NF40Tmsdp65UzryRtbnCuMbXkVO4wJnNJO4aaK0EYLdHCYSewORVqNcDfGN0LphQr8VTG2npbd9CJA==",
"dependencies": {
"@babel/code-frame": "~7.10.4",
- "@expo/config-plugins": "~5.0.1",
- "@expo/config-types": "^46.0.1",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/config-types": "^47.0.0",
"@expo/json-file": "8.2.36",
"getenv": "^1.0.0",
"glob": "7.1.6",
@@ -2386,11 +2394,11 @@
}
},
"node_modules/@expo/config-plugins": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.1.tgz",
- "integrity": "sha512-1OfnsOrfeSkB0VZfT01UjQ5Uq6p+yYbq8yNkj0e99K/6NLHpyvIxj+5tZIV0nQXgkOcqBIABL2uA7lwB8CkaBQ==",
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.4.tgz",
+ "integrity": "sha512-vzUcVpqOMs3h+hyRdhGwk+eGIOhXa5xYdd92yO17RMNHav3v/+ekMbs7XA2c3lepMO8Yd4/5hqmRw9ZTL6jGzg==",
"dependencies": {
- "@expo/config-types": "^46.0.0",
+ "@expo/config-types": "^47.0.0",
"@expo/json-file": "8.2.36",
"@expo/plist": "0.0.18",
"@expo/sdk-runtime-versions": "^1.0.0",
@@ -2498,9 +2506,9 @@
}
},
"node_modules/@expo/config-types": {
- "version": "46.0.2",
- "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-46.0.2.tgz",
- "integrity": "sha512-PXkmOgNwRyBfgVT1HmFZhfh3Qm7WKKyV6mk3/5HJ/LzPh1t+Zs2JrWX8U2YncTLV1QzV7nV8tnkyvszzqnZEzQ=="
+ "version": "47.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-47.0.0.tgz",
+ "integrity": "sha512-r0pWfuhkv7KIcXMUiNACJmJKKwlTBGMw9VZHNdppS8/0Nve8HZMTkNRFQzTHW1uH3pBj8jEXpyw/2vSWDHex9g=="
},
"node_modules/@expo/config/node_modules/@babel/code-frame": {
"version": "7.10.4",
@@ -2612,17 +2620,20 @@
}
},
"node_modules/@expo/dev-server": {
- "version": "0.1.120",
- "resolved": "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.120.tgz",
- "integrity": "sha512-x5/jCv0EOpz6FyehXpI5bgDQTVsGZYvgISkAw7n60RhtG+aid6N2CCR9SDMCH70XaUpFnfTW9qvderpCEj7Puw==",
+ "version": "0.1.123",
+ "resolved": "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.123.tgz",
+ "integrity": "sha512-N6UVzzeemfX0AONUSWInvkAAbqon8hRXpyYE/nMPaC6TvAmgGY5ILZAGoXwlpxwY2VKNT0Lx4s/UJ53ytIaHbA==",
"dependencies": {
"@expo/bunyan": "4.0.0",
- "@expo/metro-config": "~0.4.0",
+ "@expo/metro-config": "~0.5.1",
"@expo/osascript": "2.0.33",
+ "@expo/spawn-async": "^1.5.0",
"body-parser": "1.19.0",
"chalk": "^4.0.0",
"connect": "^3.7.0",
"fs-extra": "9.0.0",
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1",
"node-fetch": "^2.6.0",
"open": "^8.3.0",
"resolve-from": "^5.0.0",
@@ -2736,9 +2747,9 @@
}
},
"node_modules/@expo/devcert": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.0.0.tgz",
- "integrity": "sha512-cahGyQCmpZmHpn2U04NR9KwsOIZy7Rhsw8Fg4q+A6563lIJxbkrgPnxq/O3NQAh3ohEvOXOOnoFx0b4yycCkpQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.0.tgz",
+ "integrity": "sha512-ghUVhNJQOCTdQckSGTHctNp/0jzvVoMMkVh+6SHn+TZj8sU15U/npXIDt8NtQp0HedlPaCgkVdMu8Sacne0aEA==",
"dependencies": {
"application-config-path": "^0.1.0",
"command-exists": "^1.2.4",
@@ -2752,7 +2763,7 @@
"rimraf": "^2.6.2",
"sudo-prompt": "^8.2.0",
"tmp": "^0.0.33",
- "tslib": "^1.10.0"
+ "tslib": "^2.4.0"
}
},
"node_modules/@expo/devcert/node_modules/debug": {
@@ -2768,15 +2779,10 @@
"resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz",
"integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw=="
},
- "node_modules/@expo/devcert/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
- },
"node_modules/@expo/image-utils": {
- "version": "0.3.20",
- "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.20.tgz",
- "integrity": "sha512-NgF/80XENyCS+amwC0P6uk1fauEtUq7gijD19jvl2xknJaADq8M2dMCRHwWMVOXosr2v46f3Z++G/NjmyOVS7A==",
+ "version": "0.3.22",
+ "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.22.tgz",
+ "integrity": "sha512-uzq+RERAtkWypOFOLssFnXXqEqKjNj9eXN7e97d/EXUAojNcLDoXc0sL+F5B1I4qtlsnhX01kcpoIBBZD8wZNQ==",
"dependencies": {
"@expo/spawn-async": "1.5.0",
"chalk": "^4.0.0",
@@ -2910,9 +2916,9 @@
}
},
"node_modules/@expo/json-file/node_modules/json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dependencies": {
"minimist": "^1.2.0"
},
@@ -2931,11 +2937,11 @@
}
},
"node_modules/@expo/metro-config": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.4.0.tgz",
- "integrity": "sha512-QhOiotuzklalLbbsTMXJ5v4q4jffQ5xXhy1zsosgc2DL/ZzUr/Yhm3xUcOGnPQ2x7UyeY9Tl3njPHBOJJe7CSA==",
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.5.2.tgz",
+ "integrity": "sha512-W1qsZPA5BXuRBkNLydKBYQ1+ubObhOK0gk2Fpc+XnhW+UUIHC9sDR5pZRYGNSnDDc3rG8y7c32UzSW9nlK+mog==",
"dependencies": {
- "@expo/config": "7.0.1",
+ "@expo/config": "~7.0.2",
"@expo/json-file": "8.2.36",
"chalk": "^4.1.0",
"debug": "^4.3.2",
@@ -2958,9 +2964,9 @@
}
},
"node_modules/@expo/package-manager": {
- "version": "0.0.56",
- "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.56.tgz",
- "integrity": "sha512-PGk34uz4XDyhoNIlPh2D+BDsiXYuW2jXavTiax8d32uvHlRO6FN0cAsqlWD6fx3H2hRn8cU/leTuc4M7pYovCQ==",
+ "version": "0.0.57",
+ "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.57.tgz",
+ "integrity": "sha512-Y4RpSL9EqaPF+Vd2GrK6r7Xx7Dv0Xdq3AGAD9C0KwV21WqP/scj/dpjxFY+ABwmdhNsFzYXb8fmDyh4tiKenPQ==",
"dependencies": {
"@expo/json-file": "8.2.36",
"@expo/spawn-async": "^1.5.0",
@@ -3061,14 +3067,14 @@
}
},
"node_modules/@expo/prebuild-config": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-5.0.3.tgz",
- "integrity": "sha512-G4j1H3WFjRaiQ+FgFNULrnIm7RsQyjc4xp6lLTP2ydBv79wO3x8wAdeZvaZh7eOkfu9BESpQzACT1uuJTag5jg==",
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-5.0.7.tgz",
+ "integrity": "sha512-D+TBpJUHe4+oTGFPb4o0rrw/h1xxc6wF+abJnbDHUkhnaeiHkE2O3ByS7FdiZ2FT36t0OKqeSKG/xFwWT3m1Ew==",
"dependencies": {
- "@expo/config": "7.0.1",
- "@expo/config-plugins": "~5.0.1",
- "@expo/config-types": "^46.0.0",
- "@expo/image-utils": "0.3.20",
+ "@expo/config": "~7.0.2",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/config-types": "^47.0.0",
+ "@expo/image-utils": "0.3.22",
"@expo/json-file": "8.2.36",
"debug": "^4.3.1",
"fs-extra": "^9.0.0",
@@ -3326,14 +3332,12 @@
"node_modules/@hapi/hoek": {
"version": "9.3.0",
"resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
- "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==",
- "license": "BSD-3-Clause"
+ "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="
},
"node_modules/@hapi/topo": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
"integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
- "license": "BSD-3-Clause",
"dependencies": {
"@hapi/hoek": "^9.0.0"
}
@@ -3782,9 +3786,9 @@
}
},
"node_modules/@npmcli/fs/node_modules/semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -3799,6 +3803,7 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
"integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
+ "deprecated": "This functionality has been moved to @npmcli/fs",
"dependencies": {
"mkdirp": "^1.0.4",
"rimraf": "^3.0.2"
@@ -3833,19 +3838,18 @@
}
},
"node_modules/@react-native-community/cli": {
- "version": "9.1.2",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-9.1.2.tgz",
- "integrity": "sha512-s5OY8M9SD2b5b8ywXztzqA04Mud1Ohdv2bH1YoDVQ/L7XNhDJ2TABPZ92Qor09xhUnsz2DivJaR5vv8fMIbH7Q==",
- "license": "MIT",
+ "version": "9.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-9.3.2.tgz",
+ "integrity": "sha512-IAW4X0vmX/xozNpp/JVZaX7MrC85KV0OP2DF4o7lNGOfpUhzJAEWqTfkxFYS+VsRjZHDve4wSTiGIuXwE7FG1w==",
"dependencies": {
- "@react-native-community/cli-clean": "^9.1.0",
- "@react-native-community/cli-config": "^9.1.0",
+ "@react-native-community/cli-clean": "^9.2.1",
+ "@react-native-community/cli-config": "^9.2.1",
"@react-native-community/cli-debugger-ui": "^9.0.0",
- "@react-native-community/cli-doctor": "^9.1.2",
- "@react-native-community/cli-hermes": "^9.1.0",
- "@react-native-community/cli-plugin-metro": "^9.1.1",
- "@react-native-community/cli-server-api": "^9.1.0",
- "@react-native-community/cli-tools": "^9.1.0",
+ "@react-native-community/cli-doctor": "^9.3.0",
+ "@react-native-community/cli-hermes": "^9.3.1",
+ "@react-native-community/cli-plugin-metro": "^9.2.1",
+ "@react-native-community/cli-server-api": "^9.2.1",
+ "@react-native-community/cli-tools": "^9.2.1",
"@react-native-community/cli-types": "^9.1.0",
"chalk": "^4.1.2",
"commander": "^9.4.0",
@@ -3864,24 +3868,22 @@
}
},
"node_modules/@react-native-community/cli-clean": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-9.1.0.tgz",
- "integrity": "sha512-3HznNw8EBQtLsVyV8b8+h76M9EeJcJgYn5wZVGQ5mghAOhqnSWVbwRvpDdb8ITXaiTIXFGNOxXnGKMXsu0CYTw==",
- "license": "MIT",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-9.2.1.tgz",
+ "integrity": "sha512-dyNWFrqRe31UEvNO+OFWmQ4hmqA07bR9Ief/6NnGwx67IO9q83D5PEAf/o96ML6jhSbDwCmpPKhPwwBbsyM3mQ==",
"dependencies": {
- "@react-native-community/cli-tools": "^9.1.0",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"execa": "^1.0.0",
"prompts": "^2.4.0"
}
},
"node_modules/@react-native-community/cli-config": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-9.1.0.tgz",
- "integrity": "sha512-6G9d5weedQ6EMz37ZYXrFHCU2DG3yqvdLs4Jo2383cSxal+oO+kggaTgqLBKoMETz/S80KsMeC/l+MoRjc1pzw==",
- "license": "MIT",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-9.2.1.tgz",
+ "integrity": "sha512-gHJlBBXUgDN9vrr3aWkRqnYrPXZLztBDQoY97Mm5Yo6MidsEpYo2JIP6FH4N/N2p1TdjxJL4EFtdd/mBpiR2MQ==",
"dependencies": {
- "@react-native-community/cli-tools": "^9.1.0",
+ "@react-native-community/cli-tools": "^9.2.1",
"cosmiconfig": "^5.1.0",
"deepmerge": "^3.2.0",
"glob": "^7.1.3",
@@ -3892,20 +3894,18 @@
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-9.0.0.tgz",
"integrity": "sha512-7hH05ZwU9Tp0yS6xJW0bqcZPVt0YCK7gwj7gnRu1jDNN2kughf6Lg0Ys29rAvtZ7VO1PK5c1O+zs7yFnylQDUA==",
- "license": "MIT",
"dependencies": {
"serve-static": "^1.13.1"
}
},
"node_modules/@react-native-community/cli-doctor": {
- "version": "9.1.2",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-9.1.2.tgz",
- "integrity": "sha512-BmacbikyaxR4s54kq17LE0bBK7g8bcjc679ee36DqkX+Xij2VHHynLzTpuDJ8y6iHI2v13vauEMjnh4j612u5w==",
- "license": "MIT",
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-9.3.0.tgz",
+ "integrity": "sha512-/fiuG2eDGC2/OrXMOWI5ifq4X1gdYTQhvW2m0TT5Lk1LuFiZsbTCp1lR+XILKekuTvmYNjEGdVpeDpdIWlXdEA==",
"dependencies": {
- "@react-native-community/cli-config": "^9.1.0",
- "@react-native-community/cli-platform-ios": "^9.1.2",
- "@react-native-community/cli-tools": "^9.1.0",
+ "@react-native-community/cli-config": "^9.2.1",
+ "@react-native-community/cli-platform-ios": "^9.3.0",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"command-exists": "^1.2.8",
"envinfo": "^7.7.2",
@@ -3925,7 +3925,6 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
"integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
- "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -3934,7 +3933,6 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "license": "MIT",
"dependencies": {
"ansi-regex": "^4.1.0"
},
@@ -3943,25 +3941,23 @@
}
},
"node_modules/@react-native-community/cli-hermes": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-9.1.0.tgz",
- "integrity": "sha512-Ly4dnlRZZ7FckFfSWnaD5BxszuEe9/WcJ6A7srW5UobqnnmEznDv1IY0oBTq1ggnmzIquM9dJQZ0UbcZeQjkoA==",
- "license": "MIT",
+ "version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-9.3.1.tgz",
+ "integrity": "sha512-Mq4PK8m5YqIdaVq5IdRfp4qK09aVO+aiCtd6vjzjNUgk1+1X5cgUqV6L65h4N+TFJYJHcp2AnB+ik1FAYXvYPQ==",
"dependencies": {
- "@react-native-community/cli-platform-android": "^9.1.0",
- "@react-native-community/cli-tools": "^9.1.0",
+ "@react-native-community/cli-platform-android": "^9.3.1",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"hermes-profile-transformer": "^0.0.6",
"ip": "^1.1.5"
}
},
"node_modules/@react-native-community/cli-platform-android": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.1.0.tgz",
- "integrity": "sha512-OZ/Krq0wH6T7LuAvwFdJYe47RrHG8IOcoab47H4QQdYGTmJgTS3SlVkr6gn79pZyBGyp7xVizD30QJrIIyDjnw==",
- "license": "MIT",
+ "version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.3.1.tgz",
+ "integrity": "sha512-m0bQ6Twewl7OEZoVf79I2GZmsDqh+Gh0bxfxWgwxobsKDxLx8/RNItAo1lVtTCgzuCR75cX4EEO8idIF9jYhew==",
"dependencies": {
- "@react-native-community/cli-tools": "^9.1.0",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"execa": "^1.0.0",
"fs-extra": "^8.1.0",
@@ -3971,12 +3967,11 @@
}
},
"node_modules/@react-native-community/cli-platform-ios": {
- "version": "9.1.2",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.1.2.tgz",
- "integrity": "sha512-XpgA9ymm76yjvtYPByqFF1LP7eM/lH5K3zpkZkV9MJLStOIo3mrzN2ywRDZ/xVOheh5LafS4YMmrjIajf11oIQ==",
- "license": "MIT",
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.3.0.tgz",
+ "integrity": "sha512-nihTX53BhF2Q8p4B67oG3RGe1XwggoGBrMb6vXdcu2aN0WeXJOXdBLgR900DAA1O8g7oy1Sudu6we+JsVTKnjw==",
"dependencies": {
- "@react-native-community/cli-tools": "^9.1.0",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"execa": "^1.0.0",
"glob": "^7.1.3",
@@ -3984,49 +3979,29 @@
}
},
"node_modules/@react-native-community/cli-plugin-metro": {
- "version": "9.1.1",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.1.1.tgz",
- "integrity": "sha512-8CBwEZrbYIeQw69Exg/oW20pV9C6mbYlDz0pxZJ0AYmC20Q+wFFs6sUh5zm28ZUh1L0LxNGmhle/YvMPqA+fMQ==",
- "license": "MIT",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.2.1.tgz",
+ "integrity": "sha512-byBGBH6jDfUvcHGFA45W/sDwMlliv7flJ8Ns9foCh3VsIeYYPoDjjK7SawE9cPqRdMAD4SY7EVwqJnOtRbwLiQ==",
"dependencies": {
- "@react-native-community/cli-server-api": "^9.1.0",
- "@react-native-community/cli-tools": "^9.1.0",
+ "@react-native-community/cli-server-api": "^9.2.1",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
- "metro": "^0.72.1",
- "metro-config": "^0.72.1",
- "metro-core": "^0.72.1",
- "metro-react-native-babel-transformer": "^0.72.1",
- "metro-resolver": "^0.72.1",
- "metro-runtime": "^0.72.1",
+ "metro": "0.72.3",
+ "metro-config": "0.72.3",
+ "metro-core": "0.72.3",
+ "metro-react-native-babel-transformer": "0.72.3",
+ "metro-resolver": "0.72.3",
+ "metro-runtime": "0.72.3",
"readline": "^1.3.0"
}
},
- "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-react-native-babel-transformer": {
- "version": "0.72.3",
- "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.72.3.tgz",
- "integrity": "sha512-Ogst/M6ujYrl/+9mpEWqE3zF7l2mTuftDTy3L8wZYwX1pWUQWQpfU1aJBeWiLxt1XlIq+uriRjKzKoRoIK57EA==",
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.14.0",
- "babel-preset-fbjs": "^3.4.0",
- "hermes-parser": "0.8.0",
- "metro-babel-transformer": "0.72.3",
- "metro-react-native-babel-preset": "0.72.3",
- "metro-source-map": "0.72.3",
- "nullthrows": "^1.1.1"
- },
- "peerDependencies": {
- "@babel/core": "*"
- }
- },
"node_modules/@react-native-community/cli-server-api": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-9.1.0.tgz",
- "integrity": "sha512-Xf3hUqUc99hVmWOsmfNqUQ+sxhut9MIHlINzlo7Azxlmg9v9U/vtwJVJSIPD6iwPzvaPH1qeshzwy/r0GUR7fg==",
- "license": "MIT",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-9.2.1.tgz",
+ "integrity": "sha512-EI+9MUxEbWBQhWw2PkhejXfkcRqPl+58+whlXJvKHiiUd7oVbewFs0uLW0yZffUutt4FGx6Uh88JWEgwOzAdkw==",
"dependencies": {
"@react-native-community/cli-debugger-ui": "^9.0.0",
- "@react-native-community/cli-tools": "^9.1.0",
+ "@react-native-community/cli-tools": "^9.2.1",
"compression": "^1.7.1",
"connect": "^3.6.5",
"errorhandler": "^1.5.0",
@@ -4037,10 +4012,9 @@
}
},
"node_modules/@react-native-community/cli-tools": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-9.1.0.tgz",
- "integrity": "sha512-07Z1hyy4cYty84P9cGq+Xf8Vb0S/0ffxLVdVQEMmLjU71sC9YTUv1anJdZyt6f9uUPvA9+e/YIXw5Bu0rvuXIw==",
- "license": "MIT",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-9.2.1.tgz",
+ "integrity": "sha512-bHmL/wrKmBphz25eMtoJQgwwmeCylbPxqFJnFSbkqJPXQz3ManQ6q/gVVMqFyz7D3v+riaus/VXz3sEDa97uiQ==",
"dependencies": {
"appdirsjs": "^1.2.4",
"chalk": "^4.1.2",
@@ -4057,7 +4031,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "license": "MIT",
"dependencies": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
@@ -4073,7 +4046,6 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "license": "MIT",
"dependencies": {
"p-locate": "^5.0.0"
},
@@ -4088,7 +4060,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "license": "MIT",
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -4103,7 +4074,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "license": "MIT",
"dependencies": {
"p-limit": "^3.0.2"
},
@@ -4118,7 +4088,6 @@
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-9.1.0.tgz",
"integrity": "sha512-KDybF9XHvafLEILsbiKwz5Iobd+gxRaPyn4zSaAerBxedug4er5VUWa8Szy+2GeYKZzMh/gsb1o9lCToUwdT/g==",
- "license": "MIT",
"dependencies": {
"joi": "^17.2.1"
}
@@ -4156,9 +4125,9 @@
"license": "MIT"
},
"node_modules/@react-native-community/netinfo": {
- "version": "9.3.2",
- "resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-9.3.2.tgz",
- "integrity": "sha512-fR7wSIhmIUX+Skzgkr2vj5xopWa0lvvEWoXP1m7//jZjEgOZnu9DgdUimLHDrMo6AtZyUNrJscsFEepihTLlPQ==",
+ "version": "9.3.7",
+ "resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-9.3.7.tgz",
+ "integrity": "sha512-+taWmE5WpBp0uS6kf+bouCx/sn89G9EpR4s2M/ReLvctVIFL2Qh8WnWfBxqK9qwgmFha/uqjSr2Gq03OOtiDcw==",
"peerDependencies": {
"react-native": ">=0.59"
}
@@ -4361,26 +4330,392 @@
"join-component": "^1.1.0"
}
},
+ "node_modules/@sentry/browser": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.26.0.tgz",
+ "integrity": "sha512-S6uW+Ni2VLGHUV9eAUtTy5QEvqKeOhcnWnv+2yTGDtQCJ0SuHfXRCM7ASAQYBiKffZqIFc9Z2XNU/2cuWcXJmw==",
+ "dependencies": {
+ "@sentry/core": "7.26.0",
+ "@sentry/types": "7.26.0",
+ "@sentry/utils": "7.26.0",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/browser/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
+ "node_modules/@sentry/cli": {
+ "version": "1.74.4",
+ "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-1.74.4.tgz",
+ "integrity": "sha512-BMfzYiedbModsNBJlKeBOLVYUtwSi99LJ8gxxE4Bp5N8hyjNIN0WVrozAVZ27mqzAuy6151Za3dpmOLO86YlGw==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "https-proxy-agent": "^5.0.0",
+ "mkdirp": "^0.5.5",
+ "node-fetch": "^2.6.7",
+ "npmlog": "^4.1.2",
+ "progress": "^2.0.3",
+ "proxy-from-env": "^1.1.0",
+ "which": "^2.0.2"
+ },
+ "bin": {
+ "sentry-cli": "bin/sentry-cli"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@sentry/core": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.26.0.tgz",
+ "integrity": "sha512-ydi236ZoP/xpvLdf7B8seKjCcGc5Z+q9c14tHCFusplPZgLSXcYpiiLIDWmF7OAXO89sSbb1NaFt9YB0LkYdLQ==",
+ "dependencies": {
+ "@sentry/types": "7.26.0",
+ "@sentry/utils": "7.26.0",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/core/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
+ "node_modules/@sentry/hub": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-7.26.0.tgz",
+ "integrity": "sha512-djAMuA4/Jy28dOSy9z5ccXBDyYk1N9m0ljle+dKqjfJwv440tCGyoxm2arqJFHbXvqwJTt2Giv8ASR4uGD1UNg==",
+ "dependencies": {
+ "@sentry/core": "7.26.0",
+ "@sentry/types": "7.26.0",
+ "@sentry/utils": "7.26.0",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/hub/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
+ "node_modules/@sentry/integrations": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.26.0.tgz",
+ "integrity": "sha512-5tyBA5BnZEuosSIvBP7mJz66xJaZTb/k1EzHEc0hR2Mw8QpLgMneDZBfi4vdbhxtGpJKC/gURoUGZf9hpwW+DA==",
+ "dependencies": {
+ "@sentry/types": "7.26.0",
+ "@sentry/utils": "7.26.0",
+ "localforage": "^1.8.1",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/integrations/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
+ "node_modules/@sentry/react": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.26.0.tgz",
+ "integrity": "sha512-v5XKpG1PF4qnWvG8E0N1kcUk74lTp+TDfKx5x996NIja2oOTp/JL9V0Q+lAMlB1EKgJuxLe92IeqD5/DTtzE7A==",
+ "dependencies": {
+ "@sentry/browser": "7.26.0",
+ "@sentry/types": "7.26.0",
+ "@sentry/utils": "7.26.0",
+ "hoist-non-react-statics": "^3.3.2",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "peerDependencies": {
+ "react": "15.x || 16.x || 17.x || 18.x"
+ }
+ },
+ "node_modules/@sentry/react-native": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@sentry/react-native/-/react-native-4.12.0.tgz",
+ "integrity": "sha512-KBRXXqqGg67oqhtGzZQ8Ls4rxxUozDyL8tMLmRLk//bkSWBC6XslyjkZkQrB1VZsv2ikEYCUgyAP7fzcj6Bbig==",
+ "dependencies": {
+ "@sentry/browser": "7.26.0",
+ "@sentry/cli": "1.74.4",
+ "@sentry/core": "7.26.0",
+ "@sentry/hub": "7.26.0",
+ "@sentry/integrations": "7.26.0",
+ "@sentry/react": "7.26.0",
+ "@sentry/tracing": "7.26.0",
+ "@sentry/types": "7.26.0",
+ "@sentry/utils": "7.26.0",
+ "@sentry/wizard": "1.4.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.4.1",
+ "react-native": ">=0.56.0"
+ }
+ },
+ "node_modules/@sentry/react/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
+ "node_modules/@sentry/tracing": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.26.0.tgz",
+ "integrity": "sha512-UK8EiXxJrDTWD82Oasj2WP/QuQ+wzPlg74vYmxl1ie/LRs6C6wHkilBZwDV9HnDdqAqSjl0al8oBa075lK+U3Q==",
+ "dependencies": {
+ "@sentry/core": "7.26.0",
+ "@sentry/types": "7.26.0",
+ "@sentry/utils": "7.26.0",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/tracing/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
+ "node_modules/@sentry/types": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.26.0.tgz",
+ "integrity": "sha512-U2s0q3ALwWFdHJBgn8nrG9bCTJZ3hAqL/I2Si4Mf0ZWnJ/KTJKbtyrputHr8wMbHvX0NZTJGTxFVUO46J+GBRA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/utils": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.26.0.tgz",
+ "integrity": "sha512-nIC1PRyoMBi4QB7XNCWaPDqaQbPayMwAvUm6W3MC5bHPfVZmmFt+3sLZQKUD/E0NeQnJ3vTyPewPF/LfxLOE5A==",
+ "dependencies": {
+ "@sentry/types": "7.26.0",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/utils/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
+ "node_modules/@sentry/wizard": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@sentry/wizard/-/wizard-1.4.0.tgz",
+ "integrity": "sha512-Q/f9wJAAAr/YB6oWUzMQP/y5LIgx9la1SanMHNr3hMtVPKkMhvIZO5UWVn2G763yi85zARqSCLDx31/tZd4new==",
+ "dependencies": {
+ "@sentry/cli": "^1.72.0",
+ "chalk": "^2.4.1",
+ "glob": "^7.1.3",
+ "inquirer": "^6.2.0",
+ "lodash": "^4.17.15",
+ "opn": "^5.4.0",
+ "r2": "^2.0.1",
+ "read-env": "^1.3.0",
+ "semver": "^7.3.5",
+ "xcode": "3.0.1",
+ "yargs": "^16.2.0"
+ },
+ "bin": {
+ "sentry-wizard": "dist/bin.js"
+ },
+ "engines": {
+ "node": ">=6.9.5",
+ "npm": ">=3.10.7",
+ "yarn": ">=1.0.2"
+ }
+ },
+ "node_modules/@sentry/wizard/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@sentry/wizard/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@sentry/wizard/node_modules/cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "node_modules/@sentry/wizard/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@sentry/wizard/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/@sentry/wizard/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@sentry/wizard/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/wizard/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@sentry/wizard/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/@sentry/wizard/node_modules/wrap-ansi/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@sentry/wizard/node_modules/wrap-ansi/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/@sentry/wizard/node_modules/wrap-ansi/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "node_modules/@sentry/wizard/node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/wizard/node_modules/yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dependencies": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/wizard/node_modules/yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/@sideway/address": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
"integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==",
- "license": "BSD-3-Clause",
"dependencies": {
"@hapi/hoek": "^9.0.0"
}
},
"node_modules/@sideway/formula": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz",
- "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==",
- "license": "BSD-3-Clause"
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
+ "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg=="
},
"node_modules/@sideway/pinpoint": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
- "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
- "license": "BSD-3-Clause"
+ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
},
"node_modules/@sinonjs/commons": {
"version": "1.8.3",
@@ -4812,9 +5147,9 @@
}
},
"node_modules/@xmldom/xmldom": {
- "version": "0.7.5",
- "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz",
- "integrity": "sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==",
+ "version": "0.7.9",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.9.tgz",
+ "integrity": "sha512-yceMpm/xd4W2a85iqZyO09gTnHvXF6pyiWjD2jcOJs7hRoZtNNOO1eJlhHj1ixA+xip2hOyGn+LgcvLCMo5zXA==",
"engines": {
"node": ">=10.0.0"
}
@@ -4841,8 +5176,7 @@
"node_modules/absolute-path": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/absolute-path/-/absolute-path-0.0.0.tgz",
- "integrity": "sha512-HQiug4c+/s3WOvEnDRxXVmNtSG5s2gJM9r19BTcqjp7BWcE48PB+Y2G6jE65kqI0LpsQeMZygt/b60Gi4KxGyA==",
- "license": "MIT"
+ "integrity": "sha512-HQiug4c+/s3WOvEnDRxXVmNtSG5s2gJM9r19BTcqjp7BWcE48PB+Y2G6jE65kqI0LpsQeMZygt/b60Gi4KxGyA=="
},
"node_modules/accepts": {
"version": "1.3.8",
@@ -4905,7 +5239,6 @@
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"debug": "4"
@@ -4989,7 +5322,6 @@
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz",
"integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==",
- "license": "MIT",
"dependencies": {
"colorette": "^1.0.7",
"slice-ansi": "^2.0.0",
@@ -5000,7 +5332,6 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
"integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
- "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -5009,7 +5340,6 @@
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "license": "MIT",
"dependencies": {
"color-convert": "^1.9.0"
},
@@ -5021,7 +5351,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
"integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
- "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -5030,7 +5359,6 @@
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "license": "MIT",
"dependencies": {
"color-name": "1.1.3"
}
@@ -5038,14 +5366,12 @@
"node_modules/ansi-fragments/node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "license": "MIT"
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
},
"node_modules/ansi-fragments/node_modules/is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
- "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -5054,7 +5380,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
"integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
- "license": "MIT",
"dependencies": {
"ansi-styles": "^3.2.0",
"astral-regex": "^1.0.0",
@@ -5068,7 +5393,6 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "license": "MIT",
"dependencies": {
"ansi-regex": "^4.1.0"
},
@@ -5121,13 +5445,26 @@
"node_modules/appdirsjs": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz",
- "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==",
- "license": "MIT"
+ "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw=="
},
"node_modules/application-config-path": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.0.tgz",
- "integrity": "sha512-lljTpVvFteShrHuKRvweZfa9o/Nc34Y8r5/1Lqh/yyKaspRT2J3fkEiSSk1YLG8ZSVyU7yHysRy9zcDDS2aH1Q=="
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz",
+ "integrity": "sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw=="
+ },
+ "node_modules/aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+ },
+ "node_modules/are-we-there-yet": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
+ "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
+ "dependencies": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
},
"node_modules/arg": {
"version": "4.1.0",
@@ -5269,7 +5606,6 @@
"version": "0.14.2",
"resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz",
"integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==",
- "license": "MIT",
"dependencies": {
"tslib": "^2.0.1"
},
@@ -5290,8 +5626,7 @@
"node_modules/async": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
- "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
- "license": "MIT"
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
},
"node_modules/async-limiter": {
"version": "1.0.1",
@@ -5364,7 +5699,6 @@
"version": "7.0.0-bridge.0",
"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
"integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==",
- "license": "MIT",
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
@@ -5517,8 +5851,7 @@
"node_modules/babel-plugin-syntax-trailing-function-commas": {
"version": "7.0.0-beta.0",
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz",
- "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==",
- "license": "MIT"
+ "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ=="
},
"node_modules/babel-preset-current-node-syntax": {
"version": "1.0.1",
@@ -5545,72 +5878,23 @@
}
},
"node_modules/babel-preset-expo": {
- "version": "9.2.0",
- "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-9.2.0.tgz",
- "integrity": "sha512-aM2htiNx0H49H+MWCp9+cKVSdcdNSn0tbE5Dln/GO1xna4ZlnA30clbfClcYJFUcZtW90IsYeZwQ/hj8zyWhNA==",
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-9.2.2.tgz",
+ "integrity": "sha512-69cSPObZWFz0AaUT6IhCu2VzPVTICUtXzhX5ecoDttFe+9wb9yMV8m7rBNZptJQ3wtiKB5iEL7/wvtKygPz/mQ==",
"dependencies": {
"@babel/plugin-proposal-decorators": "^7.12.9",
+ "@babel/plugin-proposal-object-rest-spread": "^7.12.13",
"@babel/plugin-transform-react-jsx": "^7.12.17",
"@babel/preset-env": "^7.12.9",
"babel-plugin-module-resolver": "^4.1.0",
"babel-plugin-react-native-web": "~0.18.2",
- "metro-react-native-babel-preset": "~0.70.3"
- }
- },
- "node_modules/babel-preset-expo/node_modules/metro-react-native-babel-preset": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.70.3.tgz",
- "integrity": "sha512-4Nxc1zEiHEu+GTdEMEsHnRgfaBkg8f/Td3+FcQ8NTSvs+xL3LBrQy6N07idWSQZHIdGFf+tTHvRfSIWLD8u8Tg==",
- "dependencies": {
- "@babel/core": "^7.14.0",
- "@babel/plugin-proposal-async-generator-functions": "^7.0.0",
- "@babel/plugin-proposal-class-properties": "^7.0.0",
- "@babel/plugin-proposal-export-default-from": "^7.0.0",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0",
- "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
- "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
- "@babel/plugin-proposal-optional-chaining": "^7.0.0",
- "@babel/plugin-syntax-dynamic-import": "^7.0.0",
- "@babel/plugin-syntax-export-default-from": "^7.0.0",
- "@babel/plugin-syntax-flow": "^7.2.0",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0",
- "@babel/plugin-syntax-optional-chaining": "^7.0.0",
- "@babel/plugin-transform-arrow-functions": "^7.0.0",
- "@babel/plugin-transform-async-to-generator": "^7.0.0",
- "@babel/plugin-transform-block-scoping": "^7.0.0",
- "@babel/plugin-transform-classes": "^7.0.0",
- "@babel/plugin-transform-computed-properties": "^7.0.0",
- "@babel/plugin-transform-destructuring": "^7.0.0",
- "@babel/plugin-transform-exponentiation-operator": "^7.0.0",
- "@babel/plugin-transform-flow-strip-types": "^7.0.0",
- "@babel/plugin-transform-function-name": "^7.0.0",
- "@babel/plugin-transform-literals": "^7.0.0",
- "@babel/plugin-transform-modules-commonjs": "^7.0.0",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0",
- "@babel/plugin-transform-parameters": "^7.0.0",
- "@babel/plugin-transform-react-display-name": "^7.0.0",
- "@babel/plugin-transform-react-jsx": "^7.0.0",
- "@babel/plugin-transform-react-jsx-self": "^7.0.0",
- "@babel/plugin-transform-react-jsx-source": "^7.0.0",
- "@babel/plugin-transform-runtime": "^7.0.0",
- "@babel/plugin-transform-shorthand-properties": "^7.0.0",
- "@babel/plugin-transform-spread": "^7.0.0",
- "@babel/plugin-transform-sticky-regex": "^7.0.0",
- "@babel/plugin-transform-template-literals": "^7.0.0",
- "@babel/plugin-transform-typescript": "^7.5.0",
- "@babel/plugin-transform-unicode-regex": "^7.0.0",
- "@babel/template": "^7.0.0",
- "react-refresh": "^0.4.0"
- },
- "peerDependencies": {
- "@babel/core": "*"
+ "metro-react-native-babel-preset": "0.72.3"
}
},
"node_modules/babel-preset-fbjs": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz",
"integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==",
- "license": "MIT",
"dependencies": {
"@babel/plugin-proposal-class-properties": "^7.0.0",
"@babel/plugin-proposal-object-rest-spread": "^7.0.0",
@@ -6119,7 +6403,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
"integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
- "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -6214,7 +6497,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
"integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==",
- "license": "MIT",
"dependencies": {
"callsites": "^2.0.0"
},
@@ -6226,7 +6508,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
"integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==",
- "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -6235,7 +6516,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
"integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==",
- "license": "MIT",
"dependencies": {
"caller-callsite": "^2.0.0"
},
@@ -6322,6 +6602,11 @@
"node": ">=10"
}
},
+ "node_modules/chardet": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
+ },
"node_modules/charenc": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
@@ -6378,7 +6663,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
"integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
- "license": "MIT",
"dependencies": {
"restore-cursor": "^3.1.0"
},
@@ -6398,6 +6682,11 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/cli-width": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
+ "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw=="
+ },
"node_modules/cliui": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
@@ -6422,7 +6711,6 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
"integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
- "license": "MIT",
"dependencies": {
"is-plain-object": "^2.0.4",
"kind-of": "^6.0.2",
@@ -6443,6 +6731,14 @@
"node": ">= 0.12.0"
}
},
+ "node_modules/code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/collect-v8-coverage": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
@@ -6515,8 +6811,7 @@
"node_modules/colorette": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
- "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==",
- "license": "MIT"
+ "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g=="
},
"node_modules/combined-stream": {
"version": "1.0.8",
@@ -6551,10 +6846,9 @@
}
},
"node_modules/commander": {
- "version": "9.4.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz",
- "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==",
- "license": "MIT",
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz",
+ "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==",
"engines": {
"node": "^12.20.0 || >=14"
}
@@ -6562,8 +6856,7 @@
"node_modules/commondir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
- "license": "MIT"
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
},
"node_modules/compare-versions": {
"version": "3.6.0",
@@ -6585,7 +6878,6 @@
"version": "2.0.18",
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
"integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
- "license": "MIT",
"dependencies": {
"mime-db": ">= 1.43.0 < 2"
},
@@ -6597,7 +6889,6 @@
"version": "1.7.4",
"resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
"integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
- "license": "MIT",
"dependencies": {
"accepts": "~1.3.5",
"bytes": "3.0.0",
@@ -6615,7 +6906,6 @@
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
@@ -6623,8 +6913,7 @@
"node_modules/compression/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/concat-map": {
"version": "0.0.1",
@@ -6676,6 +6965,11 @@
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"license": "MIT"
},
+ "node_modules/console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
+ },
"node_modules/content-type": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
@@ -6725,7 +7019,6 @@
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
"integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
- "license": "MIT",
"dependencies": {
"import-fresh": "^2.0.0",
"is-directory": "^0.3.1",
@@ -6740,7 +7033,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
"integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==",
- "license": "MIT",
"dependencies": {
"caller-path": "^2.0.0",
"resolve-from": "^3.0.0"
@@ -6753,7 +7045,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
"integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
- "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -6922,10 +7213,9 @@
}
},
"node_modules/dayjs": {
- "version": "1.11.5",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz",
- "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==",
- "license": "MIT"
+ "version": "1.11.7",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz",
+ "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ=="
},
"node_modules/debug": {
"version": "4.3.4",
@@ -6961,10 +7251,9 @@
"license": "MIT"
},
"node_modules/decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==",
- "license": "MIT",
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
"engines": {
"node": ">=0.10"
}
@@ -7002,7 +7291,6 @@
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz",
"integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==",
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -7179,11 +7467,15 @@
"node": ">=0.4.0"
}
},
+ "node_modules/delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
+ },
"node_modules/denodeify": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz",
- "integrity": "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==",
- "license": "MIT"
+ "integrity": "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg=="
},
"node_modules/depd": {
"version": "2.0.0",
@@ -7434,7 +7726,6 @@
"version": "7.8.1",
"resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz",
"integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==",
- "license": "MIT",
"bin": {
"envinfo": "dist/cli.js"
},
@@ -7460,7 +7751,6 @@
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
"integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
- "license": "MIT",
"dependencies": {
"stackframe": "^1.3.4"
}
@@ -7469,7 +7759,6 @@
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz",
"integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==",
- "license": "MIT",
"dependencies": {
"accepts": "~1.3.7",
"escape-html": "~1.0.3"
@@ -8231,23 +8520,25 @@
}
},
"node_modules/expo": {
- "version": "46.0.13",
- "resolved": "https://registry.npmjs.org/expo/-/expo-46.0.13.tgz",
- "integrity": "sha512-xaU8GlJ7j3vo1U5tSbFDsoJqUfTkRF4XDEUj/Dr/jqUf0GcvlMKuGe6HvnbMO9slxYQlYlWJUzvlAx38TLhxyA==",
+ "version": "47.0.10",
+ "resolved": "https://registry.npmjs.org/expo/-/expo-47.0.10.tgz",
+ "integrity": "sha512-iWiYvZAlxfIp1VYjVakr0koGPSHQOmIT6mz3qxSVi5N8zbHyroXsJX5cWbFJAs9irTTQQ39AaS5bfiRaIVb6xg==",
"dependencies": {
"@babel/runtime": "^7.14.0",
- "@expo/cli": "0.3.1",
+ "@expo/cli": "0.4.10",
+ "@expo/config": "7.0.3",
+ "@expo/config-plugins": "5.0.4",
"@expo/vector-icons": "^13.0.0",
- "babel-preset-expo": "~9.2.0",
+ "babel-preset-expo": "~9.2.2",
"cross-spawn": "^6.0.5",
- "expo-application": "~4.2.2",
- "expo-asset": "~8.6.1",
- "expo-constants": "~13.2.4",
- "expo-file-system": "~14.1.0",
- "expo-font": "~10.2.1",
- "expo-keep-awake": "~10.2.0",
- "expo-modules-autolinking": "0.10.3",
- "expo-modules-core": "0.11.5",
+ "expo-application": "~5.0.1",
+ "expo-asset": "~8.7.0",
+ "expo-constants": "~14.0.2",
+ "expo-file-system": "~15.1.1",
+ "expo-font": "~11.0.1",
+ "expo-keep-awake": "~11.0.1",
+ "expo-modules-autolinking": "1.0.1",
+ "expo-modules-core": "1.1.0",
"fbemitter": "^3.0.0",
"getenv": "^1.0.0",
"invariant": "^2.2.4",
@@ -8260,25 +8551,25 @@
"expo": "bin/cli.js"
},
"optionalDependencies": {
- "expo-error-recovery": "~3.2.0"
+ "expo-error-recovery": "~4.0.1"
}
},
"node_modules/expo-application": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-4.2.2.tgz",
- "integrity": "sha512-bFEaFRUdV6aK2iBd+HzkHNPYsyj88EAhaQW5leznmO0qQMJxpAQ3eoUXMey1hfDBh1qgkkHgSyCZ9BIgMAGJ1g==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-5.0.1.tgz",
+ "integrity": "sha512-bThxK5zH/Lc2tkCvEXGjfM7ayvOVmPWYcWzXsMIU1RtG73TyXo4cq+73FvfDNIWn6gKS0WyMcmoPB3WXEV/jsw==",
"peerDependencies": {
"expo": "*"
}
},
"node_modules/expo-asset": {
- "version": "8.6.1",
- "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-8.6.1.tgz",
- "integrity": "sha512-urbUp1YtwH2J0Qc3inGQJdqTjWKML77SeMNgff+iR9MUE8gDkFqSCDjrBi7i5Oj5DDtq43mmtDg8G8ei6Vchcg==",
+ "version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-8.7.0.tgz",
+ "integrity": "sha512-lkoNsHK6vf+outISB6/37SonXcAL6Buw0ycjiwQVFfpOBKpkQa+zw5wm1m3KwjH2txmR3xdIzcpWsJkgovYCvQ==",
"dependencies": {
"blueimp-md5": "^2.10.0",
- "expo-constants": "~13.2.2",
- "expo-file-system": "~14.1.0",
+ "expo-constants": "~14.0.0",
+ "expo-file-system": "~15.1.0",
"invariant": "^2.2.4",
"md5-file": "^3.2.3",
"path-browserify": "^1.0.0",
@@ -8286,12 +8577,9 @@
}
},
"node_modules/expo-av": {
- "version": "12.0.4",
- "resolved": "https://registry.npmjs.org/expo-av/-/expo-av-12.0.4.tgz",
- "integrity": "sha512-wq3wx6J1aacZEPZce9TK1+o4YTAOWyb5cJ4CqfsgHcXeUdHyO3qbva/5uecigpEYlCxOlWYFhAz2T0dQ7nWSpQ==",
- "dependencies": {
- "@expo/config-plugins": "~5.0.0"
- },
+ "version": "13.0.2",
+ "resolved": "https://registry.npmjs.org/expo-av/-/expo-av-13.0.2.tgz",
+ "integrity": "sha512-u+y9wUBodp08UjRZYckNWzr9zEQHK6eScRBkhdTd9Rq48SEZ7eN6xXn79hubvk0P5nj7lFS+hdKjmx9T5XHGww==",
"peerDependencies": {
"expo": "*"
}
@@ -8309,11 +8597,11 @@
}
},
"node_modules/expo-constants": {
- "version": "13.2.4",
- "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-13.2.4.tgz",
- "integrity": "sha512-Zobau8EuTk2GgafwkfGnWM6CmSLB7X8qnQXVuXe0nd3v92hfQUmRWGhJwH88uxXj3LrfqctM6PaJ8taG1vxfBw==",
+ "version": "14.0.2",
+ "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-14.0.2.tgz",
+ "integrity": "sha512-wzV3nrzTXTI8yG0tfas3fnqCfKV6YE+1GphEREyVDAShEB6mBInX1b6HgtpHFy2wOtnml+lPVmTCeGtjjLnZhA==",
"dependencies": {
- "@expo/config": "~7.0.0",
+ "@expo/config": "~7.0.2",
"uuid": "^3.3.2"
},
"peerDependencies": {
@@ -8330,20 +8618,19 @@
}
},
"node_modules/expo-error-recovery": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-3.2.0.tgz",
- "integrity": "sha512-XZ630ks5HNxa9oc2Ya1hEn1ez031Cy4VnyxerPC2o9fKNKSrD/64cRqGF9NkGM3X2uf8+PCB9adxVflAIXBf6w==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-4.0.1.tgz",
+ "integrity": "sha512-wceptnRX+N3qCSVTNbIchUFu3GmY30onRH5L66OF8HMLpAIQfrZMLxJfz7SAMJTcr3jxsJ11vSa2l2RaPKgHsQ==",
"optional": true,
"peerDependencies": {
"expo": "*"
}
},
"node_modules/expo-file-system": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-14.1.0.tgz",
- "integrity": "sha512-lJcPGQ8yKXVknVkD5TmcJnR/TpQbEL0JP8hknLejfq3FIqPqI/LBFn31YiP37grxW8lITz1al8pq5T6CSUjAzQ==",
+ "version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-15.1.1.tgz",
+ "integrity": "sha512-MYYDKxjLo9VOkvGHqym5EOAUS+ero9O66X5zI+EXJzqNznKvnfScdXeeAaQzShmWtmLkdVDCoYFGOaTvTA1wTQ==",
"dependencies": {
- "@expo/config-plugins": "~5.0.0",
"uuid": "^3.4.0"
},
"peerDependencies": {
@@ -8360,9 +8647,9 @@
}
},
"node_modules/expo-font": {
- "version": "10.2.1",
- "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-10.2.1.tgz",
- "integrity": "sha512-sxy5GrdtY+Ka8Wo5wnrcFFeO6MbYC6Dris5wMLqshvVK6BneJNMUsFvwRfvVgg0TzsmMAc3Rlca2xyZ8ettinw==",
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-11.0.1.tgz",
+ "integrity": "sha512-LGAIluWZfru0J0n87dzb6pwAB6TVMTEiLcsd/ktozzbn4DlN7SeQy40+ruU6bvAKCOGrnRneYbKSIOGkrd7oNg==",
"dependencies": {
"fontfaceobserver": "^2.1.0"
},
@@ -8379,17 +8666,17 @@
}
},
"node_modules/expo-keep-awake": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-10.2.0.tgz",
- "integrity": "sha512-kIRtO4Hmrvxh4E45IPWG/NiUZsuRe1AQwBT09pq+kx8nm6tUS4B9TeL6+1NFy+qVBLbGKDqoQD5Ez7XYTFtBeQ==",
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-11.0.1.tgz",
+ "integrity": "sha512-44ZjgLE4lnce2d40Pv8xsjMVc6R5GvgHOwZfkLYtGmgYG9TYrEJeEj5UfSeweXPL3pBFhXKfFU8xpGYMaHdP0A==",
"peerDependencies": {
"expo": "*"
}
},
"node_modules/expo-modules-autolinking": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-0.10.3.tgz",
- "integrity": "sha512-av9ln2zwUt303g98raX7sDmESgL3SXs1sbbtIjh1rL7R0676XIUacIKgbydR0/4tMbOShWx14Z9fozpk9xIAJA==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.0.1.tgz",
+ "integrity": "sha512-Ch0K/Vb2W7zSPlPKKFr6dwgwge6sSCpl7XPW8jrc7hUy+M72dvcfsBsaphvGNlKIZM6TtpCt0xbUlL48wI2y1A==",
"dependencies": {
"chalk": "^4.1.0",
"commander": "^7.2.0",
@@ -8500,9 +8787,9 @@
}
},
"node_modules/expo-modules-core": {
- "version": "0.11.5",
- "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-0.11.5.tgz",
- "integrity": "sha512-KmTHtaL21M1AzKOmu3YM5K8ddCbbr6wgooG4uCb+o+7zZXe+BPP4jAPs5LLez1Et34OQcyjopxUpJ8r43HImvQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.1.0.tgz",
+ "integrity": "sha512-alNfgWyGECYUK3R0bIUc0OHXi5btqFWDMNDSrdeNSdxFKvlzrtQKdbLHJTphumh9KgAIpbEKrUYE2Vimg+Tr8w==",
"dependencies": {
"compare-versions": "^3.4.0",
"invariant": "^2.2.4"
@@ -8612,6 +8899,19 @@
"node": ">=0.10.0"
}
},
+ "node_modules/external-editor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+ "dependencies": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/extglob": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
@@ -8771,6 +9071,17 @@
"resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz",
"integrity": "sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA=="
},
+ "node_modules/figures": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==",
+ "dependencies": {
+ "escape-string-regexp": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -8895,7 +9206,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
"integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
- "license": "MIT",
"dependencies": {
"commondir": "^1.0.1",
"make-dir": "^2.0.0",
@@ -8909,7 +9219,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "license": "MIT",
"dependencies": {
"locate-path": "^3.0.0"
},
@@ -8921,7 +9230,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "license": "MIT",
"dependencies": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
@@ -8934,7 +9242,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "license": "MIT",
"dependencies": {
"p-limit": "^2.0.0"
},
@@ -8946,7 +9253,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -8955,7 +9261,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
"integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
- "license": "MIT",
"dependencies": {
"find-up": "^3.0.0"
},
@@ -9036,7 +9341,6 @@
"version": "0.121.0",
"resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.121.0.tgz",
"integrity": "sha512-1gIBiWJNR0tKUNv8gZuk7l9rVX06OuLzY9AoGio7y/JT4V1IZErEMEq2TJS+PFcw/y0RshZ1J/27VfK1UQzYVg==",
- "license": "MIT",
"engines": {
"node": ">=0.4.0"
}
@@ -9172,6 +9476,19 @@
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
"license": "ISC"
},
+ "node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
"node_modules/function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
@@ -9214,6 +9531,64 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==",
+ "dependencies": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "node_modules/gauge/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gauge/node_modules/is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
+ "dependencies": {
+ "number-is-nan": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gauge/node_modules/string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gauge/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/gensync": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
@@ -9394,9 +9769,9 @@
}
},
"node_modules/globby/node_modules/ignore": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
- "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
"engines": {
"node": ">= 4"
}
@@ -9529,6 +9904,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
+ },
"node_modules/has-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
@@ -9571,14 +9951,12 @@
"node_modules/hermes-estree": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.8.0.tgz",
- "integrity": "sha512-W6JDAOLZ5pMPMjEiQGLCXSSV7pIBEgRR5zGkxgmzGSXHOxqV5dC/M1Zevqpbm9TZDE5tu358qZf8Vkzmsc+u7Q==",
- "license": "MIT"
+ "integrity": "sha512-W6JDAOLZ5pMPMjEiQGLCXSSV7pIBEgRR5zGkxgmzGSXHOxqV5dC/M1Zevqpbm9TZDE5tu358qZf8Vkzmsc+u7Q=="
},
"node_modules/hermes-parser": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.8.0.tgz",
"integrity": "sha512-yZKalg1fTYG5eOiToLUaw69rQfZq/fi+/NtEXRU7N87K/XobNRhRWorh80oSge2lWUiZfTgUvRJH+XgZWrhoqA==",
- "license": "MIT",
"dependencies": {
"hermes-estree": "0.8.0"
}
@@ -9587,7 +9965,6 @@
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz",
"integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==",
- "license": "MIT",
"dependencies": {
"source-map": "^0.7.3"
},
@@ -9599,7 +9976,6 @@
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
"integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
- "license": "BSD-3-Clause",
"engines": {
"node": ">= 8"
}
@@ -9713,7 +10089,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
"integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"agent-base": "6",
@@ -9788,7 +10163,6 @@
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz",
"integrity": "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==",
- "license": "MIT",
"bin": {
"image-size": "bin/image-size.js"
},
@@ -9796,6 +10170,11 @@
"node": ">=4.0"
}
},
+ "node_modules/immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
+ },
"node_modules/import-fresh": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
@@ -9886,6 +10265,193 @@
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
},
+ "node_modules/inquirer": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
+ "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
+ "dependencies": {
+ "ansi-escapes": "^3.2.0",
+ "chalk": "^2.4.2",
+ "cli-cursor": "^2.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^2.0.0",
+ "lodash": "^4.17.12",
+ "mute-stream": "0.0.7",
+ "run-async": "^2.2.0",
+ "rxjs": "^6.4.0",
+ "string-width": "^2.1.0",
+ "strip-ansi": "^5.1.0",
+ "through": "^2.3.6"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/inquirer/node_modules/ansi-escapes": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
+ "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/inquirer/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/inquirer/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/inquirer/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/inquirer/node_modules/cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==",
+ "dependencies": {
+ "restore-cursor": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/inquirer/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/inquirer/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/inquirer/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/inquirer/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/inquirer/node_modules/mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/inquirer/node_modules/onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==",
+ "dependencies": {
+ "mimic-fn": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/inquirer/node_modules/restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==",
+ "dependencies": {
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/inquirer/node_modules/string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dependencies": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/inquirer/node_modules/string-width/node_modules/ansi-regex": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+ "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/inquirer/node_modules/string-width/node_modules/strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==",
+ "dependencies": {
+ "ansi-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/inquirer/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/inquirer/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/install": {
"version": "0.13.0",
"resolved": "https://registry.npmjs.org/install/-/install-0.13.0.tgz",
@@ -9933,8 +10499,7 @@
"node_modules/ip": {
"version": "1.1.8",
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
- "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==",
- "license": "MIT"
+ "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg=="
},
"node_modules/ip-regex": {
"version": "2.1.0",
@@ -10090,7 +10655,6 @@
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
"integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==",
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -10163,7 +10727,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
"integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
- "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -10375,7 +10938,6 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
"integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -10420,7 +10982,6 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
"integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
- "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -11220,10 +11781,9 @@
"integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww=="
},
"node_modules/joi": {
- "version": "17.6.1",
- "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.1.tgz",
- "integrity": "sha512-Hl7/iBklIX345OCM1TiFSCZRVaAOLDGlWCp0Df2vWYgBgjkezaR7Kvm3joBciBHQjZj5sxXs859r6eqsRSlG8w==",
- "license": "BSD-3-Clause",
+ "version": "17.7.0",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-17.7.0.tgz",
+ "integrity": "sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==",
"dependencies": {
"@hapi/hoek": "^9.0.0",
"@hapi/topo": "^5.0.0",
@@ -11271,7 +11831,6 @@
"version": "0.13.1",
"resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.13.1.tgz",
"integrity": "sha512-lGyiEbGOvmMRKgWk4vf+lUrCWO/8YR8sUR3FKF1Cq5fovjZDlIcw3Hu5ppLHAnEXshVffvaM0eyuY/AbOeYpnQ==",
- "license": "MIT",
"dependencies": {
"@babel/core": "^7.13.16",
"@babel/parser": "^7.13.16",
@@ -11304,7 +11863,6 @@
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
"integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
- "license": "MIT",
"dependencies": {
"arr-flatten": "^1.1.0",
"array-unique": "^0.3.2",
@@ -11321,32 +11879,10 @@
"node": ">=0.10.0"
}
},
- "node_modules/jscodeshift/node_modules/braces/node_modules/extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
- "license": "MIT",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/jscodeshift/node_modules/braces/node_modules/is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/jscodeshift/node_modules/define-property": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
"integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
- "license": "MIT",
"dependencies": {
"is-descriptor": "^1.0.2",
"isobject": "^3.0.1"
@@ -11355,24 +11891,10 @@
"node": ">=0.10.0"
}
},
- "node_modules/jscodeshift/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
- "license": "MIT",
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/jscodeshift/node_modules/fill-range": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
"integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
- "license": "MIT",
"dependencies": {
"extend-shallow": "^2.0.1",
"is-number": "^3.0.0",
@@ -11383,41 +11905,10 @@
"node": ">=0.10.0"
}
},
- "node_modules/jscodeshift/node_modules/fill-range/node_modules/extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
- "license": "MIT",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/jscodeshift/node_modules/fill-range/node_modules/is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/jscodeshift/node_modules/flow-parser": {
- "version": "0.187.1",
- "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.187.1.tgz",
- "integrity": "sha512-ZvlTeakTTMmYGukt4EIQtLEp4ie45W+jK325uukGgiqFg2Rl7TdpOJQbOLUN2xMeGS+WvXaK0uIJ3coPGDXFGQ==",
- "license": "MIT",
- "engines": {
- "node": ">=0.4.0"
- }
- },
"node_modules/jscodeshift/node_modules/is-extendable": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "license": "MIT",
"dependencies": {
"is-plain-object": "^2.0.4"
},
@@ -11429,7 +11920,6 @@
"version": "3.1.10",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
"integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "license": "MIT",
"dependencies": {
"arr-diff": "^4.0.0",
"array-unique": "^0.3.2",
@@ -11449,11 +11939,44 @@
"node": ">=0.10.0"
}
},
+ "node_modules/jscodeshift/node_modules/micromatch/node_modules/extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+ "dependencies": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jscodeshift/node_modules/rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/jscodeshift/node_modules/temp": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz",
+ "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==",
+ "dependencies": {
+ "rimraf": "~2.6.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
"node_modules/jscodeshift/node_modules/to-regex-range": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
"integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
- "license": "MIT",
"dependencies": {
"is-number": "^3.0.0",
"repeat-string": "^1.6.1"
@@ -11466,7 +11989,6 @@
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
"integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
- "license": "ISC",
"dependencies": {
"graceful-fs": "^4.1.11",
"imurmurhash": "^0.1.4",
@@ -11548,8 +12070,7 @@
"node_modules/json-parse-better-errors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
- "license": "MIT"
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
},
"node_modules/json-parse-even-better-errors": {
"version": "2.3.1",
@@ -11618,10 +12139,9 @@
"integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
},
"node_modules/json5": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
- "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
- "license": "MIT",
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"bin": {
"json5": "lib/cli.js"
},
@@ -11679,7 +12199,6 @@
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
"integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==",
- "license": "MIT",
"optionalDependencies": {
"graceful-fs": "^4.1.9"
}
@@ -11739,12 +12258,28 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/lie": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
+ "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==",
+ "dependencies": {
+ "immediate": "~3.0.5"
+ }
+ },
"node_modules/lines-and-columns": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
"license": "MIT"
},
+ "node_modules/localforage": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
+ "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
+ "dependencies": {
+ "lie": "3.1.1"
+ }
+ },
"node_modules/locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@@ -11783,8 +12318,7 @@
"node_modules/lodash.throttle": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
- "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==",
- "license": "MIT"
+ "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ=="
},
"node_modules/lodash.truncate": {
"version": "4.4.2",
@@ -11797,7 +12331,6 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
"integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "license": "MIT",
"dependencies": {
"chalk": "^4.1.0",
"is-unicode-supported": "^0.1.0"
@@ -11813,7 +12346,6 @@
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz",
"integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==",
- "license": "MIT",
"dependencies": {
"ansi-fragments": "^0.2.1",
"dayjs": "^1.8.15",
@@ -11851,7 +12383,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
"integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "license": "MIT",
"dependencies": {
"pify": "^4.0.1",
"semver": "^5.6.0"
@@ -11864,7 +12395,6 @@
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "license": "ISC",
"bin": {
"semver": "bin/semver"
}
@@ -11970,7 +12500,6 @@
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/metro/-/metro-0.72.3.tgz",
"integrity": "sha512-Hb3xTvPqex8kJ1hutQNZhQadUKUwmns/Du9GikmWKBFrkiG3k3xstGAyO5t5rN9JSUEzQT6y9SWzSSOGogUKIg==",
- "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.0.0",
"@babel/core": "^7.14.0",
@@ -12031,7 +12560,6 @@
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.72.3.tgz",
"integrity": "sha512-PTOR2zww0vJbWeeM3qN90WKENxCLzv9xrwWaNtwVlhcV8/diNdNe82sE1xIxLFI6OQuAVwNMv1Y7VsO2I7Ejrw==",
- "license": "MIT",
"dependencies": {
"@babel/core": "^7.14.0",
"hermes-parser": "0.8.0",
@@ -12043,7 +12571,6 @@
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.72.3.tgz",
"integrity": "sha512-++eyZzwkXvijWRV3CkDbueaXXGlVzH9GA52QWqTgAOgSHYp5jWaDwLQ8qpsMkQzpwSyIF4LLK9aI3eA7Xa132A==",
- "license": "MIT",
"dependencies": {
"metro-core": "0.72.3",
"rimraf": "^2.5.4"
@@ -12052,14 +12579,12 @@
"node_modules/metro-cache-key": {
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.72.3.tgz",
- "integrity": "sha512-kQzmF5s3qMlzqkQcDwDxrOaVxJ2Bh6WRXWdzPnnhsq9LcD3B3cYqQbRBS+3tSuXmathb4gsOdhWslOuIsYS8Rg==",
- "license": "MIT"
+ "integrity": "sha512-kQzmF5s3qMlzqkQcDwDxrOaVxJ2Bh6WRXWdzPnnhsq9LcD3B3cYqQbRBS+3tSuXmathb4gsOdhWslOuIsYS8Rg=="
},
"node_modules/metro-config": {
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.72.3.tgz",
"integrity": "sha512-VEsAIVDkrIhgCByq8HKTWMBjJG6RlYwWSu1Gnv3PpHa0IyTjKJtB7wC02rbTjSaemcr82scldf2R+h6ygMEvsw==",
- "license": "MIT",
"dependencies": {
"cosmiconfig": "^5.0.5",
"jest-validate": "^26.5.2",
@@ -12073,7 +12598,6 @@
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.72.3.tgz",
"integrity": "sha512-KuYWBMmLB4+LxSMcZ1dmWabVExNCjZe3KysgoECAIV+wyIc2r4xANq15GhS94xYvX1+RqZrxU1pa0jQ5OK+/6A==",
- "license": "MIT",
"dependencies": {
"lodash.throttle": "^4.1.1",
"metro-resolver": "0.72.3"
@@ -12083,7 +12607,6 @@
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.72.3.tgz",
"integrity": "sha512-LhuRnuZ2i2uxkpFsz1XCDIQSixxBkBG7oICAFyLyEMDGbcfeY6/NexphfLdJLTghkaoJR5ARFMiIxUg9fIY/pA==",
- "license": "MIT",
"dependencies": {
"abort-controller": "^3.0.0",
"anymatch": "^3.0.3",
@@ -12106,7 +12629,6 @@
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
"integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
- "license": "MIT",
"dependencies": {
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^3.0.0",
@@ -12122,22 +12644,28 @@
"version": "16.0.4",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz",
"integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==",
- "license": "MIT",
"dependencies": {
"@types/yargs-parser": "*"
}
},
"node_modules/metro-file-map/node_modules/ci-info": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.4.0.tgz",
- "integrity": "sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==",
- "license": "MIT"
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
},
"node_modules/metro-file-map/node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
@@ -12146,7 +12674,6 @@
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
"integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==",
- "license": "MIT",
"engines": {
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
@@ -12155,7 +12682,6 @@
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
"integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
- "license": "MIT",
"dependencies": {
"@types/node": "*",
"graceful-fs": "^4.2.9"
@@ -12168,7 +12694,6 @@
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
"integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
- "license": "MIT",
"dependencies": {
"@jest/types": "^27.5.1",
"@types/node": "*",
@@ -12185,7 +12710,6 @@
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
"integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
- "license": "MIT",
"dependencies": {
"@types/node": "*",
"merge-stream": "^2.0.0",
@@ -12198,14 +12722,12 @@
"node_modules/metro-file-map/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/metro-file-map/node_modules/supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -12219,14 +12741,12 @@
"node_modules/metro-hermes-compiler": {
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.72.3.tgz",
- "integrity": "sha512-QWDQASMiXNW3j8uIQbzIzCdGYv5PpAX/ZiF4/lTWqKRWuhlkP4auhVY4eqdAKj5syPx45ggpjkVE0p8hAPDZYg==",
- "license": "MIT"
+ "integrity": "sha512-QWDQASMiXNW3j8uIQbzIzCdGYv5PpAX/ZiF4/lTWqKRWuhlkP4auhVY4eqdAKj5syPx45ggpjkVE0p8hAPDZYg=="
},
"node_modules/metro-inspector-proxy": {
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.72.3.tgz",
"integrity": "sha512-UPFkaq2k93RaOi+eqqt7UUmqy2ywCkuxJLasQ55+xavTUS+TQSyeTnTczaYn+YKw+izLTLllGcvqnQcZiWYhGw==",
- "license": "MIT",
"dependencies": {
"connect": "^3.6.5",
"debug": "^2.2.0",
@@ -12241,7 +12761,6 @@
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
@@ -12249,14 +12768,12 @@
"node_modules/metro-inspector-proxy/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/metro-minify-uglify": {
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.72.3.tgz",
"integrity": "sha512-dPXqtMI8TQcj0g7ZrdhC8X3mx3m3rtjtMuHKGIiEXH9CMBvrET8IwrgujQw2rkPcXiSiX8vFDbGMIlfxefDsKA==",
- "license": "MIT",
"dependencies": {
"uglify-es": "^3.1.9"
}
@@ -12265,7 +12782,6 @@
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.72.3.tgz",
"integrity": "sha512-uJx9y/1NIqoYTp6ZW1osJ7U5ZrXGAJbOQ/Qzl05BdGYvN1S7Qmbzid6xOirgK0EIT0pJKEEh1s8qbassYZe4cw==",
- "license": "MIT",
"dependencies": {
"@babel/core": "^7.14.0",
"@babel/plugin-proposal-async-generator-functions": "^7.0.0",
@@ -12312,141 +12828,26 @@
}
},
"node_modules/metro-react-native-babel-transformer": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.72.1.tgz",
- "integrity": "sha512-hMnN0MOgVloAk94YuXN7sLeDaZ51Y6xIcJXxIU1s/KaygAGXk6o7VAdwf2MY/IV1SIct5lkW4Gn71u/9/EvfXA==",
- "license": "MIT",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.72.3.tgz",
+ "integrity": "sha512-Ogst/M6ujYrl/+9mpEWqE3zF7l2mTuftDTy3L8wZYwX1pWUQWQpfU1aJBeWiLxt1XlIq+uriRjKzKoRoIK57EA==",
"dependencies": {
"@babel/core": "^7.14.0",
"babel-preset-fbjs": "^3.4.0",
"hermes-parser": "0.8.0",
- "metro-babel-transformer": "0.72.1",
- "metro-react-native-babel-preset": "0.72.1",
- "metro-source-map": "0.72.1",
+ "metro-babel-transformer": "0.72.3",
+ "metro-react-native-babel-preset": "0.72.3",
+ "metro-source-map": "0.72.3",
"nullthrows": "^1.1.1"
},
"peerDependencies": {
"@babel/core": "*"
}
},
- "node_modules/metro-react-native-babel-transformer/node_modules/metro-babel-transformer": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.72.1.tgz",
- "integrity": "sha512-VK7A9gepnhrKC0DMoxtPjYYHjkkfNwzLMYJgeL6Il6IaX/K/VHTILSEqgpxfNDos2jrXazuR5+rXDLE/RCzqmw==",
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.14.0",
- "hermes-parser": "0.8.0",
- "metro-source-map": "0.72.1",
- "nullthrows": "^1.1.1"
- }
- },
- "node_modules/metro-react-native-babel-transformer/node_modules/metro-react-native-babel-preset": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.72.1.tgz",
- "integrity": "sha512-DlvMw2tFrCqD9OXBoN11fPM09kHC22FZpnkTmG4Pr4kecV+aDmEGxwakjUcjELrX1JCXz2MLPvqeJkbiP1f5CA==",
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.14.0",
- "@babel/plugin-proposal-async-generator-functions": "^7.0.0",
- "@babel/plugin-proposal-class-properties": "^7.0.0",
- "@babel/plugin-proposal-export-default-from": "^7.0.0",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0",
- "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
- "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
- "@babel/plugin-proposal-optional-chaining": "^7.0.0",
- "@babel/plugin-syntax-dynamic-import": "^7.0.0",
- "@babel/plugin-syntax-export-default-from": "^7.0.0",
- "@babel/plugin-syntax-flow": "^7.2.0",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0",
- "@babel/plugin-syntax-optional-chaining": "^7.0.0",
- "@babel/plugin-transform-arrow-functions": "^7.0.0",
- "@babel/plugin-transform-async-to-generator": "^7.0.0",
- "@babel/plugin-transform-block-scoping": "^7.0.0",
- "@babel/plugin-transform-classes": "^7.0.0",
- "@babel/plugin-transform-computed-properties": "^7.0.0",
- "@babel/plugin-transform-destructuring": "^7.0.0",
- "@babel/plugin-transform-exponentiation-operator": "^7.0.0",
- "@babel/plugin-transform-flow-strip-types": "^7.0.0",
- "@babel/plugin-transform-function-name": "^7.0.0",
- "@babel/plugin-transform-literals": "^7.0.0",
- "@babel/plugin-transform-modules-commonjs": "^7.0.0",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0",
- "@babel/plugin-transform-parameters": "^7.0.0",
- "@babel/plugin-transform-react-display-name": "^7.0.0",
- "@babel/plugin-transform-react-jsx": "^7.0.0",
- "@babel/plugin-transform-react-jsx-self": "^7.0.0",
- "@babel/plugin-transform-react-jsx-source": "^7.0.0",
- "@babel/plugin-transform-runtime": "^7.0.0",
- "@babel/plugin-transform-shorthand-properties": "^7.0.0",
- "@babel/plugin-transform-spread": "^7.0.0",
- "@babel/plugin-transform-sticky-regex": "^7.0.0",
- "@babel/plugin-transform-template-literals": "^7.0.0",
- "@babel/plugin-transform-typescript": "^7.5.0",
- "@babel/plugin-transform-unicode-regex": "^7.0.0",
- "@babel/template": "^7.0.0",
- "react-refresh": "^0.4.0"
- },
- "peerDependencies": {
- "@babel/core": "*"
- }
- },
- "node_modules/metro-react-native-babel-transformer/node_modules/metro-source-map": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.1.tgz",
- "integrity": "sha512-77TZuf10Ru+USo97HwDT8UceSzOGBZB8EYTObOsR0n1sjQHjvKsMflLA9Pco13o9NsIYAG6c6P/0vIpiHKqaKA==",
- "license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.14.0",
- "@babel/types": "^7.0.0",
- "invariant": "^2.2.4",
- "metro-symbolicate": "0.72.1",
- "nullthrows": "^1.1.1",
- "ob1": "0.72.1",
- "source-map": "^0.5.6",
- "vlq": "^1.0.0"
- }
- },
- "node_modules/metro-react-native-babel-transformer/node_modules/metro-symbolicate": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.1.tgz",
- "integrity": "sha512-ScC3dVd2XrfZSd6kubOw7EJNp2oHdjrqOjGpFohtcXGjhqkzDosp7Fg84VgwQGN8g720xvUyEBfSMmUCXcicOQ==",
- "license": "MIT",
- "dependencies": {
- "invariant": "^2.2.4",
- "metro-source-map": "0.72.1",
- "nullthrows": "^1.1.1",
- "source-map": "^0.5.6",
- "through2": "^2.0.1",
- "vlq": "^1.0.0"
- },
- "bin": {
- "metro-symbolicate": "src/index.js"
- },
- "engines": {
- "node": ">=8.3"
- }
- },
- "node_modules/metro-react-native-babel-transformer/node_modules/ob1": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.1.tgz",
- "integrity": "sha512-TyQX2gO08klGTMuzD+xm3iVrzXiIygCB7t+NWeicOR05hkzgeWOiAZ8q40uMfIDRfEAc6hd66sJdIEhU/yUZZA==",
- "license": "MIT"
- },
- "node_modules/metro-react-native-babel-transformer/node_modules/source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/metro-resolver": {
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.72.3.tgz",
"integrity": "sha512-wu9zSMGdxpKmfECE7FtCdpfC+vrWGTdVr57lDA0piKhZV6VN6acZIvqQ1yZKtS2WfKsngncv5VbB8Y5eHRQP3w==",
- "license": "MIT",
"dependencies": {
"absolute-path": "^0.0.0"
}
@@ -12455,7 +12856,6 @@
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz",
"integrity": "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==",
- "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.0.0",
"react-refresh": "^0.4.0"
@@ -12465,7 +12865,6 @@
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz",
"integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==",
- "license": "MIT",
"dependencies": {
"@babel/traverse": "^7.14.0",
"@babel/types": "^7.0.0",
@@ -12481,7 +12880,6 @@
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
- "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
@@ -12490,7 +12888,6 @@
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.3.tgz",
"integrity": "sha512-eXG0NX2PJzJ/jTG4q5yyYeN2dr1cUqUaY7worBB0SP5bRWRc3besfb+rXwfh49wTFiL5qR0oOawkU4ZiD4eHXw==",
- "license": "MIT",
"dependencies": {
"invariant": "^2.2.4",
"metro-source-map": "0.72.3",
@@ -12510,7 +12907,6 @@
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
- "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
@@ -12519,7 +12915,6 @@
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.72.3.tgz",
"integrity": "sha512-D+TcUvCKZbRua1+qujE0wV1onZvslW6cVTs7dLCyC2pv20lNHjFr1GtW01jN2fyKR2PcRyMjDCppFd9VwDKnSg==",
- "license": "MIT",
"dependencies": {
"@babel/core": "^7.14.0",
"@babel/generator": "^7.14.0",
@@ -12532,7 +12927,6 @@
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.72.3.tgz",
"integrity": "sha512-WsuWj9H7i6cHuJuy+BgbWht9DK5FOgJxHLGAyULD5FJdTG9rSMFaHDO5WfC0OwQU5h4w6cPT40iDuEGksM7+YQ==",
- "license": "MIT",
"dependencies": {
"@babel/core": "^7.14.0",
"@babel/generator": "^7.14.0",
@@ -12553,7 +12947,6 @@
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
@@ -12562,7 +12955,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
"integrity": "sha512-VerQV6vEKuhDWD2HGOybV6v5I73syoc/cXAbKlgTC7M/oFVEtklWlp9QH2Ijw3IaWDOQcMkldSPa7zXy79Z/UQ==",
- "license": "MIT",
"dependencies": {
"graceful-fs": "^4.1.2",
"jsonfile": "^2.1.0",
@@ -12573,7 +12965,6 @@
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
"integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
- "license": "MIT",
"dependencies": {
"@types/node": "*",
"merge-stream": "^2.0.0",
@@ -12587,7 +12978,6 @@
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
"integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==",
- "license": "MIT",
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
@@ -12595,14 +12985,12 @@
"node_modules/metro/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/metro/node_modules/source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
- "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
@@ -12611,7 +12999,6 @@
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -12622,28 +13009,6 @@
"url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
- "node_modules/metro/node_modules/temp": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz",
- "integrity": "sha512-jtnWJs6B1cZlHs9wPG7BrowKxZw/rf6+UpGAkr8AaYmiTyTO7zQlLoST8zx/8TcUPnZmeBoB+H8ARuHZaSijVw==",
- "engines": [
- "node >=0.8.0"
- ],
- "license": "MIT",
- "dependencies": {
- "os-tmpdir": "^1.0.0",
- "rimraf": "~2.2.6"
- }
- },
- "node_modules/metro/node_modules/temp/node_modules/rimraf": {
- "version": "2.2.8",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
- "integrity": "sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg==",
- "license": "MIT",
- "bin": {
- "rimraf": "bin.js"
- }
- },
"node_modules/micromatch": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
@@ -12832,6 +13197,11 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"license": "MIT"
},
+ "node_modules/mute-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ=="
+ },
"node_modules/mv": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
@@ -12988,8 +13358,7 @@
"node_modules/neo-async": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "license": "MIT"
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
},
"node_modules/nested-error-stacks": {
"version": "2.0.1",
@@ -13006,7 +13375,6 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz",
"integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==",
- "license": "MIT",
"engines": {
"node": ">=12.0.0"
}
@@ -13045,7 +13413,6 @@
"version": "0.1.17",
"resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz",
"integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==",
- "license": "MIT",
"dependencies": {
"minimatch": "^3.0.2"
},
@@ -13189,7 +13556,6 @@
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz",
"integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==",
- "license": "MIT",
"engines": {
"node": ">=0.12.0"
},
@@ -15750,6 +16116,17 @@
"inBundle": true,
"license": "ISC"
},
+ "node_modules/npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "dependencies": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
"node_modules/nth-check": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
@@ -15767,6 +16144,14 @@
"integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==",
"license": "MIT"
},
+ "node_modules/number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/nwsapi": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz",
@@ -15785,8 +16170,7 @@
"node_modules/ob1": {
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz",
- "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==",
- "license": "MIT"
+ "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg=="
},
"node_modules/object-assign": {
"version": "4.1.1",
@@ -15965,7 +16349,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
"integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
- "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -15998,7 +16381,6 @@
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
"integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
- "license": "MIT",
"dependencies": {
"is-wsl": "^1.1.0"
},
@@ -16006,6 +16388,17 @@
"node": ">=8"
}
},
+ "node_modules/opn": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
+ "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==",
+ "dependencies": {
+ "is-wsl": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/optionator": {
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
@@ -16051,7 +16444,6 @@
"version": "5.4.1",
"resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
"integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
- "license": "MIT",
"dependencies": {
"bl": "^4.1.0",
"chalk": "^4.1.0",
@@ -16185,7 +16577,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
"integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
- "license": "MIT",
"dependencies": {
"error-ex": "^1.3.1",
"json-parse-better-errors": "^1.0.1"
@@ -16373,7 +16764,6 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
"integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -16601,10 +16991,9 @@
}
},
"node_modules/promise": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/promise/-/promise-8.2.0.tgz",
- "integrity": "sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==",
- "license": "MIT",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz",
+ "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==",
"dependencies": {
"asap": "~2.0.6"
}
@@ -16644,6 +17033,11 @@
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"license": "MIT"
},
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
"node_modules/psl": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
@@ -16727,6 +17121,16 @@
}
]
},
+ "node_modules/r2": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/r2/-/r2-2.0.1.tgz",
+ "integrity": "sha512-EEmxoxYCe3LHzAUhRIRxdCKERpeRNmlLj6KLUSORqnK6dWl/K5ShmDGZqM2lRZQeqJgF+wyqk0s1M7SWUveNOQ==",
+ "dependencies": {
+ "caseless": "^0.12.0",
+ "node-fetch": "^2.0.0-alpha.8",
+ "typedarray-to-buffer": "^3.1.2"
+ }
+ },
"node_modules/range-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
@@ -16869,15 +17273,14 @@
"license": "MIT"
},
"node_modules/react-native": {
- "version": "0.70.1",
- "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.70.1.tgz",
- "integrity": "sha512-AUh4NZLFdvyjSiYWCtTROCrC7loxeeZ/TzBnkZwp3kb9XmMu7/kzvWn2c5sEMnzW7X/0JSul8jXexGVdpnCoSA==",
- "license": "MIT",
+ "version": "0.70.6",
+ "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.70.6.tgz",
+ "integrity": "sha512-xtQdImPHnwgraEx3HIZFOF+D1hJ9bC5mfpIdUGoMHRws6OmvHAjmFpO6qfdnaQ29vwbmZRq7yf14sbury74R/w==",
"dependencies": {
"@jest/create-cache-key-function": "^27.0.1",
- "@react-native-community/cli": "^9.0.0",
- "@react-native-community/cli-platform-android": "^9.0.0",
- "@react-native-community/cli-platform-ios": "^9.0.0",
+ "@react-native-community/cli": "9.3.2",
+ "@react-native-community/cli-platform-android": "9.3.1",
+ "@react-native-community/cli-platform-ios": "9.3.0",
"@react-native/assets": "1.0.0",
"@react-native/normalize-color": "2.0.0",
"@react-native/polyfills": "2.0.0",
@@ -16888,15 +17291,15 @@
"invariant": "^2.2.4",
"jsc-android": "^250230.2.1",
"memoize-one": "^5.0.0",
- "metro-react-native-babel-transformer": "0.72.1",
- "metro-runtime": "0.72.1",
- "metro-source-map": "0.72.1",
+ "metro-react-native-babel-transformer": "0.72.3",
+ "metro-runtime": "0.72.3",
+ "metro-source-map": "0.72.3",
"mkdirp": "^0.5.1",
"nullthrows": "^1.1.1",
"pretty-format": "^26.5.2",
- "promise": "^8.0.3",
+ "promise": "^8.3.0",
"react-devtools-core": "4.24.0",
- "react-native-codegen": "^0.70.5",
+ "react-native-codegen": "^0.70.6",
"react-native-gradle-plugin": "^0.70.3",
"react-refresh": "^0.4.0",
"react-shallow-renderer": "^16.15.0",
@@ -16923,9 +17326,9 @@
"integrity": "sha512-/Lxo4o8MRvK0h9WNgsut0XBu7VTXlDHa737mrDuG+7bXJlNtvHKVuTxW580vN0GQNLM4orbiG6TSiOsvdY6MhQ=="
},
"node_modules/react-native-b-crypt-bridge": {
- "version": "2.0.0",
- "resolved": "file:react-native-b-crypt-bridge-2.0.0.tgz",
- "integrity": "sha512-nqjJtA0qUh6awVEmI41c3I3IxWHOm38UQGkXNg4iZmb4gg0MMFMBZFNAVHa5Xzl+YVDQ6rIfmrF0w/BnDaewsA==",
+ "version": "2.1.0",
+ "resolved": "file:react-native-b-crypt-bridge-2.1.0.tgz",
+ "integrity": "sha512-idJ3l2bqfqbZsgz7Rl43EBYpiy7zk1luBMxxV0MzVGRN4mAtwG/UrYPc5dYS7xsz0siGj5C/sQn8YpAauS7Buw==",
"license": "MIT",
"peerDependencies": {
"react": "*",
@@ -16946,10 +17349,9 @@
}
},
"node_modules/react-native-codegen": {
- "version": "0.70.5",
- "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.70.5.tgz",
- "integrity": "sha512-vXqgCWWIWlzsCtwD6hbmwmCleGNJYm+n4xO9VMfzzlF3xt9gjC7/USSMTf/YZlCK/hDwQU412QrNS6A9OH+mag==",
- "license": "MIT",
+ "version": "0.70.6",
+ "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.70.6.tgz",
+ "integrity": "sha512-kdwIhH2hi+cFnG5Nb8Ji2JwmcCxnaOOo9440ov7XDzSvGfmUStnCzl+MCW8jLjqHcE4icT7N9y+xx4f50vfBTw==",
"dependencies": {
"@babel/parser": "^7.14.0",
"flow-parser": "^0.121.0",
@@ -17148,67 +17550,6 @@
"node": ">=10"
}
},
- "node_modules/react-native/node_modules/metro-runtime": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.1.tgz",
- "integrity": "sha512-CO+fvJKYHKuR2vo7kjsegQ2oF3FMwa4YhnUInQ+xPVxWoy8DbOpmruKBoTsQVgHwyIziXzvJa+mze/6CFvT+3A==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.0.0",
- "react-refresh": "^0.4.0"
- }
- },
- "node_modules/react-native/node_modules/metro-source-map": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.1.tgz",
- "integrity": "sha512-77TZuf10Ru+USo97HwDT8UceSzOGBZB8EYTObOsR0n1sjQHjvKsMflLA9Pco13o9NsIYAG6c6P/0vIpiHKqaKA==",
- "license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.14.0",
- "@babel/types": "^7.0.0",
- "invariant": "^2.2.4",
- "metro-symbolicate": "0.72.1",
- "nullthrows": "^1.1.1",
- "ob1": "0.72.1",
- "source-map": "^0.5.6",
- "vlq": "^1.0.0"
- }
- },
- "node_modules/react-native/node_modules/metro-symbolicate": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.1.tgz",
- "integrity": "sha512-ScC3dVd2XrfZSd6kubOw7EJNp2oHdjrqOjGpFohtcXGjhqkzDosp7Fg84VgwQGN8g720xvUyEBfSMmUCXcicOQ==",
- "license": "MIT",
- "dependencies": {
- "invariant": "^2.2.4",
- "metro-source-map": "0.72.1",
- "nullthrows": "^1.1.1",
- "source-map": "^0.5.6",
- "through2": "^2.0.1",
- "vlq": "^1.0.0"
- },
- "bin": {
- "metro-symbolicate": "src/index.js"
- },
- "engines": {
- "node": ">=8.3"
- }
- },
- "node_modules/react-native/node_modules/ob1": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.1.tgz",
- "integrity": "sha512-TyQX2gO08klGTMuzD+xm3iVrzXiIygCB7t+NWeicOR05hkzgeWOiAZ8q40uMfIDRfEAc6hd66sJdIEhU/yUZZA==",
- "license": "MIT"
- },
- "node_modules/react-native/node_modules/source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/react-native/node_modules/ws": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
@@ -17293,6 +17634,22 @@
"react": "^18.1.0"
}
},
+ "node_modules/read-env": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/read-env/-/read-env-1.3.0.tgz",
+ "integrity": "sha512-DbCgZ8oHwZreK/E2E27RGk3EUPapMhYGSGIt02k9sX6R3tCFc4u4tkltKvkCvzEQ3SOLUaiYHAnGb+TdsnPp0A==",
+ "dependencies": {
+ "camelcase": "5.0.0"
+ }
+ },
+ "node_modules/read-env/node_modules/camelcase": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
+ "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/read-pkg": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
@@ -17384,8 +17741,7 @@
"node_modules/readline": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz",
- "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==",
- "license": "BSD"
+ "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg=="
},
"node_modules/realm": {
"version": "11.0.0-rc.2",
@@ -17474,7 +17830,6 @@
"version": "0.20.5",
"resolved": "https://registry.npmjs.org/recast/-/recast-0.20.5.tgz",
"integrity": "sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==",
- "license": "MIT",
"dependencies": {
"ast-types": "0.14.2",
"esprima": "~4.0.0",
@@ -17837,7 +18192,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
"integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
- "license": "MIT",
"dependencies": {
"onetime": "^5.1.0",
"signal-exit": "^3.0.2"
@@ -17886,6 +18240,14 @@
"node": "6.* || >= 7.*"
}
},
+ "node_modules/run-async": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
+ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
"node_modules/run-parallel": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -17908,6 +18270,22 @@
"queue-microtask": "^1.2.2"
}
},
+ "node_modules/rxjs": {
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+ "dependencies": {
+ "tslib": "^1.9.0"
+ },
+ "engines": {
+ "npm": ">=2.0.0"
+ }
+ },
+ "node_modules/rxjs/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
"node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -18259,7 +18637,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz",
"integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==",
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -18268,7 +18645,6 @@
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
"integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
- "license": "MIT",
"dependencies": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
@@ -18315,7 +18691,6 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
"integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
- "license": "MIT",
"dependencies": {
"kind-of": "^6.0.2"
},
@@ -18789,8 +19164,7 @@
"node_modules/stackframe": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
- "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==",
- "license": "MIT"
+ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="
},
"node_modules/stacktrace-parser": {
"version": "0.1.10",
@@ -19055,8 +19429,7 @@
"node_modules/sudo-prompt": {
"version": "9.2.1",
"resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz",
- "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==",
- "license": "MIT"
+ "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw=="
},
"node_modules/supports-color": {
"version": "7.2.0",
@@ -19225,15 +19598,15 @@
}
},
"node_modules/temp": {
- "version": "0.8.4",
- "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz",
- "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==",
- "license": "MIT",
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz",
+ "integrity": "sha512-jtnWJs6B1cZlHs9wPG7BrowKxZw/rf6+UpGAkr8AaYmiTyTO7zQlLoST8zx/8TcUPnZmeBoB+H8ARuHZaSijVw==",
+ "engines": [
+ "node >=0.8.0"
+ ],
"dependencies": {
- "rimraf": "~2.6.2"
- },
- "engines": {
- "node": ">=6.0.0"
+ "os-tmpdir": "^1.0.0",
+ "rimraf": "~2.2.6"
}
},
"node_modules/temp-dir": {
@@ -19245,13 +19618,9 @@
}
},
"node_modules/temp/node_modules/rimraf": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
- "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
- "license": "ISC",
- "dependencies": {
- "glob": "^7.1.3"
- },
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+ "integrity": "sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg==",
"bin": {
"rimraf": "bin.js"
}
@@ -19393,7 +19762,6 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
"integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
- "license": "MIT",
"dependencies": {
"readable-stream": "~2.3.6",
"xtend": "~4.0.1"
@@ -19572,9 +19940,12 @@
}
},
"node_modules/traverse": {
- "version": "0.6.6",
- "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz",
- "integrity": "sha512-kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw=="
+ "version": "0.6.7",
+ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz",
+ "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/ts-interface-checker": {
"version": "0.1.13",
@@ -19683,7 +20054,6 @@
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
"integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
- "dev": true,
"license": "MIT",
"dependencies": {
"is-typedarray": "^1.0.0"
@@ -19733,7 +20103,7 @@
"version": "3.3.9",
"resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz",
"integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==",
- "license": "BSD-2-Clause",
+ "deprecated": "support for ECMAScript is superseded by `uglify-js` as of v3.13.0",
"dependencies": {
"commander": "~2.13.0",
"source-map": "~0.6.1"
@@ -19748,8 +20118,7 @@
"node_modules/uglify-es/node_modules/commander": {
"version": "2.13.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
- "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==",
- "license": "MIT"
+ "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA=="
},
"node_modules/unbox-primitive": {
"version": "1.0.2",
@@ -20078,7 +20447,6 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -20109,8 +20477,7 @@
"node_modules/vlq": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz",
- "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==",
- "license": "MIT"
+ "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w=="
},
"node_modules/w3c-hr-time": {
"version": "1.0.2",
@@ -20218,7 +20585,6 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
"license": "ISC",
"dependencies": {
"isexe": "^2.0.0"
@@ -20253,6 +20619,14 @@
"integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==",
"license": "ISC"
},
+ "node_modules/wide-align": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
+ "dependencies": {
+ "string-width": "^1.0.2 || 2 || 3 || 4"
+ }
+ },
"node_modules/wonka": {
"version": "4.0.15",
"resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz",
@@ -20399,7 +20773,6 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "license": "MIT",
"engines": {
"node": ">=0.4"
}
@@ -21761,22 +22134,22 @@
}
},
"@expo/cli": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.3.1.tgz",
- "integrity": "sha512-amdsNf5quVs9ZbO+q35sdtpWJvvQz5pqtl8ZOv5jqRriIp1G9zcOFTDG0TnGxANQ0F2b5GcU4fn7pxAzRLDHmQ==",
+ "version": "0.4.10",
+ "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.4.10.tgz",
+ "integrity": "sha512-c8NJOVa5b8g9CYj8ahdaN21cVE2wPwUaFrtTE0kLeRR5ASy8reWLFEOcstEtt6eufdcN/uGgBWQ0FLovgLZuzw==",
"requires": {
"@babel/runtime": "^7.14.0",
- "@expo/code-signing-certificates": "^0.0.2",
- "@expo/config": "~7.0.1",
- "@expo/config-plugins": "~5.0.1",
- "@expo/dev-server": "~0.1.120",
+ "@expo/code-signing-certificates": "0.0.5",
+ "@expo/config": "~7.0.2",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/dev-server": "0.1.123",
"@expo/devcert": "^1.0.0",
"@expo/json-file": "^8.2.35",
- "@expo/metro-config": "~0.4.0",
+ "@expo/metro-config": "~0.5.0",
"@expo/osascript": "^2.0.31",
"@expo/package-manager": "~0.0.53",
"@expo/plist": "^0.0.18",
- "@expo/prebuild-config": "~5.0.3",
+ "@expo/prebuild-config": "5.0.7",
"@expo/rudder-sdk-node": "1.1.1",
"@expo/spawn-async": "1.5.0",
"@expo/xcpretty": "^4.2.1",
@@ -21797,6 +22170,7 @@
"getenv": "^1.0.0",
"graphql": "15.8.0",
"graphql-tag": "^2.10.1",
+ "https-proxy-agent": "^5.0.1",
"internal-ip": "4.3.0",
"is-root": "^2.1.0",
"js-yaml": "^3.13.1",
@@ -21833,9 +22207,9 @@
"integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="
},
"ci-info": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.4.0.tgz",
- "integrity": "sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug=="
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w=="
},
"cli-cursor": {
"version": "2.1.0",
@@ -21988,22 +22362,22 @@
}
},
"@expo/code-signing-certificates": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.2.tgz",
- "integrity": "sha512-vnPHFjwOqxQ1VLztktY+fYCfwvLzjqpzKn09rchcQE7Sdf0wtW5fFtIZBEFOOY5wasp8tXSnp627zrAwazPHzg==",
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz",
+ "integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==",
"requires": {
"node-forge": "^1.2.1",
"nullthrows": "^1.1.1"
}
},
"@expo/config": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/@expo/config/-/config-7.0.1.tgz",
- "integrity": "sha512-4lu0wr45XXJ2MXiLAm2+fmOyy/jjqF3NuDm92fO6nuulRzEEvTP4w3vsibJ690rT81ohtvhpruKhkRs0wSjKWA==",
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-7.0.3.tgz",
+ "integrity": "sha512-joVtB5o+NF40Tmsdp65UzryRtbnCuMbXkVO4wJnNJO4aaK0EYLdHCYSewORVqNcDfGN0LphQr8VTG2npbd9CJA==",
"requires": {
"@babel/code-frame": "~7.10.4",
- "@expo/config-plugins": "~5.0.1",
- "@expo/config-types": "^46.0.1",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/config-types": "^47.0.0",
"@expo/json-file": "8.2.36",
"getenv": "^1.0.0",
"glob": "7.1.6",
@@ -22043,11 +22417,11 @@
}
},
"@expo/config-plugins": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.1.tgz",
- "integrity": "sha512-1OfnsOrfeSkB0VZfT01UjQ5Uq6p+yYbq8yNkj0e99K/6NLHpyvIxj+5tZIV0nQXgkOcqBIABL2uA7lwB8CkaBQ==",
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.4.tgz",
+ "integrity": "sha512-vzUcVpqOMs3h+hyRdhGwk+eGIOhXa5xYdd92yO17RMNHav3v/+ekMbs7XA2c3lepMO8Yd4/5hqmRw9ZTL6jGzg==",
"requires": {
- "@expo/config-types": "^46.0.0",
+ "@expo/config-types": "^47.0.0",
"@expo/json-file": "8.2.36",
"@expo/plist": "0.0.18",
"@expo/sdk-runtime-versions": "^1.0.0",
@@ -22121,9 +22495,9 @@
}
},
"@expo/config-types": {
- "version": "46.0.2",
- "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-46.0.2.tgz",
- "integrity": "sha512-PXkmOgNwRyBfgVT1HmFZhfh3Qm7WKKyV6mk3/5HJ/LzPh1t+Zs2JrWX8U2YncTLV1QzV7nV8tnkyvszzqnZEzQ=="
+ "version": "47.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-47.0.0.tgz",
+ "integrity": "sha512-r0pWfuhkv7KIcXMUiNACJmJKKwlTBGMw9VZHNdppS8/0Nve8HZMTkNRFQzTHW1uH3pBj8jEXpyw/2vSWDHex9g=="
},
"@expo/configure-splash-screen": {
"version": "0.6.0",
@@ -22178,17 +22552,20 @@
}
},
"@expo/dev-server": {
- "version": "0.1.120",
- "resolved": "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.120.tgz",
- "integrity": "sha512-x5/jCv0EOpz6FyehXpI5bgDQTVsGZYvgISkAw7n60RhtG+aid6N2CCR9SDMCH70XaUpFnfTW9qvderpCEj7Puw==",
+ "version": "0.1.123",
+ "resolved": "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.123.tgz",
+ "integrity": "sha512-N6UVzzeemfX0AONUSWInvkAAbqon8hRXpyYE/nMPaC6TvAmgGY5ILZAGoXwlpxwY2VKNT0Lx4s/UJ53ytIaHbA==",
"requires": {
"@expo/bunyan": "4.0.0",
- "@expo/metro-config": "~0.4.0",
+ "@expo/metro-config": "~0.5.1",
"@expo/osascript": "2.0.33",
+ "@expo/spawn-async": "^1.5.0",
"body-parser": "1.19.0",
"chalk": "^4.0.0",
"connect": "^3.7.0",
"fs-extra": "9.0.0",
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1",
"node-fetch": "^2.6.0",
"open": "^8.3.0",
"resolve-from": "^5.0.0",
@@ -22268,9 +22645,9 @@
}
},
"@expo/devcert": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.0.0.tgz",
- "integrity": "sha512-cahGyQCmpZmHpn2U04NR9KwsOIZy7Rhsw8Fg4q+A6563lIJxbkrgPnxq/O3NQAh3ohEvOXOOnoFx0b4yycCkpQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.0.tgz",
+ "integrity": "sha512-ghUVhNJQOCTdQckSGTHctNp/0jzvVoMMkVh+6SHn+TZj8sU15U/npXIDt8NtQp0HedlPaCgkVdMu8Sacne0aEA==",
"requires": {
"application-config-path": "^0.1.0",
"command-exists": "^1.2.4",
@@ -22284,7 +22661,7 @@
"rimraf": "^2.6.2",
"sudo-prompt": "^8.2.0",
"tmp": "^0.0.33",
- "tslib": "^1.10.0"
+ "tslib": "^2.4.0"
},
"dependencies": {
"debug": {
@@ -22299,18 +22676,13 @@
"version": "8.2.5",
"resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz",
"integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw=="
- },
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
}
}
},
"@expo/image-utils": {
- "version": "0.3.20",
- "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.20.tgz",
- "integrity": "sha512-NgF/80XENyCS+amwC0P6uk1fauEtUq7gijD19jvl2xknJaADq8M2dMCRHwWMVOXosr2v46f3Z++G/NjmyOVS7A==",
+ "version": "0.3.22",
+ "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.22.tgz",
+ "integrity": "sha512-uzq+RERAtkWypOFOLssFnXXqEqKjNj9eXN7e97d/EXUAojNcLDoXc0sL+F5B1I4qtlsnhX01kcpoIBBZD8wZNQ==",
"requires": {
"@expo/spawn-async": "1.5.0",
"chalk": "^4.0.0",
@@ -22416,9 +22788,9 @@
}
},
"json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"requires": {
"minimist": "^1.2.0"
}
@@ -22436,11 +22808,11 @@
}
},
"@expo/metro-config": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.4.0.tgz",
- "integrity": "sha512-QhOiotuzklalLbbsTMXJ5v4q4jffQ5xXhy1zsosgc2DL/ZzUr/Yhm3xUcOGnPQ2x7UyeY9Tl3njPHBOJJe7CSA==",
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.5.2.tgz",
+ "integrity": "sha512-W1qsZPA5BXuRBkNLydKBYQ1+ubObhOK0gk2Fpc+XnhW+UUIHC9sDR5pZRYGNSnDDc3rG8y7c32UzSW9nlK+mog==",
"requires": {
- "@expo/config": "7.0.1",
+ "@expo/config": "~7.0.2",
"@expo/json-file": "8.2.36",
"chalk": "^4.1.0",
"debug": "^4.3.2",
@@ -22460,9 +22832,9 @@
}
},
"@expo/package-manager": {
- "version": "0.0.56",
- "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.56.tgz",
- "integrity": "sha512-PGk34uz4XDyhoNIlPh2D+BDsiXYuW2jXavTiax8d32uvHlRO6FN0cAsqlWD6fx3H2hRn8cU/leTuc4M7pYovCQ==",
+ "version": "0.0.57",
+ "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.57.tgz",
+ "integrity": "sha512-Y4RpSL9EqaPF+Vd2GrK6r7Xx7Dv0Xdq3AGAD9C0KwV21WqP/scj/dpjxFY+ABwmdhNsFzYXb8fmDyh4tiKenPQ==",
"requires": {
"@expo/json-file": "8.2.36",
"@expo/spawn-async": "^1.5.0",
@@ -22535,14 +22907,14 @@
}
},
"@expo/prebuild-config": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-5.0.3.tgz",
- "integrity": "sha512-G4j1H3WFjRaiQ+FgFNULrnIm7RsQyjc4xp6lLTP2ydBv79wO3x8wAdeZvaZh7eOkfu9BESpQzACT1uuJTag5jg==",
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-5.0.7.tgz",
+ "integrity": "sha512-D+TBpJUHe4+oTGFPb4o0rrw/h1xxc6wF+abJnbDHUkhnaeiHkE2O3ByS7FdiZ2FT36t0OKqeSKG/xFwWT3m1Ew==",
"requires": {
- "@expo/config": "7.0.1",
- "@expo/config-plugins": "~5.0.1",
- "@expo/config-types": "^46.0.0",
- "@expo/image-utils": "0.3.20",
+ "@expo/config": "~7.0.2",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/config-types": "^47.0.0",
+ "@expo/image-utils": "0.3.22",
"@expo/json-file": "8.2.36",
"debug": "^4.3.1",
"fs-extra": "^9.0.0",
@@ -23094,9 +23466,9 @@
},
"dependencies": {
"semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"requires": {
"lru-cache": "^6.0.0"
}
@@ -23128,18 +23500,18 @@
}
},
"@react-native-community/cli": {
- "version": "9.1.2",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-9.1.2.tgz",
- "integrity": "sha512-s5OY8M9SD2b5b8ywXztzqA04Mud1Ohdv2bH1YoDVQ/L7XNhDJ2TABPZ92Qor09xhUnsz2DivJaR5vv8fMIbH7Q==",
+ "version": "9.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-9.3.2.tgz",
+ "integrity": "sha512-IAW4X0vmX/xozNpp/JVZaX7MrC85KV0OP2DF4o7lNGOfpUhzJAEWqTfkxFYS+VsRjZHDve4wSTiGIuXwE7FG1w==",
"requires": {
- "@react-native-community/cli-clean": "^9.1.0",
- "@react-native-community/cli-config": "^9.1.0",
+ "@react-native-community/cli-clean": "^9.2.1",
+ "@react-native-community/cli-config": "^9.2.1",
"@react-native-community/cli-debugger-ui": "^9.0.0",
- "@react-native-community/cli-doctor": "^9.1.2",
- "@react-native-community/cli-hermes": "^9.1.0",
- "@react-native-community/cli-plugin-metro": "^9.1.1",
- "@react-native-community/cli-server-api": "^9.1.0",
- "@react-native-community/cli-tools": "^9.1.0",
+ "@react-native-community/cli-doctor": "^9.3.0",
+ "@react-native-community/cli-hermes": "^9.3.1",
+ "@react-native-community/cli-plugin-metro": "^9.2.1",
+ "@react-native-community/cli-server-api": "^9.2.1",
+ "@react-native-community/cli-tools": "^9.2.1",
"@react-native-community/cli-types": "^9.1.0",
"chalk": "^4.1.2",
"commander": "^9.4.0",
@@ -23152,22 +23524,22 @@
}
},
"@react-native-community/cli-clean": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-9.1.0.tgz",
- "integrity": "sha512-3HznNw8EBQtLsVyV8b8+h76M9EeJcJgYn5wZVGQ5mghAOhqnSWVbwRvpDdb8ITXaiTIXFGNOxXnGKMXsu0CYTw==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-9.2.1.tgz",
+ "integrity": "sha512-dyNWFrqRe31UEvNO+OFWmQ4hmqA07bR9Ief/6NnGwx67IO9q83D5PEAf/o96ML6jhSbDwCmpPKhPwwBbsyM3mQ==",
"requires": {
- "@react-native-community/cli-tools": "^9.1.0",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"execa": "^1.0.0",
"prompts": "^2.4.0"
}
},
"@react-native-community/cli-config": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-9.1.0.tgz",
- "integrity": "sha512-6G9d5weedQ6EMz37ZYXrFHCU2DG3yqvdLs4Jo2383cSxal+oO+kggaTgqLBKoMETz/S80KsMeC/l+MoRjc1pzw==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-9.2.1.tgz",
+ "integrity": "sha512-gHJlBBXUgDN9vrr3aWkRqnYrPXZLztBDQoY97Mm5Yo6MidsEpYo2JIP6FH4N/N2p1TdjxJL4EFtdd/mBpiR2MQ==",
"requires": {
- "@react-native-community/cli-tools": "^9.1.0",
+ "@react-native-community/cli-tools": "^9.2.1",
"cosmiconfig": "^5.1.0",
"deepmerge": "^3.2.0",
"glob": "^7.1.3",
@@ -23183,13 +23555,13 @@
}
},
"@react-native-community/cli-doctor": {
- "version": "9.1.2",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-9.1.2.tgz",
- "integrity": "sha512-BmacbikyaxR4s54kq17LE0bBK7g8bcjc679ee36DqkX+Xij2VHHynLzTpuDJ8y6iHI2v13vauEMjnh4j612u5w==",
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-9.3.0.tgz",
+ "integrity": "sha512-/fiuG2eDGC2/OrXMOWI5ifq4X1gdYTQhvW2m0TT5Lk1LuFiZsbTCp1lR+XILKekuTvmYNjEGdVpeDpdIWlXdEA==",
"requires": {
- "@react-native-community/cli-config": "^9.1.0",
- "@react-native-community/cli-platform-ios": "^9.1.2",
- "@react-native-community/cli-tools": "^9.1.0",
+ "@react-native-community/cli-config": "^9.2.1",
+ "@react-native-community/cli-platform-ios": "^9.3.0",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"command-exists": "^1.2.8",
"envinfo": "^7.7.2",
@@ -23221,23 +23593,23 @@
}
},
"@react-native-community/cli-hermes": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-9.1.0.tgz",
- "integrity": "sha512-Ly4dnlRZZ7FckFfSWnaD5BxszuEe9/WcJ6A7srW5UobqnnmEznDv1IY0oBTq1ggnmzIquM9dJQZ0UbcZeQjkoA==",
+ "version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-9.3.1.tgz",
+ "integrity": "sha512-Mq4PK8m5YqIdaVq5IdRfp4qK09aVO+aiCtd6vjzjNUgk1+1X5cgUqV6L65h4N+TFJYJHcp2AnB+ik1FAYXvYPQ==",
"requires": {
- "@react-native-community/cli-platform-android": "^9.1.0",
- "@react-native-community/cli-tools": "^9.1.0",
+ "@react-native-community/cli-platform-android": "^9.3.1",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"hermes-profile-transformer": "^0.0.6",
"ip": "^1.1.5"
}
},
"@react-native-community/cli-platform-android": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.1.0.tgz",
- "integrity": "sha512-OZ/Krq0wH6T7LuAvwFdJYe47RrHG8IOcoab47H4QQdYGTmJgTS3SlVkr6gn79pZyBGyp7xVizD30QJrIIyDjnw==",
+ "version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.3.1.tgz",
+ "integrity": "sha512-m0bQ6Twewl7OEZoVf79I2GZmsDqh+Gh0bxfxWgwxobsKDxLx8/RNItAo1lVtTCgzuCR75cX4EEO8idIF9jYhew==",
"requires": {
- "@react-native-community/cli-tools": "^9.1.0",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"execa": "^1.0.0",
"fs-extra": "^8.1.0",
@@ -23247,11 +23619,11 @@
}
},
"@react-native-community/cli-platform-ios": {
- "version": "9.1.2",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.1.2.tgz",
- "integrity": "sha512-XpgA9ymm76yjvtYPByqFF1LP7eM/lH5K3zpkZkV9MJLStOIo3mrzN2ywRDZ/xVOheh5LafS4YMmrjIajf11oIQ==",
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.3.0.tgz",
+ "integrity": "sha512-nihTX53BhF2Q8p4B67oG3RGe1XwggoGBrMb6vXdcu2aN0WeXJOXdBLgR900DAA1O8g7oy1Sudu6we+JsVTKnjw==",
"requires": {
- "@react-native-community/cli-tools": "^9.1.0",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"execa": "^1.0.0",
"glob": "^7.1.3",
@@ -23259,45 +23631,29 @@
}
},
"@react-native-community/cli-plugin-metro": {
- "version": "9.1.1",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.1.1.tgz",
- "integrity": "sha512-8CBwEZrbYIeQw69Exg/oW20pV9C6mbYlDz0pxZJ0AYmC20Q+wFFs6sUh5zm28ZUh1L0LxNGmhle/YvMPqA+fMQ==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.2.1.tgz",
+ "integrity": "sha512-byBGBH6jDfUvcHGFA45W/sDwMlliv7flJ8Ns9foCh3VsIeYYPoDjjK7SawE9cPqRdMAD4SY7EVwqJnOtRbwLiQ==",
"requires": {
- "@react-native-community/cli-server-api": "^9.1.0",
- "@react-native-community/cli-tools": "^9.1.0",
+ "@react-native-community/cli-server-api": "^9.2.1",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
- "metro": "^0.72.1",
- "metro-config": "^0.72.1",
- "metro-core": "^0.72.1",
- "metro-react-native-babel-transformer": "^0.72.1",
- "metro-resolver": "^0.72.1",
- "metro-runtime": "^0.72.1",
+ "metro": "0.72.3",
+ "metro-config": "0.72.3",
+ "metro-core": "0.72.3",
+ "metro-react-native-babel-transformer": "0.72.3",
+ "metro-resolver": "0.72.3",
+ "metro-runtime": "0.72.3",
"readline": "^1.3.0"
- },
- "dependencies": {
- "metro-react-native-babel-transformer": {
- "version": "0.72.3",
- "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.72.3.tgz",
- "integrity": "sha512-Ogst/M6ujYrl/+9mpEWqE3zF7l2mTuftDTy3L8wZYwX1pWUQWQpfU1aJBeWiLxt1XlIq+uriRjKzKoRoIK57EA==",
- "requires": {
- "@babel/core": "^7.14.0",
- "babel-preset-fbjs": "^3.4.0",
- "hermes-parser": "0.8.0",
- "metro-babel-transformer": "0.72.3",
- "metro-react-native-babel-preset": "0.72.3",
- "metro-source-map": "0.72.3",
- "nullthrows": "^1.1.1"
- }
- }
}
},
"@react-native-community/cli-server-api": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-9.1.0.tgz",
- "integrity": "sha512-Xf3hUqUc99hVmWOsmfNqUQ+sxhut9MIHlINzlo7Azxlmg9v9U/vtwJVJSIPD6iwPzvaPH1qeshzwy/r0GUR7fg==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-9.2.1.tgz",
+ "integrity": "sha512-EI+9MUxEbWBQhWw2PkhejXfkcRqPl+58+whlXJvKHiiUd7oVbewFs0uLW0yZffUutt4FGx6Uh88JWEgwOzAdkw==",
"requires": {
"@react-native-community/cli-debugger-ui": "^9.0.0",
- "@react-native-community/cli-tools": "^9.1.0",
+ "@react-native-community/cli-tools": "^9.2.1",
"compression": "^1.7.1",
"connect": "^3.6.5",
"errorhandler": "^1.5.0",
@@ -23308,9 +23664,9 @@
}
},
"@react-native-community/cli-tools": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-9.1.0.tgz",
- "integrity": "sha512-07Z1hyy4cYty84P9cGq+Xf8Vb0S/0ffxLVdVQEMmLjU71sC9YTUv1anJdZyt6f9uUPvA9+e/YIXw5Bu0rvuXIw==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-9.2.1.tgz",
+ "integrity": "sha512-bHmL/wrKmBphz25eMtoJQgwwmeCylbPxqFJnFSbkqJPXQz3ManQ6q/gVVMqFyz7D3v+riaus/VXz3sEDa97uiQ==",
"requires": {
"appdirsjs": "^1.2.4",
"chalk": "^4.1.2",
@@ -23394,9 +23750,9 @@
"dev": true
},
"@react-native-community/netinfo": {
- "version": "9.3.2",
- "resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-9.3.2.tgz",
- "integrity": "sha512-fR7wSIhmIUX+Skzgkr2vj5xopWa0lvvEWoXP1m7//jZjEgOZnu9DgdUimLHDrMo6AtZyUNrJscsFEepihTLlPQ==",
+ "version": "9.3.7",
+ "resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-9.3.7.tgz",
+ "integrity": "sha512-+taWmE5WpBp0uS6kf+bouCx/sn89G9EpR4s2M/ReLvctVIFL2Qh8WnWfBxqK9qwgmFha/uqjSr2Gq03OOtiDcw==",
"requires": {}
},
"@react-native-community/slider": {
@@ -23547,6 +23903,305 @@
"join-component": "^1.1.0"
}
},
+ "@sentry/browser": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.26.0.tgz",
+ "integrity": "sha512-S6uW+Ni2VLGHUV9eAUtTy5QEvqKeOhcnWnv+2yTGDtQCJ0SuHfXRCM7ASAQYBiKffZqIFc9Z2XNU/2cuWcXJmw==",
+ "requires": {
+ "@sentry/core": "7.26.0",
+ "@sentry/types": "7.26.0",
+ "@sentry/utils": "7.26.0",
+ "tslib": "^1.9.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ }
+ }
+ },
+ "@sentry/cli": {
+ "version": "1.74.4",
+ "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-1.74.4.tgz",
+ "integrity": "sha512-BMfzYiedbModsNBJlKeBOLVYUtwSi99LJ8gxxE4Bp5N8hyjNIN0WVrozAVZ27mqzAuy6151Za3dpmOLO86YlGw==",
+ "requires": {
+ "https-proxy-agent": "^5.0.0",
+ "mkdirp": "^0.5.5",
+ "node-fetch": "^2.6.7",
+ "npmlog": "^4.1.2",
+ "progress": "^2.0.3",
+ "proxy-from-env": "^1.1.0",
+ "which": "^2.0.2"
+ }
+ },
+ "@sentry/core": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.26.0.tgz",
+ "integrity": "sha512-ydi236ZoP/xpvLdf7B8seKjCcGc5Z+q9c14tHCFusplPZgLSXcYpiiLIDWmF7OAXO89sSbb1NaFt9YB0LkYdLQ==",
+ "requires": {
+ "@sentry/types": "7.26.0",
+ "@sentry/utils": "7.26.0",
+ "tslib": "^1.9.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ }
+ }
+ },
+ "@sentry/hub": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-7.26.0.tgz",
+ "integrity": "sha512-djAMuA4/Jy28dOSy9z5ccXBDyYk1N9m0ljle+dKqjfJwv440tCGyoxm2arqJFHbXvqwJTt2Giv8ASR4uGD1UNg==",
+ "requires": {
+ "@sentry/core": "7.26.0",
+ "@sentry/types": "7.26.0",
+ "@sentry/utils": "7.26.0",
+ "tslib": "^1.9.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ }
+ }
+ },
+ "@sentry/integrations": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.26.0.tgz",
+ "integrity": "sha512-5tyBA5BnZEuosSIvBP7mJz66xJaZTb/k1EzHEc0hR2Mw8QpLgMneDZBfi4vdbhxtGpJKC/gURoUGZf9hpwW+DA==",
+ "requires": {
+ "@sentry/types": "7.26.0",
+ "@sentry/utils": "7.26.0",
+ "localforage": "^1.8.1",
+ "tslib": "^1.9.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ }
+ }
+ },
+ "@sentry/react": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.26.0.tgz",
+ "integrity": "sha512-v5XKpG1PF4qnWvG8E0N1kcUk74lTp+TDfKx5x996NIja2oOTp/JL9V0Q+lAMlB1EKgJuxLe92IeqD5/DTtzE7A==",
+ "requires": {
+ "@sentry/browser": "7.26.0",
+ "@sentry/types": "7.26.0",
+ "@sentry/utils": "7.26.0",
+ "hoist-non-react-statics": "^3.3.2",
+ "tslib": "^1.9.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ }
+ }
+ },
+ "@sentry/react-native": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@sentry/react-native/-/react-native-4.12.0.tgz",
+ "integrity": "sha512-KBRXXqqGg67oqhtGzZQ8Ls4rxxUozDyL8tMLmRLk//bkSWBC6XslyjkZkQrB1VZsv2ikEYCUgyAP7fzcj6Bbig==",
+ "requires": {
+ "@sentry/browser": "7.26.0",
+ "@sentry/cli": "1.74.4",
+ "@sentry/core": "7.26.0",
+ "@sentry/hub": "7.26.0",
+ "@sentry/integrations": "7.26.0",
+ "@sentry/react": "7.26.0",
+ "@sentry/tracing": "7.26.0",
+ "@sentry/types": "7.26.0",
+ "@sentry/utils": "7.26.0",
+ "@sentry/wizard": "1.4.0"
+ }
+ },
+ "@sentry/tracing": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.26.0.tgz",
+ "integrity": "sha512-UK8EiXxJrDTWD82Oasj2WP/QuQ+wzPlg74vYmxl1ie/LRs6C6wHkilBZwDV9HnDdqAqSjl0al8oBa075lK+U3Q==",
+ "requires": {
+ "@sentry/core": "7.26.0",
+ "@sentry/types": "7.26.0",
+ "@sentry/utils": "7.26.0",
+ "tslib": "^1.9.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ }
+ }
+ },
+ "@sentry/types": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.26.0.tgz",
+ "integrity": "sha512-U2s0q3ALwWFdHJBgn8nrG9bCTJZ3hAqL/I2Si4Mf0ZWnJ/KTJKbtyrputHr8wMbHvX0NZTJGTxFVUO46J+GBRA=="
+ },
+ "@sentry/utils": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.26.0.tgz",
+ "integrity": "sha512-nIC1PRyoMBi4QB7XNCWaPDqaQbPayMwAvUm6W3MC5bHPfVZmmFt+3sLZQKUD/E0NeQnJ3vTyPewPF/LfxLOE5A==",
+ "requires": {
+ "@sentry/types": "7.26.0",
+ "tslib": "^1.9.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ }
+ }
+ },
+ "@sentry/wizard": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@sentry/wizard/-/wizard-1.4.0.tgz",
+ "integrity": "sha512-Q/f9wJAAAr/YB6oWUzMQP/y5LIgx9la1SanMHNr3hMtVPKkMhvIZO5UWVn2G763yi85zARqSCLDx31/tZd4new==",
+ "requires": {
+ "@sentry/cli": "^1.72.0",
+ "chalk": "^2.4.1",
+ "glob": "^7.1.3",
+ "inquirer": "^6.2.0",
+ "lodash": "^4.17.15",
+ "opn": "^5.4.0",
+ "r2": "^2.0.1",
+ "read-env": "^1.3.0",
+ "semver": "^7.3.5",
+ "xcode": "3.0.1",
+ "yargs": "^16.2.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
+ },
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ }
+ }
+ },
+ "y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
+ },
+ "yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "requires": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
+ }
+ }
+ },
"@sideway/address": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
@@ -23556,9 +24211,9 @@
}
},
"@sideway/formula": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz",
- "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg=="
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
+ "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg=="
},
"@sideway/pinpoint": {
"version": "2.0.0",
@@ -23884,9 +24539,9 @@
}
},
"@xmldom/xmldom": {
- "version": "0.7.5",
- "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz",
- "integrity": "sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A=="
+ "version": "0.7.9",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.9.tgz",
+ "integrity": "sha512-yceMpm/xd4W2a85iqZyO09gTnHvXF6pyiWjD2jcOJs7hRoZtNNOO1eJlhHj1ixA+xip2hOyGn+LgcvLCMo5zXA=="
},
"abab": {
"version": "2.0.6",
@@ -23949,7 +24604,6 @@
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "dev": true,
"requires": {
"debug": "4"
}
@@ -24099,9 +24753,23 @@
"integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw=="
},
"application-config-path": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.0.tgz",
- "integrity": "sha512-lljTpVvFteShrHuKRvweZfa9o/Nc34Y8r5/1Lqh/yyKaspRT2J3fkEiSSk1YLG8ZSVyU7yHysRy9zcDDS2aH1Q=="
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz",
+ "integrity": "sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw=="
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+ },
+ "are-we-there-yet": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
+ "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
},
"arg": {
"version": "4.1.0",
@@ -24403,64 +25071,17 @@
}
},
"babel-preset-expo": {
- "version": "9.2.0",
- "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-9.2.0.tgz",
- "integrity": "sha512-aM2htiNx0H49H+MWCp9+cKVSdcdNSn0tbE5Dln/GO1xna4ZlnA30clbfClcYJFUcZtW90IsYeZwQ/hj8zyWhNA==",
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-9.2.2.tgz",
+ "integrity": "sha512-69cSPObZWFz0AaUT6IhCu2VzPVTICUtXzhX5ecoDttFe+9wb9yMV8m7rBNZptJQ3wtiKB5iEL7/wvtKygPz/mQ==",
"requires": {
"@babel/plugin-proposal-decorators": "^7.12.9",
+ "@babel/plugin-proposal-object-rest-spread": "^7.12.13",
"@babel/plugin-transform-react-jsx": "^7.12.17",
"@babel/preset-env": "^7.12.9",
"babel-plugin-module-resolver": "^4.1.0",
"babel-plugin-react-native-web": "~0.18.2",
- "metro-react-native-babel-preset": "~0.70.3"
- },
- "dependencies": {
- "metro-react-native-babel-preset": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.70.3.tgz",
- "integrity": "sha512-4Nxc1zEiHEu+GTdEMEsHnRgfaBkg8f/Td3+FcQ8NTSvs+xL3LBrQy6N07idWSQZHIdGFf+tTHvRfSIWLD8u8Tg==",
- "requires": {
- "@babel/core": "^7.14.0",
- "@babel/plugin-proposal-async-generator-functions": "^7.0.0",
- "@babel/plugin-proposal-class-properties": "^7.0.0",
- "@babel/plugin-proposal-export-default-from": "^7.0.0",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0",
- "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
- "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
- "@babel/plugin-proposal-optional-chaining": "^7.0.0",
- "@babel/plugin-syntax-dynamic-import": "^7.0.0",
- "@babel/plugin-syntax-export-default-from": "^7.0.0",
- "@babel/plugin-syntax-flow": "^7.2.0",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0",
- "@babel/plugin-syntax-optional-chaining": "^7.0.0",
- "@babel/plugin-transform-arrow-functions": "^7.0.0",
- "@babel/plugin-transform-async-to-generator": "^7.0.0",
- "@babel/plugin-transform-block-scoping": "^7.0.0",
- "@babel/plugin-transform-classes": "^7.0.0",
- "@babel/plugin-transform-computed-properties": "^7.0.0",
- "@babel/plugin-transform-destructuring": "^7.0.0",
- "@babel/plugin-transform-exponentiation-operator": "^7.0.0",
- "@babel/plugin-transform-flow-strip-types": "^7.0.0",
- "@babel/plugin-transform-function-name": "^7.0.0",
- "@babel/plugin-transform-literals": "^7.0.0",
- "@babel/plugin-transform-modules-commonjs": "^7.0.0",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0",
- "@babel/plugin-transform-parameters": "^7.0.0",
- "@babel/plugin-transform-react-display-name": "^7.0.0",
- "@babel/plugin-transform-react-jsx": "^7.0.0",
- "@babel/plugin-transform-react-jsx-self": "^7.0.0",
- "@babel/plugin-transform-react-jsx-source": "^7.0.0",
- "@babel/plugin-transform-runtime": "^7.0.0",
- "@babel/plugin-transform-shorthand-properties": "^7.0.0",
- "@babel/plugin-transform-spread": "^7.0.0",
- "@babel/plugin-transform-sticky-regex": "^7.0.0",
- "@babel/plugin-transform-template-literals": "^7.0.0",
- "@babel/plugin-transform-typescript": "^7.5.0",
- "@babel/plugin-transform-unicode-regex": "^7.0.0",
- "@babel/template": "^7.0.0",
- "react-refresh": "^0.4.0"
- }
- }
+ "metro-react-native-babel-preset": "0.72.3"
}
},
"babel-preset-fbjs": {
@@ -24974,6 +25595,11 @@
"integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
"dev": true
},
+ "chardet": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
+ },
"charenc": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
@@ -25024,6 +25650,11 @@
"resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz",
"integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw=="
},
+ "cli-width": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
+ "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw=="
+ },
"cliui": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
@@ -25055,6 +25686,11 @@
"integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
"dev": true
},
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA=="
+ },
"collect-v8-coverage": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
@@ -25146,9 +25782,9 @@
}
},
"commander": {
- "version": "9.4.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz",
- "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw=="
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz",
+ "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw=="
},
"commondir": {
"version": "1.0.1",
@@ -25249,6 +25885,11 @@
}
}
},
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
+ },
"content-type": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
@@ -25433,9 +26074,9 @@
}
},
"dayjs": {
- "version": "1.11.5",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz",
- "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA=="
+ "version": "1.11.7",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz",
+ "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ=="
},
"debug": {
"version": "4.3.4",
@@ -25457,9 +26098,9 @@
"dev": true
},
"decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og=="
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ=="
},
"decompress-response": {
"version": "6.0.0",
@@ -25607,6 +26248,11 @@
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
},
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
+ },
"denodeify": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz",
@@ -26335,24 +26981,26 @@
}
},
"expo": {
- "version": "46.0.13",
- "resolved": "https://registry.npmjs.org/expo/-/expo-46.0.13.tgz",
- "integrity": "sha512-xaU8GlJ7j3vo1U5tSbFDsoJqUfTkRF4XDEUj/Dr/jqUf0GcvlMKuGe6HvnbMO9slxYQlYlWJUzvlAx38TLhxyA==",
+ "version": "47.0.10",
+ "resolved": "https://registry.npmjs.org/expo/-/expo-47.0.10.tgz",
+ "integrity": "sha512-iWiYvZAlxfIp1VYjVakr0koGPSHQOmIT6mz3qxSVi5N8zbHyroXsJX5cWbFJAs9irTTQQ39AaS5bfiRaIVb6xg==",
"requires": {
"@babel/runtime": "^7.14.0",
- "@expo/cli": "0.3.1",
+ "@expo/cli": "0.4.10",
+ "@expo/config": "7.0.3",
+ "@expo/config-plugins": "5.0.4",
"@expo/vector-icons": "^13.0.0",
- "babel-preset-expo": "~9.2.0",
+ "babel-preset-expo": "~9.2.2",
"cross-spawn": "^6.0.5",
- "expo-application": "~4.2.2",
- "expo-asset": "~8.6.1",
- "expo-constants": "~13.2.4",
- "expo-error-recovery": "~3.2.0",
- "expo-file-system": "~14.1.0",
- "expo-font": "~10.2.1",
- "expo-keep-awake": "~10.2.0",
- "expo-modules-autolinking": "0.10.3",
- "expo-modules-core": "0.11.5",
+ "expo-application": "~5.0.1",
+ "expo-asset": "~8.7.0",
+ "expo-constants": "~14.0.2",
+ "expo-error-recovery": "~4.0.1",
+ "expo-file-system": "~15.1.1",
+ "expo-font": "~11.0.1",
+ "expo-keep-awake": "~11.0.1",
+ "expo-modules-autolinking": "1.0.1",
+ "expo-modules-core": "1.1.0",
"fbemitter": "^3.0.0",
"getenv": "^1.0.0",
"invariant": "^2.2.4",
@@ -26408,19 +27056,19 @@
}
},
"expo-application": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-4.2.2.tgz",
- "integrity": "sha512-bFEaFRUdV6aK2iBd+HzkHNPYsyj88EAhaQW5leznmO0qQMJxpAQ3eoUXMey1hfDBh1qgkkHgSyCZ9BIgMAGJ1g==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-5.0.1.tgz",
+ "integrity": "sha512-bThxK5zH/Lc2tkCvEXGjfM7ayvOVmPWYcWzXsMIU1RtG73TyXo4cq+73FvfDNIWn6gKS0WyMcmoPB3WXEV/jsw==",
"requires": {}
},
"expo-asset": {
- "version": "8.6.1",
- "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-8.6.1.tgz",
- "integrity": "sha512-urbUp1YtwH2J0Qc3inGQJdqTjWKML77SeMNgff+iR9MUE8gDkFqSCDjrBi7i5Oj5DDtq43mmtDg8G8ei6Vchcg==",
+ "version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-8.7.0.tgz",
+ "integrity": "sha512-lkoNsHK6vf+outISB6/37SonXcAL6Buw0ycjiwQVFfpOBKpkQa+zw5wm1m3KwjH2txmR3xdIzcpWsJkgovYCvQ==",
"requires": {
"blueimp-md5": "^2.10.0",
- "expo-constants": "~13.2.2",
- "expo-file-system": "~14.1.0",
+ "expo-constants": "~14.0.0",
+ "expo-file-system": "~15.1.0",
"invariant": "^2.2.4",
"md5-file": "^3.2.3",
"path-browserify": "^1.0.0",
@@ -26428,12 +27076,10 @@
}
},
"expo-av": {
- "version": "12.0.4",
- "resolved": "https://registry.npmjs.org/expo-av/-/expo-av-12.0.4.tgz",
- "integrity": "sha512-wq3wx6J1aacZEPZce9TK1+o4YTAOWyb5cJ4CqfsgHcXeUdHyO3qbva/5uecigpEYlCxOlWYFhAz2T0dQ7nWSpQ==",
- "requires": {
- "@expo/config-plugins": "~5.0.0"
- }
+ "version": "13.0.2",
+ "resolved": "https://registry.npmjs.org/expo-av/-/expo-av-13.0.2.tgz",
+ "integrity": "sha512-u+y9wUBodp08UjRZYckNWzr9zEQHK6eScRBkhdTd9Rq48SEZ7eN6xXn79hubvk0P5nj7lFS+hdKjmx9T5XHGww==",
+ "requires": {}
},
"expo-barcode-scanner": {
"version": "11.4.0",
@@ -26445,11 +27091,11 @@
}
},
"expo-constants": {
- "version": "13.2.4",
- "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-13.2.4.tgz",
- "integrity": "sha512-Zobau8EuTk2GgafwkfGnWM6CmSLB7X8qnQXVuXe0nd3v92hfQUmRWGhJwH88uxXj3LrfqctM6PaJ8taG1vxfBw==",
+ "version": "14.0.2",
+ "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-14.0.2.tgz",
+ "integrity": "sha512-wzV3nrzTXTI8yG0tfas3fnqCfKV6YE+1GphEREyVDAShEB6mBInX1b6HgtpHFy2wOtnml+lPVmTCeGtjjLnZhA==",
"requires": {
- "@expo/config": "~7.0.0",
+ "@expo/config": "~7.0.2",
"uuid": "^3.3.2"
},
"dependencies": {
@@ -26461,18 +27107,17 @@
}
},
"expo-error-recovery": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-3.2.0.tgz",
- "integrity": "sha512-XZ630ks5HNxa9oc2Ya1hEn1ez031Cy4VnyxerPC2o9fKNKSrD/64cRqGF9NkGM3X2uf8+PCB9adxVflAIXBf6w==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-4.0.1.tgz",
+ "integrity": "sha512-wceptnRX+N3qCSVTNbIchUFu3GmY30onRH5L66OF8HMLpAIQfrZMLxJfz7SAMJTcr3jxsJ11vSa2l2RaPKgHsQ==",
"optional": true,
"requires": {}
},
"expo-file-system": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-14.1.0.tgz",
- "integrity": "sha512-lJcPGQ8yKXVknVkD5TmcJnR/TpQbEL0JP8hknLejfq3FIqPqI/LBFn31YiP37grxW8lITz1al8pq5T6CSUjAzQ==",
+ "version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-15.1.1.tgz",
+ "integrity": "sha512-MYYDKxjLo9VOkvGHqym5EOAUS+ero9O66X5zI+EXJzqNznKvnfScdXeeAaQzShmWtmLkdVDCoYFGOaTvTA1wTQ==",
"requires": {
- "@expo/config-plugins": "~5.0.0",
"uuid": "^3.4.0"
},
"dependencies": {
@@ -26484,9 +27129,9 @@
}
},
"expo-font": {
- "version": "10.2.1",
- "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-10.2.1.tgz",
- "integrity": "sha512-sxy5GrdtY+Ka8Wo5wnrcFFeO6MbYC6Dris5wMLqshvVK6BneJNMUsFvwRfvVgg0TzsmMAc3Rlca2xyZ8ettinw==",
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-11.0.1.tgz",
+ "integrity": "sha512-LGAIluWZfru0J0n87dzb6pwAB6TVMTEiLcsd/ktozzbn4DlN7SeQy40+ruU6bvAKCOGrnRneYbKSIOGkrd7oNg==",
"requires": {
"fontfaceobserver": "^2.1.0"
}
@@ -26498,15 +27143,15 @@
"requires": {}
},
"expo-keep-awake": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-10.2.0.tgz",
- "integrity": "sha512-kIRtO4Hmrvxh4E45IPWG/NiUZsuRe1AQwBT09pq+kx8nm6tUS4B9TeL6+1NFy+qVBLbGKDqoQD5Ez7XYTFtBeQ==",
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-11.0.1.tgz",
+ "integrity": "sha512-44ZjgLE4lnce2d40Pv8xsjMVc6R5GvgHOwZfkLYtGmgYG9TYrEJeEj5UfSeweXPL3pBFhXKfFU8xpGYMaHdP0A==",
"requires": {}
},
"expo-modules-autolinking": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-0.10.3.tgz",
- "integrity": "sha512-av9ln2zwUt303g98raX7sDmESgL3SXs1sbbtIjh1rL7R0676XIUacIKgbydR0/4tMbOShWx14Z9fozpk9xIAJA==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.0.1.tgz",
+ "integrity": "sha512-Ch0K/Vb2W7zSPlPKKFr6dwgwge6sSCpl7XPW8jrc7hUy+M72dvcfsBsaphvGNlKIZM6TtpCt0xbUlL48wI2y1A==",
"requires": {
"chalk": "^4.1.0",
"commander": "^7.2.0",
@@ -26581,9 +27226,9 @@
}
},
"expo-modules-core": {
- "version": "0.11.5",
- "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-0.11.5.tgz",
- "integrity": "sha512-KmTHtaL21M1AzKOmu3YM5K8ddCbbr6wgooG4uCb+o+7zZXe+BPP4jAPs5LLez1Et34OQcyjopxUpJ8r43HImvQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.1.0.tgz",
+ "integrity": "sha512-alNfgWyGECYUK3R0bIUc0OHXi5btqFWDMNDSrdeNSdxFKvlzrtQKdbLHJTphumh9KgAIpbEKrUYE2Vimg+Tr8w==",
"requires": {
"compare-versions": "^3.4.0",
"invariant": "^2.2.4"
@@ -26619,6 +27264,16 @@
"is-extendable": "^0.1.0"
}
},
+ "external-editor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+ "requires": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ }
+ },
"extglob": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
@@ -26750,6 +27405,14 @@
"resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz",
"integrity": "sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA=="
},
+ "figures": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==",
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
"file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -27031,6 +27694,12 @@
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "optional": true
+ },
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
@@ -27060,6 +27729,54 @@
"integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
"dev": true
},
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==",
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA=="
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ }
+ }
+ },
"gensync": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
@@ -27178,9 +27895,9 @@
},
"dependencies": {
"ignore": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
- "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ=="
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ=="
}
}
},
@@ -27264,6 +27981,11 @@
"has-symbols": "^1.0.2"
}
},
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
+ },
"has-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
@@ -27416,7 +28138,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
"integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "dev": true,
"requires": {
"agent-base": "6",
"debug": "4"
@@ -27461,6 +28182,11 @@
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz",
"integrity": "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA=="
},
+ "immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
+ },
"import-fresh": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
@@ -27523,6 +28249,149 @@
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
},
+ "inquirer": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
+ "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
+ "requires": {
+ "ansi-escapes": "^3.2.0",
+ "chalk": "^2.4.2",
+ "cli-cursor": "^2.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^2.0.0",
+ "lodash": "^4.17.12",
+ "mute-stream": "0.0.7",
+ "run-async": "^2.2.0",
+ "rxjs": "^6.4.0",
+ "string-width": "^2.1.0",
+ "strip-ansi": "^5.1.0",
+ "through": "^2.3.6"
+ },
+ "dependencies": {
+ "ansi-escapes": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
+ "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ=="
+ },
+ "ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==",
+ "requires": {
+ "restore-cursor": "^2.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w=="
+ },
+ "mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
+ },
+ "onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==",
+ "requires": {
+ "mimic-fn": "^1.0.0"
+ }
+ },
+ "restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==",
+ "requires": {
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+ "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw=="
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==",
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
"install": {
"version": "0.13.0",
"resolved": "https://registry.npmjs.org/install/-/install-0.13.0.tgz",
@@ -28453,9 +29322,9 @@
"integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww=="
},
"joi": {
- "version": "17.6.1",
- "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.1.tgz",
- "integrity": "sha512-Hl7/iBklIX345OCM1TiFSCZRVaAOLDGlWCp0Df2vWYgBgjkezaR7Kvm3joBciBHQjZj5sxXs859r6eqsRSlG8w==",
+ "version": "17.7.0",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-17.7.0.tgz",
+ "integrity": "sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==",
"requires": {
"@hapi/hoek": "^9.0.0",
"@hapi/topo": "^5.0.0",
@@ -28534,21 +29403,6 @@
"snapdragon-node": "^2.0.1",
"split-string": "^3.0.2",
"to-regex": "^3.0.1"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="
- }
}
},
"define-property": {
@@ -28560,15 +29414,6 @@
"isobject": "^3.0.1"
}
},
- "extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
- "requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- }
- },
"fill-range": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
@@ -28578,28 +29423,8 @@
"is-number": "^3.0.0",
"repeat-string": "^1.6.1",
"to-regex-range": "^2.1.0"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="
- }
}
},
- "flow-parser": {
- "version": "0.187.1",
- "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.187.1.tgz",
- "integrity": "sha512-ZvlTeakTTMmYGukt4EIQtLEp4ie45W+jK325uukGgiqFg2Rl7TdpOJQbOLUN2xMeGS+WvXaK0uIJ3coPGDXFGQ=="
- },
"is-extendable": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
@@ -28626,6 +29451,33 @@
"regex-not": "^1.0.0",
"snapdragon": "^0.8.1",
"to-regex": "^3.0.2"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ }
+ }
+ }
+ },
+ "rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "temp": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz",
+ "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==",
+ "requires": {
+ "rimraf": "~2.6.2"
}
},
"to-regex-range": {
@@ -28762,9 +29614,9 @@
"integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
},
"json5": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
- "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA=="
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="
},
"jsonfile": {
"version": "4.0.0",
@@ -28845,11 +29697,27 @@
}
}
},
+ "lie": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
+ "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==",
+ "requires": {
+ "immediate": "~3.0.5"
+ }
+ },
"lines-and-columns": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
},
+ "localforage": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
+ "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
+ "requires": {
+ "lie": "3.1.1"
+ }
+ },
"locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@@ -29125,22 +29993,6 @@
"requires": {
"has-flag": "^4.0.0"
}
- },
- "temp": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz",
- "integrity": "sha512-jtnWJs6B1cZlHs9wPG7BrowKxZw/rf6+UpGAkr8AaYmiTyTO7zQlLoST8zx/8TcUPnZmeBoB+H8ARuHZaSijVw==",
- "requires": {
- "os-tmpdir": "^1.0.0",
- "rimraf": "~2.2.6"
- },
- "dependencies": {
- "rimraf": {
- "version": "2.2.8",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
- "integrity": "sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg=="
- }
- }
}
}
},
@@ -29232,9 +30084,9 @@
}
},
"ci-info": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.4.0.tgz",
- "integrity": "sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug=="
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w=="
},
"debug": {
"version": "2.6.9",
@@ -29382,114 +30234,17 @@
}
},
"metro-react-native-babel-transformer": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.72.1.tgz",
- "integrity": "sha512-hMnN0MOgVloAk94YuXN7sLeDaZ51Y6xIcJXxIU1s/KaygAGXk6o7VAdwf2MY/IV1SIct5lkW4Gn71u/9/EvfXA==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.72.3.tgz",
+ "integrity": "sha512-Ogst/M6ujYrl/+9mpEWqE3zF7l2mTuftDTy3L8wZYwX1pWUQWQpfU1aJBeWiLxt1XlIq+uriRjKzKoRoIK57EA==",
"requires": {
"@babel/core": "^7.14.0",
"babel-preset-fbjs": "^3.4.0",
"hermes-parser": "0.8.0",
- "metro-babel-transformer": "0.72.1",
- "metro-react-native-babel-preset": "0.72.1",
- "metro-source-map": "0.72.1",
+ "metro-babel-transformer": "0.72.3",
+ "metro-react-native-babel-preset": "0.72.3",
+ "metro-source-map": "0.72.3",
"nullthrows": "^1.1.1"
- },
- "dependencies": {
- "metro-babel-transformer": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.72.1.tgz",
- "integrity": "sha512-VK7A9gepnhrKC0DMoxtPjYYHjkkfNwzLMYJgeL6Il6IaX/K/VHTILSEqgpxfNDos2jrXazuR5+rXDLE/RCzqmw==",
- "requires": {
- "@babel/core": "^7.14.0",
- "hermes-parser": "0.8.0",
- "metro-source-map": "0.72.1",
- "nullthrows": "^1.1.1"
- }
- },
- "metro-react-native-babel-preset": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.72.1.tgz",
- "integrity": "sha512-DlvMw2tFrCqD9OXBoN11fPM09kHC22FZpnkTmG4Pr4kecV+aDmEGxwakjUcjELrX1JCXz2MLPvqeJkbiP1f5CA==",
- "requires": {
- "@babel/core": "^7.14.0",
- "@babel/plugin-proposal-async-generator-functions": "^7.0.0",
- "@babel/plugin-proposal-class-properties": "^7.0.0",
- "@babel/plugin-proposal-export-default-from": "^7.0.0",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0",
- "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
- "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
- "@babel/plugin-proposal-optional-chaining": "^7.0.0",
- "@babel/plugin-syntax-dynamic-import": "^7.0.0",
- "@babel/plugin-syntax-export-default-from": "^7.0.0",
- "@babel/plugin-syntax-flow": "^7.2.0",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0",
- "@babel/plugin-syntax-optional-chaining": "^7.0.0",
- "@babel/plugin-transform-arrow-functions": "^7.0.0",
- "@babel/plugin-transform-async-to-generator": "^7.0.0",
- "@babel/plugin-transform-block-scoping": "^7.0.0",
- "@babel/plugin-transform-classes": "^7.0.0",
- "@babel/plugin-transform-computed-properties": "^7.0.0",
- "@babel/plugin-transform-destructuring": "^7.0.0",
- "@babel/plugin-transform-exponentiation-operator": "^7.0.0",
- "@babel/plugin-transform-flow-strip-types": "^7.0.0",
- "@babel/plugin-transform-function-name": "^7.0.0",
- "@babel/plugin-transform-literals": "^7.0.0",
- "@babel/plugin-transform-modules-commonjs": "^7.0.0",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0",
- "@babel/plugin-transform-parameters": "^7.0.0",
- "@babel/plugin-transform-react-display-name": "^7.0.0",
- "@babel/plugin-transform-react-jsx": "^7.0.0",
- "@babel/plugin-transform-react-jsx-self": "^7.0.0",
- "@babel/plugin-transform-react-jsx-source": "^7.0.0",
- "@babel/plugin-transform-runtime": "^7.0.0",
- "@babel/plugin-transform-shorthand-properties": "^7.0.0",
- "@babel/plugin-transform-spread": "^7.0.0",
- "@babel/plugin-transform-sticky-regex": "^7.0.0",
- "@babel/plugin-transform-template-literals": "^7.0.0",
- "@babel/plugin-transform-typescript": "^7.5.0",
- "@babel/plugin-transform-unicode-regex": "^7.0.0",
- "@babel/template": "^7.0.0",
- "react-refresh": "^0.4.0"
- }
- },
- "metro-source-map": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.1.tgz",
- "integrity": "sha512-77TZuf10Ru+USo97HwDT8UceSzOGBZB8EYTObOsR0n1sjQHjvKsMflLA9Pco13o9NsIYAG6c6P/0vIpiHKqaKA==",
- "requires": {
- "@babel/traverse": "^7.14.0",
- "@babel/types": "^7.0.0",
- "invariant": "^2.2.4",
- "metro-symbolicate": "0.72.1",
- "nullthrows": "^1.1.1",
- "ob1": "0.72.1",
- "source-map": "^0.5.6",
- "vlq": "^1.0.0"
- }
- },
- "metro-symbolicate": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.1.tgz",
- "integrity": "sha512-ScC3dVd2XrfZSd6kubOw7EJNp2oHdjrqOjGpFohtcXGjhqkzDosp7Fg84VgwQGN8g720xvUyEBfSMmUCXcicOQ==",
- "requires": {
- "invariant": "^2.2.4",
- "metro-source-map": "0.72.1",
- "nullthrows": "^1.1.1",
- "source-map": "^0.5.6",
- "through2": "^2.0.1",
- "vlq": "^1.0.0"
- }
- },
- "ob1": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.1.tgz",
- "integrity": "sha512-TyQX2gO08klGTMuzD+xm3iVrzXiIygCB7t+NWeicOR05hkzgeWOiAZ8q40uMfIDRfEAc6hd66sJdIEhU/yUZZA=="
- },
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="
- }
}
},
"metro-resolver": {
@@ -29711,6 +30466,11 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
+ "mute-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ=="
+ },
"mv": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
@@ -31735,6 +32495,17 @@
"path-key": "^2.0.0"
}
},
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
"nth-check": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
@@ -31748,6 +32519,11 @@
"resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
"integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw=="
},
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ=="
+ },
"nwsapi": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz",
@@ -31907,6 +32683,14 @@
"is-wsl": "^1.1.0"
}
},
+ "opn": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
+ "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==",
+ "requires": {
+ "is-wsl": "^1.1.0"
+ }
+ },
"optionator": {
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
@@ -32313,9 +33097,9 @@
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
},
"promise": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/promise/-/promise-8.2.0.tgz",
- "integrity": "sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz",
+ "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==",
"requires": {
"asap": "~2.0.6"
}
@@ -32351,6 +33135,11 @@
}
}
},
+ "proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
"psl": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
@@ -32401,6 +33190,16 @@
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
},
+ "r2": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/r2/-/r2-2.0.1.tgz",
+ "integrity": "sha512-EEmxoxYCe3LHzAUhRIRxdCKERpeRNmlLj6KLUSORqnK6dWl/K5ShmDGZqM2lRZQeqJgF+wyqk0s1M7SWUveNOQ==",
+ "requires": {
+ "caseless": "^0.12.0",
+ "node-fetch": "^2.0.0-alpha.8",
+ "typedarray-to-buffer": "^3.1.2"
+ }
+ },
"range-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
@@ -32508,14 +33307,14 @@
"integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
},
"react-native": {
- "version": "0.70.1",
- "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.70.1.tgz",
- "integrity": "sha512-AUh4NZLFdvyjSiYWCtTROCrC7loxeeZ/TzBnkZwp3kb9XmMu7/kzvWn2c5sEMnzW7X/0JSul8jXexGVdpnCoSA==",
+ "version": "0.70.6",
+ "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.70.6.tgz",
+ "integrity": "sha512-xtQdImPHnwgraEx3HIZFOF+D1hJ9bC5mfpIdUGoMHRws6OmvHAjmFpO6qfdnaQ29vwbmZRq7yf14sbury74R/w==",
"requires": {
"@jest/create-cache-key-function": "^27.0.1",
- "@react-native-community/cli": "^9.0.0",
- "@react-native-community/cli-platform-android": "^9.0.0",
- "@react-native-community/cli-platform-ios": "^9.0.0",
+ "@react-native-community/cli": "9.3.2",
+ "@react-native-community/cli-platform-android": "9.3.1",
+ "@react-native-community/cli-platform-ios": "9.3.0",
"@react-native/assets": "1.0.0",
"@react-native/normalize-color": "2.0.0",
"@react-native/polyfills": "2.0.0",
@@ -32526,15 +33325,15 @@
"invariant": "^2.2.4",
"jsc-android": "^250230.2.1",
"memoize-one": "^5.0.0",
- "metro-react-native-babel-transformer": "0.72.1",
- "metro-runtime": "0.72.1",
- "metro-source-map": "0.72.1",
+ "metro-react-native-babel-transformer": "0.72.3",
+ "metro-runtime": "0.72.3",
+ "metro-source-map": "0.72.3",
"mkdirp": "^0.5.1",
"nullthrows": "^1.1.1",
"pretty-format": "^26.5.2",
- "promise": "^8.0.3",
+ "promise": "^8.3.0",
"react-devtools-core": "4.24.0",
- "react-native-codegen": "^0.70.5",
+ "react-native-codegen": "^0.70.6",
"react-native-gradle-plugin": "^0.70.3",
"react-refresh": "^0.4.0",
"react-shallow-renderer": "^16.15.0",
@@ -32546,53 +33345,6 @@
"ws": "^6.1.4"
},
"dependencies": {
- "metro-runtime": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.1.tgz",
- "integrity": "sha512-CO+fvJKYHKuR2vo7kjsegQ2oF3FMwa4YhnUInQ+xPVxWoy8DbOpmruKBoTsQVgHwyIziXzvJa+mze/6CFvT+3A==",
- "requires": {
- "@babel/runtime": "^7.0.0",
- "react-refresh": "^0.4.0"
- }
- },
- "metro-source-map": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.1.tgz",
- "integrity": "sha512-77TZuf10Ru+USo97HwDT8UceSzOGBZB8EYTObOsR0n1sjQHjvKsMflLA9Pco13o9NsIYAG6c6P/0vIpiHKqaKA==",
- "requires": {
- "@babel/traverse": "^7.14.0",
- "@babel/types": "^7.0.0",
- "invariant": "^2.2.4",
- "metro-symbolicate": "0.72.1",
- "nullthrows": "^1.1.1",
- "ob1": "0.72.1",
- "source-map": "^0.5.6",
- "vlq": "^1.0.0"
- }
- },
- "metro-symbolicate": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.1.tgz",
- "integrity": "sha512-ScC3dVd2XrfZSd6kubOw7EJNp2oHdjrqOjGpFohtcXGjhqkzDosp7Fg84VgwQGN8g720xvUyEBfSMmUCXcicOQ==",
- "requires": {
- "invariant": "^2.2.4",
- "metro-source-map": "0.72.1",
- "nullthrows": "^1.1.1",
- "source-map": "^0.5.6",
- "through2": "^2.0.1",
- "vlq": "^1.0.0"
- }
- },
- "ob1": {
- "version": "0.72.1",
- "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.1.tgz",
- "integrity": "sha512-TyQX2gO08klGTMuzD+xm3iVrzXiIygCB7t+NWeicOR05hkzgeWOiAZ8q40uMfIDRfEAc6hd66sJdIEhU/yUZZA=="
- },
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="
- },
"ws": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
@@ -32609,8 +33361,8 @@
"integrity": "sha512-/Lxo4o8MRvK0h9WNgsut0XBu7VTXlDHa737mrDuG+7bXJlNtvHKVuTxW580vN0GQNLM4orbiG6TSiOsvdY6MhQ=="
},
"react-native-b-crypt-bridge": {
- "version": "file:react-native-b-crypt-bridge-2.0.0.tgz",
- "integrity": "sha512-nqjJtA0qUh6awVEmI41c3I3IxWHOm38UQGkXNg4iZmb4gg0MMFMBZFNAVHa5Xzl+YVDQ6rIfmrF0w/BnDaewsA==",
+ "version": "file:react-native-b-crypt-bridge-2.1.0.tgz",
+ "integrity": "sha512-idJ3l2bqfqbZsgz7Rl43EBYpiy7zk1luBMxxV0MzVGRN4mAtwG/UrYPc5dYS7xsz0siGj5C/sQn8YpAauS7Buw==",
"requires": {}
},
"react-native-blob-util": {
@@ -32623,9 +33375,9 @@
}
},
"react-native-codegen": {
- "version": "0.70.5",
- "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.70.5.tgz",
- "integrity": "sha512-vXqgCWWIWlzsCtwD6hbmwmCleGNJYm+n4xO9VMfzzlF3xt9gjC7/USSMTf/YZlCK/hDwQU412QrNS6A9OH+mag==",
+ "version": "0.70.6",
+ "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.70.6.tgz",
+ "integrity": "sha512-kdwIhH2hi+cFnG5Nb8Ji2JwmcCxnaOOo9440ov7XDzSvGfmUStnCzl+MCW8jLjqHcE4icT7N9y+xx4f50vfBTw==",
"requires": {
"@babel/parser": "^7.14.0",
"flow-parser": "^0.121.0",
@@ -32813,6 +33565,21 @@
"scheduler": "^0.22.0"
}
},
+ "read-env": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/read-env/-/read-env-1.3.0.tgz",
+ "integrity": "sha512-DbCgZ8oHwZreK/E2E27RGk3EUPapMhYGSGIt02k9sX6R3tCFc4u4tkltKvkCvzEQ3SOLUaiYHAnGb+TdsnPp0A==",
+ "requires": {
+ "camelcase": "5.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
+ "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA=="
+ }
+ }
+ },
"read-pkg": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
@@ -33249,6 +34016,11 @@
"integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==",
"dev": true
},
+ "run-async": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
+ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ=="
+ },
"run-parallel": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -33257,6 +34029,21 @@
"queue-microtask": "^1.2.2"
}
},
+ "rxjs": {
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+ "requires": {
+ "tslib": "^1.9.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ }
+ }
+ },
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -34242,20 +35029,18 @@
}
},
"temp": {
- "version": "0.8.4",
- "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz",
- "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==",
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz",
+ "integrity": "sha512-jtnWJs6B1cZlHs9wPG7BrowKxZw/rf6+UpGAkr8AaYmiTyTO7zQlLoST8zx/8TcUPnZmeBoB+H8ARuHZaSijVw==",
"requires": {
- "rimraf": "~2.6.2"
+ "os-tmpdir": "^1.0.0",
+ "rimraf": "~2.2.6"
},
"dependencies": {
"rimraf": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
- "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
- "requires": {
- "glob": "^7.1.3"
- }
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+ "integrity": "sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg=="
}
}
},
@@ -34501,9 +35286,9 @@
}
},
"traverse": {
- "version": "0.6.6",
- "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz",
- "integrity": "sha512-kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw=="
+ "version": "0.6.7",
+ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz",
+ "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg=="
},
"ts-interface-checker": {
"version": "0.1.13",
@@ -34584,7 +35369,6 @@
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
"integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
- "dev": true,
"requires": {
"is-typedarray": "^1.0.0"
}
@@ -34971,7 +35755,6 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
"requires": {
"isexe": "^2.0.0"
}
@@ -34994,6 +35777,14 @@
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
"integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q=="
},
+ "wide-align": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
+ "requires": {
+ "string-width": "^1.0.2 || 2 || 3 || 4"
+ }
+ },
"wonka": {
"version": "4.0.15",
"resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz",
diff --git a/ComApp/package.json b/ComApp/package.json
index 604d59b..b9fe0c1 100644
--- a/ComApp/package.json
+++ b/ComApp/package.json
@@ -10,16 +10,17 @@
"lint": "eslint ."
},
"dependencies": {
- "@react-native-community/netinfo": "^9.3.2",
+ "@react-native-community/netinfo": "^9.3.7",
"@react-native-community/slider": "^4.3.2",
"@react-native-picker/picker": "^2.4.6",
"@react-navigation/native": "^6.0.13",
"@react-navigation/native-stack": "^6.9.0",
"@rneui/base": "^0.0.0-edge.2",
"@rneui/themed": "^0.0.0-edge.2",
+ "@sentry/react-native": "^4.12.0",
"axios": "^0.27.2",
- "expo": "^46.0.13",
- "expo-av": "^12.0.4",
+ "expo": "^47.0.10",
+ "expo-av": "^13.0.2",
"expo-barcode-scanner": "^11.4.0",
"expo-splash-screen": "^0.16.2",
"expo-video-player": "^2.2.0",
@@ -28,9 +29,9 @@
"lodash": "^4.17.21",
"npm": "^8.19.2",
"react": "18.1.0",
- "react-native": "0.70.1",
+ "react-native": "^0.70.6",
"react-native-animated-tree-view": "^0.1.4",
- "react-native-b-crypt-bridge": "file:react-native-b-crypt-bridge-2.0.0.tgz",
+ "react-native-b-crypt-bridge": "file:react-native-b-crypt-bridge-2.1.0.tgz",
"react-native-blob-util": "^0.16.2",
"react-native-flash-message": "^0.3.1",
"react-native-gesture-handler": "^2.7.0",
@@ -52,7 +53,7 @@
"babel-jest": "^26.6.3",
"eslint": "^7.32.0",
"jest": "^26.6.3",
- "metro-react-native-babel-preset": "^0.72.1",
+ "metro-react-native-babel-preset": "^0.72.3",
"react-test-renderer": "18.1.0"
},
"jest": {
diff --git a/ComApp/react-native-b-crypt-bridge-2.1.0.tgz b/ComApp/react-native-b-crypt-bridge-2.1.0.tgz
new file mode 100644
index 0000000..c550c60
Binary files /dev/null and b/ComApp/react-native-b-crypt-bridge-2.1.0.tgz differ
diff --git a/ComApp/src/App.js b/ComApp/src/App.js
index 1714551..7fb263d 100644
--- a/ComApp/src/App.js
+++ b/ComApp/src/App.js
@@ -1,215 +1,360 @@
-import 'react-native-gesture-handler';
import React from 'react';
-import { createStore } from 'redux';
+// Sentry
+import * as Sentry from "@sentry/react-native";
+// Redux
import { Provider } from 'react-redux';
+import { store } from './App/Store/ConfigureStore';
+import { initDocuments } from './App/Store/Actions/documents';
+// Deps
+import 'react-native-gesture-handler';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
-import { TouchableOpacity, View, Image, Text, TextInput, StyleSheet, Alert } from 'react-native';
+import { navigationRef, navigate } from './Navigation';
+import { TouchableOpacity, View, Image, Text, TextInput, Alert, DrawerLayoutAndroid, Button } from 'react-native';
import Icon from 'react-native-vector-icons/FontAwesome5';
-
import FlashMessage, { showMessage } from 'react-native-flash-message';
import * as SplashScreen from 'expo-splash-screen';
-
-import LoginScreen from './Views/Login';
-import HomeScreen from './Views/Home';
-import DirectoriesScreen from './Views/Directories';
-import VideoScreen from './Views/Video';
-import PDFScreen from './Views/PDF';
-import SyncScreen from './Views/Sync';
-import ContactScreen from './Views/Contact';
-import ContactDetailsScreen from './Views/ContactDetails';
-import OnlyVideosScreen from './Views/OnlyVideos';
-import SearchScreen from "./Views/Search";
-import MySpaceScreen from './Views/MySpace';
-
-import UsersModel from './Models/Users';
-import DirectoriesModel from './Models/Directories';
-import DocumentsModel from './Models/Documents';
-import ContactsModel from './Models/Contacts';
-import SendBrochureModel from './Models/SendBrochure';
-import CommonModel from './Models/Common';
-
-import Sync from './Controllers/Sync';
-import Helpers from "./Controllers/Helpers";
+// Application infos
+import * as Application from 'expo-application';
+// i18n
import i18n from "./I18n";
+// FileSytem
+import * as FileSystem from 'expo-file-system';
+// Views
+import InstallScreen from './App/Views/InstallScreen';
+import LoginScreen from './App/Views/LoginScreen';
+import SyncScreen from './App/Views/SyncScreen';
+import HomeScreen from './App/Views/HomeScreen';
+import DirectoriesScreen from './App/Views/DirectoriesScreen';
+import PDFScreen from './App/Views/PDFScreen';
+import VideoScreen from './App/Views/VideoScreen';
+import OnlyVideosScreen from './App/Views/OnlyVideosScreen';
+import ContactScreen from './App/Views/ContactScreen';
+import ContactDetailsScreen from './App/Views/ContactDetailsScreen';
+import SearchScreen from "./App/Views/SearchScreen";
+import MySpaceScreen from './App/Views/MySpaceScreen';
+// Style
+import styles from './Resources/Styles/NavigationStyle';
+// Controllers
+import SyncController from './App/Controllers/SyncController';
-SplashScreen.preventAutoHideAsync();
+Sentry.init({
+ dsn: "https://ab87e8d840324f41873c95b06903b0bf@o4504314935640064.ingest.sentry.io/4504441255886848",
+});
-const initialState = {
- locale: 'fr',
- users: {},
- directories: {},
- documents: {},
- contacts: {},
- syncVersion: 0,
- logged: undefined,
- currentUser: {},
- currentOpenedDoc: {},
- ShowIsActive: 0,
-};
+Sentry.setContext("app", {
+ boUrl: SyncController.getUrlBo()
+});
-function reducer(state = initialState, action) {
- //console.log('reducer', state, action);
- //console.log('DISPATCH');
-
- switch (action.type) {
- case 'INIT':
- let docs = DocumentsModel.getAll(DirectoriesModel.getAll(
- state.currentUser.role,
- state.currentUser.authorizedFolders,
- false,
- state.locale
- ));
- return {
- ...state,
- users: UsersModel.getAll(),
- directories: DirectoriesModel.getAll(
- state.currentUser.role,
- state.currentUser.authorizedFolders,
- true,
- state.locale
- ),
- documents: docs.filter(item => item.lang === state.locale),
- contacts: ContactsModel.getByUser(state.currentUser.id),
- ShowIsActive: CommonModel.get('ShowIsActive')['value'],
- };
- case 'INIT_USERS':
- return {
- ...state,
- users: UsersModel.getAll(),
- };
- case 'SET_CURRENT_USER':
- return {
- ...state,
- currentUser: JSON.parse(action.data),
- };
- case 'SET_LOGGED':
- if (action.data === false) {
- CommonModel.delete('isLogged');
- }
- return {
- ...state,
- logged: action.data,
- };
- case 'UPDATE_LOCALE':
- let nxt;
- if (action.data === undefined) {
- const availableLocales = ['fr', 'en', 'de'];
- if (availableLocales.indexOf(i18n.locale) === availableLocales.length - 1) {
- nxt = availableLocales[0];
- } else {
- nxt = availableLocales[availableLocales.indexOf(i18n.locale) + 1];
- }
- } else {
- nxt = action.data;
- }
- i18n.locale = nxt;
- CommonModel.update({ key: 'locale', value: nxt });
- let docsL = DocumentsModel.getAll(DirectoriesModel.getAll(
- state.currentUser.role,
- state.currentUser.authorizedFolders,
- false,
- nxt
- ));
- return {
- ...state,
- locale: nxt,
- directories: DirectoriesModel.getAll(
- state.currentUser.role,
- state.currentUser.authorizedFolders,
- true,
- nxt
- ),
- documents: docsL.filter(item => item.lang === nxt),
- };
- case 'SET_CURRENT_OPENED_DOC':
- return {
- ...state,
- currentOpenedDoc: action.data
- };
- case 'UPDATE_VERSION':
- return {
- ...state,
- syncVersion: action.data,
- };
- case 'UPDATE_SHOW_IS_ACTIVE':
- Sync.updateShowIsActive(action.data);
- return {
- ...state,
- ShowIsActive: action.data,
- };
- case 'UPDATE_CONTACT':
- ContactsModel.update(action.data);
- return {
- ...state,
- contacts: ContactsModel.getByUser(state.currentUser.id),
- };
- case 'ADD_CONTACT':
- ContactsModel.add(action.data);
- return {
- ...state,
- contacts: ContactsModel.getByUser(state.currentUser.id),
- };
- case 'DELETE_CONTACT':
- ContactsModel.delete(action.data);
- return {
- ...state,
- contacts: ContactsModel.getByUser(state.currentUser.id),
- };
- case 'SEND_BROCHURE':
- SendBrochureModel.add(action.data);
- return state;
- default:
- return state;
- }
-}
-
-const store = createStore(reducer);
-const Stack = createNativeStackNavigator();
+SplashScreen.preventAutoHideAsync(); //Keep
+store.dispatch({ type: 'INIT' });
+store.dispatch({ type: 'INIT_LOCALE' });
store.dispatch({ type: 'INIT_USERS' });
+const Stack = createNativeStackNavigator();
+
class App extends React.Component {
state = {
- logged: false,
+ isSetup: false,
+ isLogged: false,
searchTxt: '',
sendEmail: '',
- ShowIsActive: '0'
+ mainColor: '',
+ drawerRef: React.createRef()
};
- componentDidMount(): void {
+ componentDidMount() {
const unsubscribe = store.subscribe(this.handleChange.bind(this));
- if (Sync.isInstalled() && Sync.isLogged()) {
- store.dispatch({
- type: 'SET_CURRENT_USER',
- data: CommonModel.get('isLogged').value,
- });
- store.dispatch({ type: 'SET_LOGGED', data: true });
- }
- const savedLocale = CommonModel.get('locale');
- if (savedLocale !== undefined && savedLocale !== false) {
- store.dispatch({ type: 'UPDATE_LOCALE', data: savedLocale.value });
- }
+ this.setState({
+ isSetup: store.getState().app.isSetup,
+ isLogged: store.getState().app.logged,
+ mainColor: store.getState().app.mainColor
+ });
}
handleChange() {
- const logged = store.getState().logged;
- if (logged === false) {
- CommonModel.delete('isLogged');
- }
- if (logged !== undefined) {
- this.setState({ logged: logged });
- }
- this.setState({ ShowIsActive: store.getState().ShowIsActive });
+ this.setState({
+ isSetup: store.getState().app.isSetup,
+ isLogged: store.getState().app.logged,
+ mainColor: store.getState().app.mainColor
+ }); // to force re-rendering
+ console.log("state changed")
}
- LogoTitle(title) {
+ navigationView = () => (
+
+
+ {
+ this.state.drawerRef.current.closeDrawer();
+ store.dispatch({ type: 'EDIT_LOCALE' });
+ store.dispatch(initDocuments(store.getState().locale.locale, store.getState().directories.global))
+ }}
+ style={styles.drawer.btn}>
+
+ {i18n.t('global.change_lang')}
+
+ {
+ this.state.drawerRef.current.closeDrawer();
+ navigate('SyncScreen')
+ }}
+ style={styles.drawer.btn}>
+
+ {i18n.t('global.sync')}
+
+ {
+ this.state.drawerRef.current.closeDrawer();
+ store.dispatch({ type: 'SET_CURRENT_USER', data: false });
+ }}
+ style={styles.drawer.btn}>
+
+ {i18n.t('global.logout')}
+
+
+
+ Version : {Application.nativeApplicationVersion}
+
+
+ );
+
+ render() {
+ return (
+
+
+
+
+ {this.state.isSetup === false &&
+ ({
+ headerTitle: () => this.LogoTitle(navigation, i18n.t('install.installation'), false),
+ headerRight: () => (
+
+ {
+ store.dispatch({ type: 'EDIT_LOCALE' });
+ }}
+ style={{ marginRight: 15 }}>
+
+
+
+ ),
+ })}
+ />
+ }
+ {this.state.isLogged === false ? (
+ ({
+ headerTitle: () => this.LogoTitle(navigation, i18n.t('global.login'), false),
+ headerRight: () => (
+
+ {
+ store.dispatch({ type: 'EDIT_LOCALE' });
+ }}
+ style={{ marginRight: 15 }}>
+
+
+
+ ),
+ })}
+ />
+ ) : (
+ ({
+ headerTitle: () => this.LogoTitle(navigation, i18n.t('global.home')),
+ headerRight: () => (
+
+
+ this.setState({ searchTxt: text })}
+ />
+ {
+ if (this.state.searchTxt.length > 0) {
+ navigation.navigation.navigate('SearchScreen', {
+ needle: this.state.searchTxt,
+ onlyVideos: false,
+ });
+ this.setState({ searchTxt: '' });
+ }
+ }}>
+
+
+
+ {store.getState().app.ShowIsActive === '1' && (
+ navigation.navigation.navigate('MySpaceScreen')}
+ style={{ marginRight: 25 }}>
+
+
+ )}
+ navigation.navigation.navigate('ContactScreen', {
+ action: 'add',
+ })}
+ style={{ marginRight: 25 }}>
+
+
+ {
+ this.state.drawerRef.current.openDrawer()
+ }}
+ style={{ marginRight: 25 }}>
+
+
+
+ ),
+ })}
+ />
+ )}
+ ({
+ headerTitle: () => this.LogoTitle(navigation, i18n.t('global.synchronization'))
+ })}
+ />
+ ({
+ headerTitle: () => this.LogoTitle(navigation, i18n.t('app.folders'))
+ })}
+ />
+ ({
+ headerTitle: () => this.LogoTitle(navigation, i18n.t('global.videos')),
+ headerRight: () => (
+
+ this.setState({ searchTxt: text })} />
+ {
+ if (this.state.searchTxt.length > 0) {
+ navigation.navigation.navigate('SearchScreen', {
+ needle: this.state.searchTxt,
+ onlyVideos: true,
+ });
+ this.setState({ searchTxt: '' });
+ }
+ }}>
+
+
+
+ ),
+ })}
+ />
+ ({
+ headerTitle: () => this.LogoTitle(navigation, i18n.t('app.video')),
+ headerRight: () => this.SendEmail(),
+ orientation: 'landscape'
+ })}
+ />
+ ({
+ headerTitle: () => this.LogoTitle(navigation, 'PDF'),
+ headerRight: () => this.SendEmail()
+ })}
+ />
+ ({
+ headerTitle: () => this.LogoTitle(navigation, i18n.t('global.contacts'))
+ })}
+ initialParams={{ contactAdded: false }}
+ />
+ ({
+ headerTitle: () => this.LogoTitle(navigation, i18n.t('app.contact_details'))
+ })}
+ />
+ ({
+ headerTitle: () => this.LogoTitle(navigation, i18n.t('app.results_search'))
+ })}
+ />
+ ({
+ headerTitle: () => this.LogoTitle(navigation, i18n.t('app.my_space')),
+ headerRight: () => (
+
+ {
+ const folder = store.getState().directories.treeview.filter(tmp => tmp.id === 1);
+ navigation.navigation.navigate('DirectoriesScreen', { folder: folder })
+ }}
+ style={{ marginRight: 15 }}>
+
+
+
+ ),
+ })}
+ />
+
+
+
+
+
+ );
+ }
+
+ LogoTitle(navigation, title, wantBtn = true) {
return (
-
+ {
+ if (wantBtn) {
+ navigation.navigation.navigate('HomeScreen')
+ }
+ }}>
+ {this.state.isSetup ? (
+
+ ) : (
+
+ )}
+
{title}
);
@@ -218,8 +363,8 @@ class App extends React.Component {
SendEmail() {
return (
- this.setState({ sendEmail: text })} />
- {
+ this.setState({ sendEmail: text })} />
+ {
if (this.state.sendEmail.length > 0) {
if (Helpers.isEmailValid(this.state.sendEmail)) {
const email = {
@@ -252,217 +397,25 @@ class App extends React.Component {
);
}
- render() {
- const savedLocale = CommonModel.get('locale');
- let locale;
- if (savedLocale !== undefined) {
- locale = savedLocale.value;
- } else {
- locale = store.getState().locale;
- }
+ renderFlag() {
let flag;
- switch (locale) {
+ switch (store.getState().locale.locale) {
case "fr":
flag = require('./assets/img/flags/fr.png');
- break;
+ break;
case "en":
flag = require('./assets/img/flags/en.png');
- break;
+ break;
case "de":
flag = require('./assets/img/flags/de.png');
- break;
+ break;
case "es":
flag = require('./assets/img/flags/es.png');
- break;
+ break;
}
- return (
-
-
-
- {this.state.logged === false ? (
- ({
- headerTitle: () => this.LogoTitle(i18n.t('global.login')),
- headerRight: () => (
-
- {
- store.dispatch({ type: 'UPDATE_LOCALE' });
- this.setState({ state: this.state }); // to force re-rendering
- }}
- style={{ marginRight: 15 }}>
-
-
-
- ),
- })}
- />
- ) : (
- ({
- headerTitle: () => this.LogoTitle(i18n.t('global.home')),
- headerRight: () => (
-
-
- this.setState({ searchTxt: text })} />
- {
- if (this.state.searchTxt.length > 0) {
- navigation.navigation.navigate('SearchScreen', {
- needle: this.state.searchTxt,
- onlyVideos: false,
- });
- this.setState({ searchTxt: '' });
- }
- }}>
-
-
-
- {
- store.dispatch({ type: 'UPDATE_LOCALE' });
- }}
- style={{ marginRight: 25 }}>
-
-
- {this.state.ShowIsActive === '1' && (
- navigation.navigation.navigate('MySpaceScreen')}
- style={{ marginRight: 25 }}>
-
-
- )}
-
- navigation.navigation.navigate('SyncScreen', {
- isInstalled: true,
- })
- }
- style={{ marginRight: 25 }}>
-
-
- {
- store.dispatch({ type: 'SET_LOGGED', data: false });
- }}
- style={{ marginRight: 25 }}>
-
-
-
- ),
- })}
- />
- )}
- this.LogoTitle(i18n.t('global.synchronization')) }}
- />
- this.LogoTitle(i18n.t('app.folders')) }}
- />
- ({
- headerTitle: () => this.LogoTitle(i18n.t('global.videos')),
- headerRight: () => (
-
- this.setState({ searchTxt: text })} />
- {
- if (this.state.searchTxt.length > 0) {
- navigation.navigation.navigate('SearchScreen', {
- needle: this.state.searchTxt,
- onlyVideos: true,
- });
- this.setState({ searchTxt: '' });
- }
- }}>
-
-
-
- ),
- })}
- />
- ({
- headerTitle: () => this.LogoTitle(i18n.t('app.video')),
- headerRight: () => this.SendEmail(),
- orientation: 'landscape'
- })}
- />
- ({
- headerTitle: () => this.LogoTitle('PDF'),
- headerRight: () => this.SendEmail()
- })}
- />
- this.LogoTitle(i18n.t('global.contacts')) }}
- initialParams={{ contactAdded: false }}
- />
- this.LogoTitle(i18n.t('app.contact_details')) }}
- />
- this.LogoTitle(i18n.t('app.results_search')) }}
- />
- ({
- headerTitle: () => this.LogoTitle(i18n.t('app.my_space')),
- headerRight: () => (
-
- {
- const folder = store.getState().directories.filter(tmp => tmp.id === 1);
- navigation.navigation.navigate('DirectoriesScreen', { folder: folder })
- }}
- style={{ marginRight: 15 }}>
-
-
-
- ),
- })}
- />
-
-
-
-
- );
+ return flag;
}
+
}
-const styles = StyleSheet.create({
- searchInput: {
- borderWidth: 1,
- borderColor: '#ea4f52',
- width: 200,
- paddingLeft: 20,
- },
- btnSearch: {
- width: 50,
- height: 50,
- alignItems: 'center',
- justifyContent: 'center',
- backgroundColor: '#ea4f52'
- }
-});
-
-export default App;
+export default Sentry.wrap(App);
diff --git a/ComApp/src/App/Controllers/InstallController.js b/ComApp/src/App/Controllers/InstallController.js
index fa78f43..b23d80a 100644
--- a/ComApp/src/App/Controllers/InstallController.js
+++ b/ComApp/src/App/Controllers/InstallController.js
@@ -9,68 +9,19 @@ import NetInfo from "@react-native-community/netinfo";
import i18n from "../../I18n";
// Database
import { Setting } from "../../Database";
-// FileSytem
-import * as FileSystem from 'expo-file-system';
-
-const api_token = 'toto';
+const api_token = 'G9Q62jt8eL8gN4Ls';
class InstallController {
- getConfig(url) {
- NetInfo.fetch().then(state => {
- if (state.isConnected) {
- axios({
- method: 'GET',
- url: url + '/api/settings',
- responseType: 'json',
- params: {
- token: api_token
- },
- })
- .then(function (response) {
- if (response.data) {
- if (response.data.status === "OK") {
- _.forEach(response.data.datas, function (value, key) {
- switch (key) {
- case "MainColor":
- Setting.upsert({ key: key, value: value });
- break;
- case "SquaredLogo":
- case "RectangleLogo":
- case "BackgroundImage":
- case "HomeButtonImage":
- FileSystem.downloadAsync(
- url + "/" + value,
- FileSystem.documentDirectory + key + '.png'
- )
- .then(({ uri }) => {
- console.log('Finished downloading to ', uri);
- })
- .catch(error => {
- Alert.alert(i18n.t("alert.error"), i18n.t("install.resource_dl_error") + key);
- console.error(error);
- return false;
- });
- break;
- }
- });
- } else {
- Alert.alert(i18n.t("alert.error"), i18n.t("error.error_has_occurred"));
- return false;
- }
- }
- })
- .catch(function (error) {
- console.log(error)
- Alert.alert(i18n.t("alert.error"), i18n.t("error.error_has_occurred"));
- return false;
- })
- } else {
- Alert.alert(i18n.t("alert.error"), i18n.t("error.tablet_not_connected_internet"));
- return false;
- }
+ async getConfig(url) {
+ return axios({
+ method: 'GET',
+ url: url + '/api/settings',
+ responseType: 'json',
+ params: {
+ token: api_token
+ },
});
- return true;
}
getAppConfig(url) {
diff --git a/ComApp/src/App/Controllers/SyncController.js b/ComApp/src/App/Controllers/SyncController.js
index fc9a75c..de07332 100644
--- a/ComApp/src/App/Controllers/SyncController.js
+++ b/ComApp/src/App/Controllers/SyncController.js
@@ -9,27 +9,38 @@ import * as Application from 'expo-application';
// Database
import { Setting, Contact, SendBrochure, Document } from '../../Database';
-const api_token = 'toto';
-const app_uuid = '1f6eda31-1f6d-49fe-aa81-4f0aece0f7ca';
-const url = "https://dev-app.rhd-ldc.fr";
+const api_token = 'G9Q62jt8eL8gN4Ls';
class SyncController {
+ getUrlBo() {
+ const test = Setting.get('bo_url');
+ if (test === false || test === undefined) {
+ return "noset";
+ }
+ return test.value;
+ }
+
+ getAppStoreUUID() {
+ const test = Setting.get('AppStoreUUID');
+ if (test === false || test === undefined) {
+ return "noset";
+ }
+ return test.value;
+ }
+
async checkConnection() {
- NetInfo.fetch().then(state => {
- return state.isConnected;
- });
- return false;
+ return NetInfo.fetch();
}
async getVersion() {
return axios({
method: 'GET',
- url: url + '/api/version',
+ url: this.getUrlBo() + '/api/version',
responseType: 'json',
params: {
token: api_token,
- app_uuid: app_uuid,
+ app_uuid: this.getAppStoreUUID(),
app_version: Application.nativeApplicationVersion
},
});
@@ -38,7 +49,7 @@ class SyncController {
async getUsers() {
return axios({
method: 'GET',
- url: url + '/api/users',
+ url: this.getUrlBo() + '/api/users',
responseType: 'json',
params: {
token: api_token
@@ -50,7 +61,7 @@ class SyncController {
let contacts = Contact.getAll();
return axios({
method: 'POST',
- url: url + '/api/contacts',
+ url: this.getUrlBo() + '/api/contacts',
responseType: 'json',
params: {
token: api_token
@@ -62,26 +73,22 @@ class SyncController {
});
}
- async sendBrochures() {
- let brochures = SendBrochure.getAll();
- for (const brochure of brochures) {
- await axios({
- method: 'POST',
- url: url + '/api/sendBrochure',
- responseType: 'json',
- params: {
- token: api_token,
- emails: brochure,
- },
- });
- }
- SendBrochure.clear();
+ async sendBrochure(brochure) {
+ return axios({
+ method: 'POST',
+ url: this.getUrlBo() + '/api/sendBrochure',
+ responseType: 'json',
+ params: {
+ token: api_token,
+ emails: brochure,
+ },
+ });
}
async getDirectories() {
return axios({
method: 'GET',
- url: url + '/api/directories',
+ url: this.getUrlBo() + '/api/directories',
responseType: 'json',
params: {
token: api_token
@@ -92,7 +99,7 @@ class SyncController {
async getDocuments() {
return axios({
method: 'GET',
- url: url + '/api/documents',
+ url: this.getUrlBo() + '/api/documents',
responseType: 'json',
params: {
token: api_token,
@@ -123,26 +130,18 @@ class SyncController {
}
isSynced() {
- const SendBrochure = SendBrochure.getAll();
+ const brochures = SendBrochure.getAll();
const Contacts = Contact.getAll();
- if (SendBrochure !== undefined && Contacts !== undefined) {
+ if (brochures !== undefined && Contacts !== undefined) {
const noSynced = Contacts.filtered('synced = false');
- if (SendBrochure.length > 0 || noSynced.length > 0) {
+ if (brochures.length > 0 || noSynced.length > 0) {
return false;
}
}
return true;
}
- isInstalled() {
- const test = Setting.get('installed');
- if (test === false) {
- return false;
- }
- return true;
- }
-
isLogged() {
const logged = Setting.get('isLogged');
const loggedTime = Setting.get('loggedTime');
@@ -162,6 +161,53 @@ class SyncController {
}
return false;
}
+
+ needSync(callback) {
+ NetInfo.fetch().then(state => {
+ if (state.isConnected) {
+ axios({
+ method: 'get',
+ url: this.getUrlBo() + '/version',
+ responseType: 'json',
+ params: {
+ token: api_token,
+ },
+ })
+ .then(response => {
+ const localVersion = Setting.get('version');
+ if (
+ localVersion === undefined ||
+ localVersion === false ||
+ localVersion.value !== response.data.version
+ ) {
+ return callback();
+ }
+ return false;
+ })
+ .catch(function (error) {
+ console.log(error);
+ });
+ }
+ return false;
+ });
+ return false;
+ }
+
+ setInstalled(remove = false) {
+ if (remove) {
+ Setting.delete('installed');
+ } else {
+ Setting.add({ key: 'installed', value: "true" });
+ }
+ }
+
+ isInstalled() {
+ const test = Setting.get('installed');
+ if (test === false || test === undefined) {
+ return false;
+ }
+ return true;
+ }
}
export default new SyncController();
\ No newline at end of file
diff --git a/ComApp/src/App/Lib/Helpers.js b/ComApp/src/App/Lib/Helpers.js
index e6a64a0..13d7fb1 100644
--- a/ComApp/src/App/Lib/Helpers.js
+++ b/ComApp/src/App/Lib/Helpers.js
@@ -1,11 +1,10 @@
class Helpers {
compareValues(key, order = 'asc') {
return function innerSort(a, b) {
- if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {
+ if (!(key in a) || !(key in b)) {
// property doesn't exist on either object
return 0;
}
-
const varA = (typeof a[key] === 'string')
? a[key].toUpperCase() : a[key];
const varB = (typeof b[key] === 'string')
@@ -29,7 +28,7 @@ class Helpers {
}
isUrlValid(value) {
- return /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(value);
+ return /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(value.toLowerCase());
}
generateUUID() { // Public Domain/MIT
diff --git a/ComApp/src/App/Models/Contact.js b/ComApp/src/App/Models/Contact.js
index 7b727c7..80c81d1 100644
--- a/ComApp/src/App/Models/Contact.js
+++ b/ComApp/src/App/Models/Contact.js
@@ -1,3 +1,29 @@
+export const ContactsSchema = {
+ name: 'Contacts',
+ primaryKey: 'id',
+ properties: {
+ id: 'int',
+ email: 'string',
+ type: 'string',
+ other: { type: 'string', optional: true },
+ select1: { type: 'string', optional: true },
+ select2: { type: 'string', optional: true },
+ name: 'string',
+ firstname: 'string',
+ company: { type: 'string', optional: true },
+ address: { type: 'string', optional: true },
+ phone: 'string',
+ products: { type: 'string', optional: true },
+ // TODO : card_url ?
+ notes: { type: 'string', optional: true },
+ visits: { type: 'string', optional: true },
+ user_id: 'int',
+ uniq_id: 'string',
+ to_delete: { type: 'bool', default: false },
+ synced: { type: 'bool', default: true },
+ },
+};
+
class ContactModel {
constructor(realm) {
this.schema = 'Contacts';
@@ -67,6 +93,15 @@ class ContactModel {
});
}
+ delete(key) {
+ const tmp = this.get(key);
+ if (typeof tmp === 'object') {
+ this.realm.write(() => {
+ this.realm.delete(tmp);
+ });
+ }
+ }
+
}
export default ContactModel;
diff --git a/ComApp/src/App/Models/Directory.js b/ComApp/src/App/Models/Directory.js
index 198da1d..8959ed7 100644
--- a/ComApp/src/App/Models/Directory.js
+++ b/ComApp/src/App/Models/Directory.js
@@ -1,3 +1,14 @@
+export const DirectoriesSchema = {
+ name: 'Directories',
+ primaryKey: 'id',
+ properties: {
+ id: 'int',
+ name: 'string',
+ parent: { type: 'int', optional: true },
+ order: 'int',
+ needAuthorization: 'int',
+ },
+};
class DirectoryModel {
constructor(realm) {
this.schema = 'Directories';
diff --git a/ComApp/src/App/Models/Document.js b/ComApp/src/App/Models/Document.js
index 7a8a516..d8cea91 100644
--- a/ComApp/src/App/Models/Document.js
+++ b/ComApp/src/App/Models/Document.js
@@ -1,3 +1,18 @@
+export const DocumentsSchema = {
+ name: 'Documents',
+ primaryKey: 'id',
+ properties: {
+ id: 'int',
+ uuid: 'string',
+ title: 'string',
+ type: 'string',
+ path: 'string',
+ directory: 'int',
+ lang: 'string',
+ updated_at: 'string',
+ },
+};
+
class DocumentModel {
constructor(realm) {
this.schema = 'Documents';
diff --git a/ComApp/src/App/Models/SendBrochure.js b/ComApp/src/App/Models/SendBrochure.js
index 62c55f7..8ef1827 100644
--- a/ComApp/src/App/Models/SendBrochure.js
+++ b/ComApp/src/App/Models/SendBrochure.js
@@ -1,3 +1,16 @@
+export const SendBrochuresSchema = {
+ name: 'SendBrochures',
+ primaryKey: 'id',
+ properties: {
+ id: 'int',
+ email: 'string',
+ subject: 'string',
+ message: 'string',
+ documents: 'string',
+ user_id: 'int'
+ },
+};
+
class SendBrochureModel {
constructor(realm) {
this.schema = 'SendBrochures';
@@ -59,6 +72,15 @@ class SendBrochureModel {
});
}
+ delete(key) {
+ const tmp = this.get(key);
+ if (typeof tmp === 'object') {
+ this.realm.write(() => {
+ this.realm.delete(tmp);
+ });
+ }
+ }
+
}
export default SendBrochureModel;
diff --git a/ComApp/src/App/Models/Setting.js b/ComApp/src/App/Models/Setting.js
index c67a416..210a4ea 100644
--- a/ComApp/src/App/Models/Setting.js
+++ b/ComApp/src/App/Models/Setting.js
@@ -1,3 +1,13 @@
+export const SettingsSchema = {
+ name: 'Settings',
+ primaryKey: 'id',
+ properties: {
+ id: 'int',
+ key: 'string',
+ value: 'string',
+ },
+};
+
class SettingModel {
constructor(realm) {
this.schema = 'Settings';
@@ -59,4 +69,4 @@ class SettingModel {
}
-export default SettingModel;
+export default SettingModel;
\ No newline at end of file
diff --git a/ComApp/src/App/Models/User.js b/ComApp/src/App/Models/User.js
index 6e6db47..a25f812 100644
--- a/ComApp/src/App/Models/User.js
+++ b/ComApp/src/App/Models/User.js
@@ -1,3 +1,17 @@
+export const UsersSchema = {
+ name: 'Users',
+ primaryKey: 'id',
+ properties: {
+ id: 'int',
+ email: 'string',
+ surname: 'string',
+ firstname: 'string',
+ password: 'string',
+ role: 'string',
+ authorizedFolders: 'string',
+ },
+};
+
class UserModel {
constructor(realm) {
this.schema = 'Users';
diff --git a/ComApp/src/App/Store/Actions/actionType.js b/ComApp/src/App/Store/Actions/actionType.js
new file mode 100644
index 0000000..a7688a0
--- /dev/null
+++ b/ComApp/src/App/Store/Actions/actionType.js
@@ -0,0 +1,14 @@
+// Locale
+export const INIT_LOCALE = "INIT_LOCALE";
+export const EDIT_LOCALE = "EDIT_LOCALE";
+// Users
+export const INIT_USERS = "INIT_USERS";
+// Contacts
+export const INIT_CONTACT = "INIT_CONTACT";
+export const ADD_CONTACT = "ADD_CONTACT";
+export const EDIT_CONTACT = "EDIT_CONTACT";
+export const DELETE_CONTACT = "DELETE_CONTACT";
+// Directories
+export const INIT_DIRECTORIES = "INIT_DIRECTORIES";
+// Documents
+export const INIT_DOCUMENTS = "INIT_DOCUMENTS";
\ No newline at end of file
diff --git a/ComApp/src/App/Store/Actions/contacts.js b/ComApp/src/App/Store/Actions/contacts.js
new file mode 100644
index 0000000..5e2946b
--- /dev/null
+++ b/ComApp/src/App/Store/Actions/contacts.js
@@ -0,0 +1,53 @@
+import { INIT_CONTACT, ADD_CONTACT, EDIT_CONTACT, DELETE_CONTACT } from "./actionType";
+
+/**
+ * Init contact
+ * @param {object} currentUser The currentUser
+ * @param {object} data The contact data
+ */
+export const initContact = (currentUser, data) => {
+ return {
+ type: INIT_CONTACT,
+ currentUser,
+ data,
+ };
+};
+
+/**
+ * Add contact
+ * @param {object} currentUser The currentUser
+ * @param {object} data The contact data
+ */
+export const addContact = (currentUser, data) => {
+ return {
+ type: ADD_CONTACT,
+ currentUser,
+ data,
+ };
+};
+
+/**
+ * Edit contact
+ * @param {object} currentUser The currentUser
+ * @param {object} data The contact data
+ */
+export const editContact = (currentUser, data) => {
+ return {
+ type: EDIT_CONTACT,
+ currentUser,
+ data,
+ };
+};
+
+/**
+ * Delete contact
+ * @param {object} currentUser The currentUser
+ * @param {string} id The contact id
+ */
+export const deleteContact = (currentUser, id) => {
+ return {
+ type: DELETE_CONTACT,
+ currentUser,
+ id,
+ };
+};
\ No newline at end of file
diff --git a/ComApp/src/App/Store/Actions/directories.js b/ComApp/src/App/Store/Actions/directories.js
new file mode 100644
index 0000000..1c43502
--- /dev/null
+++ b/ComApp/src/App/Store/Actions/directories.js
@@ -0,0 +1,16 @@
+import { INIT_DIRECTORIES } from "./actionType";
+
+/**
+ * Init
+ * @param {string} lang The lang
+ * @param {object} user User
+ * @param {object} data The document data
+ */
+export const initDirectories = (lang, user, data) => {
+ return {
+ type: INIT_DIRECTORIES,
+ lang,
+ user,
+ data,
+ };
+};
\ No newline at end of file
diff --git a/ComApp/src/App/Store/Actions/documents.js b/ComApp/src/App/Store/Actions/documents.js
new file mode 100644
index 0000000..87ae7c4
--- /dev/null
+++ b/ComApp/src/App/Store/Actions/documents.js
@@ -0,0 +1,16 @@
+import { INIT_DOCUMENTS } from "./actionType";
+
+/**
+ * Init contact
+ * @param {string} lang The lang
+ * @param {object} directories Directories
+ * @param {object} data The document data
+ */
+export const initDocuments = (lang, directories, data) => {
+ return {
+ type: INIT_DOCUMENTS,
+ lang,
+ directories,
+ data,
+ };
+};
\ No newline at end of file
diff --git a/ComApp/src/App/Store/Actions/locales.js b/ComApp/src/App/Store/Actions/locales.js
new file mode 100644
index 0000000..c7f108a
--- /dev/null
+++ b/ComApp/src/App/Store/Actions/locales.js
@@ -0,0 +1,23 @@
+import { INIT_LOCALE, EDIT_LOCALE } from "./actionType";
+
+/**
+ * Init locale
+ * @param {object} data The locale data
+ */
+export const initLocale = data => {
+ return {
+ type: INIT_LOCALE,
+ data,
+ };
+};
+
+/**
+ * Edit locale
+ * @param {object} data The locale data
+ */
+export const editLocale = data => {
+ return {
+ type: EDIT_LOCALE,
+ data,
+ };
+};
diff --git a/ComApp/src/App/Store/Actions/users.js b/ComApp/src/App/Store/Actions/users.js
new file mode 100644
index 0000000..49dfbf1
--- /dev/null
+++ b/ComApp/src/App/Store/Actions/users.js
@@ -0,0 +1,12 @@
+import { INIT_USERS } from "./actionType";
+
+/**
+ * Init users
+ * @param {object} data The users data
+ */
+export const initUsers = data => {
+ return {
+ type: INIT_USERS,
+ data,
+ };
+};
\ No newline at end of file
diff --git a/ComApp/src/App/Store/ConfigureStore.js b/ComApp/src/App/Store/ConfigureStore.js
index 489eb85..ff2244d 100644
--- a/ComApp/src/App/Store/ConfigureStore.js
+++ b/ComApp/src/App/Store/ConfigureStore.js
@@ -1,9 +1,19 @@
import { createStore, combineReducers } from "redux";
import appReducer from "./Reducers/AppReducer";
+import contactsReducer from "./Reducers/contacts";
+import documentsReducer from "./Reducers/documents";
+import directoriesReducer from "./Reducers/directories";
+import localesReducer from "./Reducers/locales";
+import usersReducer from "./Reducers/users";
const rootReducer = combineReducers({
- app: appReducer
+ app: appReducer,
+ contacts: contactsReducer,
+ documents: documentsReducer,
+ directories: directoriesReducer,
+ locale: localesReducer,
+ users: usersReducer
});
export const store = createStore(rootReducer);
\ No newline at end of file
diff --git a/ComApp/src/App/Store/Reducers/AppReducer.js b/ComApp/src/App/Store/Reducers/AppReducer.js
index afc9ddb..dbfed9d 100644
--- a/ComApp/src/App/Store/Reducers/AppReducer.js
+++ b/ComApp/src/App/Store/Reducers/AppReducer.js
@@ -1,94 +1,103 @@
import SyncController from "../../Controllers/SyncController";
// Database
-import { Setting, Contact, User, Directory, Document, SendBrochure } from '../../../Database';
-// Translations
-import i18n from "../../../I18n";
+import { Setting, SendBrochure } from '../../../Database';
const initialState = {
+ isSetup: false,
locale: 'fr',
- users: {},
- directories: {},
- documents: {},
- contacts: {},
- syncVersion: 0,
- logged: undefined,
currentUser: {},
+ logged: false,
+ syncVersion: 0,
+ forceSync: false,
currentOpenedDoc: {},
ShowIsActive: 0,
+ HomeBtns: {},
+ mainColor: '#D4021D',
+ FormSelect1: {},
+ FormSelect2: {},
+ FormCheck: [],
};
const reducer = (state = initialState, action) => {
+ let saved;
switch (action.type) {
case 'INIT':
- let directories = Directory.getAll(
- state.currentUser.role,
- state.currentUser.authorizedFolders,
- false,
- state.locale
- );
- let docs = Document.getAll(directories);
+ let ShowIsActive = Setting.get('ShowIsActive');
+ let MainColor = Setting.get('MainColor');
+ let FormSelect1 = Setting.get('FormSelect1');
+ let FormSelect2 = Setting.get('FormSelect2');
+ let FormCheck = Setting.get('FormCheck');
+ saved = Setting.get('isSetup');
return {
...state,
- users: User.getAll(),
- directories: Directory.getAll(
- state.currentUser.role,
- state.currentUser.authorizedFolders,
- true,
- state.locale
- ),
- documents: docs.filter(item => item.lang === state.locale),
- contacts: Contact.getByUser(state.currentUser.id),
- ShowIsActive: Setting.get('ShowIsActive')['value'],
+ isSetup: saved === undefined ? false : saved.value === "true" ? true : false,
+ ShowIsActive: ShowIsActive === undefined ? false : ShowIsActive.value,
+ mainColor: MainColor === undefined ? initialState.mainColor : MainColor === false ? initialState.mainColor : MainColor.value,
+ FormSelect1: FormSelect1 === undefined ? initialState.FormSelect1 : FormSelect1 === false ? initialState.FormSelect1 : JSON.parse(FormSelect1.value),
+ FormSelect2: FormSelect2 === undefined ? initialState.FormSelect2 : FormSelect2 === false ? initialState.FormSelect2 : JSON.parse(FormSelect2.value),
+ FormCheck: FormCheck === undefined ? initialState.FormCheck : FormCheck === false ? initialState.FormCheck : JSON.parse(FormCheck.value),
};
- case 'INIT_USERS':
+ case 'INIT_HOME_BTNS': {
+ let HomeFolders = Setting.get('HomeFolders');
+ let Btns = JSON.parse(HomeFolders.value);
return {
...state,
- users: User.getAll(),
+ HomeBtns: Btns
+ }
+ }
+ case 'SET_ISSETUP':
+ Setting.upsert({ key: 'isSetup', value: "true" });
+ saved = Setting.get('isSetup');
+ return {
+ ...state,
+ isSetup: saved === undefined ? false : saved.value === "true" ? true : false
};
case 'SET_CURRENT_USER':
- return {
- ...state,
- currentUser: JSON.parse(action.data),
- };
- case 'SET_LOGGED':
+ let user = false;
+ let isLogged = false;
if (action.data === false) {
Setting.delete('isLogged');
- }
- return {
- ...state,
- logged: action.data,
- };
- case 'UPDATE_LOCALE':
- let nxt;
- if (action.data === undefined) {
- const availableLocales = ['fr', 'en', 'de'];
- if (availableLocales.indexOf(i18n.locale) === availableLocales.length - 1) {
- nxt = availableLocales[0];
- } else {
- nxt = availableLocales[availableLocales.indexOf(i18n.locale) + 1];
- }
} else {
- nxt = action.data;
+ userObj = Setting.get('isLogged').value
+ user = JSON.parse(userObj)
+ isLogged = true
}
- i18n.locale = nxt;
- Setting.upsert({ key: 'locale', value: nxt });
- let docsL = Document.getAll(Directory.getAll(
- state.currentUser.role,
- state.currentUser.authorizedFolders,
- false,
- nxt
- ));
return {
...state,
- locale: nxt,
- directories: Directory.getAll(
- state.currentUser.role,
- state.currentUser.authorizedFolders,
- true,
- nxt
- ),
- documents: docsL.filter(item => item.lang === nxt),
+ currentUser: user !== false ? user : initialState.currentUser,
+ logged: isLogged
};
+ // case 'UPDATE_LOCALE':
+ // let nxt;
+ // if (action.data === undefined) {
+ // const availableLocales = ['fr', 'en', 'de'];
+ // if (availableLocales.indexOf(i18n.locale) === availableLocales.length - 1) {
+ // nxt = availableLocales[0];
+ // } else {
+ // nxt = availableLocales[availableLocales.indexOf(i18n.locale) + 1];
+ // }
+ // } else {
+ // nxt = action.data;
+ // }
+ // i18n.locale = nxt;
+ // Setting.upsert({ key: 'locale', value: nxt });
+ // let docsL = Document.getAll(Directory.getAll(
+ // state.currentUser.role,
+ // state.currentUser.authorizedFolders,
+ // false,
+ // nxt
+ // ));
+ // return {
+ // ...state,
+ // locale: nxt,
+ // directories: Directory.getAll(
+ // state.currentUser.role,
+ // state.currentUser.authorizedFolders,
+ // true,
+ // nxt
+ // ),
+ // documents: docsL.filter(item => item.lang === nxt),
+ // };
case 'SET_CURRENT_OPENED_DOC':
return {
...state,
@@ -105,24 +114,6 @@ const reducer = (state = initialState, action) => {
...state,
ShowIsActive: action.data,
};
- case 'UPDATE_CONTACT':
- Contact.update(action.data);
- return {
- ...state,
- contacts: Contact.getByUser(state.currentUser.id),
- };
- case 'ADD_CONTACT':
- Contact.add(action.data);
- return {
- ...state,
- contacts: Contact.getByUser(state.currentUser.id),
- };
- case 'DELETE_CONTACT':
- Contact.delete(action.data);
- return {
- ...state,
- contacts: Contact.getByUser(state.currentUser.id),
- };
case 'SEND_BROCHURE':
SendBrochure.add(action.data);
return state;
diff --git a/ComApp/src/App/Store/Reducers/contacts.js b/ComApp/src/App/Store/Reducers/contacts.js
new file mode 100644
index 0000000..88edb0c
--- /dev/null
+++ b/ComApp/src/App/Store/Reducers/contacts.js
@@ -0,0 +1,32 @@
+import { INIT_CONTACT, ADD_CONTACT, EDIT_CONTACT, DELETE_CONTACT } from "../Actions/actionType";
+// Models
+import { Contact } from "../../../Database";
+
+const initialState = [];
+
+const reducer = (state = initialState, action) => {
+ switch (action.type) {
+ case INIT_CONTACT: {
+ return Contact.getByUser(action.currentUser.id);
+ }
+ case ADD_CONTACT: {
+ action.data.user_id = action.currentUser.id;
+ Contact.add(action.data);
+ return Contact.getByUser(action.currentUser.id);
+ }
+ case EDIT_CONTACT: {
+ Contact.update(action.data);
+ return Contact.getByUser(action.currentUser.id);
+ }
+ case DELETE_CONTACT: {
+ Contact.delete(action.id);
+ return Contact.getByUser(action.currentUser.id);
+ }
+
+ default: {
+ return state;
+ }
+ }
+};
+
+export default reducer;
diff --git a/ComApp/src/App/Store/Reducers/directories.js b/ComApp/src/App/Store/Reducers/directories.js
new file mode 100644
index 0000000..a2b7c31
--- /dev/null
+++ b/ComApp/src/App/Store/Reducers/directories.js
@@ -0,0 +1,32 @@
+import { INIT_DIRECTORIES } from "../Actions/actionType";
+// Models
+import { Directory } from "../../../Database";
+
+const initialState = [];
+
+const reducer = (state = initialState, action) => {
+ switch (action.type) {
+ case INIT_DIRECTORIES: {
+ return {
+ global: Directory.getAll(
+ action.user.role,
+ action.user.authorizedFolders,
+ false,
+ action.lang
+ ),
+ treeview: Directory.getAll(
+ action.user.role,
+ action.user.authorizedFolders,
+ true,
+ action.lang
+ )
+ }
+ }
+
+ default: {
+ return state;
+ }
+ }
+};
+
+export default reducer;
diff --git a/ComApp/src/App/Store/Reducers/documents.js b/ComApp/src/App/Store/Reducers/documents.js
new file mode 100644
index 0000000..09fef74
--- /dev/null
+++ b/ComApp/src/App/Store/Reducers/documents.js
@@ -0,0 +1,23 @@
+import { INIT_DOCUMENTS } from "../Actions/actionType";
+// Models
+import { Document } from "../../../Database";
+
+const initialState = [];
+
+const reducer = (state = initialState, action) => {
+ switch (action.type) {
+ case INIT_DOCUMENTS: {
+ let docs = Document.getAll(action.directories);
+ if (docs.length === 0) {
+ return state
+ }
+ return docs.filter(item => item.lang === action.lang);
+ }
+
+ default: {
+ return state;
+ }
+ }
+};
+
+export default reducer;
diff --git a/ComApp/src/App/Store/Reducers/locales.js b/ComApp/src/App/Store/Reducers/locales.js
new file mode 100644
index 0000000..5ad4852
--- /dev/null
+++ b/ComApp/src/App/Store/Reducers/locales.js
@@ -0,0 +1,45 @@
+import { INIT_LOCALE, EDIT_LOCALE } from "../Actions/actionType";
+// Models
+import { Setting } from "../../../Database";
+// Translations
+import i18n from "../../../I18n";
+
+const initialState = [];
+
+const reducer = (state = initialState, action) => {
+ switch (action.type) {
+ case INIT_LOCALE: {
+ const savedLocale = Setting.get('locale');
+ return {
+ ...state,
+ locale: savedLocale === undefined ? 'fr' : savedLocale === false ? 'fr' : savedLocale.value
+ };
+ }
+
+ case EDIT_LOCALE: {
+ let nxt;
+ if (action.data === undefined) {
+ const availableLocales = ['fr', 'en', 'de'];
+ if (availableLocales.indexOf(i18n.locale) === availableLocales.length - 1) {
+ nxt = availableLocales[0];
+ } else {
+ nxt = availableLocales[availableLocales.indexOf(i18n.locale) + 1];
+ }
+ } else {
+ nxt = action.data;
+ }
+ i18n.locale = nxt;
+ Setting.upsert({ key: 'locale', value: nxt });
+ return {
+ ...state,
+ locale: nxt,
+ };
+ }
+
+ default: {
+ return state;
+ }
+ }
+};
+
+export default reducer;
diff --git a/ComApp/src/App/Store/Reducers/users.js b/ComApp/src/App/Store/Reducers/users.js
new file mode 100644
index 0000000..42494e8
--- /dev/null
+++ b/ComApp/src/App/Store/Reducers/users.js
@@ -0,0 +1,22 @@
+import { INIT_USERS } from "../Actions/actionType";
+// Models
+import { User } from "../../../Database";
+
+const initialState = [];
+
+const reducer = (state = initialState, action) => {
+ switch (action.type) {
+ case INIT_USERS: {
+ return {
+ ...state,
+ users: User.getAll(),
+ };
+ }
+
+ default: {
+ return state;
+ }
+ }
+};
+
+export default reducer;
diff --git a/ComApp/src/App/Views/ContactDetailsScreen.js b/ComApp/src/App/Views/ContactDetailsScreen.js
index 2959a9e..0b998ea 100644
--- a/ComApp/src/App/Views/ContactDetailsScreen.js
+++ b/ComApp/src/App/Views/ContactDetailsScreen.js
@@ -10,6 +10,7 @@ import {
} from 'react-native';
// Reduxs
import { connect } from 'react-redux';
+import { addContact, editContact } from '../Store/Actions/contacts';
// Helpers
import Helpers from "../Lib/Helpers";
// Translations
@@ -31,11 +32,23 @@ import { BarCodeScanner } from 'expo-barcode-scanner';
function mapStateToProps(state) {
return {
- contacts: state.app.contacts,
+ locale: state.locale.locale,
+ contacts: state.contacts,
currentUser: state.app.currentUser,
+ mainColor: state.app.mainColor,
+ FormSelect1: state.app.FormSelect1,
+ FormSelect2: state.app.FormSelect2,
+ FormCheck: state.app.FormCheck,
};
}
+const mapDispatchToProps = dispatch => {
+ return {
+ addContact: (user, data) => dispatch(addContact(user, data)),
+ editContact: (user, data) => dispatch(editContact(user, data))
+ };
+};
+
let date = new Date().getDate();
if (date < 10) {
date = '0' + date.toString();
@@ -69,15 +82,7 @@ class ContactDetailsScreen extends React.Component {
clientChecked: false,
prospectChecked: false,
otherChecked: false,
- p1: false,
- p2: false,
- p3: false,
- p4: false,
- p5: false,
- p6: false,
- p7: false,
- p8: false,
- p9: false,
+ productsCheck: [],
showQRcodevCard: false,
parsedType: null,
parsedDatas: [],
@@ -131,17 +136,6 @@ class ContactDetailsScreen extends React.Component {
{ cancelable: false },
);
} else {
- const products = [
- this.state.p1,
- this.state.p2,
- this.state.p3,
- this.state.p4,
- this.state.p5,
- this.state.p6,
- this.state.p7,
- this.state.p8,
- this.state.p9
- ];
const contact = {
id: Helpers.generateUUID(),
email: this.state.tmpEmail,
@@ -154,7 +148,7 @@ class ContactDetailsScreen extends React.Component {
company: this.state.tmpCompany,
address: this.state.tmpAddress,
phone: this.state.tmpPhone,
- products: JSON.stringify(products),
+ products: JSON.stringify(this.state.productsCheck),
notes: this.state.tmpNote,
visits: JSON.stringify(this.state.visits),
to_delete: false,
@@ -162,7 +156,7 @@ class ContactDetailsScreen extends React.Component {
};
if (action === 'edit') {
contact.id = this.state.tmpID;
- this.props.dispatch({ type: 'UPDATE_CONTACT', data: contact });
+ this.props.editContact(this.props.currentUser, contact);
this.populate();
showMessage({
message: i18n.t('contact_details_s.contact_saved') + '.',
@@ -170,8 +164,7 @@ class ContactDetailsScreen extends React.Component {
duration: 500,
});
} else {
- contact.user_id = this.props.currentUser.id;
- this.props.dispatch({ type: 'ADD_CONTACT', data: contact });
+ this.props.addContact(this.props.currentUser, contact);
this.props.navigation.navigate('ContactScreen', { contactAdded: true });
}
}
@@ -261,7 +254,6 @@ class ContactDetailsScreen extends React.Component {
tmpSelect1: contact.select1,
tmpSelect2: contact.select2,
tmpOther: contact.other,
- tmpProducts: contact.product,
});
if (contact.type === 'client') {
this.setState({ clientChecked: true });
@@ -279,18 +271,7 @@ class ContactDetailsScreen extends React.Component {
}
if (contact.products !== null) {
const tmp = JSON.parse(contact.products);
- this.setState({
- p1: tmp[0],
- p2: tmp[1],
- p3: tmp[2],
- p4: tmp[3],
- p5: tmp[4],
- p6: tmp[5],
- p7: tmp[6],
- p8: tmp[7],
- p9: tmp[8],
- p10: tmp[9],
- });
+ this.setState({ productsCheck: tmp });
}
}
@@ -354,7 +335,7 @@ class ContactDetailsScreen extends React.Component {
justifyContent: 'center',
}}>
this.updateContactType('client')}
/>
this.updateContactType('prospect')}
/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ {this.renderSelect(1)}
@@ -487,19 +447,8 @@ class ContactDetailsScreen extends React.Component {
this.setState({ tmpSelect2: itemValue });
}
}}>
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ {this.renderSelect(2)}
@@ -509,41 +458,14 @@ class ContactDetailsScreen extends React.Component {
flexWrap: 'wrap',
justifyContent: 'center',
}}>
- this.setState({ p1: !this.state.p1 })}
- containerStyle={styles.clearCheckbox}
- />
- this.setState({ p2: !this.state.p2 })}
- containerStyle={styles.clearCheckbox}
- />
- this.setState({ p3: !this.state.p3 })}
- containerStyle={styles.clearCheckbox}
- />
- this.setState({ p4: !this.state.p4 })}
- containerStyle={styles.clearCheckbox}
- />
+ {this.renderProductsCheck()}
this.setState({ selectedIndex: index })}
@@ -595,13 +517,13 @@ class ContactDetailsScreen extends React.Component {
this.setState({ showNewVisit: true })}>
-
+
{this.state.visits.length > 0 && (
this.deleteVisit()}>
-
+
)}
@@ -634,10 +556,10 @@ class ContactDetailsScreen extends React.Component {
{this.state.action === 'add' && (
<>
-
this.setState({ showNewVisit: false })}
- color={'#ea4f52'}
+ color={this.props.mainColor}
/>
- this.newVisit()} color={'#ea4f52'} />
+ this.newVisit()} color={this.props.mainColor} />
@@ -707,9 +629,9 @@ class ContactDetailsScreen extends React.Component {
this.setState({ showQRcodevCard: false, scanned: false })}
- color={'#ea4f52'}
+ color={this.props.mainColor}
/>
- {this.state.scanned && this.setState({ scanned: false })} color={'#ea4f52'} />}
+ {this.state.scanned && this.setState({ scanned: false })} color={this.props.mainColor} />}
@@ -814,7 +736,7 @@ class ContactDetailsScreen extends React.Component {
this.setState({ showDynContact: false, scanned: false, parsedName: '', parsedFirstname: '', parsedEmail: '', parsedCompany: '', parsedAddress: '', parsedPhone: '' })}
- color={'#ea4f52'}
+ color={this.props.mainColor}
/>
@@ -842,6 +764,43 @@ class ContactDetailsScreen extends React.Component {
);
}
+
+ renderSelect(num) {
+ let objSelect = {};
+ let locale = this.props.locale;
+ if (num === 1) {
+ objSelect = this.props.FormSelect1.values;
+ } else if (num === 2) {
+ objSelect = this.props.FormSelect2.values;
+ }
+ return Object.keys(objSelect).map((item) => {
+ return (
+
+ )
+ });
+ }
+
+ renderProductsCheck() {
+ let locale = this.props.locale;
+ let obj = obj = this.props.FormCheck;
+ return Object.keys(obj).map((item) => {
+ return (
+ {
+ let pc = this.state.productsCheck;
+ pc[item] = !pc[item]
+ console.log(pc)
+ this.setState({ productsCheck: pc });
+ }}
+ containerStyle={styles.clearCheckbox}
+ />
+ )
+ });
+ }
}
-export default connect(mapStateToProps)(ContactDetailsScreen);
+export default connect(mapStateToProps, mapDispatchToProps)(ContactDetailsScreen);
diff --git a/ComApp/src/App/Views/ContactScreen.js b/ComApp/src/App/Views/ContactScreen.js
index 0895672..7a14e45 100644
--- a/ComApp/src/App/Views/ContactScreen.js
+++ b/ComApp/src/App/Views/ContactScreen.js
@@ -10,6 +10,8 @@ import {
} from 'react-native';
// Reduxs
import { connect } from 'react-redux';
+import { editContact } from '../Store/Actions/contacts';
+import { deleteContact } from '../Store/Actions/contacts';
// Helpers
import Helpers from "../Lib/Helpers";
// Translations
@@ -27,13 +29,22 @@ import styles from '../../Resources/Styles/ContactStyle';
function mapStateToProps(state) {
return {
- users: state.app.users,
- contacts: state.app.contacts,
- documents: state.app.documents,
+ users: state.users.users,
+ contacts: state.contacts,
+ documents: state.documents,
currentUser: state.app.currentUser,
+ mainColor: state.app.mainColor
};
}
+const mapDispatchToProps = dispatch => {
+ return {
+ editContact: (user, data) => dispatch(editContact(user, data)),
+ deleteContact: (user, id) => dispatch(deleteContact(user, id)),
+ sendBrochure: (email) => dispatch({ type: 'SEND_BROCHURE', data: email })
+ };
+};
+
class ContactScreen extends React.Component {
state = {
contacts: [],
@@ -69,7 +80,7 @@ class ContactScreen extends React.Component {
documents: JSON.stringify(this.state.sendDocumentList),
user_id: this.props.currentUser.id
};
- this.props.dispatch({ type: 'SEND_BROCHURE', data: email });
+ this.props.sendBrochure(email);
this.setState({
showSendBrochure: false,
tmpSendBrochureEmail: '',
@@ -115,7 +126,7 @@ class ContactScreen extends React.Component {
synced: false,
user_id: nextUser.id,
};
- this.props.dispatch({ type: 'UPDATE_CONTACT', data: contact });
+ this.props.editContact(this.props.currentUser, contact);
this.setState({ showTransferContact: false });
showMessage({
message: i18n.t('contact_s.contact_transferred') + '.',
@@ -125,7 +136,7 @@ class ContactScreen extends React.Component {
});
}
- deleteContact(id) {
+ deleteContactAction(id) {
Alert.alert(
i18n.t('global.confirmation'),
i18n.t('contact_s.confirm_contact_delete'),
@@ -139,7 +150,7 @@ class ContactScreen extends React.Component {
text: i18n.t('global.yes'),
onPress: () => {
this.setState({ contacts: [], sortedEmails: [] });
- this.props.dispatch({ type: 'DELETE_CONTACT', data: id });
+ this.props.deleteContact(this.props.currentUser, id);
showMessage({
message: i18n.t('contact_s.contact_deleted') + '.',
type: 'success',
@@ -162,7 +173,7 @@ class ContactScreen extends React.Component {
contactId: item.id,
})
}>
-
+
{item.name.toUpperCase()} {item.firstname}
@@ -172,9 +183,9 @@ class ContactScreen extends React.Component {
{
- this.deleteContact(item.id);
+ this.deleteContactAction(item.id);
}}>
-
+
-
+
@@ -211,12 +222,12 @@ class ContactScreen extends React.Component {
{
this.sortContacts('name');
}}>
- {i18n.t('global.name')}
+ {i18n.t('global.name')}
{
this.sortContacts('company');
}}>
- {i18n.t('global.company')}
+ {i18n.t('global.company')}
{i18n.t('global.email')}
@@ -272,7 +283,12 @@ class ContactScreen extends React.Component {
}
render() {
- const { contactAdded } = this.props.route.params;
+ const { contactAdded, action } = this.props.route.params;
+ if (action === 'add') {
+ this.props.navigation.navigate('ContactDetailsScreen', {
+ action: 'add',
+ })
+ }
if (contactAdded === true) {
this.props.navigation.setParams({ contactAdded: false });
showMessage({
@@ -291,7 +307,7 @@ class ContactScreen extends React.Component {
alignItems: 'center',
}}>
this.props.navigation.navigate('ContactDetailsScreen', {
@@ -300,13 +316,13 @@ class ContactScreen extends React.Component {
}
/>
this.setState({ showSendBrochure: true })}
/>
this.handleSearchTxt(text)} />
- this.handleSearchBtn()}>
+ this.handleSearchBtn()}>
{this.state.searchTxt.length > 0 ? (
) : (
@@ -354,12 +370,12 @@ class ContactScreen extends React.Component {
width: 400,
}}>
this.setState({ showTransferContact: false })}
/>
this.transferContact()}
/>
@@ -480,6 +496,7 @@ class ContactScreen extends React.Component {
{this.state.sendDocumentList.map((item, index) => {
return (
{
let tmp = this.state.sendDocumentList;
tmp.splice(this.props.documents[index], 1);
@@ -514,7 +531,7 @@ class ContactScreen extends React.Component {
marginTop: 15,
}}>
this.setState({
@@ -528,7 +545,7 @@ class ContactScreen extends React.Component {
})
}
/>
- this.sendBrochure()} color={'#ea4f52'} />
+ this.sendBrochure()} color={this.props.mainColor} />
@@ -537,4 +554,4 @@ class ContactScreen extends React.Component {
}
}
-export default connect(mapStateToProps)(ContactScreen);
+export default connect(mapStateToProps, mapDispatchToProps)(ContactScreen);
diff --git a/ComApp/src/App/Views/DirectoriesScreen.js b/ComApp/src/App/Views/DirectoriesScreen.js
index 8dcee02..7b3e600 100644
--- a/ComApp/src/App/Views/DirectoriesScreen.js
+++ b/ComApp/src/App/Views/DirectoriesScreen.js
@@ -8,6 +8,7 @@ import {
} from 'react-native';
// Redux
import { connect } from 'react-redux';
+import { initDocuments } from '../Store/Actions/documents';
// Treeview
import TreeView from 'react-native-animated-tree-view';
// Icon
@@ -19,7 +20,10 @@ import styles from '../../Resources/Styles/DirectoriesStyle';
function mapStateToProps(state) {
return {
- documents: state.app.documents,
+ documents: state.documents,
+ directories: state.directories,
+ locale: state.locale.locale,
+ mainColor: state.app.mainColor
};
}
@@ -34,7 +38,7 @@ class DirectoriesScreen extends React.Component {
return (
this.openDocument(document)}>
{document.type === 'pdf' ? (
diff --git a/ComApp/src/App/Views/HomeScreen.js b/ComApp/src/App/Views/HomeScreen.js
index e593185..af2fa8c 100644
--- a/ComApp/src/App/Views/HomeScreen.js
+++ b/ComApp/src/App/Views/HomeScreen.js
@@ -4,40 +4,93 @@ import { View, ImageBackground, TouchableOpacity, Text, Image } from 'react-nati
import commonStyles from '../../Resources/CommonStyles';
// Redux
import { connect } from 'react-redux';
+import { initDocuments } from '../Store/Actions/documents';
+import { initContact } from '../Store/Actions/contacts';
+import { initDirectories } from '../Store/Actions/directories';
+// SplashScreen
+import * as SplashScreen from 'expo-splash-screen';
// Style
import styles from '../../Resources/Styles/HomeStyle';
// Translations
import i18n from "../../I18n";
// FileSytem
import * as FileSystem from 'expo-file-system';
+// NetInfo
+import NetInfo from '@react-native-community/netinfo';
+// Controller
+import SyncController from '../Controllers/SyncController';
function mapStateToProps(state) {
return {
- directories: state.app.directories,
- locale: state.app.locale,
+ btns: state.app.HomeBtns,
+ directories: state.directories,
+ locale: state.locale.locale,
+ currentUser: state.app.currentUser
};
}
+const mapDispatchToProps = dispatch => {
+ return {
+ initBtns: () => dispatch({ type: 'INIT_HOME_BTNS' }),
+ initDocuments: (lang, directories) => dispatch(initDocuments(lang, directories)),
+ initContact: currentUser => dispatch(initContact(currentUser)),
+ initDirectories: (lang, user) => dispatch(initDirectories(lang, user)),
+
+ };
+};
+
class HomeScreen extends React.Component {
+ state = {
+ lastSyncCall: '1970-01-01',
+ };
+
componentDidMount() {
- this.props.dispatch({ type: 'INIT' });
+ if (!SyncController.isInstalled()) {
+ return this.openSync();
+ }
+ this.props.initBtns();
+ this.props.initContact(this.props.currentUser);
+ this.props.initDirectories(this.props.locale, this.props.currentUser);
+ this.props.initDocuments(this.props.locale, this.props.directories.global);
+
+ SplashScreen.hideAsync();
+ }
+
+ unsubscribe() {
+ NetInfo.addEventListener(state => {
+ if (state.isConnected === true) {
+ let seconds =
+ Math.abs(new Date(this.state.lastSyncCall) - Date.now()) / 1000;
+ if (seconds > 30) {
+ this.setState({ lastSyncCall: Date.now() });
+ SyncController.needSync(this.openSync.bind(this));
+ }
+ }
+ });
+ }
+
+ openSync() {
+ this.props.navigation.navigate('SyncScreen', { forceSync: true });
}
render() {
i18n.locale = this.props.locale;
return (
-
+
- this.openFolder(2)} style={styles.button}>
+ {this.renderBtns()}
+ {
+ this.props.initDocuments(this.props.locale, this.props.directories.global);
+ this.props.navigation.navigate('OnlyVideosScreen');
+ }}
+ style={styles.button}>
{i18n.t('global.videos')}
- this.props.navigation.navigate('OnlyVideosScreen')} style={styles.button}>
-
- {i18n.t('global.videos')}
-
- this.props.navigation.navigate('ContactScreen')} style={styles.button}>
+ this.props.navigation.navigate('ContactScreen')} style={styles.button}>
{i18n.t('global.contacts')}
@@ -46,10 +99,27 @@ class HomeScreen extends React.Component {
);
}
+ renderBtns() {
+ let locale = this.props.locale;
+ let objBtns = this.props.btns;
+ let array = Object.keys(objBtns).map(function (key) { return objBtns[key]; });
+ return array.map((item, index) => {
+ let names = JSON.parse(item.name);
+ let name = (locale in names) ? names[locale] : names.fr;
+ return (
+ this.openFolder(item.id)} style={styles.button}>
+
+ {name}
+
+ )
+ });
+ }
+
openFolder(id) {
- const folder = this.props.directories.filter(tmp => tmp.id === id);
+ this.props.initDocuments(this.props.locale, this.props.directories.global);
+ const folder = this.props.directories.treeview.filter(tmp => tmp.id === id);
this.props.navigation.navigate('DirectoriesScreen', { folder: folder });
}
}
-export default connect(mapStateToProps)(HomeScreen);
\ No newline at end of file
+export default connect(mapStateToProps, mapDispatchToProps)(HomeScreen);
\ No newline at end of file
diff --git a/ComApp/src/App/Views/InstallScreen.js b/ComApp/src/App/Views/InstallScreen.js
index 3bf1965..127f51d 100644
--- a/ComApp/src/App/Views/InstallScreen.js
+++ b/ComApp/src/App/Views/InstallScreen.js
@@ -1,7 +1,15 @@
import React from 'react';
import { ImageBackground, View, Image, Text, TextInput, Button, Alert } from 'react-native';
+// Redux
+import { connect } from 'react-redux';
+// Sentry
+import * as Sentry from "@sentry/react-native";
+// SplashScreen
+import * as SplashScreen from 'expo-splash-screen';
// Helpers
import Helpers from '../Lib/Helpers';
+// Lodash
+import _ from 'lodash';
// Common Styles
import commonStyles from '../../Resources/CommonStyles';
// Style
@@ -11,21 +19,45 @@ import i18n from "../../I18n";
// Controller
import InstallController from '../Controllers/InstallController';
import SyncController from '../Controllers/SyncController';
+// Database
+import { User, Setting } from '../../Database';
+// FileSytem
+import * as FileSystem from 'expo-file-system';
+function mapStateToProps(state) {
+ return {
+ isSetup: state.app.isSetup,
+ locale: state.locale.locale,
+ };
+}
+
+const mapDispatchToProps = dispatch => {
+ return {
+ setIsSetup: () => dispatch({ type: 'SET_ISSETUP' }),
+ init: () => dispatch({ type: 'INIT' })
+ };
+};
class InstallScreen extends React.Component {
state = {
processing: false,
txtStep: '',
- url: "https://dev-app.rhd-ldc.fr",
+ url: "",
+ }
+
+ componentDidMount() {
+ SplashScreen.hideAsync();
}
render() {
+ i18n.locale = this.props.locale;
return (
this.setState({ url: newText })}
@@ -58,16 +90,102 @@ class InstallScreen extends React.Component {
);
}
- install() {
- this.setState({ processing: true, txtStep: i18n.t("install.get_app_setting") });
- if (InstallController.getConfig(this.state.url)) {
- this.setState({ txtStep: i18n.t("install.get_content_setting") });
- if (InstallController.getAppConfig(this.state.url)) {
- this.props.navigation.navigate('SyncScreen', { forceSync: true });
- }
+ async install() {
+ let url = this.state.url.toLowerCase();
+ Setting.upsert({ key: 'bo_url', value: url });
+ const isConnected = await SyncController.checkConnection().then(state => {
+ //console.log(state.isConnected)
+ return state.isConnected
+ }).catch(error => {
+ //console.log(error);
+ return false;
+ });
+ if (!isConnected) {
+ Alert.alert(
+ i18n.t('global.warning'),
+ i18n.t('error.must_be_connected_internet_sync')
+ );
+ return;
}
- this.setState({ processing: false });
+ this.setState({ processing: true, txtStep: i18n.t("install.get_app_setting") });
+ const toDL = await InstallController.getConfig(url).then(response => {
+ let toDL = [];
+ if (response.data) {
+ if (response.data.status === "OK") {
+ _.forEach(response.data.datas, function (value, key) {
+ switch (key) {
+ case "MainColor":
+ case "AppStoreUUID":
+ case "FormSelect1":
+ case "FormSelect2":
+ case "FormCheck":
+ Setting.upsert({ key: key, value: value });
+ break;
+ case "SquaredLogo":
+ case "RectangleLogo":
+ case "BackgroundImage":
+ case "HomeButtonImage":
+ toDL.push({
+ source: url + "/" + value,
+ dest: FileSystem.documentDirectory + key + '.png'
+ });
+ break;
+ }
+ });
+ return toDL;
+ } else {
+ Alert.alert(i18n.t("alert.error"), i18n.t("error.error_has_occurred"));
+ return false;
+ }
+ }
+ }).catch(function (error) {
+ Sentry.captureException(error);
+ Alert.alert(i18n.t("alert.error"), i18n.t("error.error_has_occurred"));
+ return false;
+ });
+ if (!toDL) {
+ this.setState({ processing: false, txtStep: "" });
+ return false;
+ }
+ for await (const file of toDL) {
+ await FileSystem.downloadAsync(
+ file.source,
+ file.dest
+ )
+ .then(({ uri }) => {
+ console.log('Finished downloading to ', uri);
+ })
+ .catch(error => {
+ Alert.alert(i18n.t("alert.error"), i18n.t("install.resource_dl_error") + file.dest);
+ console.error(error);
+ return false;
+ });
+ }
+
+ this.setState({ txtStep: i18n.t("install.get_content_setting") });
+ if (InstallController.getAppConfig(url)) {
+ // getUsers
+ this.setState({ txtStep: i18n.t('sync_s.updating_users') + '...' });
+ const resUsers = await SyncController.getUsers().then(res => {
+ User.clear();
+ return res.data;
+ }).catch(error => {
+ console.log(error);
+ Alert.alert(
+ i18n.t('error.error'),
+ i18n.t('error.error_has_occurred')
+ );
+ return
+ });
+ resUsers.forEach(user => {
+ User.add(user);
+ });
+ this.props.init();
+ this.props.setIsSetup();
+ this.props.navigation.navigate('LoginScreen');
+ }
+ this.setState({ processing: false, txtStep: "" });
}
}
-export default InstallScreen;
\ No newline at end of file
+export default connect(mapStateToProps, mapDispatchToProps)(InstallScreen);
\ No newline at end of file
diff --git a/ComApp/src/App/Views/LoginScreen.js b/ComApp/src/App/Views/LoginScreen.js
index a5f5a08..fe2e430 100644
--- a/ComApp/src/App/Views/LoginScreen.js
+++ b/ComApp/src/App/Views/LoginScreen.js
@@ -1,6 +1,9 @@
import React from 'react';
import { View, ImageBackground, TextInput, Button, Image, Alert } from 'react-native';
+// Redux
import { connect } from 'react-redux';
+// SplashScreen
+import * as SplashScreen from 'expo-splash-screen';
// Common Styles
import commonStyles from '../../Resources/CommonStyles';
// Style
@@ -17,17 +20,32 @@ import SyncController from '../Controllers/SyncController';
function mapStateToProps(state) {
return {
- users: state.app.users,
- locale: state.app.locale,
+ app: state.app,
+ users: state.users.users,
+ locale: state.locale.locale,
+ mainColor: state.app.mainColor
};
}
+const mapDispatchToProps = dispatch => {
+ return {
+ setCurrentUser: () => dispatch({ type: 'SET_CURRENT_USER' }),
+ };
+};
+
class LoginScreen extends React.Component {
state = {
- login: 'v@b.t',
- password: 'test',
+ login: '',
+ password: '',
};
+ componentDidMount() {
+ if (SyncController.isLogged()) {
+ this.props.setCurrentUser(false);
+ }
+ SplashScreen.hideAsync();
+ }
+
render() {
return (
@@ -54,8 +72,8 @@ class LoginScreen extends React.Component {
/>
this.login(this.state.login, this.state.password)}
- color={'#ea4f52'}
+ onPress={() => this.login(this.state.login.toLowerCase(), this.state.password)}
+ color={this.props.mainColor}
/>
@@ -63,7 +81,7 @@ class LoginScreen extends React.Component {
);
}
- login(login, password) {
+ async login(login, password) {
if (login === '' || password === '') {
Alert.alert(i18n.t("global.warning"), i18n.t('error.must_fill_login_fields'));
return;
@@ -84,39 +102,50 @@ class LoginScreen extends React.Component {
Alert.alert(i18n.t('error.error'), i18n.t('error.incorrect_credentials'));
return;
}
+ const isConnected = await SyncController.checkConnection().then(state => {
+ //console.log(state.isConnected)
+ return state.isConnected
+ }).catch(error => {
+ //console.log(error);
+ return false;
+ });
const lastUser = Setting.get('lastUser');
- if (lastUser === false || lastUser === undefined || lastUser.value === user.id.toString()) {
- this.loginAction(user);
- } else {
- // Si user !== last user && last user not synced
- if (lastUser.value !== user.id.toString() && !SyncController.isSynced()) {
- Alert.alert(i18n.t('error.error'), i18n.t('error.tablet_not_synced_last_user'));
+ // Si on est sur une installation
+ if (lastUser === false || lastUser == undefined) {
+ // Si la tablette est connectée à internet pour forcer la synchro
+ if (!isConnected) {
+ Alert.alert(i18n.t('error.error'), i18n.t('error.tablet_not_connected_internet'));
return;
}
- // Si user !== last user
- if (lastUser.value !== user.id.toString()) {
+ return this.loginAction(user);
+ }
+ // Si on a deja une install
+ if (lastUser !== false && lastUser !== undefined) {
+ // Si on a une précédente connexion
+ if (lastUser.value === user.id.toString()) {
+ this.loginAction(user);
+ } else { // Si le user precedent est different du user courant
+ // Si user !== last user && last user not synced
+ if (!SyncController.isSynced()) {
+ Alert.alert(i18n.t('error.error'), i18n.t('error.tablet_not_synced_last_user'));
+ return;
+ }
// Si la tablette est connectée à internet pour forcer la synchro
- if (!SyncController.checkConnection()) {
+ if (!isConnected) {
Alert.alert(i18n.t('error.error'), i18n.t('error.tablet_not_connected_internet'));
return;
}
+ SyncController.setInstalled(true);
this.loginAction(user, true);
}
}
}
- loginAction(user, forceSync = false) {
+ loginAction(user) {
this.setState({ login: '', password: '' });
LoginController.login(user);
- this.props.dispatch({
- type: 'SET_CURRENT_USER',
- data: JSON.stringify(user),
- });
- this.props.dispatch({ type: 'SET_LOGGED', data: true });
- if (forceSync === true) {
- this.props.navigation.navigate('SyncScreen', { isInstalled: true, forceSync: true });
- }
+ this.props.setCurrentUser();
}
}
-export default connect(mapStateToProps)(LoginScreen);
\ No newline at end of file
+export default connect(mapStateToProps, mapDispatchToProps)(LoginScreen);
\ No newline at end of file
diff --git a/ComApp/src/App/Views/OnlyVideosScreen.js b/ComApp/src/App/Views/OnlyVideosScreen.js
index 1db6193..fb9c4f6 100644
--- a/ComApp/src/App/Views/OnlyVideosScreen.js
+++ b/ComApp/src/App/Views/OnlyVideosScreen.js
@@ -14,7 +14,8 @@ import styles from '../../Resources/Styles/OnlyVideosStyle';
function mapStateToProps(state) {
return {
- documents: state.app.documents,
+ documents: state.documents,
+ mainColor: state.app.mainColor
};
}
@@ -32,7 +33,7 @@ class OnlyVideosScreen extends React.Component {
return (
{
this.props.dispatch({ type: 'SET_CURRENT_OPENED_DOC', data: document });
this.props.navigation.navigate('VideoScreen', { uuid: document.uuid });
diff --git a/ComApp/src/App/Views/PDFScreen.js b/ComApp/src/App/Views/PDFScreen.js
index 3765ff8..93450da 100644
--- a/ComApp/src/App/Views/PDFScreen.js
+++ b/ComApp/src/App/Views/PDFScreen.js
@@ -19,16 +19,16 @@ class PDFScreen extends React.Component {
{
- console.log(`number of pages: ${numberOfPages}`);
+ //console.log(`number of pages: ${numberOfPages}`);
}}
onPageChanged={(page, numberOfPages) => {
- console.log(`current page: ${page}`);
+ //console.log(`current page: ${page}`);
}}
onError={error => {
console.log(error);
}}
onPressLink={uri => {
- console.log(`Link presse: ${uri}`);
+ //console.log(`Link presse: ${uri}`);
}}
style={styles.pdf}
/>
diff --git a/ComApp/src/App/Views/SearchScreen.js b/ComApp/src/App/Views/SearchScreen.js
index 8a05510..b029450 100644
--- a/ComApp/src/App/Views/SearchScreen.js
+++ b/ComApp/src/App/Views/SearchScreen.js
@@ -18,7 +18,8 @@ import styles from '../../Resources/Styles/SearchStyle';
function mapStateToProps(state) {
return {
- documents: state.app.documents,
+ documents: state.documents,
+ mainColor: state.app.mainColor
};
}
@@ -57,7 +58,7 @@ class SearchScreen extends React.Component {
return (
this.openDocument(document)}>
{document.type === 'pdf' ? (
diff --git a/ComApp/src/App/Views/SyncScreen.js b/ComApp/src/App/Views/SyncScreen.js
index eb0fbb9..80b81b3 100644
--- a/ComApp/src/App/Views/SyncScreen.js
+++ b/ComApp/src/App/Views/SyncScreen.js
@@ -2,6 +2,11 @@ import React from 'react';
import { View, Button, Alert, Text } from 'react-native';
// Redux
import { connect } from 'react-redux';
+import { initDirectories } from '../Store/Actions/directories';
+import { initContact } from '../Store/Actions/contacts';
+import { initDocuments } from '../Store/Actions/documents';
+// Sentry
+import * as Sentry from "@sentry/react-native";
// Style
import styles from '../../Resources/Styles/SyncStyle';
// Translations
@@ -11,18 +16,39 @@ import SyncController from '../Controllers/SyncController';
// Progress
import * as Progress from 'react-native-progress';
// Database
-import { User, Contact, Directory, Document } from '../../Database';
+import { User, Contact, Directory, Document, SendBrochure } from '../../Database';
// FileSytem
import * as FileSystem from 'expo-file-system';
function mapStateToProps(state) {
return {
- documents: state.app.documents,
syncVersion: state.app.syncVersion,
currentUser: state.app.currentUser,
+ locale: state.locale.locale,
+ mainColor: state.app.mainColor,
+ directories: state.directories
};
}
+const mapDispatchToProps = dispatch => {
+ return {
+ init: () => dispatch({ type: 'INIT' }),
+ initUsers: () => dispatch({ type: 'INIT_USERS' }),
+ initDirectories: (lang, user) => dispatch(initDirectories(lang, user)),
+ initDocuments: (lang, directories) => dispatch(initDocuments(lang, directories)),
+ initContact: currentUser => dispatch(initContact(currentUser)),
+ initBtns: () => dispatch({ type: 'INIT_HOME_BTNS' }),
+ updateVersion: version => dispatch({
+ type: 'UPDATE_VERSION',
+ data: version,
+ }),
+ updateShowIsActive: value => dispatch({
+ type: 'UPDATE_SHOW_IS_ACTIVE',
+ data: value,
+ })
+ };
+};
+
class SyncScreen extends React.Component {
state = {
progress: 0,
@@ -30,12 +56,14 @@ class SyncScreen extends React.Component {
downloadProgress: 0,
downloadingFile: false,
processing: false,
- newApp: false
+ newApp: false,
+ forced: false
};
componentDidMount() {
const { forceSync } = this.props.route.params;
if (forceSync === true) {
+ this.setState({ forced: true });
this.sync();
}
}
@@ -48,12 +76,12 @@ class SyncScreen extends React.Component {
size={250}
progress={this.state.progress}
showsText={true}
- color={'#ea4f52'}
+ color={this.props.mainColor}
/>
this.sync()}
/>
@@ -68,7 +96,15 @@ class SyncScreen extends React.Component {
}
async sync() {
- if (!SyncController.checkConnection()) {
+ let errorStatus = false;
+ const isConnected = await SyncController.checkConnection().then(state => {
+ //console.log(state.isConnected)
+ return state.isConnected
+ }).catch(error => {
+ //console.log(error);
+ return false;
+ });
+ if (!isConnected) {
Alert.alert(
i18n.t('global.warning'),
i18n.t('error.must_be_connected_internet_sync')
@@ -80,20 +116,18 @@ class SyncScreen extends React.Component {
const resVersion = await SyncController.getVersion().then(res => {
return res.data;
}).catch(error => {
- console.log(error);
+ Sentry.captureException(error);
Alert.alert(
i18n.t('error.error'),
i18n.t('error.error_has_occurred')
);
+ errorStatus = true
});
- this.props.dispatch({
- type: 'UPDATE_VERSION',
- data: resVersion.version,
- });
- this.props.dispatch({
- type: 'UPDATE_SHOW_IS_ACTIVE',
- data: resVersion.ShowIsActive,
- });
+ if (errorStatus) {
+ return false;
+ }
+ this.props.updateVersion(resVersion.version);
+ this.props.updateShowIsActive(resVersion.ShowIsActive);
this.setState({ newApp: resVersion.newApp });
// getUsers
this.setState({ txtStep: i18n.t('sync_s.updating_users') + '...' });
@@ -101,45 +135,72 @@ class SyncScreen extends React.Component {
User.clear();
return res.data;
}).catch(error => {
- console.log(error);
+ Sentry.captureException(error);
Alert.alert(
i18n.t('error.error'),
i18n.t('error.error_has_occurred')
);
+ errorStatus = true
});
+ if (errorStatus) {
+ return false;
+ }
resUsers.forEach(user => {
User.add(user);
});
// getContacts
this.setState({ progress: 0.1, txtStep: i18n.t('sync_s.updating_contacts') + '...' });
- const resContacts = await SyncController.getContacts().then(res => {
+ const resContacts = await SyncController.getContacts(this.props.currentUser.id).then(res => {
Contact.clear();
return res.data;
}).catch(error => {
- console.log(error);
+ Sentry.captureException(error);
Alert.alert(
i18n.t('error.error'),
i18n.t('error.error_has_occurred')
);
+ errorStatus = true
});
+ if (errorStatus) {
+ return false;
+ }
resContacts.forEach(contact => {
Contact.add(contact);
});
//sendBrochures
this.setState({ progress: 0.2, txtStep: i18n.t('sync_s.sending_flyers') + '...' });
- await SyncController.sendBrochures();
+ let brochures = SendBrochure.getAll();
+ for (const brochure of brochures) {
+ await SyncController.sendBrochure(brochure).then(res => {
+ SendBrochure.delete(brochure.id);
+ }).catch(error => {
+ Sentry.captureException(error);
+ Alert.alert(
+ i18n.t('error.error'),
+ i18n.t('error.error_has_occurred') + ' : Brochures'
+ );
+ errorStatus = true;
+ });
+ }
+ if (errorStatus) {
+ return false;
+ }
//getDirectories
this.setState({ progress: 0.3, txtStep: i18n.t('sync_s.updating_folders') + '...' });
const resDirectories = await SyncController.getDirectories().then(res => {
Directory.clear();
return res.data;
}).catch(error => {
- console.log(error);
+ Sentry.captureException(error);
Alert.alert(
i18n.t('error.error'),
i18n.t('error.error_has_occurred')
);
+ errorStatus = true
});
+ if (errorStatus) {
+ return false;
+ }
resDirectories.forEach(dir => {
Directory.add(dir);
});
@@ -148,17 +209,21 @@ class SyncScreen extends React.Component {
const resDocuments = await SyncController.getDocuments().then(res => {
return res.data;
}).catch(error => {
- console.log(error);
+ Sentry.captureException(error);
Alert.alert(
i18n.t('error.error'),
i18n.t('error.error_has_occurred')
);
+ errorStatus = true
});
+ if (errorStatus) {
+ return false;
+ }
const toDelete = Document.clear(resDocuments);
resDocuments.forEach(document => {
Document.update(document);
});
- this.downloadDocuments(resDocuments, toDelete);
+ this.downloadDocuments(Document.getAll(), toDelete);
// End
this.setState({ txtStep: i18n.t('sync_s.update_completed') + '.', processing: false });
}
@@ -247,7 +312,7 @@ class SyncScreen extends React.Component {
if (this.state.downloadingFile === false) {
this.setState({ downloadingFile: true });
}
- const endpoint = 'https://dev-app.rhd-ldc.fr/storage/docs/'
+ const endpoint = SyncController.getUrlBo() + '/storage/docs/'
const doc = documents[i];
this.setState({
txtStep:
@@ -258,8 +323,7 @@ class SyncScreen extends React.Component {
') ...',
});
try {
- //console.log(endpoint + doc.uuid + "." + doc.type);
- const { uri } = await this.downloadResumable(
+ await this.downloadResumable(
endpoint + doc.uuid + "." + doc.type,
doc.uuid,
doc.type,
@@ -280,12 +344,19 @@ class SyncScreen extends React.Component {
}
finishSync(version) {
- console.log('here')
- this.props.dispatch({ type: 'INIT' });
+ this.props.init();
+ this.props.initUsers();
+ this.props.initContact(this.props.currentUser);
+ this.props.initDirectories(this.props.locale, this.props.currentUser);
+ this.props.initDocuments(this.props.locale, this.props.directories.global);
+ this.props.initBtns();
+ if (this.state.forced) {
+ SyncController.setInstalled();
+ }
SyncController.updateVersion(version);
this.setState({ txtStep: i18n.t('sync_s.update_completed') + '.', processing: false });
if (this.state.newApp === true) {
- const appUUID = '1f6eda31-1f6d-49fe-aa81-4f0aece0f7ca';
+ const appUUID = SyncController.getAppStoreUUID();
const url = 'https://store.ldc.fr' + '/app/' + appUUID;
Alert.alert(
'LDC Store',
@@ -305,4 +376,4 @@ class SyncScreen extends React.Component {
}
-export default connect(mapStateToProps)(SyncScreen);
\ No newline at end of file
+export default connect(mapStateToProps, mapDispatchToProps)(SyncScreen);
\ No newline at end of file
diff --git a/ComApp/src/App/Views/VideoScreen.js b/ComApp/src/App/Views/VideoScreen.js
index 99a2cdf..7eb42c9 100644
--- a/ComApp/src/App/Views/VideoScreen.js
+++ b/ComApp/src/App/Views/VideoScreen.js
@@ -1,32 +1,59 @@
import React from 'react';
import { View, Dimensions } from 'react-native';
+// Reduxs
+import { connect } from 'react-redux';
// FileSytem
import * as FileSystem from 'expo-file-system';
// Video
-import { Video } from 'expo-av';
+import { ResizeMode } from 'expo-av';
import VideoPlayer from 'expo-video-player';
+function mapStateToProps(state) {
+ return {
+ mainColor: state.app.mainColor
+ };
+}
+
class VideoScreen extends React.Component {
render() {
const { uuid } = this.props.route.params;
+ let width = Dimensions.get("window").width;
+ let height = Dimensions.get("window").height;
+
+ // if portrait
+ if (height > width) {
+ let tmpHeight = height;
+ height = width - 150;
+ width = tmpHeight + 100;
+ } else {
+ height = height - 100;
+ }
return (
-
+
);
}
}
-export default VideoScreen;
+export default connect(mapStateToProps)(VideoScreen);
\ No newline at end of file
diff --git a/ComApp/src/Controllers/Helpers.js b/ComApp/src/Controllers/Helpers.js
deleted file mode 100644
index 63d3462..0000000
--- a/ComApp/src/Controllers/Helpers.js
+++ /dev/null
@@ -1,53 +0,0 @@
-class Helpers {
- compareValues(key, order = 'asc') {
- return function innerSort(a, b) {
- //console.log("--", "A :", a, "B : ", b, "KEY : ", key, a.hasOwnProperty(key), b.hasOwnProperty(key), a.name);
- if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {
- // property doesn't exist on either object
- return 0;
- }
-
- const varA = (typeof a[key] === 'string')
- ? a[key].toUpperCase() : a[key];
- const varB = (typeof b[key] === 'string')
- ? b[key].toUpperCase() : b[key];
-
- let comparison = 0;
- if (varA > varB) {
- comparison = 1;
- } else if (varA < varB) {
- comparison = -1;
- }
- return (
- (order === 'desc') ? (comparison * -1) : comparison
- );
- };
- }
-
- isEmailValid(email) {
- const expression = /(?!.*\.{2})^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([\t]*\r\n)?[\t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([\t]*\r\n)?[\t]+)?")@(([a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i;
- return expression.test(String(email).toLowerCase());
- }
-
- isValidRequiredString(string) {
- const expression = /.*\S.*/i;
- return expression.test(String(string));
- }
-
- generateUUID() { // Public Domain/MIT
- let d = new Date().getTime();//Timestamp
- let d2 = new Date().getUTCMilliseconds() + Math.random();//Time in microseconds since page-load or 0 if unsupported
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
- let r = Math.random() * 16;//random number between 0 and 16
- if(d > 0){//Use timestamp until depleted
- r = (d + r)%16 | 0;
- d = Math.floor(d/16);
- } else {//Use microseconds since page-load if supported
- r = (d2 + r)%16 | 0;
- d2 = Math.floor(d2/16);
- }
- return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
- });
- }
-}
-export default new Helpers();
diff --git a/ComApp/src/Controllers/Sync.js b/ComApp/src/Controllers/Sync.js
deleted file mode 100644
index 87dcbed..0000000
--- a/ComApp/src/Controllers/Sync.js
+++ /dev/null
@@ -1,271 +0,0 @@
-import NetInfo from '@react-native-community/netinfo';
-import Constants from 'expo-constants';
-
-const axios = require('axios');
-const api_url = 'https://app-intl.ldc.fr';
-const api_token = 'gP8K77n4568UXYLV63bqykDRs8pyMy';
-const endpoint = api_url + '/api';
-const app_uuid = '746ceb52-2354-40d9-b270-57ca541f2751';
-
-import UsersModel from '../Models/Users';
-import DirectoriesModel from '../Models/Directories';
-import DocumentsModel from '../Models/Documents';
-import ContactsModel from '../Models/Contacts';
-import CommonModel from '../Models/Common';
-import SendBrochureModel from '../Models/SendBrochure';
-
-class Sync {
- getEndpointDocs() {
- return api_url + '/storage/docs/';
- }
-
- getApiToken() {
- return api_token;
- }
-
- getAppUUID() {
- return app_uuid;
- }
-
- getVersion(callback, errorCallback) {
- axios({
- method: 'get',
- url: endpoint + '/version',
- responseType: 'json',
- params: {
- token: this.getApiToken(),
- app_uuid: app_uuid,
- app_version: Constants.nativeAppVersion
- },
- })
- .then(response => {
- return callback(response.data.version, response.data.ShowIsActive, response.data.newApp);
- })
- .catch(function(error) {
- console.log(error);
- return errorCallback(error);
- });
- }
-
- needSync(callback) {
- NetInfo.fetch().then(state => {
- if (state.isConnected) {
- axios({
- method: 'get',
- url: endpoint + '/version',
- responseType: 'json',
- params: {
- token: this.getApiToken(),
- },
- })
- .then(response => {
- const localVersion = CommonModel.get('version');
- if (
- localVersion === undefined ||
- localVersion === false ||
- localVersion.value !== response.data.version
- ) {
- return callback();
- }
- return false;
- })
- .catch(function(error) {
- console.log(error);
- });
- }
- return false;
- });
- return false;
- }
-
- setInstalled() {
- CommonModel.add({key: 'installed', value: '1'});
- CommonModel.add({key: 'locale', value: 'fr'});
- CommonModel.add({key: 'ShowIsActive', value: '0'});
- }
-
- getUsers(callback) {
- axios({
- method: 'get',
- url: endpoint + '/users',
- responseType: 'json',
- params: {
- token: this.getApiToken(),
- },
- })
- .then(response => {
- UsersModel.clear();
- response.data.forEach(user => {
- UsersModel.add(user);
- });
- console.log('Users Update Done');
- return callback();
- })
- .catch(function(error) {
- console.log(error);
- });
- }
-
- getDirectories(callback) {
- axios({
- method: 'get',
- url: endpoint + '/directories',
- responseType: 'json',
- params: {
- token: this.getApiToken(),
- },
- })
- .then(function(response) {
- DirectoriesModel.clear();
- response.data.forEach(dir => {
- DirectoriesModel.add(dir);
- });
- console.log('Directories Update Done');
- return callback();
- })
- .catch(function(error) {
- console.log(error);
- });
- }
-
- getDocuments(callback) {
- axios({
- method: 'get',
- url: endpoint + '/documents',
- responseType: 'json',
- params: {
- token: this.getApiToken(),
- },
- })
- .then(response => {
- const toDelete = DocumentsModel.clear(response.data);
- response.data.forEach(document => {
- DocumentsModel.update(document);
- });
- console.log('Documents Update Done');
- return callback(DocumentsModel.getAll(), toDelete);
- })
- .catch(function(error) {
- console.log(error);
- });
- }
-
- getContacts(callback, userId, errorCallback) {
- let contacts = ContactsModel.getAll();
- axios({
- method: 'post',
- url: endpoint + '/contacts' + '?token=' + this.getApiToken(),
- responseType: 'json',
- data: {
- contacts: contacts,
- userId: userId,
- },
- })
- .then(response => {
- ContactsModel.clear();
- response.data.forEach(contact => {
- ContactsModel.add(contact);
- });
- console.log('Contacts Update Done');
- callback();
- })
- .catch(function (error) {
- console.log(error);
- errorCallback(error);
- });
- }
-
- async sendBrochure(brochures, i) {
- if (brochures.length > 0) {
- const item = brochures[i];
- let response = await axios({
- method: 'post',
- url: endpoint + '/sendBrochure',
- responseType: 'json',
- params: {
- token: this.getApiToken(),
- emails: {item},
- },
- });
- if (i < brochures.length - 1) {
- return this.sendBrochure(brochures, i + 1);
- }
- return true;
- }
- return true;
- }
-
- sendBrochures(callback) {
- this.sendBrochure(SendBrochureModel.getAll(), 0).then(res => {
- SendBrochureModel.clear();
- console.log('SendBrochures Update Done');
- callback();
- });
- }
-
- updateVersion(version) {
- const localVersion = CommonModel.get('version');
- if (localVersion === false || localVersion === undefined) {
- CommonModel.add({key: 'version', value: version});
- } else {
- CommonModel.update({id: localVersion.id, key: 'version', value: version});
- }
- }
-
- updateShowIsActive(value) {
- const local = CommonModel.get('ShowIsActive');
- if (local === false || local === undefined) {
- CommonModel.add({key: 'ShowIsActive', value: value});
- } else {
- CommonModel.update({id: local.id, key: 'ShowIsActive', value: value});
- }
- }
-
- isLogged() {
- const logged = CommonModel.get('isLogged');
- const loggedTime = CommonModel.get('loggedTime');
- if (
- logged !== false &&
- loggedTime !== false &&
- logged !== undefined &&
- loggedTime !== undefined
- ) {
- let seconds =
- Math.abs(new Date(Number(loggedTime.value)) - Date.now()) / 1000;
- if (seconds < 14400) {
- // 4h
- return true;
- }
- return false;
- }
- return false;
- }
-
- isInstalled() {
- const test = CommonModel.get('installed');
- if (test === false) {
- return false;
- }
- return true;
- }
-
- updateLastModificationDoc(id, date) {
- DocumentsModel.update({id: id, updated_at: date.toString()}, true);
- }
-
- isSynced() {
- const SendBrochure = SendBrochureModel.getAll();
- const Contacts = ContactsModel.getAll();
-
- if (SendBrochure !== undefined && Contacts !== undefined) {
- const noSynced = Contacts.filtered('synced = false');
- if (SendBrochure.length > 0 || noSynced.length > 0) {
- return false;
- }
- }
- return true;
- }
-
-}
-
-export default new Sync();
diff --git a/ComApp/src/Database.js b/ComApp/src/Database.js
index 4e63cbe..8d53114 100644
--- a/ComApp/src/Database.js
+++ b/ComApp/src/Database.js
@@ -1,103 +1,29 @@
-const CommonSchema = {
- name: 'Common',
- primaryKey: 'id',
- properties: {
- id: 'int',
- key: 'string',
- value: 'string',
- },
-};
+import Realm from "realm";
-const UserSchema = {
- name: 'Users',
- primaryKey: 'id',
- properties: {
- id: 'int',
- email: 'string',
- surname: 'string',
- firstname: 'string',
- password: 'string',
- role: 'string',
- authorizedFolders: 'string',
- },
-};
-
-const DirectoriesSchema = {
- name: 'Directories',
- primaryKey: 'id',
- properties: {
- id: 'int',
- name: 'string',
- parent: { type: 'int', optional: true },
- order: 'int',
- needAuthorization: 'int',
- },
-};
-
-const DocumentsSchema = {
- name: 'Documents',
- primaryKey: 'id',
- properties: {
- id: 'int',
- uuid: 'string',
- title: 'string',
- type: 'string',
- path: 'string',
- directory: 'int',
- lang: 'string',
- updated_at: 'string',
- },
-};
-
-const ContactsSchema = {
- name: 'Contacts',
- primaryKey: 'id',
- properties: {
- id: 'int',
- email: 'string',
- type: 'string',
- other: { type: 'string', optional: true },
- select1: { type: 'string', optional: true },
- select2: { type: 'string', optional: true },
- name: 'string',
- firstname: 'string',
- company: { type: 'string', optional: true },
- address: { type: 'string', optional: true },
- phone: 'string',
- products: { type: 'string', optional: true },
- // TODO : card_url ?
- notes: { type: 'string', optional: true },
- visits: { type: 'string', optional: true },
- user_id: 'int',
- uniq_id: 'string',
- to_delete: { type: 'bool', default: false },
- synced: { type: 'bool', default: true },
- },
-};
-
-const SendBrochureSchema = {
- name: 'SendBrochure',
- primaryKey: 'id',
- properties: {
- id: 'int',
- email: 'string',
- subject: 'string',
- message: 'string',
- documents: 'string',
- user_id: 'int'
- },
-};
+import ContactModel, { ContactsSchema } from "./App/Models/Contact";
+import DirectoryModel, { DirectoriesSchema } from "./App/Models/Directory";
+import DocumentModel, { DocumentsSchema } from "./App/Models/Document";
+import SendBrochureModel, { SendBrochuresSchema } from "./App/Models/SendBrochure";
+import SettingModel, { SettingsSchema } from "./App/Models/Setting";
+import UserModel, { UsersSchema } from "./App/Models/User";
const Database = {
schema: [
- CommonSchema,
- UserSchema,
+ ContactsSchema,
DirectoriesSchema,
DocumentsSchema,
- ContactsSchema,
- SendBrochureSchema,
+ SendBrochuresSchema,
+ SettingsSchema,
+ UsersSchema
],
- encryptionKey: new Int8Array(64)
+ //encryptionKey: new Int8Array(64)
};
-export default Database;
+let realm = new Realm(Database);
+
+export let Contact = new ContactModel(realm);
+export let Directory = new DirectoryModel(realm);
+export let Document = new DocumentModel(realm);
+export let SendBrochure = new SendBrochureModel(realm);
+export let Setting = new SettingModel(realm);
+export let User = new UserModel(realm);
diff --git a/ComApp/src/I18n.js b/ComApp/src/I18n.js
index 3b94187..57fcae8 100644
--- a/ComApp/src/I18n.js
+++ b/ComApp/src/I18n.js
@@ -1,8 +1,8 @@
import { I18n } from 'i18n-js';
-import fr from './Locales/fr';
-import en from './Locales/en';
-import de from './Locales/de';
+import fr from './Resources/Locales/fr';
+import en from './Resources/Locales/en';
+import de from './Resources/Locales/de';
const i18n = new I18n({
fr: fr,
@@ -12,7 +12,6 @@ const i18n = new I18n({
i18n.defaultLocale = 'fr';
i18n.locale = 'fr';
-i18n.fallbacks = true;
-i18n.translations = { fr, en, de };
+i18n.enableFallback = true;
export default i18n;
diff --git a/ComApp/src/Locales/de.json b/ComApp/src/Locales/de.json
deleted file mode 100644
index 522ecf7..0000000
--- a/ComApp/src/Locales/de.json
+++ /dev/null
@@ -1,157 +0,0 @@
-{
- "global": {
- "yes": "Ja",
- "no": "Nein",
- "home": "Startseite",
- "search": "Suche",
- "login": "Verbindung",
- "email": "Email",
- "message_sent": "Email geschickt",
- "message_will_be_sent_after_sync": "Die Nachricht wird nach Synchronisation geschickt",
- "warning": "Achtung",
- "synchronization": "Synchronisation ",
- "videos": "Videos",
- "contacts": "Kontakt",
- "confirmation": "Bestätigung",
- "name": "Name",
- "firstname": "Vorname",
- "address": "Adresse",
- "phone": "Telefonnummer",
- "company": "Firma",
- "add": "Addieren",
- "cancel": "Abbrechen",
- "subject": "Betreff",
- "message": "Nachricht",
- "send": "Senden",
- "required": "erforderlich",
- "save": "Speichern",
- "retry": "Noch einmal versuchen",
- "next": "Nächstes"
- },
- "app": {
- "file_sharing": " Dateifreigabe",
- "folders": "Ordner",
- "video": "Video",
- "contact_details": "Kontaktdaten",
- "results_search": "Suchergebnisse",
- "my_space": "Mein Raum"
- },
- "login_s": {
- "install": "Installieren",
- "username": "Benutzername",
- "password": "Passwort"
- },
- "home_s": {
- "1": "Die Gruppe",
- "2": "Unsere Marken",
- "3": "Andere"
- },
- "search_s": {
- "no_result": "Keine Ergebnisse"
- },
- "sync_s": {
- "download": "Download",
- "update_completed": "Update abgeschlossen",
- "updating_docs": "Dokumentaktualisierung",
- "updating_folders": "Dateien aktualisieren",
- "sending_flyers": "Brochure senden",
- "updating_contacts": "Kontakt aktualisieren",
- "user_install_completed": "Benutzerinstallation abgeschlossen",
- "updating_users": "Benutzer-Update",
- "user_install": "Benutzerinstallation",
- "start_sync": "Synchronisation starten",
- "new_app_version": "Eine neue Version der Anwendung ist verfügbar!",
- "open_store": "Öffnen Sie den App Store"
- },
- "contact_s": {
- "contact_transferred": "Kontakt weiterleiten",
- "contact_will_be_sent_after_sync": "Der Kontakt wird nach der Synchronisation gesendet",
- "confirm_contact_delete": "Möchten Sie diesen Kontakt wirklich löschen?",
- "contact_deleted": "Kontakt gelöscht",
- "contact_added": "Kontakt hinzugefügt",
- "send_flyer": "Senden Sie eine Broschüre",
- "select_contact": "Wählen Sie den Kontakt",
- "transfer": "weiterleiten",
- "contact_list": "Kontaktliste",
- "documents_list": "Liste der Dokumente"
- },
- "contact_details_s": {
- "visits": "Besuche",
- "notes": "Notes",
- "contact_saved": "Kontakt gespeichert",
- "confirm_visit_delete": "Sind Sie sicher, dass Sie diesen Besuch löschen möchten?",
- "qrcode_not_vcard_format": "Dieser QRCode ist nicht im vCard-Format",
- "customer": "Kunde",
- "prospect": "potenzieller Kunde",
- "other": "Andere",
- "description": "Beschreibung",
- "no_visits": "Kein Besuch",
- "visit_name": "Besuchsname"
- },
- "error": {
- "error": "Fehler ",
- "tablet_not_connected_internet": "Das Tablet ist nicht mit dem Internet verbunden.",
- "tablet_not_synced_last_user": "Das Tablet wurde vom vorherigen Benutzer nicht synchronisiert",
- "incorrect_credentials": "Falsche Anmeldeinformationen",
- "must_fill_login_fields": "Sie müssen die Verbindungsfelder ausfüllen",
- "invalid_email_address": "Ungültige E-Mail-Adresse",
- "error_has_occurred": "Ein Fehler ist aufgetreten",
- "must_be_connected_internet_sync": "Sie müssen mit dem Internet verbunden sein, um die Synchronisierung zu starten",
- "incomplete_form": "Unvollständiges Formular",
- "fill_all_fields_and_1_doc_min": "Bitte füllen Sie alle Felder, mindestens 1 Dokument und eine gültige E-Mail-Adresse aus.",
- "fill_other_field": "Füllen Sie das Beschreibungsfeld für: Andere",
- "specify_type_contact": "Bitte geben Sie die Art des Kontakts an",
- "invalid_name": "ungültiger Name",
- "invalid_firstname": "ungültiger Vorname",
- "camera_permission_denied": "Kameraerlaubnis verweigert",
- "pending_camera_permission": "Warten auf Kameraerlaubnis"
- },
- "custom": {
- "select-1": {
- "title": "Art des Geschäfts",
- "c1": "Einzelhandel",
- "c2": "Home Service / Freezer Center",
- "c3": "Restauration Tischservice",
- "c4": "Fast Food und Snacking",
- "c5": "Cafeteria / Selbstbedienungsladen",
- "c6": "Catering-Unternehmen",
- "c7": "Freihändige Verpflegung / Centrale Küche",
- "c8": "Unabhängiger Vertriebspartner",
- "c9": "Bäckerei Konditorei",
- "c10": "Lebensmittel Zwischenprodukte",
- "c11": "Destocker",
- "c12": "Halal-Handel",
- "c13": "Verpflegung von Unterkünften",
- "c14": "Zentrale Geschäftsrestauration",
- "c15": "Catering und Park",
- "c16": "Verpflegung von Transport",
- "c17": "Öffentlicher Markt",
- "c18": "Cash",
- "c19": "Nationaler Vertriebspartner",
- "c20": "Rungis",
- "c21": "Schlachthof",
- "c22": "Andere"
- },
- "select-2": {
- "title": "Site",
- "c1": "Celvia Dinde",
- "c2": "Celvia Elaborés",
- "c3": "Celvia Sérent",
- "c4": "Procanar",
- "c5": "Celtys",
- "c6": "Farmor",
- "c7": "Robichon",
- "c8": "Les Volailles de Kerana",
- "c9": "Bosher Volaille",
- "c10": "LDC Bretagne",
- "c11": "Doux Farmor",
- "c12": "Favreau"
- },
- "interest": {
- "p1": "Huhn",
- "p2": "Pute",
- "p3": "Ente",
- "p4": "Andere"
- }
- }
-}
diff --git a/ComApp/src/Locales/en.json b/ComApp/src/Locales/en.json
deleted file mode 100644
index 94d6926..0000000
--- a/ComApp/src/Locales/en.json
+++ /dev/null
@@ -1,157 +0,0 @@
-{
- "global": {
- "yes": "Yes",
- "no": "No",
- "home": "Home",
- "search": "Search",
- "login": "Login",
- "email": "Email",
- "message_sent": "Message Sent",
- "message_will_be_sent_after_sync": "Message will be send after synchronization",
- "warning": "Warning",
- "synchronization": "Synchronization",
- "videos": "Videos",
- "contacts": "Contacts",
- "confirmation": "Confirmation",
- "name": "Lastname",
- "firstname": "Firstname",
- "address": "Adress",
- "phone": "Phone number",
- "company": "Company",
- "add": "Add",
- "cancel": "Cancel",
- "subject": "Object",
- "message": "Message",
- "send": "Send",
- "required": "required",
- "save": "Save",
- "retry": "Retry",
- "next": "Next"
- },
- "app": {
- "file_sharing": "File Sharing",
- "folders": "Folders",
- "video": "Video",
- "contact_details": "Contact information",
- "results_search": "Search results",
- "my_space": "Personal Dashboard"
- },
- "login_s": {
- "install": "Install",
- "username": "Username",
- "password": "Password"
- },
- "home_s": {
- "1": "The Group",
- "2": "Our Brands",
- "3": "Others"
- },
- "search_s": {
- "no_result": "No Result"
- },
- "sync_s": {
- "download": "Download",
- "update_completed": "Update Done",
- "updating_docs": "Updating documents",
- "updating_folders": "Updating folders",
- "sending_flyers": "Sending documents",
- "updating_contacts": "Updating contacts",
- "user_install_completed": "User install completed",
- "updating_users": "Updating Users",
- "user_install": "Installing Users",
- "start_sync": "START SYNCHRONIZATION",
- "new_app_version": "A new version of the application is available!",
- "open_store": "Open the store"
- },
- "contact_s": {
- "contact_transferred": "Contact Transferred",
- "contact_will_be_sent_after_sync": "The contact will be sent after synchronization",
- "confirm_contact_delete": "Are you sure to delete this contact ?",
- "contact_deleted": "Contact deleted",
- "contact_added": "Contact added",
- "send_flyer": "Send a document",
- "select_contact": "Select the contact",
- "transfer": "Transfer",
- "contact_list": "Contact List",
- "documents_list": "Documents List"
- },
- "contact_details_s": {
- "visits": "Visits",
- "notes": "Notes",
- "contact_saved": "Contact saved",
- "confirm_visit_delete": "are you sure to delete this visit ?",
- "qrcode_not_vcard_format": "This QRCode is not a VCard",
- "customer": "Customer",
- "prospect": "Prospect",
- "other": "Other",
- "description": "Description",
- "no_visits": "No visits available",
- "visit_name": "visits name"
- },
- "error": {
- "error": "Error",
- "tablet_not_connected_internet": "The tablet is not connected to Internet",
- "tablet_not_synced_last_user": "The previous user didn't synchronised the tablet",
- "incorrect_credentials": "Incorrect Credentials",
- "must_fill_login_fields": "You must fill the login fields.",
- "invalid_email_address": "Invalid E-mail adress",
- "error_has_occurred": "An error occured",
- "must_be_connected_internet_sync": "You must be connected to internet to be able to synchronize",
- "incomplete_form": "Incomplete Form",
- "fill_all_fields_and_1_doc_min": "Please fill up all the fields, at least one document and a valid e-mail adress",
- "fill_other_field": "You must fill the description field for : Other",
- "specify_type_contact": "You must specify the contact type",
- "invalid_name": "Invalid lastname",
- "invalid_firstname": "Invalid firstname",
- "camera_permission_denied": "Camera Permission Denied",
- "pending_camera_permission": "Waiting for the camera permission"
- },
- "custom": {
- "select-1": {
- "title": "Type of business",
- "c1": "Retail trade",
- "c2": "Home Service / Freezer Center",
- "c3": "Catering table service",
- "c4": "Fast food and snacking",
- "c5": "Cafeteria / Self Service",
- "c6": "Catering company",
- "c7": "Contract catering / Central kitchen",
- "c8": "Independent distributor",
- "c9": "Bakery and pastry shop",
- "c10": "Intermediate Food Products",
- "c11": "Destocker",
- "c12": "Halal trade",
- "c13": "Accommodation catering",
- "c14": "Commercial catering centre",
- "c15": "Event catering and park",
- "c16": "Restoration of transport",
- "c17": "Public procurement",
- "c18": "Cash",
- "c19": "National distributor",
- "c20": "Rungis",
- "c21": "Slaughterhouse",
- "c22": "Other"
- },
- "select-2": {
- "title": "Site",
- "c1": "Celvia Dinde",
- "c2": "Celvia Elaborés",
- "c3": "Celvia Sérent",
- "c4": "Procanar",
- "c5": "Celtys",
- "c6": "Farmor",
- "c7": "Robichon",
- "c8": "Les Volailles de Kerana",
- "c9": "Bosher Volaille",
- "c10": "LDC Bretagne",
- "c11": "Doux Farmor",
- "c12": "Favreau"
- },
- "interest": {
- "p1": "Chicken",
- "p2": "Turkey",
- "p3": "Duck",
- "p4": "Other"
- }
- }
-}
diff --git a/ComApp/src/Locales/fr.json b/ComApp/src/Locales/fr.json
deleted file mode 100644
index f230117..0000000
--- a/ComApp/src/Locales/fr.json
+++ /dev/null
@@ -1,157 +0,0 @@
-{
- "global": {
- "yes": "Oui",
- "no": "Non",
- "home": "Accueil",
- "search": "Recherche",
- "login": "Connexion",
- "email": "Email",
- "message_sent": "Message envoyé",
- "message_will_be_sent_after_sync": "Le message sera envoyé après synchronisation",
- "warning": "Attention",
- "synchronization": "Synchronisation",
- "videos": "Vidéos",
- "contacts": "Contacts",
- "confirmation": "Confirmation",
- "name": "Nom",
- "firstname": "Prénom",
- "address": "Adresse",
- "phone": "Téléphone",
- "company": "Société",
- "add": "Ajouter",
- "cancel": "Annuler",
- "subject": "Objet",
- "message": "Message",
- "send": "Envoyer",
- "required": "requis",
- "save": "Enregistrer",
- "retry": "Réessayer",
- "next": "Suivant"
- },
- "app": {
- "file_sharing": "Partage de fichier",
- "folders": "Dossiers",
- "video": "Vidéo",
- "contact_details": "Détails du contact",
- "results_search": "Résultat(s) de votre recherche",
- "my_space": "Mon espace"
- },
- "login_s": {
- "install": "Installer",
- "username": "Identifiant",
- "password": "Mot de passe"
- },
- "home_s": {
- "1": "Le Groupe",
- "2": "Nos Marques",
- "3": "Autres"
- },
- "search_s": {
- "no_result": "Aucun résultat"
- },
- "sync_s": {
- "download": "Téléchargement",
- "update_completed": "Mise à jour effectuée",
- "updating_docs": "Mise à jour des documents",
- "updating_folders": "Mise à jour des dossiers",
- "sending_flyers": "Envoi des brochures",
- "updating_contacts": "Mise à jour des contacts",
- "user_install_completed": "Installation des utilisateurs effectuée",
- "updating_users": "Mise à jour des utilisateurs",
- "user_install": "Installation des utilisateurs",
- "start_sync": "LANCER LA SYNCHRONISATION",
- "new_app_version": "Une nouvelle version de l'application est disponible !",
- "open_store": "Ouvrir le store"
- },
- "contact_s": {
- "contact_transferred": "Contact transféré",
- "contact_will_be_sent_after_sync": "Le contact sera envoyé après synchronisation",
- "confirm_contact_delete": "Êtes-vous sûr de vouloir supprimer ce contact ?",
- "contact_deleted": "Contact supprimé",
- "contact_added": "Contact ajouté",
- "send_flyer": "Envoyer une brochure",
- "select_contact": "Sélectionnez le contact",
- "transfer": "Transférer",
- "contact_list": "Liste des contacts",
- "documents_list": "Liste des documents"
- },
- "contact_details_s": {
- "visits": "Visites",
- "notes": "Notes",
- "contact_saved": "Contact enregistré",
- "confirm_visit_delete": "Êtes-vous sûr de vouloir supprimer cette visite ?",
- "qrcode_not_vcard_format": "Ce QRCode n'est pas au format vCard",
- "customer": "Client",
- "prospect": "Prospect",
- "other": "Autre",
- "description": "Description",
- "no_visits": "Aucune visites",
- "visit_name": "Nom de la visite"
- },
- "error": {
- "error": "Erreur",
- "tablet_not_connected_internet": "La tablette n'est pas connectée à internet.",
- "tablet_not_synced_last_user": "La tablette n'as pas été synchronisée par l'utilisateur précédent.",
- "incorrect_credentials": "Identifiants incorrect.",
- "must_fill_login_fields": "Vous devez-remplir les champs de connexion.",
- "invalid_email_address": "Adresse email invalide",
- "error_has_occurred": "Une erreur est survenue",
- "must_be_connected_internet_sync": "Vous devez être connecté à internet pour lancer la synchronisation",
- "incomplete_form": "Formulaire incomplet",
- "fill_all_fields_and_1_doc_min": "Veuillez remplir tous les champs, 1 document minimum et une adresse email valide",
- "fill_other_field": "Vous devez remplir le champs description pour : Autre",
- "specify_type_contact": "Vous devez préciser le type de contact",
- "invalid_name": "Nom invalide",
- "invalid_firstname": "Prénom invalide",
- "camera_permission_denied": "Permission caméra refusée",
- "pending_camera_permission": "En attente de permission caméra"
- },
- "custom": {
- "select-1": {
- "title": "Type de commerce",
- "c1": "Commerce de détail",
- "c2": "Home Service / Freezer Center",
- "c3": "Restauration service à table",
- "c4": "Fast food et snacking",
- "c5": "Cafétaria / Self Service",
- "c6": "Société de restauration",
- "c7": "Restauration gré à gré / cuisine Centrale",
- "c8": "Distributeur indépendant",
- "c9": "Boulangerie pâtisserie",
- "c10": "PAI",
- "c11": "Destockeur",
- "c12": "Commerce Halal",
- "c13": "Restauration d'hébergement",
- "c14": "Centrale restauration commerciale",
- "c15": "Restauration évenementielle et parc",
- "c16": "Restauration de transport",
- "c17": "Marché public",
- "c18": "Cash",
- "c19": "Distributeur national",
- "c20": "Rungis",
- "c21": "Abbatoir",
- "c22": "Autre"
- },
- "select-2": {
- "title": "Site",
- "c1": "Celvia Dinde",
- "c2": "Celvia Elaborés",
- "c3": "Celvia Sérent",
- "c4": "Procanar",
- "c5": "Celtys",
- "c6": "Farmor",
- "c7": "Robichon",
- "c8": "Les Volailles de Kerana",
- "c9": "Bosher Volaille",
- "c10": "LDC Bretagne",
- "c11": "Doux Farmor",
- "c12": "Favreau"
- },
- "interest": {
- "p1": "Poulet",
- "p2": "Dinde",
- "p3": "Canard",
- "p4": "Autre"
- }
- }
-}
diff --git a/ComApp/src/Models/Common.js b/ComApp/src/Models/Common.js
deleted file mode 100644
index 3d8ab03..0000000
--- a/ComApp/src/Models/Common.js
+++ /dev/null
@@ -1,64 +0,0 @@
-import Database from '../Database';
-
-const Realm = require('realm');
-let realm = new Realm(Database);
-
-class CommonModel {
- constructor() {
- this.schema = 'Common';
- }
-
- add(data) {
- realm.write(() => {
- if (data.id === undefined) {
- let id: any = realm.objects(this.schema).max('id');
- data.id = id === undefined ? 1 : id + 1;
- }
- try {
- realm.create(this.schema, data, 'never');
- } catch (e) {
- console.log('db common add', e);
- }
- });
- }
-
- update(data) {
- let tmp = this.get(data.key);
- if (tmp === undefined) {
- this.add(data);
- } else {
- if (data.id === undefined) {
- data.id = tmp.id;
- }
- realm.write(() => {
- realm.create(this.schema, data, 'modified');
- });
- }
- }
-
- get(key) {
- let tmp = realm.objects(this.schema);
- if (tmp.length === 0) {
- return false;
- } else {
- tmp = tmp.filtered('key = "' + key + '"')[0];
- }
- return tmp;
- }
-
- getAll() {
- let tmp = realm.objects(this.schema);
- return tmp;
- }
-
- delete(key) {
- const tmp = this.get(key);
- if (typeof tmp === 'object') {
- realm.write(() => {
- realm.delete(tmp);
- });
- }
- }
-}
-
-export default new CommonModel();
diff --git a/ComApp/src/Models/Contacts.js b/ComApp/src/Models/Contacts.js
deleted file mode 100644
index 8cb1243..0000000
--- a/ComApp/src/Models/Contacts.js
+++ /dev/null
@@ -1,60 +0,0 @@
-import Database from '../Database';
-
-const Realm = require('realm');
-let realm = new Realm(Database);
-
-class ContactsModel {
- constructor() {
- this.schema = 'Contacts';
- }
-
- add(contact) {
- contact.uniq_id = contact.id;
- contact.id = undefined;
- realm.write(() => {
- if (contact.id === undefined) {
- let id: any = realm.objects(this.schema).max('id');
- contact.id = id === undefined ? 1 : id + 1;
- }
- realm.create(this.schema, contact);
- });
- }
-
- update(contact) {
- realm.write(() => {
- realm.create(this.schema, contact, true);
- });
- }
-
- get(id) {
- let tmp = realm.objects(this.schema).filtered('id = ' + id)[0];
- return tmp;
- }
-
- getAll() {
- let tmp = realm.objects(this.schema);
- return tmp;
- }
-
- getByUser(userId) {
- let tmp = realm.objects(this.schema);
- tmp = tmp.filtered('to_delete = false AND user_id = ' + userId);
- return tmp;
- }
-
- delete(id) {
- const tmp = this.get(id);
- realm.write(() => {
- tmp.to_delete = true;
- // HARD DELETE - > realm.delete(tmp);
- });
- }
-
- clear() {
- realm.write(() => {
- realm.delete(this.getAll());
- });
- }
-}
-
-export default new ContactsModel();
diff --git a/ComApp/src/Models/Directories.js b/ComApp/src/Models/Directories.js
deleted file mode 100644
index 85d7b99..0000000
--- a/ComApp/src/Models/Directories.js
+++ /dev/null
@@ -1,104 +0,0 @@
-import Database from '../Database';
-
-const Realm = require('realm');
-let realm = new Realm(Database);
-
-class DirectoriesModel {
- constructor() {
- this.schema = 'Directories';
- }
-
- add(directory) {
- realm.write(() => {
- realm.create(this.schema, directory);
- });
- }
-
- update(directory) {
- realm.write(() => {
- realm.create(this.schema, directory, true);
- });
- }
-
- get(id) {
- let tmp = realm.objects(this.schema).filtered('id = ' + id)[0];
- return tmp;
- }
-
- getAll(role, authorizedFolders, format, lang) {
- if (authorizedFolders !== null && authorizedFolders !== undefined) {
- authorizedFolders = JSON.parse(authorizedFolders);
- }
- let tmp = realm.objects(this.schema);
- if (role === 'USER') {
- if (authorizedFolders.length > 0) {
- tmp = tmp.filtered(
- 'needAuthorization = 0 OR ' +
- authorizedFolders
- .map(folder => ' id = "' + folder.id + '"')
- .join(' OR '),
- );
- } else {
- tmp = tmp.filtered(
- 'needAuthorization = 0'
- );
- }
- }
- if (format) {
- return this._recursiveDir(tmp, lang);
- }
- return tmp;
- }
-
- clear() {
- realm.write(() => {
- realm.delete(this.getAll('SYNC', null, false));
- });
- }
-
- _recursiveDir(list, lang, parent = null) {
- let root = list.filter(e => e.parent === parent);
- let tmp = [];
- for (let i = 0; i < root.length; i++) {
- let childs = this._recursiveDir(list, lang, root[i].id);
- let name = JSON.parse(root[i].name);
- tmp[i] = {};
- tmp[i].id = root[i].id;
- tmp[i].name = this.getI18nName(lang, name);
- tmp[i].items = [];
- for (let j = 0; j < childs.length; j++) {
- childs[j].value = childs[j].id;
- tmp[i].items.push(childs[j]);
- }
- if (!tmp[i].items.length) {
- delete tmp[i].items;
- }
- }
- return tmp;
- }
-
- getI18nName(lang, name) {
- let tmp = undefined;
- switch (lang) {
- case "fr":
- tmp = name.fr;
- break;
- case "en":
- tmp = name.en;
- break;
- case "de":
- tmp = name.de;
- break;
- case "es":
- tmp = name.es;
- break;
- }
- if (tmp === undefined) {
- tmp = name.fr;
- }
- return tmp;
- }
-
-}
-
-export default new DirectoriesModel();
diff --git a/ComApp/src/Models/Documents.js b/ComApp/src/Models/Documents.js
deleted file mode 100644
index 18ce430..0000000
--- a/ComApp/src/Models/Documents.js
+++ /dev/null
@@ -1,68 +0,0 @@
-import Database from '../Database';
-
-const Realm = require('realm');
-let realm = new Realm(Database);
-
-class DocumentsModel {
- constructor() {
- this.schema = 'Documents';
- }
-
- add(document) {
- realm.write(() => {
- realm.create(this.schema, document, 'never');
- });
- }
-
- update(document, updatedAtChange = false) {
- let tmp = this.get(document.id);
- if (tmp === undefined) {
- this.add(document);
- } else {
- realm.write(() => {
- if (updatedAtChange === false) {
- realm.create(this.schema, {
- id: tmp.id,
- uuid: document.uuid,
- title: document.title,
- type: document.type,
- path: document.path,
- directory: document.directory
- }, 'modified');
- } else {
- realm.create(this.schema, document, 'modified');
- }
- });
- }
- }
-
- get(id) {
- let tmp = realm.objects(this.schema).filtered('id = ' + id)[0];
- return tmp;
- }
-
- getAll(authorizedDirs = false) {
- let tmp = realm.objects(this.schema);
- if (authorizedDirs) {
- authorizedDirs = authorizedDirs.map(item => item.id);
- tmp = tmp.filter(doc => authorizedDirs.includes(doc.directory));
- }
- return tmp;
- }
-
- clear(docs, toDelete = []) {
- const localDocs = this.getAll();
- localDocs.forEach(doc => {
- let tmp = docs.filter(item => item.uuid === doc.uuid);
- if (tmp.length === 0) {
- toDelete.push({uuid: doc.uuid, type: doc.type});
- realm.write(() => {
- realm.delete(doc);
- });
- }
- });
- return toDelete;
- }
-}
-
-export default new DocumentsModel();
diff --git a/ComApp/src/Models/SendBrochure.js b/ComApp/src/Models/SendBrochure.js
deleted file mode 100644
index fab3920..0000000
--- a/ComApp/src/Models/SendBrochure.js
+++ /dev/null
@@ -1,49 +0,0 @@
-import Database from '../Database';
-
-const Realm = require('realm');
-let realm = new Realm(Database);
-
-class SendBrochureModel {
- constructor() {
- this.schema = 'SendBrochure';
- }
-
- add(data) {
- realm.write(() => {
- if (data.id === undefined) {
- let id: any = realm.objects(this.schema).max('id');
- data.id = id === undefined ? 1 : id + 1;
- }
- realm.create(this.schema, data);
- });
- }
-
- update(data) {
- realm.write(() => {
- realm.create(this.schema, data, true);
- });
- }
-
- get(id) {
- let tmp = realm.objects(this.schema);
- if (tmp.length === 0) {
- return false;
- } else {
- tmp = tmp.filtered('id = ' + id)[0];
- }
- return tmp;
- }
-
- getAll() {
- let tmp = realm.objects(this.schema);
- return tmp;
- }
-
- clear() {
- realm.write(() => {
- realm.delete(this.getAll());
- });
- }
-}
-
-export default new SendBrochureModel();
diff --git a/ComApp/src/Models/Users.js b/ComApp/src/Models/Users.js
deleted file mode 100644
index 1d816ed..0000000
--- a/ComApp/src/Models/Users.js
+++ /dev/null
@@ -1,40 +0,0 @@
-import Database from '../Database';
-
-const Realm = require('realm');
-let realm = new Realm(Database);
-
-class UsersModel {
- constructor() {
- this.schema = 'Users';
- }
-
- add(user) {
- realm.write(() => {
- realm.create(this.schema, user);
- });
- }
-
- update(user) {
- realm.write(() => {
- realm.create(this.schema, user, true);
- });
- }
-
- get(id) {
- let tmp = realm.objects(this.schema).filtered('id = ' + id)[0];
- return tmp;
- }
-
- getAll() {
- let tmp = realm.objects(this.schema);
- return tmp;
- }
-
- clear() {
- realm.write(() => {
- realm.delete(this.getAll());
- });
- }
-}
-
-export default new UsersModel();
diff --git a/ComApp/src/Navigation.js b/ComApp/src/Navigation.js
index 442d293..923f10a 100644
--- a/ComApp/src/Navigation.js
+++ b/ComApp/src/Navigation.js
@@ -1,19 +1,9 @@
-import { View, Text, Image } from 'react-native';
-// FileSytem
-import * as FileSystem from 'expo-file-system';
+import { createNavigationContainerRef } from '@react-navigation/native';
-class CustomNavigation {
- LogoTitle(title) {
- return (
-
-
- {title}
-
- );
+export const navigationRef = createNavigationContainerRef()
+
+export function navigate(name, params) {
+ if (navigationRef.isReady()) {
+ navigationRef.navigate(name, params);
}
-}
-
-export default new CustomNavigation();
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/ComApp/src/Resources/CommonStyles.js b/ComApp/src/Resources/CommonStyles.js
index c5f4257..2df8c77 100644
--- a/ComApp/src/Resources/CommonStyles.js
+++ b/ComApp/src/Resources/CommonStyles.js
@@ -1,19 +1,19 @@
import { StyleSheet } from 'react-native';
const commonStyles = StyleSheet.create({
- background: {
- width: '100%',
- height: '100%'
+ background: {
+ flex: 1,
+ justifyContent: "center"
},
- textInput: {
- height: 40,
- width: 300,
- borderColor: 'grey',
- borderWidth: 1,
- marginBottom: 20,
- backgroundColor: 'white',
- paddingLeft: 10
- }
+ textInput: {
+ height: 40,
+ width: 300,
+ borderColor: 'grey',
+ borderWidth: 1,
+ marginBottom: 20,
+ backgroundColor: 'white',
+ paddingLeft: 10
+ }
});
export default commonStyles;
\ No newline at end of file
diff --git a/ComApp/src/Resources/Locales/de.json b/ComApp/src/Resources/Locales/de.json
index e094cee..89c4498 100644
--- a/ComApp/src/Resources/Locales/de.json
+++ b/ComApp/src/Resources/Locales/de.json
@@ -1,5 +1,19 @@
{
+ "install": {
+ "installation": "Installation",
+ "install": "Installieren Sie",
+ "enter_url": "Bitte geben Sie den Link zu Ihrem Backoffice ein",
+ "url_invalid": "Der eingegebene Link ist ungültig.",
+ "resource_dl_error": "Beim Herunterladen der folgenden Lerneinheit ist ein Fehler aufgetreten: ",
+ "install_complete": "Installation abgeschlossen!",
+ "get_app_setting": "Wiederherstellen der Konfiguration der Anwendung",
+ "get_content_setting": "Abrufen der Konfiguration des Inhalts der Anwendung"
+ },
"global": {
+ "change_lang": "Sprache wechseln",
+ "sync": "Synchronisation",
+ "logout": "Abmeldung",
+ "close": "Schließen Sie",
"install": "Installieren",
"yes": "Ja",
"no": "Nein",
@@ -41,11 +55,6 @@
"username": "Benutzername",
"password": "Passwort"
},
- "home_s": {
- "1": "Kataloge",
- "2": "Datenblätter",
- "3": "Andere"
- },
"search_s": {
"no_result": "Keine Ergebnisse"
},
@@ -105,53 +114,5 @@
"invalid_firstname": "ungültiger Vorname",
"camera_permission_denied": "Kameraerlaubnis verweigert",
"pending_camera_permission": "Warten auf Kameraerlaubnis"
- },
- "custom": {
- "select-1": {
- "title": "Type de commerce",
- "c1": "Commerce de détail",
- "c2": "Home Service / Freezer Center",
- "c3": "Restauration service à table",
- "c4": "Fast food et snacking",
- "c5": "Cafétaria / Self Service",
- "c6": "Société de restauration",
- "c7": "Restauration gré à gré / cuisine Centrale",
- "c8": "Distributeur indépendant",
- "c9": "Boulangerie pâtisserie",
- "c10": "PAI",
- "c11": "Destockeur",
- "c12": "Commerce Halal",
- "c13": "Restauration d'hébergement",
- "c14": "Centrale restauration commerciale",
- "c15": "Restauration évenementielle et parc",
- "c16": "Restauration de transport",
- "c17": "Marché public",
- "c18": "Cash",
- "c19": "Distributeur national",
- "c20": "Rungis",
- "c21": "Abbatoir",
- "c22": "Autre"
- },
- "select-2": {
- "title": "Site",
- "c1": "Celvia Dinde",
- "c2": "Celvia Elaborés",
- "c3": "Celvia Sérent",
- "c4": "Procanar",
- "c5": "Celtys",
- "c6": "Farmor",
- "c7": "Robichon",
- "c8": "Les Volailles de Kerana",
- "c9": "Bosher Volaille",
- "c10": "LDC Bretagne",
- "c11": "Doux Farmor",
- "c12": "Favreau"
- },
- "interest": {
- "p1": "Poulet",
- "p2": "Dinde",
- "p3": "Canard",
- "p4": "Autre"
- }
}
}
diff --git a/ComApp/src/Resources/Locales/en.json b/ComApp/src/Resources/Locales/en.json
index 6f3d713..757a6c9 100644
--- a/ComApp/src/Resources/Locales/en.json
+++ b/ComApp/src/Resources/Locales/en.json
@@ -1,5 +1,19 @@
{
+ "install": {
+ "installation": "Installation",
+ "install": "Install",
+ "enter_url": "Please enter your back office link",
+ "url_invalid": "The link you entered is invalid.",
+ "resource_dl_error": "An error occurred while downloading the following resource: ",
+ "install_complete": "Installation is complete!",
+ "get_app_setting": "Retrieving the application's configuration",
+ "get_content_setting": "Retrieving the configuration of the application content"
+ },
"global": {
+ "change_lang": "Change language",
+ "sync": "Synchronization",
+ "logout": "Logout",
+ "close": "Close",
"install": "Install",
"yes": "Yes",
"no": "No",
@@ -41,11 +55,6 @@
"username": "Username",
"password": "Password"
},
- "home_s": {
- "1": "Catalogs",
- "2": "Data sheets",
- "3": "Others"
- },
"search_s": {
"no_result": "No Result"
},
@@ -105,53 +114,5 @@
"invalid_firstname": "Invalid firstname",
"camera_permission_denied": "Camera Permission Denied",
"pending_camera_permission": "Waiting for the camera permission"
- },
- "custom": {
- "select-1": {
- "title": "Type de commerce",
- "c1": "Commerce de détail",
- "c2": "Home Service / Freezer Center",
- "c3": "Restauration service à table",
- "c4": "Fast food et snacking",
- "c5": "Cafétaria / Self Service",
- "c6": "Société de restauration",
- "c7": "Restauration gré à gré / cuisine Centrale",
- "c8": "Distributeur indépendant",
- "c9": "Boulangerie pâtisserie",
- "c10": "PAI",
- "c11": "Destockeur",
- "c12": "Commerce Halal",
- "c13": "Restauration d'hébergement",
- "c14": "Centrale restauration commerciale",
- "c15": "Restauration évenementielle et parc",
- "c16": "Restauration de transport",
- "c17": "Marché public",
- "c18": "Cash",
- "c19": "Distributeur national",
- "c20": "Rungis",
- "c21": "Abbatoir",
- "c22": "Autre"
- },
- "select-2": {
- "title": "Site",
- "c1": "Celvia Dinde",
- "c2": "Celvia Elaborés",
- "c3": "Celvia Sérent",
- "c4": "Procanar",
- "c5": "Celtys",
- "c6": "Farmor",
- "c7": "Robichon",
- "c8": "Les Volailles de Kerana",
- "c9": "Bosher Volaille",
- "c10": "LDC Bretagne",
- "c11": "Doux Farmor",
- "c12": "Favreau"
- },
- "interest": {
- "p1": "Poulet",
- "p2": "Dinde",
- "p3": "Canard",
- "p4": "Autre"
- }
}
}
diff --git a/ComApp/src/Resources/Locales/fr.json b/ComApp/src/Resources/Locales/fr.json
index 7761ed5..8274f78 100644
--- a/ComApp/src/Resources/Locales/fr.json
+++ b/ComApp/src/Resources/Locales/fr.json
@@ -10,6 +10,10 @@
"get_content_setting": "Récupération de la configuration du contenu de l'application"
},
"global": {
+ "change_lang": "Changer de langue",
+ "sync": "Synchronisation",
+ "logout": "Se déconnecter",
+ "close": "Fermer",
"yes": "Oui",
"no": "Non",
"home": "Accueil",
@@ -51,11 +55,6 @@
"password": "Mot de passe",
"missing_users": "Utilisateurs introuvables"
},
- "home_s": {
- "1": "Catalogues",
- "2": "Fiches techniques",
- "3": "Autres"
- },
"search_s": {
"no_result": "Aucun résultat"
},
@@ -119,53 +118,5 @@
"alert": {
"error": "Erreur",
"info": "Information"
- },
- "custom": {
- "select-1": {
- "title": "Type de commerce",
- "c1": "Commerce de détail",
- "c2": "Home Service / Freezer Center",
- "c3": "Restauration service à table",
- "c4": "Fast food et snacking",
- "c5": "Cafétaria / Self Service",
- "c6": "Société de restauration",
- "c7": "Restauration gré à gré / cuisine Centrale",
- "c8": "Distributeur indépendant",
- "c9": "Boulangerie pâtisserie",
- "c10": "PAI",
- "c11": "Destockeur",
- "c12": "Commerce Halal",
- "c13": "Restauration d'hébergement",
- "c14": "Centrale restauration commerciale",
- "c15": "Restauration évenementielle et parc",
- "c16": "Restauration de transport",
- "c17": "Marché public",
- "c18": "Cash",
- "c19": "Distributeur national",
- "c20": "Rungis",
- "c21": "Abbatoir",
- "c22": "Autre"
- },
- "select-2": {
- "title": "Site",
- "c1": "Celvia Dinde",
- "c2": "Celvia Elaborés",
- "c3": "Celvia Sérent",
- "c4": "Procanar",
- "c5": "Celtys",
- "c6": "Farmor",
- "c7": "Robichon",
- "c8": "Les Volailles de Kerana",
- "c9": "Bosher Volaille",
- "c10": "LDC Bretagne",
- "c11": "Doux Farmor",
- "c12": "Favreau"
- },
- "interest": {
- "p1": "Poulet",
- "p2": "Dinde",
- "p3": "Canard",
- "p4": "Autre"
- }
}
}
diff --git a/ComApp/src/Resources/Styles/ContactStyle.js b/ComApp/src/Resources/Styles/ContactStyle.js
index 6d2f1d8..5a9776f 100644
--- a/ComApp/src/Resources/Styles/ContactStyle.js
+++ b/ComApp/src/Resources/Styles/ContactStyle.js
@@ -18,7 +18,6 @@ const styles = StyleSheet.create({
textAlign: 'center',
fontSize: 18,
width: width / 4,
- color: '#ea4f52',
fontWeight: 'bold'
},
company: {
@@ -68,8 +67,7 @@ const styles = StyleSheet.create({
btnSearch: {
width: 50,
alignItems: 'center',
- justifyContent: 'center',
- backgroundColor: '#ea4f52'
+ justifyContent: 'center'
}
});
diff --git a/ComApp/src/Resources/Styles/DirectoriesStyle.js b/ComApp/src/Resources/Styles/DirectoriesStyle.js
index 71b6344..224481f 100644
--- a/ComApp/src/Resources/Styles/DirectoriesStyle.js
+++ b/ComApp/src/Resources/Styles/DirectoriesStyle.js
@@ -22,7 +22,6 @@ const styles = StyleSheet.create({
alignItems: 'center',
height: 200,
width: 180,
- backgroundColor: '#ea4f52',
margin: 10,
},
fileTxt: {
diff --git a/ComApp/src/Resources/Styles/NavigationStyle.js b/ComApp/src/Resources/Styles/NavigationStyle.js
index c901ded..49b35a4 100644
--- a/ComApp/src/Resources/Styles/NavigationStyle.js
+++ b/ComApp/src/Resources/Styles/NavigationStyle.js
@@ -3,7 +3,6 @@ import { StyleSheet } from 'react-native';
const styles = StyleSheet.create({
searchInput: {
borderWidth: 1,
- borderColor: '#ea4f52',
width: 200,
paddingLeft: 20,
},
@@ -12,7 +11,27 @@ const styles = StyleSheet.create({
height: 50,
alignItems: 'center',
justifyContent: 'center',
- backgroundColor: '#ea4f52'
+ },
+ drawer: {
+ container: {
+ flex: 1,
+ alignItems: "center",
+ justifyContent: "space-between",
+ backgroundColor: "#ffffff",
+ padding: 20
+ },
+ btn: {
+ borderWidth: 1,
+ borderColor: 'black',
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ padding: 10,
+ marginBottom: 10
+ },
+ btnText: {
+ marginLeft: 10
+ },
}
});
diff --git a/ComApp/src/Resources/Styles/OnlyVideosStyle.js b/ComApp/src/Resources/Styles/OnlyVideosStyle.js
index ba6a5fa..7cefdb5 100644
--- a/ComApp/src/Resources/Styles/OnlyVideosStyle.js
+++ b/ComApp/src/Resources/Styles/OnlyVideosStyle.js
@@ -19,7 +19,6 @@ const styles = StyleSheet.create({
alignItems: 'center',
height: 200,
width: 180,
- backgroundColor: '#ea4f52',
margin: 10,
},
fileTxt: {
diff --git a/ComApp/src/Resources/Styles/SearchStyle.js b/ComApp/src/Resources/Styles/SearchStyle.js
index ba6a5fa..7cefdb5 100644
--- a/ComApp/src/Resources/Styles/SearchStyle.js
+++ b/ComApp/src/Resources/Styles/SearchStyle.js
@@ -19,7 +19,6 @@ const styles = StyleSheet.create({
alignItems: 'center',
height: 200,
width: 180,
- backgroundColor: '#ea4f52',
margin: 10,
},
fileTxt: {
diff --git a/ComApp/src/Resources/assets/img/background_ldc.png b/ComApp/src/Resources/assets/img/background_ldc.png
index f32bb09..916a957 100644
Binary files a/ComApp/src/Resources/assets/img/background_ldc.png and b/ComApp/src/Resources/assets/img/background_ldc.png differ
diff --git a/ComApp/src/Resources/assets/img/logo-square-ldc.png b/ComApp/src/Resources/assets/img/logo-square-ldc.png
index 58c494b..d8d270b 100644
Binary files a/ComApp/src/Resources/assets/img/logo-square-ldc.png and b/ComApp/src/Resources/assets/img/logo-square-ldc.png differ
diff --git a/ComApp/src/Resources/assets/img/logo.png b/ComApp/src/Resources/assets/img/logo.png
new file mode 100644
index 0000000..c5f44e3
Binary files /dev/null and b/ComApp/src/Resources/assets/img/logo.png differ
diff --git a/ComApp/src/Resources/assets/img/splashscreen.png b/ComApp/src/Resources/assets/img/splashscreen.png
new file mode 100644
index 0000000..eccf00c
Binary files /dev/null and b/ComApp/src/Resources/assets/img/splashscreen.png differ
diff --git a/ComApp/src/Views/Contact.js b/ComApp/src/Views/Contact.js
deleted file mode 100644
index acb307c..0000000
--- a/ComApp/src/Views/Contact.js
+++ /dev/null
@@ -1,614 +0,0 @@
-import React from 'react';
-import {
- View,
- StyleSheet,
- Button,
- FlatList,
- Text,
- Dimensions,
- TouchableOpacity,
- Alert,
- TextInput,
-} from 'react-native';
-import Icon from 'react-native-vector-icons/FontAwesome';
-import { connect, ReactReduxContext } from 'react-redux';
-import { showMessage } from 'react-native-flash-message';
-import { Overlay } from '@rneui/themed';
-import Helpers from "../Controllers/Helpers";
-import i18n from "../I18n";
-import { Picker } from '@react-native-picker/picker';
-
-function mapStateToProps(state) {
- return {
- users: state.users,
- contacts: state.contacts,
- documents: state.documents,
- currentUser: state.currentUser,
- };
-}
-
-class ContactScreen extends React.Component {
- state = {
- contacts: [],
- sortType: 'asc',
- sortField: 'name',
- searchTxt: '',
- showTransferContact: false,
- selectedTransferUser: 0,
- contactToTransfer: {},
- showSendBrochure: false,
- selectedDocument: -1,
- sendDocumentList: [],
- selectedSendBrochureEmail: -1,
- tmpSendBrochureEmail: '',
- tmpSendBrochureSubject: '',
- tmpSendBrochureMessage: '',
- sortedDocuments: [],
- sortedEmails: [],
- };
-
- sendBrochure() {
- if (
- this.state.tmpSendBrochureEmail !== '' &&
- this.state.tmpSendBrochureSubject !== '' &&
- this.state.tmpSendBrochureMessage !== '' &&
- this.state.sendDocumentList.length > 0 &&
- Helpers.isEmailValid(this.state.tmpSendBrochureEmail)
- ) {
- const email = {
- email: this.state.tmpSendBrochureEmail,
- subject: this.state.tmpSendBrochureSubject,
- message: this.state.tmpSendBrochureMessage,
- documents: JSON.stringify(this.state.sendDocumentList),
- user_id: this.props.currentUser.id
- };
- this.props.dispatch({ type: 'SEND_BROCHURE', data: email });
- this.setState({
- showSendBrochure: false,
- tmpSendBrochureEmail: '',
- tmpSendBrochureSubject: '',
- tmpSendBrochureMessage: '',
- selectedSendBrochureEmail: -1,
- selectedDocument: -1,
- sendDocumentList: [],
- });
- showMessage({
- message: i18n.t('global.message_sent') + '.',
- description: i18n.t('global.message_will_be_sent_after_sync') + '.',
- type: 'success',
- duration: 1500,
- });
- } else {
- Alert.alert(
- i18n.t('error.incomplete_form'),
- i18n.t('error.fill_all_fields_and_1_doc_min') + '.',
- );
- }
- }
-
- transferContact() {
- const nextUser = this.props.users.filter(user => user.id !== this.props.currentUser.id)[this.state.selectedTransferUser];
- const transferContact = this.state.contactToTransfer;
- const contact = {
- id: transferContact.id,
- email: transferContact.email,
- type: transferContact.type,
- other: transferContact.other,
- network: transferContact.network,
- name: transferContact.name,
- firstname: transferContact.firstname,
- office: transferContact.office,
- company: transferContact.company,
- address: transferContact.address,
- phone: transferContact.phone,
- products: transferContact.products,
- notes: transferContact.note,
- visits: transferContact.visits,
- to_delete: false,
- synced: false,
- user_id: nextUser.id,
- };
- this.props.dispatch({ type: 'UPDATE_CONTACT', data: contact });
- this.setState({ showTransferContact: false });
- showMessage({
- message: i18n.t('contact_s.contact_transferred') + '.',
- description: i18n.t('contact_s.contact_will_be_sent_after_sync') + '.',
- type: 'success',
- duration: 1500,
- });
- }
-
- deleteContact(id) {
- Alert.alert(
- i18n.t('global.confirmation'),
- i18n.t('contact_s.confirm_contact_delete'),
- [
- {
- text: i18n.t('global.no'),
- onPress: () => console.log('Cancel Pressed'),
- style: 'cancel',
- },
- {
- text: i18n.t('global.yes'),
- onPress: () => {
- this.setState({ contacts: [], sortedEmails: [] });
- this.props.dispatch({ type: 'DELETE_CONTACT', data: id });
- showMessage({
- message: i18n.t('contact_s.contact_deleted') + '.',
- type: 'success',
- duration: 500,
- });
- },
- },
- ],
- { cancelable: false },
- );
- }
-
- Item(item) {
- return (
-
-
- this.props.navigation.navigate('ContactDetailsScreen', {
- action: 'edit',
- contactId: item.id,
- })
- }>
-
- {item.name.toUpperCase()} {item.firstname}
-
-
- {item.company}
- {item.email}
-
- {
- this.deleteContact(item.id);
- }}>
-
-
- {
- this.setState({
- showTransferContact: true,
- contactToTransfer: item,
- });
- }}>
-
-
-
-
- );
- }
-
- sortContacts(field) {
- let sort;
- if (field !== this.state.sortField) {
- sort = 'asc';
- } else {
- if (this.state.sortType === 'asc') {
- sort = 'desc';
- } else {
- sort = 'asc';
- }
- }
- let obj = this.props.contacts;
- let array = Object.keys(obj).map(function (key) { return obj[key]; });
- this.setState({ contacts: array.sort(Helpers.compareValues(field, sort)), sortType: sort, sortField: field });
- //this.setState({ contacts: this.state.contacts.sort(Helpers.compareValues(field, sort)), sortType: sort, sortField: field });
- }
-
- HeaderItem() {
- return (
-
- {
- this.sortContacts('name');
- }}>
- {i18n.t('global.name')}
-
- {
- this.sortContacts('company');
- }}>
- {i18n.t('global.company')}
-
- {i18n.t('global.email')}
-
-
- );
- }
-
- handleSearchBtn() {
- if (this.state.searchTxt.length > 0) {
- let obj = this.props.contacts;
- let array = Object.keys(obj).map(function (key) { return obj[key]; });
- this.setState({ contacts: array.sort(Helpers.compareValues('name', 'asc')), sortType: 'asc', searchTxt: '' });
- }
- }
- handleSearchTxt(text) {
- this.setState({ searchTxt: text });
- if (text.length > 0) {
- let tmpContactsName = this.props.contacts.filter(item => item.name.toLowerCase().indexOf(text.toLowerCase()) >= 0);
- let tmpContactsCompany = this.props.contacts.filter(item => {
- if (item.company === null) {
- return false;
- }
- return item.company.toLowerCase().indexOf(text.toLowerCase()) >= 0
- });
- let resSearch = Object.assign(tmpContactsName, tmpContactsCompany);
- this.setState({ contacts: resSearch.sort(Helpers.compareValues('name', 'asc')), sortType: 'asc' });
- } else {
- let obj = this.props.contacts;
- let array = Object.keys(obj).map(function (key) { return obj[key]; });
- this.setState({ contacts: array.sort(Helpers.compareValues('name', 'asc')), sortType: 'asc' });
- }
- }
-
- componentDidMount() {
- this.init();
- }
-
- componentDidUpdate(prevProps, prevState, snapshot) {
- if (prevProps.contacts !== this.props.contacts) {
- this.init();
- }
- }
-
- init() {
- let objContacts = this.props.contacts;
- let objDocs = this.props.documents;
- let arrayContacts = Object.keys(objContacts).map(function (key) { return objContacts[key]; });
- let arrayEmails = Object.keys(objContacts).map(function (key) { return objContacts[key]; });
- let arrayDocs = Object.keys(objDocs).map(function (key) { return objDocs[key]; });
-
- this.setState({
- contacts: arrayContacts.sort(Helpers.compareValues('name', 'asc')),
- sortedDocuments: arrayDocs.sort(Helpers.compareValues('title', 'asc')),
- sortedEmails: arrayEmails.sort(Helpers.compareValues('email', 'asc')),
- sortType: 'asc',
- sortField: 'name',
- });
- }
-
- render() {
- const { contactAdded } = this.props.route.params;
- if (contactAdded === true) {
- this.props.navigation.setParams({ contactAdded: false });
- showMessage({
- message: i18n.t('contact_s.contact_added') + '.',
- type: 'success',
- duration: 500,
- });
- }
- return (
-
-
-
- this.props.navigation.navigate('ContactDetailsScreen', {
- action: 'add',
- })
- }
- />
- this.setState({ showSendBrochure: true })}
- />
-
- this.handleSearchTxt(text)} />
- this.handleSearchBtn()}>
- {this.state.searchTxt.length > 0 ? (
-
- ) : (
-
- )}
-
-
-
-
- this.Item(item)}
- ListHeaderComponent={this.HeaderItem.bind(this)}
- keyExtractor={item => item.id.toString()}
- />
-
-
-
- {i18n.t('contact_s.select_contact')} :
- {
- this.setState({ selectedTransferUser: itemIndex });
- }}>
- {this.props.users.filter(user => user.id !== this.props.currentUser.id).map((item, index) => {
- return ;
- })}
-
-
- this.setState({ showTransferContact: false })}
- />
- this.transferContact()}
- />
-
-
-
-
-
-
-
-
- this.setState({ tmpSendBrochureEmail: text })
- }
- />
- {
- if (itemValue !== '-1') {
- this.setState({
- tmpSendBrochureEmail: this.state.sortedEmails[itemIndex - 1]
- .email,
- });
- }
- }}>
-
- {this.state.sortedEmails.map((item, index) => {
- return ;
- })}
-
-
- this.setState({ tmpSendBrochureSubject: text })
- }
- />
-
- this.setState({ tmpSendBrochureMessage: text })
- }
- />
- {
- if (
- itemValue !== '-1' &&
- this.state.sendDocumentList.length < 8
- ) {
- let tmp = this.state.sendDocumentList;
- const toPush = this.state.sortedDocuments[itemIndex - 1];
- const test = this.state.sendDocumentList.filter(
- item => item.id === toPush.id,
- );
- if (test.length === 0) {
- tmp.push(toPush);
- this.setState({
- sendDocumentList: tmp,
- });
- }
- }
- }}>
-
- {this.state.sortedDocuments.map((item, index) => {
- return (
-
- );
- })}
-
-
-
- {this.state.sendDocumentList.map((item, index) => {
- return (
- {
- let tmp = this.state.sendDocumentList;
- tmp.splice(this.props.documents[index], 1);
- this.setState({
- sendDocumentList: tmp,
- });
- }}>
-
-
- {item.title} ({item.type.toUpperCase()}){' '}
-
-
-
-
- );
- })}
-
-
-
-
- this.setState({
- showSendBrochure: false,
- tmpSendBrochureEmail: '',
- tmpSendBrochureSubject: '',
- tmpSendBrochureMessage: '',
- selectedSendBrochureEmail: -1,
- selectedDocument: -1,
- sendDocumentList: [],
- })
- }
- />
- this.sendBrochure()} color={'#ea4f52'} />
-
-
-
-
- );
- }
-}
-
-const { width } = Dimensions.get('window');
-const styles = StyleSheet.create({
- container: {
- flex: 1,
- flexDirection: 'column',
- },
- item: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- alignItems: 'center',
- borderBottomWidth: 1,
- padding: 15,
- marginHorizontal: 15,
- },
- clickable: {
- textAlign: 'center',
- fontSize: 18,
- width: width / 4,
- color: '#ea4f52',
- fontWeight: 'bold'
- },
- company: {
- textAlign: 'center',
- fontSize: 15,
- width: width / 4,
- },
- email: {
- textAlign: 'center',
- fontSize: 15,
- width: width / 4,
- },
- buttons: {
- justifyContent: 'center',
- flexDirection: 'row',
- fontSize: 15,
- width: width / 4,
- },
- button: {
- width: 35,
- height: 35,
- justifyContent: 'center',
- alignItems: 'center',
- margin: 2,
- },
- txtSendBrochure: {
- borderWidth: 1,
- borderColor: 'lightgrey',
- width: 280,
- marginBottom: 5,
- paddingLeft: 10,
- },
- textAreaSendBrochure: {
- borderWidth: 1,
- borderColor: 'lightgrey',
- width: 280,
- height: 150,
- marginBottom: 5,
- paddingLeft: 10,
- textAlignVertical: 'top',
- },
- inputSearch: {
- backgroundColor: 'white',
- width: 200,
- paddingLeft: 20
- },
- btnSearch: {
- width: 50,
- alignItems: 'center',
- justifyContent: 'center',
- backgroundColor: '#ea4f52'
- }
-});
-
-export default connect(mapStateToProps)(ContactScreen);
diff --git a/ComApp/src/Views/ContactDetails.js b/ComApp/src/Views/ContactDetails.js
index c635aea..6135ed2 100644
--- a/ComApp/src/Views/ContactDetails.js
+++ b/ComApp/src/Views/ContactDetails.js
@@ -152,7 +152,7 @@ class ContactDetailsScreen extends React.Component {
};
if (action === 'edit') {
contact.id = this.state.tmpID;
- this.props.dispatch({ type: 'UPDATE_CONTACT', data: contact });
+ this.props.dispatch({ type: 'EDIT_CONTACT', data: contact });
this.populate();
showMessage({
message: i18n.t('contact_details_s.contact_saved') + '.',
@@ -344,7 +344,7 @@ class ContactDetailsScreen extends React.Component {
justifyContent: 'center',
}}>
this.updateContactType('client')}
/>
this.updateContactType('prospect')}
/>
this.setState({ p1: !this.state.p1 })}
containerStyle={styles.clearCheckbox}
/>
this.setState({ p2: !this.state.p2 })}
containerStyle={styles.clearCheckbox}
/>
this.setState({ p3: !this.state.p3 })}
containerStyle={styles.clearCheckbox}
/>
this.setState({ p4: !this.state.p4 })}
diff --git a/ComApp/src/Views/ContactDetails_MC.js b/ComApp/src/Views/ContactDetails_MC.js
index 1341caf..2414324 100644
--- a/ComApp/src/Views/ContactDetails_MC.js
+++ b/ComApp/src/Views/ContactDetails_MC.js
@@ -152,7 +152,7 @@ class ContactDetailsScreen extends React.Component {
};
if (action === 'edit') {
contact.id = this.state.tmpID;
- this.props.dispatch({ type: 'UPDATE_CONTACT', data: contact });
+ this.props.dispatch({ type: 'EDIT_CONTACT', data: contact });
this.populate();
showMessage({
message: i18n.t('contact_details_s.contact_saved') + '.',
@@ -344,7 +344,7 @@ class ContactDetailsScreen extends React.Component {
justifyContent: 'center',
}}>
this.updateContactType('client')}
/>
this.updateContactType('prospect')}
/>
this.setState({ p1: !this.state.p1 })}
containerStyle={styles.clearCheckbox}
/>
this.setState({ p2: !this.state.p2 })}
containerStyle={styles.clearCheckbox}
/>
this.setState({ p3: !this.state.p3 })}
containerStyle={styles.clearCheckbox}
/>
this.setState({ p4: !this.state.p4 })}
diff --git a/ComApp/src/Views/ContactDetails_RHD.js b/ComApp/src/Views/ContactDetails_RHD.js
index 9f39b82..724a6d1 100644
--- a/ComApp/src/Views/ContactDetails_RHD.js
+++ b/ComApp/src/Views/ContactDetails_RHD.js
@@ -152,7 +152,7 @@ class ContactDetailsScreen extends React.Component {
};
if (action === 'edit') {
contact.id = this.state.tmpID;
- this.props.dispatch({ type: 'UPDATE_CONTACT', data: contact });
+ this.props.dispatch({ type: 'EDIT_CONTACT', data: contact });
this.populate();
showMessage({
message: i18n.t('contact_details_s.contact_saved') + '.',
@@ -343,7 +343,7 @@ class ContactDetailsScreen extends React.Component {
justifyContent: 'center',
}}>
this.updateContactType('client')}
/>
this.updateContactType('prospect')}
/>
this.setState({ p1: !this.state.p1 })}
containerStyle={styles.clearCheckbox}
/>
this.setState({ p2: !this.state.p2 })}
containerStyle={styles.clearCheckbox}
/>
this.setState({ p3: !this.state.p3 })}
containerStyle={styles.clearCheckbox}
/>
this.setState({ p4: !this.state.p4 })}
containerStyle={styles.clearCheckbox}
/>
this.setState({ p5: !this.state.p5 })}
containerStyle={styles.clearCheckbox}
/>
this.setState({ p6: !this.state.p6 })}
containerStyle={styles.clearCheckbox}
/>
this.setState({ p7: !this.state.p7 })}
containerStyle={styles.clearCheckbox}
/>
this.setState({ p8: !this.state.p8 })}
containerStyle={styles.clearCheckbox}
/>
this.setState({ p9: !this.state.p9 })}
diff --git a/ComApp/src/Views/Directories.js b/ComApp/src/Views/Directories.js
deleted file mode 100644
index 2cf7cfc..0000000
--- a/ComApp/src/Views/Directories.js
+++ /dev/null
@@ -1,114 +0,0 @@
-import React from 'react';
-import {
- View,
- StyleSheet,
- ScrollView,
- TouchableOpacity,
- Text,
-} from 'react-native';
-import {connect} from 'react-redux';
-import TreeView from 'react-native-animated-tree-view';
-import Icon from 'react-native-vector-icons/FontAwesome5';
-
-function mapStateToProps(state) {
- return {
- documents: state.documents,
- };
-}
-
-class DirectoriesScreen extends React.Component {
- state = {
- documents: [],
- };
-
- showDocuments(folder) {
- const documents = this.props.documents.filter(
- tmp => tmp.directory === folder.id,
- );
- this.setState({documents: documents});
- }
-
- openDocument(document) {
- this.props.dispatch({type: 'SET_CURRENT_OPENED_DOC', data: document});
- if (document.type === 'pdf') {
- this.props.navigation.navigate('PDFScreen', {uuid: document.uuid});
- } else if (document.type === 'mp4') {
- this.props.navigation.navigate('VideoScreen', {uuid: document.uuid});
- } else {
- console.log('Inconnu');
- }
- }
-
- render() {
- const {folder} = this.props.route.params;
- let documentList = this.state.documents.map(document => {
- return (
- this.openDocument(document)}>
- {document.type === 'pdf' ? (
-
- ) : (
-
- )}
- {document.title}
-
- );
- });
-
- return (
-
-
- this.showDocuments(tmp)}
- />
-
-
- {documentList}
-
-
- );
- }
-}
-
-const styles = StyleSheet.create({
- container: {
- flex: 1,
- flexDirection: 'row',
- },
- treeviewContainer: {
- width: 290,
- },
- scrollview: {
- flex: 2,
- },
- filesContainer: {
- flex: 1,
- flexDirection: 'row',
- flexWrap: 'wrap',
- justifyContent: 'center',
- },
- file: {
- justifyContent: 'center',
- alignItems: 'center',
- height: 200,
- width: 180,
- backgroundColor: '#ea4f52',
- margin: 10,
- },
- fileTxt: {
- textAlign: 'center',
- color: 'white',
- fontWeight: 'bold',
- fontSize: 18,
- padding: 5
- }
-});
-
-export default connect(mapStateToProps)(DirectoriesScreen);
diff --git a/ComApp/src/Views/Home.js b/ComApp/src/Views/Home.js
deleted file mode 100644
index 28ba859..0000000
--- a/ComApp/src/Views/Home.js
+++ /dev/null
@@ -1,112 +0,0 @@
-import React from 'react';
-import { View, StyleSheet, ImageBackground, TouchableOpacity, Text, Image } from 'react-native';
-import { connect } from 'react-redux';
-import NetInfo from '@react-native-community/netinfo';
-import Sync from '../Controllers/Sync';
-import * as SplashScreen from 'expo-splash-screen';
-import i18n from "../I18n";
-
-function mapStateToProps(state) {
- return {
- directories: state.directories,
- locale: state.locale,
- };
-}
-
-class HomeScreen extends React.Component {
- state = {
- lastSyncCall: '2020-02-12',
- };
- componentDidMount() {
- this.props.dispatch({ type: 'INIT' });
- SplashScreen.hideAsync();
- }
-
- unsubscribe() {
- NetInfo.addEventListener(state => {
- if (state.isConnected === true) {
- let seconds =
- Math.abs(new Date(this.state.lastSyncCall) - Date.now()) / 1000;
- //console.log(seconds);
- if (seconds > 30) {
- this.setState({ lastSyncCall: Date.now() });
- Sync.needSync(this.openSync.bind(this));
- }
- }
- });
- }
-
- openSync() {
- this.props.navigation.navigate('SyncScreen', { isInstalled: true });
- }
-
- openFolder(folderID) {
- const folder = this.props.directories.filter(tmp => tmp.id === folderID);
- this.props.navigation.navigate('DirectoriesScreen', { folder: folder });
- }
-
- render() {
- i18n.locale = this.props.locale;
- this.unsubscribe();
- return (
-
-
- this.openFolder(2)} style={styles.button}>
-
- {i18n.t('home_s.1')}
-
- this.openFolder(3)} style={styles.button}>
-
- {i18n.t('home_s.2')}
-
- this.props.navigation.navigate('OnlyVideosScreen')} style={styles.button}>
-
- {i18n.t('global.videos')}
-
- this.props.navigation.navigate('ContactScreen')} style={styles.button}>
-
- {i18n.t('global.contacts')}
-
-
-
- );
- }
-}
-
-const styles = StyleSheet.create({
- container: {
- flex: 1,
- alignItems: 'flex-end',
- justifyContent: 'center',
- },
- text: {
- height: 40,
- width: 300,
- borderColor: 'grey',
- borderWidth: 1,
- marginBottom: 20,
- },
- button: {
- flexDirection: 'row',
- justifyContent: 'center',
- alignItems: 'center',
- backgroundColor: 'white',
- marginBottom: 20,
- marginRight: 50,
- width: 400,
- height: 80,
- borderRadius: 10
- },
- btnTxt: {
- fontSize: 20
- },
- btnImg: {
- position: 'absolute',
- left: 15,
- height: 50,
- width: 50,
- resizeMode: 'stretch'
- }
-});
-
-export default connect(mapStateToProps)(HomeScreen);
diff --git a/ComApp/src/Views/Login.js b/ComApp/src/Views/Login.js
deleted file mode 100644
index ce51501..0000000
--- a/ComApp/src/Views/Login.js
+++ /dev/null
@@ -1,163 +0,0 @@
-import React from 'react';
-import { View, StyleSheet, TextInput, Button, Alert, ImageBackground, Image } from 'react-native';
-import { connect } from 'react-redux';
-import { verify } from 'react-native-b-crypt-bridge';
-import Sync from '../Controllers/Sync';
-import CommonModel from '../Models/Common';
-import * as SplashScreen from 'expo-splash-screen';
-import NetInfo from "@react-native-community/netinfo";
-import i18n from "../I18n";
-
-function mapStateToProps(state) {
- return {
- users: state.users,
- locale: state.locale,
- };
-}
-
-class LoginScreen extends React.Component {
- state = {
- login: '',
- password: '',
- };
-
- componentDidMount(): void {
- SplashScreen.hideAsync();
- }
-
- login(login, password) {
- if (login !== '' && password !== '') {
- let user = this.props.users.filter(tmp => tmp.email === login);
- if (user.length > 0) {
- user = user[0];
- verify(
- password,
- user.password
- ).then(verified => {
- if (verified === true) {
- // Si user === last user
- const lastUser = CommonModel.get('lastUser');
- if (lastUser !== false && lastUser !== undefined && lastUser.value === user.id.toString()) {
- this.loginAction(user);
- } else {
- // Si la tablette est synchronisée avec le serveur
- if (Sync.isSynced()) {
- // Si la tablette est connectée à internet pour forcer la synchro
- NetInfo.fetch().then(state => {
- if (state.isConnected) {
- this.loginAction(user, true);
- } else {
- Alert.alert(i18n.t('error.tablet_not_connected_internet'));
- }
- });
- } else {
- Alert.alert(i18n.t('error.tablet_not_synced_last_user'));
- }
- }
- } else {
- Alert.alert(i18n.t('error.incorrect_credentials'));
- }
- }).catch(error => console.log(error));
- } else {
- Alert.alert(i18n.t('error.incorrect_credentials'));
- }
- } else {
- Alert.alert(i18n.t('error.must_fill_login_fields'));
- }
- }
-
- loginAction(user, forceSync = false) {
- this.setState({ login: '', password: '' });
- CommonModel.update({
- key: 'isLogged',
- value: JSON.stringify(user),
- });
- CommonModel.update({
- key: 'loggedTime',
- value: Date.now().toString(),
- });
- CommonModel.update({ key: 'lastUser', value: user.id.toString() });
- this.props.dispatch({
- type: 'SET_CURRENT_USER',
- data: JSON.stringify(user),
- });
- this.props.dispatch({ type: 'SET_LOGGED', data: true });
- if (forceSync === true) {
- this.props.navigation.navigate('SyncScreen', { isInstalled: true, forceSync: true });
- }
- }
-
- renderInstallBtn() {
- if (!Sync.isInstalled()) {
- return (
-
-
- this.props.navigation.navigate('SyncScreen', { isInstalled: false })
- }
- />
-
- );
- }
- }
-
- render() {
- i18n.locale = this.props.locale;
- return (
-
-
-
- {Sync.isInstalled() && (
-
- this.setState({ login: text })}
- autoCapitalize={'none'}
- autoCorrect={false}
- keyboardType={'email-address'}
- />
- this.setState({ password: text })}
- secureTextEntry={true}
- autoCapitalize={'none'}
- autoCorrect={false}
- />
- this.login(this.state.login, this.state.password)}
- color={'#ea4f52'}
- />
-
- )}
- {this.renderInstallBtn()}
-
-
- );
- }
-}
-
-const styles = StyleSheet.create({
- container: {
- flex: 1,
- alignItems: 'center',
- justifyContent: 'center',
- },
- text: {
- height: 40,
- width: 300,
- borderColor: 'grey',
- borderWidth: 1,
- marginBottom: 20,
- backgroundColor: 'white',
- paddingLeft: 10
- },
-});
-
-export default connect(mapStateToProps)(LoginScreen);
diff --git a/ComApp/src/Views/MySpace.js b/ComApp/src/Views/MySpace.js
deleted file mode 100644
index 7c3d607..0000000
--- a/ComApp/src/Views/MySpace.js
+++ /dev/null
@@ -1,35 +0,0 @@
-import React from 'react';
-import {
- View,
- StyleSheet,
- ScrollView,
- TouchableOpacity,
- Text,
-} from 'react-native';
-import {connect} from 'react-redux';
-
-function mapStateToProps(state) {
- return {
- documents: state.documents,
- };
-}
-
-class MySpaceScreen extends React.Component {
-
- render() {
- return (
-
- Mon Espace
-
- );
- }
-}
-
-const styles = StyleSheet.create({
- container: {
- flex: 1,
- flexDirection: 'row',
- },
-});
-
-export default connect(mapStateToProps)(MySpaceScreen);
diff --git a/ComApp/src/Views/OnlyVideos.js b/ComApp/src/Views/OnlyVideos.js
deleted file mode 100644
index dbcefe9..0000000
--- a/ComApp/src/Views/OnlyVideos.js
+++ /dev/null
@@ -1,95 +0,0 @@
-import React from 'react';
-import {
- View,
- StyleSheet,
- ScrollView,
- TouchableOpacity,
- Text,
-} from 'react-native';
-import {connect} from 'react-redux';
-import Icon from 'react-native-vector-icons/FontAwesome5';
-
-function mapStateToProps(state) {
- return {
- documents: state.documents,
- };
-}
-
-class OnlyVideosScreen extends React.Component {
- state = {
- documents: [],
- };
-
- showDocuments() {
- const documents = this.props.documents.filter(tmp => tmp.type === 'mp4');
- this.setState({documents: documents});
- }
-
- openDocument(document) {
- this.props.dispatch({type: 'SET_CURRENT_OPENED_DOC', data: document});
- this.props.navigation.navigate('VideoScreen', {uuid: document.uuid});
- }
-
- componentDidMount(): void {
- this.showDocuments();
- }
-
- render() {
- let documentList = this.state.documents.map(document => {
- return (
- this.openDocument(document)}>
- {document.type === 'pdf' ? (
-
- ) : (
-
- )}
- {document.title}
-
- );
- });
-
- return (
-
-
- {documentList}
-
-
- );
- }
-}
-
-const styles = StyleSheet.create({
- container: {
- flex: 1,
- flexDirection: 'row',
- },
- scrollview: {
- flex: 2,
- },
- filesContainer: {
- flex: 1,
- flexDirection: 'row',
- flexWrap: 'wrap',
- justifyContent: 'center',
- },
- file: {
- justifyContent: 'center',
- alignItems: 'center',
- height: 200,
- width: 180,
- backgroundColor: '#ea4f52',
- margin: 10,
- },
- fileTxt: {
- textAlign: 'center',
- color: 'white',
- fontWeight: 'bold',
- fontSize: 18,
- padding: 5
- }
-});
-
-export default connect(mapStateToProps)(OnlyVideosScreen);
diff --git a/ComApp/src/Views/PDF.js b/ComApp/src/Views/PDF.js
deleted file mode 100644
index a863259..0000000
--- a/ComApp/src/Views/PDF.js
+++ /dev/null
@@ -1,57 +0,0 @@
-import React from 'react';
-import { View, StyleSheet, Dimensions } from 'react-native';
-
-import Pdf from 'react-native-pdf';
-import * as FileSystem from 'expo-file-system';
-
-class PDFScreen extends React.Component {
- render() {
- const { uuid } = this.props.route.params;
- const source = {
- uri: FileSystem.documentDirectory + uuid + '.pdf',
- cache: false,
- };
- return (
-
- {
- console.log(`number of pages: ${numberOfPages}`);
- }}
- onPageChanged={(page, numberOfPages) => {
- console.log(`current page: ${page}`);
- }}
- onError={error => {
- console.log(error);
- }}
- onPressLink={uri => {
- console.log(`Link presse: ${uri}`);
- }}
- style={styles.pdf}
- />
-
- );
- }
-}
-
-const styles = StyleSheet.create({
- container: {
- flex: 1,
- alignItems: 'center',
- justifyContent: 'center',
- },
- text: {
- height: 40,
- width: 300,
- borderColor: 'grey',
- borderWidth: 1,
- marginBottom: 20,
- },
- pdf: {
- flex: 1,
- width: Dimensions.get('window').width,
- height: Dimensions.get('window').height,
- },
-});
-
-export default PDFScreen;
diff --git a/ComApp/src/Views/Search.js b/ComApp/src/Views/Search.js
deleted file mode 100644
index e3ed25f..0000000
--- a/ComApp/src/Views/Search.js
+++ /dev/null
@@ -1,111 +0,0 @@
-import React from 'react';
-import {
- View,
- StyleSheet,
- ScrollView,
- TouchableOpacity,
- Text,
-} from 'react-native';
-import {connect} from 'react-redux';
-import Icon from 'react-native-vector-icons/FontAwesome5';
-import Helpers from "../Controllers/Helpers";
-import i18n from "../I18n";
-
-function mapStateToProps(state) {
- return {
- documents: state.documents,
- };
-}
-
-class SearchScreen extends React.Component {
- state = {
- documents: [],
- };
-
- openDocument(document) {
- this.props.dispatch({type: 'SET_CURRENT_OPENED_DOC', data: document});
- if (document.type === 'pdf') {
- this.props.navigation.navigate('PDFScreen', {uuid: document.uuid});
- } else if (document.type === 'mp4') {
- this.props.navigation.navigate('VideoScreen', {uuid: document.uuid});
- } else {
- console.log('Inconnu');
- }
- }
-
- componentDidMount(): void {
- const {needle, onlyVideos} = this.props.route.params;
- let objDocs = this.props.documents;
- let arrayDocs = Object.keys(objDocs).map(function (key) { return objDocs[key]; });
- let sorted = arrayDocs.sort(Helpers.compareValues('title', 'asc'));
- let filtered = sorted.filter(item => item.title.toLowerCase().indexOf(needle.toLowerCase()) >= 0);
- if (onlyVideos === true) {
- filtered = filtered.filter(item => item.type === 'mp4');
- }
- this.setState({
- documents: filtered,
- });
- }
-
- render() {
- let documentList = this.state.documents.map(document => {
- return (
- this.openDocument(document)}>
- {document.type === 'pdf' ? (
-
- ) : (
-
- )}
- {document.title}
-
- );
- });
-
- return (
-
-
- {documentList}
- {this.state.documents.length === 0 && (
- {i18n.t('search_s.no_result')}
- )}
-
-
- );
- }
-}
-
-const styles = StyleSheet.create({
- container: {
- flex: 1,
- flexDirection: 'row',
- },
- scrollview: {
- flex: 2,
- },
- filesContainer: {
- flex: 1,
- flexDirection: 'row',
- flexWrap: 'wrap',
- justifyContent: 'center',
- },
- file: {
- justifyContent: 'center',
- alignItems: 'center',
- height: 200,
- width: 180,
- backgroundColor: '#ea4f52',
- margin: 10,
- },
- fileTxt: {
- textAlign: 'center',
- color: 'white',
- fontWeight: 'bold',
- fontSize: 18,
- padding: 5
- }
-});
-
-export default connect(mapStateToProps)(SearchScreen);
diff --git a/ComApp/src/Views/Sync.js b/ComApp/src/Views/Sync.js
deleted file mode 100644
index f951e50..0000000
--- a/ComApp/src/Views/Sync.js
+++ /dev/null
@@ -1,320 +0,0 @@
-import React from 'react';
-import {View, StyleSheet, Button, Alert, Text, Linking} from 'react-native';
-import {connect} from 'react-redux';
-import * as FileSystem from 'expo-file-system';
-
-import Sync from '../Controllers/Sync';
-
-import * as Progress from 'react-native-progress';
-import NetInfo from '@react-native-community/netinfo';
-
-import i18n from "../I18n";
-
-function mapStateToProps(state) {
- return {
- documents: state.documents,
- syncVersion: state.syncVersion,
- currentUser: state.currentUser,
- };
-}
-
-class SyncScreen extends React.Component {
- state = {
- progress: 0,
- txtStep: '',
- downloadProgress: 0,
- downloadingFile: false,
- processing: false,
- newApp: false
- };
-
- callback(downloadProgress) {
- let progress =
- (downloadProgress.totalBytesWritten /
- downloadProgress.totalBytesExpectedToWrite) *
- 100;
- progress = Math.round(progress);
- progress = progress.toString();
- this.setState({
- downloadProgress: progress,
- });
- }
-
- downloadResumable(url, uuid, type) {
- return FileSystem.createDownloadResumable(
- url,
- FileSystem.documentDirectory + uuid + '.' + type,
- {},
- this.callback.bind(this),
- );
- }
-
- async download(documents, progress, i) {
- if (this.state.downloadingFile === false) {
- this.setState({downloadingFile: true});
- }
- const endpoint = Sync.getEndpointDocs();
- const doc = documents[i];
- this.setState({
- txtStep:
- i18n.t('sync_s.download') + ' : ' +
- doc.title +
- ' (' +
- doc.type.toUpperCase() +
- ') ...',
- });
- try {
- //console.log(endpoint + doc.uuid + "." + doc.type);
- const {uri} = await this.downloadResumable(
- endpoint + doc.uuid + "." + doc.type,
- doc.uuid,
- doc.type,
- ).downloadAsync();
- const {modificationTime} = await FileSystem.getInfoAsync(FileSystem.documentDirectory + doc.uuid + '.' + doc.type);
- Sync.updateLastModificationDoc(doc.id, modificationTime);
- //console.log('Finished downloading to ', uri);
- this.setState({progress: this.state.progress + progress});
- if (i < documents.length - 1) {
- return this.download(documents, progress, i + 1);
- }
- this.setState({downloadingFile: false});
- return true;
- } catch (e) {
- console.error(e);
- return false;
- }
- }
-
- async deleteFile(docs, i) {
- if (docs.length > 0) {
- const file = docs[i];
- await FileSystem.deleteAsync(FileSystem.documentDirectory + file.uuid + '.' + file.type, {idempotent: true});
- if (i < docs.length - 1) {
- return this.deleteFile(docs, i + 1);
- }
- }
- return true;
- }
-
- async getToDL(docs, i, toDL = []) {
- if (docs.length < 1)
- return toDL;
- const item = docs[i];
- const {exists, modificationTime} = await FileSystem.getInfoAsync(FileSystem.documentDirectory + item.uuid + '.' + item.type);
- if (exists === false) {
- toDL.push(item);
- } else {
- if (modificationTime.toString() !== item.updated_at) {
- toDL.push(item);
- }
- }
- if (i < docs.length - 1) {
- return this.getToDL(docs, i + 1, toDL);
- }
- return toDL;
- }
-
- downloadDocuments(docs, toDelete) {
- const version = this.props.syncVersion;
- this.getToDL(docs, 0).then(toDownload => {
- if (toDownload.length > 0) {
- this.setState({progress: 0.5});
- const docProgress = 0.5 / toDownload.length;
- this.download(toDownload, docProgress, 0).then(status => {
- if (status === true) {
- this.deleteFile(toDelete, 0).then(status => {
- this.finishSync(version);
- });
- } else {
- this.setState({txtStep: i18n.t('error.error_has_occurred') + '.'});
- }
- });
- } else {
- this.deleteFile(toDelete, 0).then(status => {
- this.setState({progress: 1});
- this.finishSync(version);
- });
- }
- });
- }
-
- finishSync(version) {
- this.props.dispatch({type: 'INIT'});
- Sync.updateVersion(version);
- this.setState({txtStep: i18n.t('sync_s.update_completed') + '.', processing: false});
- if (this.state.newApp === true) {
- const appUUID = Sync.getAppUUID();
- const url = 'https://store.ldc.fr' + '/app/' + appUUID;
- Alert.alert(
- 'LDC Store',
- i18n.t('sync_s.new_app_version'),
- [
- {
- text: i18n.t('global.cancel'),
- onPress: () => console.log('Cancel Pressed'),
- style: 'cancel',
- },
- {text: i18n.t('sync_s.open_store'), onPress: () => Linking.openURL(url).catch((err) => console.error('An error occurred', err))},
- ],
- {cancelable: false},
- );
- }
- }
-
- getDocuments() {
- this.setState({progress: 0.4, txtStep: i18n.t('sync_s.updating_docs') + '...'});
- Sync.getDocuments(this.downloadDocuments.bind(this));
- }
-
- getDirectories() {
- this.setState({progress: 0.3, txtStep: i18n.t('sync_s.updating_folders') + '...'});
- Sync.getDirectories(this.getDocuments.bind(this));
- }
-
- sendBrochures() {
- this.setState({progress: 0.2, txtStep: i18n.t('sync_s.sending_flyers') + '...'});
- Sync.sendBrochures(this.getDirectories.bind(this));
- }
-
- getContacts() {
- this.setState({progress: 0.1, txtStep: i18n.t('sync_s.updating_contacts') + '...'});
- Sync.getContacts(this.sendBrochures.bind(this), this.props.currentUser.id, this.errorCallback.bind(this));
- }
-
- installProcessed() {
- Sync.setInstalled();
- this.props.dispatch({type: 'INIT_USERS'});
- this.setState({
- processing: false,
- progress: 1,
- txtStep: i18n.t('sync_s.user_install_completed') + '.',
- });
- }
-
- process(version, ShowIsActive, newApp) {
- this.props.dispatch({
- type: 'UPDATE_VERSION',
- data: version,
- });
- this.props.dispatch({
- type: 'UPDATE_SHOW_IS_ACTIVE',
- data: ShowIsActive,
- });
- this.setState({newApp: newApp});
- const {isInstalled} = this.props.route.params;
- if (isInstalled === false) {
- this.setState({txtStep: i18n.t('sync_s.user_install') + '...'});
- Sync.getUsers(this.installProcessed.bind(this));
- } else {
- this.setState({txtStep: i18n.t('sync_s.updating_users') + '...'});
- Sync.getUsers(this.getContacts.bind(this));
- }
- }
-
- fileProgress() {
- if (this.state.downloadingFile === true) {
- return this.state.downloadProgress + ' %';
- }
- }
-
- errorCallback(error) {
- let msg = '';
- let httpCode = '';
- if (error.response) {
- // The request was made and the server responded with a status code
- // that falls out of the range of 2xx
- console.log(error.response.data);
- console.log(error.response.status);
- console.log(error.response.headers);
- msg = i18n.t('error.error_has_occurred') + '. Err: 1';
- httpCode = error.response.status;
- } else if (error.request) {
- // The request was made but no response was received
- // `error.request` is an instance of XMLHttpRequest in the browser and an instance of
- // http.ClientRequest in node.js
- //console.log(error.request);
- msg = i18n.t('error.error_has_occurred') + '. Err: 2';
- } else {
- // Something happened in setting up the request that triggered an Error
- //console.log('Error', error.message);
- msg = i18n.t('error.error_has_occurred') + '. Err: 3';
- }
- if (httpCode.length > 0) {
- Alert.alert(
- i18n.t('error.error'),
- msg + ' (Code: ' + httpCode + ')',
- [{text: 'OK'}],
- {cancelable: false},
- );
- }else{
- Alert.alert(
- i18n.t('error.error'),
- msg,
- [{text: 'OK'}],
- {cancelable: false},
- );
- }
- this.setState({processing: false});
- }
-
- checkConnection() {
- NetInfo.fetch().then(state => {
- if (state.isConnected) {
- this.setState({processing: true});
- Sync.getVersion(this.process.bind(this), this.errorCallback.bind(this));
- } else {
- Alert.alert(
- i18n.t('global.warning'),
- i18n.t('error.must_be_connected_internet_sync') + '.',
- [{text: 'OK'}],
- {cancelable: false},
- );
- }
- });
- return false;
- }
-
- componentDidMount() {
- const {forceSync} = this.props.route.params;
- if (forceSync === true) {
- this.checkConnection();
- }
- }
-
- render() {
- const fileProgress = this.fileProgress();
- return (
-
-
-
- this.checkConnection()}
- />
-
-
-
- {this.state.txtStep} {fileProgress}
-
-
-
- );
- }
-}
-
-const styles = StyleSheet.create({
- container: {
- flex: 1,
- alignItems: 'center',
- justifyContent: 'center',
- },
-});
-
-export default connect(mapStateToProps)(SyncScreen);
diff --git a/ComApp/src/Views/Video.js b/ComApp/src/Views/Video.js
deleted file mode 100644
index 0c730b8..0000000
--- a/ComApp/src/Views/Video.js
+++ /dev/null
@@ -1,52 +0,0 @@
-import React from 'react';
-import { View, Dimensions } from 'react-native';
-
-import * as FileSystem from 'expo-file-system';
-import VideoPlayer from 'expo-video-player';
-import { ResizeMode } from 'expo-av';
-
-class VideoScreen extends React.Component {
-
- render() {
- const { uuid } = this.props.route.params;
- let width = Dimensions.get("window").width;
- let height = Dimensions.get("window").height;
-
- // if portrait
- if (height > width) {
- let tmpHeight = height;
- height = width - 150;
- width = tmpHeight + 100;
- } else {
- height = height - 100;
- }
-
- return (
-
-
-
- );
- }
-}
-
-export default VideoScreen;