From 3dfc0c90c2d68132fc738c8e0db557e32bfe0b59 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Wed, 28 Sep 2022 17:14:54 +0530 Subject: [PATCH 01/84] updated Native iOS SDK --- example/android/Gemfile.lock | 4 +- example/ios/Gemfile.lock | 4 +- example/ios/Podfile.lock | 8 +- example/package-lock.json | 188 +++++++++++++++++------------------ package-lock.json | 188 +++++++++++++++++------------------ react-native-hms.podspec | 2 +- 6 files changed, 197 insertions(+), 197 deletions(-) diff --git a/example/android/Gemfile.lock b/example/android/Gemfile.lock index 8af1fc610..01861f81e 100644 --- a/example/android/Gemfile.lock +++ b/example/android/Gemfile.lock @@ -8,8 +8,8 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.637.0) - aws-sdk-core (3.155.0) + aws-partitions (1.638.0) + aws-sdk-core (3.156.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) diff --git a/example/ios/Gemfile.lock b/example/ios/Gemfile.lock index 766efbb1f..35b4aa596 100644 --- a/example/ios/Gemfile.lock +++ b/example/ios/Gemfile.lock @@ -8,8 +8,8 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.637.0) - aws-sdk-core (3.155.0) + aws-partitions (1.638.0) + aws-sdk-core (3.156.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 437a22f9b..ca5bb1c85 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -59,7 +59,7 @@ PODS: - glog (0.3.5) - hermes-engine (0.7.2) - HMSBroadcastExtensionSDK (0.0.3) - - HMSSDK (0.4.2): + - HMSSDK (0.4.3): - HMSWebRTC (= 1.0.4898) - HMSWebRTC (1.0.4898) - libevent (2.1.12) @@ -290,7 +290,7 @@ PODS: - React-Core - react-native-hms (0.9.93): - HMSBroadcastExtensionSDK (= 0.0.3) - - HMSSDK (= 0.4.2) + - HMSSDK (= 0.4.3) - React-Core - react-native-safe-area-context (3.4.1): - React-Core @@ -593,7 +593,7 @@ SPEC CHECKSUMS: glog: 73c2498ac6884b13ede40eda8228cb1eee9d9d62 hermes-engine: 7d97ba46a1e29bacf3e3c61ecb2804a5ddd02d4f HMSBroadcastExtensionSDK: a69a4503a1708b5d51e2890d70f574b9cdfea760 - HMSSDK: 50c5ea8edf7093472d4254c6f69ccce11323be10 + HMSSDK: 26b7710cef362d8af3ab54e5a9aac13836518be2 HMSWebRTC: d3a9b2866e4a36a1d3834728a548a4a46309bb86 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b @@ -613,7 +613,7 @@ SPEC CHECKSUMS: react-native-camera: 3eae183c1d111103963f3dd913b65d01aef8110f react-native-cameraroll: 4d0cb1c3413d4b7b85beb68a8c14325d887b404c react-native-document-picker: f68191637788994baed5f57d12994aa32cf8bf88 - react-native-hms: cbae66a4462cd7fa4c84e97c6e3f0dd9c222d27d + react-native-hms: b8592c58c4a2438b164f3d3406af65ead7f0df8f react-native-safe-area-context: 9e40fb181dac02619414ba1294d6c2a807056ab9 react-native-simple-toast: 8ee5d23f0b92b935ab7434cdb65159ce12dfb4b7 react-native-video: c26780b224543c62d5e1b2a7244a5cd1b50e8253 diff --git a/example/package-lock.json b/example/package-lock.json index 1845ad53a..d4702e0a2 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -79,28 +79,28 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.1.tgz", - "integrity": "sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.3.tgz", + "integrity": "sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.1.tgz", - "integrity": "sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", + "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", - "@babel/helper-compilation-targets": "^7.19.1", + "@babel/generator": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", "@babel/helper-module-transforms": "^7.19.0", "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.1", + "@babel/parser": "^7.19.3", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/traverse": "^7.19.3", + "@babel/types": "^7.19.3", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -116,11 +116,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", - "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz", + "integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==", "dependencies": { - "@babel/types": "^7.19.0", + "@babel/types": "^7.19.3", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -165,11 +165,11 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz", - "integrity": "sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", + "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", "dependencies": { - "@babel/compat-data": "^7.19.1", + "@babel/compat-data": "^7.19.3", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", "semver": "^6.3.0" @@ -465,9 +465,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", - "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz", + "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1594,9 +1594,9 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.1.tgz", - "integrity": "sha512-+ILcOU+6mWLlvCwnL920m2Ow3wWx3Wo8n2t5aROQmV55GZt+hOiLvBaa3DNzRjSEHa1aauRs4/YLmkCfFkhhRQ==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.3.tgz", + "integrity": "sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w==", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.19.0", "@babel/helper-plugin-utils": "^7.19.0", @@ -1640,13 +1640,13 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.1.tgz", - "integrity": "sha512-c8B2c6D16Lp+Nt6HcD+nHl0VbPKVnNPTpszahuxJJnurfMtKeZ80A+qUv48Y7wqvS+dTFuLuaM9oYxyNHbCLWA==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.3.tgz", + "integrity": "sha512-ziye1OTc9dGFOAXSWKUqQblYHNlBOaDl8wzqf2iKXJAltYiR3hKHUKmkt+S9PppW7RQpq4fFCrwwpIDj/f5P4w==", "peer": true, "dependencies": { - "@babel/compat-data": "^7.19.1", - "@babel/helper-compilation-targets": "^7.19.1", + "@babel/compat-data": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", @@ -1714,7 +1714,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.19.0", + "@babel/types": "^7.19.3", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -1839,18 +1839,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.1.tgz", - "integrity": "sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz", + "integrity": "sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==", "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", + "@babel/generator": "^7.19.3", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/parser": "^7.19.3", + "@babel/types": "^7.19.3", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1859,12 +1859,12 @@ } }, "node_modules/@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz", + "integrity": "sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw==", "dependencies": { "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, "engines": { @@ -3676,9 +3676,9 @@ } }, "node_modules/@types/react-native": { - "version": "0.64.27", - "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.64.27.tgz", - "integrity": "sha512-vOEGMQGKNp6B1UfofKvCit2AxwByI6cbSa71E2uuxuvFr7FATVlykDbUS/Yht1HJhnbP5qlNOYw4ocUvDGjwbA==", + "version": "0.64.28", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.64.28.tgz", + "integrity": "sha512-2ZMLNH7f3cDQQWt7WWirXJCArZ0RXF3qBVALCw0MBU/ObPcCNs6+1GXZGehdmFGDspWaqHFd7MF7TtZoC6QdYA==", "dev": true, "dependencies": { "@types/react": "^17" @@ -5516,9 +5516,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.264", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.264.tgz", - "integrity": "sha512-AZ6ZRkucHOQT8wke50MktxtmcWZr67kE17X/nAXFf62NIdMdgY6xfsaJD5Szoy84lnkuPWH+4tTNE3s2+bPCiw==" + "version": "1.4.266", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.266.tgz", + "integrity": "sha512-saJTYECxUSv7eSpnXw0XIEvUkP9x4s/x2mm3TVX7k4rIFS6f5TjBih1B5h437WzIhHQjid+d8ouQzPQskMervQ==" }, "node_modules/eme-encryption-scheme-polyfill": { "version": "2.1.1", @@ -14685,25 +14685,25 @@ } }, "@babel/compat-data": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.1.tgz", - "integrity": "sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==" + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.3.tgz", + "integrity": "sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw==" }, "@babel/core": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.1.tgz", - "integrity": "sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", + "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", - "@babel/helper-compilation-targets": "^7.19.1", + "@babel/generator": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", "@babel/helper-module-transforms": "^7.19.0", "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.1", + "@babel/parser": "^7.19.3", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/traverse": "^7.19.3", + "@babel/types": "^7.19.3", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -14712,11 +14712,11 @@ } }, "@babel/generator": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", - "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz", + "integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==", "requires": { - "@babel/types": "^7.19.0", + "@babel/types": "^7.19.3", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -14751,11 +14751,11 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz", - "integrity": "sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", + "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", "requires": { - "@babel/compat-data": "^7.19.1", + "@babel/compat-data": "^7.19.3", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", "semver": "^6.3.0" @@ -14967,9 +14967,9 @@ } }, "@babel/parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", - "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==" + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz", + "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", @@ -15673,9 +15673,9 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.1.tgz", - "integrity": "sha512-+ILcOU+6mWLlvCwnL920m2Ow3wWx3Wo8n2t5aROQmV55GZt+hOiLvBaa3DNzRjSEHa1aauRs4/YLmkCfFkhhRQ==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.3.tgz", + "integrity": "sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w==", "requires": { "@babel/helper-create-class-features-plugin": "^7.19.0", "@babel/helper-plugin-utils": "^7.19.0", @@ -15701,13 +15701,13 @@ } }, "@babel/preset-env": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.1.tgz", - "integrity": "sha512-c8B2c6D16Lp+Nt6HcD+nHl0VbPKVnNPTpszahuxJJnurfMtKeZ80A+qUv48Y7wqvS+dTFuLuaM9oYxyNHbCLWA==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.3.tgz", + "integrity": "sha512-ziye1OTc9dGFOAXSWKUqQblYHNlBOaDl8wzqf2iKXJAltYiR3hKHUKmkt+S9PppW7RQpq4fFCrwwpIDj/f5P4w==", "peer": true, "requires": { - "@babel/compat-data": "^7.19.1", - "@babel/helper-compilation-targets": "^7.19.1", + "@babel/compat-data": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", @@ -15775,7 +15775,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.19.0", + "@babel/types": "^7.19.3", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -15863,29 +15863,29 @@ } }, "@babel/traverse": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.1.tgz", - "integrity": "sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz", + "integrity": "sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==", "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", + "@babel/generator": "^7.19.3", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/parser": "^7.19.3", + "@babel/types": "^7.19.3", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz", + "integrity": "sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw==", "requires": { "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" } }, @@ -17328,9 +17328,9 @@ } }, "@types/react-native": { - "version": "0.64.27", - "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.64.27.tgz", - "integrity": "sha512-vOEGMQGKNp6B1UfofKvCit2AxwByI6cbSa71E2uuxuvFr7FATVlykDbUS/Yht1HJhnbP5qlNOYw4ocUvDGjwbA==", + "version": "0.64.28", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.64.28.tgz", + "integrity": "sha512-2ZMLNH7f3cDQQWt7WWirXJCArZ0RXF3qBVALCw0MBU/ObPcCNs6+1GXZGehdmFGDspWaqHFd7MF7TtZoC6QdYA==", "dev": true, "requires": { "@types/react": "^17" @@ -18740,9 +18740,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "electron-to-chromium": { - "version": "1.4.264", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.264.tgz", - "integrity": "sha512-AZ6ZRkucHOQT8wke50MktxtmcWZr67kE17X/nAXFf62NIdMdgY6xfsaJD5Szoy84lnkuPWH+4tTNE3s2+bPCiw==" + "version": "1.4.266", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.266.tgz", + "integrity": "sha512-saJTYECxUSv7eSpnXw0XIEvUkP9x4s/x2mm3TVX7k4rIFS6f5TjBih1B5h437WzIhHQjid+d8ouQzPQskMervQ==" }, "eme-encryption-scheme-polyfill": { "version": "2.1.1", diff --git a/package-lock.json b/package-lock.json index 791d0be24..a14d419c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -66,28 +66,28 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.1.tgz", - "integrity": "sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.3.tgz", + "integrity": "sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.1.tgz", - "integrity": "sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", + "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", - "@babel/helper-compilation-targets": "^7.19.1", + "@babel/generator": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", "@babel/helper-module-transforms": "^7.19.0", "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.1", + "@babel/parser": "^7.19.3", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/traverse": "^7.19.3", + "@babel/types": "^7.19.3", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -111,11 +111,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", - "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz", + "integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==", "dependencies": { - "@babel/types": "^7.19.0", + "@babel/types": "^7.19.3", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -147,11 +147,11 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz", - "integrity": "sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", + "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", "dependencies": { - "@babel/compat-data": "^7.19.1", + "@babel/compat-data": "^7.19.3", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", "semver": "^6.3.0" @@ -461,9 +461,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", - "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz", + "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1595,9 +1595,9 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.1.tgz", - "integrity": "sha512-+ILcOU+6mWLlvCwnL920m2Ow3wWx3Wo8n2t5aROQmV55GZt+hOiLvBaa3DNzRjSEHa1aauRs4/YLmkCfFkhhRQ==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.3.tgz", + "integrity": "sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w==", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.19.0", "@babel/helper-plugin-utils": "^7.19.0", @@ -1640,12 +1640,12 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.1.tgz", - "integrity": "sha512-c8B2c6D16Lp+Nt6HcD+nHl0VbPKVnNPTpszahuxJJnurfMtKeZ80A+qUv48Y7wqvS+dTFuLuaM9oYxyNHbCLWA==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.3.tgz", + "integrity": "sha512-ziye1OTc9dGFOAXSWKUqQblYHNlBOaDl8wzqf2iKXJAltYiR3hKHUKmkt+S9PppW7RQpq4fFCrwwpIDj/f5P4w==", "dependencies": { - "@babel/compat-data": "^7.19.1", - "@babel/helper-compilation-targets": "^7.19.1", + "@babel/compat-data": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", @@ -1713,7 +1713,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.19.0", + "@babel/types": "^7.19.3", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -1877,18 +1877,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.1.tgz", - "integrity": "sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz", + "integrity": "sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==", "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", + "@babel/generator": "^7.19.3", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/parser": "^7.19.3", + "@babel/types": "^7.19.3", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1897,12 +1897,12 @@ } }, "node_modules/@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz", + "integrity": "sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw==", "dependencies": { "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, "engines": { @@ -8050,9 +8050,9 @@ "peer": true }, "node_modules/electron-to-chromium": { - "version": "1.4.264", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.264.tgz", - "integrity": "sha512-AZ6ZRkucHOQT8wke50MktxtmcWZr67kE17X/nAXFf62NIdMdgY6xfsaJD5Szoy84lnkuPWH+4tTNE3s2+bPCiw==" + "version": "1.4.266", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.266.tgz", + "integrity": "sha512-saJTYECxUSv7eSpnXw0XIEvUkP9x4s/x2mm3TVX7k4rIFS6f5TjBih1B5h437WzIhHQjid+d8ouQzPQskMervQ==" }, "node_modules/emittery": { "version": "0.7.2", @@ -19816,9 +19816,9 @@ } }, "node_modules/typescript": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz", - "integrity": "sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==", + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -20799,25 +20799,25 @@ } }, "@babel/compat-data": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.1.tgz", - "integrity": "sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==" + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.3.tgz", + "integrity": "sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw==" }, "@babel/core": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.1.tgz", - "integrity": "sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", + "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", - "@babel/helper-compilation-targets": "^7.19.1", + "@babel/generator": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", "@babel/helper-module-transforms": "^7.19.0", "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.1", + "@babel/parser": "^7.19.3", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/traverse": "^7.19.3", + "@babel/types": "^7.19.3", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -20833,11 +20833,11 @@ } }, "@babel/generator": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", - "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz", + "integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==", "requires": { - "@babel/types": "^7.19.0", + "@babel/types": "^7.19.3", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" } @@ -20860,11 +20860,11 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz", - "integrity": "sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", + "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", "requires": { - "@babel/compat-data": "^7.19.1", + "@babel/compat-data": "^7.19.3", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", "semver": "^6.3.0" @@ -21088,9 +21088,9 @@ } }, "@babel/parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", - "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==" + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz", + "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", @@ -21792,9 +21792,9 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.1.tgz", - "integrity": "sha512-+ILcOU+6mWLlvCwnL920m2Ow3wWx3Wo8n2t5aROQmV55GZt+hOiLvBaa3DNzRjSEHa1aauRs4/YLmkCfFkhhRQ==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.3.tgz", + "integrity": "sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w==", "requires": { "@babel/helper-create-class-features-plugin": "^7.19.0", "@babel/helper-plugin-utils": "^7.19.0", @@ -21819,12 +21819,12 @@ } }, "@babel/preset-env": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.1.tgz", - "integrity": "sha512-c8B2c6D16Lp+Nt6HcD+nHl0VbPKVnNPTpszahuxJJnurfMtKeZ80A+qUv48Y7wqvS+dTFuLuaM9oYxyNHbCLWA==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.3.tgz", + "integrity": "sha512-ziye1OTc9dGFOAXSWKUqQblYHNlBOaDl8wzqf2iKXJAltYiR3hKHUKmkt+S9PppW7RQpq4fFCrwwpIDj/f5P4w==", "requires": { - "@babel/compat-data": "^7.19.1", - "@babel/helper-compilation-targets": "^7.19.1", + "@babel/compat-data": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", @@ -21892,7 +21892,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.19.0", + "@babel/types": "^7.19.3", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -22009,29 +22009,29 @@ } }, "@babel/traverse": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.1.tgz", - "integrity": "sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz", + "integrity": "sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==", "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", + "@babel/generator": "^7.19.3", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/parser": "^7.19.3", + "@babel/types": "^7.19.3", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz", + "integrity": "sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw==", "requires": { "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" } }, @@ -26792,9 +26792,9 @@ "peer": true }, "electron-to-chromium": { - "version": "1.4.264", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.264.tgz", - "integrity": "sha512-AZ6ZRkucHOQT8wke50MktxtmcWZr67kE17X/nAXFf62NIdMdgY6xfsaJD5Szoy84lnkuPWH+4tTNE3s2+bPCiw==" + "version": "1.4.266", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.266.tgz", + "integrity": "sha512-saJTYECxUSv7eSpnXw0XIEvUkP9x4s/x2mm3TVX7k4rIFS6f5TjBih1B5h437WzIhHQjid+d8ouQzPQskMervQ==" }, "emittery": { "version": "0.7.2", @@ -35894,9 +35894,9 @@ } }, "typescript": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz", - "integrity": "sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==", + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", "dev": true }, "uglify-es": { diff --git a/react-native-hms.podspec b/react-native-hms.podspec index 1515e5f6c..c44da9327 100644 --- a/react-native-hms.podspec +++ b/react-native-hms.podspec @@ -16,6 +16,6 @@ Pod::Spec.new do |s| s.source_files = "ios/**/*.{h,m,mm,swift}" s.dependency "React-Core" - s.dependency "HMSSDK", "0.4.2" + s.dependency "HMSSDK", "0.4.3" s.dependency 'HMSBroadcastExtensionSDK', '0.0.3' end From e52336340477ee1a8bfb3044a295962331beb83a Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Thu, 29 Sep 2022 11:17:06 +0530 Subject: [PATCH 02/84] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 17b587827..7b0047459 100644 --- a/README.md +++ b/README.md @@ -471,7 +471,7 @@ const getTrackSettings = () => { const setupBuild = async () => { const trackSettings = getTrackSettings(); - const build = await HmsManager.build({ trackSettings }); + const build = await HMSSDK.build({ trackSettings }); setInstance(build); updateHms({ hmsInstance: build }); }; From ea22a66ce2096e5afab85d0414ddf0b4ec3053be Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Thu, 29 Sep 2022 15:37:01 +0530 Subject: [PATCH 03/84] updated package version --- example/ios/Podfile.lock | 4 ++-- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index ca5bb1c85..a2670d514 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -288,7 +288,7 @@ PODS: - React-Core - react-native-document-picker (8.1.1): - React-Core - - react-native-hms (0.9.93): + - react-native-hms (0.9.94): - HMSBroadcastExtensionSDK (= 0.0.3) - HMSSDK (= 0.4.3) - React-Core @@ -613,7 +613,7 @@ SPEC CHECKSUMS: react-native-camera: 3eae183c1d111103963f3dd913b65d01aef8110f react-native-cameraroll: 4d0cb1c3413d4b7b85beb68a8c14325d887b404c react-native-document-picker: f68191637788994baed5f57d12994aa32cf8bf88 - react-native-hms: b8592c58c4a2438b164f3d3406af65ead7f0df8f + react-native-hms: 550e93adef6ee1e78b36a3e3b362d8b652bca3df react-native-safe-area-context: 9e40fb181dac02619414ba1294d6c2a807056ab9 react-native-simple-toast: 8ee5d23f0b92b935ab7434cdb65159ce12dfb4b7 react-native-video: c26780b224543c62d5e1b2a7244a5cd1b50e8253 diff --git a/package-lock.json b/package-lock.json index a14d419c7..844e47c67 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@100mslive/react-native-hms", - "version": "0.9.93", + "version": "0.9.94", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@100mslive/react-native-hms", - "version": "0.9.93", + "version": "0.9.94", "license": "MIT", "devDependencies": { "@commitlint/config-conventional": "^11.0.0", diff --git a/package.json b/package.json index 011070bfe..603a2fcb1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@100mslive/react-native-hms", - "version": "0.9.93", + "version": "0.9.94", "description": "The React Native package for 100ms SDK", "main": "lib/commonjs/index", "module": "lib/module/index", From 318319ee7e459a5584be29a028fd8c03868fde84 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Fri, 30 Sep 2022 15:19:16 +0530 Subject: [PATCH 04/84] updated sample app --- example/android/Gemfile.lock | 8 +- example/android/app/build.gradle | 4 +- example/ios/Gemfile.lock | 8 +- .../RNHMSExample.xcodeproj/project.pbxproj | 8 +- example/ios/RNHMSExample/Info.plist | 4 +- example/package-lock.json | 36 +-- package-lock.json | 212 +++++++++++++----- 7 files changed, 196 insertions(+), 84 deletions(-) diff --git a/example/android/Gemfile.lock b/example/android/Gemfile.lock index 01861f81e..49dde2fff 100644 --- a/example/android/Gemfile.lock +++ b/example/android/Gemfile.lock @@ -8,8 +8,8 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.638.0) - aws-sdk-core (3.156.0) + aws-partitions (1.639.0) + aws-sdk-core (3.157.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) @@ -36,7 +36,7 @@ GEM unf (>= 0.0.5, < 1.0.0) dotenv (2.8.1) emoji_regex (3.2.3) - excon (0.92.5) + excon (0.93.0) faraday (1.10.2) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) @@ -105,7 +105,7 @@ GEM xcodeproj (>= 1.13.0, < 2.0.0) xcpretty (~> 0.3.0) xcpretty-travis-formatter (>= 0.0.3) - fastlane-plugin-firebase_app_distribution (0.3.6) + fastlane-plugin-firebase_app_distribution (0.3.7) gh_inspector (1.1.3) google-apis-androidpublisher_v3 (0.28.0) google-apis-core (>= 0.9.0, < 2.a) diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 28e172f86..36a01ab3c 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -136,8 +136,8 @@ android { applicationId "live.hms.rn" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 111 - versionName "2.0.6" + versionCode 112 + versionName "2.0.7" missingDimensionStrategy 'react-native-camera', 'general' } splits { diff --git a/example/ios/Gemfile.lock b/example/ios/Gemfile.lock index 35b4aa596..c61b4a92a 100644 --- a/example/ios/Gemfile.lock +++ b/example/ios/Gemfile.lock @@ -8,8 +8,8 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.638.0) - aws-sdk-core (3.156.0) + aws-partitions (1.639.0) + aws-sdk-core (3.157.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) @@ -36,7 +36,7 @@ GEM unf (>= 0.0.5, < 1.0.0) dotenv (2.8.1) emoji_regex (3.2.3) - excon (0.92.5) + excon (0.93.0) faraday (1.10.2) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) @@ -105,7 +105,7 @@ GEM xcodeproj (>= 1.13.0, < 2.0.0) xcpretty (~> 0.3.0) xcpretty-travis-formatter (>= 0.0.3) - fastlane-plugin-firebase_app_distribution (0.3.6) + fastlane-plugin-firebase_app_distribution (0.3.7) fastlane-plugin-versioning (0.5.1) gh_inspector (1.1.3) google-apis-androidpublisher_v3 (0.28.0) diff --git a/example/ios/RNHMSExample.xcodeproj/project.pbxproj b/example/ios/RNHMSExample.xcodeproj/project.pbxproj index 313c44d99..c2186b451 100644 --- a/example/ios/RNHMSExample.xcodeproj/project.pbxproj +++ b/example/ios/RNHMSExample.xcodeproj/project.pbxproj @@ -626,7 +626,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 111; + CURRENT_PROJECT_VERSION = 112; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -667,7 +667,7 @@ CODE_SIGN_ENTITLEMENTS = RNHMSExample/RNHMSExample.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 111; + CURRENT_PROJECT_VERSION = 112; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -834,7 +834,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 111; + CURRENT_PROJECT_VERSION = 112; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = 5N85PP82A9; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -877,7 +877,7 @@ CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 111; + CURRENT_PROJECT_VERSION = 112; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = 5N85PP82A9; GCC_C_LANGUAGE_STANDARD = gnu11; diff --git a/example/ios/RNHMSExample/Info.plist b/example/ios/RNHMSExample/Info.plist index d411b3201..112f723b0 100644 --- a/example/ios/RNHMSExample/Info.plist +++ b/example/ios/RNHMSExample/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.0.6 + 2.0.7 CFBundleSignature ???? CFBundleVersion - 111 + 112 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS diff --git a/example/package-lock.json b/example/package-lock.json index d4702e0a2..5bd3494d7 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -4825,9 +4825,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001412", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001412.tgz", - "integrity": "sha512-+TeEIee1gS5bYOiuf+PS/kp2mrXic37Hl66VY6EAfxasIk5fELTktK2oOezYed12H8w7jt3s512PpulQidPjwA==", + "version": "1.0.30001414", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz", + "integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==", "funding": [ { "type": "opencollective", @@ -5516,9 +5516,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.266", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.266.tgz", - "integrity": "sha512-saJTYECxUSv7eSpnXw0XIEvUkP9x4s/x2mm3TVX7k4rIFS6f5TjBih1B5h437WzIhHQjid+d8ouQzPQskMervQ==" + "version": "1.4.269", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.269.tgz", + "integrity": "sha512-7mHFONwp7MNvdyto1v70fCwk28NJMFgsK79op+iYHzz1BLE8T66a1B2qW5alb8XgE0yi3FL3ZQjSYZpJpF6snw==" }, "node_modules/eme-encryption-scheme-polyfill": { "version": "2.1.1", @@ -9466,9 +9466,9 @@ } }, "node_modules/joi": { - "version": "17.6.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.1.tgz", - "integrity": "sha512-Hl7/iBklIX345OCM1TiFSCZRVaAOLDGlWCp0Df2vWYgBgjkezaR7Kvm3joBciBHQjZj5sxXs859r6eqsRSlG8w==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.2.tgz", + "integrity": "sha512-+gqqdh1xc1wb+Lor0J9toqgeReyDOCqOdG8QSdRcEvwrcRiFQZneUCGKjFjuyBWUb3uaFOgY56yMaZ5FIc+H4w==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -18190,9 +18190,9 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "caniuse-lite": { - "version": "1.0.30001412", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001412.tgz", - "integrity": "sha512-+TeEIee1gS5bYOiuf+PS/kp2mrXic37Hl66VY6EAfxasIk5fELTktK2oOezYed12H8w7jt3s512PpulQidPjwA==" + "version": "1.0.30001414", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz", + "integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==" }, "capture-exit": { "version": "2.0.0", @@ -18740,9 +18740,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "electron-to-chromium": { - "version": "1.4.266", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.266.tgz", - "integrity": "sha512-saJTYECxUSv7eSpnXw0XIEvUkP9x4s/x2mm3TVX7k4rIFS6f5TjBih1B5h437WzIhHQjid+d8ouQzPQskMervQ==" + "version": "1.4.269", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.269.tgz", + "integrity": "sha512-7mHFONwp7MNvdyto1v70fCwk28NJMFgsK79op+iYHzz1BLE8T66a1B2qW5alb8XgE0yi3FL3ZQjSYZpJpF6snw==" }, "eme-encryption-scheme-polyfill": { "version": "2.1.1", @@ -21666,9 +21666,9 @@ "integrity": "sha512-3Zi16h6L5tXDRQJTb221cnRoVG9/9OvreLdLU2/ZjRv/GILL+2Cemt0IKvkowwkDpvouAU1DQPOJ7qaiHeIdrw==" }, "joi": { - "version": "17.6.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.1.tgz", - "integrity": "sha512-Hl7/iBklIX345OCM1TiFSCZRVaAOLDGlWCp0Df2vWYgBgjkezaR7Kvm3joBciBHQjZj5sxXs859r6eqsRSlG8w==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.2.tgz", + "integrity": "sha512-+gqqdh1xc1wb+Lor0J9toqgeReyDOCqOdG8QSdRcEvwrcRiFQZneUCGKjFjuyBWUb3uaFOgY56yMaZ5FIc+H4w==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", diff --git a/package-lock.json b/package-lock.json index 844e47c67..2f724a788 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3463,9 +3463,9 @@ } }, "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==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-9.1.3.tgz", + "integrity": "sha512-dfiBxNvqSwxkMduH0eAEJNS+LBbwxm1rOlTO7bN+FZvUwZNCCgIYrixfRo+ifqDUv8N5AbpQB5umnLbs0AjPaA==", "peer": true, "dependencies": { "@react-native-community/cli-clean": "^9.1.0", @@ -3473,7 +3473,7 @@ "@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-plugin-metro": "^9.1.3", "@react-native-community/cli-server-api": "^9.1.0", "@react-native-community/cli-tools": "^9.1.0", "@react-native-community/cli-types": "^9.1.0", @@ -4536,20 +4536,20 @@ } }, "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==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.1.3.tgz", + "integrity": "sha512-eLZiGIMybNwkbfKRd8wfNP1u5pnsGYLD3YHlNQyRlfS7AMG7NCQN8bk2uWWJJmWAv632KFLConwJGcLhk6ZNMQ==", "peer": true, "dependencies": { "@react-native-community/cli-server-api": "^9.1.0", "@react-native-community/cli-tools": "^9.1.0", "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" } }, @@ -4611,6 +4611,65 @@ "node": ">=8" } }, + "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==", + "peer": true, + "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-plugin-metro/node_modules/metro-runtime": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz", + "integrity": "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.0.0", + "react-refresh": "^0.4.0" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-source-map": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", + "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", + "peer": true, + "dependencies": { + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.0.0", + "invariant": "^2.2.4", + "metro-symbolicate": "0.72.3", + "nullthrows": "^1.1.1", + "ob1": "0.72.3", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/ob1": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", + "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==", + "peer": true + }, + "node_modules/@react-native-community/cli-plugin-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==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6687,9 +6746,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001412", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001412.tgz", - "integrity": "sha512-+TeEIee1gS5bYOiuf+PS/kp2mrXic37Hl66VY6EAfxasIk5fELTktK2oOezYed12H8w7jt3s512PpulQidPjwA==", + "version": "1.0.30001414", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz", + "integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==", "funding": [ { "type": "opencollective", @@ -7054,9 +7113,9 @@ "peer": true }, "node_modules/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==", "peer": true, "engines": { "node": "^12.20.0 || >=14" @@ -8050,9 +8109,9 @@ "peer": true }, "node_modules/electron-to-chromium": { - "version": "1.4.266", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.266.tgz", - "integrity": "sha512-saJTYECxUSv7eSpnXw0XIEvUkP9x4s/x2mm3TVX7k4rIFS6f5TjBih1B5h437WzIhHQjid+d8ouQzPQskMervQ==" + "version": "1.4.269", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.269.tgz", + "integrity": "sha512-7mHFONwp7MNvdyto1v70fCwk28NJMFgsK79op+iYHzz1BLE8T66a1B2qW5alb8XgE0yi3FL3ZQjSYZpJpF6snw==" }, "node_modules/emittery": { "version": "0.7.2", @@ -13247,9 +13306,9 @@ } }, "node_modules/joi": { - "version": "17.6.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.1.tgz", - "integrity": "sha512-Hl7/iBklIX345OCM1TiFSCZRVaAOLDGlWCp0Df2vWYgBgjkezaR7Kvm3joBciBHQjZj5sxXs859r6eqsRSlG8w==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.2.tgz", + "integrity": "sha512-+gqqdh1xc1wb+Lor0J9toqgeReyDOCqOdG8QSdRcEvwrcRiFQZneUCGKjFjuyBWUb3uaFOgY56yMaZ5FIc+H4w==", "peer": true, "dependencies": { "@hapi/hoek": "^9.0.0", @@ -23250,9 +23309,9 @@ } }, "@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.1.3", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-9.1.3.tgz", + "integrity": "sha512-dfiBxNvqSwxkMduH0eAEJNS+LBbwxm1rOlTO7bN+FZvUwZNCCgIYrixfRo+ifqDUv8N5AbpQB5umnLbs0AjPaA==", "peer": true, "requires": { "@react-native-community/cli-clean": "^9.1.0", @@ -23260,7 +23319,7 @@ "@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-plugin-metro": "^9.1.3", "@react-native-community/cli-server-api": "^9.1.0", "@react-native-community/cli-tools": "^9.1.0", "@react-native-community/cli-types": "^9.1.0", @@ -24286,20 +24345,20 @@ } }, "@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.1.3", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.1.3.tgz", + "integrity": "sha512-eLZiGIMybNwkbfKRd8wfNP1u5pnsGYLD3YHlNQyRlfS7AMG7NCQN8bk2uWWJJmWAv632KFLConwJGcLhk6ZNMQ==", "peer": true, "requires": { "@react-native-community/cli-server-api": "^9.1.0", "@react-native-community/cli-tools": "^9.1.0", "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": { @@ -24343,6 +24402,59 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "peer": true }, + "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==", + "peer": true, + "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" + } + }, + "metro-runtime": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz", + "integrity": "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==", + "peer": true, + "requires": { + "@babel/runtime": "^7.0.0", + "react-refresh": "^0.4.0" + } + }, + "metro-source-map": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", + "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", + "peer": true, + "requires": { + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.0.0", + "invariant": "^2.2.4", + "metro-symbolicate": "0.72.3", + "nullthrows": "^1.1.1", + "ob1": "0.72.3", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + }, + "ob1": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", + "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==", + "peer": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "peer": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -25727,9 +25839,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001412", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001412.tgz", - "integrity": "sha512-+TeEIee1gS5bYOiuf+PS/kp2mrXic37Hl66VY6EAfxasIk5fELTktK2oOezYed12H8w7jt3s512PpulQidPjwA==" + "version": "1.0.30001414", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz", + "integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==" }, "capture-exit": { "version": "2.0.0", @@ -26007,9 +26119,9 @@ "peer": true }, "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==", "peer": true }, "commitlint": { @@ -26792,9 +26904,9 @@ "peer": true }, "electron-to-chromium": { - "version": "1.4.266", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.266.tgz", - "integrity": "sha512-saJTYECxUSv7eSpnXw0XIEvUkP9x4s/x2mm3TVX7k4rIFS6f5TjBih1B5h437WzIhHQjid+d8ouQzPQskMervQ==" + "version": "1.4.269", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.269.tgz", + "integrity": "sha512-7mHFONwp7MNvdyto1v70fCwk28NJMFgsK79op+iYHzz1BLE8T66a1B2qW5alb8XgE0yi3FL3ZQjSYZpJpF6snw==" }, "emittery": { "version": "0.7.2", @@ -30680,9 +30792,9 @@ "optional": true }, "joi": { - "version": "17.6.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.1.tgz", - "integrity": "sha512-Hl7/iBklIX345OCM1TiFSCZRVaAOLDGlWCp0Df2vWYgBgjkezaR7Kvm3joBciBHQjZj5sxXs859r6eqsRSlG8w==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.2.tgz", + "integrity": "sha512-+gqqdh1xc1wb+Lor0J9toqgeReyDOCqOdG8QSdRcEvwrcRiFQZneUCGKjFjuyBWUb3uaFOgY56yMaZ5FIc+H4w==", "peer": true, "requires": { "@hapi/hoek": "^9.0.0", From f38331cac9727f6fa06807fa65b472306c035743 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Fri, 30 Sep 2022 21:45:40 +0530 Subject: [PATCH 05/84] updated Native Android SDK --- android/build.gradle | 2 +- example/android/Gemfile.lock | 4 ++-- example/ios/Gemfile.lock | 4 ++-- example/ios/Podfile.lock | 4 ++-- example/package-lock.json | 12 ++++++------ 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 2e0d050f9..64eb41f65 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -63,7 +63,7 @@ dependencies { //noinspection GradleDynamicVersion implementation "com.facebook.react:react-native:+" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" // From node_modules - implementation 'com.github.100mslive.android-sdk:lib:2.4.8' + implementation 'com.github.100mslive.android-sdk:lib:2.4.9' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.3' implementation 'androidx.appcompat:appcompat:1.3.1' diff --git a/example/android/Gemfile.lock b/example/android/Gemfile.lock index 49dde2fff..3a942aa0f 100644 --- a/example/android/Gemfile.lock +++ b/example/android/Gemfile.lock @@ -130,11 +130,11 @@ GEM google-cloud-env (1.6.0) faraday (>= 0.17.3, < 3.0) google-cloud-errors (1.3.0) - google-cloud-storage (1.37.0) + google-cloud-storage (1.43.0) addressable (~> 2.8) digest-crc (~> 0.4) google-apis-iamcredentials_v1 (~> 0.1) - google-apis-storage_v1 (~> 0.1) + google-apis-storage_v1 (~> 0.19.0) google-cloud-core (~> 1.6) googleauth (>= 0.16.2, < 2.a) mini_mime (~> 1.0) diff --git a/example/ios/Gemfile.lock b/example/ios/Gemfile.lock index c61b4a92a..1dd91343b 100644 --- a/example/ios/Gemfile.lock +++ b/example/ios/Gemfile.lock @@ -131,11 +131,11 @@ GEM google-cloud-env (1.6.0) faraday (>= 0.17.3, < 3.0) google-cloud-errors (1.3.0) - google-cloud-storage (1.37.0) + google-cloud-storage (1.43.0) addressable (~> 2.8) digest-crc (~> 0.4) google-apis-iamcredentials_v1 (~> 0.1) - google-apis-storage_v1 (~> 0.1) + google-apis-storage_v1 (~> 0.19.0) google-cloud-core (~> 1.6) googleauth (>= 0.16.2, < 2.a) mini_mime (~> 1.0) diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index a2670d514..fa9746824 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -284,7 +284,7 @@ PODS: - React-Core - react-native-camera/RN (4.2.1): - React-Core - - react-native-cameraroll (5.0.2): + - react-native-cameraroll (5.0.3): - React-Core - react-native-document-picker (8.1.1): - React-Core @@ -611,7 +611,7 @@ SPEC CHECKSUMS: React-jsiexecutor: 80c46bd381fd06e418e0d4f53672dc1d1945c4c3 React-jsinspector: cc614ec18a9ca96fd275100c16d74d62ee11f0ae react-native-camera: 3eae183c1d111103963f3dd913b65d01aef8110f - react-native-cameraroll: 4d0cb1c3413d4b7b85beb68a8c14325d887b404c + react-native-cameraroll: db9ebe8fc29baf68defdb1691fb6642e8a8ad04d react-native-document-picker: f68191637788994baed5f57d12994aa32cf8bf88 react-native-hms: 550e93adef6ee1e78b36a3e3b362d8b652bca3df react-native-safe-area-context: 9e40fb181dac02619414ba1294d6c2a807056ab9 diff --git a/example/package-lock.json b/example/package-lock.json index 5bd3494d7..3f6ae2ed0 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -2667,9 +2667,9 @@ } }, "node_modules/@react-native-camera-roll/camera-roll": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@react-native-camera-roll/camera-roll/-/camera-roll-5.0.2.tgz", - "integrity": "sha512-5gBol4mHjw9u1hUQzYWWdnB+uYgjuBd+adLQfJWhE6yv7rNFb+Noi872bYLyzBb8ayaVAbp/EtlxiG1lWY/IyA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@react-native-camera-roll/camera-roll/-/camera-roll-5.0.3.tgz", + "integrity": "sha512-O0pl67kFuZjl6at9LvM4l+28IC53WndvOD8GqtshaGyySuvQDg37TaWyRF5lsMbann4rCCv+FznVDMmCWGDOcQ==", "peerDependencies": { "react-native": ">=0.59" } @@ -16503,9 +16503,9 @@ } }, "@react-native-camera-roll/camera-roll": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@react-native-camera-roll/camera-roll/-/camera-roll-5.0.2.tgz", - "integrity": "sha512-5gBol4mHjw9u1hUQzYWWdnB+uYgjuBd+adLQfJWhE6yv7rNFb+Noi872bYLyzBb8ayaVAbp/EtlxiG1lWY/IyA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@react-native-camera-roll/camera-roll/-/camera-roll-5.0.3.tgz", + "integrity": "sha512-O0pl67kFuZjl6at9LvM4l+28IC53WndvOD8GqtshaGyySuvQDg37TaWyRF5lsMbann4rCCv+FznVDMmCWGDOcQ==", "requires": {} }, "@react-native-community/cli": { From 7f2ca56dab39c14b14e0933823f154d22da81d9b Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Sun, 2 Oct 2022 01:45:46 +0530 Subject: [PATCH 06/84] fix: removed unwanted parsing and added 3 get APIs --- .../java/com/reactnativehmssdk/HMSManager.kt | 21 ++ .../java/com/reactnativehmssdk/HMSRNSDK.kt | 49 ++--- example/ios/Podfile | 2 - example/ios/Podfile.lock | 2 +- .../RNHMSExample.xcodeproj/project.pbxproj | 158 ++++++++------- ios/HMSManager.m | 3 + ios/HMSManager.swift | 48 +++-- ios/HMSRNSDK.swift | 59 +++--- src/classes/HMSEncoder.ts | 60 +++++- src/classes/HMSSDK.tsx | 186 +++++++++--------- 10 files changed, 328 insertions(+), 260 deletions(-) diff --git a/android/src/main/java/com/reactnativehmssdk/HMSManager.kt b/android/src/main/java/com/reactnativehmssdk/HMSManager.kt index bc1349da9..5e08acaa5 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSManager.kt @@ -159,6 +159,27 @@ class HMSManager(reactContext: ReactApplicationContext) : hms?.getRoom(callback) } + @ReactMethod + fun getLocalPeer(data: ReadableMap, callback: Promise?) { + val hms = HMSHelper.getHms(data, hmsCollection) + + hms?.getLocalPeer(callback) + } + + @ReactMethod + fun getRemotePeers(data: ReadableMap, callback: Promise?) { + val hms = HMSHelper.getHms(data, hmsCollection) + + hms?.getRemotePeers(callback) + } + + @ReactMethod + fun getRoles(data: ReadableMap, callback: Promise?) { + val hms = HMSHelper.getHms(data, hmsCollection) + + hms?.getRoles(callback) + } + @ReactMethod fun setPlaybackAllowed(data: ReadableMap) { val hms = HMSHelper.getHms(data, hmsCollection) diff --git a/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt b/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt index 4e1652aad..08b146f59 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt @@ -128,18 +128,12 @@ class HMSRNSDK( return } val updateType = type.name - val roomData = HMSDecoder.getHmsRoom(hmsSDK?.getRoom()) - val localPeerData = HMSDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer()) - val remotePeerData = HMSDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers()) val hmsPeer = HMSDecoder.getHmsPeer(peer) val data: WritableMap = Arguments.createMap() data.putMap("peer", hmsPeer) - data.putMap("room", roomData) data.putString("type", updateType) - data.putMap("localPeer", localPeerData) - data.putArray("remotePeers", remotePeerData) data.putString("id", id) delegate.emitEvent("ON_PEER_UPDATE", data) } @@ -147,15 +141,11 @@ class HMSRNSDK( override fun onRoomUpdate(type: HMSRoomUpdate, hmsRoom: HMSRoom) { val updateType = type.name val roomData = HMSDecoder.getHmsRoom(hmsRoom) - val localPeerData = HMSDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer()) - val remotePeerData = HMSDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers()) val data: WritableMap = Arguments.createMap() data.putString("type", updateType) data.putMap("room", roomData) - data.putMap("localPeer", localPeerData) - data.putArray("remotePeers", remotePeerData) data.putString("id", id) delegate.emitEvent("ON_ROOM_UPDATE", data) } @@ -163,12 +153,10 @@ class HMSRNSDK( override fun onPreview(room: HMSRoom, localTracks: Array) { val previewTracks = HMSDecoder.getPreviewTracks(localTracks) val hmsRoom = HMSDecoder.getHmsRoom(room) - val localPeerData = HMSDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer()) val data: WritableMap = Arguments.createMap() data.putMap("previewTracks", previewTracks) data.putMap("room", hmsRoom) - data.putMap("localPeer", localPeerData) data.putString("id", id) delegate.emitEvent("ON_PREVIEW", data) previewInProgress = false @@ -232,16 +220,10 @@ class HMSRNSDK( override fun onJoin(room: HMSRoom) { val roomData = HMSDecoder.getHmsRoom(room) - val localPeerData = HMSDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer()) - val remotePeerData = HMSDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers()) - val roles = HMSDecoder.getAllRoles(hmsSDK?.getRoles()) val data: WritableMap = Arguments.createMap() data.putMap("room", roomData) - data.putMap("localPeer", localPeerData) - data.putArray("remotePeers", remotePeerData) - data.putArray("roles", roles) data.putString("id", id) delegate.emitEvent("ON_JOIN", data) } @@ -258,18 +240,12 @@ class HMSRNSDK( return } val updateType = type.name - val roomData = HMSDecoder.getHmsRoom(hmsSDK?.getRoom()) - val localPeerData = HMSDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer()) - val remotePeerData = HMSDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers()) val hmsPeer = HMSDecoder.getHmsPeer(peer) val data: WritableMap = Arguments.createMap() data.putMap("peer", hmsPeer) - data.putMap("room", roomData) data.putString("type", updateType) - data.putMap("localPeer", localPeerData) - data.putArray("remotePeers", remotePeerData) data.putString("id", id) delegate.emitEvent("ON_PEER_UPDATE", data) } @@ -277,24 +253,17 @@ class HMSRNSDK( override fun onRoomUpdate(type: HMSRoomUpdate, hmsRoom: HMSRoom) { val updateType = type.name val roomData = HMSDecoder.getHmsRoom(hmsRoom) - val localPeerData = HMSDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer()) - val remotePeerData = HMSDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers()) val data: WritableMap = Arguments.createMap() data.putString("type", updateType) data.putMap("room", roomData) - data.putMap("localPeer", localPeerData) - data.putArray("remotePeers", remotePeerData) data.putString("id", id) delegate.emitEvent("ON_ROOM_UPDATE", data) } override fun onTrackUpdate(type: HMSTrackUpdate, track: HMSTrack, peer: HMSPeer) { val updateType = type.name - val localPeerData = HMSDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer()) - val remotePeerData = HMSDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers()) - val roomData = HMSDecoder.getHmsRoom(hmsSDK?.getRoom()) val hmsPeer = HMSDecoder.getHmsPeer(peer) val hmsTrack = HMSDecoder.getHmsTrack(track) @@ -302,10 +271,7 @@ class HMSRNSDK( data.putMap("peer", hmsPeer) data.putMap("track", hmsTrack) - data.putMap("room", roomData) data.putString("type", updateType) - data.putMap("localPeer", localPeerData) - data.putArray("remotePeers", remotePeerData) data.putString("id", id) delegate.emitEvent("ON_TRACK_UPDATE", data) } @@ -938,6 +904,21 @@ class HMSRNSDK( callback?.resolve(roomData) } + fun getLocalPeer(callback: Promise?) { + val localPeer = HMSDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer()) + callback?.resolve(localPeer) + } + + fun getRemotePeers(callback: Promise?) { + val remotePeers = HMSDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers()) + callback?.resolve(remotePeers) + } + + fun getRoles(callback: Promise?) { + val roles = HMSDecoder.getAllRoles(hmsSDK?.getRoles()) + callback?.resolve(roles) + } + fun setVolume(data: ReadableMap) { val requiredKeys = HMSHelper.getUnavailableRequiredKey( diff --git a/example/ios/Podfile b/example/ios/Podfile index 10046739d..4d55589b7 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -22,8 +22,6 @@ target 'RNHMSExample' do pod 'react-native-hms', :path => '../..' pod 'Permission-Camera', :path => "#{permissions_path}/Camera" pod 'Permission-Microphone', :path => "#{permissions_path}/Microphone" - pod 'react-native-video', :path => '../node_modules/react-native-video' - pod 'react-native-camera', :path => '../node_modules/react-native-camera' target 'RNHMSExampleTests' do inherit! :complete diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index a2670d514..07d1e8690 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -582,7 +582,7 @@ SPEC CHECKSUMS: CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 DoubleConversion: cf9b38bf0b2d048436d9a82ad2abe1404f11e7de FBLazyVector: e686045572151edef46010a6f819ade377dfeb4b - FBReactNativeSpec: 0094aca9cd5d4a79abcb5a2c1d1f52d0c106aaf9 + FBReactNativeSpec: 978556cb9c183a32af51f818206b201b3deb0d1e Flipper: d3da1aa199aad94455ae725e9f3aa43f3ec17021 Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41 Flipper-Folly: 755929a4f851b2fb2c347d533a23f191b008554c diff --git a/example/ios/RNHMSExample.xcodeproj/project.pbxproj b/example/ios/RNHMSExample.xcodeproj/project.pbxproj index c2186b451..cdd0cbfcc 100644 --- a/example/ios/RNHMSExample.xcodeproj/project.pbxproj +++ b/example/ios/RNHMSExample.xcodeproj/project.pbxproj @@ -10,14 +10,14 @@ 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 45CE41045BF2D737261AE641 /* libPods-RNHMSExampleBroadcastUpload.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E61A1F49A79D4FD80D10540 /* libPods-RNHMSExampleBroadcastUpload.a */; }; 5B373DA026B9114500DFE478 /* libswiftWebKit.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B373D9F26B9112700DFE478 /* libswiftWebKit.tbd */; }; - 60501FBE68997AD593F5F40F /* libPods-RNHMSExample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F8A7BB01F2990F6065CF65E5 /* libPods-RNHMSExample.a */; }; 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; + 83F0CCB59634BDA7E983FDEA /* libPods-RNHMSExample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BEB2D493E8A5BBFF46F92B /* libPods-RNHMSExample.a */; }; A987F9182848F8790078014C /* Inter-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A987F9162848F6A80078014C /* Inter-Bold.ttf */; }; A987F9192848F8790078014C /* Inter-Medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A987F9152848F6A80078014C /* Inter-Medium.ttf */; }; A987F91A2848F8790078014C /* Inter-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A987F9172848F6A80078014C /* Inter-Regular.ttf */; }; - D1A53095BCBDAEB5A58363D7 /* libPods-RNHMSExample-RNHMSExampleTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 011CE7C7CEFE0BA6530EEE05 /* libPods-RNHMSExample-RNHMSExampleTests.a */; }; + C7FE391A6EAC0B7942FA85ED /* libPods-RNHMSExample-RNHMSExampleTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DACAD29EF3E1331792A2A6D4 /* libPods-RNHMSExample-RNHMSExampleTests.a */; }; + CB0E5AEE35E310D8B0F98AEB /* libPods-RNHMSExampleBroadcastUpload.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 54CC37EB010A825DE92012B6 /* libPods-RNHMSExampleBroadcastUpload.a */; }; ECD6520728B3BADE007B5AF8 /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECD6520628B3BADE007B5AF8 /* ReplayKit.framework */; }; ECD6520A28B3BADE007B5AF8 /* SampleHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECD6520928B3BADE007B5AF8 /* SampleHandler.swift */; }; ECD6520E28B3BADE007B5AF8 /* RNHMSExampleBroadcastUpload.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = ECD6520528B3BADE007B5AF8 /* RNHMSExampleBroadcastUpload.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; @@ -56,27 +56,26 @@ /* Begin PBXFileReference section */ 00E356EE1AD99517003FC87E /* RNHMSExampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RNHMSExampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 011CE7C7CEFE0BA6530EEE05 /* libPods-RNHMSExample-RNHMSExampleTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNHMSExample-RNHMSExampleTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 129B28F26CD2E60FDD31F60A /* Pods-RNHMSExampleBroadcastUpload.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNHMSExampleBroadcastUpload.release.xcconfig"; path = "Target Support Files/Pods-RNHMSExampleBroadcastUpload/Pods-RNHMSExampleBroadcastUpload.release.xcconfig"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* RNHMSExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RNHMSExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = RNHMSExample/AppDelegate.h; sourceTree = ""; }; 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = RNHMSExample/AppDelegate.m; sourceTree = ""; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = RNHMSExample/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = RNHMSExample/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = RNHMSExample/main.m; sourceTree = ""; }; - 249074DB2395F002F7348019 /* Pods-RNHMSExample-RNHMSExampleTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNHMSExample-RNHMSExampleTests.debug.xcconfig"; path = "Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests.debug.xcconfig"; sourceTree = ""; }; - 2C89024864789A6D93C93E64 /* Pods-RNHMSExample-RNHMSExampleTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNHMSExample-RNHMSExampleTests.release.xcconfig"; path = "Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests.release.xcconfig"; sourceTree = ""; }; - 3C472A3108A40A15D204FEF8 /* Pods-RNHMSExampleBroadcastUpload.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNHMSExampleBroadcastUpload.release.xcconfig"; path = "Target Support Files/Pods-RNHMSExampleBroadcastUpload/Pods-RNHMSExampleBroadcastUpload.release.xcconfig"; sourceTree = ""; }; + 306A859805197F7F55871874 /* Pods-RNHMSExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNHMSExample.release.xcconfig"; path = "Target Support Files/Pods-RNHMSExample/Pods-RNHMSExample.release.xcconfig"; sourceTree = ""; }; + 33D0EBB5A77D124502F666EE /* Pods-RNHMSExample-RNHMSExampleTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNHMSExample-RNHMSExampleTests.release.xcconfig"; path = "Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests.release.xcconfig"; sourceTree = ""; }; + 54CC37EB010A825DE92012B6 /* libPods-RNHMSExampleBroadcastUpload.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNHMSExampleBroadcastUpload.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 5B373D9F26B9112700DFE478 /* libswiftWebKit.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libswiftWebKit.tbd; path = usr/lib/swift/libswiftWebKit.tbd; sourceTree = SDKROOT; }; - 5BB88596AC778B499EECBB9C /* Pods-RNHMSExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNHMSExample.release.xcconfig"; path = "Target Support Files/Pods-RNHMSExample/Pods-RNHMSExample.release.xcconfig"; sourceTree = ""; }; - 68DD41E91EF6932E4667B3DC /* Pods-RNHMSExampleBroadcastUpload.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNHMSExampleBroadcastUpload.debug.xcconfig"; path = "Target Support Files/Pods-RNHMSExampleBroadcastUpload/Pods-RNHMSExampleBroadcastUpload.debug.xcconfig"; sourceTree = ""; }; - 7E61A1F49A79D4FD80D10540 /* libPods-RNHMSExampleBroadcastUpload.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNHMSExampleBroadcastUpload.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6CA804C6E51BBD570B65C764 /* Pods-RNHMSExample-RNHMSExampleTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNHMSExample-RNHMSExampleTests.debug.xcconfig"; path = "Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests.debug.xcconfig"; sourceTree = ""; }; + 78E106D6D531C7025A48F40B /* Pods-RNHMSExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNHMSExample.debug.xcconfig"; path = "Target Support Files/Pods-RNHMSExample/Pods-RNHMSExample.debug.xcconfig"; sourceTree = ""; }; 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = RNHMSExample/LaunchScreen.storyboard; sourceTree = ""; }; - 971E4BD9AFA4897DEA02F210 /* Pods-RNHMSExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNHMSExample.debug.xcconfig"; path = "Target Support Files/Pods-RNHMSExample/Pods-RNHMSExample.debug.xcconfig"; sourceTree = ""; }; + 9E257935BA9B15E19C3CC421 /* Pods-RNHMSExampleBroadcastUpload.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNHMSExampleBroadcastUpload.debug.xcconfig"; path = "Target Support Files/Pods-RNHMSExampleBroadcastUpload/Pods-RNHMSExampleBroadcastUpload.debug.xcconfig"; sourceTree = ""; }; A987F9152848F6A80078014C /* Inter-Medium.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Inter-Medium.ttf"; sourceTree = ""; }; A987F9162848F6A80078014C /* Inter-Bold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Inter-Bold.ttf"; sourceTree = ""; }; A987F9172848F6A80078014C /* Inter-Regular.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Inter-Regular.ttf"; sourceTree = ""; }; - D4AB719DAEFB4D46F531402E /* Pods-RNHMSExample-RNHMSExampleBroadcastUpload.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNHMSExample-RNHMSExampleBroadcastUpload.release.xcconfig"; path = "Target Support Files/Pods-RNHMSExample-RNHMSExampleBroadcastUpload/Pods-RNHMSExample-RNHMSExampleBroadcastUpload.release.xcconfig"; sourceTree = ""; }; - EA52E17B97DC2D048D45F62D /* Pods-RNHMSExample-RNHMSExampleBroadcastUpload.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNHMSExample-RNHMSExampleBroadcastUpload.debug.xcconfig"; path = "Target Support Files/Pods-RNHMSExample-RNHMSExampleBroadcastUpload/Pods-RNHMSExample-RNHMSExampleBroadcastUpload.debug.xcconfig"; sourceTree = ""; }; + D0BEB2D493E8A5BBFF46F92B /* libPods-RNHMSExample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNHMSExample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + DACAD29EF3E1331792A2A6D4 /* libPods-RNHMSExample-RNHMSExampleTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNHMSExample-RNHMSExampleTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; ECA3437726C3E17E007CB7C3 /* RNHMSExample.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = RNHMSExample.entitlements; path = RNHMSExample/RNHMSExample.entitlements; sourceTree = ""; }; ECD6520528B3BADE007B5AF8 /* RNHMSExampleBroadcastUpload.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = RNHMSExampleBroadcastUpload.appex; sourceTree = BUILT_PRODUCTS_DIR; }; ECD6520628B3BADE007B5AF8 /* ReplayKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ReplayKit.framework; path = System/Library/Frameworks/ReplayKit.framework; sourceTree = SDKROOT; }; @@ -84,7 +83,6 @@ ECD6520B28B3BADE007B5AF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; ECD6521328B3BB2B007B5AF8 /* RNHMSExampleBroadcastUpload.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = RNHMSExampleBroadcastUpload.entitlements; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; - F8A7BB01F2990F6065CF65E5 /* libPods-RNHMSExample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNHMSExample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -92,7 +90,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D1A53095BCBDAEB5A58363D7 /* libPods-RNHMSExample-RNHMSExampleTests.a in Frameworks */, + C7FE391A6EAC0B7942FA85ED /* libPods-RNHMSExample-RNHMSExampleTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -101,7 +99,7 @@ buildActionMask = 2147483647; files = ( 5B373DA026B9114500DFE478 /* libswiftWebKit.tbd in Frameworks */, - 60501FBE68997AD593F5F40F /* libPods-RNHMSExample.a in Frameworks */, + 83F0CCB59634BDA7E983FDEA /* libPods-RNHMSExample.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -110,7 +108,7 @@ buildActionMask = 2147483647; files = ( ECD6520728B3BADE007B5AF8 /* ReplayKit.framework in Frameworks */, - 45CE41045BF2D737261AE641 /* libPods-RNHMSExampleBroadcastUpload.a in Frameworks */, + CB0E5AEE35E310D8B0F98AEB /* libPods-RNHMSExampleBroadcastUpload.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -136,10 +134,10 @@ children = ( 5B373D9F26B9112700DFE478 /* libswiftWebKit.tbd */, ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - F8A7BB01F2990F6065CF65E5 /* libPods-RNHMSExample.a */, - 011CE7C7CEFE0BA6530EEE05 /* libPods-RNHMSExample-RNHMSExampleTests.a */, ECD6520628B3BADE007B5AF8 /* ReplayKit.framework */, - 7E61A1F49A79D4FD80D10540 /* libPods-RNHMSExampleBroadcastUpload.a */, + D0BEB2D493E8A5BBFF46F92B /* libPods-RNHMSExample.a */, + DACAD29EF3E1331792A2A6D4 /* libPods-RNHMSExample-RNHMSExampleTests.a */, + 54CC37EB010A825DE92012B6 /* libPods-RNHMSExampleBroadcastUpload.a */, ); name = Frameworks; sourceTree = ""; @@ -190,14 +188,12 @@ E4E9F5E04BE3D65A2FF05FBF /* Pods */ = { isa = PBXGroup; children = ( - 971E4BD9AFA4897DEA02F210 /* Pods-RNHMSExample.debug.xcconfig */, - 5BB88596AC778B499EECBB9C /* Pods-RNHMSExample.release.xcconfig */, - 249074DB2395F002F7348019 /* Pods-RNHMSExample-RNHMSExampleTests.debug.xcconfig */, - 2C89024864789A6D93C93E64 /* Pods-RNHMSExample-RNHMSExampleTests.release.xcconfig */, - EA52E17B97DC2D048D45F62D /* Pods-RNHMSExample-RNHMSExampleBroadcastUpload.debug.xcconfig */, - D4AB719DAEFB4D46F531402E /* Pods-RNHMSExample-RNHMSExampleBroadcastUpload.release.xcconfig */, - 68DD41E91EF6932E4667B3DC /* Pods-RNHMSExampleBroadcastUpload.debug.xcconfig */, - 3C472A3108A40A15D204FEF8 /* Pods-RNHMSExampleBroadcastUpload.release.xcconfig */, + 78E106D6D531C7025A48F40B /* Pods-RNHMSExample.debug.xcconfig */, + 306A859805197F7F55871874 /* Pods-RNHMSExample.release.xcconfig */, + 6CA804C6E51BBD570B65C764 /* Pods-RNHMSExample-RNHMSExampleTests.debug.xcconfig */, + 33D0EBB5A77D124502F666EE /* Pods-RNHMSExample-RNHMSExampleTests.release.xcconfig */, + 9E257935BA9B15E19C3CC421 /* Pods-RNHMSExampleBroadcastUpload.debug.xcconfig */, + 129B28F26CD2E60FDD31F60A /* Pods-RNHMSExampleBroadcastUpload.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -219,12 +215,12 @@ isa = PBXNativeTarget; buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "RNHMSExampleTests" */; buildPhases = ( - 9F4B5889456195CEE49BFBB2 /* [CP] Check Pods Manifest.lock */, + 489A01A163AD4D628643C1FE /* [CP] Check Pods Manifest.lock */, 00E356EA1AD99517003FC87E /* Sources */, 00E356EB1AD99517003FC87E /* Frameworks */, 00E356EC1AD99517003FC87E /* Resources */, - F02217844AEE82D4D05937DC /* [CP] Embed Pods Frameworks */, - 4102487C5C13771EAD1B6496 /* [CP] Copy Pods Resources */, + D69A5E9D6F58B3126781A68F /* [CP] Embed Pods Frameworks */, + 72048CAEF744BC97EDCB1D7A /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -240,15 +236,15 @@ isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "RNHMSExample" */; buildPhases = ( - 822AC30264A4BB539DF0D232 /* [CP] Check Pods Manifest.lock */, + 54489A7BC7C4D39285DBD18C /* [CP] Check Pods Manifest.lock */, FD10A7F022414F080027D42C /* Start Packager */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - DD8BCEFB47A49695E7D57291 /* [CP] Embed Pods Frameworks */, - 7F8FF84FA36C80659B57D77B /* [CP] Copy Pods Resources */, ECD6520F28B3BADE007B5AF8 /* Embed App Extensions */, + DDF0F48D1FB1854DCCE6567F /* [CP] Embed Pods Frameworks */, + E67B67B5F697CD37CA2EBE06 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -264,7 +260,7 @@ isa = PBXNativeTarget; buildConfigurationList = ECD6521228B3BADE007B5AF8 /* Build configuration list for PBXNativeTarget "RNHMSExampleBroadcastUpload" */; buildPhases = ( - 0CF43A09E33CF9AAC9A3872B /* [CP] Check Pods Manifest.lock */, + 647975032BD14F6FAA59C888 /* [CP] Check Pods Manifest.lock */, ECD6520128B3BADE007B5AF8 /* Sources */, ECD6520228B3BADE007B5AF8 /* Frameworks */, ECD6520328B3BADE007B5AF8 /* Resources */, @@ -364,7 +360,7 @@ shellPath = /bin/sh; shellScript = "set -e\n\nexport NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n"; }; - 0CF43A09E33CF9AAC9A3872B /* [CP] Check Pods Manifest.lock */ = { + 489A01A163AD4D628643C1FE /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -379,92 +375,92 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RNHMSExampleBroadcastUpload-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-RNHMSExample-RNHMSExampleTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 4102487C5C13771EAD1B6496 /* [CP] Copy Pods Resources */ = { + 54489A7BC7C4D39285DBD18C /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests-resources-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Copy Pods Resources"; + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RNHMSExample-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests-resources.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 7F8FF84FA36C80659B57D77B /* [CP] Copy Pods Resources */ = { + 647975032BD14F6FAA59C888 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RNHMSExample/Pods-RNHMSExample-resources-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Copy Pods Resources"; + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RNHMSExample/Pods-RNHMSExample-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RNHMSExampleBroadcastUpload-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNHMSExample/Pods-RNHMSExample-resources.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 822AC30264A4BB539DF0D232 /* [CP] Check Pods Manifest.lock */ = { + 72048CAEF744BC97EDCB1D7A /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests-resources-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Copy Pods Resources"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RNHMSExample-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests-resources-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 9F4B5889456195CEE49BFBB2 /* [CP] Check Pods Manifest.lock */ = { + D69A5E9D6F58B3126781A68F /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RNHMSExample-RNHMSExampleTests-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - DD8BCEFB47A49695E7D57291 /* [CP] Embed Pods Frameworks */ = { + DDF0F48D1FB1854DCCE6567F /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -481,21 +477,21 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNHMSExample/Pods-RNHMSExample-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - F02217844AEE82D4D05937DC /* [CP] Embed Pods Frameworks */ = { + E67B67B5F697CD37CA2EBE06 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-RNHMSExample/Pods-RNHMSExample-resources-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Embed Pods Frameworks"; + name = "[CP] Copy Pods Resources"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-RNHMSExample/Pods-RNHMSExample-resources-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNHMSExample/Pods-RNHMSExample-resources.sh\"\n"; showEnvVarsInLog = 0; }; FD10A7F022414F080027D42C /* Start Packager */ = { @@ -562,7 +558,7 @@ /* Begin XCBuildConfiguration section */ 00E356F61AD99517003FC87E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 249074DB2395F002F7348019 /* Pods-RNHMSExample-RNHMSExampleTests.debug.xcconfig */; + baseConfigurationReference = 6CA804C6E51BBD570B65C764 /* Pods-RNHMSExample-RNHMSExampleTests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -591,7 +587,7 @@ }; 00E356F71AD99517003FC87E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2C89024864789A6D93C93E64 /* Pods-RNHMSExample-RNHMSExampleTests.release.xcconfig */; + baseConfigurationReference = 33D0EBB5A77D124502F666EE /* Pods-RNHMSExample-RNHMSExampleTests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -617,7 +613,7 @@ }; 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 971E4BD9AFA4897DEA02F210 /* Pods-RNHMSExample.debug.xcconfig */; + baseConfigurationReference = 78E106D6D531C7025A48F40B /* Pods-RNHMSExample.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -659,7 +655,7 @@ }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5BB88596AC778B499EECBB9C /* Pods-RNHMSExample.release.xcconfig */; + baseConfigurationReference = 306A859805197F7F55871874 /* Pods-RNHMSExample.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -730,7 +726,7 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -795,7 +791,7 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -822,7 +818,7 @@ }; ECD6521028B3BADE007B5AF8 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 68DD41E91EF6932E4667B3DC /* Pods-RNHMSExampleBroadcastUpload.debug.xcconfig */; + baseConfigurationReference = 9E257935BA9B15E19C3CC421 /* Pods-RNHMSExampleBroadcastUpload.debug.xcconfig */; buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -865,7 +861,7 @@ }; ECD6521128B3BADE007B5AF8 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3C472A3108A40A15D204FEF8 /* Pods-RNHMSExampleBroadcastUpload.release.xcconfig */; + baseConfigurationReference = 129B28F26CD2E60FDD31F60A /* Pods-RNHMSExampleBroadcastUpload.release.xcconfig */; buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; diff --git a/ios/HMSManager.m b/ios/HMSManager.m index 8cee0d7ea..60567ffad 100644 --- a/ios/HMSManager.m +++ b/ios/HMSManager.m @@ -48,4 +48,7 @@ @interface RCT_EXTERN_MODULE(HMSManager, RCTEventEmitter) RCT_EXTERN_METHOD(audioShareIsPlaying: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject) RCT_EXTERN_METHOD(audioShareCurrentTime: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject) RCT_EXTERN_METHOD(audioShareDuration: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject) +RCT_EXTERN_METHOD(getLocalPeer: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject) +RCT_EXTERN_METHOD(getRemotePeers: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject) +RCT_EXTERN_METHOD(getRoles: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject) @end diff --git a/ios/HMSManager.swift b/ios/HMSManager.swift index 114fc7430..e4b468242 100644 --- a/ios/HMSManager.swift +++ b/ios/HMSManager.swift @@ -204,20 +204,6 @@ class HMSManager: RCTEventEmitter { hms?.isPlaybackAllowed(data, resolve, reject) } - @objc - func getRoom(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) { - let hms = HMSHelper.getHms(data, hmsCollection) - - hms?.getRoom(data, resolve, reject) - } - - // MARK: - HMS SDK Delegate Callbacks - func emitEvent(_ name: String, _ data: [String: Any]) { - self.sendEvent(withName: name, body: data) - } - - // MARK: Helper Functions - @objc func setPlaybackForAllAudio(_ data: NSDictionary) { let hms = HMSHelper.getHms(data, hmsCollection) @@ -378,4 +364,38 @@ class HMSManager: RCTEventEmitter { hms?.audioShareDuration(data, resolve, reject) } + + // MARK: - HMS SDK Get APIs + @objc + func getRoom(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) { + let hms = HMSHelper.getHms(data, hmsCollection) + + hms?.getRoom(resolve) + } + + @objc + func getLocalPeer(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) { + let hms = HMSHelper.getHms(data, hmsCollection) + + hms?.getLocalPeer(resolve) + } + + @objc + func getRemotePeers(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) { + let hms = HMSHelper.getHms(data, hmsCollection) + + hms?.getRemotePeers(resolve) + } + + @objc + func getRoles(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) { + let hms = HMSHelper.getHms(data, hmsCollection) + + hms?.getRoles(resolve) + } + + // MARK: - HMS SDK Delegate Callbacks + func emitEvent(_ name: String, _ data: [String: Any]) { + self.sendEvent(withName: name, body: data) + } } diff --git a/ios/HMSRNSDK.swift b/ios/HMSRNSDK.swift index b0f2b6cea..1e6044018 100644 --- a/ios/HMSRNSDK.swift +++ b/ios/HMSRNSDK.swift @@ -530,12 +530,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener { } } - func getRoom(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) { - let roomData = HMSDecoder.getHmsRoom(hms?.room) - - resolve?(roomData) - } - func setPlaybackAllowed(_ data: NSDictionary) { guard let trackId = data.value(forKey: "trackId") as? String, let playbackAllowed = data.value(forKey: "playbackAllowed") as? Bool @@ -981,57 +975,64 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener { reject?("AudioFilePlayerNode not found", "AudioFilePlayerNode not found", nil) } } + + // MARK: - HMS SDK Get APIs + func getRoom(_ resolve: RCTPromiseResolveBlock?) { + let roomData = HMSDecoder.getHmsRoom(hms?.room) + + resolve?(roomData) + } + + func getLocalPeer(_ resolve: RCTPromiseResolveBlock?) { + let localPeer = HMSDecoder.getHmsLocalPeer(hms?.localPeer) + + resolve?(localPeer) + } + + func getRemotePeers(_ resolve: RCTPromiseResolveBlock?) { + let remotePeers = HMSDecoder.getHmsRemotePeers(hms?.remotePeers) + + resolve?(remotePeers) + } + + func getRoles(_ resolve: RCTPromiseResolveBlock?) { + let roles = HMSDecoder.getAllRoles(hms?.roles) + + resolve?(roles) + } // MARK: - HMS SDK Delegate Callbacks func on(join room: HMSRoom) { let roomData = HMSDecoder.getHmsRoom(room) - let localPeerData = HMSDecoder.getHmsLocalPeer(hms?.localPeer) - let remotePeerData = HMSDecoder.getHmsRemotePeers(hms?.remotePeers) - let decodedRoles = HMSDecoder.getAllRoles(hms?.roles) self.recentPreviewTracks = [] - self.delegate?.emitEvent(ON_JOIN, ["event": ON_JOIN, "id": self.id, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData, "roles": decodedRoles]) + self.delegate?.emitEvent(ON_JOIN, ["event": ON_JOIN, "id": self.id, "room": roomData]) } func onPreview(room: HMSRoom, localTracks: [HMSTrack]) { let previewTracks = HMSDecoder.getPreviewTracks(localTracks) let hmsRoom = HMSDecoder.getHmsRoom(room) - let localPeerData = HMSDecoder.getHmsLocalPeer(hms?.localPeer) previewInProgress = false - self.delegate?.emitEvent(ON_PREVIEW, ["event": ON_PREVIEW, "id": self.id, "room": hmsRoom, "previewTracks": previewTracks, "localPeer": localPeerData]) + self.delegate?.emitEvent(ON_PREVIEW, ["event": ON_PREVIEW, "id": self.id, "room": hmsRoom, "previewTracks": previewTracks]) } func on(room: HMSRoom, update: HMSRoomUpdate) { - // Listener for any updation in room let roomData = HMSDecoder.getHmsRoom(room) let type = getString(from: update) - let localPeerData = HMSDecoder.getHmsLocalPeer(hms?.localPeer) - let remotePeerData = HMSDecoder.getHmsRemotePeers(hms?.remotePeers) - - self.delegate?.emitEvent(ON_ROOM_UPDATE, ["event": ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData]) + self.delegate?.emitEvent(ON_ROOM_UPDATE, ["event": ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData]) } func on(peer: HMSPeer, update: HMSPeerUpdate) { - // Listener for updates in Peers - let roomData = HMSDecoder.getHmsRoom(hms?.room) let type = getString(from: update) - - let localPeerData = HMSDecoder.getHmsLocalPeer(hms?.localPeer) - let remotePeerData = HMSDecoder.getHmsRemotePeers(hms?.remotePeers) let hmsPeer = HMSDecoder.getHmsPeer(peer) - self.delegate?.emitEvent(ON_PEER_UPDATE, ["event": ON_PEER_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData, "peer": hmsPeer]) + self.delegate?.emitEvent(ON_PEER_UPDATE, ["event": ON_PEER_UPDATE, "id": self.id, "type": type, "peer": hmsPeer]) } func on(track: HMSTrack, update: HMSTrackUpdate, for peer: HMSPeer) { - // Listener for updates in Tracks - let roomData = HMSDecoder.getHmsRoom(hms?.room) let type = getString(from: update) - - let localPeerData = HMSDecoder.getHmsLocalPeer(hms?.localPeer) - let remotePeerData = HMSDecoder.getHmsRemotePeers(hms?.remotePeers) let hmsPeer = HMSDecoder.getHmsPeer(peer) let hmsTrack = HMSDecoder.getHmsTrack(track) @@ -1047,7 +1048,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener { } } - self.delegate?.emitEvent(ON_TRACK_UPDATE, ["event": ON_TRACK_UPDATE, "id": self.id, "room": roomData, "type": type, "localPeer": localPeerData, "remotePeers": remotePeerData, "peer": hmsPeer, "track": hmsTrack]) + self.delegate?.emitEvent(ON_TRACK_UPDATE, ["event": ON_TRACK_UPDATE, "id": self.id, "type": type, "peer": hmsPeer, "track": hmsTrack]) } func on(error: Error) { diff --git a/src/classes/HMSEncoder.ts b/src/classes/HMSEncoder.ts index 01564e4b6..f4e65eca3 100644 --- a/src/classes/HMSEncoder.ts +++ b/src/classes/HMSEncoder.ts @@ -28,6 +28,9 @@ import { HMSServerRecordingState } from './HMSServerRecordingState'; import { HMSMessage } from './HMSMessage'; import { HMSMessageRecipient } from './HMSMessageRecipient'; import { HMSException } from './HMSException'; +import { HMSPeerUpdate } from './HMSPeerUpdate'; +import { HMSTrackUpdate } from './HMSTrackUpdate'; +import { HMSRoomUpdate } from './HMSRoomUpdate'; export class HMSEncoder { static encodeHmsRoom(room: HMSRoom, id: string) { @@ -240,7 +243,7 @@ export class HMSEncoder { } static encodeHmsRemotePeers(peers: any, id: string) { - const hmsPeers: any[] = []; + const hmsPeers: HMSRemotePeer[] = []; peers.map((peer: any) => { const encodedPeer = HMSEncoder.encodeHmsRemotePeer(peer, id); @@ -510,4 +513,59 @@ export class HMSEncoder { canRetry: data?.error?.canRetry, }); } + + static encodeHmsPeerUpdateType(type: any): HMSPeerUpdate { + switch (type) { + case type === 'PEER_JOINED': + return HMSPeerUpdate.PEER_JOINED; + case type === 'PEER_LEFT': + return HMSPeerUpdate.PEER_LEFT; + case 'ROLE_CHANGED': + return HMSPeerUpdate.ROLE_CHANGED; + case 'METADATA_CHANGED': + return HMSPeerUpdate.METADATA_CHANGED; + case 'NETWORK_QUALITY_UPDATED': + return HMSPeerUpdate.NETWORK_QUALITY_UPDATED; + default: + return HMSPeerUpdate.NAME_CHANGED; + } + } + + static encodeHmsTrackUpdateType(type: any): HMSTrackUpdate { + switch (type) { + case 'TRACK_ADDED': + return HMSTrackUpdate.TRACK_ADDED; + case 'TRACK_REMOVED': + return HMSTrackUpdate.TRACK_REMOVED; + case 'TRACK_MUTED': + return HMSTrackUpdate.TRACK_MUTED; + case 'TRACK_UNMUTED': + return HMSTrackUpdate.TRACK_UNMUTED; + case 'TRACK_RESTORED': + return HMSTrackUpdate.TRACK_RESTORED; + case 'TRACK_DEGRADED': + return HMSTrackUpdate.TRACK_DEGRADED; + default: + return HMSTrackUpdate.TRACK_DESCRIPTION_CHANGED; + } + } + + static encodeHmsRoomUpdateType(type: any): HMSRoomUpdate { + switch (type) { + case type === 'ROOM_MUTED': + return HMSRoomUpdate.ROOM_MUTED; + case type === 'ROOM_UNMUTED': + return HMSRoomUpdate.ROOM_UNMUTED; + case 'RTMP_STREAMING_STATE_UPDATED': + return HMSRoomUpdate.RTMP_STREAMING_STATE_UPDATED; + case 'SERVER_RECORDING_STATE_UPDATED': + return HMSRoomUpdate.SERVER_RECORDING_STATE_UPDATED; + case 'BROWSER_RECORDING_STATE_UPDATED': + return HMSRoomUpdate.BROWSER_RECORDING_STATE_UPDATED; + case 'HLS_RECORDING_STATE_UPDATED': + return HMSRoomUpdate.HLS_RECORDING_STATE_UPDATED; + default: + return HMSRoomUpdate.HLS_STREAMING_STATE_UPDATED; + } + } } diff --git a/src/classes/HMSSDK.tsx b/src/classes/HMSSDK.tsx index 03caa6990..4b53c29e9 100644 --- a/src/classes/HMSSDK.tsx +++ b/src/classes/HMSSDK.tsx @@ -1,5 +1,11 @@ import React from 'react'; -import { AppState, NativeEventEmitter, NativeModules, Platform, ViewStyle } from 'react-native'; +import { + AppState, + NativeEventEmitter, + NativeModules, + Platform, + ViewStyle, +} from 'react-native'; import { HMSEncoder } from './HMSEncoder'; import { HMSHelper } from './HMSHelper'; @@ -27,6 +33,9 @@ import type { HMSHLSConfig } from './HMSHLSConfig'; import type { HMSAudioDevice } from './HMSAudioDevice'; import type { HMSAudioMode } from './HMSAudioMode'; import type { HMSAudioMixingMode } from './HMSAudioMixingMode'; +import type { HMSPeerUpdate } from './HMSPeerUpdate'; +import type { HMSTrackUpdate } from './HMSTrackUpdate'; +import type { HMSRoomUpdate } from './HMSRoomUpdate'; interface HmsViewProps { trackId: string; @@ -48,10 +57,6 @@ const HmsEventEmitter = new NativeEventEmitter(HMSManager); let HmsSdk: HMSSDK | undefined; export class HMSSDK { - room?: HMSRoom; - localPeer?: HMSLocalPeer; - remotePeers?: HMSRemotePeer[]; - knownRoles?: HMSRole[]; id: string; private muteStatus: boolean | undefined; private appStateSubscription?: any; @@ -443,10 +448,6 @@ export class HMSSDK { const op = await HMSManager.leave(data); this.muteStatus = undefined; - this.localPeer = undefined; - this.remotePeers = undefined; - this.room = undefined; - this.knownRoles = undefined; this?.appStateSubscription?.remove(); return op; }; @@ -794,11 +795,10 @@ export class HMSSDK { * checkout {@link https://www.100ms.live/docs/react-native/v2/features/join#get-room} for more info * * @memberof HMSSDK - * @return HMSRoom + * @return Promise */ - getRoom = async () => { + getRoom = async (): Promise => { logger?.verbose('#Function getRoom', { - roomID: this.room?.id, id: this.id, }); const hmsRoom = await HMSManager.getRoom({ id: this.id }); @@ -807,6 +807,60 @@ export class HMSSDK { return encodedHmsRoom; }; + /** + * - getLocalPeer is a wrapper function on an existing native function also known as getLocalPeer the returns + * current local peer object which is of type {@link HMSLocalPeer} + * + * @memberof HMSSDK + * @return Promise + */ + getLocalPeer = async (): Promise => { + logger?.verbose('#Function getLocalPeer', { + id: this.id, + }); + const localPeer = await HMSManager.getLocalPeer({ id: this.id }); + + const encodedLocalPeer = HMSEncoder.encodeHmsLocalPeer(localPeer, this.id); + return encodedLocalPeer; + }; + + /** + * - getRemotePeers is a wrapper function on an existing native function also known as getRemotePeers the returns + * remote peers array which is of type {@link HMSRemotePeer} + * + * @memberof HMSSDK + * @return Promise + */ + getRemotePeers = async (): Promise => { + logger?.verbose('#Function getRemotePeers', { + id: this.id, + }); + const remotePeers = await HMSManager.getRemotePeers({ id: this.id }); + + const encodedRemotePeers = HMSEncoder.encodeHmsRemotePeers( + remotePeers, + this.id + ); + return encodedRemotePeers; + }; + + /** + * - getRoles is a wrapper function on an existing native function also known as getRoles the returns + * array of all present roles which is of type {@link HMSRole} + * + * @memberof HMSSDK + * @return Promise + */ + getRoles = async (): Promise => { + logger?.verbose('#Function getRoles', { + id: this.id, + }); + const roles = await HMSManager.getRoles({ id: this.id }); + + const encodedRoles = HMSEncoder.encodeHmsRoles(roles); + return encodedRoles; + }; + /** * - This function sets the volume of any peer in the room * @@ -1308,25 +1362,16 @@ export class HMSSDK { return; } const room: HMSRoom = HMSEncoder.encodeHmsRoom(data.room, this.id); - const localPeer: HMSLocalPeer = HMSEncoder.encodeHmsLocalPeer( - data.localPeer, - this.id - ); - const previewTracks = HMSEncoder.encodeHmsPreviewTracks(data.previewTracks); - this.localPeer = localPeer; - this.room = room; if (this.onPreviewDelegate) { logger?.verbose('#Listener ON_PREVIEW_LISTENER_CALL', { - ...data, room, - localPeer, previewTracks, }); - this.onPreviewDelegate({ ...data, room, localPeer, previewTracks }); + this.onPreviewDelegate({ room, previewTracks }); } else { - logger?.verbose('#Listener ON_PREVIEW', data); + logger?.verbose('#Listener ON_PREVIEW', { room, previewTracks }); } }; @@ -1334,31 +1379,16 @@ export class HMSSDK { if (data.id !== this.id) { return; } - // Preprocessing + const room: HMSRoom = HMSEncoder.encodeHmsRoom(data.room, this.id); - const localPeer: HMSLocalPeer = HMSEncoder.encodeHmsLocalPeer( - data.localPeer, - this.id - ); - const remotePeers: HMSRemotePeer[] = HMSEncoder.encodeHmsRemotePeers( - data.remotePeers, - this.id - ); - const roles: HMSRole[] = HMSEncoder.encodeHmsRoles(data.roles); - this.room = room; - this.localPeer = localPeer; - this.remotePeers = remotePeers; - this.knownRoles = roles; + if (this.onJoinDelegate) { logger?.verbose('#Listener ON_JOIN_LISTENER_CALL', { - ...data, room, - localPeer, - remotePeers, }); - this.onJoinDelegate({ ...data, room, localPeer, remotePeers }); + this.onJoinDelegate({ room }); } else { - logger?.verbose('#LISTENER ON_JOIN', data); + logger?.verbose('#LISTENER ON_JOIN', { room }); } }; @@ -1367,27 +1397,16 @@ export class HMSSDK { return; } const room: HMSRoom = HMSEncoder.encodeHmsRoom(data.room, this.id); - const localPeer: HMSLocalPeer = HMSEncoder.encodeHmsLocalPeer( - data.localPeer, - this.id - ); - const remotePeers: HMSRemotePeer[] = HMSEncoder.encodeHmsRemotePeers( - data.remotePeers, - this.id - ); - this.room = room; - this.localPeer = localPeer; - this.remotePeers = remotePeers; + const type: HMSRoomUpdate = HMSEncoder.encodeHmsRoomUpdateType(data.type); + if (this.onRoomDelegate) { logger?.verbose('#Listener ON_ROOM_LISTENER_CALL', { - ...data, room, - localPeer, - remotePeers, + type, }); - this.onRoomDelegate({ ...data, room, localPeer, remotePeers }); + this.onRoomDelegate({ room, type }); } else { - logger?.verbose('#Listener ON_ROOM', data); + logger?.verbose('#Listener ON_ROOM', { room, type }); } }; @@ -1396,30 +1415,16 @@ export class HMSSDK { return; } const peer: HMSPeer = HMSEncoder.encodeHmsPeer(data.peer, this.id); - const room: HMSRoom = HMSEncoder.encodeHmsRoom(data.room, this.id); - const localPeer: HMSLocalPeer = HMSEncoder.encodeHmsLocalPeer( - data.localPeer, - this.id - ); - const remotePeers: HMSRemotePeer[] = HMSEncoder.encodeHmsRemotePeers( - data.remotePeers, - this.id - ); - // this.room = room; - this.localPeer = localPeer; - this.remotePeers = remotePeers; - this.room = room; + const type: HMSPeerUpdate = HMSEncoder.encodeHmsPeerUpdateType(data.type); + if (this.onPeerDelegate) { logger?.verbose('#Listener ON_PEER_LISTENER_CALL', { - ...data, - localPeer, - remotePeers, - room, peer, + type, }); - this.onPeerDelegate({ ...data, localPeer, remotePeers, room, peer }); + this.onPeerDelegate({ peer, type }); } else { - logger?.verbose('#Listener ON_PEER', data); + logger?.verbose('#Listener ON_PEER', { peer, type }); } }; @@ -1429,15 +1434,8 @@ export class HMSSDK { } const track: HMSTrack = HMSEncoder.encodeHmsTrack(data.track, this.id); const peer: HMSPeer = HMSEncoder.encodeHmsPeer(data.peer, this.id); - const room: HMSRoom = HMSEncoder.encodeHmsRoom(data.room, this.id); - const localPeer: HMSLocalPeer = HMSEncoder.encodeHmsLocalPeer( - data.localPeer, - this.id - ); - const remotePeers: HMSRemotePeer[] = HMSEncoder.encodeHmsRemotePeers( - data.remotePeers, - this.id - ); + const type: HMSTrackUpdate = HMSEncoder.encodeHmsTrackUpdateType(data.type); + if ( this.muteStatus && data?.type === 'TRACK_ADDED' && @@ -1445,28 +1443,20 @@ export class HMSSDK { ) { this.setPlaybackForAllAudio(this.muteStatus); } - this.room = room; - this.localPeer = localPeer; - this.remotePeers = remotePeers; + if (this.onTrackDelegate) { logger?.verbose('#Listener ON_TRACK_LISTENER_CALL', { - ...data, - localPeer, - remotePeers, - room, peer, track, + type, }); this.onTrackDelegate({ - ...data, - localPeer, - remotePeers, - room, peer, track, + type, }); } else { - logger?.verbose('#Listener ON_TRACK', data); + logger?.verbose('#Listener ON_TRACK', { peer, track, type }); } }; From fecdf98a69f1a9b0f8b5feede0390ac9266011be Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Sun, 2 Oct 2022 01:52:26 +0530 Subject: [PATCH 07/84] feat: updated lock files --- example/ios/Podfile.lock | 2 +- example/package-lock.json | 12 +++++----- package-lock.json | 47 +++++++++++++++++++++------------------ 3 files changed, 32 insertions(+), 29 deletions(-) diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index d988cc2ff..b66a99412 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -642,6 +642,6 @@ SPEC CHECKSUMS: Yoga: 575c581c63e0d35c9a83f4b46d01d63abc1100ac YogaKit: f782866e155069a2cca2517aafea43200b01fd5a -PODFILE CHECKSUM: 5b3105ca1aee23133ba9761d8249d057f4b94b05 +PODFILE CHECKSUM: 1cbf5cea767af9f4795d6c33efc5d75f3a1039f7 COCOAPODS: 1.11.3 diff --git a/example/package-lock.json b/example/package-lock.json index 3f6ae2ed0..993a1bd0c 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -5516,9 +5516,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.269", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.269.tgz", - "integrity": "sha512-7mHFONwp7MNvdyto1v70fCwk28NJMFgsK79op+iYHzz1BLE8T66a1B2qW5alb8XgE0yi3FL3ZQjSYZpJpF6snw==" + "version": "1.4.270", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz", + "integrity": "sha512-KNhIzgLiJmDDC444dj9vEOpZEgsV96ult9Iff98Vanumn+ShJHd5se8aX6KeVxdc0YQeqdrezBZv89rleDbvSg==" }, "node_modules/eme-encryption-scheme-polyfill": { "version": "2.1.1", @@ -18740,9 +18740,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "electron-to-chromium": { - "version": "1.4.269", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.269.tgz", - "integrity": "sha512-7mHFONwp7MNvdyto1v70fCwk28NJMFgsK79op+iYHzz1BLE8T66a1B2qW5alb8XgE0yi3FL3ZQjSYZpJpF6snw==" + "version": "1.4.270", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz", + "integrity": "sha512-KNhIzgLiJmDDC444dj9vEOpZEgsV96ult9Iff98Vanumn+ShJHd5se8aX6KeVxdc0YQeqdrezBZv89rleDbvSg==" }, "eme-encryption-scheme-polyfill": { "version": "2.1.1", diff --git a/package-lock.json b/package-lock.json index 2f724a788..31c1f375e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8109,9 +8109,9 @@ "peer": true }, "node_modules/electron-to-chromium": { - "version": "1.4.269", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.269.tgz", - "integrity": "sha512-7mHFONwp7MNvdyto1v70fCwk28NJMFgsK79op+iYHzz1BLE8T66a1B2qW5alb8XgE0yi3FL3ZQjSYZpJpF6snw==" + "version": "1.4.270", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz", + "integrity": "sha512-KNhIzgLiJmDDC444dj9vEOpZEgsV96ult9Iff98Vanumn+ShJHd5se8aX6KeVxdc0YQeqdrezBZv89rleDbvSg==" }, "node_modules/emittery": { "version": "0.7.2", @@ -17061,14 +17061,17 @@ } }, "node_modules/react-native-builder-bob/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==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/react-native-builder-bob/node_modules/fs-extra": { @@ -17135,12 +17138,12 @@ } }, "node_modules/react-native-builder-bob/node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", + "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", "dev": true, "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", @@ -26904,9 +26907,9 @@ "peer": true }, "electron-to-chromium": { - "version": "1.4.269", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.269.tgz", - "integrity": "sha512-7mHFONwp7MNvdyto1v70fCwk28NJMFgsK79op+iYHzz1BLE8T66a1B2qW5alb8XgE0yi3FL3ZQjSYZpJpF6snw==" + "version": "1.4.270", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz", + "integrity": "sha512-KNhIzgLiJmDDC444dj9vEOpZEgsV96ult9Iff98Vanumn+ShJHd5se8aX6KeVxdc0YQeqdrezBZv89rleDbvSg==" }, "emittery": { "version": "0.7.2", @@ -33817,13 +33820,13 @@ } }, "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "requires": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, @@ -33873,12 +33876,12 @@ "dev": true }, "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", + "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", "dev": true, "requires": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", From 38aab1ce03e0f23be4416ae38694691e8a1e845b Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Sun, 2 Oct 2022 16:09:02 +0530 Subject: [PATCH 08/84] fix: removed type encoders --- src/classes/HMSEncoder.ts | 58 --------------------------------------- src/classes/HMSSDK.tsx | 9 ++---- 2 files changed, 3 insertions(+), 64 deletions(-) diff --git a/src/classes/HMSEncoder.ts b/src/classes/HMSEncoder.ts index f4e65eca3..de779a946 100644 --- a/src/classes/HMSEncoder.ts +++ b/src/classes/HMSEncoder.ts @@ -28,9 +28,6 @@ import { HMSServerRecordingState } from './HMSServerRecordingState'; import { HMSMessage } from './HMSMessage'; import { HMSMessageRecipient } from './HMSMessageRecipient'; import { HMSException } from './HMSException'; -import { HMSPeerUpdate } from './HMSPeerUpdate'; -import { HMSTrackUpdate } from './HMSTrackUpdate'; -import { HMSRoomUpdate } from './HMSRoomUpdate'; export class HMSEncoder { static encodeHmsRoom(room: HMSRoom, id: string) { @@ -513,59 +510,4 @@ export class HMSEncoder { canRetry: data?.error?.canRetry, }); } - - static encodeHmsPeerUpdateType(type: any): HMSPeerUpdate { - switch (type) { - case type === 'PEER_JOINED': - return HMSPeerUpdate.PEER_JOINED; - case type === 'PEER_LEFT': - return HMSPeerUpdate.PEER_LEFT; - case 'ROLE_CHANGED': - return HMSPeerUpdate.ROLE_CHANGED; - case 'METADATA_CHANGED': - return HMSPeerUpdate.METADATA_CHANGED; - case 'NETWORK_QUALITY_UPDATED': - return HMSPeerUpdate.NETWORK_QUALITY_UPDATED; - default: - return HMSPeerUpdate.NAME_CHANGED; - } - } - - static encodeHmsTrackUpdateType(type: any): HMSTrackUpdate { - switch (type) { - case 'TRACK_ADDED': - return HMSTrackUpdate.TRACK_ADDED; - case 'TRACK_REMOVED': - return HMSTrackUpdate.TRACK_REMOVED; - case 'TRACK_MUTED': - return HMSTrackUpdate.TRACK_MUTED; - case 'TRACK_UNMUTED': - return HMSTrackUpdate.TRACK_UNMUTED; - case 'TRACK_RESTORED': - return HMSTrackUpdate.TRACK_RESTORED; - case 'TRACK_DEGRADED': - return HMSTrackUpdate.TRACK_DEGRADED; - default: - return HMSTrackUpdate.TRACK_DESCRIPTION_CHANGED; - } - } - - static encodeHmsRoomUpdateType(type: any): HMSRoomUpdate { - switch (type) { - case type === 'ROOM_MUTED': - return HMSRoomUpdate.ROOM_MUTED; - case type === 'ROOM_UNMUTED': - return HMSRoomUpdate.ROOM_UNMUTED; - case 'RTMP_STREAMING_STATE_UPDATED': - return HMSRoomUpdate.RTMP_STREAMING_STATE_UPDATED; - case 'SERVER_RECORDING_STATE_UPDATED': - return HMSRoomUpdate.SERVER_RECORDING_STATE_UPDATED; - case 'BROWSER_RECORDING_STATE_UPDATED': - return HMSRoomUpdate.BROWSER_RECORDING_STATE_UPDATED; - case 'HLS_RECORDING_STATE_UPDATED': - return HMSRoomUpdate.HLS_RECORDING_STATE_UPDATED; - default: - return HMSRoomUpdate.HLS_STREAMING_STATE_UPDATED; - } - } } diff --git a/src/classes/HMSSDK.tsx b/src/classes/HMSSDK.tsx index 4b53c29e9..02fd3e046 100644 --- a/src/classes/HMSSDK.tsx +++ b/src/classes/HMSSDK.tsx @@ -33,9 +33,6 @@ import type { HMSHLSConfig } from './HMSHLSConfig'; import type { HMSAudioDevice } from './HMSAudioDevice'; import type { HMSAudioMode } from './HMSAudioMode'; import type { HMSAudioMixingMode } from './HMSAudioMixingMode'; -import type { HMSPeerUpdate } from './HMSPeerUpdate'; -import type { HMSTrackUpdate } from './HMSTrackUpdate'; -import type { HMSRoomUpdate } from './HMSRoomUpdate'; interface HmsViewProps { trackId: string; @@ -1397,7 +1394,7 @@ export class HMSSDK { return; } const room: HMSRoom = HMSEncoder.encodeHmsRoom(data.room, this.id); - const type: HMSRoomUpdate = HMSEncoder.encodeHmsRoomUpdateType(data.type); + const type = data.type; if (this.onRoomDelegate) { logger?.verbose('#Listener ON_ROOM_LISTENER_CALL', { @@ -1415,7 +1412,7 @@ export class HMSSDK { return; } const peer: HMSPeer = HMSEncoder.encodeHmsPeer(data.peer, this.id); - const type: HMSPeerUpdate = HMSEncoder.encodeHmsPeerUpdateType(data.type); + const type = data.type; if (this.onPeerDelegate) { logger?.verbose('#Listener ON_PEER_LISTENER_CALL', { @@ -1434,7 +1431,7 @@ export class HMSSDK { } const track: HMSTrack = HMSEncoder.encodeHmsTrack(data.track, this.id); const peer: HMSPeer = HMSEncoder.encodeHmsPeer(data.peer, this.id); - const type: HMSTrackUpdate = HMSEncoder.encodeHmsTrackUpdateType(data.type); + const type = data.type; if ( this.muteStatus && From a51298143882729b7bbe80b3fea570d8337c6bbf Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Sun, 2 Oct 2022 16:14:31 +0530 Subject: [PATCH 09/84] feat: app changes to make it compatible with new flow --- example/src/components/ChatWindow.tsx | 23 +- example/src/components/PreviewModal.tsx | 87 ++- .../src/screens/Meeting/ActiveSpeakerView.tsx | 10 +- example/src/screens/Meeting/DisplayTrack.tsx | 336 +++++----- example/src/screens/Meeting/Grid.tsx | 11 +- example/src/screens/Meeting/HeroView.tsx | 29 +- example/src/screens/Meeting/MiniView.tsx | 11 +- example/src/screens/Meeting/Modals.tsx | 123 ++-- example/src/screens/Meeting/index.tsx | 622 +++++++++--------- example/src/screens/Welcome/index.tsx | 163 ++--- example/src/utils/functions.ts | 39 +- 11 files changed, 772 insertions(+), 682 deletions(-) diff --git a/example/src/components/ChatWindow.tsx b/example/src/components/ChatWindow.tsx index e6c05f3ba..d6c93b89e 100644 --- a/example/src/components/ChatWindow.tsx +++ b/example/src/components/ChatWindow.tsx @@ -8,6 +8,7 @@ import { Platform, } from 'react-native'; import { + HMSLocalPeer, HMSMessage, HMSMessageRecipient, HMSMessageRecipientType, @@ -59,9 +60,23 @@ const ChatFilter = ({ >; }) => { const [visible, setVisible] = useState(false); + const [roles, setRoles] = useState(); + const [remotePeers, setRemotePeers] = useState(); const hideMenu = () => setVisible(false); const showMenu = () => setVisible(true); + const updateRemotePeers = async () => { + setRemotePeers(await instance?.getRemotePeers()); + }; + const updateRoles = async () => { + setRoles(await instance?.getRoles()); + }; + + useEffect(() => { + updateRemotePeers(); + updateRoles(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [instance]); return ( - {instance?.knownRoles?.map(knownRole => { + {roles?.map(knownRole => { return ( { @@ -114,7 +129,7 @@ const ChatFilter = ({ ); })} - {instance?.remotePeers?.map(remotePeer => { + {remotePeers?.map(remotePeer => { return ( { @@ -139,7 +154,7 @@ const ChatFilter = ({ ); }; -export const ChatWindow = () => { +export const ChatWindow = ({localPeer}: {localPeer?: HMSLocalPeer}) => { const {hmsInstance} = useSelector((state: RootState) => state.user); const {messages} = useSelector((state: RootState) => state.messages); const dispatch = useDispatch(); @@ -181,7 +196,7 @@ export const ChatWindow = () => { message: text, type: 'chat', time: new Date(), - sender: hmsInstance?.localPeer, + sender: localPeer, recipient: hmsMessageRecipient, }), ), diff --git a/example/src/components/PreviewModal.tsx b/example/src/components/PreviewModal.tsx index da726fcfd..a630b5474 100644 --- a/example/src/components/PreviewModal.tsx +++ b/example/src/components/PreviewModal.tsx @@ -7,7 +7,13 @@ import { Image, } from 'react-native'; import Feather from 'react-native-vector-icons/Feather'; -import {HMSVideoViewMode} from '@100mslive/react-native-hms'; +import { + HMSAudioTrack, + HMSLocalPeer, + HMSRoom, + HMSVideoTrack, + HMSVideoViewMode, +} from '@100mslive/react-native-hms'; import {useSelector} from 'react-redux'; import {useSafeAreaInsets} from 'react-native-safe-area-context'; @@ -17,20 +23,14 @@ import {CustomButton} from './CustomButton'; import {getInitials} from '../utils/functions'; export const PreviewModal = ({ - trackId, - audio, - video, + room, + previewTracks, join, setLoadingButtonState, loadingButtonState, - videoAllowed, - audioAllowed, }: { - videoAllowed: boolean; - audioAllowed: boolean; - trackId: string; - video?: boolean; - audio?: boolean; + room?: HMSRoom; + previewTracks: {audioTrack: HMSAudioTrack; videoTrack: HMSVideoTrack}; join: Function; setLoadingButtonState: React.Dispatch>; loadingButtonState: boolean; @@ -40,24 +40,32 @@ export const PreviewModal = ({ ); const {top, bottom, left, right} = useSafeAreaInsets(); - const [isMute, setIsMute] = useState(audio); - const [muteVideo, setMuteVideo] = useState(video); - const [numberOfLines, setNumberOfLines] = useState(true); - const HmsView = hmsInstance?.HmsView; - const [peers, setPeers] = useState( - hmsInstance?.room?.peers ? hmsInstance?.room?.peers : [], + const [isAudioMute, setIsAudioMute] = useState( + previewTracks.audioTrack.isMute(), + ); + const [isVideoMute, setIsVideoMute] = useState( + previewTracks.videoTrack.isMute(), ); + const [previewPeer, setPreviewPeer] = useState(); + const [numberOfLines, setNumberOfLines] = useState(true); - const previewPeer = hmsInstance?.localPeer; + const HmsView = hmsInstance?.HmsView; + const audioAllowed = + previewPeer?.role?.publishSettings?.allowed?.includes('audio'); + const videoAllowed = + previewPeer?.role?.publishSettings?.allowed?.includes('video'); useEffect(() => { - setPeers(hmsInstance?.room?.peers ? hmsInstance?.room?.peers : []); - }, [hmsInstance?.room?.peers]); + const getLocalPeer = async () => { + setPreviewPeer(await hmsInstance?.getLocalPeer()); + }; + getLocalPeer(); + }, [hmsInstance]); return ( - {muteVideo || !HmsView ? ( + {isVideoMute || !HmsView || !previewTracks.videoTrack.trackId ? ( @@ -70,7 +78,7 @@ export const PreviewModal = ({ )} @@ -85,7 +93,7 @@ export const PreviewModal = ({ - {peers.map((peer, index) => { + {room?.peers.map((peer, index) => { return (index !== 0 ? ', ' : '') + peer.name; })} @@ -98,14 +106,20 @@ export const PreviewModal = ({ {audioAllowed && ( { - setIsMute(!isMute); - hmsInstance?.localPeer?.localAudioTrack()?.setMute(!isMute); + setIsAudioMute(!isAudioMute); + previewPeer?.localAudioTrack()?.setMute(!isAudioMute); }} - viewStyle={[styles.singleIconContainer, isMute && styles.mute]} + viewStyle={[ + styles.singleIconContainer, + isAudioMute && styles.mute, + ]} LeftIcon={ } @@ -114,21 +128,19 @@ export const PreviewModal = ({ {videoAllowed && ( { - setMuteVideo(!muteVideo); - hmsInstance?.localPeer - ?.localVideoTrack() - ?.setMute(!muteVideo); + setIsVideoMute(!isVideoMute); + previewPeer?.localVideoTrack()?.setMute(!isVideoMute); }} viewStyle={[ styles.singleIconContainer, - muteVideo && styles.mute, + isVideoMute && styles.mute, ]} LeftIcon={ @@ -141,7 +153,10 @@ export const PreviewModal = ({ {}} disabled={true} - viewStyle={[styles.singleIconContainer, isMute && styles.mute]} + viewStyle={[ + styles.singleIconContainer, + isAudioMute && styles.mute, + ]} LeftIcon={ { const currentActiveSpeakers: PeerTrackNode[] = speakers.map(speaker => { const {peer} = speaker; - return { - id: peer.peerID + HMSTrackSource.REGULAR, - peer, - track: peer.videoTrack, - }; + return createPeerTrackNode(peer); }); let speakersRequired = peers.length - currentActiveSpeakers.length; diff --git a/example/src/screens/Meeting/DisplayTrack.tsx b/example/src/screens/Meeting/DisplayTrack.tsx index e92a8fc7f..9f8108408 100644 --- a/example/src/screens/Meeting/DisplayTrack.tsx +++ b/example/src/screens/Meeting/DisplayTrack.tsx @@ -7,6 +7,7 @@ import { HMSSDK, HMSTrackSource, HMSTrackType, + HMSPermissions, } from '@100mslive/react-native-hms'; import Feather from 'react-native-vector-icons/Feather'; import Entypo from 'react-native-vector-icons/Entypo'; @@ -44,6 +45,7 @@ type DisplayTrackProps = { setPinnedPeerTrackIds?: React.Dispatch>; setUpdatePeerTrackNode?: React.Dispatch>; onEndScreenSharePress?: Function; + permissions?: HMSPermissions; }; const DisplayTrack = ({ @@ -58,21 +60,26 @@ const DisplayTrack = ({ setPinnedPeerTrackIds, setUpdatePeerTrackNode, onEndScreenSharePress, + permissions, }: DisplayTrackProps) => { + // hooks const {mirrorLocalVideo, isHLSFlow} = useSelector( (state: RootState) => state.user, ); + // useState hook const [alertModalVisible, setAlertModalVisible] = useState(false); const [isDegraded, setIsDegraded] = useState(false); + const [remotePeers, setRemotePeers] = useState(); + + // useRef hook const hmsViewRef: any = useRef(); + // constants const HmsView = instance?.HmsView; const isVideoMute = peerTrackNode?.track?.isMute() ?? true; const isAudioMute = peerTrackNode.peer.audioTrack?.isMute() ?? true; const name = peerTrackNode.peer.name; - const metadata = parseMetadata(peerTrackNode.peer.metadata); - const speaking = isSpeaking && isSpeaking(peerTrackNode); const type = peerTrackNode.track?.source === HMSTrackSource.REGULAR || peerTrackNode.track?.source === undefined @@ -80,25 +87,10 @@ const DisplayTrack = ({ ? TrackType.LOCAL : TrackType.REMOTE : TrackType.SCREEN; + const metadata = parseMetadata(peerTrackNode.peer.metadata); + const speaking = isSpeaking && isSpeaking(peerTrackNode); - const selectAuxActionButtons: Array<{ - text: string; - type?: string; - onPress?: Function; - }> = [{text: 'Cancel', type: 'cancel'}]; - - const selectLocalActionButtons: Array<{ - text: string; - type?: string; - onPress?: Function; - }> = [{text: 'Cancel', type: 'cancel'}]; - - const selectRemoteActionButtons: Array<{ - text: string; - type?: string; - onPress?: Function; - }> = [{text: 'Cancel', type: 'cancel'}]; - + // buttons const changeNameButton = { text: 'Change Name', onPress: () => { @@ -106,126 +98,91 @@ const DisplayTrack = ({ setModalVisible && setModalVisible(ModalTypes.CHANGE_NAME); }, }; - selectLocalActionButtons.push(changeNameButton); - - if (instance?.localPeer?.role?.permissions?.changeRole) { - const changeRoleButton = { - text: 'Change Role', - onPress: () => { - setUpdatePeerTrackNode && setUpdatePeerTrackNode(peerTrackNode); - setModalVisible && setModalVisible(ModalTypes.CHANGE_ROLE); - }, - }; - selectLocalActionButtons.push(changeRoleButton); - selectRemoteActionButtons.push(changeRoleButton); - } - - if (instance?.localPeer?.role?.permissions?.removeOthers) { - const removePeerButton = { - text: 'Remove Participant', - onPress: async () => { - await instance?.removePeer(peerTrackNode.peer, 'removed from room'); - }, - }; - selectRemoteActionButtons.push(removePeerButton); - } - - if (Platform.OS === 'android') { - const takeScreenshot = { - text: 'Take Snapshot', - onPress: async () => { - const granted = await requestExternalStoragePermission(); - if (granted) { - hmsViewRef?.current - ?.capture() - .then(async (d: string) => { - const imagePath = `${RNFS.DownloadDirectoryPath}image.jpg`; - RNFS.writeFile(imagePath, d, 'base64') - .then(() => { - CameraRoll.save(imagePath, {type: 'photo'}) - .then(() => { - Toast.showWithGravity( - 'Image converted to jpg and saved at ' + imagePath, - Toast.LONG, - Toast.TOP, - ); - console.log( - 'Image converted to jpg and saved at ', - imagePath, - ); - }) - .catch(err => console.log(err)); - }) - .catch(e => console.log(e)); - }) - .catch((e: any) => console.log(e)); - } - }, - }; - selectAuxActionButtons.push(takeScreenshot); - selectRemoteActionButtons.push(takeScreenshot); - selectLocalActionButtons.push(takeScreenshot); - } - - if (instance?.localPeer?.role?.permissions?.unmute) { - if (isAudioMute) { - const unmuteAudioButton = { - text: 'Remote Unmute Audio', - onPress: async () => { - await instance?.changeTrackState( - peerTrackNode.peer?.audioTrack as HMSTrack, - false, - ); - }, - }; - selectRemoteActionButtons.push(unmuteAudioButton); - } - if (isVideoMute) { - const unmuteVideoButton = { - text: 'Remote Unmute Video', - onPress: async () => { - await instance?.changeTrackState( - peerTrackNode.peer?.videoTrack as HMSTrack, - false, - ); - }, - }; - selectRemoteActionButtons.push(unmuteVideoButton); - } - } - - if (instance?.localPeer?.role?.permissions?.mute) { - if (!isAudioMute) { - const muteAudioButton = { - text: 'Remote Mute Audio', - onPress: async () => { - await instance?.changeTrackState( - peerTrackNode.peer?.audioTrack as HMSTrack, - true, - ); - }, - }; - selectRemoteActionButtons.push(muteAudioButton); - } - if (!isVideoMute) { - const muteVideoButton = { - text: 'Remote Mute Video', - onPress: async () => { - await instance?.changeTrackState( - peerTrackNode.peer?.videoTrack as HMSTrack, - true, - ); - }, - }; - selectRemoteActionButtons.push(muteVideoButton); - } - } - + const changeRoleButton = { + text: 'Change Role', + onPress: () => { + setUpdatePeerTrackNode && setUpdatePeerTrackNode(peerTrackNode); + setModalVisible && setModalVisible(ModalTypes.CHANGE_ROLE); + }, + }; + const removePeerButton = { + text: 'Remove Participant', + onPress: async () => { + await instance?.removePeer(peerTrackNode.peer, 'removed from room'); + }, + }; + const takeScreenshot = { + text: 'Take Snapshot', + onPress: async () => { + const granted = await requestExternalStoragePermission(); + if (granted) { + hmsViewRef?.current + ?.capture() + .then(async (d: string) => { + const imagePath = `${RNFS.DownloadDirectoryPath}image.jpg`; + RNFS.writeFile(imagePath, d, 'base64') + .then(() => { + CameraRoll.save(imagePath, {type: 'photo'}) + .then(() => { + Toast.showWithGravity( + 'Image converted to jpg and saved at ' + imagePath, + Toast.LONG, + Toast.TOP, + ); + console.log( + 'Image converted to jpg and saved at ', + imagePath, + ); + }) + .catch(err => console.log(err)); + }) + .catch(e => console.log(e)); + }) + .catch((e: any) => console.log(e)); + } + }, + }; + const unmuteAudioButton = { + text: 'Remote Unmute Audio', + onPress: async () => { + await instance?.changeTrackState( + peerTrackNode.peer?.audioTrack as HMSTrack, + false, + ); + }, + }; + const unmuteVideoButton = { + text: 'Remote Unmute Video', + onPress: async () => { + await instance?.changeTrackState( + peerTrackNode.peer?.videoTrack as HMSTrack, + false, + ); + }, + }; + const muteAudioButton = { + text: 'Remote Mute Audio', + onPress: async () => { + await instance?.changeTrackState( + peerTrackNode.peer?.audioTrack as HMSTrack, + true, + ); + }, + }; + const muteVideoButton = { + text: 'Remote Mute Video', + onPress: async () => { + await instance?.changeTrackState( + peerTrackNode.peer?.videoTrack as HMSTrack, + true, + ); + }, + }; const localMuteAudioButton = { text: 'Local Mute/Unmute Audio', onPress: async () => { let remotePeer = peerTrackNode.peer as HMSRemotePeer; - instance?.remotePeers?.map(item => { + remotePeers?.map(item => { if (item.peerID === remotePeer.peerID) { remotePeer = item; } @@ -236,13 +193,11 @@ const DisplayTrack = ({ remotePeer?.remoteAudioTrack()?.setPlaybackAllowed(!playbackAllowed); }, }; - selectRemoteActionButtons.push(localMuteAudioButton); - const localMuteVideoButton = { text: 'Local Mute/Unmute Video', onPress: async () => { let remotePeer = peerTrackNode.peer as HMSRemotePeer; - instance?.remotePeers?.map(item => { + remotePeers?.map(item => { if (item.peerID === remotePeer.peerID) { remotePeer = item; } @@ -253,8 +208,6 @@ const DisplayTrack = ({ remotePeer?.remoteVideoTrack()?.setPlaybackAllowed(!playbackAllowed); }, }; - selectRemoteActionButtons.push(localMuteVideoButton); - const setVolumeButton = { text: 'Set Volume', onPress: () => { @@ -262,10 +215,6 @@ const DisplayTrack = ({ setModalVisible && setModalVisible(ModalTypes.VOLUME); }, }; - selectAuxActionButtons.push(setVolumeButton); - selectRemoteActionButtons.push(setVolumeButton); - selectLocalActionButtons.push(setVolumeButton); - const pinPeerButton = { text: pinnedPeerTrackIds?.includes(peerTrackNode.id) ? 'Unpin Peer' @@ -292,16 +241,91 @@ const DisplayTrack = ({ } }, }; - selectLocalActionButtons.push(pinPeerButton); - selectRemoteActionButtons.push(pinPeerButton); + // functions + const onScreenshareEnd = () => { + onEndScreenSharePress && onEndScreenSharePress(); + }; + + const getAuxActionButtons = () => { + const selectAuxActionButtons: Array<{ + text: string; + type?: string; + onPress?: Function; + }> = [{text: 'Cancel', type: 'cancel'}]; + if (Platform.OS === 'android') { + selectAuxActionButtons.push(takeScreenshot); + } + selectAuxActionButtons.push(setVolumeButton); + return selectAuxActionButtons; + }; + + const getLocalActionButtons = () => { + const selectLocalActionButtons: Array<{ + text: string; + type?: string; + onPress?: Function; + }> = [{text: 'Cancel', type: 'cancel'}, changeNameButton]; + if (permissions?.changeRole) { + selectLocalActionButtons.push(changeRoleButton); + } + if (Platform.OS === 'android') { + selectLocalActionButtons.push(takeScreenshot); + } + selectLocalActionButtons.push(setVolumeButton); + selectLocalActionButtons.push(pinPeerButton); + return selectLocalActionButtons; + }; + + const getRemoteActionButtons = () => { + const selectRemoteActionButtons: Array<{ + text: string; + type?: string; + onPress?: Function; + }> = [{text: 'Cancel', type: 'cancel'}]; + if (permissions?.changeRole) { + selectRemoteActionButtons.push(changeRoleButton); + } + if (permissions?.removeOthers) { + selectRemoteActionButtons.push(removePeerButton); + } + if (Platform.OS === 'android') { + selectRemoteActionButtons.push(takeScreenshot); + } + if (permissions?.unmute) { + if (isAudioMute) { + selectRemoteActionButtons.push(unmuteAudioButton); + } + if (isVideoMute) { + selectRemoteActionButtons.push(unmuteVideoButton); + } + } + if (permissions?.mute) { + if (!isAudioMute) { + selectRemoteActionButtons.push(muteAudioButton); + } + if (!isVideoMute) { + selectRemoteActionButtons.push(muteVideoButton); + } + } + selectRemoteActionButtons.push(localMuteAudioButton); + selectRemoteActionButtons.push(localMuteVideoButton); + selectRemoteActionButtons.push(setVolumeButton); + selectRemoteActionButtons.push(pinPeerButton); + return selectRemoteActionButtons; + }; + + // useEffect hook useEffect(() => { setIsDegraded(peerTrackNode.track?.isDegraded || false); }, [peerTrackNode.track?.isDegraded]); - const onScreenshareEnd = () => { - onEndScreenSharePress && onEndScreenSharePress(); - }; + useEffect(() => { + const getRemotePeers = async () => { + setRemotePeers(await instance?.getRemotePeers()); + }; + getRemotePeers(); + }, [instance]); return HmsView ? ( @@ -311,10 +335,10 @@ const DisplayTrack = ({ title="Select Action" buttons={ type === TrackType.LOCAL - ? selectLocalActionButtons + ? getLocalActionButtons() : type === TrackType.REMOTE - ? selectRemoteActionButtons - : selectAuxActionButtons + ? getRemoteActionButtons() + : getAuxActionButtons() } /> {peerTrackNode.peer.isLocal && @@ -390,10 +414,10 @@ const DisplayTrack = ({ {layout === LayoutParams.GRID && isHLSFlow === false && - ((type === TrackType.SCREEN && selectAuxActionButtons.length > 1) || - (type === TrackType.LOCAL && selectLocalActionButtons.length > 1) || + ((type === TrackType.SCREEN && getAuxActionButtons().length > 1) || + (type === TrackType.LOCAL && getLocalActionButtons().length > 1) || (type === TrackType.REMOTE && - selectRemoteActionButtons.length > 1)) && ( + getRemoteActionButtons().length > 1)) && ( setAlertModalVisible(true)} style={styles.optionsContainer}> diff --git a/example/src/screens/Meeting/Grid.tsx b/example/src/screens/Meeting/Grid.tsx index 153acb895..c13e8451e 100644 --- a/example/src/screens/Meeting/Grid.tsx +++ b/example/src/screens/Meeting/Grid.tsx @@ -1,6 +1,11 @@ import React, {useRef} from 'react'; import {View, FlatList, Dimensions} from 'react-native'; -import {HMSSDK, HMSSpeaker, HMSTrackSource} from '@100mslive/react-native-hms'; +import { + HMSPermissions, + HMSSDK, + HMSSpeaker, + HMSTrackSource, +} from '@100mslive/react-native-hms'; import {useSafeAreaInsets} from 'react-native-safe-area-context'; import {getHmsViewHeight} from '../../utils/functions'; @@ -22,6 +27,7 @@ type GridViewProps = { setPinnedPeerTrackIds?: React.Dispatch>; setUpdatePeerTrackNode?: React.Dispatch>; onEndScreenSharePress: Function; + permissions?: HMSPermissions; }; const GridView = ({ @@ -38,6 +44,7 @@ const GridView = ({ orientation, setUpdatePeerTrackNode, onEndScreenSharePress, + permissions, }: GridViewProps) => { const {left, right, top, bottom} = useSafeAreaInsets(); const flatlistRef = useRef(null); @@ -117,6 +124,7 @@ const GridView = ({ isSpeaking={isSpeaking} instance={instance} layout={layout} + permissions={permissions} /> ); @@ -143,6 +151,7 @@ const GridView = ({ pinnedPeerTrackIds={pinnedPeerTrackIds} setPinnedPeerTrackIds={setPinnedPeerTrackIds} setUpdatePeerTrackNode={setUpdatePeerTrackNode} + permissions={permissions} /> ); diff --git a/example/src/screens/Meeting/HeroView.tsx b/example/src/screens/Meeting/HeroView.tsx index 92df4bb43..d542ea715 100644 --- a/example/src/screens/Meeting/HeroView.tsx +++ b/example/src/screens/Meeting/HeroView.tsx @@ -1,10 +1,15 @@ import React, {useState, useEffect} from 'react'; import {FlatList, View} from 'react-native'; -import {HMSSDK, HMSSpeaker, HMSTrackSource} from '@100mslive/react-native-hms'; +import type { + HMSLocalPeer, + HMSSDK, + HMSSpeaker, +} from '@100mslive/react-native-hms'; import {LayoutParams, PeerTrackNode} from '../../utils/types'; import {DisplayTrack} from './DisplayTrack'; import {styles} from './styles'; +import {createPeerTrackNode} from '../../utils/functions'; type HeroViewProps = { instance: HMSSDK | undefined; @@ -12,6 +17,7 @@ type HeroViewProps = { setModalVisible: Function; peerTrackNodes: PeerTrackNode[]; orientation: boolean; + localPeer?: HMSLocalPeer; }; const searchMainSpeaker = ( @@ -33,6 +39,7 @@ const HeroView = ({ setModalVisible, orientation, peerTrackNodes, + localPeer, }: HeroViewProps) => { const [mainSpeaker, setMainSpeaker] = useState(); const [peers, setPeers] = useState([]); @@ -41,22 +48,14 @@ const HeroView = ({ useEffect(() => { if (speakers.length > 0) { const peer = speakers[0].peer; - setMainSpeaker({ - id: peer.peerID + HMSTrackSource.REGULAR, - peer, - track: peer.videoTrack, - }); + setMainSpeaker(createPeerTrackNode(peer)); } - if (speakers.length === 0 && !mainSpeaker && instance?.localPeer) { - const peer = instance.localPeer; - setMainSpeaker({ - id: peer.peerID + HMSTrackSource.REGULAR, - peer, - track: peer.videoTrack, - }); + if (speakers.length === 0 && !mainSpeaker && localPeer) { + const peer = localPeer; + setMainSpeaker(createPeerTrackNode(peer)); } // eslint-disable-next-line react-hooks/exhaustive-deps - }, [speakers, instance?.remotePeers, instance?.localPeer]); + }, [speakers, localPeer]); useEffect(() => { const newPeerList = peerTrackNodes; @@ -92,6 +91,7 @@ const HeroView = ({ instance={instance} layout={LayoutParams.HERO} setModalVisible={setModalVisible} + permissions={localPeer?.role?.permissions} /> )} @@ -122,6 +122,7 @@ const HeroView = ({ instance={instance} layout={LayoutParams.HERO} setModalVisible={setModalVisible} + permissions={localPeer?.role?.permissions} /> ); diff --git a/example/src/screens/Meeting/MiniView.tsx b/example/src/screens/Meeting/MiniView.tsx index 117aede7a..54e98e54c 100644 --- a/example/src/screens/Meeting/MiniView.tsx +++ b/example/src/screens/Meeting/MiniView.tsx @@ -1,6 +1,11 @@ import React, {useState, useEffect, useRef, useCallback} from 'react'; import {View, Animated} from 'react-native'; -import {HMSSDK, HMSSpeaker, HMSTrackSource} from '@100mslive/react-native-hms'; +import { + HMSPermissions, + HMSSDK, + HMSSpeaker, + HMSTrackSource, +} from '@100mslive/react-native-hms'; import { GestureHandlerRootView, PanGestureHandler, @@ -15,6 +20,7 @@ type MiniViewProps = { speakers: HMSSpeaker[]; orientation: boolean; peerTrackNodes: PeerTrackNode[]; + permissions?: HMSPermissions; }; const MiniView = ({ @@ -22,6 +28,7 @@ const MiniView = ({ speakers, orientation, peerTrackNodes, + permissions, }: MiniViewProps) => { const [mainSpeaker, setMainSpeaker] = useState(); const [miniSpeaker, setMiniSpeaker] = useState(); @@ -79,6 +86,7 @@ const MiniView = ({ peerTrackNode={mainSpeaker} instance={instance} videoStyles={styles.heroView} + permissions={permissions} /> )} @@ -98,6 +106,7 @@ const MiniView = ({ peerTrackNode={miniSpeaker} instance={instance} videoStyles={styles.heroView} + permissions={permissions} /> diff --git a/example/src/screens/Meeting/Modals.tsx b/example/src/screens/Meeting/Modals.tsx index c0847caf5..e20f41daf 100644 --- a/example/src/screens/Meeting/Modals.tsx +++ b/example/src/screens/Meeting/Modals.tsx @@ -31,6 +31,8 @@ import { HMSHLSRecordingConfig, HMSHLSConfig, HMSRTMPConfig, + HMSLocalPeer, + HMSRemotePeer, } from '@100mslive/react-native-hms'; import Feather from 'react-native-vector-icons/Feather'; import Entypo from 'react-native-vector-icons/Entypo'; @@ -61,6 +63,7 @@ import {COLORS} from '../../utils/theme'; export const ParticipantsModal = ({ instance, + localPeer, peerTrackNodes, pinnedPeerTrackIds, setUpdatePeerTrackNode, @@ -68,6 +71,7 @@ export const ParticipantsModal = ({ setPinnedPeerTrackIds, }: { instance?: HMSSDK; + localPeer?: HMSLocalPeer; peerTrackNodes: PeerTrackNode[]; pinnedPeerTrackIds: String[]; setUpdatePeerTrackNode: React.Dispatch>; @@ -80,7 +84,7 @@ export const ParticipantsModal = ({ useState(); const [filter, setFilter] = useState('everyone'); - const peerTrackNodePermissions = instance?.localPeer?.role?.permissions; + const peerTrackNodePermissions = localPeer?.role?.permissions; const hideMenu = () => setVisible(-1); const showMenu = (index: number) => setVisible(index); @@ -280,21 +284,25 @@ export const ParticipantsModal = ({ } onRequestClose={hideMenu} style={styles.participantsMenuContainer}> - {peerTrackNode.peer.isLocal === false && ( - removePeer(peerTrackNode)}> - - - - Remove Peer - - - - )} + {peerTrackNode.peer.isLocal === false && + peerTrackNodePermissions?.removeOthers && ( + removePeer(peerTrackNode)}> + + + + Remove Peer + + + + )} {peerTrackNode.peer.isLocal && type === TrackType.LOCAL && ( changeName(peerTrackNode)}> @@ -452,9 +460,18 @@ const ParticipantFilter = ({ setFilter: React.Dispatch>; }) => { const [visible, setVisible] = useState(false); + const [roles, setRoles] = useState(); const hideMenu = () => setVisible(false); const showMenu = () => setVisible(true); + const updateRoles = async () => { + setRoles(await instance?.getRoles()); + }; + + useEffect(() => { + updateRoles(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [instance]); return ( - {instance?.knownRoles?.map(knownRole => { + {roles?.map(knownRole => { return ( { @@ -536,6 +553,7 @@ export const ChangeRoleModal = ({ const [newRole, setNewRole] = useState(peerTrackNode.peer?.role!); const [request, setRequest] = useState(false); const [visible, setVisible] = useState(false); + const [roles, setRoles] = useState(); const hideMenu = () => setVisible(false); const showMenu = () => setVisible(true); @@ -543,6 +561,14 @@ export const ChangeRoleModal = ({ await instance?.changeRole(peerTrackNode.peer, newRole, !request); cancelModal(); }; + const updateRoles = async () => { + setRoles(await instance?.getRoles()); + }; + + useEffect(() => { + updateRoles(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [instance]); return ( @@ -568,7 +594,7 @@ export const ChangeRoleModal = ({ } onRequestClose={hideMenu} style={styles.participantsMenuContainer}> - {instance?.knownRoles?.map(knownRole => { + {roles?.map(knownRole => { return ( { @@ -741,17 +767,24 @@ export const ChangeNameModal = ({ ); }; -export const RtcStatsModal = ({instance}: {instance?: HMSSDK}) => { +export const RtcStatsModal = ({ + instance, + localPeer, +}: { + instance?: HMSSDK; + localPeer?: HMSLocalPeer; +}) => { const rtcStatsRef = React.useRef({}); const [rtcStats, setRtcStats] = useState(Math.random()); const [statsVisible, setStatsVisible] = useState(false); const [visible, setVisible] = useState(false); + const [remotePeers, setRemotePeers] = useState(); const [currentTrack, setCurrentTrack] = useState<{ name: string; track?: HMSTrack; }>({ - name: instance?.localPeer?.name + "'s audio", - track: instance?.localPeer?.audioTrack, + name: localPeer?.name + "'s audio", + track: localPeer?.audioTrack, }); const [trackList, setTrackList] = useState< { @@ -768,19 +801,19 @@ export const RtcStatsModal = ({instance}: {instance?: HMSSDK}) => { name: string; track?: HMSTrack; }[] = []; - if (instance?.localPeer?.audioTrack?.trackId) { + if (localPeer?.audioTrack?.trackId) { list.push({ - name: instance?.localPeer?.name + "'s audio", - track: instance?.localPeer?.audioTrack, + name: localPeer?.name + "'s audio", + track: localPeer?.audioTrack, }); } - if (instance?.localPeer?.videoTrack?.trackId) { + if (localPeer?.videoTrack?.trackId) { list.push({ - name: instance?.localPeer?.name + "'s video", - track: instance?.localPeer?.videoTrack, + name: localPeer?.name + "'s video", + track: localPeer?.videoTrack, }); } - instance?.remotePeers?.map(remotePeer => { + remotePeers?.map(remotePeer => { if (remotePeer?.audioTrack?.trackId) { list.push({ name: remotePeer?.name + "'s audio", @@ -855,10 +888,15 @@ export const RtcStatsModal = ({instance}: {instance?: HMSSDK}) => { rtcStatsRef.current = trackRtcStats; }; + const updateRemotePeers = async () => { + setRemotePeers(await instance?.getRemotePeers()); + }; + useEffect(() => { getStatsList(); + updateRemotePeers(); // eslint-disable-next-line react-hooks/exhaustive-deps - }, [instance?.remotePeers]); + }, [remotePeers]); useEffect(() => { instance?.addEventListener( @@ -1380,12 +1418,15 @@ export const ChangeLayoutModal = ({ export const ChangeTrackStateForRoleModal = ({ instance, + localPeer, cancelModal, }: { instance?: HMSSDK; + localPeer?: HMSLocalPeer; cancelModal: Function; }) => { - const [role, setRole] = useState(instance?.localPeer?.role!); + const [role, setRole] = useState(localPeer?.role!); + const [roles, setRoles] = useState(); const [visible, setVisible] = useState(false); const [trackType, setTrackType] = useState(HMSTrackType.VIDEO); const [trackState, setTrackState] = useState(false); @@ -1400,6 +1441,14 @@ export const ChangeTrackStateForRoleModal = ({ .catch(e => console.log('Change Track State For Role Error: ', e)); cancelModal(); }; + const updateRoles = async () => { + setRoles(await instance?.getRoles()); + }; + + useEffect(() => { + updateRoles(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [instance]); return ( @@ -1424,7 +1473,7 @@ export const ChangeTrackStateForRoleModal = ({ } onRequestClose={hideMenu} style={styles.participantsMenuContainer}> - {instance?.knownRoles?.map(knownRole => { + {roles?.map(knownRole => { return ( { @@ -1445,7 +1494,7 @@ export const ChangeTrackStateForRoleModal = ({ {'Track State: '} - {instance?.localPeer?.role?.permissions?.mute && ( + {localPeer?.role?.permissions?.mute && ( setTrackState(true)}> @@ -1461,7 +1510,7 @@ export const ChangeTrackStateForRoleModal = ({ MUTE )} - {instance?.localPeer?.role?.permissions?.unmute && ( + {localPeer?.role?.permissions?.unmute && ( setTrackState(false)}> @@ -1534,11 +1583,11 @@ export const ChangeTrackStateForRoleModal = ({ }; export const ChangeTrackStateModal = ({ - instance, + localPeer, roleChangeRequest, cancelModal, }: { - instance?: HMSSDK; + localPeer?: HMSLocalPeer; roleChangeRequest: { requestedBy?: string; suggestedRole?: string; @@ -1547,9 +1596,9 @@ export const ChangeTrackStateModal = ({ }) => { const changeLayout = () => { if (roleChangeRequest?.suggestedRole?.toLocaleLowerCase() === 'video') { - instance?.localPeer?.localVideoTrack()?.setMute(false); + localPeer?.localVideoTrack()?.setMute(false); } else { - instance?.localPeer?.localAudioTrack()?.setMute(false); + localPeer?.localAudioTrack()?.setMute(false); } cancelModal(); }; diff --git a/example/src/screens/Meeting/index.tsx b/example/src/screens/Meeting/index.tsx index b63a05808..a421cb843 100644 --- a/example/src/screens/Meeting/index.tsx +++ b/example/src/screens/Meeting/index.tsx @@ -15,7 +15,6 @@ import { HMSPeerUpdate, HMSRoomUpdate, HMSTrackUpdate, - HMSRemotePeer, HMSVideoViewMode, HMSLocalPeer, HMSTrack, @@ -112,6 +111,7 @@ type MeetingScreenProp = NativeStackNavigationProp< >; const Meeting = () => { + // hooks const {hmsInstance, roomID, roomCode} = useSelector( (state: RootState) => state.user, ); @@ -120,9 +120,11 @@ const Meeting = () => { const navigate = useNavigation().navigate; const {bottom, left, right} = useSafeAreaInsets(); + // useState hook const [instance, setInstance] = useState(); const [peerTrackNodes, setPeerTrackNodes] = useState>(peerState); + const [localPeer, setLocalPeer] = useState(); const [modalVisible, setModalVisible] = useState( ModalTypes.DEFAULT, ); @@ -130,20 +132,16 @@ const Meeting = () => { [], ); const [hmsRoom, setHmsRoom] = useState(); - const peerTrackNodesRef = useRef(peerTrackNodes); - const HmsViewComponent = instance?.HmsView; const [speakers, setSpeakers] = useState>([]); const [notification, setNotification] = useState(false); const [muteAllTracksAudio, setMuteAllTracksAudio] = useState(false); const [layout, setLayout] = useState(LayoutParams.GRID); const [sortingType, setSortingType] = useState(); - const hlsPlayerRef = useRef - { - setModalVisible(ModalTypes.DEFAULT); - setTimeout(() => { - setModalVisible(ModalTypes.END_ROOM); - }, 500); - }}> - - - - End Session - - - + {localPeer?.role?.permissions?.endRoom && ( + { + setModalVisible(ModalTypes.DEFAULT); + setTimeout(() => { + setModalVisible(ModalTypes.END_ROOM); + }, 500); + }}> + + + + End Session + + + + )} {hmsRoom?.hlsStreamingState?.running ? ( @@ -998,9 +1007,7 @@ const Meeting = () => { } /> - {instance?.localPeer?.role?.publishSettings?.allowed?.includes( - 'video', - ) && ( + {localPeer?.role?.publishSettings?.allowed?.includes('video') && ( { - {instance?.localPeer?.role?.name?.includes('hls-') ? ( + {localPeer?.role?.name?.includes('hls-') ? ( hmsRoom?.hlsStreamingState?.running ? ( hmsRoom?.hlsStreamingState?.variants ?.slice(0, 1) @@ -1099,6 +1106,7 @@ const Meeting = () => { speakers={speakers} instance={instance} setModalVisible={setModalVisible} + localPeer={localPeer} /> ) : layout === LayoutParams.MINI ? ( { orientation={orientation} speakers={speakers} instance={instance} + permissions={localPeer?.role?.permissions} /> ) : ( { pinnedPeerTrackIds={pinnedPeerTrackIds} setPinnedPeerTrackIds={setPinnedPeerTrackIds} setUpdatePeerTrackNode={setUpdatePeerTrackNode} + permissions={localPeer?.role?.permissions} /> )} @@ -1131,13 +1141,11 @@ const Meeting = () => { onPress={onMicStatusPress} viewStyle={[ styles.iconContainer, - instance?.localPeer?.audioTrack?.isMute() && styles.iconMuted, + localPeer?.audioTrack?.isMute() && styles.iconMuted, ]} LeftIcon={ @@ -1147,21 +1155,17 @@ const Meeting = () => { onPress={onVideoStatusPress} viewStyle={[ styles.iconContainer, - instance?.localPeer?.videoTrack?.isMute() && styles.iconMuted, + localPeer?.videoTrack?.isMute() && styles.iconMuted, ]} LeftIcon={ } /> - {instance?.localPeer?.role?.permissions?.hlsStreaming && + {localPeer?.role?.permissions?.hlsStreaming && (hmsRoom?.hlsStreamingState?.running ? ( setModalVisible(ModalTypes.END_HLS_STREAMING)} @@ -1211,7 +1215,7 @@ const Meeting = () => { } /> - {instance?.localPeer?.role?.permissions?.hlsStreaming && + {localPeer?.role?.permissions?.hlsStreaming && (hmsRoom?.hlsStreamingState?.running ? ( End stream ) : ( @@ -1227,7 +1231,7 @@ const Meeting = () => { setModalVisible(ModalTypes.DEFAULT)}> - + { { setModalVisible(ModalTypes.DEFAULT)}> - + { setModalVisible={() => setModalVisible(ModalTypes.DEFAULT)}> setModalVisible(ModalTypes.DEFAULT)} /> @@ -1395,7 +1401,7 @@ const Meeting = () => { modalVisible={modalVisible === ModalTypes.CHANGE_TRACK} setModalVisible={() => setModalVisible(ModalTypes.DEFAULT)}> setModalVisible(ModalTypes.DEFAULT)} /> diff --git a/example/src/screens/Welcome/index.tsx b/example/src/screens/Welcome/index.tsx index 3b7b74ce8..2ebc148d4 100644 --- a/example/src/screens/Welcome/index.tsx +++ b/example/src/screens/Welcome/index.tsx @@ -5,12 +5,10 @@ import { HMSCameraFacing, HMSConfig, HMSException, - HMSLocalPeer, HMSLogger, HMSLogLevel, HMSPeer, HMSPeerUpdate, - HMSRemotePeer, HMSRoom, HMSRoomUpdate, HMSSDK, @@ -23,24 +21,33 @@ import { HMSVideoTrack, HMSVideoTrackSettings, } from '@100mslive/react-native-hms'; -import { useNavigation } from '@react-navigation/native'; -import React, { useEffect, useState } from 'react'; -import { Alert, Image, KeyboardAvoidingView, Platform, ScrollView, Text, View } from 'react-native'; -import { getModel } from 'react-native-device-info'; -import { useSafeAreaInsets } from 'react-native-safe-area-context'; +import {useNavigation} from '@react-navigation/native'; +import React, {useEffect, useState} from 'react'; +import { + Alert, + Image, + KeyboardAvoidingView, + Platform, + ScrollView, + Text, + View, +} from 'react-native'; +import {getModel} from 'react-native-device-info'; +import {useSafeAreaInsets} from 'react-native-safe-area-context'; import Toast from 'react-native-simple-toast'; -import { useDispatch, useSelector } from 'react-redux'; +import {useDispatch, useSelector} from 'react-redux'; -import { CustomButton, CustomInput, PreviewModal } from '../../components'; -import { saveUserData, setPeerState } from '../../redux/actions'; +import {CustomButton, CustomInput, PreviewModal} from '../../components'; +import {saveUserData, setPeerState} from '../../redux/actions'; import { callService, + createPeerTrackNodes, updatePeersTrackNodesOnPeerListener, updatePeersTrackNodesOnTrackListener, } from '../../utils/functions'; -import { COLORS } from '../../utils/theme'; -import { ModalTypes, PeerTrackNode } from '../../utils/types'; -import { styles } from './styles'; +import {COLORS} from '../../utils/theme'; +import {ModalTypes, PeerTrackNode} from '../../utils/types'; +import {styles} from './styles'; import type {NativeStackNavigationProp} from '@react-navigation/native-stack'; import type {AppStackParamList} from '../../navigator'; @@ -51,15 +58,16 @@ type WelcomeScreenProp = NativeStackNavigationProp< >; const Welcome = () => { + // hooks const navigate = useNavigation().navigate; const {roomID, userName} = useSelector((state: RootState) => state.user); const {top, bottom, left, right} = useSafeAreaInsets(); const dispatch = useDispatch(); + // useState hook const [peerTrackNodes, setPeerTrackNodes] = useState>( [], ); - const peerTrackNodesRef = React.useRef>(peerTrackNodes); const [instance, setInstance] = useState(); const [config, setConfig] = useState(); const [nameDisabled, setNameDisabled] = useState(true); @@ -67,43 +75,34 @@ const Welcome = () => { const [previewButtonLoading, setPreviewButtonLoading] = useState(false); const [joinButtonLoading, setJoinButtonLoading] = useState(false); - const [previewTrackId, setPreviewTrackId] = useState(''); + const [previewTracks, setPreviewTracks] = useState<{ + audioTrack: HMSAudioTrack; + videoTrack: HMSVideoTrack; + }>(); + const [hmsRoom, setHmsRoom] = useState(); const [modalType, setModalType] = useState(ModalTypes.DEFAULT); - const [videoAllowed, setVideoAllowed] = useState(false); - const [audioAllowed, setAudioAllowed] = useState(false); + // useRef hook + const peerTrackNodesRef = React.useRef>(peerTrackNodes); + + // listeners const onPreviewSuccess = (data: { - localPeer: HMSLocalPeer; room: HMSRoom; previewTracks: {audioTrack: HMSAudioTrack; videoTrack: HMSVideoTrack}; }) => { - setVideoAllowed( - data?.localPeer?.role?.publishSettings?.allowed?.includes('video') ?? - false, - ); - setAudioAllowed( - data?.localPeer?.role?.publishSettings?.allowed?.includes('audio') ?? - false, - ); - setPreviewTrackId(data?.previewTracks?.videoTrack?.trackId); + console.log('data in onPreviewSuccess: ', data); + setHmsRoom(data.room); + setPreviewTracks(data?.previewTracks); setPreviewButtonLoading(false); setModalType(ModalTypes.PREVIEW); }; - const onJoinListener = ({ - localPeer, - }: { - room: HMSRoom; - localPeer: HMSLocalPeer; - remotePeers: Array; - }) => { - const newPeerTrackNodes = updatePeersTrackNodesOnPeerListener( - peerTrackNodesRef?.current, - localPeer, - HMSPeerUpdate.PEER_JOINED, - ); - dispatch(setPeerState({peerState: newPeerTrackNodes})); - peerTrackNodesRef.current = []; + const onJoinSuccess = (data: {room: HMSRoom}) => { + console.log('data in onJoinSuccess: ', data); + const latestPeerTrackNodes = createPeerTrackNodes(data.room.peers); + dispatch(setPeerState({peerState: latestPeerTrackNodes})); + setPeerTrackNodes(latestPeerTrackNodes); + setHmsRoom(data.room); setJoinButtonLoading(false); setModalType(ModalTypes.DEFAULT); navigate('MeetingScreen'); @@ -120,84 +119,39 @@ const Welcome = () => { ); }; - const onRoomListener = ({ - room, - type, - localPeer, - remotePeers, - }: { - room?: HMSRoom; - type: HMSRoomUpdate; - localPeer: HMSLocalPeer; - remotePeers: HMSRemotePeer[]; - }) => { - console.log('data in onRoomListener: ', type, room, localPeer, remotePeers); + const onRoomListener = (data: {room: HMSRoom; type: HMSRoomUpdate}) => { + console.log('data in onRoomListener: ', data); + setHmsRoom(data.room); }; - const onPeerListener = ({ - peer, - room, - type, - remotePeers, - localPeer, - }: { - room?: HMSRoom; - peer: HMSPeer; - type: HMSPeerUpdate; - localPeer: HMSLocalPeer; - remotePeers: HMSRemotePeer[]; - }) => { - console.log( - 'data in onPeerListener: ', - type, - peer, - room, - localPeer, - remotePeers, - ); + const onPeerListener = (data: {peer: HMSPeer; type: HMSPeerUpdate}) => { + console.log('data in onPeerListener: ', data); const newPeerTrackNodes = updatePeersTrackNodesOnPeerListener( peerTrackNodesRef?.current, - peer, - type, + data.peer, + data.type, ); peerTrackNodesRef.current = newPeerTrackNodes; setPeerTrackNodes(newPeerTrackNodes); }; - const onTrackListener = ({ - peer, - track, - room, - type, - remotePeers, - localPeer, - }: { - room?: HMSRoom; + const onTrackListener = (data: { peer: HMSPeer; track: HMSTrack; type: HMSTrackUpdate; - localPeer: HMSLocalPeer; - remotePeers: HMSRemotePeer[]; }) => { - console.log( - 'data in onTrackListener: ', - type, - peer, - track, - room, - localPeer, - remotePeers, - ); + console.log('data in onTrackListener: ', data); const newPeerTrackNodes = updatePeersTrackNodesOnTrackListener( peerTrackNodesRef?.current, - track, - peer, - type, + data.track, + data.peer, + data.type, ); peerTrackNodesRef.current = newPeerTrackNodes; setPeerTrackNodes(newPeerTrackNodes); }; + // functions const onPreview = async ( token: string, userID: string, @@ -231,7 +185,7 @@ const Welcome = () => { hmsInstance?.addEventListener( HMSUpdateListenerActions.ON_JOIN, - onJoinListener, + onJoinSuccess, ); hmsInstance?.addEventListener( @@ -323,7 +277,6 @@ const Welcome = () => { * @returns */ const getHmsInstance = async (): Promise => { - /** * Only required for advanced use-case features like iOS Screen/Audio Share, Android Software Echo Cancellation, etc * NOT required for any other features. @@ -379,6 +332,7 @@ const Welcome = () => { Alert.alert('Error', error || 'Something went wrong'); }; + // useEffect hook useEffect(() => { setNameDisabled(!validateName(peerName)); return () => { @@ -386,11 +340,10 @@ const Welcome = () => { }; }, [peerName]); - return modalType === ModalTypes.PREVIEW && previewTrackId ? ( + return modalType === ModalTypes.PREVIEW && previewTracks ? ( { + return peers.map(peer => createPeerTrackNode(peer)); +}; + +export const createPeerTrackNode = ( + peer: HMSPeer, + track?: HMSTrack, +): PeerTrackNode => { + const customTrack = track ? track : peer.videoTrack; + return { + peer, + id: + peer.peerID + + (customTrack?.source === HMSTrackSource.SCREEN + ? HMSTrackSource.SCREEN + : HMSTrackSource.REGULAR), + track: customTrack, + }; +}; From e00dd9621cd6fc01ba8178f508a362bdabbaeb7f Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Mon, 3 Oct 2022 17:38:54 +0530 Subject: [PATCH 10/84] fix: logic issues --- example/src/components/ChatWindow.tsx | 16 +++++--- .../src/screens/Meeting/ActiveSpeakerView.tsx | 10 +++-- example/src/screens/Meeting/HeroView.tsx | 18 ++++++--- example/src/screens/Meeting/Modals.tsx | 39 +++++-------------- example/src/screens/Meeting/index.tsx | 12 +++++- example/src/utils/functions.ts | 26 ++++++++----- 6 files changed, 67 insertions(+), 54 deletions(-) diff --git a/example/src/components/ChatWindow.tsx b/example/src/components/ChatWindow.tsx index d6c93b89e..91f0b3a36 100644 --- a/example/src/components/ChatWindow.tsx +++ b/example/src/components/ChatWindow.tsx @@ -50,9 +50,11 @@ const ChatFilter = ({ setFilter, setType, setReceiverObject, + roles, }: { instance?: HMSSDK; filter?: string; + roles?: HMSRole[]; setFilter: React.Dispatch>; setType: React.Dispatch>; setReceiverObject: React.Dispatch< @@ -60,7 +62,6 @@ const ChatFilter = ({ >; }) => { const [visible, setVisible] = useState(false); - const [roles, setRoles] = useState(); const [remotePeers, setRemotePeers] = useState(); const hideMenu = () => setVisible(false); @@ -68,13 +69,9 @@ const ChatFilter = ({ const updateRemotePeers = async () => { setRemotePeers(await instance?.getRemotePeers()); }; - const updateRoles = async () => { - setRoles(await instance?.getRoles()); - }; useEffect(() => { updateRemotePeers(); - updateRoles(); // eslint-disable-next-line react-hooks/exhaustive-deps }, [instance]); @@ -154,7 +151,13 @@ const ChatFilter = ({ ); }; -export const ChatWindow = ({localPeer}: {localPeer?: HMSLocalPeer}) => { +export const ChatWindow = ({ + localPeer, + roles, +}: { + localPeer?: HMSLocalPeer; + roles?: HMSRole[]; +}) => { const {hmsInstance} = useSelector((state: RootState) => state.user); const {messages} = useSelector((state: RootState) => state.messages); const dispatch = useDispatch(); @@ -223,6 +226,7 @@ export const ChatWindow = ({localPeer}: {localPeer?: HMSLocalPeer}) => { setFilter={setFilter} setType={setType} setReceiverObject={setReceiverObject} + roles={roles} /> diff --git a/example/src/screens/Meeting/ActiveSpeakerView.tsx b/example/src/screens/Meeting/ActiveSpeakerView.tsx index 6d932d4ab..e5992a9c3 100644 --- a/example/src/screens/Meeting/ActiveSpeakerView.tsx +++ b/example/src/screens/Meeting/ActiveSpeakerView.tsx @@ -1,7 +1,7 @@ import React, {useMemo} from 'react'; -import type {HMSSDK, HMSSpeaker} from '@100mslive/react-native-hms'; +import {HMSSDK, HMSSpeaker, HMSTrackSource} from '@100mslive/react-native-hms'; -import {createPeerTrackNode, pairDataForFlatlist} from '../../utils/functions'; +import {pairDataForFlatlist} from '../../utils/functions'; import type {LayoutParams, PeerTrackNode, SortingType} from '../../utils/types'; import {GridView} from './Grid'; @@ -75,7 +75,11 @@ const getActiveSpeakers = ( ): PeerTrackNode[] => { const currentActiveSpeakers: PeerTrackNode[] = speakers.map(speaker => { const {peer} = speaker; - return createPeerTrackNode(peer); + return { + id: peer.peerID + HMSTrackSource.REGULAR, + peer, + track: peer.videoTrack, + }; }); let speakersRequired = peers.length - currentActiveSpeakers.length; diff --git a/example/src/screens/Meeting/HeroView.tsx b/example/src/screens/Meeting/HeroView.tsx index d542ea715..c23fb2c26 100644 --- a/example/src/screens/Meeting/HeroView.tsx +++ b/example/src/screens/Meeting/HeroView.tsx @@ -1,15 +1,15 @@ import React, {useState, useEffect} from 'react'; import {FlatList, View} from 'react-native'; -import type { +import { HMSLocalPeer, HMSSDK, HMSSpeaker, + HMSTrackSource, } from '@100mslive/react-native-hms'; import {LayoutParams, PeerTrackNode} from '../../utils/types'; import {DisplayTrack} from './DisplayTrack'; import {styles} from './styles'; -import {createPeerTrackNode} from '../../utils/functions'; type HeroViewProps = { instance: HMSSDK | undefined; @@ -48,14 +48,22 @@ const HeroView = ({ useEffect(() => { if (speakers.length > 0) { const peer = speakers[0].peer; - setMainSpeaker(createPeerTrackNode(peer)); + setMainSpeaker({ + id: peer.peerID + HMSTrackSource.REGULAR, + peer, + track: peer.videoTrack, + }); } if (speakers.length === 0 && !mainSpeaker && localPeer) { const peer = localPeer; - setMainSpeaker(createPeerTrackNode(peer)); + setMainSpeaker({ + id: peer.peerID + HMSTrackSource.REGULAR, + peer, + track: peer.videoTrack, + }); } // eslint-disable-next-line react-hooks/exhaustive-deps - }, [speakers, localPeer]); + }, [speakers, peerTrackNodes, localPeer]); useEffect(() => { const newPeerList = peerTrackNodes; diff --git a/example/src/screens/Meeting/Modals.tsx b/example/src/screens/Meeting/Modals.tsx index e20f41daf..a33b26df1 100644 --- a/example/src/screens/Meeting/Modals.tsx +++ b/example/src/screens/Meeting/Modals.tsx @@ -66,6 +66,7 @@ export const ParticipantsModal = ({ localPeer, peerTrackNodes, pinnedPeerTrackIds, + roles, setUpdatePeerTrackNode, setModalVisible, setPinnedPeerTrackIds, @@ -74,6 +75,7 @@ export const ParticipantsModal = ({ localPeer?: HMSLocalPeer; peerTrackNodes: PeerTrackNode[]; pinnedPeerTrackIds: String[]; + roles?: HMSRole[]; setUpdatePeerTrackNode: React.Dispatch>; setModalVisible: React.Dispatch>; setPinnedPeerTrackIds: React.Dispatch>; @@ -217,7 +219,7 @@ export const ParticipantsModal = ({ Participants @@ -451,27 +453,18 @@ export const ParticipantsModal = ({ }; const ParticipantFilter = ({ - instance, + roles, filter, setFilter, }: { - instance?: HMSSDK; + roles?: HMSRole[]; filter?: string; setFilter: React.Dispatch>; }) => { const [visible, setVisible] = useState(false); - const [roles, setRoles] = useState(); const hideMenu = () => setVisible(false); const showMenu = () => setVisible(true); - const updateRoles = async () => { - setRoles(await instance?.getRoles()); - }; - - useEffect(() => { - updateRoles(); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [instance]); return ( { const [newRole, setNewRole] = useState(peerTrackNode.peer?.role!); const [request, setRequest] = useState(false); const [visible, setVisible] = useState(false); - const [roles, setRoles] = useState(); const hideMenu = () => setVisible(false); const showMenu = () => setVisible(true); @@ -561,14 +555,6 @@ export const ChangeRoleModal = ({ await instance?.changeRole(peerTrackNode.peer, newRole, !request); cancelModal(); }; - const updateRoles = async () => { - setRoles(await instance?.getRoles()); - }; - - useEffect(() => { - updateRoles(); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [instance]); return ( @@ -1417,16 +1403,17 @@ export const ChangeLayoutModal = ({ }; export const ChangeTrackStateForRoleModal = ({ + roles, instance, localPeer, cancelModal, }: { + roles?: HMSRole[]; instance?: HMSSDK; localPeer?: HMSLocalPeer; cancelModal: Function; }) => { const [role, setRole] = useState(localPeer?.role!); - const [roles, setRoles] = useState(); const [visible, setVisible] = useState(false); const [trackType, setTrackType] = useState(HMSTrackType.VIDEO); const [trackState, setTrackState] = useState(false); @@ -1441,14 +1428,6 @@ export const ChangeTrackStateForRoleModal = ({ .catch(e => console.log('Change Track State For Role Error: ', e)); cancelModal(); }; - const updateRoles = async () => { - setRoles(await instance?.getRoles()); - }; - - useEffect(() => { - updateRoles(); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [instance]); return ( diff --git a/example/src/screens/Meeting/index.tsx b/example/src/screens/Meeting/index.tsx index a421cb843..9891e05b1 100644 --- a/example/src/screens/Meeting/index.tsx +++ b/example/src/screens/Meeting/index.tsx @@ -31,6 +31,7 @@ import { HMSTrackSource, HMSTrackType, HMSAudioFilePlayerNode, + HMSRole, } from '@100mslive/react-native-hms'; import Feather from 'react-native-vector-icons/Feather'; import Entypo from 'react-native-vector-icons/Entypo'; @@ -132,6 +133,7 @@ const Meeting = () => { [], ); const [hmsRoom, setHmsRoom] = useState(); + const [hmsRoles, setHmsRoles] = useState(); const [speakers, setSpeakers] = useState>([]); const [notification, setNotification] = useState(false); const [muteAllTracksAudio, setMuteAllTracksAudio] = useState(false); @@ -419,6 +421,10 @@ const Meeting = () => { setHmsRoom(await hmsInstance?.getRoom()); }; + const updateRoles = async () => { + setHmsRoles(await hmsInstance?.getRoles()); + }; + const reportIssue = async () => { try { const fileUrl = RNFetchBlob.fs.dirs.DocumentDir + '/report-logs.json'; @@ -845,6 +851,7 @@ const Meeting = () => { updateHmsInstance(hmsInstance); updateLocalPeer(); updateRoom(); + updateRoles(); const callback = () => setOrientation(isPortrait()); callback(); @@ -1231,7 +1238,7 @@ const Meeting = () => { setModalVisible(ModalTypes.DEFAULT)}> - + { setModalVisible={setModalVisible} pinnedPeerTrackIds={pinnedPeerTrackIds} setPinnedPeerTrackIds={setPinnedPeerTrackIds} + roles={hmsRoles} /> { setModalVisible={() => setModalVisible(ModalTypes.DEFAULT)}> setModalVisible(ModalTypes.DEFAULT)} /> @@ -1390,6 +1399,7 @@ const Meeting = () => { setModalVisible={() => setModalVisible(ModalTypes.DEFAULT)}> setModalVisible(ModalTypes.DEFAULT)} /> diff --git a/example/src/utils/functions.ts b/example/src/utils/functions.ts index d13eafad3..da5f415b2 100644 --- a/example/src/utils/functions.ts +++ b/example/src/utils/functions.ts @@ -379,7 +379,11 @@ export const updatePeersTrackNodesOnPeerListener = ( if (alreadyPresent) { return updatePeerTrackNodes; } else { - const newPeerTrackNode = createPeerTrackNode(peer); + const newPeerTrackNode: PeerTrackNode = { + id: peer.peerID + HMSTrackSource.REGULAR, + peer, + track: peer.videoTrack, + }; updatePeerTrackNodes?.push(newPeerTrackNode); return updatePeerTrackNodes; } @@ -412,10 +416,9 @@ export const updatePeersTrackNodesOnTrackListener = ( const oldPeerTrackNodes: PeerTrackNode[] = peerTrackNodes; const uniqueId = peer.peerID + - (track.source === HMSTrackSource.SCREEN - ? HMSTrackSource.SCREEN - : HMSTrackSource.REGULAR); - + (track.source === undefined || track.source === HMSTrackSource.REGULAR + ? HMSTrackSource.REGULAR + : track.trackId); const isVideo = track.type === HMSTrackType.VIDEO; if ( type === HMSTrackUpdate.TRACK_ADDED @@ -443,7 +446,11 @@ export const updatePeersTrackNodesOnTrackListener = ( if (alreadyPresent) { return updatePeerTrackNodes; } else if (!alreadyPresent && isVideo) { - const newPeerTrackNode = createPeerTrackNode(peer, track); + const newPeerTrackNode: PeerTrackNode = { + id: uniqueId, + peer, + track, + }; // push screenshare track to 0th index if (track.source === HMSTrackSource.SCREEN) { return [newPeerTrackNode, ...updatePeerTrackNodes]; @@ -581,9 +588,10 @@ export const createPeerTrackNode = ( peer, id: peer.peerID + - (customTrack?.source === HMSTrackSource.SCREEN - ? HMSTrackSource.SCREEN - : HMSTrackSource.REGULAR), + (customTrack?.source === undefined || + customTrack?.source === HMSTrackSource.REGULAR + ? HMSTrackSource.REGULAR + : customTrack?.trackId), track: customTrack, }; }; From e6f591b226963c3b91ddf9b90eb83541304aa8ce Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Mon, 3 Oct 2022 23:44:13 +0530 Subject: [PATCH 11/84] =?UTF-8?q?released=20sample=20app=20version=202.0.8?= =?UTF-8?q?(113)=20=E2=9A=9B=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/android/Gemfile.lock | 8 ++-- example/android/app/build.gradle | 4 +- example/ios/Gemfile.lock | 8 ++-- example/ios/Podfile.lock | 2 +- .../RNHMSExample.xcodeproj/project.pbxproj | 12 ++--- example/ios/RNHMSExample/Info.plist | 4 +- example/package-lock.json | 24 +++++----- package-lock.json | 48 +++++++++---------- 8 files changed, 55 insertions(+), 55 deletions(-) diff --git a/example/android/Gemfile.lock b/example/android/Gemfile.lock index 3a942aa0f..66c7fc375 100644 --- a/example/android/Gemfile.lock +++ b/example/android/Gemfile.lock @@ -8,8 +8,8 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.639.0) - aws-sdk-core (3.157.0) + aws-partitions (1.640.0) + aws-sdk-core (3.158.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) @@ -21,7 +21,7 @@ GEM aws-sdk-core (~> 3, >= 3.127.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.4) - aws-sigv4 (1.5.1) + aws-sigv4 (1.5.2) aws-eventstream (~> 1, >= 1.0.2) babosa (1.0.4) claide (1.1.0) @@ -107,7 +107,7 @@ GEM xcpretty-travis-formatter (>= 0.0.3) fastlane-plugin-firebase_app_distribution (0.3.7) gh_inspector (1.1.3) - google-apis-androidpublisher_v3 (0.28.0) + google-apis-androidpublisher_v3 (0.29.0) google-apis-core (>= 0.9.0, < 2.a) google-apis-core (0.9.0) addressable (~> 2.5, >= 2.5.1) diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 36a01ab3c..d2f4f8715 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -136,8 +136,8 @@ android { applicationId "live.hms.rn" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 112 - versionName "2.0.7" + versionCode 113 + versionName "2.0.8" missingDimensionStrategy 'react-native-camera', 'general' } splits { diff --git a/example/ios/Gemfile.lock b/example/ios/Gemfile.lock index 1dd91343b..f7049bc2d 100644 --- a/example/ios/Gemfile.lock +++ b/example/ios/Gemfile.lock @@ -8,8 +8,8 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.639.0) - aws-sdk-core (3.157.0) + aws-partitions (1.640.0) + aws-sdk-core (3.158.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) @@ -21,7 +21,7 @@ GEM aws-sdk-core (~> 3, >= 3.127.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.4) - aws-sigv4 (1.5.1) + aws-sigv4 (1.5.2) aws-eventstream (~> 1, >= 1.0.2) babosa (1.0.4) claide (1.1.0) @@ -108,7 +108,7 @@ GEM fastlane-plugin-firebase_app_distribution (0.3.7) fastlane-plugin-versioning (0.5.1) gh_inspector (1.1.3) - google-apis-androidpublisher_v3 (0.28.0) + google-apis-androidpublisher_v3 (0.29.0) google-apis-core (>= 0.9.0, < 2.a) google-apis-core (0.9.0) addressable (~> 2.5, >= 2.5.1) diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index b66a99412..99b624e8d 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -582,7 +582,7 @@ SPEC CHECKSUMS: CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 DoubleConversion: cf9b38bf0b2d048436d9a82ad2abe1404f11e7de FBLazyVector: e686045572151edef46010a6f819ade377dfeb4b - FBReactNativeSpec: 978556cb9c183a32af51f818206b201b3deb0d1e + FBReactNativeSpec: 0094aca9cd5d4a79abcb5a2c1d1f52d0c106aaf9 Flipper: d3da1aa199aad94455ae725e9f3aa43f3ec17021 Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41 Flipper-Folly: 755929a4f851b2fb2c347d533a23f191b008554c diff --git a/example/ios/RNHMSExample.xcodeproj/project.pbxproj b/example/ios/RNHMSExample.xcodeproj/project.pbxproj index cdd0cbfcc..359d41682 100644 --- a/example/ios/RNHMSExample.xcodeproj/project.pbxproj +++ b/example/ios/RNHMSExample.xcodeproj/project.pbxproj @@ -622,7 +622,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 112; + CURRENT_PROJECT_VERSION = 113; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -663,7 +663,7 @@ CODE_SIGN_ENTITLEMENTS = RNHMSExample/RNHMSExample.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 112; + CURRENT_PROJECT_VERSION = 113; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -726,7 +726,7 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -791,7 +791,7 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -830,7 +830,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 112; + CURRENT_PROJECT_VERSION = 113; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = 5N85PP82A9; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -873,7 +873,7 @@ CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 112; + CURRENT_PROJECT_VERSION = 113; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = 5N85PP82A9; GCC_C_LANGUAGE_STANDARD = gnu11; diff --git a/example/ios/RNHMSExample/Info.plist b/example/ios/RNHMSExample/Info.plist index 112f723b0..074aec488 100644 --- a/example/ios/RNHMSExample/Info.plist +++ b/example/ios/RNHMSExample/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.0.7 + 2.0.8 CFBundleSignature ???? CFBundleVersion - 112 + 113 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS diff --git a/example/package-lock.json b/example/package-lock.json index 993a1bd0c..4c895f149 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -3644,9 +3644,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.7.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.23.tgz", - "integrity": "sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==" + "version": "18.8.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.0.tgz", + "integrity": "sha512-u+h43R6U8xXDt2vzUaVP3VwjjLyOJk6uEciZS8OSyziUQGOwmk+l+4drxcsDboHXwyTaqS1INebghmWMRxq3LA==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -5210,9 +5210,9 @@ } }, "node_modules/core-js-compat": { - "version": "3.25.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.3.tgz", - "integrity": "sha512-xVtYpJQ5grszDHEUU9O7XbjjcZ0ccX3LgQsyqSvTnjX97ZqEgn9F5srmrwwwMtbKzDllyFPL+O+2OFMl1lU4TQ==", + "version": "3.25.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.4.tgz", + "integrity": "sha512-gCEcIEEqCR6230WroNunK/653CWKhqyCKJ9b+uESqOt/WFJA8B4lTnnQFdpYY5vmBcwJAA90Bo5vXs+CVsf6iA==", "dependencies": { "browserslist": "^4.21.4" }, @@ -17296,9 +17296,9 @@ "dev": true }, "@types/node": { - "version": "18.7.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.23.tgz", - "integrity": "sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==" + "version": "18.8.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.0.tgz", + "integrity": "sha512-u+h43R6U8xXDt2vzUaVP3VwjjLyOJk6uEciZS8OSyziUQGOwmk+l+4drxcsDboHXwyTaqS1INebghmWMRxq3LA==" }, "@types/normalize-package-data": { "version": "2.4.1", @@ -18501,9 +18501,9 @@ "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==" }, "core-js-compat": { - "version": "3.25.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.3.tgz", - "integrity": "sha512-xVtYpJQ5grszDHEUU9O7XbjjcZ0ccX3LgQsyqSvTnjX97ZqEgn9F5srmrwwwMtbKzDllyFPL+O+2OFMl1lU4TQ==", + "version": "3.25.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.4.tgz", + "integrity": "sha512-gCEcIEEqCR6230WroNunK/653CWKhqyCKJ9b+uESqOt/WFJA8B4lTnnQFdpYY5vmBcwJAA90Bo5vXs+CVsf6iA==", "requires": { "browserslist": "^4.21.4" } diff --git a/package-lock.json b/package-lock.json index 31c1f375e..ee1ef5973 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5362,9 +5362,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.7.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.23.tgz", - "integrity": "sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==" + "version": "18.8.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.0.tgz", + "integrity": "sha512-u+h43R6U8xXDt2vzUaVP3VwjjLyOJk6uEciZS8OSyziUQGOwmk+l+4drxcsDboHXwyTaqS1INebghmWMRxq3LA==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -7548,9 +7548,9 @@ } }, "node_modules/core-js": { - "version": "3.25.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.3.tgz", - "integrity": "sha512-y1hvKXmPHvm5B7w4ln1S4uc9eV/O5+iFExSRUimnvIph11uaizFR8LFMdONN8hG3P2pipUfX4Y/fR8rAEtcHcQ==", + "version": "3.25.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.4.tgz", + "integrity": "sha512-JDLxg61lFPFYQ7U0HKoyKwVUV63VbbVTb/K73Yf+k4Mf4ZBZxCjfyrWZjTk1ZM7ZrgFSqhSIOmuzYAxG2f/reQ==", "dev": true, "hasInstallScript": true, "funding": { @@ -7559,9 +7559,9 @@ } }, "node_modules/core-js-compat": { - "version": "3.25.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.3.tgz", - "integrity": "sha512-xVtYpJQ5grszDHEUU9O7XbjjcZ0ccX3LgQsyqSvTnjX97ZqEgn9F5srmrwwwMtbKzDllyFPL+O+2OFMl1lU4TQ==", + "version": "3.25.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.4.tgz", + "integrity": "sha512-gCEcIEEqCR6230WroNunK/653CWKhqyCKJ9b+uESqOt/WFJA8B4lTnnQFdpYY5vmBcwJAA90Bo5vXs+CVsf6iA==", "dependencies": { "browserslist": "^4.21.4" }, @@ -18894,9 +18894,9 @@ } }, "node_modules/socks": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.0.tgz", - "integrity": "sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dev": true, "peer": true, "dependencies": { @@ -24814,9 +24814,9 @@ "dev": true }, "@types/node": { - "version": "18.7.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.23.tgz", - "integrity": "sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==" + "version": "18.8.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.0.tgz", + "integrity": "sha512-u+h43R6U8xXDt2vzUaVP3VwjjLyOJk6uEciZS8OSyziUQGOwmk+l+4drxcsDboHXwyTaqS1INebghmWMRxq3LA==" }, "@types/normalize-package-data": { "version": "2.4.1", @@ -26476,15 +26476,15 @@ "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==" }, "core-js": { - "version": "3.25.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.3.tgz", - "integrity": "sha512-y1hvKXmPHvm5B7w4ln1S4uc9eV/O5+iFExSRUimnvIph11uaizFR8LFMdONN8hG3P2pipUfX4Y/fR8rAEtcHcQ==", + "version": "3.25.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.4.tgz", + "integrity": "sha512-JDLxg61lFPFYQ7U0HKoyKwVUV63VbbVTb/K73Yf+k4Mf4ZBZxCjfyrWZjTk1ZM7ZrgFSqhSIOmuzYAxG2f/reQ==", "dev": true }, "core-js-compat": { - "version": "3.25.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.3.tgz", - "integrity": "sha512-xVtYpJQ5grszDHEUU9O7XbjjcZ0ccX3LgQsyqSvTnjX97ZqEgn9F5srmrwwwMtbKzDllyFPL+O+2OFMl1lU4TQ==", + "version": "3.25.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.4.tgz", + "integrity": "sha512-gCEcIEEqCR6230WroNunK/653CWKhqyCKJ9b+uESqOt/WFJA8B4lTnnQFdpYY5vmBcwJAA90Bo5vXs+CVsf6iA==", "requires": { "browserslist": "^4.21.4" } @@ -35239,9 +35239,9 @@ } }, "socks": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.0.tgz", - "integrity": "sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dev": true, "peer": true, "requires": { From 56801bbfbba6e71ff40abe520a2a6222115cfcdc Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Tue, 4 Oct 2022 18:58:14 +0530 Subject: [PATCH 12/84] updated Native iOS SDK --- example/ios/Podfile.lock | 8 ++++---- react-native-hms.podspec | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 99b624e8d..c51521b84 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -59,7 +59,7 @@ PODS: - glog (0.3.5) - hermes-engine (0.7.2) - HMSBroadcastExtensionSDK (0.0.3) - - HMSSDK (0.4.3): + - HMSSDK (0.4.4): - HMSWebRTC (= 1.0.4898) - HMSWebRTC (1.0.4898) - libevent (2.1.12) @@ -290,7 +290,7 @@ PODS: - React-Core - react-native-hms (0.9.94): - HMSBroadcastExtensionSDK (= 0.0.3) - - HMSSDK (= 0.4.3) + - HMSSDK (= 0.4.4) - React-Core - react-native-safe-area-context (3.4.1): - React-Core @@ -593,7 +593,7 @@ SPEC CHECKSUMS: glog: 73c2498ac6884b13ede40eda8228cb1eee9d9d62 hermes-engine: 7d97ba46a1e29bacf3e3c61ecb2804a5ddd02d4f HMSBroadcastExtensionSDK: a69a4503a1708b5d51e2890d70f574b9cdfea760 - HMSSDK: 26b7710cef362d8af3ab54e5a9aac13836518be2 + HMSSDK: 2f42ddfa6aec368fe6f1abd91590faa6fa159100 HMSWebRTC: d3a9b2866e4a36a1d3834728a548a4a46309bb86 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b @@ -613,7 +613,7 @@ SPEC CHECKSUMS: react-native-camera: 3eae183c1d111103963f3dd913b65d01aef8110f react-native-cameraroll: db9ebe8fc29baf68defdb1691fb6642e8a8ad04d react-native-document-picker: f68191637788994baed5f57d12994aa32cf8bf88 - react-native-hms: 550e93adef6ee1e78b36a3e3b362d8b652bca3df + react-native-hms: 2053e9d13973339658b496000e3bdac56d1d2046 react-native-safe-area-context: 9e40fb181dac02619414ba1294d6c2a807056ab9 react-native-simple-toast: 8ee5d23f0b92b935ab7434cdb65159ce12dfb4b7 react-native-video: c26780b224543c62d5e1b2a7244a5cd1b50e8253 diff --git a/react-native-hms.podspec b/react-native-hms.podspec index c44da9327..23228d786 100644 --- a/react-native-hms.podspec +++ b/react-native-hms.podspec @@ -16,6 +16,6 @@ Pod::Spec.new do |s| s.source_files = "ios/**/*.{h,m,mm,swift}" s.dependency "React-Core" - s.dependency "HMSSDK", "0.4.3" + s.dependency "HMSSDK", "0.4.4" s.dependency 'HMSBroadcastExtensionSDK', '0.0.3' end From b77bdcebc62954bace3a2aadae212b0be9e93802 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Tue, 4 Oct 2022 19:00:56 +0530 Subject: [PATCH 13/84] fixed lint warnings --- .../RNHMSExampleBroadcastUpload/SampleHandler.swift | 4 ++-- ios/HMSManager.swift | 10 +++++----- ios/HMSRNSDK.swift | 8 ++++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/example/ios/RNHMSExampleBroadcastUpload/SampleHandler.swift b/example/ios/RNHMSExampleBroadcastUpload/SampleHandler.swift index 68e34d309..e86ebb5ca 100644 --- a/example/ios/RNHMSExampleBroadcastUpload/SampleHandler.swift +++ b/example/ios/RNHMSExampleBroadcastUpload/SampleHandler.swift @@ -37,8 +37,8 @@ class SampleHandler: RPBroadcastSampleHandler { if let error = screenRenderer.process(sampleBuffer) { if error.code == .noActiveMeeting { finishBroadcastWithError(NSError(domain: "ScreenShare", - code: error.code.rawValue, - userInfo: [NSLocalizedFailureReasonErrorKey: "You are not in a meeting."])) + code: error.code.rawValue, + userInfo: [NSLocalizedFailureReasonErrorKey: "You are not in a meeting."])) } } break diff --git a/ios/HMSManager.swift b/ios/HMSManager.swift index e4b468242..6a56b8491 100644 --- a/ios/HMSManager.swift +++ b/ios/HMSManager.swift @@ -364,7 +364,7 @@ class HMSManager: RCTEventEmitter { hms?.audioShareDuration(data, resolve, reject) } - + // MARK: - HMS SDK Get APIs @objc func getRoom(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) { @@ -372,28 +372,28 @@ class HMSManager: RCTEventEmitter { hms?.getRoom(resolve) } - + @objc func getLocalPeer(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) { let hms = HMSHelper.getHms(data, hmsCollection) hms?.getLocalPeer(resolve) } - + @objc func getRemotePeers(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) { let hms = HMSHelper.getHms(data, hmsCollection) hms?.getRemotePeers(resolve) } - + @objc func getRoles(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) { let hms = HMSHelper.getHms(data, hmsCollection) hms?.getRoles(resolve) } - + // MARK: - HMS SDK Delegate Callbacks func emitEvent(_ name: String, _ data: [String: Any]) { self.sendEvent(withName: name, body: data) diff --git a/ios/HMSRNSDK.swift b/ios/HMSRNSDK.swift index 1e6044018..3ad96d220 100644 --- a/ios/HMSRNSDK.swift +++ b/ios/HMSRNSDK.swift @@ -975,26 +975,26 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener { reject?("AudioFilePlayerNode not found", "AudioFilePlayerNode not found", nil) } } - + // MARK: - HMS SDK Get APIs func getRoom(_ resolve: RCTPromiseResolveBlock?) { let roomData = HMSDecoder.getHmsRoom(hms?.room) resolve?(roomData) } - + func getLocalPeer(_ resolve: RCTPromiseResolveBlock?) { let localPeer = HMSDecoder.getHmsLocalPeer(hms?.localPeer) resolve?(localPeer) } - + func getRemotePeers(_ resolve: RCTPromiseResolveBlock?) { let remotePeers = HMSDecoder.getHmsRemotePeers(hms?.remotePeers) resolve?(remotePeers) } - + func getRoles(_ resolve: RCTPromiseResolveBlock?) { let roles = HMSDecoder.getAllRoles(hms?.roles) From 02b955c85d7651abb30d8b6b29dbbb78857ddf7d Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Tue, 4 Oct 2022 19:06:05 +0530 Subject: [PATCH 14/84] corrected preferred extension for iOS Screenshare --- example/src/screens/Welcome/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/src/screens/Welcome/index.tsx b/example/src/screens/Welcome/index.tsx index 2ebc148d4..db2dee830 100644 --- a/example/src/screens/Welcome/index.tsx +++ b/example/src/screens/Welcome/index.tsx @@ -307,7 +307,7 @@ const Welcome = () => { const hmsInstance = await HMSSDK.build({ trackSettings, appGroup: 'group.reactnativehms', - preferredExtension: 'RHHMSExampleBroadcastUpload', + preferredExtension: 'live.100ms.reactnative.RNHMSExampleBroadcastUpload', }); const logger = new HMSLogger(); logger.updateLogLevel(HMSLogLevel.VERBOSE, true); From ac4df9139e4579507353bf41f4685e0e6265d92a Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Tue, 4 Oct 2022 20:47:18 +0530 Subject: [PATCH 15/84] fix: new changes --- .../java/com/reactnativehmssdk/HMSManager.kt | 14 ++++++ .../java/com/reactnativehmssdk/HMSRNSDK.kt | 17 +++++++ src/classes/HMSSDK.tsx | 50 ++++--------------- 3 files changed, 41 insertions(+), 40 deletions(-) diff --git a/android/src/main/java/com/reactnativehmssdk/HMSManager.kt b/android/src/main/java/com/reactnativehmssdk/HMSManager.kt index 5e08acaa5..56446fb6d 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSManager.kt @@ -362,6 +362,20 @@ class HMSManager(reactContext: ReactApplicationContext) : hms?.disableRTCStats() } + @ReactMethod + fun enableNetworkQualityUpdates(data: ReadableMap) { + val hms = HMSHelper.getHms(data, hmsCollection) + + hms?.enableNetworkQualityUpdates() + } + + @ReactMethod + fun disableNetworkQualityUpdates(data: ReadableMap) { + val hms = HMSHelper.getHms(data, hmsCollection) + + hms?.disableNetworkQualityUpdates() + } + @ReactMethod fun getAudioDevicesList(data: ReadableMap, callback: Promise?) { val hms = HMSHelper.getHms(data, hmsCollection) diff --git a/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt b/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt index 08b146f59..5c7fb344a 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt @@ -36,6 +36,7 @@ class HMSRNSDK( private var previewInProgress: Boolean = false private var reconnectingStage: Boolean = false private var rtcStatsAttached: Boolean = false + private var networkQualityUpdatesAttached: Boolean = false private var audioMixingMode: AudioMixingMode = AudioMixingMode.TALK_AND_MUSIC private var id: String = sdkId private var self = this @@ -127,6 +128,9 @@ class HMSRNSDK( ) { return } + if(!networkQualityUpdatesAttached && type === HMSPeerUpdate.NETWORK_QUALITY_UPDATED){ + return + } val updateType = type.name val hmsPeer = HMSDecoder.getHmsPeer(peer) @@ -239,6 +243,9 @@ class HMSRNSDK( ) { return } + if(!networkQualityUpdatesAttached && type === HMSPeerUpdate.NETWORK_QUALITY_UPDATED){ + return + } val updateType = type.name val hmsPeer = HMSDecoder.getHmsPeer(peer) @@ -473,6 +480,8 @@ class HMSRNSDK( isAudioSharing = false screenshareCallback = null audioshareCallback = null + networkQualityUpdatesAttached = false + rtcStatsAttached = false callback?.resolve(emitHMSSuccess()) } @@ -1175,6 +1184,14 @@ class HMSRNSDK( rtcStatsAttached = false } + fun enableNetworkQualityUpdates() { + networkQualityUpdatesAttached = true + } + + fun disableNetworkQualityUpdates() { + networkQualityUpdatesAttached = false + } + fun getAudioDevicesList(callback: Promise?) { callback?.resolve(HMSHelper.getAudioDevicesList(hmsSDK?.getAudioDevicesList())) } diff --git a/src/classes/HMSSDK.tsx b/src/classes/HMSSDK.tsx index 02fd3e046..e1c8ec9b4 100644 --- a/src/classes/HMSSDK.tsx +++ b/src/classes/HMSSDK.tsx @@ -968,6 +968,16 @@ export class HMSSDK { HMSManager.disableRTCStats({ id: this.id }); }; + enableNetworkQualityUpdates = () => { + logger?.verbose('#Function enableNetworkQualityUpdates', { id: this.id }); + HMSManager.enableNetworkQualityUpdates({ id: this.id }); + }; + + disableNetworkQualityUpdates = () => { + logger?.verbose('#Function disableNetworkQualityUpdates', { id: this.id }); + HMSManager.disableNetworkQualityUpdates({ id: this.id }); + }; + /** * - This wrapper function is used to start streaming device audio, currently available only for android. * @@ -1367,8 +1377,6 @@ export class HMSSDK { previewTracks, }); this.onPreviewDelegate({ room, previewTracks }); - } else { - logger?.verbose('#Listener ON_PREVIEW', { room, previewTracks }); } }; @@ -1384,8 +1392,6 @@ export class HMSSDK { room, }); this.onJoinDelegate({ room }); - } else { - logger?.verbose('#LISTENER ON_JOIN', { room }); } }; @@ -1402,8 +1408,6 @@ export class HMSSDK { type, }); this.onRoomDelegate({ room, type }); - } else { - logger?.verbose('#Listener ON_ROOM', { room, type }); } }; @@ -1420,8 +1424,6 @@ export class HMSSDK { type, }); this.onPeerDelegate({ peer, type }); - } else { - logger?.verbose('#Listener ON_PEER', { peer, type }); } }; @@ -1452,8 +1454,6 @@ export class HMSSDK { track, type, }); - } else { - logger?.verbose('#Listener ON_TRACK', { peer, track, type }); } }; @@ -1465,8 +1465,6 @@ export class HMSSDK { if (this.onMessageDelegate) { logger?.verbose('#Listener ON_MESSAGE_LISTENER_CALL', message); this.onMessageDelegate(message); - } else { - logger?.verbose('#Listener ON_MESSAGE', data); } }; @@ -1479,8 +1477,6 @@ export class HMSSDK { this.onSpeakerDelegate( HMSEncoder.encodeHmsSpeakers(data?.speakers, this.id) ); - } else { - logger?.verbose('#Listener ON_SPEAKER', data?.speakers); } }; @@ -1492,9 +1488,6 @@ export class HMSSDK { logger?.verbose('#Listener ON_ERROR_LISTENER_CALL', data); logger?.warn('#Listener ON_ERROR_LISTENER_CALL', data); this.onErrorDelegate(HMSEncoder.encodeHMSException(data)); - } else { - logger?.warn('#Listener ON_ERROR', data); - logger?.verbose('#Listener ON_ERROR', data); } }; @@ -1512,8 +1505,6 @@ export class HMSSDK { encodedRoleChangeRequest ); this.onRoleChangeRequestDelegate(encodedRoleChangeRequest); - } else { - logger?.verbose('#Listener ON_ROLE_CHANGE_REQUEST', data); } }; @@ -1529,8 +1520,6 @@ export class HMSSDK { encodedRoleChangeRequest ); this.onChangeTrackStateRequestDelegate(encodedRoleChangeRequest); - } else { - logger?.verbose('#Listener ON_CHANGE_TRACK_STATE_REQUEST', data); } }; @@ -1553,8 +1542,6 @@ export class HMSSDK { id: this.id, }); this.onRemovedFromRoomDelegate({ requestedBy, reason, roomEnded }); - } else { - logger?.verbose('#Listener ON_REMOVED_FROM_ROOM', data); } }; @@ -1565,8 +1552,6 @@ export class HMSSDK { if (this.onReconnectingDelegate) { logger?.verbose('#Listener ON_RECONNECTING_CALL', data); this.onReconnectingDelegate(data); - } else { - logger?.verbose('#Listener ON_RECONNECTING', data); } }; @@ -1574,12 +1559,9 @@ export class HMSSDK { if (data.id !== this.id) { return; } - logger?.verbose('#Listener ON_RECONNECTED', data); if (this.onReconnectedDelegate) { logger?.verbose('#Listener ON_RECONNECTED_CALL', data); this.onReconnectedDelegate(data); - } else { - logger?.verbose('#Listener ON_RECONNECTED', data); } }; @@ -1593,8 +1575,6 @@ export class HMSSDK { if (this.onRtcStatsDelegate) { logger?.verbose('#Listener RTCStatsListener_CALL', { rtcStats }); this.onRtcStatsDelegate({ rtcStats }); - } else { - logger?.verbose('#Listener RTCStatsListener', data); } }; @@ -1615,8 +1595,6 @@ export class HMSSDK { track, }); this.onLocalAudioStatsDelegate({ ...data, localAudioStats, peer, track }); - } else { - logger?.verbose('#Listener onLocalAudioStatsListener', data); } }; @@ -1637,8 +1615,6 @@ export class HMSSDK { track, }); this.onLocalVideoStatsDelegate({ ...data, localVideoStats, peer, track }); - } else { - logger?.verbose('#Listener onLocalVideoStatsListener', data); } }; @@ -1664,8 +1640,6 @@ export class HMSSDK { peer, track, }); - } else { - logger?.verbose('#Listener onRemoteAudioStatsListener', data); } }; @@ -1691,8 +1665,6 @@ export class HMSSDK { peer, track, }); - } else { - logger?.verbose('#Listener onRemoteVideoStatsListener', data); } }; @@ -1709,8 +1681,6 @@ export class HMSSDK { this.onAudioDeviceChangedDelegate({ ...data, }); - } else { - logger?.verbose('#Listener onAudioDeviceChangedListener', data); } }; } From 45644c226e4f01a609077538d92fa92b0dcce6ca Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Thu, 6 Oct 2022 14:54:48 +0530 Subject: [PATCH 16/84] updated Native iOS SDK --- example/android/Gemfile.lock | 2 +- example/ios/Gemfile.lock | 2 +- example/ios/Podfile.lock | 8 ++++---- example/ios/RNHMSExample.xcodeproj/project.pbxproj | 2 ++ react-native-hms.podspec | 2 +- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/example/android/Gemfile.lock b/example/android/Gemfile.lock index 66c7fc375..54b12e43d 100644 --- a/example/android/Gemfile.lock +++ b/example/android/Gemfile.lock @@ -8,7 +8,7 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.640.0) + aws-partitions (1.642.0) aws-sdk-core (3.158.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) diff --git a/example/ios/Gemfile.lock b/example/ios/Gemfile.lock index f7049bc2d..08082a3c5 100644 --- a/example/ios/Gemfile.lock +++ b/example/ios/Gemfile.lock @@ -8,7 +8,7 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.640.0) + aws-partitions (1.642.0) aws-sdk-core (3.158.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index c51521b84..60a237f64 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -59,7 +59,7 @@ PODS: - glog (0.3.5) - hermes-engine (0.7.2) - HMSBroadcastExtensionSDK (0.0.3) - - HMSSDK (0.4.4): + - HMSSDK (0.4.5): - HMSWebRTC (= 1.0.4898) - HMSWebRTC (1.0.4898) - libevent (2.1.12) @@ -290,7 +290,7 @@ PODS: - React-Core - react-native-hms (0.9.94): - HMSBroadcastExtensionSDK (= 0.0.3) - - HMSSDK (= 0.4.4) + - HMSSDK (= 0.4.5) - React-Core - react-native-safe-area-context (3.4.1): - React-Core @@ -593,7 +593,7 @@ SPEC CHECKSUMS: glog: 73c2498ac6884b13ede40eda8228cb1eee9d9d62 hermes-engine: 7d97ba46a1e29bacf3e3c61ecb2804a5ddd02d4f HMSBroadcastExtensionSDK: a69a4503a1708b5d51e2890d70f574b9cdfea760 - HMSSDK: 2f42ddfa6aec368fe6f1abd91590faa6fa159100 + HMSSDK: 7a8f5503eedffc024b959988a5bd97427c5a4ede HMSWebRTC: d3a9b2866e4a36a1d3834728a548a4a46309bb86 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b @@ -613,7 +613,7 @@ SPEC CHECKSUMS: react-native-camera: 3eae183c1d111103963f3dd913b65d01aef8110f react-native-cameraroll: db9ebe8fc29baf68defdb1691fb6642e8a8ad04d react-native-document-picker: f68191637788994baed5f57d12994aa32cf8bf88 - react-native-hms: 2053e9d13973339658b496000e3bdac56d1d2046 + react-native-hms: b2376d842bbb8bc5b82ae6b201dc0977af7d4bfc react-native-safe-area-context: 9e40fb181dac02619414ba1294d6c2a807056ab9 react-native-simple-toast: 8ee5d23f0b92b935ab7434cdb65159ce12dfb4b7 react-native-video: c26780b224543c62d5e1b2a7244a5cd1b50e8253 diff --git a/example/ios/RNHMSExample.xcodeproj/project.pbxproj b/example/ios/RNHMSExample.xcodeproj/project.pbxproj index 359d41682..24cb8c9d9 100644 --- a/example/ios/RNHMSExample.xcodeproj/project.pbxproj +++ b/example/ios/RNHMSExample.xcodeproj/project.pbxproj @@ -833,6 +833,7 @@ CURRENT_PROJECT_VERSION = 113; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = 5N85PP82A9; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = RNHMSExampleBroadcastUpload/Info.plist; @@ -876,6 +877,7 @@ CURRENT_PROJECT_VERSION = 113; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = 5N85PP82A9; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = RNHMSExampleBroadcastUpload/Info.plist; diff --git a/react-native-hms.podspec b/react-native-hms.podspec index 23228d786..ca0473a12 100644 --- a/react-native-hms.podspec +++ b/react-native-hms.podspec @@ -16,6 +16,6 @@ Pod::Spec.new do |s| s.source_files = "ios/**/*.{h,m,mm,swift}" s.dependency "React-Core" - s.dependency "HMSSDK", "0.4.4" + s.dependency "HMSSDK", "0.4.5" s.dependency 'HMSBroadcastExtensionSDK', '0.0.3' end From 7f3a4c0358eb08c7a164678db16b43b9fef67627 Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Thu, 6 Oct 2022 14:58:09 +0530 Subject: [PATCH 17/84] feat: minimal app --- example/src/navigator/index.tsx | 3 +- .../screens/MeetingScreen/DisplayTrack.tsx | 135 +++ .../src/screens/MeetingScreen/GridView.tsx | 75 ++ example/src/screens/MeetingScreen/index.tsx | 643 +++++++++++++ example/src/screens/MeetingScreen/styles.ts | 864 ++++++++++++++++++ example/src/utils/functions.ts | 35 +- 6 files changed, 1753 insertions(+), 2 deletions(-) create mode 100644 example/src/screens/MeetingScreen/DisplayTrack.tsx create mode 100644 example/src/screens/MeetingScreen/GridView.tsx create mode 100644 example/src/screens/MeetingScreen/index.tsx create mode 100644 example/src/screens/MeetingScreen/styles.ts diff --git a/example/src/navigator/index.tsx b/example/src/navigator/index.tsx index e3f2b8965..03d9ced9c 100644 --- a/example/src/navigator/index.tsx +++ b/example/src/navigator/index.tsx @@ -2,7 +2,8 @@ import React from 'react'; import {createNativeStackNavigator} from '@react-navigation/native-stack'; import {NavigationContainer} from '@react-navigation/native'; import {Welcome} from '../screens/Welcome'; -import {Meeting} from '../screens/Meeting'; +import {Meeting} from '../screens/MeetingScreen/index'; +// import {Meeting} from '../screens/Meeting'; import {QRCode} from '../screens/QRCode'; import {QRCodeScanner} from '../screens/QRCodeScanner'; diff --git a/example/src/screens/MeetingScreen/DisplayTrack.tsx b/example/src/screens/MeetingScreen/DisplayTrack.tsx new file mode 100644 index 000000000..09909ba68 --- /dev/null +++ b/example/src/screens/MeetingScreen/DisplayTrack.tsx @@ -0,0 +1,135 @@ +import React, {useEffect, useState} from 'react'; +import {View, Text} from 'react-native'; +import { + HMSVideoViewMode, + HMSTrackSource, + HMSTrackType, + HMSVideoTrack, +} from '@100mslive/react-native-hms'; +import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'; +import {useSelector} from 'react-redux'; + +import {CustomButton} from '../../components'; +import {getInitials} from '../../utils/functions'; +import {styles} from './styles'; +import type {RootState} from '../../redux'; + +type DisplayTrackProps = { + // layout?: LayoutParams; + // miniView?: boolean; + // peerTrackNode: PeerTrackNode; + isLocal?: boolean; + peerName: string; + videoTrack?: HMSVideoTrack; + videoStyles: any; +}; + +const DisplayTrack = ({ + // layout, + // miniView, + // peerTrackNode, + isLocal, + peerName, + videoTrack, + videoStyles, +}: DisplayTrackProps) => { + // hooks + const {mirrorLocalVideo, hmsInstance} = useSelector( + (state: RootState) => state.user, + ); + + // useState hook + const [isDegraded, setIsDegraded] = useState(false); + + // constants + const HmsView = hmsInstance?.HmsView; + + // functions + const onEndScreenSharePress = () => { + hmsInstance + ?.stopScreenshare() + .then(d => console.log('Stop Screenshare Success: ', d)) + .catch(e => console.log('Stop Screenshare Error: ', e)); + }; + + // useEffect hook + useEffect(() => { + setIsDegraded(videoTrack?.isDegraded || false); + }, [videoTrack?.isDegraded]); + + return HmsView ? ( + + {isLocal && + videoTrack?.source === HMSTrackSource.SCREEN && + videoTrack?.type === HMSTrackType.VIDEO ? ( + + + + You are sharing your screen + + + + ) : videoTrack?.isMute() ? ( + // ) : isVideoMute || layout === LayoutParams.AUDIO ? ( + + + {getInitials(peerName)} + + + ) : ( + + + {isDegraded && ( + + + Degraded + + + )} + + )} + + + {videoTrack?.source === HMSTrackSource.SCREEN + ? `${peerName}'s Screen` + : isLocal + ? `You (${peerName})` + : peerName} + + + + ) : ( + <> + ); +}; + +export {DisplayTrack}; diff --git a/example/src/screens/MeetingScreen/GridView.tsx b/example/src/screens/MeetingScreen/GridView.tsx new file mode 100644 index 000000000..cc7bfe2bd --- /dev/null +++ b/example/src/screens/MeetingScreen/GridView.tsx @@ -0,0 +1,75 @@ +import React, {useRef} from 'react'; +import {View, FlatList, Dimensions, Text} from 'react-native'; +import {HMSTrackSource} from '@100mslive/react-native-hms'; +import {useSafeAreaInsets} from 'react-native-safe-area-context'; + +import {getHmsViewHeight} from '../../utils/functions'; +import {styles} from './styles'; +import {DisplayTrack} from './DisplayTrack'; +import {LayoutParams, ModalTypes, PeerTrackNode} from '../../utils/types'; + +type GridViewProps = { + pairedPeers: PeerTrackNode[][]; +}; + +const GridView = ({pairedPeers}: GridViewProps) => { + const {left, right, top, bottom} = useSafeAreaInsets(); + const flatlistRef = useRef(null); + + return ( + { + // const {contentOffset, layoutMeasurement} = nativeEvent; + // setPage(contentOffset.x / layoutMeasurement.width); + // }} + pagingEnabled + showsHorizontalScrollIndicator={false} + renderItem={(data: {item: Array; index: number}) => { + const {item, index} = data; + return ( + + {item?.map(view => { + return ( + + + + ); + })} + + ); + }} + numColumns={1} + keyExtractor={item => item[0]?.id} + /> + ); +}; +export {GridView}; diff --git a/example/src/screens/MeetingScreen/index.tsx b/example/src/screens/MeetingScreen/index.tsx new file mode 100644 index 000000000..506108016 --- /dev/null +++ b/example/src/screens/MeetingScreen/index.tsx @@ -0,0 +1,643 @@ +import { + HMSException, + HMSLocalPeer, + HMSPeer, + HMSPeerUpdate, + HMSRoom, + HMSRoomUpdate, + HMSSDK, + HMSTrack, + HMSTrackUpdate, + HMSUpdateListenerActions, +} from '@100mslive/react-native-hms'; +import React, {useEffect, useMemo, useRef, useState} from 'react'; +import {View, Text, SafeAreaView, Platform} from 'react-native'; +import Feather from 'react-native-vector-icons/Feather'; +import Ionicons from 'react-native-vector-icons/Ionicons'; +import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'; +import {useSafeAreaInsets} from 'react-native-safe-area-context'; +import {useDispatch, useSelector} from 'react-redux'; +import Toast from 'react-native-simple-toast'; +import {useNavigation} from '@react-navigation/native'; +import type {NativeStackNavigationProp} from '@react-navigation/native-stack'; + +import {styles} from './styles'; +import {CustomButton, DefaultModal, Menu, MenuItem} from '../../components'; +import {ModalTypes, PeerTrackNode} from '../../utils/types'; +import { + pairData, + parseMetadata, + updatePeersTrackNodesOnPeerListener, + updatePeersTrackNodesOnTrackListener, +} from '../../utils/functions'; +import {EndRoomModal, LeaveRoomModal, RealTime} from '../Meeting/Modals'; +import {RootState} from '../../redux'; +import type {AppStackParamList} from '../../navigator'; +import { + clearHmsReference, + clearMessageData, + clearPeerData, +} from '../../redux/actions'; +import {GridView} from './GridView'; + +type MeetingScreenProp = NativeStackNavigationProp< + AppStackParamList, + 'MeetingScreen' +>; + +const Meeting = () => { + const [modalVisible, setModalVisible] = useState( + ModalTypes.DEFAULT, + ); + + // useState hook + const [room, setRoom] = useState(); + const [localPeer, setLocalPeer] = useState(); + + return ( + +
+ +
+ + ); +}; + +const DisplayView = (data: { + room?: HMSRoom; + localPeer?: HMSLocalPeer; + modalVisible: ModalTypes; + setModalVisible: React.Dispatch>; + setRoom: React.Dispatch>; + setLocalPeer: React.Dispatch>; +}) => { + const {hmsInstance} = useSelector((state: RootState) => state.user); + const {peerState} = useSelector((state: RootState) => state.app); + const navigate = useNavigation().navigate; + const dispatch = useDispatch(); + + // useState hook + const [peerTrackNodes, setPeerTrackNodes] = + useState>(peerState); + + // useRef hook + const peerTrackNodesRef = useRef(peerTrackNodes); + + // constants + const pairedPeers = useMemo( + () => pairData(peerTrackNodes, 4), + [peerTrackNodes], + ); + + const onErrorListener = (error: HMSException) => { + if (Platform.OS === 'android') { + if (error?.code === 4005 || error?.code === 1003) { + destroy(); + } + } else { + if (error?.code === 2000) { + destroy(); + } + } + + Toast.showWithGravity( + `${error?.code} ${error?.description}` || 'Something went wrong', + Toast.LONG, + Toast.TOP, + ); + }; + + // const onRoomListener = ({ + // room, + // type, + // }: { + // room: HMSRoom; + // type: HMSRoomUpdate; + // }) => { + // data?.setRoom(room); + + // if (type === HMSRoomUpdate.BROWSER_RECORDING_STATE_UPDATED) { + // let streaming = room?.browserRecordingState?.running; + // let hours = room?.browserRecordingState?.startedAt.getHours().toString(); + // let minutes = room?.browserRecordingState?.startedAt + // .getMinutes() + // ?.toString(); + // let time = hours + ':' + minutes; + + // Toast.showWithGravity( + // `Browser Recording ${streaming ? 'Started At ' + time : 'Stopped'}`, + // Toast.LONG, + // Toast.TOP, + // ); + // } else if (type === HMSRoomUpdate.HLS_STREAMING_STATE_UPDATED) { + // let streaming = room?.hlsStreamingState?.running; + + // Toast.showWithGravity( + // `HLS Streaming ${streaming ? 'Started' : 'Stopped'}`, + // Toast.LONG, + // Toast.TOP, + // ); + // } else if (type === HMSRoomUpdate.RTMP_STREAMING_STATE_UPDATED) { + // let streaming = room?.rtmpHMSRtmpStreamingState?.running; + // let hours = room?.rtmpHMSRtmpStreamingState?.startedAt + // .getHours() + // .toString(); + // let minutes = room?.rtmpHMSRtmpStreamingState?.startedAt + // .getMinutes() + // ?.toString(); + // let time = hours + ':' + minutes; + + // Toast.showWithGravity( + // `RTMP Streaming ${streaming ? 'Started At ' + time : 'Stopped'}`, + // Toast.LONG, + // Toast.TOP, + // ); + // } else if (type === HMSRoomUpdate.SERVER_RECORDING_STATE_UPDATED) { + // let streaming = room?.serverRecordingState?.running; + // let hours = room?.serverRecordingState?.startedAt.getHours().toString(); + // let minutes = room?.serverRecordingState?.startedAt + // .getMinutes() + // ?.toString(); + // let time = hours + ':' + minutes; + + // Toast.showWithGravity( + // `Server Recording ${streaming ? 'Started At ' + time : 'Stopped'}`, + // Toast.LONG, + // Toast.TOP, + // ); + // } + // }; + + // const onPeerListener = ({ + // peer, + // type, + // }: { + // peer: HMSPeer; + // type: HMSPeerUpdate; + // }) => { + // const newPeerTrackNodes = updatePeersTrackNodesOnPeerListener( + // peerTrackNodesRef?.current, + // peer, + // type, + // ); + // setPeerTrackNodes(newPeerTrackNodes); + // peerTrackNodesRef.current = newPeerTrackNodes; + + // if (type === HMSPeerUpdate.PEER_LEFT) { + // Toast.showWithGravity( + // `Peer Left: ${peer.name} left the Room`, + // Toast.LONG, + // Toast.TOP, + // ); + // } else if (type === HMSPeerUpdate.PEER_JOINED) { + // Toast.showWithGravity( + // `Peer Joined: ${peer.name} joined the Room`, + // Toast.LONG, + // Toast.TOP, + // ); + // } else if (type === HMSPeerUpdate.ROLE_CHANGED) { + // Toast.showWithGravity( + // `Role Changed: Role of ${peer?.name} changed to ${peer?.role?.name}`, + // Toast.LONG, + // Toast.TOP, + // ); + // } + // }; + + const onTrackListener = ({ + peer, + track, + type, + }: { + peer: HMSPeer; + track: HMSTrack; + type: HMSTrackUpdate; + }) => { + const newPeerTrackNodes = updatePeersTrackNodesOnTrackListener( + peerTrackNodesRef?.current, + track, + peer, + type, + ); + setPeerTrackNodes(newPeerTrackNodes); + peerTrackNodesRef.current = newPeerTrackNodes; + }; + + const onRemovedFromRoomListener = async () => { + await destroy(); + }; + + const updateHmsInstance = (hms?: HMSSDK) => { + // hms?.addEventListener( + // HMSUpdateListenerActions.ON_ROOM_UPDATE, + // onRoomListener, + // ); + // hms?.addEventListener( + // HMSUpdateListenerActions.ON_PEER_UPDATE, + // onPeerListener, + // ); + hms?.addEventListener( + HMSUpdateListenerActions.ON_TRACK_UPDATE, + onTrackListener, + ); + hms?.addEventListener(HMSUpdateListenerActions.ON_ERROR, onErrorListener); + hms?.addEventListener( + HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM, + onRemovedFromRoomListener, + ); + // hms?.addEventListener( + // HMSUpdateListenerActions.ON_MESSAGE, + // onMessageListener, + // ); + // hms?.addEventListener( + // HMSUpdateListenerActions.ON_SPEAKER, + // onSpeakerListener, + // ); + // hms?.addEventListener( + // HMSUpdateListenerActions.RECONNECTING, + // onReconnectingListener, + // ); + // hms?.addEventListener( + // HMSUpdateListenerActions.RECONNECTED, + // onReconnectedListener, + // ); + // hms?.addEventListener( + // HMSUpdateListenerActions.ON_ROLE_CHANGE_REQUEST, + // onRoleChangeRequestListener, + // ); + // hms?.addEventListener( + // HMSUpdateListenerActions.ON_CHANGE_TRACK_STATE_REQUEST, + // onChangeTrackStateRequestListener, + // ); + }; + + const destroy = async () => { + await hmsInstance + ?.destroy() + .then(s => console.log('Destroy Success: ', s)) + .catch(e => console.log('Destroy Error: ', e)); + dispatch(clearMessageData()); + dispatch(clearPeerData()); + dispatch(clearHmsReference()); + navigate('QRCodeScreen'); + }; + + const onLeavePress = async () => { + await hmsInstance + ?.leave() + .then(async d => { + console.log('Leave Success: ', d); + destroy(); + }) + .catch(e => console.log('Leave Error: ', e)); + }; + + const onEndRoomPress = async () => { + await hmsInstance + ?.endRoom('Host ended the room') + .then(async d => { + console.log('EndRoom Success: ', d); + destroy(); + }) + .catch(e => console.log('EndRoom Error: ', e)); + }; + + useEffect(() => { + updateHmsInstance(hmsInstance); + + return () => { + onLeavePress(); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + return ( + + {/* */} + + data?.setModalVisible(ModalTypes.DEFAULT)}> + data?.setModalVisible(ModalTypes.DEFAULT)} + /> + + data?.setModalVisible(ModalTypes.DEFAULT)}> + data?.setModalVisible(ModalTypes.DEFAULT)} + /> + + + ); +}; + +const Header = ({ + room, + localPeer, + modalVisible, + setModalVisible, +}: { + room?: HMSRoom; + localPeer?: HMSLocalPeer; + modalVisible: ModalTypes; + setModalVisible: React.Dispatch>; +}) => { + const {roomCode} = useSelector((state: RootState) => state.user); + + const iconSize = 20; + const isScreenShared = + localPeer?.auxiliaryTracks && localPeer?.auxiliaryTracks?.length > 0; + const parsedMetadata = parseMetadata(localPeer?.metadata); + + return ( + + + { + setModalVisible(ModalTypes.LEAVE_MENU); + }} + viewStyle={[styles.iconContainer, styles.leaveIcon]} + LeftIcon={ + + } + /> + } + onRequestClose={() => setModalVisible(ModalTypes.DEFAULT)} + style={styles.participantsMenuContainer}> + { + setModalVisible(ModalTypes.DEFAULT); + setTimeout(() => { + setModalVisible(ModalTypes.LEAVE_ROOM); + }, 500); + }}> + + + Leave Studio + + + {localPeer?.role?.permissions?.endRoom && ( + { + setModalVisible(ModalTypes.DEFAULT); + setTimeout(() => { + setModalVisible(ModalTypes.END_ROOM); + }, 500); + }}> + + + + End Session + + + + )} + + {room?.hlsStreamingState?.running ? ( + + + + Live + + + + ) : ( + {roomCode} + )} + + + {(room?.browserRecordingState?.running || + room?.hlsRecordingState?.running) && ( + + )} + {(room?.hlsStreamingState?.running || + room?.rtmpHMSRtmpStreamingState?.running) && ( + + )} + {isScreenShared && ( + + )} + console.log('onParticipantsPress')} + viewStyle={styles.iconContainer} + LeftIcon={ + + } + /> + console.log('onRaiseHandPress')} + viewStyle={[ + styles.iconContainer, + parsedMetadata?.isHandRaised && styles.iconMuted, + ]} + LeftIcon={ + + } + /> + { + setModalVisible(ModalTypes.CHAT); + // setNotification(false); + }} + viewStyle={styles.iconContainer} + LeftIcon={ + + {/* {notification && } */} + + + } + /> + {localPeer?.role?.publishSettings?.allowed?.includes('video') && ( + console.log('onSwitchCameraPress')} + viewStyle={styles.iconContainer} + LeftIcon={ + + } + /> + )} + + + ); +}; + +const Footer = ({ + room, + localPeer, + setModalVisible, +}: { + room?: HMSRoom; + localPeer?: HMSLocalPeer; + setModalVisible: React.Dispatch>; +}) => { + const {bottom, left, right} = useSafeAreaInsets(); + + const iconSize = 20; + const isScreenShared = + localPeer?.auxiliaryTracks && localPeer?.auxiliaryTracks?.length > 0; + + return ( + + + {localPeer?.role?.publishSettings?.allowed?.includes('audio') && ( + console.log('onMicStatusPress')} + viewStyle={[ + styles.iconContainer, + localPeer?.audioTrack?.isMute() && styles.iconMuted, + ]} + LeftIcon={ + + } + /> + )} + {localPeer?.role?.publishSettings?.allowed?.includes('video') && ( + console.log('onVideoStatusPress')} + viewStyle={[ + styles.iconContainer, + localPeer?.videoTrack?.isMute() && styles.iconMuted, + ]} + LeftIcon={ + + } + /> + )} + {localPeer?.role?.permissions?.hlsStreaming && + (room?.hlsStreamingState?.running ? ( + setModalVisible(ModalTypes.END_HLS_STREAMING)} + viewStyle={styles.endLiveIconContainer} + LeftIcon={ + + } + /> + ) : ( + console.log('onGoLivePress')} + viewStyle={styles.goLiveIconContainer} + LeftIcon={ + + } + /> + ))} + console.log('onEndScreenSharePress') + : () => console.log('onStartScreenSharePress') + } + viewStyle={[styles.iconContainer, isScreenShared && styles.iconMuted]} + LeftIcon={ + + } + /> + console.log('onSettingsPress')} + viewStyle={styles.iconContainer} + LeftIcon={ + + } + /> + + {localPeer?.role?.permissions?.hlsStreaming && + (room?.hlsStreamingState?.running ? ( + End stream + ) : ( + Go Live + ))} + + ); +}; + +export {Meeting}; diff --git a/example/src/screens/MeetingScreen/styles.ts b/example/src/screens/MeetingScreen/styles.ts new file mode 100644 index 000000000..940b1633f --- /dev/null +++ b/example/src/screens/MeetingScreen/styles.ts @@ -0,0 +1,864 @@ +import {Platform, StyleSheet} from 'react-native'; + +import {COLORS, FONTS} from '../../utils/theme'; + +const styles = StyleSheet.create({ + container: { + flex: 1, + backgroundColor: COLORS.BACKGROUND.DEFAULT, + }, + videoIcon: { + color: COLORS.PRIMARY.DEFAULT, + }, + labelContainer: { + position: 'absolute', + left: 0, + top: 0, + flexDirection: 'row', + padding: 10, + }, + raiseHand: { + color: COLORS.INDICATORS.WARNING, + }, + degraded: { + color: COLORS.INDICATORS.ERROR, + }, + generalTile: { + height: '100%', + width: '100%', + marginVertical: 1, + padding: '0.25%', + overflow: 'hidden', + borderRadius: 20, + }, + hmsView: { + height: '100%', + width: '100%', + }, + hmsViewScreen: { + width: '100%', + height: '100%', + }, + wrapper: { + flex: 1, + overflow: 'hidden', + }, + displayContainer: { + position: 'absolute', + top: 4, + alignSelf: 'center', + padding: 8, + borderRadius: 8, + flexDirection: 'column', + alignItems: 'center', + zIndex: 3, + }, + peerName: { + color: COLORS.TEXT.HIGH_EMPHASIS, + fontFamily: 'Inter-Regular', + paddingRight: 8, + }, + peerNameContainer: { + position: 'absolute', + bottom: 8, + left: 8, + backgroundColor: COLORS.BLACK, + paddingHorizontal: 8, + paddingVertical: 4, + flexDirection: 'row', + alignItems: 'center', + borderRadius: 12, + }, + micContainer: { + position: 'absolute', + top: 8, + right: 8, + height: 40, + aspectRatio: 1, + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'center', + borderRadius: 40, + backgroundColor: COLORS.BLACK, + }, + mic: { + color: COLORS.TEXT.HIGH_EMPHASIS, + }, + avatarContainer: { + flex: 1, + backgroundColor: COLORS.SURFACE.DEFAULT, + alignItems: 'center', + justifyContent: 'center', + }, + degradedContainer: { + position: 'absolute', + height: '100%', + width: '100%', + backgroundColor: COLORS.BLACK, + zIndex: 2, + }, + avatar: { + aspectRatio: 1, + width: '50%', + maxWidth: 100, + maxHeight: 100, + borderRadius: 500, + alignItems: 'center', + justifyContent: 'center', + backgroundColor: COLORS.PRIMARY.DEFAULT, + }, + avatarText: { + color: COLORS.WHITE, + ...FONTS.H4, + }, + degradedText: { + color: COLORS.WHITE, + ...FONTS.H6, + }, + highlight: { + borderRadius: 10, + borderWidth: 5, + borderColor: COLORS.PRIMARY.DEFAULT, + }, + messageDot: { + position: 'absolute', + right: 0, + top: 0, + height: 10, + aspectRatio: 1, + borderRadius: 20, + zIndex: 2, + backgroundColor: COLORS.PRIMARY.DEFAULT, + }, + options: { + color: COLORS.PRIMARY.DEFAULT, + }, + optionsContainer: { + padding: 10, + position: 'absolute', + right: 0, + top: 0, + }, + roleChangeText: { + paddingVertical: 12, + fontFamily: 'Inter-Regular', + color: COLORS.TEXT.MEDIUM_EMPHASIS, + }, + headerName: { + color: COLORS.PRIMARY.DEFAULT, + fontFamily: 'Inter-Bold', + paddingLeft: 8, + }, + headerIcon: { + padding: 10, + }, + headerContainer: { + height: 50, + justifyContent: 'space-between', + flexDirection: 'row', + alignItems: 'center', + paddingHorizontal: 16, + }, + page: { + flexDirection: 'row', + width: 414, + flexWrap: 'wrap', + }, + input: { + borderWidth: 1, + borderRadius: 10, + borderColor: COLORS.BORDER.LIGHT, + paddingLeft: 10, + minHeight: 32, + color: COLORS.PRIMARY.DEFAULT, + marginVertical: 10, + }, + recordingDetails: { + flexDirection: 'row', + justifyContent: 'space-around', + padding: 10, + }, + checkboxContainer: { + height: 25, + width: 25, + borderColor: COLORS.TEXT.MEDIUM_EMPHASIS, + borderWidth: 2, + borderRadius: 25, + justifyContent: 'center', + alignItems: 'center', + }, + checkbox: { + color: COLORS.TEXT.MEDIUM_EMPHASIS, + }, + closeButton: { + zIndex: 2, + position: 'absolute', + left: 2, + top: 0, + height: 50, + width: 50, + }, + flex: { + flex: 1, + }, + renderVideo: { + height: '100%', + width: '100%', + justifyContent: 'center', + alignItems: 'center', + }, + // brbContainer: { + // flex: 1, + // justifyContent: 'center', + // paddingHorizontal: 5, + // borderRadius: 10, + // borderWidth: 1, + // borderColor: COLORS.PRIMARY.DEFAULT, + // }, + // brb: { + // color: COLORS.PRIMARY.DEFAULT, + // fontFamily: 'Inter-Bold', + // }, + brbOnContainer: { + height: 25, + justifyContent: 'center', + alignItems: 'center', + paddingHorizontal: 5, + borderRadius: 3, + borderWidth: 1, + borderColor: COLORS.TEXT.HIGH_EMPHASIS, + }, + brbOn: { + color: COLORS.TEXT.HIGH_EMPHASIS, + fontFamily: 'Inter-Regular', + }, + statsContainer: { + position: 'absolute', + zIndex: 1, + backgroundColor: COLORS.OVERLAY, + padding: 5, + borderRadius: 10, + margin: 1, + }, + statsText: { + color: COLORS.WHITE, + fontFamily: 'Inter-Bold', + fontSize: 16, + }, + heroContainer: { + width: '100%', + height: '100%', + }, + heroContainerLandscaspe: { + flexDirection: 'row', + }, + heroView: { + height: '100%', + width: '100%', + marginVertical: 1, + padding: '0.25%', + overflow: 'hidden', + borderRadius: 10, + }, + heroTileContainer: { + height: '70%', + width: '100%', + marginVertical: 1, + padding: '0.25%', + overflow: 'hidden', + borderRadius: 10, + }, + heroTileContainerLandscaspe: { + height: '100%', + width: '80%', + }, + heroTileContainerSingle: { + height: '100%', + width: '100%', + marginVertical: 1, + padding: '0.25%', + overflow: 'hidden', + borderRadius: 10, + }, + heroListContainer: { + width: '100%', + height: '30%', + }, + heroListContainerLandscaspe: { + width: '20%', + height: '100%', + }, + heroListView: { + width: 150, + height: '100%', + }, + heroListViewLandscaspe: { + height: 250, + width: '100%', + }, + mainTileContainer: { + height: '100%', + width: '100%', + zIndex: 2, + }, + miniTileContainer: { + position: 'absolute', + bottom: 10, + right: 10, + width: '40%', + height: '40%', + borderWidth: 2, + borderRadius: 10, + borderColor: COLORS.WHITE, + zIndex: 3, + }, + miniTileContainerLandscape: { + width: '20%', + height: '80%', + }, + heroListViewContainer: { + marginHorizontal: 1, + borderRadius: 10, + overflow: 'hidden', + }, + heroListViewContainerLandscaspe: { + marginVertical: 1, + }, + network: { + height: 25, + width: 25, + }, + interRegular: { + fontFamily: 'Inter-Regular', + color: COLORS.TEXT.MEDIUM_EMPHASIS, + }, + status: { + position: 'absolute', + flexDirection: 'row', + top: 8, + left: 8, + }, + resolutionContainer: { + padding: 16, + }, + resolutionDetails: { + flexDirection: 'row', + }, + resolutionValue: { + fontFamily: 'Inter-Regular', + paddingLeft: 16, + color: COLORS.TEXT.MEDIUM_EMPHASIS, + }, + iconContainer: { + backgroundColor: COLORS.BACKGROUND.DEFAULT, + borderColor: COLORS.BORDER.LIGHT, + borderWidth: 1, + width: 30, + height: 30, + justifyContent: 'center', + alignItems: 'center', + borderRadius: 12, + marginHorizontal: 6, + }, + leaveIcon: { + backgroundColor: COLORS.INDICATORS.ERROR, + borderColor: COLORS.INDICATORS.ERROR, + }, + roomStatus: { + color: COLORS.INDICATORS.ERROR, + marginHorizontal: 6, + }, + iconTopWrapper: { + height: 50, + width: '100%', + // position: 'absolute', + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + backgroundColor: COLORS.OVERLAY, + zIndex: 1, + }, + iconTopSubWrapper: { + flexDirection: 'row', + alignItems: 'center', + }, + iconMuted: { + backgroundColor: COLORS.BORDER.LIGHT, + }, + icon: { + color: COLORS.TEXT.HIGH_EMPHASIS, + }, + handRaised: { + color: COLORS.INDICATORS.WARNING, + }, + iconBotttomButtonWrapper: { + flex: 1, + width: '100%', + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + }, + iconBotttomWrapper: { + height: 50, + // position: 'absolute', + width: '100%', + paddingVertical: 4, + backgroundColor: COLORS.OVERLAY, + zIndex: 2, + borderRadius: 16, + }, + iconBotttomWrapperHls: { + height: 110, + // position: 'absolute', + width: '100%', + paddingVertical: 4, + backgroundColor: COLORS.OVERLAY, + zIndex: 2, + borderRadius: 16, + }, + goLiveIconContainer: { + backgroundColor: COLORS.PRIMARY.DEFAULT, + width: 80, + height: 80, + justifyContent: 'center', + alignItems: 'center', + borderRadius: 54, + marginHorizontal: 6, + }, + endLiveIconContainer: { + backgroundColor: COLORS.INDICATORS.ERROR, + width: 80, + height: 80, + justifyContent: 'center', + alignItems: 'center', + borderRadius: 54, + marginHorizontal: 6, + }, + liveText: { + fontFamily: 'Inter-Medium', + fontSize: 10, + lineHeight: 16, + textAlign: 'center', + letterSpacing: 1.5, + textTransform: 'uppercase', + color: COLORS.TEXT.HIGH_EMPHASIS, + marginTop: 4, + }, + participantContainer: { + height: '100%', + width: '100%', + }, + participantsSearchInput: { + backgroundColor: COLORS.SURFACE.DEFAULT, + borderColor: COLORS.BORDER.LIGHT, + borderWidth: 1, + width: '100%', + borderRadius: 8, + paddingVertical: 12, + paddingLeft: 48, + color: COLORS.TEXT.HIGH_EMPHASIS, + fontFamily: 'Inter-Medium', + }, + participantsSearchInputIcon: { + position: 'absolute', + top: 12, + bottom: 12, + left: 16, + right: 16, + color: COLORS.TEXT.MEDIUM_EMPHASIS, + width: 24, + }, + participantsHeaderContainer: { + height: 48, + width: '80%', + marginBottom: 24, + flexDirection: 'row', + alignItems: 'center', + }, + participantsHeading: { + fontFamily: 'Inter-Medium', + fontSize: 20, + lineHeight: 24, + letterSpacing: 0.15, + color: COLORS.TEXT.HIGH_EMPHASIS, + paddingRight: 12, + }, + participantItem: { + height: 68, + flexDirection: 'row', + alignItems: 'center', + marginVertical: 4, + }, + participantAvatar: { + height: 32, + width: 32, + borderRadius: 32, + backgroundColor: COLORS.PRIMARY.DEFAULT, + marginRight: 16, + alignItems: 'center', + justifyContent: 'center', + }, + participantDescription: { + flex: 1, + flexDirection: 'column', + }, + participantAvatarText: { + color: COLORS.TEXT.HIGH_EMPHASIS, + fontSize: 12, + lineHeight: 16, + letterSpacing: 0.4, + fontFamily: 'Inter-Medium', + }, + participantName: { + color: COLORS.TEXT.HIGH_EMPHASIS, + fontSize: 16, + lineHeight: 24, + letterSpacing: 0.15, + fontFamily: 'Inter-Medium', + textTransform: 'capitalize', + }, + participantRole: { + color: COLORS.TEXT.MEDIUM_EMPHASIS, + fontSize: 12, + lineHeight: 16, + letterSpacing: 0.4, + fontFamily: 'Inter-Regular', + textTransform: 'capitalize', + }, + participantSettings: { + width: 40, + height: 40, + justifyContent: 'center', + alignItems: 'center', + borderRadius: 12, + marginHorizontal: 6, + }, + participantsMenuContainer: { + backgroundColor: COLORS.SURFACE.LIGHT, + }, + participantMenuItem: { + flexDirection: 'row', + alignItems: 'center', + paddingLeft: Platform.OS === 'ios' ? 16 : 0, + }, + participantMenuItemIcon: { + color: COLORS.WHITE, + paddingRight: 16, + height: 24, + }, + participantMenuItemName: { + color: COLORS.TEXT.HIGH_EMPHASIS, + fontSize: 14, + lineHeight: 20, + letterSpacing: 0.1, + fontFamily: 'Inter-Medium', + textTransform: 'capitalize', + }, + participantRolePickerContainer: { + backgroundColor: COLORS.SURFACE.LIGHT, + borderColor: COLORS.BORDER.LIGHT, + borderWidth: 1, + height: 56, + borderRadius: 8, + marginTop: 24, + }, + participantRolePicker: { + color: COLORS.TEXT.HIGH_EMPHASIS, + fontSize: 16, + lineHeight: 24, + letterSpacing: 0.5, + fontFamily: 'Inter-Regular', + }, + roleChangeModalHeading: { + color: COLORS.TEXT.HIGH_EMPHASIS, + fontSize: 20, + lineHeight: 24, + letterSpacing: 0.15, + fontFamily: 'Inter-Medium', + textTransform: 'capitalize', + }, + roleChangeModalDescription: { + color: COLORS.TEXT.MEDIUM_EMPHASIS, + fontSize: 12, + lineHeight: 16, + letterSpacing: 0.4, + fontFamily: 'Inter-Regular', + paddingTop: 8, + }, + roleChangeModalPermission: { + color: COLORS.TEXT.HIGH_EMPHASIS, + fontSize: 14, + lineHeight: 20, + letterSpacing: 0.25, + fontFamily: 'Inter-Regular', + }, + roleChangeModalPermissionContainer: { + flexDirection: 'row', + marginTop: 24, + alignItems: 'center', + }, + roleChangeModalButtonText: { + color: COLORS.TEXT.HIGH_EMPHASIS, + fontSize: 16, + lineHeight: 24, + letterSpacing: 0.5, + fontFamily: 'Inter-Medium', + textTransform: 'capitalize', + }, + roleChangeModalCheckBox: { + height: 20, + aspectRatio: 1, + borderWidth: 2, + borderColor: COLORS.TEXT.HIGH_EMPHASIS, + marginRight: 12, + justifyContent: 'center', + alignItems: 'center', + }, + roleChangeModalCheck: { + color: COLORS.TEXT.HIGH_EMPHASIS, + }, + roleChangeModalCancelButton: { + backgroundColor: COLORS.SECONDARY.DISABLED, + borderColor: COLORS.SECONDARY.DISABLED, + paddingHorizontal: 16, + paddingVertical: 8, + justifyContent: 'center', + alignItems: 'center', + borderWidth: 1, + borderRadius: 8, + width: '48%', + alignSelf: 'center', + marginRight: '4%', + }, + roleChangeModalSuccessButton: { + backgroundColor: COLORS.PRIMARY.DEFAULT, + paddingHorizontal: 16, + paddingVertical: 8, + justifyContent: 'center', + alignItems: 'center', + borderWidth: 1, + borderColor: COLORS.PRIMARY.DEFAULT, + borderRadius: 8, + width: '48%', + alignSelf: 'center', + }, + roleChangeModal: { + padding: 24, + }, + participantFilterContainer: { + padding: 8, + flexDirection: 'row', + alignItems: 'center', + width: 120, + borderWidth: 1, + borderColor: COLORS.BORDER.LIGHT, + borderRadius: 8, + }, + participantFilterText: { + color: COLORS.TEXT.HIGH_EMPHASIS, + fontFamily: 'Inter-Regular', + fontSize: 12, + lineHeight: 16, + letterSpacing: 0.4, + marginRight: 12, + textTransform: 'capitalize', + }, + participantFilterIcon: { + color: COLORS.TEXT.HIGH_EMPHASIS, + position: 'absolute', + right: 0, + }, + volumeModalContainer: { + padding: 24, + }, + volumeModalDivider: { + height: 1, + backgroundColor: COLORS.BORDER.LIGHT, + width: '100%', + marginTop: 8, + marginBottom: 12, + }, + volumeModalSlider: { + width: '100%', + marginTop: 24, + }, + participantChangeNameInput: { + backgroundColor: COLORS.SURFACE.LIGHT, + borderColor: COLORS.BORDER.LIGHT, + borderWidth: 1, + width: '100%', + borderRadius: 8, + paddingVertical: 12, + paddingLeft: 12, + color: COLORS.TEXT.HIGH_EMPHASIS, + fontFamily: 'Inter-Medium', + }, + error: { + color: COLORS.INDICATORS.ERROR, + }, + participantChangeRoleContainer: { + padding: 8, + flexDirection: 'row', + alignItems: 'center', + width: '100%', + marginTop: 24, + borderWidth: 1, + borderColor: COLORS.BORDER.LIGHT, + borderRadius: 8, + height: 48, + backgroundColor: COLORS.SURFACE.LIGHT, + }, + statsModalContainer: { + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + }, + statsModalText: { + fontFamily: 'Inter-Medium', + fontSize: 16, + lineHeight: 24, + letterSpacing: 0.15, + color: COLORS.TEXT.HIGH_EMPHASIS, + }, + statsModalCheckbox: { + height: 25, + width: 25, + borderWidth: 2, + borderColor: COLORS.TEXT.HIGH_EMPHASIS, + justifyContent: 'center', + alignItems: 'center', + }, + statsModalCheck: { + color: COLORS.TEXT.HIGH_EMPHASIS, + }, + statsModalMenu: { + padding: 8, + flexDirection: 'row', + alignItems: 'center', + width: '100%', + marginTop: 24, + borderWidth: 1, + borderColor: COLORS.BORDER.LIGHT, + borderRadius: 8, + backgroundColor: COLORS.SURFACE.LIGHT, + height: 48, + }, + statsModalCardContainer: { + flexDirection: 'row', + flexWrap: 'wrap', + justifyContent: 'space-between', + }, + statsModalCard: { + minHeight: 80, + backgroundColor: COLORS.SURFACE.LIGHT, + width: '47%', + padding: 16, + borderRadius: 12, + marginTop: 24, + }, + statsModalCardHeading: { + fontFamily: 'Inter-Medium', + fontSize: 10, + lineHeight: 16, + letterSpacing: 1.5, + textTransform: 'uppercase', + color: COLORS.TEXT.MEDIUM_EMPHASIS, + }, + statsModalCardDescription: { + fontFamily: 'Inter-Medium', + fontSize: 16, + lineHeight: 24, + letterSpacing: 0.15, + textTransform: 'uppercase', + color: COLORS.TEXT.HIGH_EMPHASIS, + paddingTop: 8, + }, + errorContainer: { + backgroundColor: COLORS.INDICATORS.ERROR, + borderColor: COLORS.INDICATORS.ERROR, + }, + picker: { + backgroundColor: COLORS.SURFACE.LIGHT, + height: 48, + borderRadius: 8, + }, + sortingButtonContainer: { + flexDirection: 'row', + alignItems: 'center', + }, + checkboxButtonContainer: { + flexDirection: 'row', + alignItems: 'center', + marginTop: 8, + }, + changeTrackStateRoleOption: { + flexDirection: 'row', + marginRight: 8, + }, + changeTrackStateRoleOptionHeading: { + color: COLORS.TEXT.HIGH_EMPHASIS, + fontSize: 16, + lineHeight: 20, + letterSpacing: 0.25, + fontFamily: 'Inter-Medium', + marginRight: 8, + }, + backButton: { + backgroundColor: COLORS.SECONDARY.DISABLED, + borderColor: COLORS.SECONDARY.DISABLED, + paddingHorizontal: 16, + paddingVertical: 8, + justifyContent: 'center', + alignItems: 'center', + borderWidth: 1, + borderRadius: 8, + width: '100%', + alignSelf: 'center', + marginRight: '4%', + }, + liveTextContainer: { + flexDirection: 'row', + alignItems: 'center', + }, + liveStatus: { + height: 10, + aspectRatio: 1, + borderRadius: 10, + backgroundColor: COLORS.BACKGROUND.ERROR, + marginRight: 8, + }, + liveTimeText: { + color: COLORS.TEXT.MEDIUM_EMPHASIS, + fontSize: 12, + lineHeight: 16, + fontFamily: 'Inter-Regular', + letterSpacing: 0.4, + }, + screenshareContainer: { + backgroundColor: COLORS.SURFACE.DEFAULT, + flex: 1, + justifyContent: 'center', + alignItems: 'center', + }, + screenshareText: { + color: COLORS.TEXT.HIGH_EMPHASIS, + fontSize: 20, + lineHeight: 24, + letterSpacing: 0.15, + fontFamily: 'Inter-Medium', + marginTop: 16, + }, + screenshareButton: { + backgroundColor: COLORS.INDICATORS.ERROR, + borderColor: COLORS.INDICATORS.ERROR, + justifyContent: 'center', + alignItems: 'center', + borderWidth: 1, + borderRadius: 8, + width: '60%', + alignSelf: 'center', + marginTop: 48, + }, +}); + +export {styles}; diff --git a/example/src/utils/functions.ts b/example/src/utils/functions.ts index da5f415b2..583c208f5 100644 --- a/example/src/utils/functions.ts +++ b/example/src/utils/functions.ts @@ -112,7 +112,7 @@ export const getHmsViewHeight = ( const viewHeight = (Dimensions.get('window').height - (50 + - 110 + + 50 + (isTab ? 20 : top + bottom) + 2 + (orientation || Platform.OS === 'ios' ? 0 : 20))) / @@ -595,3 +595,36 @@ export const createPeerTrackNode = ( track: customTrack, }; }; + +export const pairData = ( + unGroupedPeerTrackNodes: PeerTrackNode[], + batch: number, +) => { + const pairedDataRegular: Array> = []; + const pairedDataSource: Array> = []; + let groupedPeerTrackNodes: Array = []; + let itemsPushed: number = 0; + + unGroupedPeerTrackNodes.map((item: PeerTrackNode) => { + if ( + item.track?.source !== HMSTrackSource.REGULAR && + item.track?.source !== undefined + ) { + pairedDataSource.push([item]); + } else { + if (itemsPushed === batch) { + pairedDataRegular.push(groupedPeerTrackNodes); + groupedPeerTrackNodes = []; + itemsPushed = 0; + } + groupedPeerTrackNodes.push(item); + itemsPushed++; + } + }); + + if (groupedPeerTrackNodes.length) { + pairedDataRegular.push(groupedPeerTrackNodes); + } + + return [...pairedDataSource, ...pairedDataRegular]; +}; From 033f519aa48b1bd442f3d6847f70018b2ab451dc Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Thu, 6 Oct 2022 15:30:33 +0530 Subject: [PATCH 18/84] feat: minimal app audio video fixes --- example/src/screens/MeetingScreen/index.tsx | 23 +++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/example/src/screens/MeetingScreen/index.tsx b/example/src/screens/MeetingScreen/index.tsx index 506108016..72f9eb058 100644 --- a/example/src/screens/MeetingScreen/index.tsx +++ b/example/src/screens/MeetingScreen/index.tsx @@ -236,6 +236,15 @@ const DisplayView = (data: { type, ); setPeerTrackNodes(newPeerTrackNodes); + if (peer?.isLocal) { + data?.setLocalPeer( + new HMSLocalPeer({ + ...peer, + localAudioTrackData: peer.audioTrack, + localVideoTrackData: peer.videoTrack, + }), + ); + } peerTrackNodesRef.current = newPeerTrackNodes; }; @@ -547,7 +556,12 @@ const Footer = ({ {localPeer?.role?.publishSettings?.allowed?.includes('audio') && ( console.log('onMicStatusPress')} + // onPress={() => console.log('onMicStatusPress')} + onPress={() => + localPeer + ?.localAudioTrack() + ?.setMute(!localPeer?.audioTrack?.isMute()) + } viewStyle={[ styles.iconContainer, localPeer?.audioTrack?.isMute() && styles.iconMuted, @@ -563,7 +577,12 @@ const Footer = ({ )} {localPeer?.role?.publishSettings?.allowed?.includes('video') && ( console.log('onVideoStatusPress')} + // onPress={() => console.log('onVideoStatusPress')} + onPress={() => + localPeer + ?.localVideoTrack() + ?.setMute(!localPeer?.videoTrack?.isMute()) + } viewStyle={[ styles.iconContainer, localPeer?.videoTrack?.isMute() && styles.iconMuted, From dd43b90788407732560688d89b4994d6b0b9c4af Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Thu, 6 Oct 2022 18:07:08 +0530 Subject: [PATCH 19/84] =?UTF-8?q?released=20sample=20app=20version=202.0.9?= =?UTF-8?q?(114)=20=E2=9A=9B=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/android/app/build.gradle | 4 ++-- example/ios/RNHMSExample.xcodeproj/project.pbxproj | 8 ++++---- example/ios/RNHMSExample/Info.plist | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index d2f4f8715..43fcbc504 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -136,8 +136,8 @@ android { applicationId "live.hms.rn" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 113 - versionName "2.0.8" + versionCode 114 + versionName "2.0.9" missingDimensionStrategy 'react-native-camera', 'general' } splits { diff --git a/example/ios/RNHMSExample.xcodeproj/project.pbxproj b/example/ios/RNHMSExample.xcodeproj/project.pbxproj index 24cb8c9d9..9c38ad257 100644 --- a/example/ios/RNHMSExample.xcodeproj/project.pbxproj +++ b/example/ios/RNHMSExample.xcodeproj/project.pbxproj @@ -622,7 +622,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 113; + CURRENT_PROJECT_VERSION = 114; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -663,7 +663,7 @@ CODE_SIGN_ENTITLEMENTS = RNHMSExample/RNHMSExample.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 113; + CURRENT_PROJECT_VERSION = 114; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -830,7 +830,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 113; + CURRENT_PROJECT_VERSION = 114; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = 5N85PP82A9; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -874,7 +874,7 @@ CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 113; + CURRENT_PROJECT_VERSION = 114; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = 5N85PP82A9; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; diff --git a/example/ios/RNHMSExample/Info.plist b/example/ios/RNHMSExample/Info.plist index 074aec488..62ab0711d 100644 --- a/example/ios/RNHMSExample/Info.plist +++ b/example/ios/RNHMSExample/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.0.8 + 2.0.9 CFBundleSignature ???? CFBundleVersion - 113 + 114 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS From 49844ca26d1b19579478dd43446530498d4d8d35 Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Thu, 6 Oct 2022 20:19:19 +0530 Subject: [PATCH 20/84] fix: black tiles and ios buttons --- .../screens/MeetingScreen/DisplayTrack.tsx | 2 +- .../src/screens/MeetingScreen/GridView.tsx | 5 +- example/src/screens/MeetingScreen/index.tsx | 333 ++++++++++-------- 3 files changed, 194 insertions(+), 146 deletions(-) diff --git a/example/src/screens/MeetingScreen/DisplayTrack.tsx b/example/src/screens/MeetingScreen/DisplayTrack.tsx index 09909ba68..665442356 100644 --- a/example/src/screens/MeetingScreen/DisplayTrack.tsx +++ b/example/src/screens/MeetingScreen/DisplayTrack.tsx @@ -78,7 +78,7 @@ const DisplayTrack = ({ textStyle={styles.roleChangeModalButtonText} /> - ) : videoTrack?.isMute() ? ( + ) : videoTrack?.isMute() || videoTrack?.trackId === undefined ? ( // ) : isVideoMute || layout === LayoutParams.AUDIO ? ( diff --git a/example/src/screens/MeetingScreen/GridView.tsx b/example/src/screens/MeetingScreen/GridView.tsx index cc7bfe2bd..06099b138 100644 --- a/example/src/screens/MeetingScreen/GridView.tsx +++ b/example/src/screens/MeetingScreen/GridView.tsx @@ -1,18 +1,19 @@ import React, {useRef} from 'react'; -import {View, FlatList, Dimensions, Text} from 'react-native'; +import {View, FlatList, Dimensions} from 'react-native'; import {HMSTrackSource} from '@100mslive/react-native-hms'; import {useSafeAreaInsets} from 'react-native-safe-area-context'; import {getHmsViewHeight} from '../../utils/functions'; import {styles} from './styles'; import {DisplayTrack} from './DisplayTrack'; -import {LayoutParams, ModalTypes, PeerTrackNode} from '../../utils/types'; +import {LayoutParams, PeerTrackNode} from '../../utils/types'; type GridViewProps = { pairedPeers: PeerTrackNode[][]; }; const GridView = ({pairedPeers}: GridViewProps) => { + // hooks const {left, right, top, bottom} = useSafeAreaInsets(); const flatlistRef = useRef(null); diff --git a/example/src/screens/MeetingScreen/index.tsx b/example/src/screens/MeetingScreen/index.tsx index 72f9eb058..72d02d2d2 100644 --- a/example/src/screens/MeetingScreen/index.tsx +++ b/example/src/screens/MeetingScreen/index.tsx @@ -46,20 +46,19 @@ type MeetingScreenProp = NativeStackNavigationProp< >; const Meeting = () => { - const [modalVisible, setModalVisible] = useState( - ModalTypes.DEFAULT, - ); - // useState hook const [room, setRoom] = useState(); const [localPeer, setLocalPeer] = useState(); + const [modalVisible, setModalVisible] = useState( + ModalTypes.DEFAULT, + ); return (
{ setRoom={setRoom} setLocalPeer={setLocalPeer} /> -
+
); }; @@ -87,6 +82,7 @@ const DisplayView = (data: { setRoom: React.Dispatch>; setLocalPeer: React.Dispatch>; }) => { + // hooks const {hmsInstance} = useSelector((state: RootState) => state.user); const {peerState} = useSelector((state: RootState) => state.app); const navigate = useNavigation().navigate; @@ -105,6 +101,7 @@ const DisplayView = (data: { [peerTrackNodes], ); + // listeners const onErrorListener = (error: HMSException) => { if (Platform.OS === 'android') { if (error?.code === 4005 || error?.code === 1003) { @@ -123,102 +120,111 @@ const DisplayView = (data: { ); }; - // const onRoomListener = ({ - // room, - // type, - // }: { - // room: HMSRoom; - // type: HMSRoomUpdate; - // }) => { - // data?.setRoom(room); - - // if (type === HMSRoomUpdate.BROWSER_RECORDING_STATE_UPDATED) { - // let streaming = room?.browserRecordingState?.running; - // let hours = room?.browserRecordingState?.startedAt.getHours().toString(); - // let minutes = room?.browserRecordingState?.startedAt - // .getMinutes() - // ?.toString(); - // let time = hours + ':' + minutes; - - // Toast.showWithGravity( - // `Browser Recording ${streaming ? 'Started At ' + time : 'Stopped'}`, - // Toast.LONG, - // Toast.TOP, - // ); - // } else if (type === HMSRoomUpdate.HLS_STREAMING_STATE_UPDATED) { - // let streaming = room?.hlsStreamingState?.running; - - // Toast.showWithGravity( - // `HLS Streaming ${streaming ? 'Started' : 'Stopped'}`, - // Toast.LONG, - // Toast.TOP, - // ); - // } else if (type === HMSRoomUpdate.RTMP_STREAMING_STATE_UPDATED) { - // let streaming = room?.rtmpHMSRtmpStreamingState?.running; - // let hours = room?.rtmpHMSRtmpStreamingState?.startedAt - // .getHours() - // .toString(); - // let minutes = room?.rtmpHMSRtmpStreamingState?.startedAt - // .getMinutes() - // ?.toString(); - // let time = hours + ':' + minutes; - - // Toast.showWithGravity( - // `RTMP Streaming ${streaming ? 'Started At ' + time : 'Stopped'}`, - // Toast.LONG, - // Toast.TOP, - // ); - // } else if (type === HMSRoomUpdate.SERVER_RECORDING_STATE_UPDATED) { - // let streaming = room?.serverRecordingState?.running; - // let hours = room?.serverRecordingState?.startedAt.getHours().toString(); - // let minutes = room?.serverRecordingState?.startedAt - // .getMinutes() - // ?.toString(); - // let time = hours + ':' + minutes; - - // Toast.showWithGravity( - // `Server Recording ${streaming ? 'Started At ' + time : 'Stopped'}`, - // Toast.LONG, - // Toast.TOP, - // ); - // } - // }; - - // const onPeerListener = ({ - // peer, - // type, - // }: { - // peer: HMSPeer; - // type: HMSPeerUpdate; - // }) => { - // const newPeerTrackNodes = updatePeersTrackNodesOnPeerListener( - // peerTrackNodesRef?.current, - // peer, - // type, - // ); - // setPeerTrackNodes(newPeerTrackNodes); - // peerTrackNodesRef.current = newPeerTrackNodes; - - // if (type === HMSPeerUpdate.PEER_LEFT) { - // Toast.showWithGravity( - // `Peer Left: ${peer.name} left the Room`, - // Toast.LONG, - // Toast.TOP, - // ); - // } else if (type === HMSPeerUpdate.PEER_JOINED) { - // Toast.showWithGravity( - // `Peer Joined: ${peer.name} joined the Room`, - // Toast.LONG, - // Toast.TOP, - // ); - // } else if (type === HMSPeerUpdate.ROLE_CHANGED) { - // Toast.showWithGravity( - // `Role Changed: Role of ${peer?.name} changed to ${peer?.role?.name}`, - // Toast.LONG, - // Toast.TOP, - // ); - // } - // }; + const onRoomListener = ({ + room, + type, + }: { + room: HMSRoom; + type: HMSRoomUpdate; + }) => { + data?.setRoom(room); + + if (type === HMSRoomUpdate.BROWSER_RECORDING_STATE_UPDATED) { + let streaming = room?.browserRecordingState?.running; + let hours = room?.browserRecordingState?.startedAt.getHours().toString(); + let minutes = room?.browserRecordingState?.startedAt + .getMinutes() + ?.toString(); + let time = hours + ':' + minutes; + + Toast.showWithGravity( + `Browser Recording ${streaming ? 'Started At ' + time : 'Stopped'}`, + Toast.LONG, + Toast.TOP, + ); + } else if (type === HMSRoomUpdate.HLS_STREAMING_STATE_UPDATED) { + let streaming = room?.hlsStreamingState?.running; + + Toast.showWithGravity( + `HLS Streaming ${streaming ? 'Started' : 'Stopped'}`, + Toast.LONG, + Toast.TOP, + ); + } else if (type === HMSRoomUpdate.RTMP_STREAMING_STATE_UPDATED) { + let streaming = room?.rtmpHMSRtmpStreamingState?.running; + let hours = room?.rtmpHMSRtmpStreamingState?.startedAt + .getHours() + .toString(); + let minutes = room?.rtmpHMSRtmpStreamingState?.startedAt + .getMinutes() + ?.toString(); + let time = hours + ':' + minutes; + + Toast.showWithGravity( + `RTMP Streaming ${streaming ? 'Started At ' + time : 'Stopped'}`, + Toast.LONG, + Toast.TOP, + ); + } else if (type === HMSRoomUpdate.SERVER_RECORDING_STATE_UPDATED) { + let streaming = room?.serverRecordingState?.running; + let hours = room?.serverRecordingState?.startedAt.getHours().toString(); + let minutes = room?.serverRecordingState?.startedAt + .getMinutes() + ?.toString(); + let time = hours + ':' + minutes; + + Toast.showWithGravity( + `Server Recording ${streaming ? 'Started At ' + time : 'Stopped'}`, + Toast.LONG, + Toast.TOP, + ); + } + }; + + const onPeerListener = ({ + peer, + type, + }: { + peer: HMSPeer; + type: HMSPeerUpdate; + }) => { + const newPeerTrackNodes = updatePeersTrackNodesOnPeerListener( + peerTrackNodesRef?.current, + peer, + type, + ); + setPeerTrackNodes(newPeerTrackNodes); + peerTrackNodesRef.current = newPeerTrackNodes; + if (peer?.isLocal) { + data?.setLocalPeer( + new HMSLocalPeer({ + ...peer, + localAudioTrackData: peer.audioTrack, + localVideoTrackData: peer.videoTrack, + }), + ); + } + + if (type === HMSPeerUpdate.PEER_LEFT) { + Toast.showWithGravity( + `Peer Left: ${peer.name} left the Room`, + Toast.LONG, + Toast.TOP, + ); + } else if (type === HMSPeerUpdate.PEER_JOINED) { + Toast.showWithGravity( + `Peer Joined: ${peer.name} joined the Room`, + Toast.LONG, + Toast.TOP, + ); + } else if (type === HMSPeerUpdate.ROLE_CHANGED) { + Toast.showWithGravity( + `Role Changed: Role of ${peer?.name} changed to ${peer?.role?.name}`, + Toast.LONG, + Toast.TOP, + ); + } + }; const onTrackListener = ({ peer, @@ -236,6 +242,7 @@ const DisplayView = (data: { type, ); setPeerTrackNodes(newPeerTrackNodes); + peerTrackNodesRef.current = newPeerTrackNodes; if (peer?.isLocal) { data?.setLocalPeer( new HMSLocalPeer({ @@ -245,22 +252,22 @@ const DisplayView = (data: { }), ); } - peerTrackNodesRef.current = newPeerTrackNodes; }; const onRemovedFromRoomListener = async () => { await destroy(); }; + // functions const updateHmsInstance = (hms?: HMSSDK) => { - // hms?.addEventListener( - // HMSUpdateListenerActions.ON_ROOM_UPDATE, - // onRoomListener, - // ); - // hms?.addEventListener( - // HMSUpdateListenerActions.ON_PEER_UPDATE, - // onPeerListener, - // ); + hms?.addEventListener( + HMSUpdateListenerActions.ON_ROOM_UPDATE, + onRoomListener, + ); + hms?.addEventListener( + HMSUpdateListenerActions.ON_PEER_UPDATE, + onPeerListener, + ); hms?.addEventListener( HMSUpdateListenerActions.ON_TRACK_UPDATE, onTrackListener, @@ -327,9 +334,24 @@ const DisplayView = (data: { .catch(e => console.log('EndRoom Error: ', e)); }; + const updateLocalPeer = () => { + peerState.map(peerTrackNode => { + if (peerTrackNode?.peer?.isLocal) { + data?.setLocalPeer( + new HMSLocalPeer({ + ...peerTrackNode?.peer, + localAudioTrackData: peerTrackNode?.peer?.audioTrack, + localVideoTrackData: peerTrackNode?.peer?.videoTrack, + }), + ); + } + }); + }; + + // useEffect hook useEffect(() => { updateHmsInstance(hmsInstance); - + updateLocalPeer(); return () => { onLeavePress(); }; @@ -338,7 +360,6 @@ const DisplayView = (data: { return ( - {/* */} >; }) => { - const {roomCode} = useSelector((state: RootState) => state.user); + // hooks + const {roomCode, hmsInstance} = useSelector((state: RootState) => state.user); + // constants const iconSize = 20; const isScreenShared = localPeer?.auxiliaryTracks && localPeer?.auxiliaryTracks?.length > 0; const parsedMetadata = parseMetadata(localPeer?.metadata); + // functions + const onRaiseHandPress = async () => { + await hmsInstance + ?.changeMetadata( + JSON.stringify({ + ...parsedMetadata, + isHandRaised: !parsedMetadata?.isHandRaised, + isBRBOn: false, + }), + ) + .then(d => console.log('Change Metadata Success: ', d)) + .catch(e => console.log('Change Metadata Error: ', e)); + }; + + const onSwitchCameraPress = () => { + localPeer?.localVideoTrack()?.switchCamera(); + }; + return ( @@ -479,7 +520,7 @@ const Header = ({ } /> console.log('onRaiseHandPress')} + onPress={onRaiseHandPress} viewStyle={[ styles.iconContainer, parsedMetadata?.isHandRaised && styles.iconMuted, @@ -514,7 +555,7 @@ const Header = ({ /> {localPeer?.role?.publishSettings?.allowed?.includes('video') && ( console.log('onSwitchCameraPress')} + onPress={onSwitchCameraPress} viewStyle={styles.iconContainer} LeftIcon={ >; -}) => { - const {bottom, left, right} = useSafeAreaInsets(); +const Footer = ({localPeer}: {localPeer?: HMSLocalPeer}) => { + // hooks + const {hmsInstance} = useSelector((state: RootState) => state.user); + const {left, right} = useSafeAreaInsets(); + // constants const iconSize = 20; const isScreenShared = localPeer?.auxiliaryTracks && localPeer?.auxiliaryTracks?.length > 0; + // functions + const onStartScreenSharePress = () => { + hmsInstance + ?.startScreenshare() + .then(d => console.log('Start Screenshare Success: ', d)) + .catch(e => console.log('Start Screenshare Error: ', e)); + }; + + const onEndScreenSharePress = () => { + hmsInstance + ?.stopScreenshare() + .then(d => console.log('Stop Screenshare Success: ', d)) + .catch(e => console.log('Stop Screenshare Error: ', e)); + }; + return ( {localPeer?.role?.publishSettings?.allowed?.includes('audio') && ( console.log('onMicStatusPress')} onPress={() => localPeer ?.localAudioTrack() @@ -577,7 +627,6 @@ const Footer = ({ )} {localPeer?.role?.publishSettings?.allowed?.includes('video') && ( console.log('onVideoStatusPress')} onPress={() => localPeer ?.localVideoTrack() @@ -596,7 +645,7 @@ const Footer = ({ } /> )} - {localPeer?.role?.permissions?.hlsStreaming && + {/* {localPeer?.role?.permissions?.hlsStreaming && (room?.hlsStreamingState?.running ? ( setModalVisible(ModalTypes.END_HLS_STREAMING)} @@ -621,12 +670,10 @@ const Footer = ({ /> } /> - ))} + ))} */} console.log('onEndScreenSharePress') - : () => console.log('onStartScreenSharePress') + isScreenShared ? onEndScreenSharePress : onStartScreenSharePress } viewStyle={[styles.iconContainer, isScreenShared && styles.iconMuted]} LeftIcon={ @@ -649,12 +696,12 @@ const Footer = ({ } /> - {localPeer?.role?.permissions?.hlsStreaming && + {/* {localPeer?.role?.permissions?.hlsStreaming && (room?.hlsStreamingState?.running ? ( End stream ) : ( Go Live - ))} + ))} */} ); }; From 8b50e7cd84c6803c51fabe78cfbd131ec122679a Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Fri, 7 Oct 2022 12:05:58 +0530 Subject: [PATCH 21/84] feat: added enable and disable network quality API ios --- example/src/screens/MeetingScreen/index.tsx | 2 +- ios/HMSManager.m | 2 ++ ios/HMSManager.swift | 14 ++++++++++++++ ios/HMSRNSDK.swift | 17 ++++++++++++++++- 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/example/src/screens/MeetingScreen/index.tsx b/example/src/screens/MeetingScreen/index.tsx index 72d02d2d2..694e2c01e 100644 --- a/example/src/screens/MeetingScreen/index.tsx +++ b/example/src/screens/MeetingScreen/index.tsx @@ -31,7 +31,7 @@ import { updatePeersTrackNodesOnTrackListener, } from '../../utils/functions'; import {EndRoomModal, LeaveRoomModal, RealTime} from '../Meeting/Modals'; -import {RootState} from '../../redux'; +import type {RootState} from '../../redux'; import type {AppStackParamList} from '../../navigator'; import { clearHmsReference, diff --git a/ios/HMSManager.m b/ios/HMSManager.m index 60567ffad..b53489088 100644 --- a/ios/HMSManager.m +++ b/ios/HMSManager.m @@ -51,4 +51,6 @@ @interface RCT_EXTERN_MODULE(HMSManager, RCTEventEmitter) RCT_EXTERN_METHOD(getLocalPeer: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject) RCT_EXTERN_METHOD(getRemotePeers: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject) RCT_EXTERN_METHOD(getRoles: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject) +RCT_EXTERN_METHOD(enableNetworkQualityUpdates: (NSDictionary) data) +RCT_EXTERN_METHOD(disableNetworkQualityUpdates: (NSDictionary) data) @end diff --git a/ios/HMSManager.swift b/ios/HMSManager.swift index 6a56b8491..947656b83 100644 --- a/ios/HMSManager.swift +++ b/ios/HMSManager.swift @@ -365,6 +365,20 @@ class HMSManager: RCTEventEmitter { hms?.audioShareDuration(data, resolve, reject) } + @objc + func enableNetworkQualityUpdates(_ data: NSDictionary) { + let hms = HMSHelper.getHms(data, hmsCollection) + + hms?.enableNetworkQualityUpdates() + } + + @objc + func disableNetworkQualityUpdates(_ data: NSDictionary) { + let hms = HMSHelper.getHms(data, hmsCollection) + + hms?.disableNetworkQualityUpdates() + } + // MARK: - HMS SDK Get APIs @objc func getRoom(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) { diff --git a/ios/HMSRNSDK.swift b/ios/HMSRNSDK.swift index 3ad96d220..567697dcf 100644 --- a/ios/HMSRNSDK.swift +++ b/ios/HMSRNSDK.swift @@ -16,7 +16,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener { var recentRoleChangeRequest: HMSRoleChangeRequest? var delegate: HMSManager? var id: String = "12345" - var rtcStatsAttached = false var recentPreviewTracks: [HMSTrack]? = [] private var reconnectingStage: Bool = false private var preferredExtension: String? @@ -25,6 +24,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener { private var stopScreenshareResolve: RCTPromiseResolveBlock? private var isScreenShared: Bool? = false private var previewInProgress = false + private var rtcStatsAttached = false + private var networkQualityUpdatesAttached = false let ON_PREVIEW = "ON_PREVIEW" let ON_JOIN = "ON_JOIN" @@ -205,6 +206,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener { self?.stopScreenshareResolve = nil self?.startScreenshareResolve = nil self?.isScreenShared = false + self?.rtcStatsAttached = false + self?.networkQualityUpdatesAttached = false self?.hms?.leave({ success, error in if success { resolve?(["success": success]) @@ -975,6 +978,14 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener { reject?("AudioFilePlayerNode not found", "AudioFilePlayerNode not found", nil) } } + + func enableNetworkQualityUpdates() { + networkQualityUpdatesAttached = true + } + + func disableNetworkQualityUpdates() { + networkQualityUpdatesAttached = false + } // MARK: - HMS SDK Get APIs func getRoom(_ resolve: RCTPromiseResolveBlock?) { @@ -1027,6 +1038,10 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener { func on(peer: HMSPeer, update: HMSPeerUpdate) { let type = getString(from: update) let hmsPeer = HMSDecoder.getHmsPeer(peer) + + if(!networkQualityUpdatesAttached && update == .networkQualityUpdated){ + return + } self.delegate?.emitEvent(ON_PEER_UPDATE, ["event": ON_PEER_UPDATE, "id": self.id, "type": type, "peer": hmsPeer]) } From 077f442082797e31ce40ecac5fcb1f911a0edaf0 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Fri, 7 Oct 2022 18:03:17 +0530 Subject: [PATCH 22/84] added crashlytics --- example/android/app/build.gradle | 8 +- example/android/build.gradle | 4 +- example/ios/GoogleService-Info.plist | 34 + example/ios/Podfile | 1 + example/ios/Podfile.lock | 88 +- .../RNHMSExample.xcodeproj/project.pbxproj | 33 + example/package-lock.json | 887 +++++++++++++++++- example/package.json | 2 + 8 files changed, 1030 insertions(+), 27 deletions(-) create mode 100644 example/ios/GoogleService-Info.plist diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 43fcbc504..8a80db153 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -1,5 +1,6 @@ apply plugin: "com.android.application" - +apply plugin: 'com.google.gms.google-services' // apply after this line +apply plugin: 'com.google.firebase.crashlytics' import com.android.build.OutputFile /** @@ -167,7 +168,10 @@ android { minifyEnabled true signingConfig signingConfigs.debug proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" - + firebaseCrashlytics { + nativeSymbolUploadEnabled true + unstrippedNativeLibsDir 'build/intermediates/merged_native_libs/release/out/lib' + } } } diff --git a/example/android/build.gradle b/example/android/build.gradle index 4ee30cd12..15c8273f1 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -13,7 +13,9 @@ buildscript { } dependencies { classpath('com.android.tools.build:gradle:4.2.2') - // NOTE: Do not place your application dependencies here; they belong + classpath 'com.google.gms:google-services:4.3.14' + classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2' + // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } diff --git a/example/ios/GoogleService-Info.plist b/example/ios/GoogleService-Info.plist new file mode 100644 index 000000000..afb8c7355 --- /dev/null +++ b/example/ios/GoogleService-Info.plist @@ -0,0 +1,34 @@ + + + + + CLIENT_ID + 408505141940-blm1suumt10jel77l08ma9dnfl9954mn.apps.googleusercontent.com + REVERSED_CLIENT_ID + com.googleusercontent.apps.408505141940-blm1suumt10jel77l08ma9dnfl9954mn + API_KEY + AIzaSyDjQbqSjLomUlJdQ7qZBDdmGtjIOnl_WTQ + GCM_SENDER_ID + 408505141940 + PLIST_VERSION + 1 + BUNDLE_ID + live.100ms.reactnative + PROJECT_ID + reactnative-hms + STORAGE_BUCKET + reactnative-hms.appspot.com + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:408505141940:ios:1d2339892d9ffd8cc325e1 + + \ No newline at end of file diff --git a/example/ios/Podfile b/example/ios/Podfile index 4d55589b7..1e96697fe 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -9,6 +9,7 @@ target 'RNHMSExampleBroadcastUpload' do end target 'RNHMSExample' do + use_modular_headers! config = use_native_modules! permissions_path = '../node_modules/react-native-permissions/ios' diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 60a237f64..603656213 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -10,6 +10,37 @@ PODS: - React-Core (= 0.64.2) - React-jsi (= 0.64.2) - ReactCommon/turbomodule/core (= 0.64.2) + - Firebase/CoreOnly (9.6.0): + - FirebaseCore (= 9.6.0) + - Firebase/Crashlytics (9.6.0): + - Firebase/CoreOnly + - FirebaseCrashlytics (~> 9.6.0) + - FirebaseCore (9.6.0): + - FirebaseCoreDiagnostics (~> 9.0) + - FirebaseCoreInternal (~> 9.0) + - GoogleUtilities/Environment (~> 7.7) + - GoogleUtilities/Logger (~> 7.7) + - FirebaseCoreDiagnostics (9.6.0): + - GoogleDataTransport (< 10.0.0, >= 9.1.4) + - GoogleUtilities/Environment (~> 7.7) + - GoogleUtilities/Logger (~> 7.7) + - nanopb (< 2.30910.0, >= 2.30908.0) + - FirebaseCoreExtension (9.6.0): + - FirebaseCore (~> 9.0) + - FirebaseCoreInternal (9.6.0): + - "GoogleUtilities/NSData+zlib (~> 7.7)" + - FirebaseCrashlytics (9.6.0): + - FirebaseCore (~> 9.0) + - FirebaseInstallations (~> 9.0) + - GoogleDataTransport (< 10.0.0, >= 9.1.4) + - GoogleUtilities/Environment (~> 7.7) + - nanopb (< 2.30910.0, >= 2.30908.0) + - PromisesObjC (~> 2.1) + - FirebaseInstallations (9.6.0): + - FirebaseCore (~> 9.0) + - GoogleUtilities/Environment (~> 7.7) + - GoogleUtilities/UserDefaults (~> 7.7) + - PromisesObjC (~> 2.1) - Flipper (0.75.1): - Flipper-Folly (~> 2.5) - Flipper-RSocket (~> 1.3) @@ -57,17 +88,34 @@ PODS: - FlipperKit/Core - FlipperKit/FlipperKitNetworkPlugin - glog (0.3.5) + - GoogleDataTransport (9.2.0): + - GoogleUtilities/Environment (~> 7.7) + - nanopb (< 2.30910.0, >= 2.30908.0) + - PromisesObjC (< 3.0, >= 1.2) + - GoogleUtilities/Environment (7.8.0): + - PromisesObjC (< 3.0, >= 1.2) + - GoogleUtilities/Logger (7.8.0): + - GoogleUtilities/Environment + - "GoogleUtilities/NSData+zlib (7.8.0)" + - GoogleUtilities/UserDefaults (7.8.0): + - GoogleUtilities/Logger - hermes-engine (0.7.2) - HMSBroadcastExtensionSDK (0.0.3) - HMSSDK (0.4.5): - HMSWebRTC (= 1.0.4898) - HMSWebRTC (1.0.4898) - libevent (2.1.12) + - nanopb (2.30909.0): + - nanopb/decode (= 2.30909.0) + - nanopb/encode (= 2.30909.0) + - nanopb/decode (2.30909.0) + - nanopb/encode (2.30909.0) - OpenSSL-Universal (1.1.180) - Permission-Camera (3.4.0): - RNPermissions - Permission-Microphone (3.4.0): - RNPermissions + - PromisesObjC (2.1.1) - RCT-Folly (2020.01.13.00): - boost-for-react-native - DoubleConversion @@ -372,6 +420,14 @@ PODS: - React-Core - RNDeviceInfo (9.0.2): - React-Core + - RNFBApp (15.7.0): + - Firebase/CoreOnly (= 9.6.0) + - React-Core + - RNFBCrashlytics (15.7.0): + - Firebase/Crashlytics (= 9.6.0) + - FirebaseCoreExtension (= 9.6.0) + - React-Core + - RNFBApp - RNFS (2.20.0): - React-Core - RNGestureHandler (1.10.3): @@ -455,6 +511,8 @@ DEPENDENCIES: - rn-fetch-blob (from `../node_modules/rn-fetch-blob`) - "RNCPicker (from `../node_modules/@react-native-picker/picker`)" - RNDeviceInfo (from `../node_modules/react-native-device-info`) + - "RNFBApp (from `../node_modules/@react-native-firebase/app`)" + - "RNFBCrashlytics (from `../node_modules/@react-native-firebase/crashlytics`)" - RNFS (from `../node_modules/react-native-fs`) - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) - RNPermissions (from `../node_modules/react-native-permissions`) @@ -467,6 +525,13 @@ SPEC REPOS: trunk: - boost-for-react-native - CocoaAsyncSocket + - Firebase + - FirebaseCore + - FirebaseCoreDiagnostics + - FirebaseCoreExtension + - FirebaseCoreInternal + - FirebaseCrashlytics + - FirebaseInstallations - Flipper - Flipper-DoubleConversion - Flipper-Folly @@ -474,12 +539,16 @@ SPEC REPOS: - Flipper-PeerTalk - Flipper-RSocket - FlipperKit + - GoogleDataTransport + - GoogleUtilities - hermes-engine - HMSBroadcastExtensionSDK - HMSSDK - HMSWebRTC - libevent + - nanopb - OpenSSL-Universal + - PromisesObjC - Toast - YogaKit @@ -562,6 +631,10 @@ EXTERNAL SOURCES: :path: "../node_modules/@react-native-picker/picker" RNDeviceInfo: :path: "../node_modules/react-native-device-info" + RNFBApp: + :path: "../node_modules/@react-native-firebase/app" + RNFBCrashlytics: + :path: "../node_modules/@react-native-firebase/crashlytics" RNFS: :path: "../node_modules/react-native-fs" RNGestureHandler: @@ -583,6 +656,13 @@ SPEC CHECKSUMS: DoubleConversion: cf9b38bf0b2d048436d9a82ad2abe1404f11e7de FBLazyVector: e686045572151edef46010a6f819ade377dfeb4b FBReactNativeSpec: 0094aca9cd5d4a79abcb5a2c1d1f52d0c106aaf9 + Firebase: 5ae8b7cf8efce559a653aef0ad95bab3f427c351 + FirebaseCore: 2082fffcd855f95f883c0a1641133eb9bbe76d40 + FirebaseCoreDiagnostics: 99a495094b10a57eeb3ae8efa1665700ad0bdaa6 + FirebaseCoreExtension: e83465d1236b166d1d445bbf0e82b65acb30b73b + FirebaseCoreInternal: bca76517fe1ed381e989f5e7d8abb0da8d85bed3 + FirebaseCrashlytics: 3210572ddb77801e5a0bd9d7bc890769f2066a0c + FirebaseInstallations: 0a115432c4e223c5ab20b0dbbe4cbefa793a0e8e Flipper: d3da1aa199aad94455ae725e9f3aa43f3ec17021 Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41 Flipper-Folly: 755929a4f851b2fb2c347d533a23f191b008554c @@ -591,14 +671,18 @@ SPEC CHECKSUMS: Flipper-RSocket: 127954abe8b162fcaf68d2134d34dc2bd7076154 FlipperKit: 8a20b5c5fcf9436cac58551dc049867247f64b00 glog: 73c2498ac6884b13ede40eda8228cb1eee9d9d62 + GoogleDataTransport: 1c8145da7117bd68bbbed00cf304edb6a24de00f + GoogleUtilities: 1d20a6ad97ef46f67bbdec158ce00563a671ebb7 hermes-engine: 7d97ba46a1e29bacf3e3c61ecb2804a5ddd02d4f HMSBroadcastExtensionSDK: a69a4503a1708b5d51e2890d70f574b9cdfea760 HMSSDK: 7a8f5503eedffc024b959988a5bd97427c5a4ede HMSWebRTC: d3a9b2866e4a36a1d3834728a548a4a46309bb86 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 + nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431 OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b Permission-Camera: 40f43388fa8a648dc6ced73f145ef329ab3ff3fe Permission-Microphone: 62492e9e3026112dfaecd6fff87a245c3d7367b8 + PromisesObjC: ab77feca74fa2823e7af4249b8326368e61014cb RCT-Folly: ec7a233ccc97cc556cf7237f0db1ff65b986f27c RCTRequired: 6d3e854f0e7260a648badd0d44fc364bc9da9728 RCTTypeSafety: c1f31d19349c6b53085766359caac425926fafaa @@ -632,6 +716,8 @@ SPEC CHECKSUMS: rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba RNCPicker: 2f71e09c52ab6327e2c393213368ea0e5bfbcb65 RNDeviceInfo: 1e3f62b9ec32f7754fac60bd06b8f8a27124e7f0 + RNFBApp: c3c9e694e9d34c14250a069916eb05785c5f3c32 + RNFBCrashlytics: bb410a988e8660fbbe5a7032ff4ecec267dbd4f7 RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211 RNPermissions: eac721f71748c4472d6e876038270b75397d6ee7 @@ -642,6 +728,6 @@ SPEC CHECKSUMS: Yoga: 575c581c63e0d35c9a83f4b46d01d63abc1100ac YogaKit: f782866e155069a2cca2517aafea43200b01fd5a -PODFILE CHECKSUM: 1cbf5cea767af9f4795d6c33efc5d75f3a1039f7 +PODFILE CHECKSUM: 27e94c9f5f5bfea5838ae4c586569d4f51d6d569 COCOAPODS: 1.11.3 diff --git a/example/ios/RNHMSExample.xcodeproj/project.pbxproj b/example/ios/RNHMSExample.xcodeproj/project.pbxproj index 9c38ad257..0cb47e4b4 100644 --- a/example/ios/RNHMSExample.xcodeproj/project.pbxproj +++ b/example/ios/RNHMSExample.xcodeproj/project.pbxproj @@ -18,6 +18,7 @@ A987F91A2848F8790078014C /* Inter-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A987F9172848F6A80078014C /* Inter-Regular.ttf */; }; C7FE391A6EAC0B7942FA85ED /* libPods-RNHMSExample-RNHMSExampleTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DACAD29EF3E1331792A2A6D4 /* libPods-RNHMSExample-RNHMSExampleTests.a */; }; CB0E5AEE35E310D8B0F98AEB /* libPods-RNHMSExampleBroadcastUpload.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 54CC37EB010A825DE92012B6 /* libPods-RNHMSExampleBroadcastUpload.a */; }; + EC91371E28F0515C00B7B8AF /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = EC91371D28F0515C00B7B8AF /* GoogleService-Info.plist */; }; ECD6520728B3BADE007B5AF8 /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECD6520628B3BADE007B5AF8 /* ReplayKit.framework */; }; ECD6520A28B3BADE007B5AF8 /* SampleHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECD6520928B3BADE007B5AF8 /* SampleHandler.swift */; }; ECD6520E28B3BADE007B5AF8 /* RNHMSExampleBroadcastUpload.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = ECD6520528B3BADE007B5AF8 /* RNHMSExampleBroadcastUpload.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; @@ -76,6 +77,7 @@ A987F9172848F6A80078014C /* Inter-Regular.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Inter-Regular.ttf"; sourceTree = ""; }; D0BEB2D493E8A5BBFF46F92B /* libPods-RNHMSExample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNHMSExample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; DACAD29EF3E1331792A2A6D4 /* libPods-RNHMSExample-RNHMSExampleTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNHMSExample-RNHMSExampleTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + EC91371D28F0515C00B7B8AF /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; ECA3437726C3E17E007CB7C3 /* RNHMSExample.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = RNHMSExample.entitlements; path = RNHMSExample/RNHMSExample.entitlements; sourceTree = ""; }; ECD6520528B3BADE007B5AF8 /* RNHMSExampleBroadcastUpload.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = RNHMSExampleBroadcastUpload.appex; sourceTree = BUILT_PRODUCTS_DIR; }; ECD6520628B3BADE007B5AF8 /* ReplayKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ReplayKit.framework; path = System/Library/Frameworks/ReplayKit.framework; sourceTree = SDKROOT; }; @@ -123,6 +125,7 @@ 13B07FB01A68108700A75B9A /* AppDelegate.m */, 13B07FB51A68108700A75B9A /* Images.xcassets */, 13B07FB61A68108700A75B9A /* Info.plist */, + EC91371D28F0515C00B7B8AF /* GoogleService-Info.plist */, 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, 13B07FB71A68108700A75B9A /* main.m */, ); @@ -245,6 +248,8 @@ ECD6520F28B3BADE007B5AF8 /* Embed App Extensions */, DDF0F48D1FB1854DCCE6567F /* [CP] Embed Pods Frameworks */, E67B67B5F697CD37CA2EBE06 /* [CP] Copy Pods Resources */, + DB416C4F57CD12BE74E94318 /* [CP-User] [RNFB] Core Configuration */, + C46E809FD5E467065017742D /* [CP-User] [RNFB] Crashlytics Configuration */, ); buildRules = ( ); @@ -333,6 +338,7 @@ A987F91A2848F8790078014C /* Inter-Regular.ttf in Resources */, 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, + EC91371E28F0515C00B7B8AF /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -443,6 +449,20 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests-resources.sh\"\n"; showEnvVarsInLog = 0; }; + C46E809FD5E467065017742D /* [CP-User] [RNFB] Crashlytics Configuration */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}", + "$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)", + ); + name = "[CP-User] [RNFB] Crashlytics Configuration"; + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\nif [[ ${PODS_ROOT} ]]; then\n echo \"info: Exec FirebaseCrashlytics Run from Pods\"\n \"${PODS_ROOT}/FirebaseCrashlytics/run\"\nelse\n echo \"info: Exec FirebaseCrashlytics Run from framework\"\n \"${PROJECT_DIR}/FirebaseCrashlytics.framework/run\"\nfi\n"; + }; D69A5E9D6F58B3126781A68F /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -460,6 +480,19 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; + DB416C4F57CD12BE74E94318 /* [CP-User] [RNFB] Core Configuration */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)", + ); + name = "[CP-User] [RNFB] Core Configuration"; + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\n_MAX_LOOKUPS=2;\n_SEARCH_RESULT=''\n_RN_ROOT_EXISTS=''\n_CURRENT_LOOKUPS=1\n_JSON_ROOT=\"'react-native'\"\n_JSON_FILE_NAME='firebase.json'\n_JSON_OUTPUT_BASE64='e30=' # { }\n_CURRENT_SEARCH_DIR=${PROJECT_DIR}\n_PLIST_BUDDY=/usr/libexec/PlistBuddy\n_TARGET_PLIST=\"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n_DSYM_PLIST=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n\n# plist arrays\n_PLIST_ENTRY_KEYS=()\n_PLIST_ENTRY_TYPES=()\n_PLIST_ENTRY_VALUES=()\n\nfunction setPlistValue {\n echo \"info: setting plist entry '$1' of type '$2' in file '$4'\"\n ${_PLIST_BUDDY} -c \"Add :$1 $2 '$3'\" $4 || echo \"info: '$1' already exists\"\n}\n\nfunction getFirebaseJsonKeyValue () {\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n ruby -Ku -e \"require 'rubygems';require 'json'; output=JSON.parse('$1'); puts output[$_JSON_ROOT]['$2']\"\n else\n echo \"\"\n fi;\n}\n\nfunction jsonBoolToYesNo () {\n if [[ $1 == \"false\" ]]; then\n echo \"NO\"\n elif [[ $1 == \"true\" ]]; then\n echo \"YES\"\n else echo \"NO\"\n fi\n}\n\necho \"info: -> RNFB build script started\"\necho \"info: 1) Locating ${_JSON_FILE_NAME} file:\"\n\nif [[ -z ${_CURRENT_SEARCH_DIR} ]]; then\n _CURRENT_SEARCH_DIR=$(pwd)\nfi;\n\nwhile true; do\n _CURRENT_SEARCH_DIR=$(dirname \"$_CURRENT_SEARCH_DIR\")\n if [[ \"$_CURRENT_SEARCH_DIR\" == \"/\" ]] || [[ ${_CURRENT_LOOKUPS} -gt ${_MAX_LOOKUPS} ]]; then break; fi;\n echo \"info: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file.\"\n _SEARCH_RESULT=$(find \"$_CURRENT_SEARCH_DIR\" -maxdepth 2 -name ${_JSON_FILE_NAME} -print | /usr/bin/head -n 1)\n if [[ ${_SEARCH_RESULT} ]]; then\n echo \"info: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT\"\n break;\n fi;\n _CURRENT_LOOKUPS=$((_CURRENT_LOOKUPS+1))\ndone\n\nif [[ ${_SEARCH_RESULT} ]]; then\n _JSON_OUTPUT_RAW=$(cat \"${_SEARCH_RESULT}\")\n _RN_ROOT_EXISTS=$(ruby -Ku -e \"require 'rubygems';require 'json'; output=JSON.parse('$_JSON_OUTPUT_RAW'); puts output[$_JSON_ROOT]\" || echo '')\n\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n if ! python3 --version >/dev/null 2>&1; then echo \"python3 not found, firebase.json file processing error.\" && exit 1; fi\n _JSON_OUTPUT_BASE64=$(python3 -c 'import json,sys,base64;print(base64.b64encode(bytes(json.dumps(json.loads(open('\"'${_SEARCH_RESULT}'\"', '\"'rb'\"').read())['${_JSON_ROOT}']), '\"'utf-8'\"')).decode())' || echo \"e30=\")\n fi\n\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n\n # config.app_data_collection_default_enabled\n _APP_DATA_COLLECTION_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_data_collection_default_enabled\")\n if [[ $_APP_DATA_COLLECTION_ENABLED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseDataCollectionDefaultEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_DATA_COLLECTION_ENABLED\")\")\n fi\n\n # config.analytics_auto_collection_enabled\n _ANALYTICS_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_auto_collection_enabled\")\n if [[ $_ANALYTICS_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_COLLECTION\")\")\n fi\n\n # config.analytics_collection_deactivated\n _ANALYTICS_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_collection_deactivated\")\n if [[ $_ANALYTICS_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_DEACTIVATED\")\")\n fi\n\n # config.analytics_idfv_collection_enabled\n _ANALYTICS_IDFV_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_idfv_collection_enabled\")\n if [[ $_ANALYTICS_IDFV_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_IDFV_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_IDFV_COLLECTION\")\")\n fi\n\n # config.analytics_default_allow_ad_personalization_signals\n _ANALYTICS_PERSONALIZATION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_personalization_signals\")\n if [[ $_ANALYTICS_PERSONALIZATION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_PERSONALIZATION\")\")\n fi\n\n # config.analytics_registration_with_ad_network_enabled\n _ANALYTICS_REGISTRATION_WITH_AD_NETWORK=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"google_analytics_registration_with_ad_network_enabled\")\n if [[ $_ANALYTICS_REGISTRATION_WITH_AD_NETWORK ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_REGISTRATION_WITH_AD_NETWORK_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_REGISTRATION_WITH_AD_NETWORK\")\")\n fi\n\n # config.google_analytics_automatic_screen_reporting_enabled\n _ANALYTICS_AUTO_SCREEN_REPORTING=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"google_analytics_automatic_screen_reporting_enabled\")\n if [[ $_ANALYTICS_AUTO_SCREEN_REPORTING ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAutomaticScreenReportingEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_SCREEN_REPORTING\")\")\n fi\n\n # config.perf_auto_collection_enabled\n _PERF_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_auto_collection_enabled\")\n if [[ $_PERF_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_enabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_AUTO_COLLECTION\")\")\n fi\n\n # config.perf_collection_deactivated\n _PERF_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_collection_deactivated\")\n if [[ $_PERF_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_deactivated\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_DEACTIVATED\")\")\n fi\n\n # config.messaging_auto_init_enabled\n _MESSAGING_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"messaging_auto_init_enabled\")\n if [[ $_MESSAGING_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseMessagingAutoInitEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_MESSAGING_AUTO_INIT\")\")\n fi\n\n # config.in_app_messaging_auto_colllection_enabled\n _FIAM_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"in_app_messaging_auto_collection_enabled\")\n if [[ $_FIAM_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseInAppMessagingAutomaticDataCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_FIAM_AUTO_INIT\")\")\n fi\n\n # config.app_check_token_auto_refresh\n _APP_CHECK_TOKEN_AUTO_REFRESH=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_check_token_auto_refresh\")\n if [[ $_APP_CHECK_TOKEN_AUTO_REFRESH ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAppCheckTokenAutoRefreshEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_CHECK_TOKEN_AUTO_REFRESH\")\")\n fi\n\n # config.crashlytics_disable_auto_disabler - undocumented for now - mainly for debugging, document if becomes useful\n _CRASHLYTICS_AUTO_DISABLE_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"crashlytics_disable_auto_disabler\")\n if [[ $_CRASHLYTICS_AUTO_DISABLE_ENABLED == \"true\" ]]; then\n echo \"Disabled Crashlytics auto disabler.\" # do nothing\n else\n _PLIST_ENTRY_KEYS+=(\"FirebaseCrashlyticsCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"NO\")\n fi\nelse\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n echo \"warning: A firebase.json file was not found, whilst this file is optional it is recommended to include it to configure firebase services in React Native Firebase.\"\nfi;\n\necho \"info: 2) Injecting Info.plist entries: \"\n\n# Log out the keys we're adding\nfor i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n echo \" -> $i) ${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\"\ndone\n\nfor plist in \"${_TARGET_PLIST}\" \"${_DSYM_PLIST}\" ; do\n if [[ -f \"${plist}\" ]]; then\n\n # paths with spaces break the call to setPlistValue. temporarily modify\n # the shell internal field separator variable (IFS), which normally\n # includes spaces, to consist only of line breaks\n oldifs=$IFS\n IFS=\"\n\"\n\n for i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n setPlistValue \"${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\" \"${plist}\"\n done\n\n # restore the original internal field separator value\n IFS=$oldifs\n else\n echo \"warning: A Info.plist build output file was not found (${plist})\"\n fi\ndone\n\necho \"info: <- RNFB build script finished\"\n"; + }; DDF0F48D1FB1854DCCE6567F /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; diff --git a/example/package-lock.json b/example/package-lock.json index 4c895f149..cf0911373 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -10,6 +10,8 @@ "dependencies": { "@miblanchard/react-native-slider": "^2.0.2", "@react-native-camera-roll/camera-roll": "^5.0.2", + "@react-native-firebase/app": "^15.7.0", + "@react-native-firebase/crashlytics": "^15.7.0", "@react-native-picker/picker": "^2.0.0", "@react-native/normalize-color": "^2.0.0", "@react-navigation/native": "^6.0.8", @@ -1950,6 +1952,277 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "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==", + "dependencies": { + "@expo/config-types": "^46.0.0", + "@expo/json-file": "8.2.36", + "@expo/plist": "0.0.18", + "@expo/sdk-runtime-versions": "^1.0.0", + "@react-native/normalize-color": "^2.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.1", + "find-up": "~5.0.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "resolve-from": "^5.0.0", + "semver": "^7.3.5", + "slash": "^3.0.0", + "xcode": "^3.0.1", + "xml2js": "0.4.23" + } + }, + "node_modules/@expo/config-plugins/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/@expo/config-plugins/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@expo/config-plugins/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/@expo/config-plugins/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/@expo/config-plugins/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@expo/config-plugins/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/config-plugins/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@expo/config-plugins/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@expo/config-plugins/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@expo/config-plugins/node_modules/p-locate": { + "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==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@expo/config-plugins/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@expo/config-plugins/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/@expo/config-plugins/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@expo/config-plugins/node_modules/uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@expo/config-plugins/node_modules/xcode": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", + "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", + "dependencies": { + "simple-plist": "^1.1.0", + "uuid": "^7.0.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "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==" + }, + "node_modules/@expo/json-file": { + "version": "8.2.36", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz", + "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "json5": "^1.0.1", + "write-file-atomic": "^2.3.0" + } + }, + "node_modules/@expo/json-file/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "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==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/@expo/json-file/node_modules/write-file-atomic": { + "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==", + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/@expo/plist": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz", + "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==", + "dependencies": { + "@xmldom/xmldom": "~0.7.0", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" + } + }, + "node_modules/@expo/plist/node_modules/xmlbuilder": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-14.0.0.tgz", + "integrity": "sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==", + "engines": { + "node": ">=8.0" + } + }, + "node_modules/@expo/sdk-runtime-versions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", + "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==" + }, "node_modules/@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -3402,6 +3675,32 @@ "integrity": "sha512-o6aam+0Ug1xGK3ABYmBm0B1YuEKfM/5kaoZO0eHbZwSpw9UzDX4G5y4Nx/K20FHqUmJHkZmLvOUFYwN4N+HqKA==", "dev": true }, + "node_modules/@react-native-firebase/app": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/@react-native-firebase/app/-/app-15.7.0.tgz", + "integrity": "sha512-ZyrvewIkQC0UHDuHxXyc25/V8xYOa4xlukIHIbtJeBzVCCyVgZxF4Svyqs+CosqbHOuwWnmg+AW0rMvjrRcdmw==", + "dependencies": { + "@expo/config-plugins": "^5.0.1", + "opencollective-postinstall": "^2.0.1", + "superstruct": "^0.6.2" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/@react-native-firebase/crashlytics": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/@react-native-firebase/crashlytics/-/crashlytics-15.7.0.tgz", + "integrity": "sha512-RTEZErJA+VhiwKqdlErSw/9msy6F8EonhTVw/VDNgCwUjN+cfWhSOpp8XG6dp2slTNeU1HtjAG8hA5G49s3rVQ==", + "dependencies": { + "@expo/config-plugins": "^5.0.1", + "stacktrace-js": "^2.0.0" + }, + "peerDependencies": { + "@react-native-firebase/app": "15.7.0" + } + }, "node_modules/@react-native-picker/picker": { "version": "2.4.6", "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.6.tgz", @@ -3937,6 +4236,14 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@xmldom/xmldom": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz", + "integrity": "sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -6834,6 +7141,17 @@ "node": ">=0.10.0" } }, + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -7022,6 +7340,14 @@ "node": ">=0.10.0" } }, + "node_modules/getenv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", + "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", + "engines": { + "node": ">=6" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -9927,7 +10253,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -10547,6 +10872,34 @@ "node": ">=0.10.0" } }, + "node_modules/mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==", + "dependencies": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-object/node_modules/for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-object/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==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -11050,6 +11403,14 @@ "node": ">=4" } }, + "node_modules/opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", + "bin": { + "opencollective-postinstall": "index.js" + } + }, "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -12313,7 +12674,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, "engines": { "node": ">=8" } @@ -13292,6 +13652,14 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, + "node_modules/stack-generator": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", + "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", + "dependencies": { + "stackframe": "^1.3.4" + } + }, "node_modules/stack-utils": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", @@ -13318,6 +13686,33 @@ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, + "node_modules/stacktrace-gps": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz", + "integrity": "sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==", + "dependencies": { + "source-map": "0.5.6", + "stackframe": "^1.3.4" + } + }, + "node_modules/stacktrace-gps/node_modules/source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stacktrace-js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz", + "integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==", + "dependencies": { + "error-stack-parser": "^2.0.6", + "stack-generator": "^2.0.5", + "stacktrace-gps": "^3.0.4" + } + }, "node_modules/stacktrace-parser": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", @@ -13572,25 +13967,77 @@ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, "engines": { - "node": ">=6" + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==" + }, + "node_modules/superstruct": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.6.2.tgz", + "integrity": "sha512-lvA97MFAJng3rfjcafT/zGTSWm6Tbpk++DP6It4Qg7oNaeM+2tdJMuVgGje21/bIpBEs6iQql1PJH6dKTjl4Ig==", + "dependencies": { + "clone-deep": "^2.0.1", + "kind-of": "^6.0.1" + } + }, + "node_modules/superstruct/node_modules/clone-deep": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", + "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", + "dependencies": { + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/superstruct/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==", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" + "node_modules/superstruct/node_modules/shallow-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", + "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", + "dependencies": { + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=0.10.0" } }, - "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==" + "node_modules/superstruct/node_modules/shallow-clone/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } }, "node_modules/supports-color": { "version": "5.5.0", @@ -14591,6 +15038,26 @@ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xml2js/node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, "node_modules/xmlbuilder": { "version": "15.1.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", @@ -14629,8 +15096,7 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { "version": "15.4.1", @@ -14664,6 +15130,17 @@ "engines": { "node": ">=6" } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } }, "dependencies": { @@ -15946,6 +16423,211 @@ } } }, + "@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==", + "requires": { + "@expo/config-types": "^46.0.0", + "@expo/json-file": "8.2.36", + "@expo/plist": "0.0.18", + "@expo/sdk-runtime-versions": "^1.0.0", + "@react-native/normalize-color": "^2.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.1", + "find-up": "~5.0.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "resolve-from": "^5.0.0", + "semver": "^7.3.5", + "slash": "^3.0.0", + "xcode": "^3.0.1", + "xml2js": "0.4.23" + }, + "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" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==" + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "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==", + "requires": { + "p-limit": "^3.0.2" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "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": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" + }, + "xcode": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", + "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", + "requires": { + "simple-plist": "^1.1.0", + "uuid": "^7.0.3" + } + } + } + }, + "@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==" + }, + "@expo/json-file": { + "version": "8.2.36", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz", + "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==", + "requires": { + "@babel/code-frame": "~7.10.4", + "json5": "^1.0.1", + "write-file-atomic": "^2.3.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "write-file-atomic": { + "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==", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + } + } + }, + "@expo/plist": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz", + "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==", + "requires": { + "@xmldom/xmldom": "~0.7.0", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" + }, + "dependencies": { + "xmlbuilder": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-14.0.0.tgz", + "integrity": "sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==" + } + } + }, + "@expo/sdk-runtime-versions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", + "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==" + }, "@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -17079,6 +17761,25 @@ "integrity": "sha512-o6aam+0Ug1xGK3ABYmBm0B1YuEKfM/5kaoZO0eHbZwSpw9UzDX4G5y4Nx/K20FHqUmJHkZmLvOUFYwN4N+HqKA==", "dev": true }, + "@react-native-firebase/app": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/@react-native-firebase/app/-/app-15.7.0.tgz", + "integrity": "sha512-ZyrvewIkQC0UHDuHxXyc25/V8xYOa4xlukIHIbtJeBzVCCyVgZxF4Svyqs+CosqbHOuwWnmg+AW0rMvjrRcdmw==", + "requires": { + "@expo/config-plugins": "^5.0.1", + "opencollective-postinstall": "^2.0.1", + "superstruct": "^0.6.2" + } + }, + "@react-native-firebase/crashlytics": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/@react-native-firebase/crashlytics/-/crashlytics-15.7.0.tgz", + "integrity": "sha512-RTEZErJA+VhiwKqdlErSw/9msy6F8EonhTVw/VDNgCwUjN+cfWhSOpp8XG6dp2slTNeU1HtjAG8hA5G49s3rVQ==", + "requires": { + "@expo/config-plugins": "^5.0.1", + "stacktrace-js": "^2.0.0" + } + }, "@react-native-picker/picker": { "version": "2.4.6", "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.6.tgz", @@ -17516,6 +18217,11 @@ "eslint-visitor-keys": "^1.1.0" } }, + "@xmldom/xmldom": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz", + "integrity": "sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==" + }, "abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -19735,6 +20441,14 @@ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==" }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "requires": { + "for-in": "^1.0.1" + } + }, "form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -19865,6 +20579,11 @@ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==" }, + "getenv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", + "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==" + }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -22042,7 +22761,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "requires": { "yallist": "^4.0.0" } @@ -22575,6 +23293,27 @@ "is-extendable": "^1.0.1" } }, + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==", + "requires": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==" + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" + } + } + }, "mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -22958,6 +23697,11 @@ } } }, + "opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" + }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -23912,8 +24656,7 @@ "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, "resolve-url": { "version": "0.2.1", @@ -24706,6 +25449,14 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, + "stack-generator": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", + "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", + "requires": { + "stackframe": "^1.3.4" + } + }, "stack-utils": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", @@ -24728,6 +25479,32 @@ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, + "stacktrace-gps": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz", + "integrity": "sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==", + "requires": { + "source-map": "0.5.6", + "stackframe": "^1.3.4" + }, + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==" + } + } + }, + "stacktrace-js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz", + "integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==", + "requires": { + "error-stack-parser": "^2.0.6", + "stack-generator": "^2.0.5", + "stacktrace-gps": "^3.0.4" + } + }, "stacktrace-parser": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", @@ -24937,6 +25714,50 @@ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz", "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==" }, + "superstruct": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.6.2.tgz", + "integrity": "sha512-lvA97MFAJng3rfjcafT/zGTSWm6Tbpk++DP6It4Qg7oNaeM+2tdJMuVgGje21/bIpBEs6iQql1PJH6dKTjl4Ig==", + "requires": { + "clone-deep": "^2.0.1", + "kind-of": "^6.0.1" + }, + "dependencies": { + "clone-deep": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", + "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", + "requires": { + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.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==" + }, + "shallow-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", + "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", + "requires": { + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + } + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -25696,6 +26517,22 @@ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "dependencies": { + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + } + } + }, "xmlbuilder": { "version": "15.1.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", @@ -25728,8 +26565,7 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { "version": "15.4.1", @@ -25757,6 +26593,11 @@ "camelcase": "^5.0.0", "decamelize": "^1.2.0" } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" } } } diff --git a/example/package.json b/example/package.json index eb7023e74..8fed77743 100644 --- a/example/package.json +++ b/example/package.json @@ -13,6 +13,8 @@ "dependencies": { "@miblanchard/react-native-slider": "^2.0.2", "@react-native-camera-roll/camera-roll": "^5.0.2", + "@react-native-firebase/app": "^15.7.0", + "@react-native-firebase/crashlytics": "^15.7.0", "@react-native-picker/picker": "^2.0.0", "@react-native/normalize-color": "^2.0.0", "@react-navigation/native": "^6.0.8", From 3461d6d6d8f3be80eeedf4e81daa97b4fdde0375 Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Fri, 7 Oct 2022 20:17:48 +0530 Subject: [PATCH 23/84] feat: changed preview flow --- .../java/com/reactnativehmssdk/HMSDecoder.kt | 8 ++-- .../java/com/reactnativehmssdk/HMSRNSDK.kt | 2 +- example/src/components/ChatWindow.tsx | 43 +++++++++++++++--- example/src/components/PreviewModal.tsx | 44 ++++++++++++------- example/src/screens/MeetingScreen/index.tsx | 13 +++++- example/src/screens/Welcome/index.tsx | 9 +--- ios/HMSDecoder.swift | 8 ++-- src/classes/HMSEncoder.ts | 15 ++----- src/classes/HMSSDK.tsx | 25 +++++------ src/classes/HMSVideoTrack.ts | 2 - 10 files changed, 105 insertions(+), 64 deletions(-) diff --git a/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt b/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt index bfa25b592..55e5b41e3 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt @@ -320,15 +320,15 @@ object HMSDecoder { return hmsTrack } - fun getPreviewTracks(tracks: Array?): WritableMap { - val hmsTracks: WritableMap = Arguments.createMap() + fun getPreviewTracks(tracks: Array?): WritableArray { + val hmsTracks: WritableArray = Arguments.createArray() if (tracks != null) { for (track: HMSTrack in tracks) { if (track is HMSLocalVideoTrack) { - hmsTracks.putMap("videoTrack", this.getHmsLocalVideoTrack(track)) + hmsTracks.pushMap(this.getHmsLocalVideoTrack(track)) } if (track is HMSLocalAudioTrack) { - hmsTracks.putMap("audioTrack", this.getHmsLocalAudioTrack(track)) + hmsTracks.pushMap(this.getHmsLocalAudioTrack(track)) } } } diff --git a/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt b/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt index 5c7fb344a..678d06831 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt @@ -159,7 +159,7 @@ class HMSRNSDK( val hmsRoom = HMSDecoder.getHmsRoom(room) val data: WritableMap = Arguments.createMap() - data.putMap("previewTracks", previewTracks) + data.putArray("previewTracks", previewTracks) data.putMap("room", hmsRoom) data.putString("id", id) delegate.emitEvent("ON_PREVIEW", data) diff --git a/example/src/components/ChatWindow.tsx b/example/src/components/ChatWindow.tsx index 91f0b3a36..754200352 100644 --- a/example/src/components/ChatWindow.tsx +++ b/example/src/components/ChatWindow.tsx @@ -16,6 +16,7 @@ import { HMSRemotePeer, HMSRole, HMSSDK, + HMSUpdateListenerActions, } from '@100mslive/react-native-hms'; import Feather from 'react-native-vector-icons/Feather'; import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'; @@ -63,16 +64,18 @@ const ChatFilter = ({ }) => { const [visible, setVisible] = useState(false); const [remotePeers, setRemotePeers] = useState(); + const [hmsRoles, setHmsRoles] = useState(roles); const hideMenu = () => setVisible(false); const showMenu = () => setVisible(true); - const updateRemotePeers = async () => { - setRemotePeers(await instance?.getRemotePeers()); - }; useEffect(() => { - updateRemotePeers(); - // eslint-disable-next-line react-hooks/exhaustive-deps + instance?.getRoles().then(currentRoles => { + setHmsRoles(currentRoles); + }); + instance?.getRemotePeers().then(currentRemotePeers => { + setRemotePeers(currentRemotePeers); + }); }, [instance]); return ( @@ -109,7 +112,7 @@ const ChatFilter = ({ - {roles?.map(knownRole => { + {hmsRoles?.map(knownRole => { return ( { @@ -158,12 +161,14 @@ export const ChatWindow = ({ localPeer?: HMSLocalPeer; roles?: HMSRole[]; }) => { + // hooks const {hmsInstance} = useSelector((state: RootState) => state.user); const {messages} = useSelector((state: RootState) => state.messages); const dispatch = useDispatch(); const {bottom} = useSafeAreaInsets(); const scollviewRef = useRef(null); + // useState hook const [filter, setFilter] = useState('everyone'); const [type, setType] = useState<'everyone' | 'role' | 'direct'>('everyone'); const [receiverObject, setReceiverObject] = useState< @@ -172,6 +177,24 @@ export const ChatWindow = ({ const [showBanner, setShowBanner] = useState(true); const [text, setText] = useState(''); + // listeners + const onMessageListener = (data: HMSMessage) => { + dispatch(addMessage(data)); + // setNotification(true); + }; + + // functions + const addListener = () => { + hmsInstance?.addEventListener( + HMSUpdateListenerActions.ON_MESSAGE, + onMessageListener, + ); + }; + + const removeListener = () => { + hmsInstance?.removeEventListener(HMSUpdateListenerActions.ON_MESSAGE); + }; + const sendMessage = () => { let hmsMessageRecipient: HMSMessageRecipient; if (text.length > 0) { @@ -216,6 +239,14 @@ export const ChatWindow = ({ scollviewRef?.current?.scrollToEnd({animated: true}); }, [messages]); + useEffect(() => { + addListener(); + return () => { + removeListener(); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [hmsInstance]); + return ( diff --git a/example/src/components/PreviewModal.tsx b/example/src/components/PreviewModal.tsx index a630b5474..960e1e9cc 100644 --- a/example/src/components/PreviewModal.tsx +++ b/example/src/components/PreviewModal.tsx @@ -8,10 +8,11 @@ import { } from 'react-native'; import Feather from 'react-native-vector-icons/Feather'; import { - HMSAudioTrack, HMSLocalPeer, HMSRoom, - HMSVideoTrack, + HMSTrack, + HMSTrackSource, + HMSTrackType, HMSVideoViewMode, } from '@100mslive/react-native-hms'; import {useSelector} from 'react-redux'; @@ -30,7 +31,7 @@ export const PreviewModal = ({ loadingButtonState, }: { room?: HMSRoom; - previewTracks: {audioTrack: HMSAudioTrack; videoTrack: HMSVideoTrack}; + previewTracks: HMSTrack[]; join: Function; setLoadingButtonState: React.Dispatch>; loadingButtonState: boolean; @@ -40,12 +41,11 @@ export const PreviewModal = ({ ); const {top, bottom, left, right} = useSafeAreaInsets(); - const [isAudioMute, setIsAudioMute] = useState( - previewTracks.audioTrack.isMute(), - ); - const [isVideoMute, setIsVideoMute] = useState( - previewTracks.videoTrack.isMute(), - ); + const [previewAudioTrack, setPreviewAudioTrack] = useState(); + const [previewVideoTrack, setPreviewVideoTrack] = useState(); + + const [isAudioMute, setIsAudioMute] = useState(previewAudioTrack?.isMute()); + const [isVideoMute, setIsVideoMute] = useState(previewVideoTrack?.isMute()); const [previewPeer, setPreviewPeer] = useState(); const [numberOfLines, setNumberOfLines] = useState(true); @@ -56,16 +56,30 @@ export const PreviewModal = ({ previewPeer?.role?.publishSettings?.allowed?.includes('video'); useEffect(() => { - const getLocalPeer = async () => { - setPreviewPeer(await hmsInstance?.getLocalPeer()); - }; - getLocalPeer(); + hmsInstance?.getLocalPeer().then(localPeer => setPreviewPeer(localPeer)); }, [hmsInstance]); + useEffect(() => { + previewTracks.map(track => { + if ( + track?.type === HMSTrackType.VIDEO && + track?.source === HMSTrackSource.REGULAR + ) { + setPreviewVideoTrack(track); + } + if ( + track?.type === HMSTrackType.AUDIO && + track?.source === HMSTrackSource.REGULAR + ) { + setPreviewAudioTrack(track); + } + }); + }, [previewTracks]); + return ( - {isVideoMute || !HmsView || !previewTracks.videoTrack.trackId ? ( + {isVideoMute || !HmsView || !previewVideoTrack?.trackId ? ( @@ -78,7 +92,7 @@ export const PreviewModal = ({ )} diff --git a/example/src/screens/MeetingScreen/index.tsx b/example/src/screens/MeetingScreen/index.tsx index 694e2c01e..a97abc9fa 100644 --- a/example/src/screens/MeetingScreen/index.tsx +++ b/example/src/screens/MeetingScreen/index.tsx @@ -22,7 +22,13 @@ import {useNavigation} from '@react-navigation/native'; import type {NativeStackNavigationProp} from '@react-navigation/native-stack'; import {styles} from './styles'; -import {CustomButton, DefaultModal, Menu, MenuItem} from '../../components'; +import { + ChatWindow, + CustomButton, + DefaultModal, + Menu, + MenuItem, +} from '../../components'; import {ModalTypes, PeerTrackNode} from '../../utils/types'; import { pairData, @@ -383,6 +389,11 @@ const DisplayView = (data: { cancelModal={() => data?.setModalVisible(ModalTypes.DEFAULT)} /> + data?.setModalVisible(ModalTypes.DEFAULT)}> + + ); }; diff --git a/example/src/screens/Welcome/index.tsx b/example/src/screens/Welcome/index.tsx index db2dee830..585b41679 100644 --- a/example/src/screens/Welcome/index.tsx +++ b/example/src/screens/Welcome/index.tsx @@ -1,6 +1,5 @@ import { HMSAudioCodec, - HMSAudioTrack, HMSAudioTrackSettings, HMSCameraFacing, HMSConfig, @@ -18,7 +17,6 @@ import { HMSUpdateListenerActions, HMSVideoCodec, HMSVideoResolution, - HMSVideoTrack, HMSVideoTrackSettings, } from '@100mslive/react-native-hms'; import {useNavigation} from '@react-navigation/native'; @@ -75,10 +73,7 @@ const Welcome = () => { const [previewButtonLoading, setPreviewButtonLoading] = useState(false); const [joinButtonLoading, setJoinButtonLoading] = useState(false); - const [previewTracks, setPreviewTracks] = useState<{ - audioTrack: HMSAudioTrack; - videoTrack: HMSVideoTrack; - }>(); + const [previewTracks, setPreviewTracks] = useState(); const [hmsRoom, setHmsRoom] = useState(); const [modalType, setModalType] = useState(ModalTypes.DEFAULT); @@ -88,7 +83,7 @@ const Welcome = () => { // listeners const onPreviewSuccess = (data: { room: HMSRoom; - previewTracks: {audioTrack: HMSAudioTrack; videoTrack: HMSVideoTrack}; + previewTracks: HMSTrack[]; }) => { console.log('data in onPreviewSuccess: ', data); setHmsRoom(data.room); diff --git a/ios/HMSDecoder.swift b/ios/HMSDecoder.swift index 17e097cca..e06f4a0f3 100644 --- a/ios/HMSDecoder.swift +++ b/ios/HMSDecoder.swift @@ -270,21 +270,21 @@ class HMSDecoder: NSObject { return ["trackId": remoteVideo.trackId, "source": remoteVideo.source, "trackDescription": remoteVideo.trackDescription, "layer": remoteVideo.layer.rawValue, "playbackAllowed": remoteVideo.isPlaybackAllowed(), "isMute": remoteVideo.isMute(), "isDegraded": remoteVideo.isDegraded(), "type": type, "kind": type] } - static func getPreviewTracks(_ tracks: [HMSTrack]) -> [String: Any] { + static func getPreviewTracks(_ tracks: [HMSTrack]) -> [[String: Any]] { - var hmsTracks = [String: Any]() + var hmsTracks = [[String: Any]]() for track in tracks { if let localVideo = track as? HMSLocalVideoTrack { let type = HMSHelper.getHmsTrackType(localVideo.kind) ?? "" let localVideoTrackData: [String: Any] = ["trackId": localVideo.trackId, "source": localVideo.source, "trackDescription": localVideo.trackDescription, "settings": getHmsVideoTrackSettings(localVideo.settings), "isMute": localVideo.isMute(), "kind": type, "type": type] - hmsTracks["videoTrack"] = localVideoTrackData + hmsTracks.append(localVideoTrackData) } if let localAudio = track as? HMSLocalAudioTrack { let type = HMSHelper.getHmsTrackType(localAudio.kind) ?? "" let localAudioTrackData: [String: Any] = ["trackId": localAudio.trackId, "source": localAudio.source, "trackDescription": localAudio.trackDescription, "settings": getHmsAudioTrackSettings(localAudio.settings), "isMute": localAudio.isMute(), "kind": type, "type": type] - hmsTracks["audioTrack"] = localAudioTrackData + hmsTracks.append(localAudioTrackData) } } return hmsTracks diff --git a/src/classes/HMSEncoder.ts b/src/classes/HMSEncoder.ts index de779a946..83ecc56a5 100644 --- a/src/classes/HMSEncoder.ts +++ b/src/classes/HMSEncoder.ts @@ -316,17 +316,10 @@ export class HMSEncoder { return new HMSRemoteVideoTrack(encodedObj); } - static encodeHmsPreviewTracks(previewTracks: any) { - const encodedObj = { - audioTrack: previewTracks.audioTrack - ? new HMSLocalAudioTrack(previewTracks.audioTrack) - : null, - videoTrack: previewTracks.videoTrack - ? new HMSLocalVideoTrack(previewTracks.videoTrack) - : null, - }; - - return encodedObj; + static encodeHmsPreviewTracks(previewTracks: any[], id: string) { + return previewTracks?.map((track) => { + return this.encodeHmsTrack(track, id); + }); } static encodeHmsRoles(roles: any[]) { diff --git a/src/classes/HMSSDK.tsx b/src/classes/HMSSDK.tsx index e1c8ec9b4..e46115624 100644 --- a/src/classes/HMSSDK.tsx +++ b/src/classes/HMSSDK.tsx @@ -110,7 +110,6 @@ export class HMSSDK { preferredExtension: params?.preferredExtension, // required for iOS Screenshare, not required for Android }); HmsSdk = new HMSSDK(id); - HmsSdk.attachPreviewListener(); HmsSdk.attachListeners(); return HmsSdk; } @@ -145,24 +144,16 @@ export class HMSSDK { }; /** - * - Attaches preview listener for native callbacks. - * Note:this function connects sdk to native side and not app to sdk. - * + * - Attaches all the listeners to native callbacks. + * Note: this function connects sdk to native side and not app to sdk. * @memberof HMSSDK */ - attachPreviewListener = () => { + attachListeners = () => { HmsEventEmitter.addListener( HMSUpdateListenerActions.ON_PREVIEW, this.onPreviewListener ); - }; - /** - * - Attaches all the listeners to native callbacks. - * Note: this function connects sdk to native side and not app to sdk. - * @memberof HMSSDK - */ - attachListeners = () => { HmsEventEmitter.addListener( HMSUpdateListenerActions.ON_JOIN, this.onJoinListener @@ -265,6 +256,11 @@ export class HMSSDK { this.onJoinListener ); + HmsEventEmitter.removeListener( + HMSUpdateListenerActions.ON_PREVIEW, + this.onPreviewListener + ); + HmsEventEmitter.removeListener( HMSUpdateListenerActions.ON_ROOM_UPDATE, this.onRoomListener @@ -1369,7 +1365,10 @@ export class HMSSDK { return; } const room: HMSRoom = HMSEncoder.encodeHmsRoom(data.room, this.id); - const previewTracks = HMSEncoder.encodeHmsPreviewTracks(data.previewTracks); + const previewTracks = HMSEncoder.encodeHmsPreviewTracks( + data.previewTracks, + this.id + ); if (this.onPreviewDelegate) { logger?.verbose('#Listener ON_PREVIEW_LISTENER_CALL', { diff --git a/src/classes/HMSVideoTrack.ts b/src/classes/HMSVideoTrack.ts index 110821677..0db4b898e 100644 --- a/src/classes/HMSVideoTrack.ts +++ b/src/classes/HMSVideoTrack.ts @@ -3,8 +3,6 @@ import type { HMSTrackType } from './HMSTrackType'; export class HMSVideoTrack extends HMSTrack { isDegraded?: boolean; - addSink?: Function; - removeSink?: Function; constructor(params: { trackId: string; From c1f67e00cd1ac34f1698ccdaa6fd16aadb79b7fc Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Fri, 7 Oct 2022 20:24:29 +0530 Subject: [PATCH 24/84] feat: changed preview flow --- example/src/screens/Welcome/index.tsx | 28 ++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/example/src/screens/Welcome/index.tsx b/example/src/screens/Welcome/index.tsx index 585b41679..f6938f501 100644 --- a/example/src/screens/Welcome/index.tsx +++ b/example/src/screens/Welcome/index.tsx @@ -81,15 +81,28 @@ const Welcome = () => { const peerTrackNodesRef = React.useRef>(peerTrackNodes); // listeners - const onPreviewSuccess = (data: { - room: HMSRoom; - previewTracks: HMSTrack[]; - }) => { + const onPreviewSuccess = ( + hmsInstance: HMSSDK, + hmsConfig: HMSConfig, + data: { + room: HMSRoom; + previewTracks: HMSTrack[]; + }, + ) => { console.log('data in onPreviewSuccess: ', data); setHmsRoom(data.room); setPreviewTracks(data?.previewTracks); - setPreviewButtonLoading(false); - setModalType(ModalTypes.PREVIEW); + if (data?.previewTracks?.length > 0) { + setModalType(ModalTypes.PREVIEW); + } else { + if (hmsConfig) { + hmsInstance?.join(hmsConfig); + } else { + setPreviewButtonLoading(false); + setJoinButtonLoading(false); + console.log('config: ', hmsConfig); + } + } }; const onJoinSuccess = (data: {room: HMSRoom}) => { @@ -99,6 +112,7 @@ const Welcome = () => { setPeerTrackNodes(latestPeerTrackNodes); setHmsRoom(data.room); setJoinButtonLoading(false); + setPreviewButtonLoading(false); setModalType(ModalTypes.DEFAULT); navigate('MeetingScreen'); }; @@ -175,7 +189,7 @@ const Welcome = () => { hmsInstance?.addEventListener( HMSUpdateListenerActions.ON_PREVIEW, - onPreviewSuccess, + onPreviewSuccess.bind(this, hmsInstance, hmsConfig), ); hmsInstance?.addEventListener( From 0c6673b767fcd52db562d5ed27e5a010a0a8bce0 Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Fri, 7 Oct 2022 22:49:31 +0530 Subject: [PATCH 25/84] feat: removed listeners on unmounting --- example/src/screens/MeetingScreen/index.tsx | 1 + example/src/screens/Welcome/index.tsx | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/example/src/screens/MeetingScreen/index.tsx b/example/src/screens/MeetingScreen/index.tsx index a97abc9fa..80fa177db 100644 --- a/example/src/screens/MeetingScreen/index.tsx +++ b/example/src/screens/MeetingScreen/index.tsx @@ -389,6 +389,7 @@ const DisplayView = (data: { cancelModal={() => data?.setModalVisible(ModalTypes.DEFAULT)} /> + {/* TODO: message notification */} data?.setModalVisible(ModalTypes.DEFAULT)}> diff --git a/example/src/screens/Welcome/index.tsx b/example/src/screens/Welcome/index.tsx index f6938f501..49bdefc75 100644 --- a/example/src/screens/Welcome/index.tsx +++ b/example/src/screens/Welcome/index.tsx @@ -57,7 +57,7 @@ type WelcomeScreenProp = NativeStackNavigationProp< const Welcome = () => { // hooks - const navigate = useNavigation().navigate; + const replace = useNavigation().replace; const {roomID, userName} = useSelector((state: RootState) => state.user); const {top, bottom, left, right} = useSafeAreaInsets(); const dispatch = useDispatch(); @@ -114,7 +114,7 @@ const Welcome = () => { setJoinButtonLoading(false); setPreviewButtonLoading(false); setModalType(ModalTypes.DEFAULT); - navigate('MeetingScreen'); + replace('MeetingScreen'); }; const onError = (data: HMSException) => { @@ -349,6 +349,17 @@ const Welcome = () => { }; }, [peerName]); + useEffect(() => { + return () => { + instance?.removeEventListener(HMSUpdateListenerActions.ON_PREVIEW); + instance?.removeEventListener(HMSUpdateListenerActions.ON_JOIN); + instance?.removeEventListener(HMSUpdateListenerActions.ON_ROOM_UPDATE); + instance?.removeEventListener(HMSUpdateListenerActions.ON_PEER_UPDATE); + instance?.removeEventListener(HMSUpdateListenerActions.ON_TRACK_UPDATE); + instance?.removeEventListener(HMSUpdateListenerActions.ON_ERROR); + }; + }, [instance]); + return modalType === ModalTypes.PREVIEW && previewTracks ? ( Date: Fri, 7 Oct 2022 22:56:24 +0530 Subject: [PATCH 26/84] feat: screenshare permission --- example/src/screens/MeetingScreen/index.tsx | 31 ++++++++++++--------- example/src/screens/MeetingScreen/styles.ts | 2 +- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/example/src/screens/MeetingScreen/index.tsx b/example/src/screens/MeetingScreen/index.tsx index 80fa177db..b9034d9db 100644 --- a/example/src/screens/MeetingScreen/index.tsx +++ b/example/src/screens/MeetingScreen/index.tsx @@ -683,19 +683,24 @@ const Footer = ({localPeer}: {localPeer?: HMSLocalPeer}) => { } /> ))} */} - - } - /> + {localPeer?.role?.publishSettings?.allowed?.includes('screen') && ( + + } + /> + )} console.log('onSettingsPress')} viewStyle={styles.iconContainer} diff --git a/example/src/screens/MeetingScreen/styles.ts b/example/src/screens/MeetingScreen/styles.ts index 940b1633f..a4cec7a10 100644 --- a/example/src/screens/MeetingScreen/styles.ts +++ b/example/src/screens/MeetingScreen/styles.ts @@ -395,7 +395,7 @@ const styles = StyleSheet.create({ flex: 1, width: '100%', flexDirection: 'row', - justifyContent: 'space-between', + justifyContent: 'space-around', alignItems: 'center', }, iconBotttomWrapper: { From 3c0498d7e1421d8a24b12963e5845051ce72e042 Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Tue, 11 Oct 2022 22:52:51 +0530 Subject: [PATCH 27/84] feat: onPeerListener & onTrackListener logic changes --- .../screens/MeetingScreen/DisplayTrack.tsx | 5 +- .../src/screens/MeetingScreen/GridView.tsx | 9 +- example/src/screens/MeetingScreen/index.tsx | 67 ++++++++++----- example/src/screens/MeetingScreen/styles.ts | 22 +++++ example/src/screens/Welcome/index.tsx | 11 +-- example/src/utils/functions.ts | 84 +++++-------------- 6 files changed, 101 insertions(+), 97 deletions(-) diff --git a/example/src/screens/MeetingScreen/DisplayTrack.tsx b/example/src/screens/MeetingScreen/DisplayTrack.tsx index 665442356..abef1df75 100644 --- a/example/src/screens/MeetingScreen/DisplayTrack.tsx +++ b/example/src/screens/MeetingScreen/DisplayTrack.tsx @@ -119,8 +119,9 @@ const DisplayTrack = ({ )} - {videoTrack?.source === HMSTrackSource.SCREEN - ? `${peerName}'s Screen` + {videoTrack?.source !== undefined && + videoTrack?.source !== HMSTrackSource.REGULAR + ? `${peerName}'s ${videoTrack.source}` : isLocal ? `You (${peerName})` : peerName} diff --git a/example/src/screens/MeetingScreen/GridView.tsx b/example/src/screens/MeetingScreen/GridView.tsx index 06099b138..5c4f22a21 100644 --- a/example/src/screens/MeetingScreen/GridView.tsx +++ b/example/src/screens/MeetingScreen/GridView.tsx @@ -15,8 +15,14 @@ type GridViewProps = { const GridView = ({pairedPeers}: GridViewProps) => { // hooks const {left, right, top, bottom} = useSafeAreaInsets(); + + // useRef hook const flatlistRef = useRef(null); + if (pairedPeers.length) { + flatlistRef?.current?.scrollToEnd(); + } + return ( { return ( { setRoom={setRoom} setLocalPeer={setLocalPeer} /> -
+
0 + } + publishSettingsAllowed={localPeer?.role?.publishSettings?.allowed} + audioSetMute={localPeer?.localAudioTrack()?.setMute} + audioIsMute={localPeer?.audioTrack?.isMute} + videoSetMute={localPeer?.localVideoTrack()?.setMute} + videoIsMute={localPeer?.videoTrack?.isMute} + /> ); }; @@ -341,7 +350,7 @@ const DisplayView = (data: { }; const updateLocalPeer = () => { - peerState.map(peerTrackNode => { + peerTrackNodes?.map(peerTrackNode => { if (peerTrackNode?.peer?.isLocal) { data?.setLocalPeer( new HMSLocalPeer({ @@ -366,7 +375,19 @@ const DisplayView = (data: { return ( - + {pairedPeers.length ? ( + + ) : ( + + Welcome! + + You’re the first one here. + + + Sit back and relax till the others join. + + + )} { +const Footer = ({ + isScreenShared, + publishSettingsAllowed, + audioSetMute, + audioIsMute, + videoSetMute, + videoIsMute, +}: { + isScreenShared?: boolean; + publishSettingsAllowed?: string[]; + audioSetMute?: Function; + audioIsMute?: Function; + videoSetMute?: Function; + videoIsMute?: Function; +}) => { // hooks const {hmsInstance} = useSelector((state: RootState) => state.user); const {left, right} = useSafeAreaInsets(); // constants const iconSize = 20; - const isScreenShared = - localPeer?.auxiliaryTracks && localPeer?.auxiliaryTracks?.length > 0; // functions const onStartScreenSharePress = () => { @@ -617,40 +650,36 @@ const Footer = ({localPeer}: {localPeer?: HMSLocalPeer}) => { {left, right}, ]}> - {localPeer?.role?.publishSettings?.allowed?.includes('audio') && ( + {publishSettingsAllowed?.includes('audio') && ( - localPeer - ?.localAudioTrack() - ?.setMute(!localPeer?.audioTrack?.isMute()) + audioSetMute && audioIsMute && audioSetMute(!audioIsMute()) } viewStyle={[ styles.iconContainer, - localPeer?.audioTrack?.isMute() && styles.iconMuted, + audioIsMute && audioIsMute() && styles.iconMuted, ]} LeftIcon={ } /> )} - {localPeer?.role?.publishSettings?.allowed?.includes('video') && ( + {publishSettingsAllowed?.includes('video') && ( - localPeer - ?.localVideoTrack() - ?.setMute(!localPeer?.videoTrack?.isMute()) + videoSetMute && videoIsMute && videoSetMute(!videoIsMute()) } viewStyle={[ styles.iconContainer, - localPeer?.videoTrack?.isMute() && styles.iconMuted, + videoIsMute && videoIsMute() && styles.iconMuted, ]} LeftIcon={ @@ -683,7 +712,7 @@ const Footer = ({localPeer}: {localPeer?: HMSLocalPeer}) => { } /> ))} */} - {localPeer?.role?.publishSettings?.allowed?.includes('screen') && ( + {publishSettingsAllowed?.includes('screen') && ( { previewTracks: HMSTrack[]; }, ) => { - console.log('data in onPreviewSuccess: ', data); setHmsRoom(data.room); setPreviewTracks(data?.previewTracks); if (data?.previewTracks?.length > 0) { @@ -106,10 +104,7 @@ const Welcome = () => { }; const onJoinSuccess = (data: {room: HMSRoom}) => { - console.log('data in onJoinSuccess: ', data); - const latestPeerTrackNodes = createPeerTrackNodes(data.room.peers); - dispatch(setPeerState({peerState: latestPeerTrackNodes})); - setPeerTrackNodes(latestPeerTrackNodes); + dispatch(setPeerState({peerState: peerTrackNodesRef?.current})); setHmsRoom(data.room); setJoinButtonLoading(false); setPreviewButtonLoading(false); @@ -118,7 +113,6 @@ const Welcome = () => { }; const onError = (data: HMSException) => { - console.log('data in onError: ', data); setPreviewButtonLoading(false); setJoinButtonLoading(false); Toast.showWithGravity( @@ -129,12 +123,10 @@ const Welcome = () => { }; const onRoomListener = (data: {room: HMSRoom; type: HMSRoomUpdate}) => { - console.log('data in onRoomListener: ', data); setHmsRoom(data.room); }; const onPeerListener = (data: {peer: HMSPeer; type: HMSPeerUpdate}) => { - console.log('data in onPeerListener: ', data); const newPeerTrackNodes = updatePeersTrackNodesOnPeerListener( peerTrackNodesRef?.current, data.peer, @@ -149,7 +141,6 @@ const Welcome = () => { track: HMSTrack; type: HMSTrackUpdate; }) => { - console.log('data in onTrackListener: ', data); const newPeerTrackNodes = updatePeersTrackNodesOnTrackListener( peerTrackNodesRef?.current, data.track, diff --git a/example/src/utils/functions.ts b/example/src/utils/functions.ts index 583c208f5..2a64b1beb 100644 --- a/example/src/utils/functions.ts +++ b/example/src/utils/functions.ts @@ -363,31 +363,8 @@ export const updatePeersTrackNodesOnPeerListener = ( peer: HMSPeer, type: HMSPeerUpdate, ): PeerTrackNode[] => { - const oldPeerTrackNodes: PeerTrackNode[] = peerTrackNodes; - if (type === HMSPeerUpdate.PEER_JOINED) { - let alreadyPresent = false; - const updatePeerTrackNodes = oldPeerTrackNodes?.map(peerTrackNode => { - if (peerTrackNode.peer.peerID === peer.peerID) { - alreadyPresent = true; - return { - ...peerTrackNode, - peer, - }; - } - return peerTrackNode; - }); - if (alreadyPresent) { - return updatePeerTrackNodes; - } else { - const newPeerTrackNode: PeerTrackNode = { - id: peer.peerID + HMSTrackSource.REGULAR, - peer, - track: peer.videoTrack, - }; - updatePeerTrackNodes?.push(newPeerTrackNode); - return updatePeerTrackNodes; - } - } else if (type === HMSPeerUpdate.PEER_LEFT) { + const oldPeerTrackNodes = peerTrackNodes; + if (type === HMSPeerUpdate.PEER_LEFT) { return oldPeerTrackNodes?.filter(peerTrackNode => { if (peerTrackNode.peer.peerID === peer.peerID) { return false; @@ -416,14 +393,10 @@ export const updatePeersTrackNodesOnTrackListener = ( const oldPeerTrackNodes: PeerTrackNode[] = peerTrackNodes; const uniqueId = peer.peerID + - (track.source === undefined || track.source === HMSTrackSource.REGULAR - ? HMSTrackSource.REGULAR - : track.trackId); + (track.source === undefined ? HMSTrackSource.REGULAR : track.source); const isVideo = track.type === HMSTrackType.VIDEO; - if ( - type === HMSTrackUpdate.TRACK_ADDED - // && !(track.source === HMSTrackSource.SCREEN && peer.isLocal) // add this condition to remove local screenshare - ) { + + if (type === HMSTrackUpdate.TRACK_ADDED) { let alreadyPresent = false; const updatePeerTrackNodes = oldPeerTrackNodes?.map(peerTrackNode => { if (peerTrackNode.id === uniqueId) { @@ -445,21 +418,23 @@ export const updatePeersTrackNodesOnTrackListener = ( }); if (alreadyPresent) { return updatePeerTrackNodes; - } else if (!alreadyPresent && isVideo) { - const newPeerTrackNode: PeerTrackNode = { - id: uniqueId, - peer, - track, - }; - // push screenshare track to 0th index - if (track.source === HMSTrackSource.SCREEN) { - return [newPeerTrackNode, ...updatePeerTrackNodes]; + } else { + let newPeerTrackNode: PeerTrackNode; + if (isVideo) { + newPeerTrackNode = { + id: uniqueId, + peer, + track, + }; } else { - updatePeerTrackNodes.push(newPeerTrackNode); - return updatePeerTrackNodes; + newPeerTrackNode = { + id: uniqueId, + peer, + }; } + updatePeerTrackNodes.push(newPeerTrackNode); + return updatePeerTrackNodes; } - return oldPeerTrackNodes; } else if (type === HMSTrackUpdate.TRACK_REMOVED) { if ( track.source !== HMSTrackSource.REGULAR || @@ -575,27 +550,6 @@ export const checkPermissions = async ( }); }; -export const createPeerTrackNodes = (peers: HMSPeer[]): PeerTrackNode[] => { - return peers.map(peer => createPeerTrackNode(peer)); -}; - -export const createPeerTrackNode = ( - peer: HMSPeer, - track?: HMSTrack, -): PeerTrackNode => { - const customTrack = track ? track : peer.videoTrack; - return { - peer, - id: - peer.peerID + - (customTrack?.source === undefined || - customTrack?.source === HMSTrackSource.REGULAR - ? HMSTrackSource.REGULAR - : customTrack?.trackId), - track: customTrack, - }; -}; - export const pairData = ( unGroupedPeerTrackNodes: PeerTrackNode[], batch: number, From 525788bef47b5ec05a2c4abb91c25637bb5b402a Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Tue, 11 Oct 2022 23:47:34 +0530 Subject: [PATCH 28/84] feat: removed firebase from iOS --- example/ios/GoogleService-Info.plist | 34 - example/ios/Podfile | 1 - example/ios/Podfile.lock | 90 +- .../RNHMSExample.xcodeproj/project.pbxproj | 37 +- example/package-lock.json | 905 +----------------- example/package.json | 2 - 6 files changed, 36 insertions(+), 1033 deletions(-) delete mode 100644 example/ios/GoogleService-Info.plist diff --git a/example/ios/GoogleService-Info.plist b/example/ios/GoogleService-Info.plist deleted file mode 100644 index afb8c7355..000000000 --- a/example/ios/GoogleService-Info.plist +++ /dev/null @@ -1,34 +0,0 @@ - - - - - CLIENT_ID - 408505141940-blm1suumt10jel77l08ma9dnfl9954mn.apps.googleusercontent.com - REVERSED_CLIENT_ID - com.googleusercontent.apps.408505141940-blm1suumt10jel77l08ma9dnfl9954mn - API_KEY - AIzaSyDjQbqSjLomUlJdQ7qZBDdmGtjIOnl_WTQ - GCM_SENDER_ID - 408505141940 - PLIST_VERSION - 1 - BUNDLE_ID - live.100ms.reactnative - PROJECT_ID - reactnative-hms - STORAGE_BUCKET - reactnative-hms.appspot.com - IS_ADS_ENABLED - - IS_ANALYTICS_ENABLED - - IS_APPINVITE_ENABLED - - IS_GCM_ENABLED - - IS_SIGNIN_ENABLED - - GOOGLE_APP_ID - 1:408505141940:ios:1d2339892d9ffd8cc325e1 - - \ No newline at end of file diff --git a/example/ios/Podfile b/example/ios/Podfile index 1e96697fe..4d55589b7 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -9,7 +9,6 @@ target 'RNHMSExampleBroadcastUpload' do end target 'RNHMSExample' do - use_modular_headers! config = use_native_modules! permissions_path = '../node_modules/react-native-permissions/ios' diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 603656213..2aaf9d6b6 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -10,37 +10,6 @@ PODS: - React-Core (= 0.64.2) - React-jsi (= 0.64.2) - ReactCommon/turbomodule/core (= 0.64.2) - - Firebase/CoreOnly (9.6.0): - - FirebaseCore (= 9.6.0) - - Firebase/Crashlytics (9.6.0): - - Firebase/CoreOnly - - FirebaseCrashlytics (~> 9.6.0) - - FirebaseCore (9.6.0): - - FirebaseCoreDiagnostics (~> 9.0) - - FirebaseCoreInternal (~> 9.0) - - GoogleUtilities/Environment (~> 7.7) - - GoogleUtilities/Logger (~> 7.7) - - FirebaseCoreDiagnostics (9.6.0): - - GoogleDataTransport (< 10.0.0, >= 9.1.4) - - GoogleUtilities/Environment (~> 7.7) - - GoogleUtilities/Logger (~> 7.7) - - nanopb (< 2.30910.0, >= 2.30908.0) - - FirebaseCoreExtension (9.6.0): - - FirebaseCore (~> 9.0) - - FirebaseCoreInternal (9.6.0): - - "GoogleUtilities/NSData+zlib (~> 7.7)" - - FirebaseCrashlytics (9.6.0): - - FirebaseCore (~> 9.0) - - FirebaseInstallations (~> 9.0) - - GoogleDataTransport (< 10.0.0, >= 9.1.4) - - GoogleUtilities/Environment (~> 7.7) - - nanopb (< 2.30910.0, >= 2.30908.0) - - PromisesObjC (~> 2.1) - - FirebaseInstallations (9.6.0): - - FirebaseCore (~> 9.0) - - GoogleUtilities/Environment (~> 7.7) - - GoogleUtilities/UserDefaults (~> 7.7) - - PromisesObjC (~> 2.1) - Flipper (0.75.1): - Flipper-Folly (~> 2.5) - Flipper-RSocket (~> 1.3) @@ -88,34 +57,17 @@ PODS: - FlipperKit/Core - FlipperKit/FlipperKitNetworkPlugin - glog (0.3.5) - - GoogleDataTransport (9.2.0): - - GoogleUtilities/Environment (~> 7.7) - - nanopb (< 2.30910.0, >= 2.30908.0) - - PromisesObjC (< 3.0, >= 1.2) - - GoogleUtilities/Environment (7.8.0): - - PromisesObjC (< 3.0, >= 1.2) - - GoogleUtilities/Logger (7.8.0): - - GoogleUtilities/Environment - - "GoogleUtilities/NSData+zlib (7.8.0)" - - GoogleUtilities/UserDefaults (7.8.0): - - GoogleUtilities/Logger - hermes-engine (0.7.2) - HMSBroadcastExtensionSDK (0.0.3) - HMSSDK (0.4.5): - HMSWebRTC (= 1.0.4898) - HMSWebRTC (1.0.4898) - libevent (2.1.12) - - nanopb (2.30909.0): - - nanopb/decode (= 2.30909.0) - - nanopb/encode (= 2.30909.0) - - nanopb/decode (2.30909.0) - - nanopb/encode (2.30909.0) - OpenSSL-Universal (1.1.180) - Permission-Camera (3.4.0): - RNPermissions - Permission-Microphone (3.4.0): - RNPermissions - - PromisesObjC (2.1.1) - RCT-Folly (2020.01.13.00): - boost-for-react-native - DoubleConversion @@ -420,14 +372,6 @@ PODS: - React-Core - RNDeviceInfo (9.0.2): - React-Core - - RNFBApp (15.7.0): - - Firebase/CoreOnly (= 9.6.0) - - React-Core - - RNFBCrashlytics (15.7.0): - - Firebase/Crashlytics (= 9.6.0) - - FirebaseCoreExtension (= 9.6.0) - - React-Core - - RNFBApp - RNFS (2.20.0): - React-Core - RNGestureHandler (1.10.3): @@ -511,8 +455,6 @@ DEPENDENCIES: - rn-fetch-blob (from `../node_modules/rn-fetch-blob`) - "RNCPicker (from `../node_modules/@react-native-picker/picker`)" - RNDeviceInfo (from `../node_modules/react-native-device-info`) - - "RNFBApp (from `../node_modules/@react-native-firebase/app`)" - - "RNFBCrashlytics (from `../node_modules/@react-native-firebase/crashlytics`)" - RNFS (from `../node_modules/react-native-fs`) - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) - RNPermissions (from `../node_modules/react-native-permissions`) @@ -525,13 +467,6 @@ SPEC REPOS: trunk: - boost-for-react-native - CocoaAsyncSocket - - Firebase - - FirebaseCore - - FirebaseCoreDiagnostics - - FirebaseCoreExtension - - FirebaseCoreInternal - - FirebaseCrashlytics - - FirebaseInstallations - Flipper - Flipper-DoubleConversion - Flipper-Folly @@ -539,16 +474,12 @@ SPEC REPOS: - Flipper-PeerTalk - Flipper-RSocket - FlipperKit - - GoogleDataTransport - - GoogleUtilities - hermes-engine - HMSBroadcastExtensionSDK - HMSSDK - HMSWebRTC - libevent - - nanopb - OpenSSL-Universal - - PromisesObjC - Toast - YogaKit @@ -631,10 +562,6 @@ EXTERNAL SOURCES: :path: "../node_modules/@react-native-picker/picker" RNDeviceInfo: :path: "../node_modules/react-native-device-info" - RNFBApp: - :path: "../node_modules/@react-native-firebase/app" - RNFBCrashlytics: - :path: "../node_modules/@react-native-firebase/crashlytics" RNFS: :path: "../node_modules/react-native-fs" RNGestureHandler: @@ -655,14 +582,7 @@ SPEC CHECKSUMS: CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 DoubleConversion: cf9b38bf0b2d048436d9a82ad2abe1404f11e7de FBLazyVector: e686045572151edef46010a6f819ade377dfeb4b - FBReactNativeSpec: 0094aca9cd5d4a79abcb5a2c1d1f52d0c106aaf9 - Firebase: 5ae8b7cf8efce559a653aef0ad95bab3f427c351 - FirebaseCore: 2082fffcd855f95f883c0a1641133eb9bbe76d40 - FirebaseCoreDiagnostics: 99a495094b10a57eeb3ae8efa1665700ad0bdaa6 - FirebaseCoreExtension: e83465d1236b166d1d445bbf0e82b65acb30b73b - FirebaseCoreInternal: bca76517fe1ed381e989f5e7d8abb0da8d85bed3 - FirebaseCrashlytics: 3210572ddb77801e5a0bd9d7bc890769f2066a0c - FirebaseInstallations: 0a115432c4e223c5ab20b0dbbe4cbefa793a0e8e + FBReactNativeSpec: 978556cb9c183a32af51f818206b201b3deb0d1e Flipper: d3da1aa199aad94455ae725e9f3aa43f3ec17021 Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41 Flipper-Folly: 755929a4f851b2fb2c347d533a23f191b008554c @@ -671,18 +591,14 @@ SPEC CHECKSUMS: Flipper-RSocket: 127954abe8b162fcaf68d2134d34dc2bd7076154 FlipperKit: 8a20b5c5fcf9436cac58551dc049867247f64b00 glog: 73c2498ac6884b13ede40eda8228cb1eee9d9d62 - GoogleDataTransport: 1c8145da7117bd68bbbed00cf304edb6a24de00f - GoogleUtilities: 1d20a6ad97ef46f67bbdec158ce00563a671ebb7 hermes-engine: 7d97ba46a1e29bacf3e3c61ecb2804a5ddd02d4f HMSBroadcastExtensionSDK: a69a4503a1708b5d51e2890d70f574b9cdfea760 HMSSDK: 7a8f5503eedffc024b959988a5bd97427c5a4ede HMSWebRTC: d3a9b2866e4a36a1d3834728a548a4a46309bb86 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 - nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431 OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b Permission-Camera: 40f43388fa8a648dc6ced73f145ef329ab3ff3fe Permission-Microphone: 62492e9e3026112dfaecd6fff87a245c3d7367b8 - PromisesObjC: ab77feca74fa2823e7af4249b8326368e61014cb RCT-Folly: ec7a233ccc97cc556cf7237f0db1ff65b986f27c RCTRequired: 6d3e854f0e7260a648badd0d44fc364bc9da9728 RCTTypeSafety: c1f31d19349c6b53085766359caac425926fafaa @@ -716,8 +632,6 @@ SPEC CHECKSUMS: rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba RNCPicker: 2f71e09c52ab6327e2c393213368ea0e5bfbcb65 RNDeviceInfo: 1e3f62b9ec32f7754fac60bd06b8f8a27124e7f0 - RNFBApp: c3c9e694e9d34c14250a069916eb05785c5f3c32 - RNFBCrashlytics: bb410a988e8660fbbe5a7032ff4ecec267dbd4f7 RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211 RNPermissions: eac721f71748c4472d6e876038270b75397d6ee7 @@ -728,6 +642,6 @@ SPEC CHECKSUMS: Yoga: 575c581c63e0d35c9a83f4b46d01d63abc1100ac YogaKit: f782866e155069a2cca2517aafea43200b01fd5a -PODFILE CHECKSUM: 27e94c9f5f5bfea5838ae4c586569d4f51d6d569 +PODFILE CHECKSUM: 1cbf5cea767af9f4795d6c33efc5d75f3a1039f7 COCOAPODS: 1.11.3 diff --git a/example/ios/RNHMSExample.xcodeproj/project.pbxproj b/example/ios/RNHMSExample.xcodeproj/project.pbxproj index 0cb47e4b4..c662855c0 100644 --- a/example/ios/RNHMSExample.xcodeproj/project.pbxproj +++ b/example/ios/RNHMSExample.xcodeproj/project.pbxproj @@ -18,7 +18,6 @@ A987F91A2848F8790078014C /* Inter-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A987F9172848F6A80078014C /* Inter-Regular.ttf */; }; C7FE391A6EAC0B7942FA85ED /* libPods-RNHMSExample-RNHMSExampleTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DACAD29EF3E1331792A2A6D4 /* libPods-RNHMSExample-RNHMSExampleTests.a */; }; CB0E5AEE35E310D8B0F98AEB /* libPods-RNHMSExampleBroadcastUpload.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 54CC37EB010A825DE92012B6 /* libPods-RNHMSExampleBroadcastUpload.a */; }; - EC91371E28F0515C00B7B8AF /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = EC91371D28F0515C00B7B8AF /* GoogleService-Info.plist */; }; ECD6520728B3BADE007B5AF8 /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECD6520628B3BADE007B5AF8 /* ReplayKit.framework */; }; ECD6520A28B3BADE007B5AF8 /* SampleHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECD6520928B3BADE007B5AF8 /* SampleHandler.swift */; }; ECD6520E28B3BADE007B5AF8 /* RNHMSExampleBroadcastUpload.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = ECD6520528B3BADE007B5AF8 /* RNHMSExampleBroadcastUpload.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; @@ -77,7 +76,6 @@ A987F9172848F6A80078014C /* Inter-Regular.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Inter-Regular.ttf"; sourceTree = ""; }; D0BEB2D493E8A5BBFF46F92B /* libPods-RNHMSExample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNHMSExample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; DACAD29EF3E1331792A2A6D4 /* libPods-RNHMSExample-RNHMSExampleTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNHMSExample-RNHMSExampleTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - EC91371D28F0515C00B7B8AF /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; ECA3437726C3E17E007CB7C3 /* RNHMSExample.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = RNHMSExample.entitlements; path = RNHMSExample/RNHMSExample.entitlements; sourceTree = ""; }; ECD6520528B3BADE007B5AF8 /* RNHMSExampleBroadcastUpload.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = RNHMSExampleBroadcastUpload.appex; sourceTree = BUILT_PRODUCTS_DIR; }; ECD6520628B3BADE007B5AF8 /* ReplayKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ReplayKit.framework; path = System/Library/Frameworks/ReplayKit.framework; sourceTree = SDKROOT; }; @@ -125,7 +123,6 @@ 13B07FB01A68108700A75B9A /* AppDelegate.m */, 13B07FB51A68108700A75B9A /* Images.xcassets */, 13B07FB61A68108700A75B9A /* Info.plist */, - EC91371D28F0515C00B7B8AF /* GoogleService-Info.plist */, 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, 13B07FB71A68108700A75B9A /* main.m */, ); @@ -248,8 +245,6 @@ ECD6520F28B3BADE007B5AF8 /* Embed App Extensions */, DDF0F48D1FB1854DCCE6567F /* [CP] Embed Pods Frameworks */, E67B67B5F697CD37CA2EBE06 /* [CP] Copy Pods Resources */, - DB416C4F57CD12BE74E94318 /* [CP-User] [RNFB] Core Configuration */, - C46E809FD5E467065017742D /* [CP-User] [RNFB] Crashlytics Configuration */, ); buildRules = ( ); @@ -338,7 +333,6 @@ A987F91A2848F8790078014C /* Inter-Regular.ttf in Resources */, 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, - EC91371E28F0515C00B7B8AF /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -449,20 +443,6 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests-resources.sh\"\n"; showEnvVarsInLog = 0; }; - C46E809FD5E467065017742D /* [CP-User] [RNFB] Crashlytics Configuration */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}", - "$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)", - ); - name = "[CP-User] [RNFB] Crashlytics Configuration"; - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\nif [[ ${PODS_ROOT} ]]; then\n echo \"info: Exec FirebaseCrashlytics Run from Pods\"\n \"${PODS_ROOT}/FirebaseCrashlytics/run\"\nelse\n echo \"info: Exec FirebaseCrashlytics Run from framework\"\n \"${PROJECT_DIR}/FirebaseCrashlytics.framework/run\"\nfi\n"; - }; D69A5E9D6F58B3126781A68F /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -480,19 +460,6 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNHMSExample-RNHMSExampleTests/Pods-RNHMSExample-RNHMSExampleTests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - DB416C4F57CD12BE74E94318 /* [CP-User] [RNFB] Core Configuration */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)", - ); - name = "[CP-User] [RNFB] Core Configuration"; - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\n_MAX_LOOKUPS=2;\n_SEARCH_RESULT=''\n_RN_ROOT_EXISTS=''\n_CURRENT_LOOKUPS=1\n_JSON_ROOT=\"'react-native'\"\n_JSON_FILE_NAME='firebase.json'\n_JSON_OUTPUT_BASE64='e30=' # { }\n_CURRENT_SEARCH_DIR=${PROJECT_DIR}\n_PLIST_BUDDY=/usr/libexec/PlistBuddy\n_TARGET_PLIST=\"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n_DSYM_PLIST=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n\n# plist arrays\n_PLIST_ENTRY_KEYS=()\n_PLIST_ENTRY_TYPES=()\n_PLIST_ENTRY_VALUES=()\n\nfunction setPlistValue {\n echo \"info: setting plist entry '$1' of type '$2' in file '$4'\"\n ${_PLIST_BUDDY} -c \"Add :$1 $2 '$3'\" $4 || echo \"info: '$1' already exists\"\n}\n\nfunction getFirebaseJsonKeyValue () {\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n ruby -Ku -e \"require 'rubygems';require 'json'; output=JSON.parse('$1'); puts output[$_JSON_ROOT]['$2']\"\n else\n echo \"\"\n fi;\n}\n\nfunction jsonBoolToYesNo () {\n if [[ $1 == \"false\" ]]; then\n echo \"NO\"\n elif [[ $1 == \"true\" ]]; then\n echo \"YES\"\n else echo \"NO\"\n fi\n}\n\necho \"info: -> RNFB build script started\"\necho \"info: 1) Locating ${_JSON_FILE_NAME} file:\"\n\nif [[ -z ${_CURRENT_SEARCH_DIR} ]]; then\n _CURRENT_SEARCH_DIR=$(pwd)\nfi;\n\nwhile true; do\n _CURRENT_SEARCH_DIR=$(dirname \"$_CURRENT_SEARCH_DIR\")\n if [[ \"$_CURRENT_SEARCH_DIR\" == \"/\" ]] || [[ ${_CURRENT_LOOKUPS} -gt ${_MAX_LOOKUPS} ]]; then break; fi;\n echo \"info: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file.\"\n _SEARCH_RESULT=$(find \"$_CURRENT_SEARCH_DIR\" -maxdepth 2 -name ${_JSON_FILE_NAME} -print | /usr/bin/head -n 1)\n if [[ ${_SEARCH_RESULT} ]]; then\n echo \"info: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT\"\n break;\n fi;\n _CURRENT_LOOKUPS=$((_CURRENT_LOOKUPS+1))\ndone\n\nif [[ ${_SEARCH_RESULT} ]]; then\n _JSON_OUTPUT_RAW=$(cat \"${_SEARCH_RESULT}\")\n _RN_ROOT_EXISTS=$(ruby -Ku -e \"require 'rubygems';require 'json'; output=JSON.parse('$_JSON_OUTPUT_RAW'); puts output[$_JSON_ROOT]\" || echo '')\n\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n if ! python3 --version >/dev/null 2>&1; then echo \"python3 not found, firebase.json file processing error.\" && exit 1; fi\n _JSON_OUTPUT_BASE64=$(python3 -c 'import json,sys,base64;print(base64.b64encode(bytes(json.dumps(json.loads(open('\"'${_SEARCH_RESULT}'\"', '\"'rb'\"').read())['${_JSON_ROOT}']), '\"'utf-8'\"')).decode())' || echo \"e30=\")\n fi\n\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n\n # config.app_data_collection_default_enabled\n _APP_DATA_COLLECTION_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_data_collection_default_enabled\")\n if [[ $_APP_DATA_COLLECTION_ENABLED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseDataCollectionDefaultEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_DATA_COLLECTION_ENABLED\")\")\n fi\n\n # config.analytics_auto_collection_enabled\n _ANALYTICS_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_auto_collection_enabled\")\n if [[ $_ANALYTICS_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_COLLECTION\")\")\n fi\n\n # config.analytics_collection_deactivated\n _ANALYTICS_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_collection_deactivated\")\n if [[ $_ANALYTICS_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_DEACTIVATED\")\")\n fi\n\n # config.analytics_idfv_collection_enabled\n _ANALYTICS_IDFV_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_idfv_collection_enabled\")\n if [[ $_ANALYTICS_IDFV_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_IDFV_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_IDFV_COLLECTION\")\")\n fi\n\n # config.analytics_default_allow_ad_personalization_signals\n _ANALYTICS_PERSONALIZATION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_personalization_signals\")\n if [[ $_ANALYTICS_PERSONALIZATION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_PERSONALIZATION\")\")\n fi\n\n # config.analytics_registration_with_ad_network_enabled\n _ANALYTICS_REGISTRATION_WITH_AD_NETWORK=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"google_analytics_registration_with_ad_network_enabled\")\n if [[ $_ANALYTICS_REGISTRATION_WITH_AD_NETWORK ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_REGISTRATION_WITH_AD_NETWORK_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_REGISTRATION_WITH_AD_NETWORK\")\")\n fi\n\n # config.google_analytics_automatic_screen_reporting_enabled\n _ANALYTICS_AUTO_SCREEN_REPORTING=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"google_analytics_automatic_screen_reporting_enabled\")\n if [[ $_ANALYTICS_AUTO_SCREEN_REPORTING ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAutomaticScreenReportingEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_SCREEN_REPORTING\")\")\n fi\n\n # config.perf_auto_collection_enabled\n _PERF_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_auto_collection_enabled\")\n if [[ $_PERF_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_enabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_AUTO_COLLECTION\")\")\n fi\n\n # config.perf_collection_deactivated\n _PERF_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_collection_deactivated\")\n if [[ $_PERF_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_deactivated\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_DEACTIVATED\")\")\n fi\n\n # config.messaging_auto_init_enabled\n _MESSAGING_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"messaging_auto_init_enabled\")\n if [[ $_MESSAGING_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseMessagingAutoInitEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_MESSAGING_AUTO_INIT\")\")\n fi\n\n # config.in_app_messaging_auto_colllection_enabled\n _FIAM_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"in_app_messaging_auto_collection_enabled\")\n if [[ $_FIAM_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseInAppMessagingAutomaticDataCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_FIAM_AUTO_INIT\")\")\n fi\n\n # config.app_check_token_auto_refresh\n _APP_CHECK_TOKEN_AUTO_REFRESH=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_check_token_auto_refresh\")\n if [[ $_APP_CHECK_TOKEN_AUTO_REFRESH ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAppCheckTokenAutoRefreshEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_CHECK_TOKEN_AUTO_REFRESH\")\")\n fi\n\n # config.crashlytics_disable_auto_disabler - undocumented for now - mainly for debugging, document if becomes useful\n _CRASHLYTICS_AUTO_DISABLE_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"crashlytics_disable_auto_disabler\")\n if [[ $_CRASHLYTICS_AUTO_DISABLE_ENABLED == \"true\" ]]; then\n echo \"Disabled Crashlytics auto disabler.\" # do nothing\n else\n _PLIST_ENTRY_KEYS+=(\"FirebaseCrashlyticsCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"NO\")\n fi\nelse\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n echo \"warning: A firebase.json file was not found, whilst this file is optional it is recommended to include it to configure firebase services in React Native Firebase.\"\nfi;\n\necho \"info: 2) Injecting Info.plist entries: \"\n\n# Log out the keys we're adding\nfor i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n echo \" -> $i) ${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\"\ndone\n\nfor plist in \"${_TARGET_PLIST}\" \"${_DSYM_PLIST}\" ; do\n if [[ -f \"${plist}\" ]]; then\n\n # paths with spaces break the call to setPlistValue. temporarily modify\n # the shell internal field separator variable (IFS), which normally\n # includes spaces, to consist only of line breaks\n oldifs=$IFS\n IFS=\"\n\"\n\n for i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n setPlistValue \"${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\" \"${plist}\"\n done\n\n # restore the original internal field separator value\n IFS=$oldifs\n else\n echo \"warning: A Info.plist build output file was not found (${plist})\"\n fi\ndone\n\necho \"info: <- RNFB build script finished\"\n"; - }; DDF0F48D1FB1854DCCE6567F /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -759,7 +726,7 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -824,7 +791,7 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; diff --git a/example/package-lock.json b/example/package-lock.json index cf0911373..4c895f149 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -10,8 +10,6 @@ "dependencies": { "@miblanchard/react-native-slider": "^2.0.2", "@react-native-camera-roll/camera-roll": "^5.0.2", - "@react-native-firebase/app": "^15.7.0", - "@react-native-firebase/crashlytics": "^15.7.0", "@react-native-picker/picker": "^2.0.0", "@react-native/normalize-color": "^2.0.0", "@react-navigation/native": "^6.0.8", @@ -1952,277 +1950,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", - "dependencies": { - "@expo/config-types": "^46.0.0", - "@expo/json-file": "8.2.36", - "@expo/plist": "0.0.18", - "@expo/sdk-runtime-versions": "^1.0.0", - "@react-native/normalize-color": "^2.0.0", - "chalk": "^4.1.2", - "debug": "^4.3.1", - "find-up": "~5.0.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "resolve-from": "^5.0.0", - "semver": "^7.3.5", - "slash": "^3.0.0", - "xcode": "^3.0.1", - "xml2js": "0.4.23" - } - }, - "node_modules/@expo/config-plugins/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/@expo/config-plugins/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@expo/config-plugins/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/@expo/config-plugins/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/@expo/config-plugins/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@expo/config-plugins/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@expo/config-plugins/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@expo/config-plugins/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@expo/config-plugins/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@expo/config-plugins/node_modules/p-locate": { - "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==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@expo/config-plugins/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@expo/config-plugins/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/@expo/config-plugins/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@expo/config-plugins/node_modules/uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@expo/config-plugins/node_modules/xcode": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", - "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", - "dependencies": { - "simple-plist": "^1.1.0", - "uuid": "^7.0.3" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "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==" - }, - "node_modules/@expo/json-file": { - "version": "8.2.36", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz", - "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==", - "dependencies": { - "@babel/code-frame": "~7.10.4", - "json5": "^1.0.1", - "write-file-atomic": "^2.3.0" - } - }, - "node_modules/@expo/json-file/node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "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==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/@expo/json-file/node_modules/write-file-atomic": { - "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==", - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "node_modules/@expo/plist": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz", - "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==", - "dependencies": { - "@xmldom/xmldom": "~0.7.0", - "base64-js": "^1.2.3", - "xmlbuilder": "^14.0.0" - } - }, - "node_modules/@expo/plist/node_modules/xmlbuilder": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-14.0.0.tgz", - "integrity": "sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==", - "engines": { - "node": ">=8.0" - } - }, - "node_modules/@expo/sdk-runtime-versions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", - "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==" - }, "node_modules/@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -3675,32 +3402,6 @@ "integrity": "sha512-o6aam+0Ug1xGK3ABYmBm0B1YuEKfM/5kaoZO0eHbZwSpw9UzDX4G5y4Nx/K20FHqUmJHkZmLvOUFYwN4N+HqKA==", "dev": true }, - "node_modules/@react-native-firebase/app": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/@react-native-firebase/app/-/app-15.7.0.tgz", - "integrity": "sha512-ZyrvewIkQC0UHDuHxXyc25/V8xYOa4xlukIHIbtJeBzVCCyVgZxF4Svyqs+CosqbHOuwWnmg+AW0rMvjrRcdmw==", - "dependencies": { - "@expo/config-plugins": "^5.0.1", - "opencollective-postinstall": "^2.0.1", - "superstruct": "^0.6.2" - }, - "peerDependencies": { - "react": "*", - "react-native": "*" - } - }, - "node_modules/@react-native-firebase/crashlytics": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/@react-native-firebase/crashlytics/-/crashlytics-15.7.0.tgz", - "integrity": "sha512-RTEZErJA+VhiwKqdlErSw/9msy6F8EonhTVw/VDNgCwUjN+cfWhSOpp8XG6dp2slTNeU1HtjAG8hA5G49s3rVQ==", - "dependencies": { - "@expo/config-plugins": "^5.0.1", - "stacktrace-js": "^2.0.0" - }, - "peerDependencies": { - "@react-native-firebase/app": "15.7.0" - } - }, "node_modules/@react-native-picker/picker": { "version": "2.4.6", "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.6.tgz", @@ -4236,14 +3937,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@xmldom/xmldom": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz", - "integrity": "sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==", - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -7141,17 +6834,6 @@ "node": ">=0.10.0" } }, - "node_modules/for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -7340,14 +7022,6 @@ "node": ">=0.10.0" } }, - "node_modules/getenv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", - "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", - "engines": { - "node": ">=6" - } - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -10253,6 +9927,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -10872,34 +10547,6 @@ "node": ">=0.10.0" } }, - "node_modules/mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==", - "dependencies": { - "for-in": "^0.1.3", - "is-extendable": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-object/node_modules/for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-object/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==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -11403,14 +11050,6 @@ "node": ">=4" } }, - "node_modules/opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", - "bin": { - "opencollective-postinstall": "index.js" - } - }, "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -12674,6 +12313,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, "engines": { "node": ">=8" } @@ -13652,14 +13292,6 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, - "node_modules/stack-generator": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", - "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", - "dependencies": { - "stackframe": "^1.3.4" - } - }, "node_modules/stack-utils": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", @@ -13686,33 +13318,6 @@ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, - "node_modules/stacktrace-gps": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz", - "integrity": "sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==", - "dependencies": { - "source-map": "0.5.6", - "stackframe": "^1.3.4" - } - }, - "node_modules/stacktrace-gps/node_modules/source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stacktrace-js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz", - "integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==", - "dependencies": { - "error-stack-parser": "^2.0.6", - "stack-generator": "^2.0.5", - "stacktrace-gps": "^3.0.4" - } - }, "node_modules/stacktrace-parser": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", @@ -13961,84 +13566,32 @@ "node": ">=0.10.0" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==" - }, - "node_modules/superstruct": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.6.2.tgz", - "integrity": "sha512-lvA97MFAJng3rfjcafT/zGTSWm6Tbpk++DP6It4Qg7oNaeM+2tdJMuVgGje21/bIpBEs6iQql1PJH6dKTjl4Ig==", - "dependencies": { - "clone-deep": "^2.0.1", - "kind-of": "^6.0.1" - } - }, - "node_modules/superstruct/node_modules/clone-deep": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", - "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", - "dependencies": { - "for-own": "^1.0.0", - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.0", - "shallow-clone": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/superstruct/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/superstruct/node_modules/shallow-clone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", - "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", - "dependencies": { - "is-extendable": "^0.1.1", - "kind-of": "^5.0.0", - "mixin-object": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/superstruct/node_modules/shallow-clone/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, + "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==" + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -15038,26 +14591,6 @@ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xml2js/node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "engines": { - "node": ">=4.0" - } - }, "node_modules/xmlbuilder": { "version": "15.1.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", @@ -15096,7 +14629,8 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/yargs": { "version": "15.4.1", @@ -15130,17 +14664,6 @@ "engines": { "node": ">=6" } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } } }, "dependencies": { @@ -16423,211 +15946,6 @@ } } }, - "@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==", - "requires": { - "@expo/config-types": "^46.0.0", - "@expo/json-file": "8.2.36", - "@expo/plist": "0.0.18", - "@expo/sdk-runtime-versions": "^1.0.0", - "@react-native/normalize-color": "^2.0.0", - "chalk": "^4.1.2", - "debug": "^4.3.1", - "find-up": "~5.0.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "resolve-from": "^5.0.0", - "semver": "^7.3.5", - "slash": "^3.0.0", - "xcode": "^3.0.1", - "xml2js": "0.4.23" - }, - "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" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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==" - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "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==", - "requires": { - "p-limit": "^3.0.2" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "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": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" - }, - "xcode": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", - "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", - "requires": { - "simple-plist": "^1.1.0", - "uuid": "^7.0.3" - } - } - } - }, - "@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==" - }, - "@expo/json-file": { - "version": "8.2.36", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz", - "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==", - "requires": { - "@babel/code-frame": "~7.10.4", - "json5": "^1.0.1", - "write-file-atomic": "^2.3.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "write-file-atomic": { - "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==", - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - } - } - }, - "@expo/plist": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz", - "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==", - "requires": { - "@xmldom/xmldom": "~0.7.0", - "base64-js": "^1.2.3", - "xmlbuilder": "^14.0.0" - }, - "dependencies": { - "xmlbuilder": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-14.0.0.tgz", - "integrity": "sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==" - } - } - }, - "@expo/sdk-runtime-versions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", - "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==" - }, "@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -17761,25 +17079,6 @@ "integrity": "sha512-o6aam+0Ug1xGK3ABYmBm0B1YuEKfM/5kaoZO0eHbZwSpw9UzDX4G5y4Nx/K20FHqUmJHkZmLvOUFYwN4N+HqKA==", "dev": true }, - "@react-native-firebase/app": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/@react-native-firebase/app/-/app-15.7.0.tgz", - "integrity": "sha512-ZyrvewIkQC0UHDuHxXyc25/V8xYOa4xlukIHIbtJeBzVCCyVgZxF4Svyqs+CosqbHOuwWnmg+AW0rMvjrRcdmw==", - "requires": { - "@expo/config-plugins": "^5.0.1", - "opencollective-postinstall": "^2.0.1", - "superstruct": "^0.6.2" - } - }, - "@react-native-firebase/crashlytics": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/@react-native-firebase/crashlytics/-/crashlytics-15.7.0.tgz", - "integrity": "sha512-RTEZErJA+VhiwKqdlErSw/9msy6F8EonhTVw/VDNgCwUjN+cfWhSOpp8XG6dp2slTNeU1HtjAG8hA5G49s3rVQ==", - "requires": { - "@expo/config-plugins": "^5.0.1", - "stacktrace-js": "^2.0.0" - } - }, "@react-native-picker/picker": { "version": "2.4.6", "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.6.tgz", @@ -18217,11 +17516,6 @@ "eslint-visitor-keys": "^1.1.0" } }, - "@xmldom/xmldom": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz", - "integrity": "sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==" - }, "abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -20441,14 +19735,6 @@ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==" }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", - "requires": { - "for-in": "^1.0.1" - } - }, "form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -20579,11 +19865,6 @@ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==" }, - "getenv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", - "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==" - }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -22761,6 +22042,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "requires": { "yallist": "^4.0.0" } @@ -23293,27 +22575,6 @@ "is-extendable": "^1.0.1" } }, - "mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==", - "requires": { - "for-in": "^0.1.3", - "is-extendable": "^0.1.1" - }, - "dependencies": { - "for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==" - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" - } - } - }, "mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -23697,11 +22958,6 @@ } } }, - "opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" - }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -24656,7 +23912,8 @@ "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true }, "resolve-url": { "version": "0.2.1", @@ -25449,14 +24706,6 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, - "stack-generator": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", - "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", - "requires": { - "stackframe": "^1.3.4" - } - }, "stack-utils": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", @@ -25479,32 +24728,6 @@ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, - "stacktrace-gps": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz", - "integrity": "sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==", - "requires": { - "source-map": "0.5.6", - "stackframe": "^1.3.4" - }, - "dependencies": { - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==" - } - } - }, - "stacktrace-js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz", - "integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==", - "requires": { - "error-stack-parser": "^2.0.6", - "stack-generator": "^2.0.5", - "stacktrace-gps": "^3.0.4" - } - }, "stacktrace-parser": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", @@ -25714,50 +24937,6 @@ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz", "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==" }, - "superstruct": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.6.2.tgz", - "integrity": "sha512-lvA97MFAJng3rfjcafT/zGTSWm6Tbpk++DP6It4Qg7oNaeM+2tdJMuVgGje21/bIpBEs6iQql1PJH6dKTjl4Ig==", - "requires": { - "clone-deep": "^2.0.1", - "kind-of": "^6.0.1" - }, - "dependencies": { - "clone-deep": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", - "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", - "requires": { - "for-own": "^1.0.0", - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.0", - "shallow-clone": "^1.0.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==" - }, - "shallow-clone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", - "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", - "requires": { - "is-extendable": "^0.1.1", - "kind-of": "^5.0.0", - "mixin-object": "^2.0.1" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - } - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -26517,22 +25696,6 @@ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "dependencies": { - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - } - } - }, "xmlbuilder": { "version": "15.1.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", @@ -26565,7 +25728,8 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "yargs": { "version": "15.4.1", @@ -26593,11 +25757,6 @@ "camelcase": "^5.0.0", "decamelize": "^1.2.0" } - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" } } } diff --git a/example/package.json b/example/package.json index 8fed77743..eb7023e74 100644 --- a/example/package.json +++ b/example/package.json @@ -13,8 +13,6 @@ "dependencies": { "@miblanchard/react-native-slider": "^2.0.2", "@react-native-camera-roll/camera-roll": "^5.0.2", - "@react-native-firebase/app": "^15.7.0", - "@react-native-firebase/crashlytics": "^15.7.0", "@react-native-picker/picker": "^2.0.0", "@react-native/normalize-color": "^2.0.0", "@react-navigation/native": "^6.0.8", From b90b907f71f54af1c80b134644a455ec2933b291 Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Wed, 12 Oct 2022 16:10:30 +0530 Subject: [PATCH 29/84] feat: android changes for cueapp --- android/build.gradle | 2 +- android/src/main/java/com/reactnativehmssdk/HMSHelper.kt | 6 +++++- example/src/screens/Welcome/index.tsx | 1 + src/classes/HMSVideoTrackSettings.ts | 3 +++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 64eb41f65..80d9d4c22 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -63,7 +63,7 @@ dependencies { //noinspection GradleDynamicVersion implementation "com.facebook.react:react-native:+" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" // From node_modules - implementation 'com.github.100mslive.android-sdk:lib:2.4.9' + implementation 'com.github.100mslive.android-sdk:lib:dev-v2-SNAPSHOT' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.3' implementation 'androidx.appcompat:appcompat:1.3.1' diff --git a/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt b/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt index 7de399dd2..1f76841cb 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt @@ -227,9 +227,13 @@ object HMSHelper { val maxBitrate = data.getInt("maxBitrate") val maxFrameRate = data.getInt("maxFrameRate") val cameraFacing = getCameraFacing(data.getString("cameraFacing")) - + var forceSoftwareDecoder = false + if (areAllRequiredKeysAvailable(data, arrayOf(Pair("forceSoftwareDecoder", "Boolean")))) { + forceSoftwareDecoder = data.getBoolean("forceSoftwareDecoder") + } builder.codec(codec) builder.cameraFacing(cameraFacing) + builder.forceSoftwareDecoder(forceSoftwareDecoder) if (resolution != null) { builder.resolution(resolution) } diff --git a/example/src/screens/Welcome/index.tsx b/example/src/screens/Welcome/index.tsx index de21b81e1..7e0cc9df9 100644 --- a/example/src/screens/Welcome/index.tsx +++ b/example/src/screens/Welcome/index.tsx @@ -244,6 +244,7 @@ const Welcome = () => { cameraFacing: HMSCameraFacing.FRONT, trackDescription: 'Simple Video Track', resolution: new HMSVideoResolution({height: 180, width: 320}), + forceSoftwareDecoder: true, }); const listOfFaultyDevices = [ diff --git a/src/classes/HMSVideoTrackSettings.ts b/src/classes/HMSVideoTrackSettings.ts index 53a1daa5f..485e6c4e1 100644 --- a/src/classes/HMSVideoTrackSettings.ts +++ b/src/classes/HMSVideoTrackSettings.ts @@ -11,6 +11,7 @@ export class HMSVideoTrackSettings { cameraFacing: HMSCameraFacing; trackDescription?: string; simulcastSettings?: HMSSimulcastLayerSettings[]; + forceSoftwareDecoder?: boolean; constructor(params: { codec: HMSVideoCodec; @@ -20,6 +21,7 @@ export class HMSVideoTrackSettings { cameraFacing: HMSCameraFacing; trackDescription?: string; simulcastSettings?: HMSSimulcastLayerSettings[]; + forceSoftwareDecoder?: boolean; }) { this.codec = params.codec; this.resolution = params.resolution; @@ -28,5 +30,6 @@ export class HMSVideoTrackSettings { this.cameraFacing = params.cameraFacing; this.trackDescription = params.trackDescription; this.simulcastSettings = params.simulcastSettings; + this.forceSoftwareDecoder = params.forceSoftwareDecoder; } } From ea825eafdae7b2a1c4e465464a8180b6a543b220 Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Wed, 12 Oct 2022 18:03:08 +0530 Subject: [PATCH 30/84] fix: going to last page again and again --- example/src/screens/MeetingScreen/GridView.tsx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/example/src/screens/MeetingScreen/GridView.tsx b/example/src/screens/MeetingScreen/GridView.tsx index 5c4f22a21..0b9715467 100644 --- a/example/src/screens/MeetingScreen/GridView.tsx +++ b/example/src/screens/MeetingScreen/GridView.tsx @@ -19,10 +19,6 @@ const GridView = ({pairedPeers}: GridViewProps) => { // useRef hook const flatlistRef = useRef(null); - if (pairedPeers.length) { - flatlistRef?.current?.scrollToEnd(); - } - return ( Date: Wed, 12 Oct 2022 18:22:14 +0530 Subject: [PATCH 31/84] feat: removed firebase from android --- example/android/app/build.gradle | 8 +------- example/android/build.gradle | 4 +--- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 8a80db153..ee9e3ec26 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -1,6 +1,4 @@ apply plugin: "com.android.application" -apply plugin: 'com.google.gms.google-services' // apply after this line -apply plugin: 'com.google.firebase.crashlytics' import com.android.build.OutputFile /** @@ -167,11 +165,7 @@ android { shrinkResources true minifyEnabled true signingConfig signingConfigs.debug - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" - firebaseCrashlytics { - nativeSymbolUploadEnabled true - unstrippedNativeLibsDir 'build/intermediates/merged_native_libs/release/out/lib' - } + proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } } diff --git a/example/android/build.gradle b/example/android/build.gradle index 15c8273f1..c74b01245 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -13,9 +13,7 @@ buildscript { } dependencies { classpath('com.android.tools.build:gradle:4.2.2') - classpath 'com.google.gms:google-services:4.3.14' - classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2' - // NOTE: Do not place your application dependencies here; they belong + // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } From 82d0cabfdc1bae1941ade25b1859b08bacd9b848 Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Thu, 13 Oct 2022 13:46:27 +0530 Subject: [PATCH 32/84] fix: mute & unmute for local peer --- example/src/screens/MeetingScreen/index.tsx | 55 +++++++----------- example/src/screens/Welcome/index.tsx | 62 ++++++++++++++++++++- example/src/screens/Welcome/styles.ts | 31 +++++++++++ example/src/utils/types.ts | 1 + 4 files changed, 111 insertions(+), 38 deletions(-) diff --git a/example/src/screens/MeetingScreen/index.tsx b/example/src/screens/MeetingScreen/index.tsx index ff012a6c8..7b3254024 100644 --- a/example/src/screens/MeetingScreen/index.tsx +++ b/example/src/screens/MeetingScreen/index.tsx @@ -75,16 +75,7 @@ const Meeting = () => { setRoom={setRoom} setLocalPeer={setLocalPeer} /> -
0 - } - publishSettingsAllowed={localPeer?.role?.publishSettings?.allowed} - audioSetMute={localPeer?.localAudioTrack()?.setMute} - audioIsMute={localPeer?.audioTrack?.isMute} - videoSetMute={localPeer?.localVideoTrack()?.setMute} - videoIsMute={localPeer?.videoTrack?.isMute} - /> +
); }; @@ -545,13 +536,13 @@ const Header = ({ {isScreenShared && ( )} - console.log('onParticipantsPress')} viewStyle={styles.iconContainer} LeftIcon={ } - /> + /> */} { +const Footer = ({localPeer}: {localPeer?: HMSLocalPeer}) => { // hooks const {hmsInstance} = useSelector((state: RootState) => state.user); const {left, right} = useSafeAreaInsets(); // constants const iconSize = 20; + const isScreenShared = + localPeer?.auxiliaryTracks && localPeer?.auxiliaryTracks?.length > 0; // functions const onStartScreenSharePress = () => { @@ -650,36 +629,40 @@ const Footer = ({ {left, right}, ]}> - {publishSettingsAllowed?.includes('audio') && ( + {localPeer?.role?.publishSettings?.allowed?.includes('audio') && ( - audioSetMute && audioIsMute && audioSetMute(!audioIsMute()) + localPeer + ?.localAudioTrack() + ?.setMute(!localPeer?.audioTrack?.isMute()) } viewStyle={[ styles.iconContainer, - audioIsMute && audioIsMute() && styles.iconMuted, + localPeer?.audioTrack?.isMute() && styles.iconMuted, ]} LeftIcon={ } /> )} - {publishSettingsAllowed?.includes('video') && ( + {localPeer?.role?.publishSettings?.allowed?.includes('video') && ( - videoSetMute && videoIsMute && videoSetMute(!videoIsMute()) + localPeer + ?.localVideoTrack() + ?.setMute(!localPeer?.videoTrack?.isMute()) } viewStyle={[ styles.iconContainer, - videoIsMute && videoIsMute() && styles.iconMuted, + localPeer?.videoTrack?.isMute() && styles.iconMuted, ]} LeftIcon={ @@ -712,7 +695,7 @@ const Footer = ({ } /> ))} */} - {publishSettingsAllowed?.includes('screen') && ( + {localPeer?.role?.publishSettings?.allowed?.includes('screen') && ( { const [previewTracks, setPreviewTracks] = useState(); const [hmsRoom, setHmsRoom] = useState(); const [modalType, setModalType] = useState(ModalTypes.DEFAULT); + const [forceSoftwareDecoder, setForceSoftwareDecoder] = useState(true); + const [mirrorLocalVideo, setMirrorLocalVideo] = useState(false); // useRef hook const peerTrackNodesRef = React.useRef>(peerTrackNodes); @@ -210,6 +219,7 @@ const Welcome = () => { userName: userID, roomCode, hmsInstance, + mirrorLocalVideo, }), ); @@ -244,7 +254,7 @@ const Welcome = () => { cameraFacing: HMSCameraFacing.FRONT, trackDescription: 'Simple Video Track', resolution: new HMSVideoResolution({height: 180, width: 320}), - forceSoftwareDecoder: true, + forceSoftwareDecoder, }); const listOfFaultyDevices = [ @@ -365,6 +375,54 @@ const Welcome = () => { enabled={Platform.OS === 'ios'} behavior="padding" style={styles.container}> + + setModalType(ModalTypes.DEFAULT)} + style={styles.settingsMenuContainer}> + { + setModalType(ModalTypes.DEFAULT); + setMirrorLocalVideo(!mirrorLocalVideo); + }}> + {mirrorLocalVideo ? ( + + Don't mirror local video + + ) : ( + + Mirror local video + + )} + + { + setModalType(ModalTypes.DEFAULT); + setForceSoftwareDecoder(!forceSoftwareDecoder); + }}> + {forceSoftwareDecoder ? ( + + Disable software encoder + + ) : ( + + Enable software encoder + + )} + + + setModalType(ModalTypes.WELCOME_SETTINGS)} + viewStyle={styles.settingsButton} + LeftIcon={ + + } + /> + Date: Sat, 15 Oct 2022 15:52:50 +0530 Subject: [PATCH 33/84] updated Native Android SDK --- android/build.gradle | 2 +- example/android/Gemfile.lock | 4 +- example/android/app/build.gradle | 4 +- example/ios/Gemfile.lock | 4 +- example/ios/Podfile.lock | 18 +- .../RNHMSExample.xcodeproj/project.pbxproj | 12 +- example/ios/RNHMSExample/Info.plist | 4 +- example/package-lock.json | 607 ++++---- package-lock.json | 1224 +++++------------ 9 files changed, 643 insertions(+), 1236 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 80d9d4c22..fd66fa28a 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -63,7 +63,7 @@ dependencies { //noinspection GradleDynamicVersion implementation "com.facebook.react:react-native:+" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" // From node_modules - implementation 'com.github.100mslive.android-sdk:lib:dev-v2-SNAPSHOT' + implementation 'com.github.100mslive.android-sdk:lib:2.5.0' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.3' implementation 'androidx.appcompat:appcompat:1.3.1' diff --git a/example/android/Gemfile.lock b/example/android/Gemfile.lock index 54b12e43d..ed1b41fbf 100644 --- a/example/android/Gemfile.lock +++ b/example/android/Gemfile.lock @@ -8,8 +8,8 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.642.0) - aws-sdk-core (3.158.0) + aws-partitions (1.646.0) + aws-sdk-core (3.160.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index ee9e3ec26..4a87610da 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -135,8 +135,8 @@ android { applicationId "live.hms.rn" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 114 - versionName "2.0.9" + versionCode 115 + versionName "2.0.10" missingDimensionStrategy 'react-native-camera', 'general' } splits { diff --git a/example/ios/Gemfile.lock b/example/ios/Gemfile.lock index 08082a3c5..2029baeda 100644 --- a/example/ios/Gemfile.lock +++ b/example/ios/Gemfile.lock @@ -8,8 +8,8 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.642.0) - aws-sdk-core (3.158.0) + aws-partitions (1.646.0) + aws-sdk-core (3.160.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 2aaf9d6b6..7fda91a10 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -284,7 +284,7 @@ PODS: - React-Core - react-native-camera/RN (4.2.1): - React-Core - - react-native-cameraroll (5.0.3): + - react-native-cameraroll (5.0.4): - React-Core - react-native-document-picker (8.1.1): - React-Core @@ -368,7 +368,7 @@ PODS: - React-perflogger (= 0.64.2) - rn-fetch-blob (0.12.0): - React-Core - - RNCPicker (2.4.6): + - RNCPicker (2.4.7): - React-Core - RNDeviceInfo (9.0.2): - React-Core @@ -378,10 +378,10 @@ PODS: - React-Core - RNPermissions (3.4.0): - React-Core - - RNScreens (3.17.0): + - RNScreens (3.18.2): - React-Core - React-RCTImage - - RNShare (7.9.0): + - RNShare (7.9.1): - React-Core - RNVectorIcons (9.2.0): - React-Core @@ -582,7 +582,7 @@ SPEC CHECKSUMS: CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 DoubleConversion: cf9b38bf0b2d048436d9a82ad2abe1404f11e7de FBLazyVector: e686045572151edef46010a6f819ade377dfeb4b - FBReactNativeSpec: 978556cb9c183a32af51f818206b201b3deb0d1e + FBReactNativeSpec: 0094aca9cd5d4a79abcb5a2c1d1f52d0c106aaf9 Flipper: d3da1aa199aad94455ae725e9f3aa43f3ec17021 Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41 Flipper-Folly: 755929a4f851b2fb2c347d533a23f191b008554c @@ -611,7 +611,7 @@ SPEC CHECKSUMS: React-jsiexecutor: 80c46bd381fd06e418e0d4f53672dc1d1945c4c3 React-jsinspector: cc614ec18a9ca96fd275100c16d74d62ee11f0ae react-native-camera: 3eae183c1d111103963f3dd913b65d01aef8110f - react-native-cameraroll: db9ebe8fc29baf68defdb1691fb6642e8a8ad04d + react-native-cameraroll: 38b40d9033e4077b6c603f92f95c6d05fa7907df react-native-document-picker: f68191637788994baed5f57d12994aa32cf8bf88 react-native-hms: b2376d842bbb8bc5b82ae6b201dc0977af7d4bfc react-native-safe-area-context: 9e40fb181dac02619414ba1294d6c2a807056ab9 @@ -630,13 +630,13 @@ SPEC CHECKSUMS: React-runtimeexecutor: a9904c6d0218fb9f8b19d6dd88607225927668f9 ReactCommon: 149906e01aa51142707a10665185db879898e966 rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba - RNCPicker: 2f71e09c52ab6327e2c393213368ea0e5bfbcb65 + RNCPicker: 35b5d45693bb46c0e5514116081509e15a64a145 RNDeviceInfo: 1e3f62b9ec32f7754fac60bd06b8f8a27124e7f0 RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211 RNPermissions: eac721f71748c4472d6e876038270b75397d6ee7 - RNScreens: 0df01424e9e0ed7827200d6ed1087ddd06c493f9 - RNShare: be91a5c149585affb02c25b351bd07ba927c7006 + RNScreens: 34cc502acf1b916c582c60003dc3089fa01dc66d + RNShare: a5dc3b9c53ddc73e155b8cd9a94c70c91913c43c RNVectorIcons: fcc2f6cb32f5735b586e66d14103a74ce6ad61f8 Toast: 91b396c56ee72a5790816f40d3a94dd357abc196 Yoga: 575c581c63e0d35c9a83f4b46d01d63abc1100ac diff --git a/example/ios/RNHMSExample.xcodeproj/project.pbxproj b/example/ios/RNHMSExample.xcodeproj/project.pbxproj index c662855c0..01cbb5620 100644 --- a/example/ios/RNHMSExample.xcodeproj/project.pbxproj +++ b/example/ios/RNHMSExample.xcodeproj/project.pbxproj @@ -622,7 +622,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 114; + CURRENT_PROJECT_VERSION = 115; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -663,7 +663,7 @@ CODE_SIGN_ENTITLEMENTS = RNHMSExample/RNHMSExample.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 114; + CURRENT_PROJECT_VERSION = 115; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -726,7 +726,7 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -791,7 +791,7 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -830,7 +830,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 114; + CURRENT_PROJECT_VERSION = 115; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = 5N85PP82A9; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -874,7 +874,7 @@ CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 114; + CURRENT_PROJECT_VERSION = 115; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = 5N85PP82A9; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; diff --git a/example/ios/RNHMSExample/Info.plist b/example/ios/RNHMSExample/Info.plist index 62ab0711d..5207f14b1 100644 --- a/example/ios/RNHMSExample/Info.plist +++ b/example/ios/RNHMSExample/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.0.9 + 2.0.10 CFBundleSignature ???? CFBundleVersion - 114 + 115 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS diff --git a/example/package-lock.json b/example/package-lock.json index 4c895f149..f7676e1d3 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -79,9 +79,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.3.tgz", - "integrity": "sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", + "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==", "engines": { "node": ">=6.9.0" } @@ -116,11 +116,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz", - "integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==", + "version": "7.19.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz", + "integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==", "dependencies": { - "@babel/types": "^7.19.3", + "@babel/types": "^7.19.4", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -367,11 +367,11 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", + "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.19.4" }, "engines": { "node": ">=6.9.0" @@ -400,9 +400,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", "engines": { "node": ">=6.9.0" } @@ -439,13 +439,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", - "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz", + "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==", "dependencies": { "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.19.4", + "@babel/types": "^7.19.4" }, "engines": { "node": ">=6.9.0" @@ -465,9 +465,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz", - "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", + "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==", "bin": { "parser": "bin/babel-parser.js" }, @@ -668,13 +668,13 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", - "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz", + "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==", "dependencies": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/compat-data": "^7.19.4", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.18.8" }, @@ -1073,11 +1073,11 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", - "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz", + "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1123,11 +1123,11 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz", - "integrity": "sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz", + "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1640,12 +1640,12 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.3.tgz", - "integrity": "sha512-ziye1OTc9dGFOAXSWKUqQblYHNlBOaDl8wzqf2iKXJAltYiR3hKHUKmkt+S9PppW7RQpq4fFCrwwpIDj/f5P4w==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz", + "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==", "peer": true, "dependencies": { - "@babel/compat-data": "^7.19.3", + "@babel/compat-data": "^7.19.4", "@babel/helper-compilation-targets": "^7.19.3", "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", @@ -1660,7 +1660,7 @@ "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.9", + "@babel/plugin-proposal-object-rest-spread": "^7.19.4", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", "@babel/plugin-proposal-optional-chaining": "^7.18.9", "@babel/plugin-proposal-private-methods": "^7.18.6", @@ -1684,10 +1684,10 @@ "@babel/plugin-transform-arrow-functions": "^7.18.6", "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.9", + "@babel/plugin-transform-block-scoping": "^7.19.4", "@babel/plugin-transform-classes": "^7.19.0", "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.18.13", + "@babel/plugin-transform-destructuring": "^7.19.4", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", @@ -1714,7 +1714,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.19.3", + "@babel/types": "^7.19.4", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -1815,9 +1815,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", - "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz", + "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==", "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -1839,18 +1839,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz", - "integrity": "sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz", + "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==", "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", + "@babel/generator": "^7.19.4", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.3", - "@babel/types": "^7.19.3", + "@babel/parser": "^7.19.4", + "@babel/types": "^7.19.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1859,11 +1859,11 @@ } }, "node_modules/@babel/types": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz", - "integrity": "sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz", + "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==", "dependencies": { - "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, @@ -2638,12 +2638,12 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "node_modules/@miblanchard/react-native-slider": { @@ -2667,9 +2667,9 @@ } }, "node_modules/@react-native-camera-roll/camera-roll": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@react-native-camera-roll/camera-roll/-/camera-roll-5.0.3.tgz", - "integrity": "sha512-O0pl67kFuZjl6at9LvM4l+28IC53WndvOD8GqtshaGyySuvQDg37TaWyRF5lsMbann4rCCv+FznVDMmCWGDOcQ==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@react-native-camera-roll/camera-roll/-/camera-roll-5.0.4.tgz", + "integrity": "sha512-3kBRgW3VfmLQmQm70gPUVDu8rPSZymoPc9vmeiPLMKBqtWaqPNuPX0jQ6mZ8AEtYbBdoWC360Q4YYPalXv37zA==", "peerDependencies": { "react-native": ">=0.59" } @@ -3403,9 +3403,9 @@ "dev": true }, "node_modules/@react-native-picker/picker": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.6.tgz", - "integrity": "sha512-TyrQZKwi7tbGbETxpQpaf0Jld6Fw/RRWVPAShRobTUWwUglveP71mtdLwuNJV+1NXI6PqW/OvCEk9ZmFfGj0fQ==", + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.7.tgz", + "integrity": "sha512-SZewIUpkHIA1VzDdetXLpZUfwVOR4p+CRGguo8dGt/33nh9Bhkpt0Ke6KazZ6agbDGyBjlVEAqzkcLXoRBwOJQ==", "peerDependencies": { "react": ">=16", "react-native": ">=0.57" @@ -3469,9 +3469,9 @@ } }, "node_modules/@react-navigation/native-stack": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.0.tgz", - "integrity": "sha512-cwqm/2GO0hf94OFRuH6R0beZPVKY4vMFxrdAPaDwwoukN5a0UgcsMYxrN8s2huwssTCuGScABFME9GnqG5hC5w==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.1.tgz", + "integrity": "sha512-aOuJP97ge6NRz8wH6sDKfLTfdygGmraYh0apKrrVbGvMnflbPX4kpjQiAQcUPUpMeas0betH/Su8QubNL8HEkg==", "dependencies": { "@react-navigation/elements": "^1.3.6", "warn-once": "^0.1.0" @@ -3644,9 +3644,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.8.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.0.tgz", - "integrity": "sha512-u+h43R6U8xXDt2vzUaVP3VwjjLyOJk6uEciZS8OSyziUQGOwmk+l+4drxcsDboHXwyTaqS1INebghmWMRxq3LA==" + "version": "18.11.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.0.tgz", + "integrity": "sha512-IOXCvVRToe7e0ny7HpT/X9Rb2RYtElG1a+VshjwT00HxrM2dWBApHQoqsI6WiY7Q03vdf2bCrIGzVrkF/5t10w==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -3800,9 +3800,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/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==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3907,9 +3907,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/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==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -4190,9 +4190,12 @@ } }, "node_modules/array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha512-123XMszMB01QKVptpDQ7x1m1pP5NmJIG1kbl0JSPPRezvwQChxAN0Gvzo7rvR1IZ2tOL2tmiy7kY/KKgnpVVpg==" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.1.tgz", + "integrity": "sha512-sxHIeJTGEsRC8/hYkZzdJNNPZ41EXHVys7pqMw1iwE/Kx8/hto0UbDuGQsSJ0ujPovj9qUZl6EOY/EiZ2g3d9Q==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/array-reduce": { "version": "0.0.0", @@ -4825,9 +4828,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001414", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz", - "integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==", + "version": "1.0.30001419", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001419.tgz", + "integrity": "sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw==", "funding": [ { "type": "opencollective", @@ -5194,12 +5197,9 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dependencies": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/copy-descriptor": { "version": "0.1.1", @@ -5210,9 +5210,9 @@ } }, "node_modules/core-js-compat": { - "version": "3.25.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.4.tgz", - "integrity": "sha512-gCEcIEEqCR6230WroNunK/653CWKhqyCKJ9b+uESqOt/WFJA8B4lTnnQFdpYY5vmBcwJAA90Bo5vXs+CVsf6iA==", + "version": "3.25.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.5.tgz", + "integrity": "sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA==", "dependencies": { "browserslist": "^4.21.4" }, @@ -5355,9 +5355,9 @@ } }, "node_modules/decimal.js": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.1.tgz", - "integrity": "sha512-F29o+vci4DodHYT9UrR5IEbfBw9pE5eSapIJdTqXK5+6hq+t8VRxwQyKlW2i+KDKFkkJQRvFyI/QXD83h8LyQw==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", + "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==", "dev": true }, "node_modules/decode-uri-component": { @@ -5384,11 +5384,14 @@ } }, "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dependencies": { "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/define-properties": { @@ -5516,9 +5519,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.270", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz", - "integrity": "sha512-KNhIzgLiJmDDC444dj9vEOpZEgsV96ult9Iff98Vanumn+ShJHd5se8aX6KeVxdc0YQeqdrezBZv89rleDbvSg==" + "version": "1.4.283", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.283.tgz", + "integrity": "sha512-g6RQ9zCOV+U5QVHW9OpFR7rdk/V7xfopNXnyAamdpFgCHgZ1sjI8VuR1+zG2YG/TZk+tQ8mpNkug4P8FU0fuOA==" }, "node_modules/eme-encryption-scheme-polyfill": { "version": "2.1.1", @@ -5610,9 +5613,9 @@ } }, "node_modules/es-abstract": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.3.tgz", - "integrity": "sha512-AyrnaKVpMzljIdwjzrj+LxGmj8ik2LckwXacHqrJJ/jxz6dDDBcZ7I7nlHM0FvEW8MfbWJwOd+yT2XzYW49Frw==", + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", + "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", @@ -5625,7 +5628,7 @@ "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "is-callable": "^1.2.6", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", @@ -5923,9 +5926,9 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.31.8", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.8.tgz", - "integrity": "sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==", + "version": "7.31.10", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz", + "integrity": "sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==", "dev": true, "dependencies": { "array-includes": "^3.1.5", @@ -6148,9 +6151,9 @@ } }, "node_modules/eslint/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==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -7836,9 +7839,9 @@ } }, "node_modules/istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "dependencies": { "@babel/core": "^7.12.3", @@ -9138,9 +9141,9 @@ } }, "node_modules/jest-snapshot/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==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -9466,9 +9469,9 @@ } }, "node_modules/joi": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.2.tgz", - "integrity": "sha512-+gqqdh1xc1wb+Lor0J9toqgeReyDOCqOdG8QSdRcEvwrcRiFQZneUCGKjFjuyBWUb3uaFOgY56yMaZ5FIc+H4w==", + "version": "17.6.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.3.tgz", + "integrity": "sha512-YlQsIaS9MHYekzf1Qe11LjTkNzx9qhYluK3172z38RxYoAUf82XMX1p1DG1H4Wtk2ED/vPdSn9OggqtDu+aTow==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -9774,11 +9777,11 @@ } }, "node_modules/jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha512-trvBk1ki43VZptdBI5rIlG4YOzyeH/WefQt5rj1grasPn4iiZWKet8nkgc4GlsAylaztn0qZfUYOiTsASJFdNA==", - "engines": { - "node": "*" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/jsx-ast-utils": { @@ -10531,9 +10534,12 @@ } }, "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/mixin-deep": { "version": "1.3.2", @@ -10697,9 +10703,9 @@ } }, "node_modules/node-notifier/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==", "dev": true, "optional": true, "dependencies": { @@ -11557,9 +11563,9 @@ } }, "node_modules/react-devtools-core": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.26.0.tgz", - "integrity": "sha512-OO0Q+vXtHYCXvRQ6elLiOUph3MjsCpuYktGTLnBpizYm46f8tAPuJKihGkwsceitHSJNpzNIjJaYHgX96CyTUQ==", + "version": "4.26.1", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.26.1.tgz", + "integrity": "sha512-r1csa5n9nABVpSdAadwTG7K+SfgRJPc/Hdx89BkV5IlA1mEGgGi3ir630ST5D/xYlJQaY3VE75YGADgpNW7HIw==", "dependencies": { "shell-quote": "^1.6.1", "ws": "^7" @@ -11782,9 +11788,9 @@ } }, "node_modules/react-native-screens": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.17.0.tgz", - "integrity": "sha512-OZCQU7+3neHNaM19jBkYRjL50kXz7p7MUgWQTCcdRoshcCiolf8aXs4eRVQKGK6m1RmoB8UL0//m5R9KoR+41w==", + "version": "3.18.2", + "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.18.2.tgz", + "integrity": "sha512-ANUEuvMUlsYJ1QKukEhzhfrvOUO9BVH9Nzg+6eWxpn3cfD/O83yPBOF8Mx6x5H/2+sMy+VS5x/chWOOo/U7QJw==", "dependencies": { "react-freeze": "^1.0.0", "warn-once": "^0.1.0" @@ -11795,9 +11801,9 @@ } }, "node_modules/react-native-share": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/react-native-share/-/react-native-share-7.9.0.tgz", - "integrity": "sha512-I9RPp7Ph7dusPwN+/TgFq2V9vLVCN12gwUzpgM1eCoqTMN54dVWI+9k0loCgANv3CdajiKSOrGh+DTnsmhG9VA==" + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/react-native-share/-/react-native-share-7.9.1.tgz", + "integrity": "sha512-v4b6lD4YsiCJB14kjXons+d5cvvxgLv8OdBF0aP58X8Qqbcj81QNv1icAxiNmhxFx5OFYsu/E6v+o8S0GSaneQ==" }, "node_modules/react-native-simple-toast": { "version": "1.1.4", @@ -12133,9 +12139,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" }, "node_modules/regenerator-transform": { "version": "0.15.0", @@ -14016,9 +14022,9 @@ } }, "node_modules/ua-parser-js": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", - "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", + "version": "0.7.32", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.32.tgz", + "integrity": "sha512-f9BESNVhzlhEFf2CHMSj40NWOjYPl1YKYbrvIr/hFTDEmLq7SRbWvm7FcdcpCYT95zrOhC7gZSxjdnnTpBcwVw==", "funding": [ { "type": "opencollective", @@ -14193,9 +14199,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", - "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "funding": [ { "type": "opencollective", @@ -14685,9 +14691,9 @@ } }, "@babel/compat-data": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.3.tgz", - "integrity": "sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw==" + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", + "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==" }, "@babel/core": { "version": "7.19.3", @@ -14712,11 +14718,11 @@ } }, "@babel/generator": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz", - "integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==", + "version": "7.19.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz", + "integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==", "requires": { - "@babel/types": "^7.19.3", + "@babel/types": "^7.19.4", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -14896,11 +14902,11 @@ } }, "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", + "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.19.4" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -14920,9 +14926,9 @@ } }, "@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==" + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" }, "@babel/helper-validator-identifier": { "version": "7.19.1", @@ -14947,13 +14953,13 @@ } }, "@babel/helpers": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", - "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz", + "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==", "requires": { "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.19.4", + "@babel/types": "^7.19.4" } }, "@babel/highlight": { @@ -14967,9 +14973,9 @@ } }, "@babel/parser": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz", - "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==" + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", + "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", @@ -15092,13 +15098,13 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", - "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz", + "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==", "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/compat-data": "^7.19.4", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.18.8" } @@ -15356,11 +15362,11 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", - "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz", + "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==", "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-classes": { @@ -15388,11 +15394,11 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz", - "integrity": "sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz", + "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==", "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-dotall-regex": { @@ -15701,12 +15707,12 @@ } }, "@babel/preset-env": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.3.tgz", - "integrity": "sha512-ziye1OTc9dGFOAXSWKUqQblYHNlBOaDl8wzqf2iKXJAltYiR3hKHUKmkt+S9PppW7RQpq4fFCrwwpIDj/f5P4w==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz", + "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==", "peer": true, "requires": { - "@babel/compat-data": "^7.19.3", + "@babel/compat-data": "^7.19.4", "@babel/helper-compilation-targets": "^7.19.3", "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", @@ -15721,7 +15727,7 @@ "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.9", + "@babel/plugin-proposal-object-rest-spread": "^7.19.4", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", "@babel/plugin-proposal-optional-chaining": "^7.18.9", "@babel/plugin-proposal-private-methods": "^7.18.6", @@ -15745,10 +15751,10 @@ "@babel/plugin-transform-arrow-functions": "^7.18.6", "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.9", + "@babel/plugin-transform-block-scoping": "^7.19.4", "@babel/plugin-transform-classes": "^7.19.0", "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.18.13", + "@babel/plugin-transform-destructuring": "^7.19.4", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", @@ -15775,7 +15781,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.19.3", + "@babel/types": "^7.19.4", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -15845,9 +15851,9 @@ } }, "@babel/runtime": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", - "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz", + "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -15863,28 +15869,28 @@ } }, "@babel/traverse": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz", - "integrity": "sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz", + "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==", "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", + "@babel/generator": "^7.19.4", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.3", - "@babel/types": "^7.19.3", + "@babel/parser": "^7.19.4", + "@babel/types": "^7.19.4", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz", - "integrity": "sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz", + "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==", "requires": { - "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" } @@ -16480,12 +16486,12 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "@miblanchard/react-native-slider": { @@ -16503,9 +16509,9 @@ } }, "@react-native-camera-roll/camera-roll": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@react-native-camera-roll/camera-roll/-/camera-roll-5.0.3.tgz", - "integrity": "sha512-O0pl67kFuZjl6at9LvM4l+28IC53WndvOD8GqtshaGyySuvQDg37TaWyRF5lsMbann4rCCv+FznVDMmCWGDOcQ==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@react-native-camera-roll/camera-roll/-/camera-roll-5.0.4.tgz", + "integrity": "sha512-3kBRgW3VfmLQmQm70gPUVDu8rPSZymoPc9vmeiPLMKBqtWaqPNuPX0jQ6mZ8AEtYbBdoWC360Q4YYPalXv37zA==", "requires": {} }, "@react-native-community/cli": { @@ -17080,9 +17086,9 @@ "dev": true }, "@react-native-picker/picker": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.6.tgz", - "integrity": "sha512-TyrQZKwi7tbGbETxpQpaf0Jld6Fw/RRWVPAShRobTUWwUglveP71mtdLwuNJV+1NXI6PqW/OvCEk9ZmFfGj0fQ==", + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.7.tgz", + "integrity": "sha512-SZewIUpkHIA1VzDdetXLpZUfwVOR4p+CRGguo8dGt/33nh9Bhkpt0Ke6KazZ6agbDGyBjlVEAqzkcLXoRBwOJQ==", "requires": {} }, "@react-native/assets": { @@ -17131,9 +17137,9 @@ } }, "@react-navigation/native-stack": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.0.tgz", - "integrity": "sha512-cwqm/2GO0hf94OFRuH6R0beZPVKY4vMFxrdAPaDwwoukN5a0UgcsMYxrN8s2huwssTCuGScABFME9GnqG5hC5w==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.1.tgz", + "integrity": "sha512-aOuJP97ge6NRz8wH6sDKfLTfdygGmraYh0apKrrVbGvMnflbPX4kpjQiAQcUPUpMeas0betH/Su8QubNL8HEkg==", "requires": { "@react-navigation/elements": "^1.3.6", "warn-once": "^0.1.0" @@ -17296,9 +17302,9 @@ "dev": true }, "@types/node": { - "version": "18.8.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.0.tgz", - "integrity": "sha512-u+h43R6U8xXDt2vzUaVP3VwjjLyOJk6uEciZS8OSyziUQGOwmk+l+4drxcsDboHXwyTaqS1INebghmWMRxq3LA==" + "version": "18.11.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.0.tgz", + "integrity": "sha512-IOXCvVRToe7e0ny7HpT/X9Rb2RYtElG1a+VshjwT00HxrM2dWBApHQoqsI6WiY7Q03vdf2bCrIGzVrkF/5t10w==" }, "@types/normalize-package-data": { "version": "2.4.1", @@ -17438,9 +17444,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==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -17497,9 +17503,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==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -17708,9 +17714,9 @@ } }, "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha512-123XMszMB01QKVptpDQ7x1m1pP5NmJIG1kbl0JSPPRezvwQChxAN0Gvzo7rvR1IZ2tOL2tmiy7kY/KKgnpVVpg==" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.1.tgz", + "integrity": "sha512-sxHIeJTGEsRC8/hYkZzdJNNPZ41EXHVys7pqMw1iwE/Kx8/hto0UbDuGQsSJ0ujPovj9qUZl6EOY/EiZ2g3d9Q==" }, "array-reduce": { "version": "0.0.0", @@ -18190,9 +18196,9 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "caniuse-lite": { - "version": "1.0.30001414", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz", - "integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==" + "version": "1.0.30001419", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001419.tgz", + "integrity": "sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw==" }, "capture-exit": { "version": "2.0.0", @@ -18488,12 +18494,9 @@ } }, "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "requires": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "copy-descriptor": { "version": "0.1.1", @@ -18501,9 +18504,9 @@ "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==" }, "core-js-compat": { - "version": "3.25.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.4.tgz", - "integrity": "sha512-gCEcIEEqCR6230WroNunK/653CWKhqyCKJ9b+uESqOt/WFJA8B4lTnnQFdpYY5vmBcwJAA90Bo5vXs+CVsf6iA==", + "version": "3.25.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.5.tgz", + "integrity": "sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA==", "requires": { "browserslist": "^4.21.4" } @@ -18617,9 +18620,9 @@ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" }, "decimal.js": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.1.tgz", - "integrity": "sha512-F29o+vci4DodHYT9UrR5IEbfBw9pE5eSapIJdTqXK5+6hq+t8VRxwQyKlW2i+KDKFkkJQRvFyI/QXD83h8LyQw==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", + "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==", "dev": true }, "decode-uri-component": { @@ -18640,9 +18643,9 @@ "dev": true }, "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "requires": { "clone": "^1.0.2" } @@ -18740,9 +18743,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "electron-to-chromium": { - "version": "1.4.270", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz", - "integrity": "sha512-KNhIzgLiJmDDC444dj9vEOpZEgsV96ult9Iff98Vanumn+ShJHd5se8aX6KeVxdc0YQeqdrezBZv89rleDbvSg==" + "version": "1.4.283", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.283.tgz", + "integrity": "sha512-g6RQ9zCOV+U5QVHW9OpFR7rdk/V7xfopNXnyAamdpFgCHgZ1sjI8VuR1+zG2YG/TZk+tQ8mpNkug4P8FU0fuOA==" }, "eme-encryption-scheme-polyfill": { "version": "2.1.1", @@ -18813,9 +18816,9 @@ } }, "es-abstract": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.3.tgz", - "integrity": "sha512-AyrnaKVpMzljIdwjzrj+LxGmj8ik2LckwXacHqrJJ/jxz6dDDBcZ7I7nlHM0FvEW8MfbWJwOd+yT2XzYW49Frw==", + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", + "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -18828,7 +18831,7 @@ "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "is-callable": "^1.2.6", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", @@ -19046,9 +19049,9 @@ "dev": true }, "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==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -19130,9 +19133,9 @@ } }, "eslint-plugin-react": { - "version": "7.31.8", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.8.tgz", - "integrity": "sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==", + "version": "7.31.10", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz", + "integrity": "sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==", "dev": true, "requires": { "array-includes": "^3.1.5", @@ -20449,9 +20452,9 @@ "dev": true }, "istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "requires": { "@babel/core": "^7.12.3", @@ -21429,9 +21432,9 @@ "dev": true }, "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==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -21666,9 +21669,9 @@ "integrity": "sha512-3Zi16h6L5tXDRQJTb221cnRoVG9/9OvreLdLU2/ZjRv/GILL+2Cemt0IKvkowwkDpvouAU1DQPOJ7qaiHeIdrw==" }, "joi": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.2.tgz", - "integrity": "sha512-+gqqdh1xc1wb+Lor0J9toqgeReyDOCqOdG8QSdRcEvwrcRiFQZneUCGKjFjuyBWUb3uaFOgY56yMaZ5FIc+H4w==", + "version": "17.6.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.3.tgz", + "integrity": "sha512-YlQsIaS9MHYekzf1Qe11LjTkNzx9qhYluK3172z38RxYoAUf82XMX1p1DG1H4Wtk2ED/vPdSn9OggqtDu+aTow==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -21919,9 +21922,9 @@ } }, "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha512-trvBk1ki43VZptdBI5rIlG4YOzyeH/WefQt5rj1grasPn4iiZWKet8nkgc4GlsAylaztn0qZfUYOiTsASJFdNA==" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==" }, "jsx-ast-utils": { "version": "3.3.3", @@ -22562,9 +22565,9 @@ } }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" }, "mixin-deep": { "version": "1.3.2", @@ -22695,9 +22698,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==", "dev": true, "optional": true, "requires": { @@ -23330,9 +23333,9 @@ } }, "react-devtools-core": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.26.0.tgz", - "integrity": "sha512-OO0Q+vXtHYCXvRQ6elLiOUph3MjsCpuYktGTLnBpizYm46f8tAPuJKihGkwsceitHSJNpzNIjJaYHgX96CyTUQ==", + "version": "4.26.1", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.26.1.tgz", + "integrity": "sha512-r1csa5n9nABVpSdAadwTG7K+SfgRJPc/Hdx89BkV5IlA1mEGgGi3ir630ST5D/xYlJQaY3VE75YGADgpNW7HIw==", "requires": { "shell-quote": "^1.6.1", "ws": "^7" @@ -23510,18 +23513,18 @@ "requires": {} }, "react-native-screens": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.17.0.tgz", - "integrity": "sha512-OZCQU7+3neHNaM19jBkYRjL50kXz7p7MUgWQTCcdRoshcCiolf8aXs4eRVQKGK6m1RmoB8UL0//m5R9KoR+41w==", + "version": "3.18.2", + "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.18.2.tgz", + "integrity": "sha512-ANUEuvMUlsYJ1QKukEhzhfrvOUO9BVH9Nzg+6eWxpn3cfD/O83yPBOF8Mx6x5H/2+sMy+VS5x/chWOOo/U7QJw==", "requires": { "react-freeze": "^1.0.0", "warn-once": "^0.1.0" } }, "react-native-share": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/react-native-share/-/react-native-share-7.9.0.tgz", - "integrity": "sha512-I9RPp7Ph7dusPwN+/TgFq2V9vLVCN12gwUzpgM1eCoqTMN54dVWI+9k0loCgANv3CdajiKSOrGh+DTnsmhG9VA==" + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/react-native-share/-/react-native-share-7.9.1.tgz", + "integrity": "sha512-v4b6lD4YsiCJB14kjXons+d5cvvxgLv8OdBF0aP58X8Qqbcj81QNv1icAxiNmhxFx5OFYsu/E6v+o8S0GSaneQ==" }, "react-native-simple-toast": { "version": "1.1.4", @@ -23776,9 +23779,9 @@ } }, "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" }, "regenerator-transform": { "version": "0.15.0", @@ -25260,9 +25263,9 @@ "dev": true }, "ua-parser-js": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", - "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==" + "version": "0.7.32", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.32.tgz", + "integrity": "sha512-f9BESNVhzlhEFf2CHMSj40NWOjYPl1YKYbrvIr/hFTDEmLq7SRbWvm7FcdcpCYT95zrOhC7gZSxjdnnTpBcwVw==" }, "uglify-es": { "version": "3.3.9", @@ -25386,9 +25389,9 @@ } }, "update-browserslist-db": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", - "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" diff --git a/package-lock.json b/package-lock.json index ee1ef5973..cb3666b23 100644 --- a/package-lock.json +++ b/package-lock.json @@ -66,9 +66,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.3.tgz", - "integrity": "sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", + "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==", "engines": { "node": ">=6.9.0" } @@ -111,11 +111,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz", - "integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==", + "version": "7.19.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz", + "integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==", "dependencies": { - "@babel/types": "^7.19.3", + "@babel/types": "^7.19.4", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -364,11 +364,11 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", + "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.19.4" }, "engines": { "node": ">=6.9.0" @@ -397,9 +397,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", "engines": { "node": ">=6.9.0" } @@ -435,13 +435,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", - "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz", + "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==", "dependencies": { "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.19.4", + "@babel/types": "^7.19.4" }, "engines": { "node": ">=6.9.0" @@ -461,9 +461,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz", - "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", + "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==", "bin": { "parser": "bin/babel-parser.js" }, @@ -656,13 +656,13 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", - "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz", + "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==", "dependencies": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/compat-data": "^7.19.4", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.18.8" }, @@ -1054,11 +1054,11 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", - "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz", + "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1104,11 +1104,11 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz", - "integrity": "sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz", + "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1640,11 +1640,11 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.3.tgz", - "integrity": "sha512-ziye1OTc9dGFOAXSWKUqQblYHNlBOaDl8wzqf2iKXJAltYiR3hKHUKmkt+S9PppW7RQpq4fFCrwwpIDj/f5P4w==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz", + "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==", "dependencies": { - "@babel/compat-data": "^7.19.3", + "@babel/compat-data": "^7.19.4", "@babel/helper-compilation-targets": "^7.19.3", "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", @@ -1659,7 +1659,7 @@ "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.9", + "@babel/plugin-proposal-object-rest-spread": "^7.19.4", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", "@babel/plugin-proposal-optional-chaining": "^7.18.9", "@babel/plugin-proposal-private-methods": "^7.18.6", @@ -1683,10 +1683,10 @@ "@babel/plugin-transform-arrow-functions": "^7.18.6", "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.9", + "@babel/plugin-transform-block-scoping": "^7.19.4", "@babel/plugin-transform-classes": "^7.19.0", "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.18.13", + "@babel/plugin-transform-destructuring": "^7.19.4", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", @@ -1713,7 +1713,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.19.3", + "@babel/types": "^7.19.4", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -1853,9 +1853,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", - "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz", + "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==", "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -1877,18 +1877,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz", - "integrity": "sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz", + "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==", "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", + "@babel/generator": "^7.19.4", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.3", - "@babel/types": "^7.19.3", + "@babel/parser": "^7.19.4", + "@babel/types": "^7.19.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1897,11 +1897,11 @@ } }, "node_modules/@babel/types": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz", - "integrity": "sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz", + "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==", "dependencies": { - "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, @@ -3255,12 +3255,12 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "node_modules/@nodelib/fs.scandir": { @@ -4611,65 +4611,6 @@ "node": ">=8" } }, - "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==", - "peer": true, - "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-plugin-metro/node_modules/metro-runtime": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz", - "integrity": "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.0.0", - "react-refresh": "^0.4.0" - } - }, - "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-source-map": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", - "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", - "peer": true, - "dependencies": { - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.0.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.72.3", - "nullthrows": "^1.1.1", - "ob1": "0.72.3", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, - "node_modules/@react-native-community/cli-plugin-metro/node_modules/ob1": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", - "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==", - "peer": true - }, - "node_modules/@react-native-community/cli-plugin-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==", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -5362,9 +5303,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.8.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.0.tgz", - "integrity": "sha512-u+h43R6U8xXDt2vzUaVP3VwjjLyOJk6uEciZS8OSyziUQGOwmk+l+4drxcsDboHXwyTaqS1INebghmWMRxq3LA==" + "version": "18.11.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.0.tgz", + "integrity": "sha512-IOXCvVRToe7e0ny7HpT/X9Rb2RYtElG1a+VshjwT00HxrM2dWBApHQoqsI6WiY7Q03vdf2bCrIGzVrkF/5t10w==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -6157,9 +6098,9 @@ } }, "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "dependencies": { "@babel/core": "^7.12.3", @@ -6377,9 +6318,9 @@ "peer": true }, "node_modules/before-after-hook": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", "dev": true, "peer": true }, @@ -6746,9 +6687,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001414", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz", - "integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==", + "version": "1.0.30001419", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001419.tgz", + "integrity": "sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw==", "funding": [ { "type": "opencollective", @@ -7532,12 +7473,9 @@ } }, "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dependencies": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/copy-descriptor": { "version": "0.1.1", @@ -7548,9 +7486,9 @@ } }, "node_modules/core-js": { - "version": "3.25.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.4.tgz", - "integrity": "sha512-JDLxg61lFPFYQ7U0HKoyKwVUV63VbbVTb/K73Yf+k4Mf4ZBZxCjfyrWZjTk1ZM7ZrgFSqhSIOmuzYAxG2f/reQ==", + "version": "3.25.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.5.tgz", + "integrity": "sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw==", "dev": true, "hasInstallScript": true, "funding": { @@ -7559,9 +7497,9 @@ } }, "node_modules/core-js-compat": { - "version": "3.25.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.4.tgz", - "integrity": "sha512-gCEcIEEqCR6230WroNunK/653CWKhqyCKJ9b+uESqOt/WFJA8B4lTnnQFdpYY5vmBcwJAA90Bo5vXs+CVsf6iA==", + "version": "3.25.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.5.tgz", + "integrity": "sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA==", "dependencies": { "browserslist": "^4.21.4" }, @@ -7740,9 +7678,9 @@ } }, "node_modules/decimal.js": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.1.tgz", - "integrity": "sha512-F29o+vci4DodHYT9UrR5IEbfBw9pE5eSapIJdTqXK5+6hq+t8VRxwQyKlW2i+KDKFkkJQRvFyI/QXD83h8LyQw==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", + "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==", "dev": true }, "node_modules/decode-uri-component": { @@ -7798,12 +7736,15 @@ } }, "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "peer": true, "dependencies": { "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/defer-to-connect": { @@ -8109,9 +8050,9 @@ "peer": true }, "node_modules/electron-to-chromium": { - "version": "1.4.270", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz", - "integrity": "sha512-KNhIzgLiJmDDC444dj9vEOpZEgsV96ult9Iff98Vanumn+ShJHd5se8aX6KeVxdc0YQeqdrezBZv89rleDbvSg==" + "version": "1.4.283", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.283.tgz", + "integrity": "sha512-g6RQ9zCOV+U5QVHW9OpFR7rdk/V7xfopNXnyAamdpFgCHgZ1sjI8VuR1+zG2YG/TZk+tQ8mpNkug4P8FU0fuOA==" }, "node_modules/emittery": { "version": "0.7.2", @@ -8202,9 +8143,9 @@ } }, "node_modules/es-abstract": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.3.tgz", - "integrity": "sha512-AyrnaKVpMzljIdwjzrj+LxGmj8ik2LckwXacHqrJJ/jxz6dDDBcZ7I7nlHM0FvEW8MfbWJwOd+yT2XzYW49Frw==", + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", + "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", @@ -8217,7 +8158,7 @@ "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "is-callable": "^1.2.6", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", @@ -8543,9 +8484,9 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.31.8", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.8.tgz", - "integrity": "sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==", + "version": "7.31.10", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz", + "integrity": "sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==", "dev": true, "dependencies": { "array-includes": "^3.1.5", @@ -13306,9 +13247,9 @@ } }, "node_modules/joi": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.2.tgz", - "integrity": "sha512-+gqqdh1xc1wb+Lor0J9toqgeReyDOCqOdG8QSdRcEvwrcRiFQZneUCGKjFjuyBWUb3uaFOgY56yMaZ5FIc+H4w==", + "version": "17.6.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.3.tgz", + "integrity": "sha512-YlQsIaS9MHYekzf1Qe11LjTkNzx9qhYluK3172z38RxYoAUf82XMX1p1DG1H4Wtk2ED/vPdSn9OggqtDu+aTow==", "peer": true, "dependencies": { "@hapi/hoek": "^9.0.0", @@ -14413,37 +14354,6 @@ "nullthrows": "^1.1.1" } }, - "node_modules/metro-babel-transformer/node_modules/metro-source-map": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", - "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", - "peer": true, - "dependencies": { - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.0.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.72.3", - "nullthrows": "^1.1.1", - "ob1": "0.72.3", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, - "node_modules/metro-babel-transformer/node_modules/ob1": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", - "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==", - "peer": true - }, - "node_modules/metro-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==", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/metro-cache": { "version": "0.72.3", "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.72.3.tgz", @@ -14514,16 +14424,6 @@ "node": ">=4" } }, - "node_modules/metro-config/node_modules/metro-runtime": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz", - "integrity": "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.0.0", - "react-refresh": "^0.4.0" - } - }, "node_modules/metro-config/node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -14636,9 +14536,9 @@ } }, "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==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz", + "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==", "peer": true }, "node_modules/metro-file-map/node_modules/color-convert": { @@ -14859,80 +14759,18 @@ } }, "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==", + "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==", "peer": true, "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", - "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==", - "peer": true, - "dependencies": { - "@babel/core": "^7.14.0", - "hermes-parser": "0.8.0", - "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" - } - }, - "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==", - "peer": true, - "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": "*" @@ -14948,9 +14786,9 @@ } }, "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==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz", + "integrity": "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==", "peer": true, "dependencies": { "@babel/runtime": "^7.0.0", @@ -14958,60 +14796,19 @@ } }, "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==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", + "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", "peer": true, "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-source-map/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "peer": true - }, - "node_modules/metro-source-map/node_modules/metro-symbolicate": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.1.tgz", - "integrity": "sha512-ScC3dVd2XrfZSd6kubOw7EJNp2oHdjrqOjGpFohtcXGjhqkzDosp7Fg84VgwQGN8g720xvUyEBfSMmUCXcicOQ==", - "peer": true, - "dependencies": { - "invariant": "^2.2.4", - "metro-source-map": "0.72.1", + "metro-symbolicate": "0.72.3", "nullthrows": "^1.1.1", + "ob1": "0.72.3", "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-source-map/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "peer": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" } }, "node_modules/metro-source-map/node_modules/source-map": { @@ -15023,25 +14820,6 @@ "node": ">=0.10.0" } }, - "node_modules/metro-source-map/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/metro-source-map/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "peer": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, "node_modules/metro-symbolicate": { "version": "0.72.3", "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.3.tgz", @@ -15068,28 +14846,6 @@ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "peer": true }, - "node_modules/metro-symbolicate/node_modules/metro-source-map": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", - "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", - "peer": true, - "dependencies": { - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.0.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.72.3", - "nullthrows": "^1.1.1", - "ob1": "0.72.3", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, - "node_modules/metro-symbolicate/node_modules/ob1": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", - "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==", - "peer": true - }, "node_modules/metro-symbolicate/node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -15167,37 +14923,6 @@ "nullthrows": "^1.1.1" } }, - "node_modules/metro-transform-worker/node_modules/metro-source-map": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", - "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", - "peer": true, - "dependencies": { - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.0.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.72.3", - "nullthrows": "^1.1.1", - "ob1": "0.72.3", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, - "node_modules/metro-transform-worker/node_modules/ob1": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", - "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==", - "peer": true - }, - "node_modules/metro-transform-worker/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==", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/metro/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -15314,44 +15039,12 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/metro/node_modules/metro-runtime": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz", - "integrity": "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.0.0", - "react-refresh": "^0.4.0" - } - }, - "node_modules/metro/node_modules/metro-source-map": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", - "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", - "peer": true, - "dependencies": { - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.0.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.72.3", - "nullthrows": "^1.1.1", - "ob1": "0.72.3", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, "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==", "peer": true }, - "node_modules/metro/node_modules/ob1": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", - "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==", - "peer": true - }, "node_modules/metro/node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -15467,9 +15160,12 @@ } }, "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/minimist-options": { "version": "4.1.0", @@ -15768,9 +15464,9 @@ "dev": true }, "node_modules/ob1": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.1.tgz", - "integrity": "sha512-TyQX2gO08klGTMuzD+xm3iVrzXiIygCB7t+NWeicOR05hkzgeWOiAZ8q40uMfIDRfEAc6hd66sJdIEhU/yUZZA==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", + "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==", "peer": true }, "node_modules/object-assign": { @@ -16967,15 +16663,15 @@ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, "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==", + "version": "0.70.3", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.70.3.tgz", + "integrity": "sha512-EiJxOonyvpSWa3Eik7a6YAD6QU8lK2W9M/DDdYlpWmIlGLCd5110rIpEZjxttsyrohxlRJAYRgJ9Tx2mMXqtfw==", "peer": true, "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.1.3", + "@react-native-community/cli-platform-android": "9.1.0", + "@react-native-community/cli-platform-ios": "9.1.2", "@react-native/assets": "1.0.0", "@react-native/normalize-color": "2.0.0", "@react-native/polyfills": "2.0.0", @@ -16986,9 +16682,9 @@ "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", @@ -17432,9 +17128,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" }, "node_modules/regenerator-transform": { "version": "0.15.0", @@ -17631,9 +17327,9 @@ } }, "node_modules/release-it/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.5.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz", + "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==", "dev": true, "peer": true }, @@ -18391,9 +18087,9 @@ } }, "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==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -18626,10 +18322,13 @@ } }, "node_modules/shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", - "peer": true + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", + "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/shelljs": { "version": "0.8.5", @@ -19914,9 +19613,9 @@ "peer": true }, "node_modules/uglify-js": { - "version": "3.17.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.2.tgz", - "integrity": "sha512-bbxglRjsGQMchfvXZNusUcYgiB9Hx2K4AHYXQy2DITZ9Rd+JzhX7+hoocE5Winr7z2oHvPsekkBwXtigvxevXg==", + "version": "3.17.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.3.tgz", + "integrity": "sha512-JmMFDME3iufZnBpyKL+uS78LRiC+mK55zWfM5f/pWBJfpOttXAqYfdDGRukYhJuyRinvPVAtUhvy7rlDybNtFg==", "dev": true, "optional": true, "bin": { @@ -20096,9 +19795,9 @@ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, "node_modules/update-browserslist-db": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", - "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "funding": [ { "type": "opencollective", @@ -20861,9 +20560,9 @@ } }, "@babel/compat-data": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.3.tgz", - "integrity": "sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw==" + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", + "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==" }, "@babel/core": { "version": "7.19.3", @@ -20895,11 +20594,11 @@ } }, "@babel/generator": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz", - "integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==", + "version": "7.19.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz", + "integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==", "requires": { - "@babel/types": "^7.19.3", + "@babel/types": "^7.19.4", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" } @@ -21080,11 +20779,11 @@ } }, "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", + "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.19.4" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -21104,9 +20803,9 @@ } }, "@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==" + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" }, "@babel/helper-validator-identifier": { "version": "7.19.1", @@ -21130,13 +20829,13 @@ } }, "@babel/helpers": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", - "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz", + "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==", "requires": { "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.19.4", + "@babel/types": "^7.19.4" } }, "@babel/highlight": { @@ -21150,9 +20849,9 @@ } }, "@babel/parser": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz", - "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==" + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", + "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", @@ -21267,13 +20966,13 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", - "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz", + "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==", "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/compat-data": "^7.19.4", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.18.8" } @@ -21524,11 +21223,11 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", - "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz", + "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==", "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-classes": { @@ -21556,11 +21255,11 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz", - "integrity": "sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz", + "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==", "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-dotall-regex": { @@ -21881,11 +21580,11 @@ } }, "@babel/preset-env": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.3.tgz", - "integrity": "sha512-ziye1OTc9dGFOAXSWKUqQblYHNlBOaDl8wzqf2iKXJAltYiR3hKHUKmkt+S9PppW7RQpq4fFCrwwpIDj/f5P4w==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz", + "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==", "requires": { - "@babel/compat-data": "^7.19.3", + "@babel/compat-data": "^7.19.4", "@babel/helper-compilation-targets": "^7.19.3", "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", @@ -21900,7 +21599,7 @@ "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.9", + "@babel/plugin-proposal-object-rest-spread": "^7.19.4", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", "@babel/plugin-proposal-optional-chaining": "^7.18.9", "@babel/plugin-proposal-private-methods": "^7.18.6", @@ -21924,10 +21623,10 @@ "@babel/plugin-transform-arrow-functions": "^7.18.6", "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.9", + "@babel/plugin-transform-block-scoping": "^7.19.4", "@babel/plugin-transform-classes": "^7.19.0", "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.18.13", + "@babel/plugin-transform-destructuring": "^7.19.4", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", @@ -21954,7 +21653,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.19.3", + "@babel/types": "^7.19.4", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -22053,9 +21752,9 @@ } }, "@babel/runtime": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", - "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz", + "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -22071,28 +21770,28 @@ } }, "@babel/traverse": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz", - "integrity": "sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz", + "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==", "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", + "@babel/generator": "^7.19.4", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.3", - "@babel/types": "^7.19.3", + "@babel/parser": "^7.19.4", + "@babel/types": "^7.19.4", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz", - "integrity": "sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz", + "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==", "requires": { - "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" } @@ -23123,12 +22822,12 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "@nodelib/fs.scandir": { @@ -24405,59 +24104,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "peer": true }, - "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==", - "peer": true, - "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" - } - }, - "metro-runtime": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz", - "integrity": "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==", - "peer": true, - "requires": { - "@babel/runtime": "^7.0.0", - "react-refresh": "^0.4.0" - } - }, - "metro-source-map": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", - "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", - "peer": true, - "requires": { - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.0.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.72.3", - "nullthrows": "^1.1.1", - "ob1": "0.72.3", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, - "ob1": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", - "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==", - "peer": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "peer": true - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -24814,9 +24460,9 @@ "dev": true }, "@types/node": { - "version": "18.8.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.0.tgz", - "integrity": "sha512-u+h43R6U8xXDt2vzUaVP3VwjjLyOJk6uEciZS8OSyziUQGOwmk+l+4drxcsDboHXwyTaqS1INebghmWMRxq3LA==" + "version": "18.11.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.0.tgz", + "integrity": "sha512-IOXCvVRToe7e0ny7HpT/X9Rb2RYtElG1a+VshjwT00HxrM2dWBApHQoqsI6WiY7Q03vdf2bCrIGzVrkF/5t10w==" }, "@types/normalize-package-data": { "version": "2.4.1", @@ -25402,9 +25048,9 @@ }, "dependencies": { "istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "requires": { "@babel/core": "^7.12.3", @@ -25575,9 +25221,9 @@ "peer": true }, "before-after-hook": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", "dev": true, "peer": true }, @@ -25842,9 +25488,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001414", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz", - "integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==" + "version": "1.0.30001419", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001419.tgz", + "integrity": "sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw==" }, "capture-exit": { "version": "2.0.0", @@ -26463,12 +26109,9 @@ } }, "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "requires": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "copy-descriptor": { "version": "0.1.1", @@ -26476,15 +26119,15 @@ "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==" }, "core-js": { - "version": "3.25.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.4.tgz", - "integrity": "sha512-JDLxg61lFPFYQ7U0HKoyKwVUV63VbbVTb/K73Yf+k4Mf4ZBZxCjfyrWZjTk1ZM7ZrgFSqhSIOmuzYAxG2f/reQ==", + "version": "3.25.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.5.tgz", + "integrity": "sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw==", "dev": true }, "core-js-compat": { - "version": "3.25.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.4.tgz", - "integrity": "sha512-gCEcIEEqCR6230WroNunK/653CWKhqyCKJ9b+uESqOt/WFJA8B4lTnnQFdpYY5vmBcwJAA90Bo5vXs+CVsf6iA==", + "version": "3.25.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.5.tgz", + "integrity": "sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA==", "requires": { "browserslist": "^4.21.4" } @@ -26622,9 +26265,9 @@ } }, "decimal.js": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.1.tgz", - "integrity": "sha512-F29o+vci4DodHYT9UrR5IEbfBw9pE5eSapIJdTqXK5+6hq+t8VRxwQyKlW2i+KDKFkkJQRvFyI/QXD83h8LyQw==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", + "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==", "dev": true }, "decode-uri-component": { @@ -26668,9 +26311,9 @@ "dev": true }, "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "peer": true, "requires": { "clone": "^1.0.2" @@ -26907,9 +26550,9 @@ "peer": true }, "electron-to-chromium": { - "version": "1.4.270", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz", - "integrity": "sha512-KNhIzgLiJmDDC444dj9vEOpZEgsV96ult9Iff98Vanumn+ShJHd5se8aX6KeVxdc0YQeqdrezBZv89rleDbvSg==" + "version": "1.4.283", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.283.tgz", + "integrity": "sha512-g6RQ9zCOV+U5QVHW9OpFR7rdk/V7xfopNXnyAamdpFgCHgZ1sjI8VuR1+zG2YG/TZk+tQ8mpNkug4P8FU0fuOA==" }, "emittery": { "version": "0.7.2", @@ -26979,9 +26622,9 @@ } }, "es-abstract": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.3.tgz", - "integrity": "sha512-AyrnaKVpMzljIdwjzrj+LxGmj8ik2LckwXacHqrJJ/jxz6dDDBcZ7I7nlHM0FvEW8MfbWJwOd+yT2XzYW49Frw==", + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", + "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -26994,7 +26637,7 @@ "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "is-callable": "^1.2.6", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", @@ -27317,9 +26960,9 @@ } }, "eslint-plugin-react": { - "version": "7.31.8", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.8.tgz", - "integrity": "sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==", + "version": "7.31.10", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz", + "integrity": "sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==", "dev": true, "requires": { "array-includes": "^3.1.5", @@ -30795,9 +30438,9 @@ "optional": true }, "joi": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.2.tgz", - "integrity": "sha512-+gqqdh1xc1wb+Lor0J9toqgeReyDOCqOdG8QSdRcEvwrcRiFQZneUCGKjFjuyBWUb3uaFOgY56yMaZ5FIc+H4w==", + "version": "17.6.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.3.tgz", + "integrity": "sha512-YlQsIaS9MHYekzf1Qe11LjTkNzx9qhYluK3172z38RxYoAUf82XMX1p1DG1H4Wtk2ED/vPdSn9OggqtDu+aTow==", "peer": true, "requires": { "@hapi/hoek": "^9.0.0", @@ -31747,44 +31390,12 @@ "graceful-fs": "^4.1.6" } }, - "metro-runtime": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz", - "integrity": "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==", - "peer": true, - "requires": { - "@babel/runtime": "^7.0.0", - "react-refresh": "^0.4.0" - } - }, - "metro-source-map": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", - "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", - "peer": true, - "requires": { - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.0.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.72.3", - "nullthrows": "^1.1.1", - "ob1": "0.72.3", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "peer": true }, - "ob1": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", - "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==", - "peer": true - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -31821,36 +31432,6 @@ "hermes-parser": "0.8.0", "metro-source-map": "0.72.3", "nullthrows": "^1.1.1" - }, - "dependencies": { - "metro-source-map": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", - "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", - "peer": true, - "requires": { - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.0.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.72.3", - "nullthrows": "^1.1.1", - "ob1": "0.72.3", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, - "ob1": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", - "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==", - "peer": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "peer": true - } } }, "metro-cache": { @@ -31916,16 +31497,6 @@ "resolve-from": "^3.0.0" } }, - "metro-runtime": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz", - "integrity": "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==", - "peer": true, - "requires": { - "@babel/runtime": "^7.0.0", - "react-refresh": "^0.4.0" - } - }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -32017,9 +31588,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.5.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz", + "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==", "peer": true }, "color-convert": { @@ -32213,79 +31784,18 @@ } }, "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==", "peer": true, "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==", - "peer": true, - "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==", - "peer": true, - "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-resolver": { @@ -32298,9 +31808,9 @@ } }, "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==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz", + "integrity": "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==", "peer": true, "requires": { "@babel/runtime": "^7.0.0", @@ -32308,80 +31818,26 @@ } }, "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==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", + "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", "peer": true, "requires": { "@babel/traverse": "^7.14.0", "@babel/types": "^7.0.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.72.1", + "metro-symbolicate": "0.72.3", "nullthrows": "^1.1.1", - "ob1": "0.72.1", + "ob1": "0.72.3", "source-map": "^0.5.6", "vlq": "^1.0.0" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "peer": true - }, - "metro-symbolicate": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.1.tgz", - "integrity": "sha512-ScC3dVd2XrfZSd6kubOw7EJNp2oHdjrqOjGpFohtcXGjhqkzDosp7Fg84VgwQGN8g720xvUyEBfSMmUCXcicOQ==", - "peer": true, - "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" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "peer": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "peer": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "peer": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "peer": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } } } }, @@ -32405,28 +31861,6 @@ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "peer": true }, - "metro-source-map": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", - "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", - "peer": true, - "requires": { - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.0.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.72.3", - "nullthrows": "^1.1.1", - "ob1": "0.72.3", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, - "ob1": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", - "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==", - "peer": true - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -32501,36 +31935,6 @@ "metro-source-map": "0.72.3", "metro-transform-plugins": "0.72.3", "nullthrows": "^1.1.1" - }, - "dependencies": { - "metro-source-map": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", - "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", - "peer": true, - "requires": { - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.0.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.72.3", - "nullthrows": "^1.1.1", - "ob1": "0.72.3", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, - "ob1": { - "version": "0.72.3", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", - "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==", - "peer": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "peer": true - } } }, "micromatch": { @@ -32588,9 +31992,9 @@ } }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" }, "minimist-options": { "version": "4.1.0", @@ -32830,9 +32234,9 @@ "dev": true }, "ob1": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.1.tgz", - "integrity": "sha512-TyQX2gO08klGTMuzD+xm3iVrzXiIygCB7t+NWeicOR05hkzgeWOiAZ8q40uMfIDRfEAc6hd66sJdIEhU/yUZZA==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", + "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==", "peer": true }, "object-assign": { @@ -33732,15 +33136,15 @@ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, "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.3", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.70.3.tgz", + "integrity": "sha512-EiJxOonyvpSWa3Eik7a6YAD6QU8lK2W9M/DDdYlpWmIlGLCd5110rIpEZjxttsyrohxlRJAYRgJ9Tx2mMXqtfw==", "peer": true, "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.1.3", + "@react-native-community/cli-platform-android": "9.1.0", + "@react-native-community/cli-platform-ios": "9.1.2", "@react-native/assets": "1.0.0", "@react-native/normalize-color": "2.0.0", "@react-native/polyfills": "2.0.0", @@ -33751,9 +33155,9 @@ "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", @@ -34107,9 +33511,9 @@ } }, "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" }, "regenerator-transform": { "version": "0.15.0", @@ -34260,9 +33664,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.5.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz", + "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==", "dev": true, "peer": true }, @@ -34839,9 +34243,9 @@ } }, "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==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -35025,9 +34429,9 @@ "dev": true }, "shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", + "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", "peer": true }, "shelljs": { @@ -36033,9 +35437,9 @@ } }, "uglify-js": { - "version": "3.17.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.2.tgz", - "integrity": "sha512-bbxglRjsGQMchfvXZNusUcYgiB9Hx2K4AHYXQy2DITZ9Rd+JzhX7+hoocE5Winr7z2oHvPsekkBwXtigvxevXg==", + "version": "3.17.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.3.tgz", + "integrity": "sha512-JmMFDME3iufZnBpyKL+uS78LRiC+mK55zWfM5f/pWBJfpOttXAqYfdDGRukYhJuyRinvPVAtUhvy7rlDybNtFg==", "dev": true, "optional": true }, @@ -36170,9 +35574,9 @@ } }, "update-browserslist-db": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", - "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" From 16651916a62674e2f5883ef6a95bc53f571b2d85 Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Mon, 17 Oct 2022 19:51:37 +0530 Subject: [PATCH 34/84] feat: Integration Telemetry: Implement framework to track usage of RN SDK #732 --- .../java/com/reactnativehmssdk/HMSHelper.kt | 9 +++++++++ .../java/com/reactnativehmssdk/HMSRNSDK.kt | 2 ++ example/ios/Podfile.lock | 18 +++++++++--------- .../ios/RNHMSExample.xcodeproj/project.pbxproj | 4 ++-- ios/HMSHelper.swift | 9 +++++++++ ios/HMSRNSDK.swift | 1 + src/classes/HMSSDK.tsx | 6 ++++++ 7 files changed, 38 insertions(+), 11 deletions(-) diff --git a/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt b/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt index 1f76841cb..ce6b6e0ba 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt @@ -17,6 +17,7 @@ import java.io.ByteArrayOutputStream import java.util.* import live.hms.video.audio.HMSAudioManager import live.hms.video.error.HMSException +import live.hms.video.events.AgentType import live.hms.video.media.codec.HMSAudioCodec import live.hms.video.media.codec.HMSVideoCodec import live.hms.video.media.settings.* @@ -161,6 +162,14 @@ object HMSHelper { return null } + fun getFrameworkInfo(data: ReadableMap?): FrameworkInfo { + var version = "" + if(this.areAllRequiredKeysAvailable(data, arrayOf(Pair("version", "String")))){ + version = data?.getString("version") as String + } + return FrameworkInfo(AgentType.REACT_NATIVE, "2.5.0", version) + } + fun getTrackSettings(data: ReadableMap?): HMSTrackSettings? { if (data == null) { return null diff --git a/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt b/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt index 678d06831..e4fff16a2 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt @@ -43,10 +43,12 @@ class HMSRNSDK( init { val trackSettings = HMSHelper.getTrackSettings(data?.getMap("trackSettings")) + val frameworkInfo = HMSHelper.getFrameworkInfo(data?.getMap("frameworkInfo")) if (trackSettings == null) { this.hmsSDK = HMSSDK.Builder(reactApplicationContext).build() } else { this.hmsSDK = HMSSDK.Builder(reactApplicationContext).setTrackSettings(trackSettings).build() + this.hmsSDK = HMSSDK.Builder(reactApplicationContext).setFrameworkInfo(frameworkInfo).build() } } diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 7fda91a10..2aaf9d6b6 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -284,7 +284,7 @@ PODS: - React-Core - react-native-camera/RN (4.2.1): - React-Core - - react-native-cameraroll (5.0.4): + - react-native-cameraroll (5.0.3): - React-Core - react-native-document-picker (8.1.1): - React-Core @@ -368,7 +368,7 @@ PODS: - React-perflogger (= 0.64.2) - rn-fetch-blob (0.12.0): - React-Core - - RNCPicker (2.4.7): + - RNCPicker (2.4.6): - React-Core - RNDeviceInfo (9.0.2): - React-Core @@ -378,10 +378,10 @@ PODS: - React-Core - RNPermissions (3.4.0): - React-Core - - RNScreens (3.18.2): + - RNScreens (3.17.0): - React-Core - React-RCTImage - - RNShare (7.9.1): + - RNShare (7.9.0): - React-Core - RNVectorIcons (9.2.0): - React-Core @@ -582,7 +582,7 @@ SPEC CHECKSUMS: CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 DoubleConversion: cf9b38bf0b2d048436d9a82ad2abe1404f11e7de FBLazyVector: e686045572151edef46010a6f819ade377dfeb4b - FBReactNativeSpec: 0094aca9cd5d4a79abcb5a2c1d1f52d0c106aaf9 + FBReactNativeSpec: 978556cb9c183a32af51f818206b201b3deb0d1e Flipper: d3da1aa199aad94455ae725e9f3aa43f3ec17021 Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41 Flipper-Folly: 755929a4f851b2fb2c347d533a23f191b008554c @@ -611,7 +611,7 @@ SPEC CHECKSUMS: React-jsiexecutor: 80c46bd381fd06e418e0d4f53672dc1d1945c4c3 React-jsinspector: cc614ec18a9ca96fd275100c16d74d62ee11f0ae react-native-camera: 3eae183c1d111103963f3dd913b65d01aef8110f - react-native-cameraroll: 38b40d9033e4077b6c603f92f95c6d05fa7907df + react-native-cameraroll: db9ebe8fc29baf68defdb1691fb6642e8a8ad04d react-native-document-picker: f68191637788994baed5f57d12994aa32cf8bf88 react-native-hms: b2376d842bbb8bc5b82ae6b201dc0977af7d4bfc react-native-safe-area-context: 9e40fb181dac02619414ba1294d6c2a807056ab9 @@ -630,13 +630,13 @@ SPEC CHECKSUMS: React-runtimeexecutor: a9904c6d0218fb9f8b19d6dd88607225927668f9 ReactCommon: 149906e01aa51142707a10665185db879898e966 rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba - RNCPicker: 35b5d45693bb46c0e5514116081509e15a64a145 + RNCPicker: 2f71e09c52ab6327e2c393213368ea0e5bfbcb65 RNDeviceInfo: 1e3f62b9ec32f7754fac60bd06b8f8a27124e7f0 RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211 RNPermissions: eac721f71748c4472d6e876038270b75397d6ee7 - RNScreens: 34cc502acf1b916c582c60003dc3089fa01dc66d - RNShare: a5dc3b9c53ddc73e155b8cd9a94c70c91913c43c + RNScreens: 0df01424e9e0ed7827200d6ed1087ddd06c493f9 + RNShare: be91a5c149585affb02c25b351bd07ba927c7006 RNVectorIcons: fcc2f6cb32f5735b586e66d14103a74ce6ad61f8 Toast: 91b396c56ee72a5790816f40d3a94dd357abc196 Yoga: 575c581c63e0d35c9a83f4b46d01d63abc1100ac diff --git a/example/ios/RNHMSExample.xcodeproj/project.pbxproj b/example/ios/RNHMSExample.xcodeproj/project.pbxproj index 01cbb5620..cba9e8e86 100644 --- a/example/ios/RNHMSExample.xcodeproj/project.pbxproj +++ b/example/ios/RNHMSExample.xcodeproj/project.pbxproj @@ -726,7 +726,7 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -791,7 +791,7 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; diff --git a/ios/HMSHelper.swift b/ios/HMSHelper.swift index d677a24e4..35e3318da 100644 --- a/ios/HMSHelper.swift +++ b/ios/HMSHelper.swift @@ -136,6 +136,15 @@ class HMSHelper: NSObject { return hms } + static func getFrameworkInfo(_ frameworkInfo: NSDictionary?) -> HMSFrameworkInfo? { + guard let data = frameworkInfo, + let version = data.value(forKey: "version") as? String + else { + return nil + } + return HMSFrameworkInfo(type: HMSFrameworkType.reactNative, version: version, sdkVersion: "0.4.5") + } + static func getLocalVideoSettings(_ settings: NSDictionary?) -> HMSVideoTrackSettings? { guard let data = settings, let codec = data.value(forKey: "codec") as? String, diff --git a/ios/HMSRNSDK.swift b/ios/HMSRNSDK.swift index 567697dcf..52acee730 100644 --- a/ios/HMSRNSDK.swift +++ b/ios/HMSRNSDK.swift @@ -52,6 +52,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener { DispatchQueue.main.async { [weak self] in self?.hms = HMSSDK.build { sdk in sdk.appGroup = data?.value(forKey: "appGroup") as? String + sdk.frameworkInfo = HMSHelper.getFrameworkInfo(data?.value(forKey: "frameworkInfo") as? NSDictionary) let trackSettings = data?.value(forKey: "trackSettings") as? NSDictionary let videoSettings = HMSHelper.getLocalVideoSettings(trackSettings?.value(forKey: "video") as? NSDictionary) let audioSettings = HMSHelper.getLocalAudioSettings(trackSettings?.value(forKey: "audio") as? NSDictionary, sdk, self?.delegate, id) diff --git a/src/classes/HMSSDK.tsx b/src/classes/HMSSDK.tsx index e46115624..410a2cb44 100644 --- a/src/classes/HMSSDK.tsx +++ b/src/classes/HMSSDK.tsx @@ -49,6 +49,8 @@ const { HMSManager, } = NativeModules; +const ReactNativeVersion = require('react-native/Libraries/Core/ReactNativeVersion'); + const HmsEventEmitter = new NativeEventEmitter(HMSManager); let HmsSdk: HMSSDK | undefined; @@ -104,10 +106,14 @@ export class HMSSDK { appGroup?: String; preferredExtension?: String; }) { + const { major, minor, patch } = ReactNativeVersion.version; let id = await HMSManager.build({ trackSettings: params?.trackSettings, appGroup: params?.appGroup, // required for iOS Screenshare, not required for Android preferredExtension: params?.preferredExtension, // required for iOS Screenshare, not required for Android + frameworkInfo: { + version: major + '.' + minor + '.' + patch, + }, }); HmsSdk = new HMSSDK(id); HmsSdk.attachListeners(); From be4950e8b24347846290ad87333ae2f4225da280 Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Mon, 17 Oct 2022 19:57:54 +0530 Subject: [PATCH 35/84] fix: reverted podfile.lock and project.pbxproj changes --- example/ios/Podfile.lock | 18 +++++++++--------- .../ios/RNHMSExample.xcodeproj/project.pbxproj | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 2aaf9d6b6..7fda91a10 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -284,7 +284,7 @@ PODS: - React-Core - react-native-camera/RN (4.2.1): - React-Core - - react-native-cameraroll (5.0.3): + - react-native-cameraroll (5.0.4): - React-Core - react-native-document-picker (8.1.1): - React-Core @@ -368,7 +368,7 @@ PODS: - React-perflogger (= 0.64.2) - rn-fetch-blob (0.12.0): - React-Core - - RNCPicker (2.4.6): + - RNCPicker (2.4.7): - React-Core - RNDeviceInfo (9.0.2): - React-Core @@ -378,10 +378,10 @@ PODS: - React-Core - RNPermissions (3.4.0): - React-Core - - RNScreens (3.17.0): + - RNScreens (3.18.2): - React-Core - React-RCTImage - - RNShare (7.9.0): + - RNShare (7.9.1): - React-Core - RNVectorIcons (9.2.0): - React-Core @@ -582,7 +582,7 @@ SPEC CHECKSUMS: CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 DoubleConversion: cf9b38bf0b2d048436d9a82ad2abe1404f11e7de FBLazyVector: e686045572151edef46010a6f819ade377dfeb4b - FBReactNativeSpec: 978556cb9c183a32af51f818206b201b3deb0d1e + FBReactNativeSpec: 0094aca9cd5d4a79abcb5a2c1d1f52d0c106aaf9 Flipper: d3da1aa199aad94455ae725e9f3aa43f3ec17021 Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41 Flipper-Folly: 755929a4f851b2fb2c347d533a23f191b008554c @@ -611,7 +611,7 @@ SPEC CHECKSUMS: React-jsiexecutor: 80c46bd381fd06e418e0d4f53672dc1d1945c4c3 React-jsinspector: cc614ec18a9ca96fd275100c16d74d62ee11f0ae react-native-camera: 3eae183c1d111103963f3dd913b65d01aef8110f - react-native-cameraroll: db9ebe8fc29baf68defdb1691fb6642e8a8ad04d + react-native-cameraroll: 38b40d9033e4077b6c603f92f95c6d05fa7907df react-native-document-picker: f68191637788994baed5f57d12994aa32cf8bf88 react-native-hms: b2376d842bbb8bc5b82ae6b201dc0977af7d4bfc react-native-safe-area-context: 9e40fb181dac02619414ba1294d6c2a807056ab9 @@ -630,13 +630,13 @@ SPEC CHECKSUMS: React-runtimeexecutor: a9904c6d0218fb9f8b19d6dd88607225927668f9 ReactCommon: 149906e01aa51142707a10665185db879898e966 rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba - RNCPicker: 2f71e09c52ab6327e2c393213368ea0e5bfbcb65 + RNCPicker: 35b5d45693bb46c0e5514116081509e15a64a145 RNDeviceInfo: 1e3f62b9ec32f7754fac60bd06b8f8a27124e7f0 RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211 RNPermissions: eac721f71748c4472d6e876038270b75397d6ee7 - RNScreens: 0df01424e9e0ed7827200d6ed1087ddd06c493f9 - RNShare: be91a5c149585affb02c25b351bd07ba927c7006 + RNScreens: 34cc502acf1b916c582c60003dc3089fa01dc66d + RNShare: a5dc3b9c53ddc73e155b8cd9a94c70c91913c43c RNVectorIcons: fcc2f6cb32f5735b586e66d14103a74ce6ad61f8 Toast: 91b396c56ee72a5790816f40d3a94dd357abc196 Yoga: 575c581c63e0d35c9a83f4b46d01d63abc1100ac diff --git a/example/ios/RNHMSExample.xcodeproj/project.pbxproj b/example/ios/RNHMSExample.xcodeproj/project.pbxproj index cba9e8e86..01cbb5620 100644 --- a/example/ios/RNHMSExample.xcodeproj/project.pbxproj +++ b/example/ios/RNHMSExample.xcodeproj/project.pbxproj @@ -726,7 +726,7 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -791,7 +791,7 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; From 60a145cf09ff8efd5d214e7a7f01a0615b99e5af Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Tue, 18 Oct 2022 13:32:32 +0530 Subject: [PATCH 36/84] fix: sdk version --- .../src/main/java/com/reactnativehmssdk/HMSHelper.kt | 10 ++++++++-- ios/HMSHelper.swift | 5 +++-- src/classes/HMSSDK.tsx | 2 ++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt b/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt index ce6b6e0ba..4212a0931 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt @@ -164,10 +164,16 @@ object HMSHelper { fun getFrameworkInfo(data: ReadableMap?): FrameworkInfo { var version = "" - if(this.areAllRequiredKeysAvailable(data, arrayOf(Pair("version", "String")))){ + var sdkVersion = "" + if (this.areAllRequiredKeysAvailable( + data, + arrayOf(Pair("version", "String"), Pair("sdkVersion", "String")) + ) + ) { version = data?.getString("version") as String + sdkVersion = data?.getString("sdkVersion") as String } - return FrameworkInfo(AgentType.REACT_NATIVE, "2.5.0", version) + return FrameworkInfo(AgentType.REACT_NATIVE, sdkVersion, version) } fun getTrackSettings(data: ReadableMap?): HMSTrackSettings? { diff --git a/ios/HMSHelper.swift b/ios/HMSHelper.swift index 35e3318da..50f4a75c6 100644 --- a/ios/HMSHelper.swift +++ b/ios/HMSHelper.swift @@ -138,11 +138,12 @@ class HMSHelper: NSObject { static func getFrameworkInfo(_ frameworkInfo: NSDictionary?) -> HMSFrameworkInfo? { guard let data = frameworkInfo, - let version = data.value(forKey: "version") as? String + let version = data.value(forKey: "version") as? String, + let sdkVersion = data.value(forKey: "sdkVersion") as? String else { return nil } - return HMSFrameworkInfo(type: HMSFrameworkType.reactNative, version: version, sdkVersion: "0.4.5") + return HMSFrameworkInfo(type: HMSFrameworkType.reactNative, version: version, sdkVersion: sdkVersion) } static func getLocalVideoSettings(_ settings: NSDictionary?) -> HMSVideoTrackSettings? { diff --git a/src/classes/HMSSDK.tsx b/src/classes/HMSSDK.tsx index 410a2cb44..7b4c98c0c 100644 --- a/src/classes/HMSSDK.tsx +++ b/src/classes/HMSSDK.tsx @@ -106,6 +106,7 @@ export class HMSSDK { appGroup?: String; preferredExtension?: String; }) { + const { version } = require('../../package.json'); const { major, minor, patch } = ReactNativeVersion.version; let id = await HMSManager.build({ trackSettings: params?.trackSettings, @@ -113,6 +114,7 @@ export class HMSSDK { preferredExtension: params?.preferredExtension, // required for iOS Screenshare, not required for Android frameworkInfo: { version: major + '.' + minor + '.' + patch, + sdkVersion: version, }, }); HmsSdk = new HMSSDK(id); From d356e931b3d41735787368865eee58b29a525a3a Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Tue, 18 Oct 2022 16:52:06 +0530 Subject: [PATCH 37/84] feat: landscape support --- .../src/screens/MeetingScreen/GridView.tsx | 12 ++--- example/src/screens/MeetingScreen/index.tsx | 49 ++++++++----------- example/src/utils/functions.ts | 40 +++++++++++++++ 3 files changed, 67 insertions(+), 34 deletions(-) diff --git a/example/src/screens/MeetingScreen/GridView.tsx b/example/src/screens/MeetingScreen/GridView.tsx index 0b9715467..ccf99b1d2 100644 --- a/example/src/screens/MeetingScreen/GridView.tsx +++ b/example/src/screens/MeetingScreen/GridView.tsx @@ -3,16 +3,17 @@ import {View, FlatList, Dimensions} from 'react-native'; import {HMSTrackSource} from '@100mslive/react-native-hms'; import {useSafeAreaInsets} from 'react-native-safe-area-context'; -import {getHmsViewHeight} from '../../utils/functions'; +import {getDisplayTrackDimensions} from '../../utils/functions'; import {styles} from './styles'; import {DisplayTrack} from './DisplayTrack'; -import {LayoutParams, PeerTrackNode} from '../../utils/types'; +import type {PeerTrackNode} from '../../utils/types'; type GridViewProps = { pairedPeers: PeerTrackNode[][]; + orientation: boolean; }; -const GridView = ({pairedPeers}: GridViewProps) => { +const GridView = ({pairedPeers, orientation}: GridViewProps) => { // hooks const {left, right, top, bottom} = useSafeAreaInsets(); @@ -49,12 +50,11 @@ const GridView = ({pairedPeers}: GridViewProps) => { view?.track?.source !== HMSTrackSource.REGULAR ? styles.flex : { - ...getHmsViewHeight( - LayoutParams.GRID, + ...getDisplayTrackDimensions( item.length, top, bottom, - true, + orientation, ), }, ]} diff --git a/example/src/screens/MeetingScreen/index.tsx b/example/src/screens/MeetingScreen/index.tsx index 7b3254024..32de4e0ff 100644 --- a/example/src/screens/MeetingScreen/index.tsx +++ b/example/src/screens/MeetingScreen/index.tsx @@ -11,11 +11,10 @@ import { HMSUpdateListenerActions, } from '@100mslive/react-native-hms'; import React, {useEffect, useMemo, useRef, useState} from 'react'; -import {View, Text, SafeAreaView, Platform} from 'react-native'; +import {View, Text, SafeAreaView, Platform, Dimensions} from 'react-native'; import Feather from 'react-native-vector-icons/Feather'; import Ionicons from 'react-native-vector-icons/Ionicons'; import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'; -import {useSafeAreaInsets} from 'react-native-safe-area-context'; import {useDispatch, useSelector} from 'react-redux'; import Toast from 'react-native-simple-toast'; import {useNavigation} from '@react-navigation/native'; @@ -31,6 +30,7 @@ import { } from '../../components'; import {ModalTypes, PeerTrackNode} from '../../utils/types'; import { + isPortrait, pairData, parseMetadata, updatePeersTrackNodesOnPeerListener, @@ -97,14 +97,15 @@ const DisplayView = (data: { // useState hook const [peerTrackNodes, setPeerTrackNodes] = useState>(peerState); + const [orientation, setOrientation] = useState(true); // useRef hook const peerTrackNodesRef = useRef(peerTrackNodes); // constants const pairedPeers = useMemo( - () => pairData(peerTrackNodes, 4), - [peerTrackNodes], + () => pairData(peerTrackNodes, orientation ? 4 : 2), + [orientation, peerTrackNodes], ); // listeners @@ -202,13 +203,9 @@ const DisplayView = (data: { setPeerTrackNodes(newPeerTrackNodes); peerTrackNodesRef.current = newPeerTrackNodes; if (peer?.isLocal) { - data?.setLocalPeer( - new HMSLocalPeer({ - ...peer, - localAudioTrackData: peer.audioTrack, - localVideoTrackData: peer.videoTrack, - }), - ); + hmsInstance?.getLocalPeer().then(localPeer => { + data?.setLocalPeer(localPeer); + }); } if (type === HMSPeerUpdate.PEER_LEFT) { @@ -250,13 +247,9 @@ const DisplayView = (data: { setPeerTrackNodes(newPeerTrackNodes); peerTrackNodesRef.current = newPeerTrackNodes; if (peer?.isLocal) { - data?.setLocalPeer( - new HMSLocalPeer({ - ...peer, - localAudioTrackData: peer.audioTrack, - localVideoTrackData: peer.videoTrack, - }), - ); + hmsInstance?.getLocalPeer().then(localPeer => { + data?.setLocalPeer(localPeer); + }); } }; @@ -343,22 +336,24 @@ const DisplayView = (data: { const updateLocalPeer = () => { peerTrackNodes?.map(peerTrackNode => { if (peerTrackNode?.peer?.isLocal) { - data?.setLocalPeer( - new HMSLocalPeer({ - ...peerTrackNode?.peer, - localAudioTrackData: peerTrackNode?.peer?.audioTrack, - localVideoTrackData: peerTrackNode?.peer?.videoTrack, - }), - ); + hmsInstance?.getLocalPeer().then(localPeer => { + data?.setLocalPeer(localPeer); + }); } }); }; // useEffect hook useEffect(() => { + const callback = () => { + setOrientation(isPortrait()); + }; updateHmsInstance(hmsInstance); updateLocalPeer(); + callback(); + Dimensions.addEventListener('change', callback); return () => { + Dimensions.removeEventListener('change', callback); onLeavePress(); }; // eslint-disable-next-line react-hooks/exhaustive-deps @@ -367,7 +362,7 @@ const DisplayView = (data: { return ( {pairedPeers.length ? ( - + ) : ( Welcome! @@ -598,7 +593,6 @@ const Header = ({ const Footer = ({localPeer}: {localPeer?: HMSLocalPeer}) => { // hooks const {hmsInstance} = useSelector((state: RootState) => state.user); - const {left, right} = useSafeAreaInsets(); // constants const iconSize = 20; @@ -626,7 +620,6 @@ const Footer = ({localPeer}: {localPeer?: HMSLocalPeer}) => { // localPeer?.role?.permissions?.hlsStreaming // ? styles.iconBotttomWrapperHls : styles.iconBotttomWrapper, - {left, right}, ]}> {localPeer?.role?.publishSettings?.allowed?.includes('audio') && ( diff --git a/example/src/utils/functions.ts b/example/src/utils/functions.ts index 2a64b1beb..007cbb345 100644 --- a/example/src/utils/functions.ts +++ b/example/src/utils/functions.ts @@ -3,6 +3,7 @@ import { Dimensions, PermissionsAndroid, Permission, + StatusBar, } from 'react-native'; import RNFetchBlob from 'rn-fetch-blob'; import Share from 'react-native-share'; @@ -582,3 +583,42 @@ export const pairData = ( return [...pairedDataSource, ...pairedDataRegular]; }; + +export const getDisplayTrackDimensions = ( + peersInPage: number, + top: number, + bottom: number, + orientation: boolean, +) => { + // window height - (header + footer + top + bottom + padding) + const viewHeight = + Dimensions.get('window').height - (50 + 50 + top + bottom + 2); + + let height, width; + + if (orientation) { + height = + peersInPage === 1 + ? viewHeight / 1 + : peersInPage === 2 + ? viewHeight / 2 + : peersInPage === 3 + ? viewHeight / 3 + : viewHeight / 2; + + width = + peersInPage === 1 + ? '100%' + : peersInPage === 2 + ? '100%' + : peersInPage === 3 + ? '100%' + : '50%'; + } else { + height = viewHeight - (StatusBar.currentHeight || 0); + + width = peersInPage === 1 ? '100%' : '50%'; + } + + return {height, width}; +}; From 547cffdaf7977fe11b3fc248c953e97937144409 Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Tue, 18 Oct 2022 20:34:07 +0530 Subject: [PATCH 38/84] feat: localPeer tile on iOS --- example/src/screens/MeetingScreen/index.tsx | 13 +++-- example/src/screens/Welcome/index.tsx | 61 ++++++++++++++------- example/src/screens/Welcome/styles.ts | 1 - example/src/utils/functions.ts | 3 + 4 files changed, 52 insertions(+), 26 deletions(-) diff --git a/example/src/screens/MeetingScreen/index.tsx b/example/src/screens/MeetingScreen/index.tsx index 32de4e0ff..333ea2638 100644 --- a/example/src/screens/MeetingScreen/index.tsx +++ b/example/src/screens/MeetingScreen/index.tsx @@ -334,12 +334,8 @@ const DisplayView = (data: { }; const updateLocalPeer = () => { - peerTrackNodes?.map(peerTrackNode => { - if (peerTrackNode?.peer?.isLocal) { - hmsInstance?.getLocalPeer().then(localPeer => { - data?.setLocalPeer(localPeer); - }); - } + hmsInstance?.getLocalPeer().then(localPeer => { + data?.setLocalPeer(localPeer); }); }; @@ -359,6 +355,11 @@ const DisplayView = (data: { // eslint-disable-next-line react-hooks/exhaustive-deps }, []); + useEffect(() => { + setPeerTrackNodes(peerState); + peerTrackNodesRef.current = peerState; + }, [peerState]); + return ( {pairedPeers.length ? ( diff --git a/example/src/screens/Welcome/index.tsx b/example/src/screens/Welcome/index.tsx index 4f35134e5..a0654c98d 100644 --- a/example/src/screens/Welcome/index.tsx +++ b/example/src/screens/Welcome/index.tsx @@ -13,6 +13,7 @@ import { HMSSDK, HMSTrack, HMSTrackSettings, + HMSTrackSource, HMSTrackUpdate, HMSUpdateListenerActions, HMSVideoCodec, @@ -112,8 +113,28 @@ const Welcome = () => { } }; - const onJoinSuccess = (data: {room: HMSRoom}) => { - dispatch(setPeerState({peerState: peerTrackNodesRef?.current})); + const onJoinSuccess = ( + hmsInstance: HMSSDK, + data: { + room: HMSRoom; + }, + ) => { + if (Platform.OS === 'ios') { + hmsInstance?.getLocalPeer().then(localPeer => { + const hmsLocalPeer = { + id: localPeer.peerID + HMSTrackSource.REGULAR, + peer: localPeer, + track: localPeer.videoTrack, + }; + dispatch( + setPeerState({ + peerState: [hmsLocalPeer, ...peerTrackNodesRef?.current], + }), + ); + }); + } else { + dispatch(setPeerState({peerState: peerTrackNodesRef?.current})); + } setHmsRoom(data.room); setJoinButtonLoading(false); setPreviewButtonLoading(false); @@ -194,7 +215,7 @@ const Welcome = () => { hmsInstance?.addEventListener( HMSUpdateListenerActions.ON_JOIN, - onJoinSuccess, + onJoinSuccess.bind(this, hmsInstance), ); hmsInstance?.addEventListener( @@ -375,7 +396,7 @@ const Welcome = () => { enabled={Platform.OS === 'ios'} behavior="padding" style={styles.container}> - + setModalType(ModalTypes.DEFAULT)} @@ -395,21 +416,23 @@ const Welcome = () => { )} - { - setModalType(ModalTypes.DEFAULT); - setForceSoftwareDecoder(!forceSoftwareDecoder); - }}> - {forceSoftwareDecoder ? ( - - Disable software encoder - - ) : ( - - Enable software encoder - - )} - + {Platform.OS === 'android' && ( + { + setModalType(ModalTypes.DEFAULT); + setForceSoftwareDecoder(!forceSoftwareDecoder); + }}> + {forceSoftwareDecoder ? ( + + Disable software encoder + + ) : ( + + Enable software encoder + + )} + + )} setModalType(ModalTypes.WELCOME_SETTINGS)} diff --git a/example/src/screens/Welcome/styles.ts b/example/src/screens/Welcome/styles.ts index 490698a71..669529555 100644 --- a/example/src/screens/Welcome/styles.ts +++ b/example/src/screens/Welcome/styles.ts @@ -93,7 +93,6 @@ const styles = StyleSheet.create({ }, settingsButton: { marginRight: 16, - marginTop: 16, backgroundColor: COLORS.BACKGROUND.DEFAULT, borderColor: COLORS.BORDER.LIGHT, borderWidth: 1, diff --git a/example/src/utils/functions.ts b/example/src/utils/functions.ts index 007cbb345..e266e8ed9 100644 --- a/example/src/utils/functions.ts +++ b/example/src/utils/functions.ts @@ -433,6 +433,9 @@ export const updatePeersTrackNodesOnTrackListener = ( peer, }; } + if (peer?.isLocal) { + return [newPeerTrackNode, ...updatePeerTrackNodes]; + } updatePeerTrackNodes.push(newPeerTrackNode); return updatePeerTrackNodes; } From 6e7210ce64a63c8b874453379a81bb38e61395cb Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Tue, 18 Oct 2022 20:36:12 +0530 Subject: [PATCH 39/84] Update styles.ts --- example/src/screens/Welcome/styles.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/example/src/screens/Welcome/styles.ts b/example/src/screens/Welcome/styles.ts index 669529555..490698a71 100644 --- a/example/src/screens/Welcome/styles.ts +++ b/example/src/screens/Welcome/styles.ts @@ -93,6 +93,7 @@ const styles = StyleSheet.create({ }, settingsButton: { marginRight: 16, + marginTop: 16, backgroundColor: COLORS.BACKGROUND.DEFAULT, borderColor: COLORS.BORDER.LIGHT, borderWidth: 1, From b352fef78a2e47a235220325c069cd951057687b Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Wed, 19 Oct 2022 12:57:43 +0530 Subject: [PATCH 40/84] =?UTF-8?q?released=20sample=20app=20version=202.0.1?= =?UTF-8?q?1=20(116)=20=E2=9A=9B=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/android/app/build.gradle | 4 ++-- example/ios/Podfile.lock | 8 ++++---- example/ios/RNHMSExample.xcodeproj/project.pbxproj | 8 ++++---- example/ios/RNHMSExample/Info.plist | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 4a87610da..c7f00b6dd 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -135,8 +135,8 @@ android { applicationId "live.hms.rn" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 115 - versionName "2.0.10" + versionCode 116 + versionName "2.0.11" missingDimensionStrategy 'react-native-camera', 'general' } splits { diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 7fda91a10..76e2df458 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -286,7 +286,7 @@ PODS: - React-Core - react-native-cameraroll (5.0.4): - React-Core - - react-native-document-picker (8.1.1): + - react-native-document-picker (8.1.2): - React-Core - react-native-hms (0.9.94): - HMSBroadcastExtensionSDK (= 0.0.3) @@ -368,7 +368,7 @@ PODS: - React-perflogger (= 0.64.2) - rn-fetch-blob (0.12.0): - React-Core - - RNCPicker (2.4.7): + - RNCPicker (2.4.8): - React-Core - RNDeviceInfo (9.0.2): - React-Core @@ -612,7 +612,7 @@ SPEC CHECKSUMS: React-jsinspector: cc614ec18a9ca96fd275100c16d74d62ee11f0ae react-native-camera: 3eae183c1d111103963f3dd913b65d01aef8110f react-native-cameraroll: 38b40d9033e4077b6c603f92f95c6d05fa7907df - react-native-document-picker: f68191637788994baed5f57d12994aa32cf8bf88 + react-native-document-picker: f5ec1a712ca2a975c233117f044817bb8393cad4 react-native-hms: b2376d842bbb8bc5b82ae6b201dc0977af7d4bfc react-native-safe-area-context: 9e40fb181dac02619414ba1294d6c2a807056ab9 react-native-simple-toast: 8ee5d23f0b92b935ab7434cdb65159ce12dfb4b7 @@ -630,7 +630,7 @@ SPEC CHECKSUMS: React-runtimeexecutor: a9904c6d0218fb9f8b19d6dd88607225927668f9 ReactCommon: 149906e01aa51142707a10665185db879898e966 rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba - RNCPicker: 35b5d45693bb46c0e5514116081509e15a64a145 + RNCPicker: 0bf8ef8f7800524f32d2bb2a8bcadd53eda0ecd1 RNDeviceInfo: 1e3f62b9ec32f7754fac60bd06b8f8a27124e7f0 RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211 diff --git a/example/ios/RNHMSExample.xcodeproj/project.pbxproj b/example/ios/RNHMSExample.xcodeproj/project.pbxproj index 01cbb5620..3cfbe5cc0 100644 --- a/example/ios/RNHMSExample.xcodeproj/project.pbxproj +++ b/example/ios/RNHMSExample.xcodeproj/project.pbxproj @@ -622,7 +622,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 115; + CURRENT_PROJECT_VERSION = 116; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -663,7 +663,7 @@ CODE_SIGN_ENTITLEMENTS = RNHMSExample/RNHMSExample.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 115; + CURRENT_PROJECT_VERSION = 116; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -830,7 +830,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 115; + CURRENT_PROJECT_VERSION = 116; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = 5N85PP82A9; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -874,7 +874,7 @@ CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 115; + CURRENT_PROJECT_VERSION = 116; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = 5N85PP82A9; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; diff --git a/example/ios/RNHMSExample/Info.plist b/example/ios/RNHMSExample/Info.plist index 5207f14b1..7e2f76120 100644 --- a/example/ios/RNHMSExample/Info.plist +++ b/example/ios/RNHMSExample/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.0.10 + 2.0.11 CFBundleSignature ???? CFBundleVersion - 115 + 116 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS From e75b4c3e3038ba879ea273c12ec3cfdef6ea44d7 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Wed, 19 Oct 2022 13:08:06 +0530 Subject: [PATCH 41/84] updated packages --- example/android/Gemfile.lock | 8 +- example/ios/Gemfile.lock | 8 +- example/package-lock.json | 85 +++--- package-lock.json | 493 +++++++++++++++++++++++++++++------ 4 files changed, 458 insertions(+), 136 deletions(-) diff --git a/example/android/Gemfile.lock b/example/android/Gemfile.lock index ed1b41fbf..ed4adceab 100644 --- a/example/android/Gemfile.lock +++ b/example/android/Gemfile.lock @@ -8,8 +8,8 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.646.0) - aws-sdk-core (3.160.0) + aws-partitions (1.647.0) + aws-sdk-core (3.161.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) @@ -109,7 +109,7 @@ GEM gh_inspector (1.1.3) google-apis-androidpublisher_v3 (0.29.0) google-apis-core (>= 0.9.0, < 2.a) - google-apis-core (0.9.0) + google-apis-core (0.9.1) addressable (~> 2.5, >= 2.5.1) googleauth (>= 0.16.2, < 2.a) httpclient (>= 2.8.1, < 3.a) @@ -138,7 +138,7 @@ GEM google-cloud-core (~> 1.6) googleauth (>= 0.16.2, < 2.a) mini_mime (~> 1.0) - googleauth (1.2.0) + googleauth (1.3.0) faraday (>= 0.17.3, < 3.a) jwt (>= 1.4, < 3.0) memoist (~> 0.16) diff --git a/example/ios/Gemfile.lock b/example/ios/Gemfile.lock index 2029baeda..d0a6e2ee7 100644 --- a/example/ios/Gemfile.lock +++ b/example/ios/Gemfile.lock @@ -8,8 +8,8 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.646.0) - aws-sdk-core (3.160.0) + aws-partitions (1.647.0) + aws-sdk-core (3.161.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) @@ -110,7 +110,7 @@ GEM gh_inspector (1.1.3) google-apis-androidpublisher_v3 (0.29.0) google-apis-core (>= 0.9.0, < 2.a) - google-apis-core (0.9.0) + google-apis-core (0.9.1) addressable (~> 2.5, >= 2.5.1) googleauth (>= 0.16.2, < 2.a) httpclient (>= 2.8.1, < 3.a) @@ -139,7 +139,7 @@ GEM google-cloud-core (~> 1.6) googleauth (>= 0.16.2, < 2.a) mini_mime (~> 1.0) - googleauth (1.2.0) + googleauth (1.3.0) faraday (>= 0.17.3, < 3.a) jwt (>= 1.4, < 3.0) memoist (~> 0.16) diff --git a/example/package-lock.json b/example/package-lock.json index f7676e1d3..7417aa92f 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -3403,9 +3403,9 @@ "dev": true }, "node_modules/@react-native-picker/picker": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.7.tgz", - "integrity": "sha512-SZewIUpkHIA1VzDdetXLpZUfwVOR4p+CRGguo8dGt/33nh9Bhkpt0Ke6KazZ6agbDGyBjlVEAqzkcLXoRBwOJQ==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.8.tgz", + "integrity": "sha512-5NQ5XPo1B03YNqKFrV6h9L3CQaHlB80wd4ETHUEABRP2iLh7FHLVObX2GfziD+K/VJb8G4KZcZ23NFBFP1f7bg==", "peerDependencies": { "react": ">=16", "react-native": ">=0.57" @@ -3644,9 +3644,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.11.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.0.tgz", - "integrity": "sha512-IOXCvVRToe7e0ny7HpT/X9Rb2RYtElG1a+VshjwT00HxrM2dWBApHQoqsI6WiY7Q03vdf2bCrIGzVrkF/5t10w==" + "version": "18.11.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.2.tgz", + "integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -3676,9 +3676,9 @@ } }, "node_modules/@types/react-native": { - "version": "0.64.28", - "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.64.28.tgz", - "integrity": "sha512-2ZMLNH7f3cDQQWt7WWirXJCArZ0RXF3qBVALCw0MBU/ObPcCNs6+1GXZGehdmFGDspWaqHFd7MF7TtZoC6QdYA==", + "version": "0.64.29", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.64.29.tgz", + "integrity": "sha512-nCa4rcAlilTWL7wEUwTnxo6HjxQvFjVeDPK9taglDvId06pw/eOUu2NozfpwY91o8K7UdZn8VUoDRaGt2i8LBA==", "dev": true, "dependencies": { "@types/react": "^17" @@ -4828,9 +4828,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001419", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001419.tgz", - "integrity": "sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw==", + "version": "1.0.30001422", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz", + "integrity": "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==", "funding": [ { "type": "opencollective", @@ -5519,9 +5519,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.283", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.283.tgz", - "integrity": "sha512-g6RQ9zCOV+U5QVHW9OpFR7rdk/V7xfopNXnyAamdpFgCHgZ1sjI8VuR1+zG2YG/TZk+tQ8mpNkug4P8FU0fuOA==" + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" }, "node_modules/eme-encryption-scheme-polyfill": { "version": "2.1.1", @@ -7520,9 +7520,9 @@ } }, "node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dependencies": { "has": "^1.0.3" }, @@ -11662,9 +11662,9 @@ } }, "node_modules/react-native-document-picker": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/react-native-document-picker/-/react-native-document-picker-8.1.1.tgz", - "integrity": "sha512-mH0oghd7ndgU9/1meVJdqts1sAkOfUQW1qbrqTTsvR5f2K9r0BAj/X02dve5IBMOMZvlGd7qWrNVuIFg5AUXWg==", + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/react-native-document-picker/-/react-native-document-picker-8.1.2.tgz", + "integrity": "sha512-R126YsjTXBuvigRRExyAQ+yn1UGV4dGcMI9x4UAY8TBTSOt6nOQcWS/AQcbzjk9MnN8ISDGqNq9GmN51Q1aHjA==", "dependencies": { "invariant": "^2.2.4" }, @@ -14364,6 +14364,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", "dev": true, "dependencies": { "browser-process-hrtime": "^1.0.0" @@ -17086,9 +17087,9 @@ "dev": true }, "@react-native-picker/picker": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.7.tgz", - "integrity": "sha512-SZewIUpkHIA1VzDdetXLpZUfwVOR4p+CRGguo8dGt/33nh9Bhkpt0Ke6KazZ6agbDGyBjlVEAqzkcLXoRBwOJQ==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.8.tgz", + "integrity": "sha512-5NQ5XPo1B03YNqKFrV6h9L3CQaHlB80wd4ETHUEABRP2iLh7FHLVObX2GfziD+K/VJb8G4KZcZ23NFBFP1f7bg==", "requires": {} }, "@react-native/assets": { @@ -17302,9 +17303,9 @@ "dev": true }, "@types/node": { - "version": "18.11.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.0.tgz", - "integrity": "sha512-IOXCvVRToe7e0ny7HpT/X9Rb2RYtElG1a+VshjwT00HxrM2dWBApHQoqsI6WiY7Q03vdf2bCrIGzVrkF/5t10w==" + "version": "18.11.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.2.tgz", + "integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==" }, "@types/normalize-package-data": { "version": "2.4.1", @@ -17334,9 +17335,9 @@ } }, "@types/react-native": { - "version": "0.64.28", - "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.64.28.tgz", - "integrity": "sha512-2ZMLNH7f3cDQQWt7WWirXJCArZ0RXF3qBVALCw0MBU/ObPcCNs6+1GXZGehdmFGDspWaqHFd7MF7TtZoC6QdYA==", + "version": "0.64.29", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.64.29.tgz", + "integrity": "sha512-nCa4rcAlilTWL7wEUwTnxo6HjxQvFjVeDPK9taglDvId06pw/eOUu2NozfpwY91o8K7UdZn8VUoDRaGt2i8LBA==", "dev": true, "requires": { "@types/react": "^17" @@ -18196,9 +18197,9 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "caniuse-lite": { - "version": "1.0.30001419", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001419.tgz", - "integrity": "sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw==" + "version": "1.0.30001422", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz", + "integrity": "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==" }, "capture-exit": { "version": "2.0.0", @@ -18743,9 +18744,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "electron-to-chromium": { - "version": "1.4.283", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.283.tgz", - "integrity": "sha512-g6RQ9zCOV+U5QVHW9OpFR7rdk/V7xfopNXnyAamdpFgCHgZ1sjI8VuR1+zG2YG/TZk+tQ8mpNkug4P8FU0fuOA==" + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" }, "eme-encryption-scheme-polyfill": { "version": "2.1.1", @@ -20238,9 +20239,9 @@ } }, "is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "requires": { "has": "^1.0.3" } @@ -23431,9 +23432,9 @@ "requires": {} }, "react-native-document-picker": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/react-native-document-picker/-/react-native-document-picker-8.1.1.tgz", - "integrity": "sha512-mH0oghd7ndgU9/1meVJdqts1sAkOfUQW1qbrqTTsvR5f2K9r0BAj/X02dve5IBMOMZvlGd7qWrNVuIFg5AUXWg==", + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/react-native-document-picker/-/react-native-document-picker-8.1.2.tgz", + "integrity": "sha512-R126YsjTXBuvigRRExyAQ+yn1UGV4dGcMI9x4UAY8TBTSOt6nOQcWS/AQcbzjk9MnN8ISDGqNq9GmN51Q1aHjA==", "requires": { "invariant": "^2.2.4" } diff --git a/package-lock.json b/package-lock.json index cb3666b23..556b63831 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3494,12 +3494,12 @@ } }, "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==", + "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==", "peer": true, "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" @@ -3694,12 +3694,12 @@ } }, "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==", + "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==", "peer": true, "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", @@ -3775,14 +3775,14 @@ } }, "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==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-9.2.1.tgz", + "integrity": "sha512-RpUax0pkKumXJ5hcRG0Qd+oYWsA2RFeMWKY+Npg8q05Cwd1rqDQfWGprkHC576vz26+FPuvwEagoAf6fR2bvJA==", "peer": true, "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.2.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "command-exists": "^1.2.8", "envinfo": "^7.7.2", @@ -3798,6 +3798,19 @@ "wcwidth": "^1.0.1" } }, + "node_modules/@react-native-community/cli-doctor/node_modules/@react-native-community/cli-platform-ios": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.2.1.tgz", + "integrity": "sha512-dEgvkI6CFgPk3vs8IOR0toKVUjIFwe4AsXFvWWJL5qhrIzW9E5Owi0zPkSvzXsMlfYMbVX0COfVIK539ZxguSg==", + "peer": true, + "dependencies": { + "@react-native-community/cli-tools": "^9.2.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "glob": "^7.1.3", + "ora": "^5.4.1" + } + }, "node_modules/@react-native-community/cli-doctor/node_modules/ansi-regex": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", @@ -4017,18 +4030,33 @@ } }, "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==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-9.2.1.tgz", + "integrity": "sha512-723/NMb7egXzJrbWT1uEkN2hOpw+OOtWTG2zKJ3j7KKgUd8u/pP+/z5jO8xVrq+eYJEMjDK0FBEo1Xj7maR4Sw==", "peer": true, "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.2.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-hermes/node_modules/@react-native-community/cli-platform-android": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.2.1.tgz", + "integrity": "sha512-VamCZ8nido3Q3Orhj6pBIx48itORNPLJ7iTfy3nucD1qISEDih3DOzCaQCtmqdEBgUkNkNl0O+cKgq5A3th3Zg==", + "peer": true, + "dependencies": { + "@react-native-community/cli-tools": "^9.2.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "fs-extra": "^8.1.0", + "glob": "^7.1.3", + "logkitty": "^0.7.1", + "slash": "^3.0.0" + } + }, "node_modules/@react-native-community/cli-hermes/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -4078,6 +4106,66 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "peer": true }, + "node_modules/@react-native-community/cli-hermes/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@react-native-community/cli-hermes/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -4087,6 +4175,75 @@ "node": ">=8" } }, + "node_modules/@react-native-community/cli-hermes/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "peer": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "peer": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "peer": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@react-native-community/cli-hermes/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -4099,6 +4256,27 @@ "node": ">=8" } }, + "node_modules/@react-native-community/cli-hermes/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "peer": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "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", @@ -4536,13 +4714,13 @@ } }, "node_modules/@react-native-community/cli-plugin-metro": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.1.3.tgz", - "integrity": "sha512-eLZiGIMybNwkbfKRd8wfNP1u5pnsGYLD3YHlNQyRlfS7AMG7NCQN8bk2uWWJJmWAv632KFLConwJGcLhk6ZNMQ==", + "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==", "peer": true, "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.3", "metro-config": "0.72.3", @@ -4624,13 +4802,13 @@ } }, "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==", + "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==", "peer": true, "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", @@ -4641,9 +4819,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==", + "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==", "peer": true, "dependencies": { "appdirsjs": "^1.2.4", @@ -5303,9 +5481,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.11.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.0.tgz", - "integrity": "sha512-IOXCvVRToe7e0ny7HpT/X9Rb2RYtElG1a+VshjwT00HxrM2dWBApHQoqsI6WiY7Q03vdf2bCrIGzVrkF/5t10w==" + "version": "18.11.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.2.tgz", + "integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -6687,9 +6865,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001419", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001419.tgz", - "integrity": "sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw==", + "version": "1.0.30001422", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz", + "integrity": "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==", "funding": [ { "type": "opencollective", @@ -8050,9 +8228,9 @@ "peer": true }, "node_modules/electron-to-chromium": { - "version": "1.4.283", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.283.tgz", - "integrity": "sha512-g6RQ9zCOV+U5QVHW9OpFR7rdk/V7xfopNXnyAamdpFgCHgZ1sjI8VuR1+zG2YG/TZk+tQ8mpNkug4P8FU0fuOA==" + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" }, "node_modules/emittery": { "version": "0.7.2", @@ -10934,9 +11112,9 @@ } }, "node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dependencies": { "has": "^1.0.3" }, @@ -20107,6 +20285,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", "dev": true, "dependencies": { "browser-process-hrtime": "^1.0.0" @@ -23246,12 +23425,12 @@ } }, "@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==", "peer": true, "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" @@ -23397,12 +23576,12 @@ } }, "@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==", "peer": true, "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", @@ -23465,14 +23644,14 @@ } }, "@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.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-9.2.1.tgz", + "integrity": "sha512-RpUax0pkKumXJ5hcRG0Qd+oYWsA2RFeMWKY+Npg8q05Cwd1rqDQfWGprkHC576vz26+FPuvwEagoAf6fR2bvJA==", "peer": true, "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.2.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "command-exists": "^1.2.8", "envinfo": "^7.7.2", @@ -23488,6 +23667,19 @@ "wcwidth": "^1.0.1" }, "dependencies": { + "@react-native-community/cli-platform-ios": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.2.1.tgz", + "integrity": "sha512-dEgvkI6CFgPk3vs8IOR0toKVUjIFwe4AsXFvWWJL5qhrIzW9E5Owi0zPkSvzXsMlfYMbVX0COfVIK539ZxguSg==", + "peer": true, + "requires": { + "@react-native-community/cli-tools": "^9.2.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "glob": "^7.1.3", + "ora": "^5.4.1" + } + }, "ansi-regex": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", @@ -23651,18 +23843,33 @@ } }, "@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.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-9.2.1.tgz", + "integrity": "sha512-723/NMb7egXzJrbWT1uEkN2hOpw+OOtWTG2zKJ3j7KKgUd8u/pP+/z5jO8xVrq+eYJEMjDK0FBEo1Xj7maR4Sw==", "peer": true, "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.2.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "hermes-profile-transformer": "^0.0.6", "ip": "^1.1.5" }, "dependencies": { + "@react-native-community/cli-platform-android": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.2.1.tgz", + "integrity": "sha512-VamCZ8nido3Q3Orhj6pBIx48itORNPLJ7iTfy3nucD1qISEDih3DOzCaQCtmqdEBgUkNkNl0O+cKgq5A3th3Zg==", + "peer": true, + "requires": { + "@react-native-community/cli-tools": "^9.2.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "fs-extra": "^8.1.0", + "glob": "^7.1.3", + "logkitty": "^0.7.1", + "slash": "^3.0.0" + } + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -23697,12 +23904,111 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "peer": true }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "peer": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "requires": { + "pump": "^3.0.0" + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "peer": true }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "peer": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "peer": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "peer": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "peer": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "peer": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "peer": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -23711,6 +24017,21 @@ "requires": { "has-flag": "^4.0.0" } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "peer": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "peer": true, + "requires": { + "isexe": "^2.0.0" + } } } }, @@ -24047,13 +24368,13 @@ } }, "@react-native-community/cli-plugin-metro": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.1.3.tgz", - "integrity": "sha512-eLZiGIMybNwkbfKRd8wfNP1u5pnsGYLD3YHlNQyRlfS7AMG7NCQN8bk2uWWJJmWAv632KFLConwJGcLhk6ZNMQ==", + "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==", "peer": true, "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.3", "metro-config": "0.72.3", @@ -24116,13 +24437,13 @@ } }, "@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==", "peer": true, "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", @@ -24133,9 +24454,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==", "peer": true, "requires": { "appdirsjs": "^1.2.4", @@ -24460,9 +24781,9 @@ "dev": true }, "@types/node": { - "version": "18.11.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.0.tgz", - "integrity": "sha512-IOXCvVRToe7e0ny7HpT/X9Rb2RYtElG1a+VshjwT00HxrM2dWBApHQoqsI6WiY7Q03vdf2bCrIGzVrkF/5t10w==" + "version": "18.11.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.2.tgz", + "integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==" }, "@types/normalize-package-data": { "version": "2.4.1", @@ -25488,9 +25809,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001419", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001419.tgz", - "integrity": "sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw==" + "version": "1.0.30001422", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz", + "integrity": "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==" }, "capture-exit": { "version": "2.0.0", @@ -26550,9 +26871,9 @@ "peer": true }, "electron-to-chromium": { - "version": "1.4.283", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.283.tgz", - "integrity": "sha512-g6RQ9zCOV+U5QVHW9OpFR7rdk/V7xfopNXnyAamdpFgCHgZ1sjI8VuR1+zG2YG/TZk+tQ8mpNkug4P8FU0fuOA==" + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" }, "emittery": { "version": "0.7.2", @@ -28730,9 +29051,9 @@ } }, "is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "requires": { "has": "^1.0.3" } From 4fcbbd7ad0667a59b8986919cf33e4e7e4f91bb1 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Wed, 19 Oct 2022 16:28:47 +0530 Subject: [PATCH 42/84] updated Native iOS Broadcast Extension --- example/ios/Podfile.lock | 8 ++++---- react-native-hms.podspec | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 76e2df458..2eed7c11b 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -58,7 +58,7 @@ PODS: - FlipperKit/FlipperKitNetworkPlugin - glog (0.3.5) - hermes-engine (0.7.2) - - HMSBroadcastExtensionSDK (0.0.3) + - HMSBroadcastExtensionSDK (0.0.4) - HMSSDK (0.4.5): - HMSWebRTC (= 1.0.4898) - HMSWebRTC (1.0.4898) @@ -289,7 +289,7 @@ PODS: - react-native-document-picker (8.1.2): - React-Core - react-native-hms (0.9.94): - - HMSBroadcastExtensionSDK (= 0.0.3) + - HMSBroadcastExtensionSDK (= 0.0.4) - HMSSDK (= 0.4.5) - React-Core - react-native-safe-area-context (3.4.1): @@ -592,7 +592,7 @@ SPEC CHECKSUMS: FlipperKit: 8a20b5c5fcf9436cac58551dc049867247f64b00 glog: 73c2498ac6884b13ede40eda8228cb1eee9d9d62 hermes-engine: 7d97ba46a1e29bacf3e3c61ecb2804a5ddd02d4f - HMSBroadcastExtensionSDK: a69a4503a1708b5d51e2890d70f574b9cdfea760 + HMSBroadcastExtensionSDK: 9a8888c524db5582437d06e6087bc4be6d323412 HMSSDK: 7a8f5503eedffc024b959988a5bd97427c5a4ede HMSWebRTC: d3a9b2866e4a36a1d3834728a548a4a46309bb86 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 @@ -613,7 +613,7 @@ SPEC CHECKSUMS: react-native-camera: 3eae183c1d111103963f3dd913b65d01aef8110f react-native-cameraroll: 38b40d9033e4077b6c603f92f95c6d05fa7907df react-native-document-picker: f5ec1a712ca2a975c233117f044817bb8393cad4 - react-native-hms: b2376d842bbb8bc5b82ae6b201dc0977af7d4bfc + react-native-hms: bf6c7964782e41b7cd8f3d6233a1174d91d384c8 react-native-safe-area-context: 9e40fb181dac02619414ba1294d6c2a807056ab9 react-native-simple-toast: 8ee5d23f0b92b935ab7434cdb65159ce12dfb4b7 react-native-video: c26780b224543c62d5e1b2a7244a5cd1b50e8253 diff --git a/react-native-hms.podspec b/react-native-hms.podspec index ca0473a12..f6d1d1ecf 100644 --- a/react-native-hms.podspec +++ b/react-native-hms.podspec @@ -17,5 +17,5 @@ Pod::Spec.new do |s| s.dependency "React-Core" s.dependency "HMSSDK", "0.4.5" - s.dependency 'HMSBroadcastExtensionSDK', '0.0.3' + s.dependency 'HMSBroadcastExtensionSDK', '0.0.4' end From 2c028d28f518ecd50c1f9e47f972f20015a40182 Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Wed, 19 Oct 2022 17:11:56 +0530 Subject: [PATCH 43/84] feat: enable settings button --- example/src/components/ChatWindow.tsx | 19 +- example/src/redux/actions/index.ts | 3 +- example/src/redux/reducers/userState.ts | 4 +- example/src/screens/Meeting/index.tsx | 12 +- .../src/screens/MeetingScreen/GridView.tsx | 17 +- example/src/screens/MeetingScreen/Modals.tsx | 2038 +++++++++++++++++ example/src/screens/MeetingScreen/index.tsx | 543 ++++- example/src/screens/Welcome/index.tsx | 11 +- example/src/utils/functions.ts | 45 +- 9 files changed, 2609 insertions(+), 83 deletions(-) create mode 100644 example/src/screens/MeetingScreen/Modals.tsx diff --git a/example/src/components/ChatWindow.tsx b/example/src/components/ChatWindow.tsx index 754200352..5c8b4dc52 100644 --- a/example/src/components/ChatWindow.tsx +++ b/example/src/components/ChatWindow.tsx @@ -51,28 +51,24 @@ const ChatFilter = ({ setFilter, setType, setReceiverObject, - roles, }: { instance?: HMSSDK; filter?: string; - roles?: HMSRole[]; setFilter: React.Dispatch>; setType: React.Dispatch>; setReceiverObject: React.Dispatch< React.SetStateAction<'everyone' | HMSRole | HMSRemotePeer> >; }) => { + const {roles} = useSelector((state: RootState) => state.user); + const [visible, setVisible] = useState(false); const [remotePeers, setRemotePeers] = useState(); - const [hmsRoles, setHmsRoles] = useState(roles); const hideMenu = () => setVisible(false); const showMenu = () => setVisible(true); useEffect(() => { - instance?.getRoles().then(currentRoles => { - setHmsRoles(currentRoles); - }); instance?.getRemotePeers().then(currentRemotePeers => { setRemotePeers(currentRemotePeers); }); @@ -112,7 +108,7 @@ const ChatFilter = ({ - {hmsRoles?.map(knownRole => { + {roles?.map(knownRole => { return ( { @@ -154,13 +150,7 @@ const ChatFilter = ({ ); }; -export const ChatWindow = ({ - localPeer, - roles, -}: { - localPeer?: HMSLocalPeer; - roles?: HMSRole[]; -}) => { +export const ChatWindow = ({localPeer}: {localPeer?: HMSLocalPeer}) => { // hooks const {hmsInstance} = useSelector((state: RootState) => state.user); const {messages} = useSelector((state: RootState) => state.messages); @@ -257,7 +247,6 @@ export const ChatWindow = ({ setFilter={setFilter} setType={setType} setReceiverObject={setReceiverObject} - roles={roles} /> diff --git a/example/src/redux/actions/index.ts b/example/src/redux/actions/index.ts index 136c93c7a..f319a85ba 100644 --- a/example/src/redux/actions/index.ts +++ b/example/src/redux/actions/index.ts @@ -1,4 +1,4 @@ -import type {HMSMessage, HMSSDK} from '@100mslive/react-native-hms'; +import type {HMSMessage, HMSRole, HMSSDK} from '@100mslive/react-native-hms'; import type {PeerTrackNode} from '../../utils/types'; import actionTypes from '../actionTypes'; @@ -27,6 +27,7 @@ export const saveUserData = (data: { roomCode?: String; hmsInstance?: HMSSDK; isHLSFlow?: boolean; + roles?: HMSRole[]; }) => ({ type: actionTypes.SAVE_USER_DATA.REQUEST, payload: data, diff --git a/example/src/redux/reducers/userState.ts b/example/src/redux/reducers/userState.ts index b4f432ba2..e3e9fe2ef 100644 --- a/example/src/redux/reducers/userState.ts +++ b/example/src/redux/reducers/userState.ts @@ -1,4 +1,4 @@ -import type {HMSSDK} from '@100mslive/react-native-hms'; +import type {HMSRole, HMSSDK} from '@100mslive/react-native-hms'; import {getMeetingCode, getMeetingUrl} from '../../utils/functions'; import ActionTypes from '../actionTypes'; @@ -14,6 +14,7 @@ type IntialStateType = { roomCode: string; mirrorLocalVideo: boolean; isHLSFlow: boolean; + roles: HMSRole[]; }; const INITIAL_STATE: IntialStateType = { @@ -22,6 +23,7 @@ const INITIAL_STATE: IntialStateType = { roomCode: getMeetingCode(), mirrorLocalVideo: false, isHLSFlow: true, + roles: [], }; const userReducer = (state = INITIAL_STATE, action: ActionType) => { diff --git a/example/src/screens/Meeting/index.tsx b/example/src/screens/Meeting/index.tsx index 9891e05b1..a421cb843 100644 --- a/example/src/screens/Meeting/index.tsx +++ b/example/src/screens/Meeting/index.tsx @@ -31,7 +31,6 @@ import { HMSTrackSource, HMSTrackType, HMSAudioFilePlayerNode, - HMSRole, } from '@100mslive/react-native-hms'; import Feather from 'react-native-vector-icons/Feather'; import Entypo from 'react-native-vector-icons/Entypo'; @@ -133,7 +132,6 @@ const Meeting = () => { [], ); const [hmsRoom, setHmsRoom] = useState(); - const [hmsRoles, setHmsRoles] = useState(); const [speakers, setSpeakers] = useState>([]); const [notification, setNotification] = useState(false); const [muteAllTracksAudio, setMuteAllTracksAudio] = useState(false); @@ -421,10 +419,6 @@ const Meeting = () => { setHmsRoom(await hmsInstance?.getRoom()); }; - const updateRoles = async () => { - setHmsRoles(await hmsInstance?.getRoles()); - }; - const reportIssue = async () => { try { const fileUrl = RNFetchBlob.fs.dirs.DocumentDir + '/report-logs.json'; @@ -851,7 +845,6 @@ const Meeting = () => { updateHmsInstance(hmsInstance); updateLocalPeer(); updateRoom(); - updateRoles(); const callback = () => setOrientation(isPortrait()); callback(); @@ -1238,7 +1231,7 @@ const Meeting = () => { setModalVisible(ModalTypes.DEFAULT)}> - + { setModalVisible={setModalVisible} pinnedPeerTrackIds={pinnedPeerTrackIds} setPinnedPeerTrackIds={setPinnedPeerTrackIds} - roles={hmsRoles} /> { setModalVisible={() => setModalVisible(ModalTypes.DEFAULT)}> setModalVisible(ModalTypes.DEFAULT)} /> @@ -1399,7 +1390,6 @@ const Meeting = () => { setModalVisible={() => setModalVisible(ModalTypes.DEFAULT)}> setModalVisible(ModalTypes.DEFAULT)} /> diff --git a/example/src/screens/MeetingScreen/GridView.tsx b/example/src/screens/MeetingScreen/GridView.tsx index ccf99b1d2..8afa037ec 100644 --- a/example/src/screens/MeetingScreen/GridView.tsx +++ b/example/src/screens/MeetingScreen/GridView.tsx @@ -1,9 +1,10 @@ import React, {useRef} from 'react'; -import {View, FlatList, Dimensions} from 'react-native'; +import {View, FlatList, Dimensions, Text} from 'react-native'; import {HMSTrackSource} from '@100mslive/react-native-hms'; import {useSafeAreaInsets} from 'react-native-safe-area-context'; +import Feather from 'react-native-vector-icons/Feather'; -import {getDisplayTrackDimensions} from '../../utils/functions'; +import {getDisplayTrackDimensions, parseMetadata} from '../../utils/functions'; import {styles} from './styles'; import {DisplayTrack} from './DisplayTrack'; import type {PeerTrackNode} from '../../utils/types'; @@ -65,6 +66,18 @@ const GridView = ({pairedPeers, orientation}: GridViewProps) => { videoTrack={view?.track} videoStyles={styles.generalTile} /> + {view?.peer?.audioTrack?.isMute() && ( + + + + )} + {parseMetadata(view?.peer?.metadata)?.isBRBOn && ( + + + BRB + + + )} ); })} diff --git a/example/src/screens/MeetingScreen/Modals.tsx b/example/src/screens/MeetingScreen/Modals.tsx new file mode 100644 index 000000000..d21b82602 --- /dev/null +++ b/example/src/screens/MeetingScreen/Modals.tsx @@ -0,0 +1,2038 @@ +import React, {useEffect, useState} from 'react'; +import { + View, + TouchableOpacity, + Text, + ScrollView, + TextInput, +} from 'react-native'; +import {useDispatch, useSelector} from 'react-redux'; +import { + HMSTrack, + HMSRole, + HMSSDK, + HMSTrackType, + HMSTrackSource, + HMSRTCStatsReport, + HMSUpdateListenerActions, + HMSLocalAudioStats, + HMSLocalAudioTrack, + HMSPeer, + HMSLocalVideoStats, + HMSLocalVideoTrack, + HMSRemoteAudioStats, + HMSRemoteAudioTrack, + HMSRemoteVideoStats, + HMSRemoteVideoTrack, + HMSAudioDevice, + HMSAudioMode, + HMSAudioMixingMode, + HMSHLSMeetingURLVariant, + HMSHLSRecordingConfig, + HMSHLSConfig, + HMSRTMPConfig, + HMSLocalPeer, + HMSRemotePeer, +} from '@100mslive/react-native-hms'; +import Feather from 'react-native-vector-icons/Feather'; +import Entypo from 'react-native-vector-icons/Entypo'; +import Ionicons from 'react-native-vector-icons/Ionicons'; +import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'; +import MaterialIcons from 'react-native-vector-icons/MaterialIcons'; +import {Slider} from '@miblanchard/react-native-slider'; + +import {styles} from './styles'; +import { + CustomButton, + CustomInput, + Menu, + MenuItem, + MenuDivider, + CustomPicker, +} from '../../components'; +import {saveUserData} from '../../redux/actions'; +import {parseMetadata, getInitials} from '../../utils/functions'; +import { + LayoutParams, + ModalTypes, + PeerTrackNode, + SortingType, +} from '../../utils/types'; +import {COLORS} from '../../utils/theme'; +import {RootState} from '../../redux'; + +export const ParticipantsModal = ({ + instance, + localPeer, + peerTrackNodes, + changeName, + changeRole, + setVolume, +}: { + instance?: HMSSDK; + localPeer?: HMSLocalPeer; + peerTrackNodes?: PeerTrackNode[]; + changeName: (peer: HMSPeer) => void; + changeRole: (peer: HMSPeer) => void; + setVolume: (peer: HMSPeer) => void; +}) => { + // useEffect hook + const [participantsSearchInput, setParticipantsSearchInput] = useState(''); + const [visible, setVisible] = useState(-1); + const [filteredPeerTrackNodes, setFilteredPeerTrackNodes] = + useState(); + const [filter, setFilter] = useState('everyone'); + // constants + const peerTrackNodePermissions = localPeer?.role?.permissions; + + // functions + const hideMenu = () => setVisible(-1); + const showMenu = (index: number) => setVisible(index); + const onChangeNamePress = (peer: HMSPeer) => { + hideMenu(); + setTimeout(() => { + changeName(peer); + }, 500); + }; + const onChangeRolePress = (peer: HMSPeer) => { + hideMenu(); + setTimeout(() => { + changeRole(peer); + }, 500); + }; + const onSetVolumePress = (peer: HMSPeer) => { + hideMenu(); + setTimeout(() => { + setVolume(peer); + }, 500); + }; + // const toggleLocalAudioMute = async () => { + // hideMenu(); + // let remotePeer = peerTrackNode.peer as HMSRemotePeer; + // instance?.remotePeers?.map(item => { + // if (item.peerID === remotePeer.peerID) { + // remotePeer = item; + // } + // }); + // const playbackAllowed = await remotePeer + // ?.remoteAudioTrack() + // ?.isPlaybackAllowed(); + // remotePeer?.remoteAudioTrack()?.setPlaybackAllowed(!playbackAllowed); + // }; + // const toggleLocalVideoMute = async () => { + // hideMenu(); + // let remotePeer = peerTrackNode.peer as HMSRemotePeer; + // instance?.remotePeers?.map(item => { + // if (item.peerID === remotePeer.peerID) { + // remotePeer = item; + // } + // }); + // const playbackAllowed = await remotePeer + // ?.remoteVideoTrack() + // ?.isPlaybackAllowed(); + // remotePeer?.remoteVideoTrack()?.setPlaybackAllowed(!playbackAllowed); + // }; + const removePeer = (peer: HMSPeer) => { + hideMenu(); + instance + ?.removePeer(peer, 'removed from room') + .then(d => console.log('Remove Peer Success: ', d)) + .catch(e => console.log('Remove Peer Error: ', e)); + }; + const toggleAudio = (peer: HMSPeer) => { + hideMenu(); + instance + ?.changeTrackState( + peer?.audioTrack as HMSTrack, + !peer?.audioTrack?.isMute(), + ) + .then(d => console.log('Remove Peer Success: ', d)) + .catch(e => console.log('Remove Peer Error: ', e)); + }; + const toggleVideo = (peer: HMSPeer) => { + hideMenu(); + instance + ?.changeTrackState( + peer?.videoTrack as HMSTrack, + !peer?.videoTrack?.isMute(), + ) + .then(d => console.log('Remove Peer Success: ', d)) + .catch(e => console.log('Remove Peer Error: ', e)); + }; + + useEffect(() => { + const newFilteredPeerTrackNodes = peerTrackNodes?.filter(peerTrackNode => { + if ( + participantsSearchInput.length < 1 || + peerTrackNode.peer.name.includes(participantsSearchInput) || + peerTrackNode.peer.role?.name?.includes(participantsSearchInput) + ) { + return true; + } + return false; + }); + if (filter === 'everyone') { + setFilteredPeerTrackNodes(newFilteredPeerTrackNodes); + } else if (filter === 'raised hand') { + const updatedPeerTrackNodes = newFilteredPeerTrackNodes?.filter( + peerTrackNode => { + const parsedMetaData = parseMetadata(peerTrackNode.peer?.metadata); + return parsedMetaData.isHandRaised === true; + }, + ); + setFilteredPeerTrackNodes(updatedPeerTrackNodes); + } else { + const updatedPeerTrackNodes = newFilteredPeerTrackNodes?.filter( + peerTrackNode => { + return peerTrackNode.peer?.role?.name === filter; + }, + ); + setFilteredPeerTrackNodes(updatedPeerTrackNodes); + } + }, [participantsSearchInput, filter, peerTrackNodes]); + + return ( + + + Participants + + + + + + + + {filteredPeerTrackNodes?.map((peerTrackNode, index) => { + return ( + + + + {getInitials(peerTrackNode.peer.name)} + + + + + {peerTrackNode.track?.source === HMSTrackSource.REGULAR || + peerTrackNode.track?.source === undefined + ? peerTrackNode.peer.name + : peerTrackNode.peer.name + + "'s " + + peerTrackNode.track?.source} + {peerTrackNode.peer.isLocal && ' (You)'} + + + {peerTrackNode.peer.role?.name} + + + showMenu(index)} + viewStyle={styles.participantSettings} + LeftIcon={ + + } + /> + } + onRequestClose={hideMenu} + style={styles.participantsMenuContainer}> + {peerTrackNode.peer?.isLocal === false && + peerTrackNodePermissions?.removeOthers && ( + removePeer(peerTrackNode.peer)}> + + + + Remove Peer + + + + )} + {peerTrackNode.peer.isLocal && ( + onChangeNamePress(peerTrackNode.peer)}> + + + + Change Name + + + + )} + {peerTrackNodePermissions?.changeRole && ( + onChangeRolePress(peerTrackNode.peer)}> + + + + Change Role + + + + )} + {peerTrackNode.peer.isLocal === false && ( + toggleAudio(peerTrackNode.peer)}> + + + + {peerTrackNode.peer?.audioTrack?.isMute() === false + ? 'Mute audio' + : 'Unmute audio'} + + + + )} + {peerTrackNode.peer.isLocal === false && ( + toggleVideo(peerTrackNode.peer)}> + + + + {peerTrackNode.track?.isMute() === false + ? 'Mute video' + : 'Unmute video'} + + + + )} + {/* {peerTrackNode.peer.isLocal === false && + type === TrackType.REMOTE && + peerTrackNode?.track?.source === HMSTrackSource.REGULAR && ( + toggleLocalAudioMute(peerTrackNode)}> + + + + Local mute audio + + + + )} + {peerTrackNode.peer.isLocal === false && + type === TrackType.REMOTE && + peerTrackNode?.track?.source === HMSTrackSource.REGULAR && ( + toggleLocalVideoMute(peerTrackNode)}> + + + + Local mute video + + + + )} */} + {peerTrackNode.peer.isLocal === false && ( + onSetVolumePress(peerTrackNode.peer)}> + + + + Set Volume + + + + )} + + + ); + })} + + + ); +}; + +const ParticipantFilter = ({ + filter, + setFilter, +}: { + filter?: string; + setFilter: React.Dispatch>; +}) => { + const {roles} = useSelector((state: RootState) => state.user); + + const [visible, setVisible] = useState(false); + + const hideMenu = () => setVisible(false); + const showMenu = () => setVisible(true); + + return ( + + + {filter} + + + + } + onRequestClose={hideMenu} + style={styles.participantsMenuContainer}> + { + hideMenu(); + setFilter('everyone'); + }}> + + + Everyone + + + { + hideMenu(); + setFilter('raised hand'); + }}> + + + Raised Hand + + + + {roles?.map(knownRole => { + return ( + { + hideMenu(); + setFilter(knownRole?.name!); + }} + key={knownRole.name}> + + + {knownRole?.name} + + + + ); + })} + + ); +}; + +export const ChangeRoleModal = ({ + instance, + peer, + cancelModal, +}: { + instance?: HMSSDK; + peer?: HMSPeer; + cancelModal: Function; +}) => { + const {roles} = useSelector((state: RootState) => state.user); + + const [newRole, setNewRole] = useState(peer?.role!); + const [request, setRequest] = useState(false); + const [visible, setVisible] = useState(false); + + const hideMenu = () => setVisible(false); + const showMenu = () => setVisible(true); + const changeRole = async () => { + await instance?.changeRole(peer!, newRole, !request); + cancelModal(); + }; + + return ( + + Change Role + + Change the role of '{peer?.name}' to + + + + {newRole?.name} + + + + } + onRequestClose={hideMenu} + style={styles.participantsMenuContainer}> + {roles?.map(knownRole => { + return ( + { + hideMenu(); + setNewRole(knownRole); + }} + key={knownRole.name}> + + + {knownRole?.name} + + + + ); + })} + + {!peer?.isLocal && ( + { + setRequest(!request); + }}> + + {request && ( + + )} + + + Request permission from the user + + + )} + + + + + + ); +}; + +export const ChangeVolumeModal = ({ + instance, + peer, + cancelModal, +}: { + instance?: HMSSDK; + peer?: HMSPeer; + cancelModal: Function; +}) => { + const [volume, setVolume] = useState(0); + + const changeVolume = () => { + instance?.setVolume(peer?.audioTrack as HMSTrack, volume); + cancelModal(); + }; + + return ( + + Set Volume + + Volume: {volume} + setVolume(value[0])} + /> + + + + + + + ); +}; + +export const ChangeNameModal = ({ + instance, + peer, + cancelModal, +}: { + instance?: HMSSDK; + peer?: HMSPeer; + cancelModal: Function; +}) => { + const dispatch = useDispatch(); + + const [name, setName] = useState(peer?.name!); + + const changeName = () => { + if (name.length > 0) { + instance + ?.changeName(name) + .then(d => { + dispatch( + saveUserData({ + userName: name, + }), + ); + console.log('Change Name Success: ', d); + }) + .catch(e => console.log('Change Name Error: ', e)); + } + cancelModal(); + }; + + return ( + + Change Name + + + + + + + + + ); +}; + +export const RtcStatsModal = ({ + instance, + localPeer, +}: { + instance?: HMSSDK; + localPeer?: HMSLocalPeer; +}) => { + const rtcStatsRef = React.useRef({}); + const [rtcStats, setRtcStats] = useState(Math.random()); + const [statsVisible, setStatsVisible] = useState(false); + const [visible, setVisible] = useState(false); + const [remotePeers, setRemotePeers] = useState(); + const [currentTrack, setCurrentTrack] = useState<{ + name: string; + track?: HMSTrack; + }>({ + name: localPeer?.name + "'s audio", + track: localPeer?.audioTrack, + }); + const [trackList, setTrackList] = useState< + { + name: string; + track?: HMSTrack; + }[] + >(); + + const hideMenu = () => setVisible(false); + const showMenu = () => setVisible(true); + + const getStatsList = () => { + const list: { + name: string; + track?: HMSTrack; + }[] = []; + if (localPeer?.audioTrack?.trackId) { + list.push({ + name: localPeer?.name + "'s audio", + track: localPeer?.audioTrack, + }); + } + if (localPeer?.videoTrack?.trackId) { + list.push({ + name: localPeer?.name + "'s video", + track: localPeer?.videoTrack, + }); + } + remotePeers?.map(remotePeer => { + if (remotePeer?.audioTrack?.trackId) { + list.push({ + name: remotePeer?.name + "'s audio", + track: remotePeer?.audioTrack, + }); + } + if (remotePeer?.videoTrack?.trackId) { + list.push({ + name: remotePeer?.name + "'s video", + track: remotePeer?.videoTrack, + }); + } + }); + setTrackList(list); + }; + + const enableRTCStats = () => { + instance?.enableRTCStats(); + setStatsVisible(true); + }; + + const disableRTCStats = () => { + instance?.disableRTCStats(); + setStatsVisible(false); + }; + + const onChangeLocalAudioStats = (data: { + localAudioStats: HMSLocalAudioStats; + track: HMSLocalAudioTrack; + peer: HMSPeer; + }) => { + const trackRtcStats = rtcStatsRef?.current; + trackRtcStats[data.track.trackId] = data.localAudioStats; + setRtcStats(Math.random()); + rtcStatsRef.current = trackRtcStats; + }; + + const onChangeLocalVideoStats = (data: { + localVideoStats: HMSLocalVideoStats; + track: HMSLocalVideoTrack; + peer: HMSPeer; + }) => { + const trackRtcStats = rtcStatsRef?.current; + trackRtcStats[data.track.trackId] = data.localVideoStats; + setRtcStats(Math.random()); + rtcStatsRef.current = trackRtcStats; + }; + + const onChangeRtcStats = (data: {rtcStats: HMSRTCStatsReport}) => { + console.log(data.rtcStats); + }; + + const onChangeRemoteAudioStats = (data: { + remoteAudioStats: HMSRemoteAudioStats; + track: HMSRemoteAudioTrack; + peer: HMSPeer; + }) => { + const trackRtcStats = rtcStatsRef?.current; + trackRtcStats[data.track.trackId] = data.remoteAudioStats; + setRtcStats(Math.random()); + rtcStatsRef.current = trackRtcStats; + }; + + const onChangeRemoteVideoStats = (data: { + remoteVideoStats: HMSRemoteVideoStats; + track: HMSRemoteVideoTrack; + peer: HMSPeer; + }) => { + const trackRtcStats = rtcStatsRef?.current; + trackRtcStats[data.track.trackId] = data.remoteVideoStats; + setRtcStats(Math.random()); + rtcStatsRef.current = trackRtcStats; + }; + + const updateRemotePeers = async () => { + setRemotePeers(await instance?.getRemotePeers()); + }; + + useEffect(() => { + getStatsList(); + updateRemotePeers(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [remotePeers]); + + useEffect(() => { + instance?.addEventListener( + HMSUpdateListenerActions.ON_LOCAL_AUDIO_STATS, + onChangeLocalAudioStats, + ); + instance?.addEventListener( + HMSUpdateListenerActions.ON_LOCAL_VIDEO_STATS, + onChangeLocalVideoStats, + ); + instance?.addEventListener( + HMSUpdateListenerActions.ON_RTC_STATS, + onChangeRtcStats, + ); + instance?.addEventListener( + HMSUpdateListenerActions.ON_REMOTE_AUDIO_STATS, + onChangeRemoteAudioStats, + ); + instance?.addEventListener( + HMSUpdateListenerActions.ON_REMOTE_VIDEO_STATS, + onChangeRemoteVideoStats, + ); + return () => { + instance?.removeEventListener( + HMSUpdateListenerActions.ON_LOCAL_AUDIO_STATS, + ); + instance?.removeEventListener( + HMSUpdateListenerActions.ON_LOCAL_VIDEO_STATS, + ); + instance?.removeEventListener(HMSUpdateListenerActions.ON_RTC_STATS); + instance?.removeEventListener( + HMSUpdateListenerActions.ON_REMOTE_AUDIO_STATS, + ); + instance?.removeEventListener( + HMSUpdateListenerActions.ON_REMOTE_VIDEO_STATS, + ); + disableRTCStats(); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + return ( + + + Stats for Nerds + + + Enable Stats for Nerds + + {statsVisible && ( + + )} + + + + + {currentTrack?.name ?? 'Choose'} + + + + } + onRequestClose={hideMenu} + style={styles.participantsMenuContainer}> + {trackList?.map(trackObj => { + return ( + { + hideMenu(); + setCurrentTrack(trackObj); + }} + key={trackObj?.track?.trackId}> + + + {trackObj?.name} + + + + ); + })} + + + {rtcStats && + rtcStatsRef?.current && + currentTrack?.track?.trackId && + rtcStatsRef?.current[currentTrack?.track?.trackId] && + Object.keys(rtcStatsRef?.current[currentTrack?.track?.trackId]).map( + item => { + const value = + currentTrack?.track && + rtcStatsRef?.current[currentTrack?.track?.trackId][item]; + return ( + + {item} + + {item === 'resolution' + ? 'Height: ' + + (value?.height ?? 0) + + ' Width: ' + + (value?.width ?? 0) + : value} + + + ); + }, + )} + + + ); +}; + +export const LeaveRoomModal = ({ + onSuccess, + cancelModal, +}: { + onSuccess: Function; + cancelModal: Function; +}) => { + const onLeave = () => { + cancelModal(); + onSuccess(); + }; + return ( + + + + Leave Studio + + + + Others will continue after you leave. You can join the studio again. + + + + + + + + ); +}; + +export const EndRoomModal = ({ + onSuccess, + cancelModal, +}: { + onSuccess: Function; + cancelModal: Function; +}) => { + const onEnd = () => { + cancelModal(); + onSuccess(); + }; + return ( + + + + + End Session + + + + + The session will end for everyone and all the activities will stop. + You can’t undo this action. + + + + + + + + ); +}; + +export const ChangeAudioOutputModal = ({ + instance, + cancelModal, +}: { + instance?: HMSSDK; + cancelModal: Function; +}) => { + const [currentOutputDevice, setCurrentOutputDevice] = + useState(HMSAudioDevice.SPEAKER_PHONE); + const [audioOutputDevicesList, setAudioOutputDevicesList] = useState< + HMSAudioDevice[] + >([]); + + const switchAudioOutput = () => { + instance?.switchAudioOutput(currentOutputDevice); + cancelModal(); + }; + + useEffect(() => { + const getList = async () => { + setAudioOutputDevicesList(await instance?.getAudioDevicesList()); + setCurrentOutputDevice(await instance?.getAudioOutputRouteType()); + }; + getList(); + }, [instance]); + + return ( + + Switch Audio Output + {audioOutputDevicesList.map(device => { + return ( + { + setCurrentOutputDevice(device); + }}> + + {currentOutputDevice === device && ( + + )} + + {device} + + ); + })} + + + + + + + ); +}; + +export const ChangeAudioModeModal = ({ + instance, + cancelModal, + audioMode, + setAudioMode, +}: { + instance?: HMSSDK; + audioMode: HMSAudioMode; + setAudioMode: React.Dispatch>; + cancelModal: Function; +}) => { + const [currentAudioMode, setCurrentAudioMode] = + useState(audioMode); + + const AudioModeList = [ + 'MODE_NORMAL', + 'MODE_RINGTONE', + 'MODE_IN_CALL', + 'MODE_IN_COMMUNICATION', + 'MODE_CALL_SCREENING', + ]; + + const switchAudioMode = () => { + instance?.setAudioMode(currentAudioMode); + setAudioMode(currentAudioMode); + cancelModal(); + }; + + return ( + + Switch Audio Output + {AudioModeList.map(mode => { + return ( + { + setCurrentAudioMode(AudioModeList.indexOf(mode)); + }}> + + {currentAudioMode === AudioModeList.indexOf(mode) && ( + + )} + + {mode} + + ); + })} + + + + + + + ); +}; + +export const ChangeAudioMixingModeModal = ({ + instance, + newAudioMixingMode, + cancelModal, + setNewAudioMixingMode, +}: { + instance?: HMSSDK; + newAudioMixingMode: HMSAudioMixingMode; + cancelModal: Function; + setNewAudioMixingMode: React.Dispatch< + React.SetStateAction + >; +}) => { + const changeAudioMixingMode = async () => { + await instance?.setAudioMixingMode(newAudioMixingMode); + cancelModal(); + }; + + return ( + + + Change Audio Mixing Mode + + + TALK_ONLY : only data captured by mic will be streamed in the room, + TALK_AND_MUSIC : data captured by mic as well as playback audio being + captured from device will be streamed in the room, MUSIC_ONLY : only the + playback audio being captured from device will be streamed in the room + + {Object.keys(HMSAudioMixingMode).map(audioMixingMode => { + return ( + { + setNewAudioMixingMode(audioMixingMode as HMSAudioMixingMode); + }}> + + {newAudioMixingMode === audioMixingMode && ( + + )} + + + {audioMixingMode} + + + ); + })} + + + + + + ); +}; + +export const ChangeSortingModal = ({ + data, + selectedItem, + onItemSelected, + cancelModal, +}: { + data: SortingType[]; + selectedItem: SortingType | undefined; + onItemSelected: React.Dispatch>; + cancelModal: Function; +}) => { + const [sortingType, setSortingType] = useState( + selectedItem || SortingType.DEFAULT, + ); + + const changeSorting = () => { + onItemSelected(sortingType); + cancelModal(); + }; + + return ( + + Sorting Style + + + + + + + ); +}; + +export const ChangeLayoutModal = ({ + data, + selectedItem, + onItemSelected, + cancelModal, +}: { + data: LayoutParams[]; + selectedItem: LayoutParams; + onItemSelected: React.Dispatch>; + cancelModal: Function; +}) => { + const [layout, setLayout] = useState(selectedItem); + + const changeLayout = () => { + onItemSelected(layout); + cancelModal(); + }; + + return ( + + Layout Style + + + + + + + ); +}; + +export const ChangeTrackStateForRoleModal = ({ + instance, + localPeer, + cancelModal, +}: { + instance?: HMSSDK; + localPeer?: HMSLocalPeer; + cancelModal: Function; +}) => { + const {roles} = useSelector((state: RootState) => state.user); + + const [role, setRole] = useState(localPeer?.role!); + const [visible, setVisible] = useState(false); + const [trackType, setTrackType] = useState(HMSTrackType.VIDEO); + const [trackState, setTrackState] = useState(false); + + const hideMenu = () => setVisible(false); + const showMenu = () => setVisible(true); + const changeTrackState = async () => { + const source = HMSTrackSource.REGULAR; + await instance + ?.changeTrackStateForRoles(trackState, trackType, source, [role]) + .then(d => console.log('Change Track State For Role Success: ', d)) + .catch(e => console.log('Change Track State For Role Error: ', e)); + cancelModal(); + }; + + return ( + + + Change Track State For Role + + + + {role?.name} + + + + } + onRequestClose={hideMenu} + style={styles.participantsMenuContainer}> + {roles?.map(knownRole => { + return ( + { + hideMenu(); + setRole(knownRole); + }} + key={knownRole.name}> + + + {knownRole?.name} + + + + ); + })} + + + + {'Track State: '} + + {localPeer?.role?.permissions?.mute && ( + setTrackState(true)}> + + {trackState && ( + + )} + + MUTE + + )} + {localPeer?.role?.permissions?.unmute && ( + setTrackState(false)}> + + {!trackState && ( + + )} + + UNMUTE + + )} + + + + {'Track Type: '} + + setTrackType(HMSTrackType.AUDIO)}> + + {trackType === HMSTrackType.AUDIO && ( + + )} + + + {HMSTrackType.AUDIO} + + + setTrackType(HMSTrackType.VIDEO)}> + + {trackType === HMSTrackType.VIDEO && ( + + )} + + + {HMSTrackType.VIDEO} + + + + + + + + + ); +}; + +export const ChangeTrackStateModal = ({ + localPeer, + roleChangeRequest, + cancelModal, +}: { + localPeer?: HMSLocalPeer; + roleChangeRequest: { + requestedBy?: string; + suggestedRole?: string; + }; + cancelModal: Function; +}) => { + const changeLayout = () => { + if (roleChangeRequest?.suggestedRole?.toLocaleLowerCase() === 'video') { + localPeer?.localVideoTrack()?.setMute(false); + } else { + localPeer?.localAudioTrack()?.setMute(false); + } + cancelModal(); + }; + + return ( + + + Change Track State Request + + + {`${roleChangeRequest?.requestedBy?.toLocaleUpperCase()} requested to unmute your regular ${roleChangeRequest?.suggestedRole?.toLocaleUpperCase()}`} + + + + + + + ); +}; + +export const HlsStreamingModal = ({ + instance, + roomID, + cancelModal, +}: { + instance?: HMSSDK; + roomID: string; + cancelModal: Function; +}) => { + const [hlsStreamingDetails, setHLSStreamingDetails] = + useState({ + meetingUrl: roomID ? roomID + '?skip_preview=true' : '', + metadata: '', + }); + const [startHlsRetry, setStartHlsRetry] = useState(true); + const [hlsRecordingDetails, setHLSRecordingDetails] = + useState({ + singleFilePerLayer: false, + videoOnDemand: false, + }); + + const changeLayout = () => { + instance + ?.startHLSStreaming() + .then(d => console.log('Start HLS Streaming Success: ', d)) + .catch(err => { + if (startHlsRetry) { + setStartHlsRetry(false); + const hmsHLSConfig = new HMSHLSConfig({ + hlsRecordingConfig: hlsRecordingDetails, + meetingURLVariants: [hlsStreamingDetails], + }); + instance + ?.startHLSStreaming(hmsHLSConfig) + .then(d => console.log('Start HLS Streaming Success: ', d)) + .catch(e => console.log('Start HLS Streaming Error: ', e)); + } else { + console.log('Start HLS Streaming Error: ', err); + } + }); + cancelModal(); + }; + + return ( + + HLS Streaming Details + { + setHLSStreamingDetails({...hlsStreamingDetails, meetingUrl: value}); + }} + placeholderTextColor="#454545" + placeholder="Enter meeting url" + style={styles.input} + defaultValue={hlsStreamingDetails.meetingUrl} + returnKeyType="done" + multiline + blurOnSubmit + /> + { + setHLSRecordingDetails({ + ...hlsRecordingDetails, + singleFilePerLayer: !hlsRecordingDetails.singleFilePerLayer, + }); + }}> + + {hlsRecordingDetails.singleFilePerLayer && ( + + )} + + SingleFilePerLayer + + { + setHLSRecordingDetails({ + ...hlsRecordingDetails, + videoOnDemand: !hlsRecordingDetails.videoOnDemand, + }); + }}> + + {hlsRecordingDetails.videoOnDemand && ( + + )} + + VideoOnDemand + + + + + + + ); +}; + +export const RecordingModal = ({ + instance, + roomID, + recordingModal, + setModalVisible, + setRtmpAndRecording, +}: { + instance?: HMSSDK; + roomID: string; + recordingModal: boolean; + setModalVisible: React.Dispatch>; + setRtmpAndRecording: React.Dispatch>; +}) => { + const [resolutionDetails, setResolutionDetails] = useState(false); + const [recordingDetails, setRecordingDetails] = useState({ + record: false, + meetingURL: roomID ? roomID + '?token=beam_recording' : '', + }); + + const changeLayout = () => { + instance + ?.startRTMPOrRecording(recordingDetails) + .then(d => { + setRtmpAndRecording(true); + console.log('Start RTMP Or Recording Success: ', d); + }) + .catch(e => console.log('Start RTMP Or Recording Error: ', e)); + setModalVisible(ModalTypes.DEFAULT); + }; + + return recordingModal ? ( + + Recording Details + { + setRecordingDetails({...recordingDetails, meetingURL: value}); + }} + placeholderTextColor="#454545" + placeholder="Enter meeting url" + style={styles.input} + defaultValue={recordingDetails.meetingURL} + returnKeyType="done" + multiline + blurOnSubmit + /> + { + if (value === '') { + setRecordingDetails({...recordingDetails, rtmpURLs: undefined}); + } else { + setRecordingDetails({...recordingDetails, rtmpURLs: [value]}); + } + }} + placeholderTextColor="#454545" + placeholder="Enter rtmp url" + style={styles.input} + defaultValue={ + recordingDetails.rtmpURLs ? recordingDetails.rtmpURLs[0] : '' + } + returnKeyType="done" + multiline + blurOnSubmit + /> + { + setRecordingDetails({ + ...recordingDetails, + record: !recordingDetails.record, + }); + }}> + + {recordingDetails.record && ( + + )} + + Record + + { + setResolutionDetails(!resolutionDetails); + if (!resolutionDetails) { + setModalVisible(ModalTypes.RESOLUTION); + setRecordingDetails({ + ...recordingDetails, + resolution: { + height: 720, + width: 1280, + }, + }); + } else { + setRecordingDetails({ + ...recordingDetails, + resolution: undefined, + }); + } + }}> + + {resolutionDetails && ( + + )} + + Resolution + + + setModalVisible(ModalTypes.DEFAULT)} + viewStyle={styles.roleChangeModalCancelButton} + textStyle={styles.roleChangeModalButtonText} + /> + + + + ) : ( + + Resolution Details + + + Height : + + {recordingDetails.resolution?.height} + + + { + setRecordingDetails({ + ...recordingDetails, + resolution: { + height: parseInt(value), + width: recordingDetails.resolution?.width ?? 1280, + }, + }); + }} + /> + + Width : + + {recordingDetails.resolution?.width} + + + { + setRecordingDetails({ + ...recordingDetails, + resolution: { + width: parseInt(value), + height: recordingDetails.resolution?.height ?? 720, + }, + }); + }} + /> + + + setModalVisible(ModalTypes.RECORDING)} + viewStyle={styles.backButton} + textStyle={styles.roleChangeModalButtonText} + /> + + + ); +}; + +export const ChangeRoleAccepteModal = ({ + instance, + roleChangeRequest, + cancelModal, +}: { + instance?: HMSSDK; + roleChangeRequest: { + requestedBy?: string; + suggestedRole?: string; + }; + cancelModal: Function; +}) => { + const changeLayout = () => { + instance?.acceptRoleChange(); + cancelModal(); + }; + + return ( + + Role Change Details + + {`Role change requested by ${roleChangeRequest?.requestedBy?.toLocaleUpperCase()}. Changing role to ${roleChangeRequest?.suggestedRole?.toLocaleUpperCase()}`} + + + + + + + ); +}; + +export const EndHlsModal = ({ + onSuccess, + cancelModal, +}: { + onSuccess: Function; + cancelModal: Function; +}) => { + const onEnd = () => { + cancelModal(); + onSuccess(); + }; + return ( + + + + + End live stream for all? + + + + + Your stream will end and everone will go offline immediately in this + room. You can’t undo this action. + + + + + + + + ); +}; + +export const RealTime = () => { + const [hour, setHour] = useState(0); + const [minute, setMinute] = useState(0); + const [second, setSecond] = useState(0); + + useEffect(() => { + const updatePostInfo = setInterval(() => { + setSecond(sec => sec + 1); + }, 1000); + + return () => { + clearInterval(updatePostInfo); + }; + }, []); + + useEffect(() => { + if (second === 60) { + setSecond(0); + setMinute(min => min + 1); + } + return () => { + if (second === 60) { + setSecond(0); + setMinute(min => min + 1); + } + }; + }, [second]); + + useEffect(() => { + if (minute === 60) { + setMinute(0); + setHour(hr => hr + 1); + } + return () => { + if (minute === 60) { + setMinute(0); + setHour(hr => hr + 1); + } + }; + }, [minute]); + + return ( + + {hour > 0 && ( + + {hour < 10 ? '0' + hour : hour}: + + )} + + {minute < 10 ? '0' + minute : minute}: + + + {second < 10 ? '0' + second : second} + + + ); +}; + +export const AudioShareSetVolumeModal = ({ + success, + cancel, +}: { + success: Function; + cancel: Function; +}) => { + const [volume, setVolume] = useState(0); + + const changeVolume = () => { + success(volume); + cancel(); + }; + + return ( + + Set Volume + + Volume: {volume} + setVolume(value[0])} + /> + + + + + + + ); +}; diff --git a/example/src/screens/MeetingScreen/index.tsx b/example/src/screens/MeetingScreen/index.tsx index 333ea2638..ee2336e3c 100644 --- a/example/src/screens/MeetingScreen/index.tsx +++ b/example/src/screens/MeetingScreen/index.tsx @@ -1,8 +1,13 @@ import { + HMSAudioFilePlayerNode, + HMSAudioMixingMode, + HMSAudioMode, + HMSChangeTrackStateRequest, HMSException, HMSLocalPeer, HMSPeer, HMSPeerUpdate, + HMSRoleChangeRequest, HMSRoom, HMSRoomUpdate, HMSSDK, @@ -19,9 +24,11 @@ import {useDispatch, useSelector} from 'react-redux'; import Toast from 'react-native-simple-toast'; import {useNavigation} from '@react-navigation/native'; import type {NativeStackNavigationProp} from '@react-navigation/native-stack'; +import DocumentPicker from 'react-native-document-picker'; import {styles} from './styles'; import { + AlertModal, ChatWindow, CustomButton, DefaultModal, @@ -36,7 +43,22 @@ import { updatePeersTrackNodesOnPeerListener, updatePeersTrackNodesOnTrackListener, } from '../../utils/functions'; -import {EndRoomModal, LeaveRoomModal, RealTime} from '../Meeting/Modals'; +import { + ChangeAudioMixingModeModal, + ChangeAudioModeModal, + ChangeAudioOutputModal, + ChangeNameModal, + ChangeRoleAccepteModal, + ChangeRoleModal, + ChangeTrackStateForRoleModal, + ChangeTrackStateModal, + ChangeVolumeModal, + EndRoomModal, + LeaveRoomModal, + ParticipantsModal, + RealTime, + RecordingModal, +} from './Modals'; import type {RootState} from '../../redux'; import type {AppStackParamList} from '../../navigator'; import { @@ -75,7 +97,11 @@ const Meeting = () => { setRoom={setRoom} setLocalPeer={setLocalPeer} /> -
+
); }; @@ -98,6 +124,11 @@ const DisplayView = (data: { const [peerTrackNodes, setPeerTrackNodes] = useState>(peerState); const [orientation, setOrientation] = useState(true); + const [updatePeer, setUpdatePeer] = useState(); + const [roleChangeRequest, setRoleChangeRequest] = useState<{ + requestedBy?: string; + suggestedRole?: string; + }>({}); // useRef hook const peerTrackNodesRef = useRef(peerTrackNodes); @@ -253,6 +284,33 @@ const DisplayView = (data: { } }; + const onChangeTrackStateRequestListener = ( + request: HMSChangeTrackStateRequest, + ) => { + if (!request?.mute) { + data?.setModalVisible(ModalTypes.CHANGE_TRACK); + setRoleChangeRequest({ + requestedBy: request?.requestedBy?.name, + suggestedRole: request?.trackType, + }); + } else { + Toast.showWithGravity( + `Track Muted: ${request?.requestedBy?.name} Muted Your ${request?.trackType}`, + Toast.LONG, + Toast.TOP, + ); + } + }; + + const onRoleChangeRequestListener = (request: HMSRoleChangeRequest) => { + console.log('data in onRoleChangeRequestListener: ', data); + data?.setModalVisible(ModalTypes.CHANGE_ROLE_ACCEPT); + setRoleChangeRequest({ + requestedBy: request?.requestedBy?.name, + suggestedRole: request?.suggestedRole?.name, + }); + }; + const onRemovedFromRoomListener = async () => { await destroy(); }; @@ -277,10 +335,6 @@ const DisplayView = (data: { onRemovedFromRoomListener, ); // hms?.addEventListener( - // HMSUpdateListenerActions.ON_MESSAGE, - // onMessageListener, - // ); - // hms?.addEventListener( // HMSUpdateListenerActions.ON_SPEAKER, // onSpeakerListener, // ); @@ -292,14 +346,14 @@ const DisplayView = (data: { // HMSUpdateListenerActions.RECONNECTED, // onReconnectedListener, // ); - // hms?.addEventListener( - // HMSUpdateListenerActions.ON_ROLE_CHANGE_REQUEST, - // onRoleChangeRequestListener, - // ); - // hms?.addEventListener( - // HMSUpdateListenerActions.ON_CHANGE_TRACK_STATE_REQUEST, - // onChangeTrackStateRequestListener, - // ); + hms?.addEventListener( + HMSUpdateListenerActions.ON_ROLE_CHANGE_REQUEST, + onRoleChangeRequestListener, + ); + hms?.addEventListener( + HMSUpdateListenerActions.ON_CHANGE_TRACK_STATE_REQUEST, + onChangeTrackStateRequestListener, + ); }; const destroy = async () => { @@ -333,6 +387,21 @@ const DisplayView = (data: { .catch(e => console.log('EndRoom Error: ', e)); }; + const onChangeNamePress = (peer: HMSPeer) => { + setUpdatePeer(peer); + data?.setModalVisible(ModalTypes.CHANGE_NAME); + }; + + const onChangeRolePress = (peer: HMSPeer) => { + setUpdatePeer(peer); + data?.setModalVisible(ModalTypes.CHANGE_ROLE); + }; + + const onSetVolumePress = (peer: HMSPeer) => { + setUpdatePeer(peer); + data?.setModalVisible(ModalTypes.VOLUME); + }; + const updateLocalPeer = () => { hmsInstance?.getLocalPeer().then(localPeer => { data?.setLocalPeer(localPeer); @@ -403,6 +472,78 @@ const DisplayView = (data: { setModalVisible={() => data?.setModalVisible(ModalTypes.DEFAULT)}> + data?.setModalVisible(ModalTypes.DEFAULT)}> + data?.setModalVisible(ModalTypes.DEFAULT)} + /> + + data?.setModalVisible(ModalTypes.DEFAULT)}> + data?.setModalVisible(ModalTypes.DEFAULT)} + /> + + data?.setModalVisible(ModalTypes.DEFAULT)}> + + + data?.setModalVisible(ModalTypes.DEFAULT)}> + data?.setModalVisible(ModalTypes.DEFAULT)} + /> + + data?.setModalVisible(ModalTypes.DEFAULT)}> + data?.setModalVisible(ModalTypes.DEFAULT)} + /> + + data?.setModalVisible(ModalTypes.DEFAULT)}> + data?.setModalVisible(ModalTypes.DEFAULT)} + /> + ); }; @@ -445,6 +586,10 @@ const Header = ({ localPeer?.localVideoTrack()?.switchCamera(); }; + const onParticipantsPress = () => { + setModalVisible(ModalTypes.PARTICIPANTS); + }; + return ( @@ -532,13 +677,13 @@ const Header = ({ {isScreenShared && ( )} - {/* console.log('onParticipantsPress')} + } - /> */} + /> { +const Footer = ({ + localPeer, + modalVisible, + setModalVisible, +}: { + localPeer?: HMSLocalPeer; + modalVisible: ModalTypes; + setModalVisible: React.Dispatch>; +}) => { // hooks - const {hmsInstance} = useSelector((state: RootState) => state.user); + const {hmsInstance, roomID} = useSelector((state: RootState) => state.user); + + // useState hook + const [muteAllTracksAudio, setMuteAllTracksAudio] = useState(false); + const [rtmpAndRecording, setRtmpAndRecording] = useState(false); + const [isAudioShared, setIsAudioShared] = useState(false); + const [audioDeviceChangeListener, setAudioDeviceChangeListener] = + useState(false); + const [newAudioMixingMode, setNewAudioMixingMode] = + useState(HMSAudioMixingMode.TALK_AND_MUSIC); + const [audioMode, setAudioMode] = useState( + HMSAudioMode.MODE_NORMAL, + ); // constants const iconSize = 20; const isScreenShared = localPeer?.auxiliaryTracks && localPeer?.auxiliaryTracks?.length > 0; + const parsedMetadata = parseMetadata(localPeer?.metadata); + const audioFilePlayerNode = new HMSAudioFilePlayerNode( + 'audio_file_player_node', + ); + + // listeners + const onAudioDeviceChangedListener = (data: any) => { + Toast.showWithGravity( + `Audio Device Output changed to ${data?.device}`, + Toast.LONG, + Toast.TOP, + ); + }; // functions const onStartScreenSharePress = () => { @@ -615,6 +793,259 @@ const Footer = ({localPeer}: {localPeer?: HMSLocalPeer}) => { .catch(e => console.log('Stop Screenshare Error: ', e)); }; + const onSettingsPress = () => { + setModalVisible(ModalTypes.SETTINGS); + }; + + const getSettingsButtons = (): Array<{ + text: string; + type?: string; + onPress?: Function; + }> => { + let buttons: Array<{text: string; type?: string; onPress?: Function}> = [ + { + text: 'Cancel', + type: 'cancel', + }, + { + text: parsedMetadata?.isBRBOn ? 'Remove BRB' : 'Set BRB', + onPress: async () => { + await hmsInstance + ?.changeMetadata( + JSON.stringify({ + ...parsedMetadata, + isBRBOn: !parsedMetadata?.isBRBOn, + isHandRaised: false, + }), + ) + .then(d => console.log('Change Metadata Success: ', d)) + .catch(e => console.log('Change Metadata Error: ', e)); + }, + }, + ]; + if (!localPeer?.role?.name?.includes('hls-')) { + buttons.push({ + text: muteAllTracksAudio + ? 'Local unmute all audio tracks' + : 'Local mute all audio tracks', + onPress: () => { + hmsInstance?.setPlaybackForAllAudio(!muteAllTracksAudio); + setMuteAllTracksAudio(!muteAllTracksAudio); + }, + }); + } + if (localPeer?.role?.permissions?.mute) { + buttons.push({ + text: 'Remote mute all audio tracks', + onPress: async () => { + await hmsInstance + ?.remoteMuteAllAudio() + .then(d => console.log('Remote Mute All Audio Success: ', d)) + .catch(e => console.log('Remote Mute All Audio Error: ', e)); + }, + }); + } + if (localPeer?.role?.permissions?.rtmpStreaming && rtmpAndRecording) { + buttons.push({ + text: 'Stop RTMP And Recording', + onPress: () => { + hmsInstance + ?.stopRtmpAndRecording() + .then(d => { + setRtmpAndRecording(false); + console.log('Stop RTMP And Recording Success: ', d); + }) + .catch(e => console.log('Stop RTMP And Recording Error: ', e)); + }, + }); + } + if (localPeer?.role?.permissions?.rtmpStreaming && !rtmpAndRecording) { + buttons.push({ + text: 'Start RTMP or Recording', + onPress: () => { + setModalVisible(ModalTypes.RECORDING); + }, + }); + } + if ( + localPeer?.role?.permissions?.mute || + localPeer?.role?.permissions?.unmute + ) { + buttons.push({ + text: 'Change Track State For Role', + onPress: () => { + setModalVisible(ModalTypes.CHANGE_TRACK_ROLE); + }, + }); + } + if (Platform.OS === 'android') { + if (audioDeviceChangeListener) { + buttons.push({ + text: 'Remove Audio Device Change Listener', + onPress: () => { + hmsInstance?.removeEventListener( + HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED, + ); + setAudioDeviceChangeListener(false); + }, + }); + } else { + buttons.push({ + text: 'Set Audio Device Change Listener', + onPress: () => { + hmsInstance?.setAudioDeviceChangeListener( + onAudioDeviceChangedListener, + ); + setAudioDeviceChangeListener(true); + }, + }); + } + buttons.push( + ...[ + { + text: 'Switch Audio Output', + onPress: () => { + setModalVisible(ModalTypes.SWITCH_AUDIO_OUTPUT); + }, + }, + { + text: 'Set Audio Mode', + onPress: () => { + setModalVisible(ModalTypes.CHANGE_AUDIO_MODE); + }, + }, + { + text: 'Set Audio Mixing Mode', + onPress: () => { + setModalVisible(ModalTypes.AUDIO_MIXING_MODE); + }, + }, + ], + ); + if (isAudioShared) { + buttons.push({ + text: 'Stop Audioshare', + onPress: () => { + hmsInstance + ?.stopAudioshare() + .then(d => { + setIsAudioShared(false); + console.log('Stop Audioshare Success: ', d); + }) + .catch(e => console.log('Stop Audioshare Error: ', e)); + }, + }); + } else { + buttons.push({ + text: 'Start Audioshare', + onPress: () => { + hmsInstance + ?.startAudioshare(newAudioMixingMode) + .then(d => { + setIsAudioShared(true); + console.log('Start Audioshare Success: ', d); + }) + .catch(e => console.log('Start Audioshare Error: ', e)); + }, + }); + } + } else { + buttons.push( + ...[ + { + text: 'Play Audio Share', + onPress: () => { + setTimeout(() => { + DocumentPicker.pickSingle() + .then(result => { + console.log('Document Picker Success: ', result); + audioFilePlayerNode + .play(result?.uri, false, false) + .then(d => { + console.log('Start Audioshare Success: ', d); + }) + .catch(e => console.log('Start Audioshare Error: ', e)); + }) + .catch(e => console.log('Document Picker Error: ', e)); + }, 500); + }, + }, + { + text: 'Stop Audio Share', + onPress: () => { + audioFilePlayerNode.stop(); + }, + }, + { + text: 'Set Audio Share Volume', + onPress: () => { + setModalVisible(ModalTypes.SET_AUDIO_SHARE_VOLUME); + }, + }, + { + text: 'Pause Audio Share', + onPress: () => { + audioFilePlayerNode.pause(); + }, + }, + { + text: 'Resume Audio Share', + onPress: () => { + audioFilePlayerNode.resume(); + }, + }, + { + text: 'Is Audio Share Playing', + onPress: () => { + audioFilePlayerNode + .isPlaying() + .then(d => console.log('Audioshare isPlaying: ', d)) + .catch(e => console.log('Audioshare isPlaying: ', e)); + }, + }, + { + text: 'Audio Share Duration', + onPress: () => { + audioFilePlayerNode + .duration() + .then(d => console.log('Audioshare duration: ', d)) + .catch(e => console.log('Audioshare duration: ', e)); + }, + }, + { + text: 'Audio Share Current Duration', + onPress: () => { + audioFilePlayerNode + .currentDuration() + .then(d => console.log('Audioshare currentDuration: ', d)) + .catch(e => console.log('Audioshare currentDuration: ', e)); + }, + }, + ], + ); + } + // buttons.push( + // ...[ + // { + // text: 'Stats For Nerds', + // onPress: () => { + // setModalVisible(ModalTypes.RTC_STATS); + // }, + // }, + // { + // text: 'Report issue and share logs', + // onPress: async () => { + // const permission = await requestExternalStoragePermission(); + // if (permission) { + // await reportIssue(); + // } + // }, + // }, + // ], + // ); + return buttons; + }; + return ( { /> )} console.log('onSettingsPress')} + onPress={onSettingsPress} viewStyle={styles.iconContainer} LeftIcon={ { ) : ( Go Live ))} */} + setModalVisible(ModalTypes.DEFAULT)} + title="Settings" + buttons={getSettingsButtons()} + /> + setModalVisible(ModalTypes.DEFAULT)}> + + + setModalVisible(ModalTypes.DEFAULT)}> + setModalVisible(ModalTypes.DEFAULT)} + /> + + setModalVisible(ModalTypes.DEFAULT)}> + setModalVisible(ModalTypes.DEFAULT)} + /> + + setModalVisible(ModalTypes.DEFAULT)}> + setModalVisible(ModalTypes.DEFAULT)} + /> + + setModalVisible(ModalTypes.DEFAULT)}> + setModalVisible(ModalTypes.DEFAULT)} + /> + ); }; diff --git a/example/src/screens/Welcome/index.tsx b/example/src/screens/Welcome/index.tsx index a0654c98d..5cafef996 100644 --- a/example/src/screens/Welcome/index.tsx +++ b/example/src/screens/Welcome/index.tsx @@ -98,6 +98,13 @@ const Welcome = () => { previewTracks: HMSTrack[]; }, ) => { + hmsInstance?.getRoles().then(roles => { + dispatch( + saveUserData({ + roles, + }), + ); + }); setHmsRoom(data.room); setPreviewTracks(data?.previewTracks); if (data?.previewTracks?.length > 0) { @@ -113,14 +120,14 @@ const Welcome = () => { } }; - const onJoinSuccess = ( + const onJoinSuccess = async ( hmsInstance: HMSSDK, data: { room: HMSRoom; }, ) => { if (Platform.OS === 'ios') { - hmsInstance?.getLocalPeer().then(localPeer => { + await hmsInstance?.getLocalPeer().then(localPeer => { const hmsLocalPeer = { id: localPeer.peerID + HMSTrackSource.REGULAR, peer: localPeer, diff --git a/example/src/utils/functions.ts b/example/src/utils/functions.ts index e266e8ed9..ccb01f5a2 100644 --- a/example/src/utils/functions.ts +++ b/example/src/utils/functions.ts @@ -397,7 +397,20 @@ export const updatePeersTrackNodesOnTrackListener = ( (track.source === undefined ? HMSTrackSource.REGULAR : track.source); const isVideo = track.type === HMSTrackType.VIDEO; - if (type === HMSTrackUpdate.TRACK_ADDED) { + if (type === HMSTrackUpdate.TRACK_REMOVED) { + if ( + track.source !== HMSTrackSource.REGULAR || + peer.role?.name?.includes('hls-') + ) { + return oldPeerTrackNodes?.filter(peerTrackNode => { + if (peerTrackNode.id === uniqueId) { + return false; + } + return true; + }); + } + return oldPeerTrackNodes; + } else { let alreadyPresent = false; const updatePeerTrackNodes = oldPeerTrackNodes?.map(peerTrackNode => { if (peerTrackNode.id === uniqueId) { @@ -439,36 +452,6 @@ export const updatePeersTrackNodesOnTrackListener = ( updatePeerTrackNodes.push(newPeerTrackNode); return updatePeerTrackNodes; } - } else if (type === HMSTrackUpdate.TRACK_REMOVED) { - if ( - track.source !== HMSTrackSource.REGULAR || - peer.role?.name?.includes('hls-') - ) { - return oldPeerTrackNodes?.filter(peerTrackNode => { - if (peerTrackNode.id === uniqueId) { - return false; - } - return true; - }); - } - return oldPeerTrackNodes; - } else { - return oldPeerTrackNodes?.map(peerTrackNode => { - if (isVideo && peerTrackNode.id === uniqueId) { - return { - ...peerTrackNode, - peer, - track, - }; - } - if (!isVideo && peerTrackNode.id === uniqueId) { - return { - ...peerTrackNode, - peer, - }; - } - return peerTrackNode; - }); } }; From 9b08bf8c5a530802394bf333a4ce049886f1f937 Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Wed, 19 Oct 2022 18:22:07 +0530 Subject: [PATCH 44/84] fix: subscribe settings --- example/src/screens/MeetingScreen/Modals.tsx | 91 +++++++++++--------- example/src/screens/MeetingScreen/index.tsx | 6 +- example/src/screens/MeetingScreen/styles.ts | 17 ++++ example/src/utils/functions.ts | 46 +++++++--- src/classes/HMSSubscribeSettings.ts | 6 +- 5 files changed, 108 insertions(+), 58 deletions(-) diff --git a/example/src/screens/MeetingScreen/Modals.tsx b/example/src/screens/MeetingScreen/Modals.tsx index d21b82602..b57947a93 100644 --- a/example/src/screens/MeetingScreen/Modals.tsx +++ b/example/src/screens/MeetingScreen/Modals.tsx @@ -59,7 +59,7 @@ import { SortingType, } from '../../utils/types'; import {COLORS} from '../../utils/theme'; -import {RootState} from '../../redux'; +import type {RootState} from '../../redux'; export const ParticipantsModal = ({ instance, @@ -196,6 +196,9 @@ export const ParticipantsModal = ({ Participants + + {peerTrackNodes?.length} + )} - {peerTrackNode.peer.isLocal === false && ( - toggleAudio(peerTrackNode.peer)}> - - - - {peerTrackNode.peer?.audioTrack?.isMute() === false - ? 'Mute audio' - : 'Unmute audio'} - - - - )} - {peerTrackNode.peer.isLocal === false && ( - toggleVideo(peerTrackNode.peer)}> - - - - {peerTrackNode.track?.isMute() === false - ? 'Mute video' - : 'Unmute video'} - - - - )} + {peerTrackNode.peer.isLocal === false && + peerTrackNode.peer.role?.publishSettings?.allowed?.includes( + 'audio', + ) && ( + toggleAudio(peerTrackNode.peer)}> + + + + {peerTrackNode.peer?.audioTrack?.isMute() === false + ? 'Mute audio' + : 'Unmute audio'} + + + + )} + {peerTrackNode.peer.isLocal === false && + peerTrackNode.peer.role?.publishSettings?.allowed?.includes( + 'video', + ) && ( + toggleVideo(peerTrackNode.peer)}> + + + + {peerTrackNode.track?.isMute() === false + ? 'Mute video' + : 'Unmute video'} + + + + )} {/* {peerTrackNode.peer.isLocal === false && type === TrackType.REMOTE && peerTrackNode?.track?.source === HMSTrackSource.REGULAR && ( diff --git a/example/src/screens/MeetingScreen/index.tsx b/example/src/screens/MeetingScreen/index.tsx index ee2336e3c..64fd403bc 100644 --- a/example/src/screens/MeetingScreen/index.tsx +++ b/example/src/screens/MeetingScreen/index.tsx @@ -135,8 +135,8 @@ const DisplayView = (data: { // constants const pairedPeers = useMemo( - () => pairData(peerTrackNodes, orientation ? 4 : 2), - [orientation, peerTrackNodes], + () => pairData(peerTrackNodes, orientation ? 4 : 2, data?.localPeer), + [data?.localPeer, orientation, peerTrackNodes], ); // listeners @@ -419,7 +419,7 @@ const DisplayView = (data: { Dimensions.addEventListener('change', callback); return () => { Dimensions.removeEventListener('change', callback); - onLeavePress(); + // onLeavePress(); }; // eslint-disable-next-line react-hooks/exhaustive-deps }, []); diff --git a/example/src/screens/MeetingScreen/styles.ts b/example/src/screens/MeetingScreen/styles.ts index f66ee37a3..d6de654c6 100644 --- a/example/src/screens/MeetingScreen/styles.ts +++ b/example/src/screens/MeetingScreen/styles.ts @@ -483,6 +483,23 @@ const styles = StyleSheet.create({ color: COLORS.TEXT.HIGH_EMPHASIS, paddingRight: 12, }, + peerCountContainer: { + alignItems: 'center', + justifyContent: 'center', + borderColor: COLORS.BORDER.ACCENT, + borderWidth: 2, + borderRadius: 30, + marginLeft: 12, + height: 30, + paddingHorizontal: 6, + }, + peerCount: { + fontFamily: 'Inter-Medium', + fontSize: 20, + lineHeight: 24, + letterSpacing: 0.15, + color: COLORS.TEXT.HIGH_EMPHASIS, + }, participantItem: { height: 68, flexDirection: 'row', diff --git a/example/src/utils/functions.ts b/example/src/utils/functions.ts index ccb01f5a2..ba7e138c8 100644 --- a/example/src/utils/functions.ts +++ b/example/src/utils/functions.ts @@ -16,6 +16,7 @@ import { HMSTrackType, HMSTrackUpdate, HMSTrackSource, + HMSLocalPeer, } from '@100mslive/react-native-hms'; import {LayoutParams, PeerTrackNode, SortingType} from './types'; @@ -373,8 +374,10 @@ export const updatePeersTrackNodesOnPeerListener = ( return true; }); } else { - return oldPeerTrackNodes?.map(peerTrackNode => { + let alreadyPresent = false; + const updatePeerTrackNodes = oldPeerTrackNodes?.map(peerTrackNode => { if (peerTrackNode.peer.peerID === peer.peerID) { + alreadyPresent = true; return { ...peerTrackNode, peer, @@ -382,6 +385,20 @@ export const updatePeersTrackNodesOnPeerListener = ( } return peerTrackNode; }); + if (alreadyPresent) { + return updatePeerTrackNodes; + } else { + let newPeerTrackNode: PeerTrackNode; + newPeerTrackNode = { + id: peer.peerID + HMSTrackSource.REGULAR, + peer, + }; + if (peer?.isLocal) { + return [newPeerTrackNode, ...updatePeerTrackNodes]; + } + updatePeerTrackNodes.push(newPeerTrackNode); + return updatePeerTrackNodes; + } } }; @@ -540,6 +557,7 @@ export const checkPermissions = async ( export const pairData = ( unGroupedPeerTrackNodes: PeerTrackNode[], batch: number, + localPeer?: HMSLocalPeer, ) => { const pairedDataRegular: Array> = []; const pairedDataSource: Array> = []; @@ -548,18 +566,24 @@ export const pairData = ( unGroupedPeerTrackNodes.map((item: PeerTrackNode) => { if ( - item.track?.source !== HMSTrackSource.REGULAR && - item.track?.source !== undefined + localPeer?.role?.subscribeSettings?.subscribeTo?.includes( + item.peer.role?.name || '', + ) ) { - pairedDataSource.push([item]); - } else { - if (itemsPushed === batch) { - pairedDataRegular.push(groupedPeerTrackNodes); - groupedPeerTrackNodes = []; - itemsPushed = 0; + if ( + item.track?.source !== HMSTrackSource.REGULAR && + item.track?.source !== undefined + ) { + pairedDataSource.push([item]); + } else { + if (itemsPushed === batch) { + pairedDataRegular.push(groupedPeerTrackNodes); + groupedPeerTrackNodes = []; + itemsPushed = 0; + } + groupedPeerTrackNodes.push(item); + itemsPushed++; } - groupedPeerTrackNodes.push(item); - itemsPushed++; } }); diff --git a/src/classes/HMSSubscribeSettings.ts b/src/classes/HMSSubscribeSettings.ts index d2abbbd94..3da65e442 100644 --- a/src/classes/HMSSubscribeSettings.ts +++ b/src/classes/HMSSubscribeSettings.ts @@ -1,14 +1,14 @@ export class HMSSubscribeSettings { - subscribeToRoles?: [string]; + subscribeTo?: [string]; maxSubsBitRate: number; maxDisplayTiles?: number; constructor(params: { - subscribeToRoles?: [string]; + subscribeTo?: [string]; maxSubsBitRate: number; maxDisplayTiles?: number; }) { - this.subscribeToRoles = params.subscribeToRoles; + this.subscribeTo = params.subscribeTo; this.maxSubsBitRate = params.maxSubsBitRate; this.maxDisplayTiles = params.maxDisplayTiles; } From 4e757c776b388aab542229e2d1a6fc26ac746697 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Wed, 19 Oct 2022 19:29:23 +0530 Subject: [PATCH 45/84] removed bitrate & track description in audio source --- ios/HMSHelper.swift | 15 ++++----------- ios/HMSRNSDK.swift | 6 +++--- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/ios/HMSHelper.swift b/ios/HMSHelper.swift index 50f4a75c6..317f056a1 100644 --- a/ios/HMSHelper.swift +++ b/ios/HMSHelper.swift @@ -171,13 +171,7 @@ class HMSHelper: NSObject { } static func getLocalAudioSettings(_ settings: NSDictionary?, _ hms: HMSSDK?, _ delegate: HMSManager?, _ id: String) -> HMSAudioTrackSettings? { - guard let data = settings, - let maxBitrate = data.value(forKey: "maxBitrate") as? Int - else { - return nil - } - let trackDescription = data.value(forKey: "trackDescription") as? String - let hmsTrackSettings = HMSAudioTrackSettings(maxBitrate: maxBitrate, trackDescription: trackDescription) + if #available(iOS 13.0, *) { var audioMixerSourceMap = [String: HMSAudioNode]() if let playerNode = settings?.value(forKey: "audioSource") as? [String] { @@ -200,14 +194,13 @@ class HMSHelper: NSObject { do { self.audioMixerSourceHashMap = audioMixerSourceMap let audioMixerSource = try HMSAudioMixerSource(nodes: audioMixerSourceMap.values.map {$0}) - return HMSAudioTrackSettings(maxBitrate: maxBitrate, trackDescription: trackDescription, audioSource: audioMixerSource) + return HMSAudioTrackSettings(maxBitrate: 32, trackDescription: "trackDescription", audioSource: audioMixerSource) } catch { delegate?.emitEvent("ON_ERROR", ["error": ["code": 6002, "description": error.localizedDescription, "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id]) - return hmsTrackSettings + return nil } - } else { - return hmsTrackSettings } + return nil } static func getAudioMixerSourceMap() -> [String: HMSAudioNode]? { diff --git a/ios/HMSRNSDK.swift b/ios/HMSRNSDK.swift index 52acee730..1ba22de55 100644 --- a/ios/HMSRNSDK.swift +++ b/ios/HMSRNSDK.swift @@ -979,7 +979,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener { reject?("AudioFilePlayerNode not found", "AudioFilePlayerNode not found", nil) } } - + func enableNetworkQualityUpdates() { networkQualityUpdatesAttached = true } @@ -1039,8 +1039,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener { func on(peer: HMSPeer, update: HMSPeerUpdate) { let type = getString(from: update) let hmsPeer = HMSDecoder.getHmsPeer(peer) - - if(!networkQualityUpdatesAttached && update == .networkQualityUpdated){ + + if !networkQualityUpdatesAttached && update == .networkQualityUpdated { return } From 0f54c5ecd21b8a5b9c04d67fdabb0bb2d848e7fb Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Wed, 19 Oct 2022 20:05:24 +0530 Subject: [PATCH 46/84] fix: peer count --- example/ios/Podfile.lock | 10 +- example/package-lock.json | 85 ++-- example/src/screens/MeetingScreen/Modals.tsx | 22 +- example/src/screens/Welcome/index.tsx | 14 +- package-lock.json | 493 +++++++++++++++---- 5 files changed, 483 insertions(+), 141 deletions(-) diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 7fda91a10..e2ee0d97d 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -286,7 +286,7 @@ PODS: - React-Core - react-native-cameraroll (5.0.4): - React-Core - - react-native-document-picker (8.1.1): + - react-native-document-picker (8.1.2): - React-Core - react-native-hms (0.9.94): - HMSBroadcastExtensionSDK (= 0.0.3) @@ -368,7 +368,7 @@ PODS: - React-perflogger (= 0.64.2) - rn-fetch-blob (0.12.0): - React-Core - - RNCPicker (2.4.7): + - RNCPicker (2.4.8): - React-Core - RNDeviceInfo (9.0.2): - React-Core @@ -582,7 +582,7 @@ SPEC CHECKSUMS: CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 DoubleConversion: cf9b38bf0b2d048436d9a82ad2abe1404f11e7de FBLazyVector: e686045572151edef46010a6f819ade377dfeb4b - FBReactNativeSpec: 0094aca9cd5d4a79abcb5a2c1d1f52d0c106aaf9 + FBReactNativeSpec: 978556cb9c183a32af51f818206b201b3deb0d1e Flipper: d3da1aa199aad94455ae725e9f3aa43f3ec17021 Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41 Flipper-Folly: 755929a4f851b2fb2c347d533a23f191b008554c @@ -612,7 +612,7 @@ SPEC CHECKSUMS: React-jsinspector: cc614ec18a9ca96fd275100c16d74d62ee11f0ae react-native-camera: 3eae183c1d111103963f3dd913b65d01aef8110f react-native-cameraroll: 38b40d9033e4077b6c603f92f95c6d05fa7907df - react-native-document-picker: f68191637788994baed5f57d12994aa32cf8bf88 + react-native-document-picker: f5ec1a712ca2a975c233117f044817bb8393cad4 react-native-hms: b2376d842bbb8bc5b82ae6b201dc0977af7d4bfc react-native-safe-area-context: 9e40fb181dac02619414ba1294d6c2a807056ab9 react-native-simple-toast: 8ee5d23f0b92b935ab7434cdb65159ce12dfb4b7 @@ -630,7 +630,7 @@ SPEC CHECKSUMS: React-runtimeexecutor: a9904c6d0218fb9f8b19d6dd88607225927668f9 ReactCommon: 149906e01aa51142707a10665185db879898e966 rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba - RNCPicker: 35b5d45693bb46c0e5514116081509e15a64a145 + RNCPicker: 0bf8ef8f7800524f32d2bb2a8bcadd53eda0ecd1 RNDeviceInfo: 1e3f62b9ec32f7754fac60bd06b8f8a27124e7f0 RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211 diff --git a/example/package-lock.json b/example/package-lock.json index f7676e1d3..7417aa92f 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -3403,9 +3403,9 @@ "dev": true }, "node_modules/@react-native-picker/picker": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.7.tgz", - "integrity": "sha512-SZewIUpkHIA1VzDdetXLpZUfwVOR4p+CRGguo8dGt/33nh9Bhkpt0Ke6KazZ6agbDGyBjlVEAqzkcLXoRBwOJQ==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.8.tgz", + "integrity": "sha512-5NQ5XPo1B03YNqKFrV6h9L3CQaHlB80wd4ETHUEABRP2iLh7FHLVObX2GfziD+K/VJb8G4KZcZ23NFBFP1f7bg==", "peerDependencies": { "react": ">=16", "react-native": ">=0.57" @@ -3644,9 +3644,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.11.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.0.tgz", - "integrity": "sha512-IOXCvVRToe7e0ny7HpT/X9Rb2RYtElG1a+VshjwT00HxrM2dWBApHQoqsI6WiY7Q03vdf2bCrIGzVrkF/5t10w==" + "version": "18.11.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.2.tgz", + "integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -3676,9 +3676,9 @@ } }, "node_modules/@types/react-native": { - "version": "0.64.28", - "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.64.28.tgz", - "integrity": "sha512-2ZMLNH7f3cDQQWt7WWirXJCArZ0RXF3qBVALCw0MBU/ObPcCNs6+1GXZGehdmFGDspWaqHFd7MF7TtZoC6QdYA==", + "version": "0.64.29", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.64.29.tgz", + "integrity": "sha512-nCa4rcAlilTWL7wEUwTnxo6HjxQvFjVeDPK9taglDvId06pw/eOUu2NozfpwY91o8K7UdZn8VUoDRaGt2i8LBA==", "dev": true, "dependencies": { "@types/react": "^17" @@ -4828,9 +4828,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001419", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001419.tgz", - "integrity": "sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw==", + "version": "1.0.30001422", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz", + "integrity": "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==", "funding": [ { "type": "opencollective", @@ -5519,9 +5519,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.283", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.283.tgz", - "integrity": "sha512-g6RQ9zCOV+U5QVHW9OpFR7rdk/V7xfopNXnyAamdpFgCHgZ1sjI8VuR1+zG2YG/TZk+tQ8mpNkug4P8FU0fuOA==" + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" }, "node_modules/eme-encryption-scheme-polyfill": { "version": "2.1.1", @@ -7520,9 +7520,9 @@ } }, "node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dependencies": { "has": "^1.0.3" }, @@ -11662,9 +11662,9 @@ } }, "node_modules/react-native-document-picker": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/react-native-document-picker/-/react-native-document-picker-8.1.1.tgz", - "integrity": "sha512-mH0oghd7ndgU9/1meVJdqts1sAkOfUQW1qbrqTTsvR5f2K9r0BAj/X02dve5IBMOMZvlGd7qWrNVuIFg5AUXWg==", + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/react-native-document-picker/-/react-native-document-picker-8.1.2.tgz", + "integrity": "sha512-R126YsjTXBuvigRRExyAQ+yn1UGV4dGcMI9x4UAY8TBTSOt6nOQcWS/AQcbzjk9MnN8ISDGqNq9GmN51Q1aHjA==", "dependencies": { "invariant": "^2.2.4" }, @@ -14364,6 +14364,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", "dev": true, "dependencies": { "browser-process-hrtime": "^1.0.0" @@ -17086,9 +17087,9 @@ "dev": true }, "@react-native-picker/picker": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.7.tgz", - "integrity": "sha512-SZewIUpkHIA1VzDdetXLpZUfwVOR4p+CRGguo8dGt/33nh9Bhkpt0Ke6KazZ6agbDGyBjlVEAqzkcLXoRBwOJQ==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.8.tgz", + "integrity": "sha512-5NQ5XPo1B03YNqKFrV6h9L3CQaHlB80wd4ETHUEABRP2iLh7FHLVObX2GfziD+K/VJb8G4KZcZ23NFBFP1f7bg==", "requires": {} }, "@react-native/assets": { @@ -17302,9 +17303,9 @@ "dev": true }, "@types/node": { - "version": "18.11.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.0.tgz", - "integrity": "sha512-IOXCvVRToe7e0ny7HpT/X9Rb2RYtElG1a+VshjwT00HxrM2dWBApHQoqsI6WiY7Q03vdf2bCrIGzVrkF/5t10w==" + "version": "18.11.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.2.tgz", + "integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==" }, "@types/normalize-package-data": { "version": "2.4.1", @@ -17334,9 +17335,9 @@ } }, "@types/react-native": { - "version": "0.64.28", - "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.64.28.tgz", - "integrity": "sha512-2ZMLNH7f3cDQQWt7WWirXJCArZ0RXF3qBVALCw0MBU/ObPcCNs6+1GXZGehdmFGDspWaqHFd7MF7TtZoC6QdYA==", + "version": "0.64.29", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.64.29.tgz", + "integrity": "sha512-nCa4rcAlilTWL7wEUwTnxo6HjxQvFjVeDPK9taglDvId06pw/eOUu2NozfpwY91o8K7UdZn8VUoDRaGt2i8LBA==", "dev": true, "requires": { "@types/react": "^17" @@ -18196,9 +18197,9 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "caniuse-lite": { - "version": "1.0.30001419", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001419.tgz", - "integrity": "sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw==" + "version": "1.0.30001422", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz", + "integrity": "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==" }, "capture-exit": { "version": "2.0.0", @@ -18743,9 +18744,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "electron-to-chromium": { - "version": "1.4.283", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.283.tgz", - "integrity": "sha512-g6RQ9zCOV+U5QVHW9OpFR7rdk/V7xfopNXnyAamdpFgCHgZ1sjI8VuR1+zG2YG/TZk+tQ8mpNkug4P8FU0fuOA==" + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" }, "eme-encryption-scheme-polyfill": { "version": "2.1.1", @@ -20238,9 +20239,9 @@ } }, "is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "requires": { "has": "^1.0.3" } @@ -23431,9 +23432,9 @@ "requires": {} }, "react-native-document-picker": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/react-native-document-picker/-/react-native-document-picker-8.1.1.tgz", - "integrity": "sha512-mH0oghd7ndgU9/1meVJdqts1sAkOfUQW1qbrqTTsvR5f2K9r0BAj/X02dve5IBMOMZvlGd7qWrNVuIFg5AUXWg==", + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/react-native-document-picker/-/react-native-document-picker-8.1.2.tgz", + "integrity": "sha512-R126YsjTXBuvigRRExyAQ+yn1UGV4dGcMI9x4UAY8TBTSOt6nOQcWS/AQcbzjk9MnN8ISDGqNq9GmN51Q1aHjA==", "requires": { "invariant": "^2.2.4" } diff --git a/example/src/screens/MeetingScreen/Modals.tsx b/example/src/screens/MeetingScreen/Modals.tsx index b57947a93..abe155544 100644 --- a/example/src/screens/MeetingScreen/Modals.tsx +++ b/example/src/screens/MeetingScreen/Modals.tsx @@ -79,6 +79,7 @@ export const ParticipantsModal = ({ // useEffect hook const [participantsSearchInput, setParticipantsSearchInput] = useState(''); const [visible, setVisible] = useState(-1); + const [peerCount, setPeerCount] = useState(0); const [filteredPeerTrackNodes, setFilteredPeerTrackNodes] = useState(); const [filter, setFilter] = useState('everyone'); @@ -162,6 +163,12 @@ export const ParticipantsModal = ({ useEffect(() => { const newFilteredPeerTrackNodes = peerTrackNodes?.filter(peerTrackNode => { + if ( + peerTrackNode?.track?.source !== undefined && + peerTrackNode?.track?.source !== HMSTrackSource.REGULAR + ) { + return false; + } if ( participantsSearchInput.length < 1 || peerTrackNode.peer.name.includes(participantsSearchInput) || @@ -191,13 +198,26 @@ export const ParticipantsModal = ({ } }, [participantsSearchInput, filter, peerTrackNodes]); + useEffect(() => { + let newPeerCount = 0; + peerTrackNodes?.map(peerTrackNode => { + if ( + peerTrackNode.track?.source === undefined || + peerTrackNode.track?.source === HMSTrackSource.REGULAR + ) { + newPeerCount++; + } + }); + setPeerCount(newPeerCount); + }, [peerTrackNodes]); + return ( Participants - {peerTrackNodes?.length} + {peerCount} diff --git a/example/src/screens/Welcome/index.tsx b/example/src/screens/Welcome/index.tsx index 5cafef996..cbd26fd92 100644 --- a/example/src/screens/Welcome/index.tsx +++ b/example/src/screens/Welcome/index.tsx @@ -98,13 +98,6 @@ const Welcome = () => { previewTracks: HMSTrack[]; }, ) => { - hmsInstance?.getRoles().then(roles => { - dispatch( - saveUserData({ - roles, - }), - ); - }); setHmsRoom(data.room); setPreviewTracks(data?.previewTracks); if (data?.previewTracks?.length > 0) { @@ -142,6 +135,13 @@ const Welcome = () => { } else { dispatch(setPeerState({peerState: peerTrackNodesRef?.current})); } + hmsInstance?.getRoles().then(roles => { + dispatch( + saveUserData({ + roles, + }), + ); + }); setHmsRoom(data.room); setJoinButtonLoading(false); setPreviewButtonLoading(false); diff --git a/package-lock.json b/package-lock.json index cb3666b23..556b63831 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3494,12 +3494,12 @@ } }, "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==", + "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==", "peer": true, "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" @@ -3694,12 +3694,12 @@ } }, "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==", + "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==", "peer": true, "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", @@ -3775,14 +3775,14 @@ } }, "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==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-9.2.1.tgz", + "integrity": "sha512-RpUax0pkKumXJ5hcRG0Qd+oYWsA2RFeMWKY+Npg8q05Cwd1rqDQfWGprkHC576vz26+FPuvwEagoAf6fR2bvJA==", "peer": true, "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.2.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "command-exists": "^1.2.8", "envinfo": "^7.7.2", @@ -3798,6 +3798,19 @@ "wcwidth": "^1.0.1" } }, + "node_modules/@react-native-community/cli-doctor/node_modules/@react-native-community/cli-platform-ios": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.2.1.tgz", + "integrity": "sha512-dEgvkI6CFgPk3vs8IOR0toKVUjIFwe4AsXFvWWJL5qhrIzW9E5Owi0zPkSvzXsMlfYMbVX0COfVIK539ZxguSg==", + "peer": true, + "dependencies": { + "@react-native-community/cli-tools": "^9.2.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "glob": "^7.1.3", + "ora": "^5.4.1" + } + }, "node_modules/@react-native-community/cli-doctor/node_modules/ansi-regex": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", @@ -4017,18 +4030,33 @@ } }, "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==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-9.2.1.tgz", + "integrity": "sha512-723/NMb7egXzJrbWT1uEkN2hOpw+OOtWTG2zKJ3j7KKgUd8u/pP+/z5jO8xVrq+eYJEMjDK0FBEo1Xj7maR4Sw==", "peer": true, "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.2.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-hermes/node_modules/@react-native-community/cli-platform-android": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.2.1.tgz", + "integrity": "sha512-VamCZ8nido3Q3Orhj6pBIx48itORNPLJ7iTfy3nucD1qISEDih3DOzCaQCtmqdEBgUkNkNl0O+cKgq5A3th3Zg==", + "peer": true, + "dependencies": { + "@react-native-community/cli-tools": "^9.2.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "fs-extra": "^8.1.0", + "glob": "^7.1.3", + "logkitty": "^0.7.1", + "slash": "^3.0.0" + } + }, "node_modules/@react-native-community/cli-hermes/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -4078,6 +4106,66 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "peer": true }, + "node_modules/@react-native-community/cli-hermes/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@react-native-community/cli-hermes/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -4087,6 +4175,75 @@ "node": ">=8" } }, + "node_modules/@react-native-community/cli-hermes/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "peer": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "peer": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "peer": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@react-native-community/cli-hermes/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -4099,6 +4256,27 @@ "node": ">=8" } }, + "node_modules/@react-native-community/cli-hermes/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "peer": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "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", @@ -4536,13 +4714,13 @@ } }, "node_modules/@react-native-community/cli-plugin-metro": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.1.3.tgz", - "integrity": "sha512-eLZiGIMybNwkbfKRd8wfNP1u5pnsGYLD3YHlNQyRlfS7AMG7NCQN8bk2uWWJJmWAv632KFLConwJGcLhk6ZNMQ==", + "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==", "peer": true, "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.3", "metro-config": "0.72.3", @@ -4624,13 +4802,13 @@ } }, "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==", + "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==", "peer": true, "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", @@ -4641,9 +4819,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==", + "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==", "peer": true, "dependencies": { "appdirsjs": "^1.2.4", @@ -5303,9 +5481,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.11.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.0.tgz", - "integrity": "sha512-IOXCvVRToe7e0ny7HpT/X9Rb2RYtElG1a+VshjwT00HxrM2dWBApHQoqsI6WiY7Q03vdf2bCrIGzVrkF/5t10w==" + "version": "18.11.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.2.tgz", + "integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -6687,9 +6865,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001419", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001419.tgz", - "integrity": "sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw==", + "version": "1.0.30001422", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz", + "integrity": "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==", "funding": [ { "type": "opencollective", @@ -8050,9 +8228,9 @@ "peer": true }, "node_modules/electron-to-chromium": { - "version": "1.4.283", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.283.tgz", - "integrity": "sha512-g6RQ9zCOV+U5QVHW9OpFR7rdk/V7xfopNXnyAamdpFgCHgZ1sjI8VuR1+zG2YG/TZk+tQ8mpNkug4P8FU0fuOA==" + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" }, "node_modules/emittery": { "version": "0.7.2", @@ -10934,9 +11112,9 @@ } }, "node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dependencies": { "has": "^1.0.3" }, @@ -20107,6 +20285,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", "dev": true, "dependencies": { "browser-process-hrtime": "^1.0.0" @@ -23246,12 +23425,12 @@ } }, "@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==", "peer": true, "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" @@ -23397,12 +23576,12 @@ } }, "@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==", "peer": true, "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", @@ -23465,14 +23644,14 @@ } }, "@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.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-9.2.1.tgz", + "integrity": "sha512-RpUax0pkKumXJ5hcRG0Qd+oYWsA2RFeMWKY+Npg8q05Cwd1rqDQfWGprkHC576vz26+FPuvwEagoAf6fR2bvJA==", "peer": true, "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.2.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "command-exists": "^1.2.8", "envinfo": "^7.7.2", @@ -23488,6 +23667,19 @@ "wcwidth": "^1.0.1" }, "dependencies": { + "@react-native-community/cli-platform-ios": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.2.1.tgz", + "integrity": "sha512-dEgvkI6CFgPk3vs8IOR0toKVUjIFwe4AsXFvWWJL5qhrIzW9E5Owi0zPkSvzXsMlfYMbVX0COfVIK539ZxguSg==", + "peer": true, + "requires": { + "@react-native-community/cli-tools": "^9.2.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "glob": "^7.1.3", + "ora": "^5.4.1" + } + }, "ansi-regex": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", @@ -23651,18 +23843,33 @@ } }, "@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.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-9.2.1.tgz", + "integrity": "sha512-723/NMb7egXzJrbWT1uEkN2hOpw+OOtWTG2zKJ3j7KKgUd8u/pP+/z5jO8xVrq+eYJEMjDK0FBEo1Xj7maR4Sw==", "peer": true, "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.2.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "hermes-profile-transformer": "^0.0.6", "ip": "^1.1.5" }, "dependencies": { + "@react-native-community/cli-platform-android": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.2.1.tgz", + "integrity": "sha512-VamCZ8nido3Q3Orhj6pBIx48itORNPLJ7iTfy3nucD1qISEDih3DOzCaQCtmqdEBgUkNkNl0O+cKgq5A3th3Zg==", + "peer": true, + "requires": { + "@react-native-community/cli-tools": "^9.2.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "fs-extra": "^8.1.0", + "glob": "^7.1.3", + "logkitty": "^0.7.1", + "slash": "^3.0.0" + } + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -23697,12 +23904,111 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "peer": true }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "peer": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "requires": { + "pump": "^3.0.0" + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "peer": true }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "peer": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "peer": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "peer": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "peer": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "peer": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "peer": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -23711,6 +24017,21 @@ "requires": { "has-flag": "^4.0.0" } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "peer": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "peer": true, + "requires": { + "isexe": "^2.0.0" + } } } }, @@ -24047,13 +24368,13 @@ } }, "@react-native-community/cli-plugin-metro": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.1.3.tgz", - "integrity": "sha512-eLZiGIMybNwkbfKRd8wfNP1u5pnsGYLD3YHlNQyRlfS7AMG7NCQN8bk2uWWJJmWAv632KFLConwJGcLhk6ZNMQ==", + "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==", "peer": true, "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.3", "metro-config": "0.72.3", @@ -24116,13 +24437,13 @@ } }, "@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==", "peer": true, "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", @@ -24133,9 +24454,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==", "peer": true, "requires": { "appdirsjs": "^1.2.4", @@ -24460,9 +24781,9 @@ "dev": true }, "@types/node": { - "version": "18.11.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.0.tgz", - "integrity": "sha512-IOXCvVRToe7e0ny7HpT/X9Rb2RYtElG1a+VshjwT00HxrM2dWBApHQoqsI6WiY7Q03vdf2bCrIGzVrkF/5t10w==" + "version": "18.11.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.2.tgz", + "integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==" }, "@types/normalize-package-data": { "version": "2.4.1", @@ -25488,9 +25809,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001419", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001419.tgz", - "integrity": "sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw==" + "version": "1.0.30001422", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz", + "integrity": "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==" }, "capture-exit": { "version": "2.0.0", @@ -26550,9 +26871,9 @@ "peer": true }, "electron-to-chromium": { - "version": "1.4.283", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.283.tgz", - "integrity": "sha512-g6RQ9zCOV+U5QVHW9OpFR7rdk/V7xfopNXnyAamdpFgCHgZ1sjI8VuR1+zG2YG/TZk+tQ8mpNkug4P8FU0fuOA==" + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" }, "emittery": { "version": "0.7.2", @@ -28730,9 +29051,9 @@ } }, "is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "requires": { "has": "^1.0.3" } From b31257a051fe0fdfcde4b5d78df867d009ac16cc Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Wed, 19 Oct 2022 20:46:45 +0530 Subject: [PATCH 47/84] updated gems --- example/android/Gemfile.lock | 8 ++++---- example/ios/Gemfile.lock | 8 ++++---- example/ios/Podfile.lock | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/example/android/Gemfile.lock b/example/android/Gemfile.lock index ed1b41fbf..ed4adceab 100644 --- a/example/android/Gemfile.lock +++ b/example/android/Gemfile.lock @@ -8,8 +8,8 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.646.0) - aws-sdk-core (3.160.0) + aws-partitions (1.647.0) + aws-sdk-core (3.161.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) @@ -109,7 +109,7 @@ GEM gh_inspector (1.1.3) google-apis-androidpublisher_v3 (0.29.0) google-apis-core (>= 0.9.0, < 2.a) - google-apis-core (0.9.0) + google-apis-core (0.9.1) addressable (~> 2.5, >= 2.5.1) googleauth (>= 0.16.2, < 2.a) httpclient (>= 2.8.1, < 3.a) @@ -138,7 +138,7 @@ GEM google-cloud-core (~> 1.6) googleauth (>= 0.16.2, < 2.a) mini_mime (~> 1.0) - googleauth (1.2.0) + googleauth (1.3.0) faraday (>= 0.17.3, < 3.a) jwt (>= 1.4, < 3.0) memoist (~> 0.16) diff --git a/example/ios/Gemfile.lock b/example/ios/Gemfile.lock index 2029baeda..d0a6e2ee7 100644 --- a/example/ios/Gemfile.lock +++ b/example/ios/Gemfile.lock @@ -8,8 +8,8 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.646.0) - aws-sdk-core (3.160.0) + aws-partitions (1.647.0) + aws-sdk-core (3.161.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) @@ -110,7 +110,7 @@ GEM gh_inspector (1.1.3) google-apis-androidpublisher_v3 (0.29.0) google-apis-core (>= 0.9.0, < 2.a) - google-apis-core (0.9.0) + google-apis-core (0.9.1) addressable (~> 2.5, >= 2.5.1) googleauth (>= 0.16.2, < 2.a) httpclient (>= 2.8.1, < 3.a) @@ -139,7 +139,7 @@ GEM google-cloud-core (~> 1.6) googleauth (>= 0.16.2, < 2.a) mini_mime (~> 1.0) - googleauth (1.2.0) + googleauth (1.3.0) faraday (>= 0.17.3, < 3.a) jwt (>= 1.4, < 3.0) memoist (~> 0.16) diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index e2ee0d97d..76e2df458 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -582,7 +582,7 @@ SPEC CHECKSUMS: CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 DoubleConversion: cf9b38bf0b2d048436d9a82ad2abe1404f11e7de FBLazyVector: e686045572151edef46010a6f819ade377dfeb4b - FBReactNativeSpec: 978556cb9c183a32af51f818206b201b3deb0d1e + FBReactNativeSpec: 0094aca9cd5d4a79abcb5a2c1d1f52d0c106aaf9 Flipper: d3da1aa199aad94455ae725e9f3aa43f3ec17021 Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41 Flipper-Folly: 755929a4f851b2fb2c347d533a23f191b008554c From 5842cf81050b2988493430544a328d9e65ec6071 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Wed, 19 Oct 2022 22:02:03 +0530 Subject: [PATCH 48/84] =?UTF-8?q?released=20sample=20app=20version=202.0.1?= =?UTF-8?q?2=20(117)=20=E2=9A=9B=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/android/app/build.gradle | 4 ++-- example/ios/Podfile.lock | 2 +- example/ios/RNHMSExample.xcodeproj/project.pbxproj | 8 ++++---- example/ios/RNHMSExample/Info.plist | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index c7f00b6dd..64ce53cd9 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -135,8 +135,8 @@ android { applicationId "live.hms.rn" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 116 - versionName "2.0.11" + versionCode 117 + versionName "2.0.12" missingDimensionStrategy 'react-native-camera', 'general' } splits { diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 0ac73c5b6..2eed7c11b 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -613,7 +613,7 @@ SPEC CHECKSUMS: react-native-camera: 3eae183c1d111103963f3dd913b65d01aef8110f react-native-cameraroll: 38b40d9033e4077b6c603f92f95c6d05fa7907df react-native-document-picker: f5ec1a712ca2a975c233117f044817bb8393cad4 - react-native-hms: b2376d842bbb8bc5b82ae6b201dc0977af7d4bfc + react-native-hms: bf6c7964782e41b7cd8f3d6233a1174d91d384c8 react-native-safe-area-context: 9e40fb181dac02619414ba1294d6c2a807056ab9 react-native-simple-toast: 8ee5d23f0b92b935ab7434cdb65159ce12dfb4b7 react-native-video: c26780b224543c62d5e1b2a7244a5cd1b50e8253 diff --git a/example/ios/RNHMSExample.xcodeproj/project.pbxproj b/example/ios/RNHMSExample.xcodeproj/project.pbxproj index 3cfbe5cc0..8ba906ce5 100644 --- a/example/ios/RNHMSExample.xcodeproj/project.pbxproj +++ b/example/ios/RNHMSExample.xcodeproj/project.pbxproj @@ -622,7 +622,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 116; + CURRENT_PROJECT_VERSION = 117; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -663,7 +663,7 @@ CODE_SIGN_ENTITLEMENTS = RNHMSExample/RNHMSExample.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 116; + CURRENT_PROJECT_VERSION = 117; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -830,7 +830,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 116; + CURRENT_PROJECT_VERSION = 117; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = 5N85PP82A9; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -874,7 +874,7 @@ CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 116; + CURRENT_PROJECT_VERSION = 117; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = 5N85PP82A9; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; diff --git a/example/ios/RNHMSExample/Info.plist b/example/ios/RNHMSExample/Info.plist index 7e2f76120..aa8f412e6 100644 --- a/example/ios/RNHMSExample/Info.plist +++ b/example/ios/RNHMSExample/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.0.11 + 2.0.12 CFBundleSignature ???? CFBundleVersion - 116 + 117 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS From e814aeb8960bd1961302e61a2c0dd861745f6cc0 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Thu, 20 Oct 2022 13:21:58 +0530 Subject: [PATCH 49/84] updated settings --- .../src/main/java/com/reactnativehmssdk/HMSHelper.kt | 10 ++++++---- .../src/main/java/com/reactnativehmssdk/HMSRNSDK.kt | 8 +++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt b/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt index 4212a0931..ee2be2cb2 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt @@ -242,10 +242,12 @@ object HMSHelper { val maxBitrate = data.getInt("maxBitrate") val maxFrameRate = data.getInt("maxFrameRate") val cameraFacing = getCameraFacing(data.getString("cameraFacing")) - var forceSoftwareDecoder = false - if (areAllRequiredKeysAvailable(data, arrayOf(Pair("forceSoftwareDecoder", "Boolean")))) { - forceSoftwareDecoder = data.getBoolean("forceSoftwareDecoder") - } + val forceSoftwareDecoder = true + // TODO +// var forceSoftwareDecoder = false +// if (areAllRequiredKeysAvailable(data, arrayOf(Pair("forceSoftwareDecoder", "Boolean")))) { +// forceSoftwareDecoder = data.getBoolean("forceSoftwareDecoder") +// } builder.codec(codec) builder.cameraFacing(cameraFacing) builder.forceSoftwareDecoder(forceSoftwareDecoder) diff --git a/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt b/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt index e4fff16a2..b0fd68dfe 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt @@ -44,11 +44,13 @@ class HMSRNSDK( init { val trackSettings = HMSHelper.getTrackSettings(data?.getMap("trackSettings")) val frameworkInfo = HMSHelper.getFrameworkInfo(data?.getMap("frameworkInfo")) + val logSettings = HMSLogSettings(maxDirSizeInBytes: LogAlarmManager.DEFAULT_DIR_SIZE, isLogStorageEnabled: true, level: HMSLogger.LogLevel.VERBOSE) + // TODO: Cleanup builders if (trackSettings == null) { - this.hmsSDK = HMSSDK.Builder(reactApplicationContext).build() + this.hmsSDK = HMSSDK.Builder(reactApplicationContext).setLogSettings(logSettings).build() } else { - this.hmsSDK = HMSSDK.Builder(reactApplicationContext).setTrackSettings(trackSettings).build() - this.hmsSDK = HMSSDK.Builder(reactApplicationContext).setFrameworkInfo(frameworkInfo).build() + this.hmsSDK = HMSSDK.Builder(reactApplicationContext).setTrackSettings(trackSettings).setLogSettings(logSettings).build() +// this.hmsSDK = HMSSDK.Builder(reactApplicationContext).setFrameworkInfo(frameworkInfo).setLogSettings(logSettings).build() } } From cea1515c84f9b025c1c966b581a98f134926e586 Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Thu, 20 Oct 2022 13:24:49 +0530 Subject: [PATCH 50/84] feat: added crashlytics on android --- example/android/app/build.gradle | 8 +- example/android/build.gradle | 2 + example/package-lock.json | 885 ++++++++++++++++++++++++++++++- example/package.json | 2 + 4 files changed, 874 insertions(+), 23 deletions(-) diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 64ce53cd9..87658f0aa 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -1,4 +1,6 @@ apply plugin: "com.android.application" +apply plugin: 'com.google.gms.google-services' // apply after this line +apply plugin: 'com.google.firebase.crashlytics' import com.android.build.OutputFile /** @@ -165,7 +167,11 @@ android { shrinkResources true minifyEnabled true signingConfig signingConfigs.debug - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" + proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" + firebaseCrashlytics { + nativeSymbolUploadEnabled true + unstrippedNativeLibsDir 'build/intermediates/merged_native_libs/release/out/lib' + } } } diff --git a/example/android/build.gradle b/example/android/build.gradle index c74b01245..d51865f35 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -13,6 +13,8 @@ buildscript { } dependencies { classpath('com.android.tools.build:gradle:4.2.2') + classpath 'com.google.gms:google-services:4.3.14' + classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/example/package-lock.json b/example/package-lock.json index 7417aa92f..057bd6789 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -10,6 +10,8 @@ "dependencies": { "@miblanchard/react-native-slider": "^2.0.2", "@react-native-camera-roll/camera-roll": "^5.0.2", + "@react-native-firebase/app": "^16.0.0", + "@react-native-firebase/crashlytics": "^16.0.0", "@react-native-picker/picker": "^2.0.0", "@react-native/normalize-color": "^2.0.0", "@react-navigation/native": "^6.0.8", @@ -1950,6 +1952,277 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "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==", + "dependencies": { + "@expo/config-types": "^46.0.0", + "@expo/json-file": "8.2.36", + "@expo/plist": "0.0.18", + "@expo/sdk-runtime-versions": "^1.0.0", + "@react-native/normalize-color": "^2.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.1", + "find-up": "~5.0.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "resolve-from": "^5.0.0", + "semver": "^7.3.5", + "slash": "^3.0.0", + "xcode": "^3.0.1", + "xml2js": "0.4.23" + } + }, + "node_modules/@expo/config-plugins/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/@expo/config-plugins/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@expo/config-plugins/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/@expo/config-plugins/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/@expo/config-plugins/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@expo/config-plugins/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/config-plugins/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@expo/config-plugins/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@expo/config-plugins/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@expo/config-plugins/node_modules/p-locate": { + "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==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@expo/config-plugins/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@expo/config-plugins/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/@expo/config-plugins/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@expo/config-plugins/node_modules/uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@expo/config-plugins/node_modules/xcode": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", + "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", + "dependencies": { + "simple-plist": "^1.1.0", + "uuid": "^7.0.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "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==" + }, + "node_modules/@expo/json-file": { + "version": "8.2.36", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz", + "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "json5": "^1.0.1", + "write-file-atomic": "^2.3.0" + } + }, + "node_modules/@expo/json-file/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "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==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/@expo/json-file/node_modules/write-file-atomic": { + "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==", + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/@expo/plist": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz", + "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==", + "dependencies": { + "@xmldom/xmldom": "~0.7.0", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" + } + }, + "node_modules/@expo/plist/node_modules/xmlbuilder": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-14.0.0.tgz", + "integrity": "sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==", + "engines": { + "node": ">=8.0" + } + }, + "node_modules/@expo/sdk-runtime-versions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", + "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==" + }, "node_modules/@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -3402,6 +3675,32 @@ "integrity": "sha512-o6aam+0Ug1xGK3ABYmBm0B1YuEKfM/5kaoZO0eHbZwSpw9UzDX4G5y4Nx/K20FHqUmJHkZmLvOUFYwN4N+HqKA==", "dev": true }, + "node_modules/@react-native-firebase/app": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@react-native-firebase/app/-/app-16.0.0.tgz", + "integrity": "sha512-aetICzDF9XbBdGEY4tIKkA1sbWVz6l6TYv3JhreloQfEAFtq1UKvznudtrj3IdK0vVDnZlfIZDW96HVIv10wTw==", + "dependencies": { + "@expo/config-plugins": "^5.0.1", + "opencollective-postinstall": "^2.0.1", + "superstruct": "^0.6.2" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/@react-native-firebase/crashlytics": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@react-native-firebase/crashlytics/-/crashlytics-16.0.0.tgz", + "integrity": "sha512-/QsNkye1mYi+2p1WPP7EwHtRw3wOVHqzlfGnEftYQMMrSVN63j8cMJ/tHR967O88Y9BJf1aDvNObj8I6SVxSiw==", + "dependencies": { + "@expo/config-plugins": "^5.0.1", + "stacktrace-js": "^2.0.0" + }, + "peerDependencies": { + "@react-native-firebase/app": "16.0.0" + } + }, "node_modules/@react-native-picker/picker": { "version": "2.4.8", "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.8.tgz", @@ -3937,6 +4236,14 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@xmldom/xmldom": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.6.tgz", + "integrity": "sha512-HHXP9hskkFQHy8QxxUXkS7946FFIhYVfGqsk0WLwllmexN9x/+R4UBLvurHEuyXRfVEObVR8APuQehykLviwSQ==", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -6837,6 +7144,17 @@ "node": ">=0.10.0" } }, + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -7025,6 +7343,14 @@ "node": ">=0.10.0" } }, + "node_modules/getenv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", + "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", + "engines": { + "node": ">=6" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -9930,7 +10256,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -10553,6 +10878,34 @@ "node": ">=0.10.0" } }, + "node_modules/mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==", + "dependencies": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-object/node_modules/for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-object/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==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -11056,6 +11409,14 @@ "node": ">=4" } }, + "node_modules/opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", + "bin": { + "opencollective-postinstall": "index.js" + } + }, "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -12319,7 +12680,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, "engines": { "node": ">=8" } @@ -13298,6 +13658,14 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, + "node_modules/stack-generator": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", + "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", + "dependencies": { + "stackframe": "^1.3.4" + } + }, "node_modules/stack-utils": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", @@ -13324,6 +13692,33 @@ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, + "node_modules/stacktrace-gps": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz", + "integrity": "sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==", + "dependencies": { + "source-map": "0.5.6", + "stackframe": "^1.3.4" + } + }, + "node_modules/stacktrace-gps/node_modules/source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stacktrace-js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz", + "integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==", + "dependencies": { + "error-stack-parser": "^2.0.6", + "stack-generator": "^2.0.5", + "stacktrace-gps": "^3.0.4" + } + }, "node_modules/stacktrace-parser": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", @@ -13581,22 +13976,74 @@ "node": ">=6" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==" + }, + "node_modules/superstruct": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.6.2.tgz", + "integrity": "sha512-lvA97MFAJng3rfjcafT/zGTSWm6Tbpk++DP6It4Qg7oNaeM+2tdJMuVgGje21/bIpBEs6iQql1PJH6dKTjl4Ig==", + "dependencies": { + "clone-deep": "^2.0.1", + "kind-of": "^6.0.1" + } + }, + "node_modules/superstruct/node_modules/clone-deep": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", + "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", + "dependencies": { + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/superstruct/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/superstruct/node_modules/shallow-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", + "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", + "dependencies": { + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=0.10.0" } }, - "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==" + "node_modules/superstruct/node_modules/shallow-clone/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } }, "node_modules/supports-color": { "version": "5.5.0", @@ -14598,6 +15045,26 @@ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xml2js/node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, "node_modules/xmlbuilder": { "version": "15.1.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", @@ -14636,8 +15103,7 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { "version": "15.4.1", @@ -14671,6 +15137,17 @@ "engines": { "node": ">=6" } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } }, "dependencies": { @@ -15953,6 +16430,211 @@ } } }, + "@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==", + "requires": { + "@expo/config-types": "^46.0.0", + "@expo/json-file": "8.2.36", + "@expo/plist": "0.0.18", + "@expo/sdk-runtime-versions": "^1.0.0", + "@react-native/normalize-color": "^2.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.1", + "find-up": "~5.0.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "resolve-from": "^5.0.0", + "semver": "^7.3.5", + "slash": "^3.0.0", + "xcode": "^3.0.1", + "xml2js": "0.4.23" + }, + "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" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==" + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "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==", + "requires": { + "p-limit": "^3.0.2" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "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": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" + }, + "xcode": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", + "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", + "requires": { + "simple-plist": "^1.1.0", + "uuid": "^7.0.3" + } + } + } + }, + "@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==" + }, + "@expo/json-file": { + "version": "8.2.36", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz", + "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==", + "requires": { + "@babel/code-frame": "~7.10.4", + "json5": "^1.0.1", + "write-file-atomic": "^2.3.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "write-file-atomic": { + "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==", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + } + } + }, + "@expo/plist": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz", + "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==", + "requires": { + "@xmldom/xmldom": "~0.7.0", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" + }, + "dependencies": { + "xmlbuilder": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-14.0.0.tgz", + "integrity": "sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==" + } + } + }, + "@expo/sdk-runtime-versions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", + "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==" + }, "@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -17086,6 +17768,25 @@ "integrity": "sha512-o6aam+0Ug1xGK3ABYmBm0B1YuEKfM/5kaoZO0eHbZwSpw9UzDX4G5y4Nx/K20FHqUmJHkZmLvOUFYwN4N+HqKA==", "dev": true }, + "@react-native-firebase/app": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@react-native-firebase/app/-/app-16.0.0.tgz", + "integrity": "sha512-aetICzDF9XbBdGEY4tIKkA1sbWVz6l6TYv3JhreloQfEAFtq1UKvznudtrj3IdK0vVDnZlfIZDW96HVIv10wTw==", + "requires": { + "@expo/config-plugins": "^5.0.1", + "opencollective-postinstall": "^2.0.1", + "superstruct": "^0.6.2" + } + }, + "@react-native-firebase/crashlytics": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@react-native-firebase/crashlytics/-/crashlytics-16.0.0.tgz", + "integrity": "sha512-/QsNkye1mYi+2p1WPP7EwHtRw3wOVHqzlfGnEftYQMMrSVN63j8cMJ/tHR967O88Y9BJf1aDvNObj8I6SVxSiw==", + "requires": { + "@expo/config-plugins": "^5.0.1", + "stacktrace-js": "^2.0.0" + } + }, "@react-native-picker/picker": { "version": "2.4.8", "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.8.tgz", @@ -17523,6 +18224,11 @@ "eslint-visitor-keys": "^1.1.0" } }, + "@xmldom/xmldom": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.6.tgz", + "integrity": "sha512-HHXP9hskkFQHy8QxxUXkS7946FFIhYVfGqsk0WLwllmexN9x/+R4UBLvurHEuyXRfVEObVR8APuQehykLviwSQ==" + }, "abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -19739,6 +20445,14 @@ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==" }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "requires": { + "for-in": "^1.0.1" + } + }, "form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -19869,6 +20583,11 @@ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==" }, + "getenv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", + "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==" + }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -22046,7 +22765,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "requires": { "yallist": "^4.0.0" } @@ -22579,6 +23297,27 @@ "is-extendable": "^1.0.1" } }, + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==", + "requires": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==" + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" + } + } + }, "mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -22962,6 +23701,11 @@ } } }, + "opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" + }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -23916,8 +24660,7 @@ "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, "resolve-url": { "version": "0.2.1", @@ -24710,6 +25453,14 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, + "stack-generator": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", + "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", + "requires": { + "stackframe": "^1.3.4" + } + }, "stack-utils": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", @@ -24732,6 +25483,32 @@ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, + "stacktrace-gps": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz", + "integrity": "sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==", + "requires": { + "source-map": "0.5.6", + "stackframe": "^1.3.4" + }, + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==" + } + } + }, + "stacktrace-js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz", + "integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==", + "requires": { + "error-stack-parser": "^2.0.6", + "stack-generator": "^2.0.5", + "stacktrace-gps": "^3.0.4" + } + }, "stacktrace-parser": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", @@ -24941,6 +25718,50 @@ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz", "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==" }, + "superstruct": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.6.2.tgz", + "integrity": "sha512-lvA97MFAJng3rfjcafT/zGTSWm6Tbpk++DP6It4Qg7oNaeM+2tdJMuVgGje21/bIpBEs6iQql1PJH6dKTjl4Ig==", + "requires": { + "clone-deep": "^2.0.1", + "kind-of": "^6.0.1" + }, + "dependencies": { + "clone-deep": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", + "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", + "requires": { + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.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==" + }, + "shallow-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", + "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", + "requires": { + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + } + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -25700,6 +26521,22 @@ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "dependencies": { + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + } + } + }, "xmlbuilder": { "version": "15.1.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", @@ -25732,8 +26569,7 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { "version": "15.4.1", @@ -25761,6 +26597,11 @@ "camelcase": "^5.0.0", "decamelize": "^1.2.0" } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" } } } diff --git a/example/package.json b/example/package.json index eb7023e74..18e1d154e 100644 --- a/example/package.json +++ b/example/package.json @@ -13,6 +13,8 @@ "dependencies": { "@miblanchard/react-native-slider": "^2.0.2", "@react-native-camera-roll/camera-roll": "^5.0.2", + "@react-native-firebase/app": "^16.0.0", + "@react-native-firebase/crashlytics": "^16.0.0", "@react-native-picker/picker": "^2.0.0", "@react-native/normalize-color": "^2.0.0", "@react-navigation/native": "^6.0.8", From 4db260eda20404ef4b9f60111a55346c6eadad41 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Thu, 20 Oct 2022 13:43:55 +0530 Subject: [PATCH 51/84] updated log settings --- android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt b/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt index b0fd68dfe..be307087d 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt @@ -9,6 +9,7 @@ import kotlinx.coroutines.launch import live.hms.video.audio.HMSAudioManager import live.hms.video.connection.stats.* import live.hms.video.error.HMSException +import live.hms.video.media.settings.HMSLogSettings import live.hms.video.media.tracks.* import live.hms.video.sdk.* import live.hms.video.sdk.models.* @@ -17,7 +18,9 @@ import live.hms.video.sdk.models.enums.HMSPeerUpdate import live.hms.video.sdk.models.enums.HMSRoomUpdate import live.hms.video.sdk.models.enums.HMSTrackUpdate import live.hms.video.sdk.models.trackchangerequest.HMSChangeTrackStateRequest +import live.hms.video.services.LogAlarmManager import live.hms.video.utils.HMSCoroutineScope +import live.hms.video.utils.HMSLogger import live.hms.video.utils.HmsUtilities class HMSRNSDK( @@ -44,7 +47,7 @@ class HMSRNSDK( init { val trackSettings = HMSHelper.getTrackSettings(data?.getMap("trackSettings")) val frameworkInfo = HMSHelper.getFrameworkInfo(data?.getMap("frameworkInfo")) - val logSettings = HMSLogSettings(maxDirSizeInBytes: LogAlarmManager.DEFAULT_DIR_SIZE, isLogStorageEnabled: true, level: HMSLogger.LogLevel.VERBOSE) + val logSettings = HMSLogSettings(maxDirSizeInBytes = LogAlarmManager.DEFAULT_DIR_SIZE, isLogStorageEnabled = true, level = HMSLogger.LogLevel.VERBOSE) // TODO: Cleanup builders if (trackSettings == null) { this.hmsSDK = HMSSDK.Builder(reactApplicationContext).setLogSettings(logSettings).build() From 36299b21e8f192453ccae10b1ea4dda34bc0d5b1 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Thu, 20 Oct 2022 13:49:33 +0530 Subject: [PATCH 52/84] updated settings label name --- example/src/screens/Welcome/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/src/screens/Welcome/index.tsx b/example/src/screens/Welcome/index.tsx index cbd26fd92..19924ac56 100644 --- a/example/src/screens/Welcome/index.tsx +++ b/example/src/screens/Welcome/index.tsx @@ -431,7 +431,7 @@ const Welcome = () => { }}> {forceSoftwareDecoder ? ( - Disable software encoder + Disable Software Decoder ) : ( From fa748c1b3c5ebbc962bf3fd98e9978bb78eb8303 Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Thu, 20 Oct 2022 14:53:50 +0530 Subject: [PATCH 53/84] feat: show localPeer tile --- .../screens/MeetingScreen/DisplayTrack.tsx | 12 +++++---- example/src/screens/MeetingScreen/styles.ts | 2 +- example/src/screens/Welcome/index.tsx | 25 ++++++------------- 3 files changed, 16 insertions(+), 23 deletions(-) diff --git a/example/src/screens/MeetingScreen/DisplayTrack.tsx b/example/src/screens/MeetingScreen/DisplayTrack.tsx index abef1df75..f2b291ab3 100644 --- a/example/src/screens/MeetingScreen/DisplayTrack.tsx +++ b/example/src/screens/MeetingScreen/DisplayTrack.tsx @@ -39,7 +39,7 @@ const DisplayTrack = ({ ); // useState hook - const [isDegraded, setIsDegraded] = useState(false); + const [isDegraded, setIsDegraded] = useState(videoTrack?.isDegraded); // constants const HmsView = hmsInstance?.HmsView; @@ -54,7 +54,7 @@ const DisplayTrack = ({ // useEffect hook useEffect(() => { - setIsDegraded(videoTrack?.isDegraded || false); + setIsDegraded(videoTrack?.isDegraded); }, [videoTrack?.isDegraded]); return HmsView ? ( @@ -78,7 +78,9 @@ const DisplayTrack = ({ textStyle={styles.roleChangeModalButtonText} /> - ) : videoTrack?.isMute() || videoTrack?.trackId === undefined ? ( + ) : videoTrack?.isMute() || + videoTrack?.trackId === undefined || + isDegraded ? ( // ) : isVideoMute || layout === LayoutParams.AUDIO ? ( @@ -108,13 +110,13 @@ const DisplayTrack = ({ : styles.hmsView } /> - {isDegraded && ( + {/* {isDegraded && ( Degraded - )} + )} */} )} diff --git a/example/src/screens/MeetingScreen/styles.ts b/example/src/screens/MeetingScreen/styles.ts index d6de654c6..4fe4cda8d 100644 --- a/example/src/screens/MeetingScreen/styles.ts +++ b/example/src/screens/MeetingScreen/styles.ts @@ -489,7 +489,7 @@ const styles = StyleSheet.create({ borderColor: COLORS.BORDER.ACCENT, borderWidth: 2, borderRadius: 30, - marginLeft: 12, + marginLeft: 2, height: 30, paddingHorizontal: 6, }, diff --git a/example/src/screens/Welcome/index.tsx b/example/src/screens/Welcome/index.tsx index 19924ac56..7f52741f2 100644 --- a/example/src/screens/Welcome/index.tsx +++ b/example/src/screens/Welcome/index.tsx @@ -13,7 +13,6 @@ import { HMSSDK, HMSTrack, HMSTrackSettings, - HMSTrackSource, HMSTrackUpdate, HMSUpdateListenerActions, HMSVideoCodec, @@ -119,22 +118,14 @@ const Welcome = () => { room: HMSRoom; }, ) => { - if (Platform.OS === 'ios') { - await hmsInstance?.getLocalPeer().then(localPeer => { - const hmsLocalPeer = { - id: localPeer.peerID + HMSTrackSource.REGULAR, - peer: localPeer, - track: localPeer.videoTrack, - }; - dispatch( - setPeerState({ - peerState: [hmsLocalPeer, ...peerTrackNodesRef?.current], - }), - ); - }); - } else { - dispatch(setPeerState({peerState: peerTrackNodesRef?.current})); - } + await hmsInstance?.getLocalPeer().then(localPeer => { + const newPeerTrackNodes = updatePeersTrackNodesOnPeerListener( + peerTrackNodesRef?.current, + localPeer, + HMSPeerUpdate.PEER_JOINED, + ); + dispatch(setPeerState({peerState: newPeerTrackNodes})); + }); hmsInstance?.getRoles().then(roles => { dispatch( saveUserData({ From 9f1c61fa0fcf73666cc7712d720a0e668a73bc11 Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Thu, 20 Oct 2022 15:16:53 +0530 Subject: [PATCH 54/84] feat: degraded tile fixes --- android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt | 6 ++---- example/src/screens/MeetingScreen/DisplayTrack.tsx | 8 +++----- example/src/screens/Welcome/index.tsx | 4 ++-- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt b/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt index be307087d..a7c7d2023 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt @@ -48,12 +48,10 @@ class HMSRNSDK( val trackSettings = HMSHelper.getTrackSettings(data?.getMap("trackSettings")) val frameworkInfo = HMSHelper.getFrameworkInfo(data?.getMap("frameworkInfo")) val logSettings = HMSLogSettings(maxDirSizeInBytes = LogAlarmManager.DEFAULT_DIR_SIZE, isLogStorageEnabled = true, level = HMSLogger.LogLevel.VERBOSE) - // TODO: Cleanup builders if (trackSettings == null) { - this.hmsSDK = HMSSDK.Builder(reactApplicationContext).setLogSettings(logSettings).build() + this.hmsSDK = HMSSDK.Builder(reactApplicationContext).setFrameworkInfo(frameworkInfo).setLogSettings(logSettings).build() } else { - this.hmsSDK = HMSSDK.Builder(reactApplicationContext).setTrackSettings(trackSettings).setLogSettings(logSettings).build() -// this.hmsSDK = HMSSDK.Builder(reactApplicationContext).setFrameworkInfo(frameworkInfo).setLogSettings(logSettings).build() + this.hmsSDK = HMSSDK.Builder(reactApplicationContext).setTrackSettings(trackSettings).setFrameworkInfo(frameworkInfo).setLogSettings(logSettings).build() } } diff --git a/example/src/screens/MeetingScreen/DisplayTrack.tsx b/example/src/screens/MeetingScreen/DisplayTrack.tsx index f2b291ab3..c6db54ab4 100644 --- a/example/src/screens/MeetingScreen/DisplayTrack.tsx +++ b/example/src/screens/MeetingScreen/DisplayTrack.tsx @@ -78,9 +78,7 @@ const DisplayTrack = ({ textStyle={styles.roleChangeModalButtonText} /> - ) : videoTrack?.isMute() || - videoTrack?.trackId === undefined || - isDegraded ? ( + ) : videoTrack?.isMute() || videoTrack?.trackId === undefined ? ( // ) : isVideoMute || layout === LayoutParams.AUDIO ? ( @@ -110,13 +108,13 @@ const DisplayTrack = ({ : styles.hmsView } /> - {/* {isDegraded && ( + {isDegraded && ( Degraded - )} */} + )} )} diff --git a/example/src/screens/Welcome/index.tsx b/example/src/screens/Welcome/index.tsx index 7f52741f2..605aac27a 100644 --- a/example/src/screens/Welcome/index.tsx +++ b/example/src/screens/Welcome/index.tsx @@ -422,11 +422,11 @@ const Welcome = () => { }}> {forceSoftwareDecoder ? ( - Disable Software Decoder + Disable software decoder ) : ( - Enable software encoder + Enable software decoder )} From 58b3f5abb2916bbd934cb4917ef9b758955d7cbd Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Thu, 20 Oct 2022 16:25:18 +0530 Subject: [PATCH 55/84] feat: removed firebase from android --- example/android/app/build.gradle | 8 +- example/android/build.gradle | 2 - example/package-lock.json | 897 +------------------------------ example/package.json | 2 - 4 files changed, 29 insertions(+), 880 deletions(-) diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 87658f0aa..2dc7e850b 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -1,6 +1,4 @@ apply plugin: "com.android.application" -apply plugin: 'com.google.gms.google-services' // apply after this line -apply plugin: 'com.google.firebase.crashlytics' import com.android.build.OutputFile /** @@ -167,11 +165,7 @@ android { shrinkResources true minifyEnabled true signingConfig signingConfigs.debug - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" - firebaseCrashlytics { - nativeSymbolUploadEnabled true - unstrippedNativeLibsDir 'build/intermediates/merged_native_libs/release/out/lib' - } + proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } } diff --git a/example/android/build.gradle b/example/android/build.gradle index d51865f35..c74b01245 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -13,8 +13,6 @@ buildscript { } dependencies { classpath('com.android.tools.build:gradle:4.2.2') - classpath 'com.google.gms:google-services:4.3.14' - classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/example/package-lock.json b/example/package-lock.json index 057bd6789..7417aa92f 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -10,8 +10,6 @@ "dependencies": { "@miblanchard/react-native-slider": "^2.0.2", "@react-native-camera-roll/camera-roll": "^5.0.2", - "@react-native-firebase/app": "^16.0.0", - "@react-native-firebase/crashlytics": "^16.0.0", "@react-native-picker/picker": "^2.0.0", "@react-native/normalize-color": "^2.0.0", "@react-navigation/native": "^6.0.8", @@ -1952,277 +1950,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", - "dependencies": { - "@expo/config-types": "^46.0.0", - "@expo/json-file": "8.2.36", - "@expo/plist": "0.0.18", - "@expo/sdk-runtime-versions": "^1.0.0", - "@react-native/normalize-color": "^2.0.0", - "chalk": "^4.1.2", - "debug": "^4.3.1", - "find-up": "~5.0.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "resolve-from": "^5.0.0", - "semver": "^7.3.5", - "slash": "^3.0.0", - "xcode": "^3.0.1", - "xml2js": "0.4.23" - } - }, - "node_modules/@expo/config-plugins/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/@expo/config-plugins/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@expo/config-plugins/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/@expo/config-plugins/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/@expo/config-plugins/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@expo/config-plugins/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@expo/config-plugins/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@expo/config-plugins/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@expo/config-plugins/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@expo/config-plugins/node_modules/p-locate": { - "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==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@expo/config-plugins/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@expo/config-plugins/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/@expo/config-plugins/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@expo/config-plugins/node_modules/uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@expo/config-plugins/node_modules/xcode": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", - "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", - "dependencies": { - "simple-plist": "^1.1.0", - "uuid": "^7.0.3" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "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==" - }, - "node_modules/@expo/json-file": { - "version": "8.2.36", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz", - "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==", - "dependencies": { - "@babel/code-frame": "~7.10.4", - "json5": "^1.0.1", - "write-file-atomic": "^2.3.0" - } - }, - "node_modules/@expo/json-file/node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "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==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/@expo/json-file/node_modules/write-file-atomic": { - "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==", - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "node_modules/@expo/plist": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz", - "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==", - "dependencies": { - "@xmldom/xmldom": "~0.7.0", - "base64-js": "^1.2.3", - "xmlbuilder": "^14.0.0" - } - }, - "node_modules/@expo/plist/node_modules/xmlbuilder": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-14.0.0.tgz", - "integrity": "sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==", - "engines": { - "node": ">=8.0" - } - }, - "node_modules/@expo/sdk-runtime-versions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", - "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==" - }, "node_modules/@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -3675,32 +3402,6 @@ "integrity": "sha512-o6aam+0Ug1xGK3ABYmBm0B1YuEKfM/5kaoZO0eHbZwSpw9UzDX4G5y4Nx/K20FHqUmJHkZmLvOUFYwN4N+HqKA==", "dev": true }, - "node_modules/@react-native-firebase/app": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@react-native-firebase/app/-/app-16.0.0.tgz", - "integrity": "sha512-aetICzDF9XbBdGEY4tIKkA1sbWVz6l6TYv3JhreloQfEAFtq1UKvznudtrj3IdK0vVDnZlfIZDW96HVIv10wTw==", - "dependencies": { - "@expo/config-plugins": "^5.0.1", - "opencollective-postinstall": "^2.0.1", - "superstruct": "^0.6.2" - }, - "peerDependencies": { - "react": "*", - "react-native": "*" - } - }, - "node_modules/@react-native-firebase/crashlytics": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@react-native-firebase/crashlytics/-/crashlytics-16.0.0.tgz", - "integrity": "sha512-/QsNkye1mYi+2p1WPP7EwHtRw3wOVHqzlfGnEftYQMMrSVN63j8cMJ/tHR967O88Y9BJf1aDvNObj8I6SVxSiw==", - "dependencies": { - "@expo/config-plugins": "^5.0.1", - "stacktrace-js": "^2.0.0" - }, - "peerDependencies": { - "@react-native-firebase/app": "16.0.0" - } - }, "node_modules/@react-native-picker/picker": { "version": "2.4.8", "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.8.tgz", @@ -4236,14 +3937,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@xmldom/xmldom": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.6.tgz", - "integrity": "sha512-HHXP9hskkFQHy8QxxUXkS7946FFIhYVfGqsk0WLwllmexN9x/+R4UBLvurHEuyXRfVEObVR8APuQehykLviwSQ==", - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -7144,17 +6837,6 @@ "node": ">=0.10.0" } }, - "node_modules/for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -7343,14 +7025,6 @@ "node": ">=0.10.0" } }, - "node_modules/getenv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", - "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", - "engines": { - "node": ">=6" - } - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -10256,6 +9930,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -10878,34 +10553,6 @@ "node": ">=0.10.0" } }, - "node_modules/mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==", - "dependencies": { - "for-in": "^0.1.3", - "is-extendable": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-object/node_modules/for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-object/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==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -11409,14 +11056,6 @@ "node": ">=4" } }, - "node_modules/opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", - "bin": { - "opencollective-postinstall": "index.js" - } - }, "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -12680,6 +12319,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, "engines": { "node": ">=8" } @@ -13658,14 +13298,6 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, - "node_modules/stack-generator": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", - "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", - "dependencies": { - "stackframe": "^1.3.4" - } - }, "node_modules/stack-utils": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", @@ -13692,33 +13324,6 @@ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, - "node_modules/stacktrace-gps": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz", - "integrity": "sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==", - "dependencies": { - "source-map": "0.5.6", - "stackframe": "^1.3.4" - } - }, - "node_modules/stacktrace-gps/node_modules/source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stacktrace-js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz", - "integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==", - "dependencies": { - "error-stack-parser": "^2.0.6", - "stack-generator": "^2.0.5", - "stacktrace-gps": "^3.0.4" - } - }, "node_modules/stacktrace-parser": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", @@ -13968,83 +13573,31 @@ } }, "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==" - }, - "node_modules/superstruct": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.6.2.tgz", - "integrity": "sha512-lvA97MFAJng3rfjcafT/zGTSWm6Tbpk++DP6It4Qg7oNaeM+2tdJMuVgGje21/bIpBEs6iQql1PJH6dKTjl4Ig==", - "dependencies": { - "clone-deep": "^2.0.1", - "kind-of": "^6.0.1" - } - }, - "node_modules/superstruct/node_modules/clone-deep": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", - "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", - "dependencies": { - "for-own": "^1.0.0", - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.0", - "shallow-clone": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/superstruct/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/superstruct/node_modules/shallow-clone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", - "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", - "dependencies": { - "is-extendable": "^0.1.1", - "kind-of": "^5.0.0", - "mixin-object": "^2.0.1" - }, + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/superstruct/node_modules/shallow-clone/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, + "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==" + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -15045,26 +14598,6 @@ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xml2js/node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "engines": { - "node": ">=4.0" - } - }, "node_modules/xmlbuilder": { "version": "15.1.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", @@ -15103,7 +14636,8 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/yargs": { "version": "15.4.1", @@ -15137,17 +14671,6 @@ "engines": { "node": ">=6" } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } } }, "dependencies": { @@ -16430,211 +15953,6 @@ } } }, - "@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==", - "requires": { - "@expo/config-types": "^46.0.0", - "@expo/json-file": "8.2.36", - "@expo/plist": "0.0.18", - "@expo/sdk-runtime-versions": "^1.0.0", - "@react-native/normalize-color": "^2.0.0", - "chalk": "^4.1.2", - "debug": "^4.3.1", - "find-up": "~5.0.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "resolve-from": "^5.0.0", - "semver": "^7.3.5", - "slash": "^3.0.0", - "xcode": "^3.0.1", - "xml2js": "0.4.23" - }, - "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" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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==" - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "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==", - "requires": { - "p-limit": "^3.0.2" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "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": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" - }, - "xcode": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", - "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", - "requires": { - "simple-plist": "^1.1.0", - "uuid": "^7.0.3" - } - } - } - }, - "@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==" - }, - "@expo/json-file": { - "version": "8.2.36", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz", - "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==", - "requires": { - "@babel/code-frame": "~7.10.4", - "json5": "^1.0.1", - "write-file-atomic": "^2.3.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "write-file-atomic": { - "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==", - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - } - } - }, - "@expo/plist": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz", - "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==", - "requires": { - "@xmldom/xmldom": "~0.7.0", - "base64-js": "^1.2.3", - "xmlbuilder": "^14.0.0" - }, - "dependencies": { - "xmlbuilder": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-14.0.0.tgz", - "integrity": "sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==" - } - } - }, - "@expo/sdk-runtime-versions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", - "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==" - }, "@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -17768,25 +17086,6 @@ "integrity": "sha512-o6aam+0Ug1xGK3ABYmBm0B1YuEKfM/5kaoZO0eHbZwSpw9UzDX4G5y4Nx/K20FHqUmJHkZmLvOUFYwN4N+HqKA==", "dev": true }, - "@react-native-firebase/app": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@react-native-firebase/app/-/app-16.0.0.tgz", - "integrity": "sha512-aetICzDF9XbBdGEY4tIKkA1sbWVz6l6TYv3JhreloQfEAFtq1UKvznudtrj3IdK0vVDnZlfIZDW96HVIv10wTw==", - "requires": { - "@expo/config-plugins": "^5.0.1", - "opencollective-postinstall": "^2.0.1", - "superstruct": "^0.6.2" - } - }, - "@react-native-firebase/crashlytics": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@react-native-firebase/crashlytics/-/crashlytics-16.0.0.tgz", - "integrity": "sha512-/QsNkye1mYi+2p1WPP7EwHtRw3wOVHqzlfGnEftYQMMrSVN63j8cMJ/tHR967O88Y9BJf1aDvNObj8I6SVxSiw==", - "requires": { - "@expo/config-plugins": "^5.0.1", - "stacktrace-js": "^2.0.0" - } - }, "@react-native-picker/picker": { "version": "2.4.8", "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.8.tgz", @@ -18224,11 +17523,6 @@ "eslint-visitor-keys": "^1.1.0" } }, - "@xmldom/xmldom": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.6.tgz", - "integrity": "sha512-HHXP9hskkFQHy8QxxUXkS7946FFIhYVfGqsk0WLwllmexN9x/+R4UBLvurHEuyXRfVEObVR8APuQehykLviwSQ==" - }, "abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -20445,14 +19739,6 @@ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==" }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", - "requires": { - "for-in": "^1.0.1" - } - }, "form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -20583,11 +19869,6 @@ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==" }, - "getenv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", - "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==" - }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -22765,6 +22046,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "requires": { "yallist": "^4.0.0" } @@ -23297,27 +22579,6 @@ "is-extendable": "^1.0.1" } }, - "mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==", - "requires": { - "for-in": "^0.1.3", - "is-extendable": "^0.1.1" - }, - "dependencies": { - "for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==" - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" - } - } - }, "mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -23701,11 +22962,6 @@ } } }, - "opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" - }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -24660,7 +23916,8 @@ "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true }, "resolve-url": { "version": "0.2.1", @@ -25453,14 +24710,6 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, - "stack-generator": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", - "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", - "requires": { - "stackframe": "^1.3.4" - } - }, "stack-utils": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", @@ -25483,32 +24732,6 @@ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, - "stacktrace-gps": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz", - "integrity": "sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==", - "requires": { - "source-map": "0.5.6", - "stackframe": "^1.3.4" - }, - "dependencies": { - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==" - } - } - }, - "stacktrace-js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz", - "integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==", - "requires": { - "error-stack-parser": "^2.0.6", - "stack-generator": "^2.0.5", - "stacktrace-gps": "^3.0.4" - } - }, "stacktrace-parser": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", @@ -25718,50 +24941,6 @@ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz", "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==" }, - "superstruct": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.6.2.tgz", - "integrity": "sha512-lvA97MFAJng3rfjcafT/zGTSWm6Tbpk++DP6It4Qg7oNaeM+2tdJMuVgGje21/bIpBEs6iQql1PJH6dKTjl4Ig==", - "requires": { - "clone-deep": "^2.0.1", - "kind-of": "^6.0.1" - }, - "dependencies": { - "clone-deep": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", - "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", - "requires": { - "for-own": "^1.0.0", - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.0", - "shallow-clone": "^1.0.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==" - }, - "shallow-clone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", - "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", - "requires": { - "is-extendable": "^0.1.1", - "kind-of": "^5.0.0", - "mixin-object": "^2.0.1" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - } - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -26521,22 +25700,6 @@ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "dependencies": { - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - } - } - }, "xmlbuilder": { "version": "15.1.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", @@ -26569,7 +25732,8 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "yargs": { "version": "15.4.1", @@ -26597,11 +25761,6 @@ "camelcase": "^5.0.0", "decamelize": "^1.2.0" } - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" } } } diff --git a/example/package.json b/example/package.json index 18e1d154e..eb7023e74 100644 --- a/example/package.json +++ b/example/package.json @@ -13,8 +13,6 @@ "dependencies": { "@miblanchard/react-native-slider": "^2.0.2", "@react-native-camera-roll/camera-roll": "^5.0.2", - "@react-native-firebase/app": "^16.0.0", - "@react-native-firebase/crashlytics": "^16.0.0", "@react-native-picker/picker": "^2.0.0", "@react-native/normalize-color": "^2.0.0", "@react-navigation/native": "^6.0.8", From 54e47e5a713d185fdecfa63239e9187d00b1c91e Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Thu, 20 Oct 2022 17:36:43 +0530 Subject: [PATCH 56/84] =?UTF-8?q?released=20sample=20app=20version=202.0.1?= =?UTF-8?q?4=20(119)=20=E2=9A=9B=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/android/app/build.gradle | 4 ++-- example/ios/RNHMSExample.xcodeproj/project.pbxproj | 8 ++++---- example/ios/RNHMSExample/Info.plist | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 2dc7e850b..b465bcc03 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -135,8 +135,8 @@ android { applicationId "live.hms.rn" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 117 - versionName "2.0.12" + versionCode 119 + versionName "2.0.14" missingDimensionStrategy 'react-native-camera', 'general' } splits { diff --git a/example/ios/RNHMSExample.xcodeproj/project.pbxproj b/example/ios/RNHMSExample.xcodeproj/project.pbxproj index 8ba906ce5..63d4512ea 100644 --- a/example/ios/RNHMSExample.xcodeproj/project.pbxproj +++ b/example/ios/RNHMSExample.xcodeproj/project.pbxproj @@ -622,7 +622,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 117; + CURRENT_PROJECT_VERSION = 119; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -663,7 +663,7 @@ CODE_SIGN_ENTITLEMENTS = RNHMSExample/RNHMSExample.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 117; + CURRENT_PROJECT_VERSION = 119; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -830,7 +830,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 117; + CURRENT_PROJECT_VERSION = 119; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = 5N85PP82A9; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -874,7 +874,7 @@ CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 117; + CURRENT_PROJECT_VERSION = 119; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = 5N85PP82A9; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; diff --git a/example/ios/RNHMSExample/Info.plist b/example/ios/RNHMSExample/Info.plist index aa8f412e6..1b1e1accb 100644 --- a/example/ios/RNHMSExample/Info.plist +++ b/example/ios/RNHMSExample/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.0.12 + 2.0.14 CFBundleSignature ???? CFBundleVersion - 117 + 119 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS From 1e4802b2794c63048c40d28191d31654360c6529 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Thu, 20 Oct 2022 17:37:13 +0530 Subject: [PATCH 57/84] updated packages --- example/android/Gemfile.lock | 6 +- example/ios/Gemfile.lock | 6 +- example/package-lock.json | 240 ++++++++++++++++----------------- package-lock.json | 252 +++++++++++++++++------------------ 4 files changed, 244 insertions(+), 260 deletions(-) diff --git a/example/android/Gemfile.lock b/example/android/Gemfile.lock index ed4adceab..7e28d39f6 100644 --- a/example/android/Gemfile.lock +++ b/example/android/Gemfile.lock @@ -8,8 +8,8 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.647.0) - aws-sdk-core (3.161.0) + aws-partitions (1.648.0) + aws-sdk-core (3.162.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) @@ -17,7 +17,7 @@ GEM aws-sdk-kms (1.58.0) aws-sdk-core (~> 3, >= 3.127.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.114.0) + aws-sdk-s3 (1.115.0) aws-sdk-core (~> 3, >= 3.127.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.4) diff --git a/example/ios/Gemfile.lock b/example/ios/Gemfile.lock index d0a6e2ee7..1579b538f 100644 --- a/example/ios/Gemfile.lock +++ b/example/ios/Gemfile.lock @@ -8,8 +8,8 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.647.0) - aws-sdk-core (3.161.0) + aws-partitions (1.648.0) + aws-sdk-core (3.162.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) @@ -17,7 +17,7 @@ GEM aws-sdk-kms (1.58.0) aws-sdk-core (~> 3, >= 3.127.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.114.0) + aws-sdk-s3 (1.115.0) aws-sdk-core (~> 3, >= 3.127.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.4) diff --git a/example/package-lock.json b/example/package-lock.json index 7417aa92f..726a12b0f 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -87,20 +87,20 @@ } }, "node_modules/@babel/core": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", - "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", + "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", + "@babel/generator": "^7.19.6", "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helpers": "^7.19.4", + "@babel/parser": "^7.19.6", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.3", - "@babel/types": "^7.19.3", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -116,9 +116,9 @@ } }, "node_modules/@babel/generator": { - "version": "7.19.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz", - "integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.6.tgz", + "integrity": "sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==", "dependencies": { "@babel/types": "^7.19.4", "@jridgewell/gen-mapping": "^0.3.2", @@ -297,18 +297,18 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", - "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", + "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-simple-access": "^7.19.4", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4" }, "engines": { "node": ">=6.9.0" @@ -465,9 +465,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", - "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz", + "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1256,14 +1256,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", - "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", "peer": true, "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1273,14 +1272,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", - "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" }, "engines": { "node": ">=6.9.0" @@ -1290,16 +1288,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz", - "integrity": "sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", "peer": true, "dependencies": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.0", + "@babel/helper-module-transforms": "^7.19.6", "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-identifier": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-validator-identifier": "^7.19.1" }, "engines": { "node": ">=6.9.0" @@ -1459,11 +1456,11 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz", - "integrity": "sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1503,9 +1500,9 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.1.tgz", - "integrity": "sha512-2nJjTUFIzBMP/f/miLxEK9vxwW/KUXsdvN4sR//TmuDhe6yU2h57WmIOE12Gng3MDP/xpjUV/ToZRdcf8Yj4fA==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", "dependencies": { "@babel/helper-module-imports": "^7.18.6", "@babel/helper-plugin-utils": "^7.19.0", @@ -1839,17 +1836,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz", - "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.6.tgz", + "integrity": "sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==", "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.4", + "@babel/generator": "^7.19.6", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.4", + "@babel/parser": "^7.19.6", "@babel/types": "^7.19.4", "debug": "^4.1.0", "globals": "^11.1.0" @@ -4419,14 +4416,6 @@ "node": ">=8" } }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dependencies": { - "object.assign": "^4.1.0" - } - }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -4772,6 +4761,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -5398,6 +5388,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, "dependencies": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -6959,6 +6950,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -7108,6 +7100,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, "dependencies": { "get-intrinsic": "^1.1.1" }, @@ -7119,6 +7112,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -10891,6 +10885,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, "engines": { "node": ">= 0.4" } @@ -10910,6 +10905,7 @@ "version": "4.1.4", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -14697,20 +14693,20 @@ "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==" }, "@babel/core": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", - "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", + "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", + "@babel/generator": "^7.19.6", "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helpers": "^7.19.4", + "@babel/parser": "^7.19.6", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.3", - "@babel/types": "^7.19.3", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -14719,9 +14715,9 @@ } }, "@babel/generator": { - "version": "7.19.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz", - "integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.6.tgz", + "integrity": "sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==", "requires": { "@babel/types": "^7.19.4", "@jridgewell/gen-mapping": "^0.3.2", @@ -14851,18 +14847,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", - "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", + "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", "requires": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-simple-access": "^7.19.4", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4" } }, "@babel/helper-optimise-call-expression": { @@ -14974,9 +14970,9 @@ } }, "@babel/parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", - "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==" + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz", + "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", @@ -15474,38 +15470,35 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", - "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", "peer": true, "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", - "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz", - "integrity": "sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", "peer": true, "requires": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.0", + "@babel/helper-module-transforms": "^7.19.6", "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-identifier": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-validator-identifier": "^7.19.1" } }, "@babel/plugin-transform-modules-umd": { @@ -15599,11 +15592,11 @@ } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz", - "integrity": "sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-regenerator": { @@ -15625,9 +15618,9 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.1.tgz", - "integrity": "sha512-2nJjTUFIzBMP/f/miLxEK9vxwW/KUXsdvN4sR//TmuDhe6yU2h57WmIOE12Gng3MDP/xpjUV/ToZRdcf8Yj4fA==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", "requires": { "@babel/helper-module-imports": "^7.18.6", "@babel/helper-plugin-utils": "^7.19.0", @@ -15870,17 +15863,17 @@ } }, "@babel/traverse": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz", - "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.6.tgz", + "integrity": "sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==", "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.4", + "@babel/generator": "^7.19.6", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.4", + "@babel/parser": "^7.19.6", "@babel/types": "^7.19.4", "debug": "^4.1.0", "globals": "^11.1.0" @@ -17883,14 +17876,6 @@ } } }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "requires": { - "object.assign": "^4.1.0" - } - }, "babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -18157,6 +18142,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -18655,6 +18641,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, "requires": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -19827,6 +19814,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -19931,6 +19919,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, "requires": { "get-intrinsic": "^1.1.1" } @@ -19938,7 +19927,8 @@ "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true }, "has-tostringtag": { "version": "1.0.0", @@ -22845,7 +22835,8 @@ "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true }, "object-visit": { "version": "1.0.1", @@ -22859,6 +22850,7 @@ "version": "4.1.4", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", diff --git a/package-lock.json b/package-lock.json index 556b63831..cfb926589 100644 --- a/package-lock.json +++ b/package-lock.json @@ -74,20 +74,20 @@ } }, "node_modules/@babel/core": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", - "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", + "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", + "@babel/generator": "^7.19.6", "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helpers": "^7.19.4", + "@babel/parser": "^7.19.6", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.3", - "@babel/types": "^7.19.3", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -111,9 +111,9 @@ } }, "node_modules/@babel/generator": { - "version": "7.19.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz", - "integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.6.tgz", + "integrity": "sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==", "dependencies": { "@babel/types": "^7.19.4", "@jridgewell/gen-mapping": "^0.3.2", @@ -295,18 +295,18 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", - "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", + "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-simple-access": "^7.19.4", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4" }, "engines": { "node": ">=6.9.0" @@ -461,9 +461,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", - "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz", + "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1235,13 +1235,12 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", - "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1251,14 +1250,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", - "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" }, "engines": { "node": ">=6.9.0" @@ -1268,15 +1266,14 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz", - "integrity": "sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", "dependencies": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.0", + "@babel/helper-module-transforms": "^7.19.6", "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-identifier": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-validator-identifier": "^7.19.1" }, "engines": { "node": ">=6.9.0" @@ -1435,12 +1432,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz", - "integrity": "sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1495,9 +1492,9 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.1.tgz", - "integrity": "sha512-2nJjTUFIzBMP/f/miLxEK9vxwW/KUXsdvN4sR//TmuDhe6yU2h57WmIOE12Gng3MDP/xpjUV/ToZRdcf8Yj4fA==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", "peer": true, "dependencies": { "@babel/helper-module-imports": "^7.18.6", @@ -1877,17 +1874,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz", - "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.6.tgz", + "integrity": "sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==", "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.4", + "@babel/generator": "^7.19.6", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.4", + "@babel/parser": "^7.19.6", "@babel/types": "^7.19.4", "debug": "^4.1.0", "globals": "^11.1.0" @@ -6251,14 +6248,6 @@ "node": ">=8" } }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dependencies": { - "object.assign": "^4.1.0" - } - }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -6789,6 +6778,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -7936,6 +7926,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, "dependencies": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -9803,6 +9794,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -10298,6 +10290,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, "dependencies": { "get-intrinsic": "^1.1.1" }, @@ -10309,6 +10302,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -15746,6 +15740,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, "engines": { "node": ">= 0.4" } @@ -15765,6 +15760,7 @@ "version": "4.1.4", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -17039,9 +17035,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==", + "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==", "peer": true, "dependencies": { "@babel/parser": "^7.14.0", @@ -20744,20 +20740,20 @@ "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==" }, "@babel/core": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", - "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", + "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", + "@babel/generator": "^7.19.6", "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helpers": "^7.19.4", + "@babel/parser": "^7.19.6", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.3", - "@babel/types": "^7.19.3", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -20773,9 +20769,9 @@ } }, "@babel/generator": { - "version": "7.19.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz", - "integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.6.tgz", + "integrity": "sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==", "requires": { "@babel/types": "^7.19.4", "@jridgewell/gen-mapping": "^0.3.2", @@ -20907,18 +20903,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", - "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", + "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", "requires": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-simple-access": "^7.19.4", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4" } }, "@babel/helper-optimise-call-expression": { @@ -21028,9 +21024,9 @@ } }, "@babel/parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", - "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==" + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz", + "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", @@ -21511,36 +21507,33 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", - "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", - "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz", - "integrity": "sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", "requires": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.0", + "@babel/helper-module-transforms": "^7.19.6", "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-identifier": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-validator-identifier": "^7.19.1" } }, "@babel/plugin-transform-modules-umd": { @@ -21633,12 +21626,12 @@ } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz", - "integrity": "sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-react-pure-annotations": { @@ -21669,9 +21662,9 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.1.tgz", - "integrity": "sha512-2nJjTUFIzBMP/f/miLxEK9vxwW/KUXsdvN4sR//TmuDhe6yU2h57WmIOE12Gng3MDP/xpjUV/ToZRdcf8Yj4fA==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", "peer": true, "requires": { "@babel/helper-module-imports": "^7.18.6", @@ -21949,17 +21942,17 @@ } }, "@babel/traverse": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz", - "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.6.tgz", + "integrity": "sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==", "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.4", + "@babel/generator": "^7.19.6", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.4", + "@babel/parser": "^7.19.6", "@babel/types": "^7.19.4", "debug": "^4.1.0", "globals": "^11.1.0" @@ -25347,14 +25340,6 @@ } } }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "requires": { - "object.assign": "^4.1.0" - } - }, "babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -25755,6 +25740,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -26651,6 +26637,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, "requires": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -28062,6 +28049,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -28451,6 +28439,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, "requires": { "get-intrinsic": "^1.1.1" } @@ -28458,7 +28447,8 @@ "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true }, "has-tostringtag": { "version": "1.0.0", @@ -32635,7 +32625,8 @@ "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true }, "object-visit": { "version": "1.0.1", @@ -32649,6 +32640,7 @@ "version": "4.1.4", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -33624,9 +33616,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==", "peer": true, "requires": { "@babel/parser": "^7.14.0", From 4653b5c1523c82d49583a6fe519023b90e43e867 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Thu, 20 Oct 2022 19:44:17 +0530 Subject: [PATCH 58/84] updated gradle settings --- .../src/main/java/com/reactnativehmssdk/HMSView.kt | 2 +- example/android/app/build.gradle | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/android/src/main/java/com/reactnativehmssdk/HMSView.kt b/android/src/main/java/com/reactnativehmssdk/HMSView.kt index dedb2be3e..c1832d036 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSView.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSView.kt @@ -31,7 +31,7 @@ class HMSView(context: ReactContext) : FrameLayout(context) { val view = inflater.inflate(R.layout.hms_view, this) surfaceView = view.findViewById(R.id.surfaceView) - surfaceView.setEnableHardwareScaler(true) + surfaceView.setEnableHardwareScaler(false) } @RequiresApi(Build.VERSION_CODES.N) diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index b465bcc03..57806c271 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -162,10 +162,15 @@ android { release { // Caution! In production, you need to generate your own keystore file. // see https://reactnative.dev/docs/signed-apk-android. - shrinkResources true - minifyEnabled true - signingConfig signingConfigs.debug - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" + shrinkResources false + + minifyEnabled false + + debuggable true + + signingConfig signingConfigs.debug + + proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } } From 4f5e22071b06f1712c807e7ac9fe16f53ff267e8 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Thu, 20 Oct 2022 20:44:40 +0530 Subject: [PATCH 59/84] =?UTF-8?q?released=20sample=20app=20version=202.0.1?= =?UTF-8?q?5=20(120)=20=E2=9A=9B=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/android/app/build.gradle | 4 ++-- example/ios/RNHMSExample.xcodeproj/project.pbxproj | 8 ++++---- example/ios/RNHMSExample/Info.plist | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 57806c271..e54713962 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -135,8 +135,8 @@ android { applicationId "live.hms.rn" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 119 - versionName "2.0.14" + versionCode 120 + versionName "2.0.15" missingDimensionStrategy 'react-native-camera', 'general' } splits { diff --git a/example/ios/RNHMSExample.xcodeproj/project.pbxproj b/example/ios/RNHMSExample.xcodeproj/project.pbxproj index 63d4512ea..9527f2859 100644 --- a/example/ios/RNHMSExample.xcodeproj/project.pbxproj +++ b/example/ios/RNHMSExample.xcodeproj/project.pbxproj @@ -622,7 +622,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 119; + CURRENT_PROJECT_VERSION = 120; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -663,7 +663,7 @@ CODE_SIGN_ENTITLEMENTS = RNHMSExample/RNHMSExample.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 119; + CURRENT_PROJECT_VERSION = 120; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -830,7 +830,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 119; + CURRENT_PROJECT_VERSION = 120; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = 5N85PP82A9; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -874,7 +874,7 @@ CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 119; + CURRENT_PROJECT_VERSION = 120; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = 5N85PP82A9; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; diff --git a/example/ios/RNHMSExample/Info.plist b/example/ios/RNHMSExample/Info.plist index 1b1e1accb..93ebba27e 100644 --- a/example/ios/RNHMSExample/Info.plist +++ b/example/ios/RNHMSExample/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.0.14 + 2.0.15 CFBundleSignature ???? CFBundleVersion - 119 + 120 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS From 5c2a5a145203d86306965688f5286fbbfcf0bf82 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Thu, 20 Oct 2022 20:44:50 +0530 Subject: [PATCH 60/84] updated gems --- example/android/Gemfile.lock | 2 +- example/ios/Gemfile.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/example/android/Gemfile.lock b/example/android/Gemfile.lock index 7e28d39f6..7cb28fa4b 100644 --- a/example/android/Gemfile.lock +++ b/example/android/Gemfile.lock @@ -36,7 +36,7 @@ GEM unf (>= 0.0.5, < 1.0.0) dotenv (2.8.1) emoji_regex (3.2.3) - excon (0.93.0) + excon (0.93.1) faraday (1.10.2) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) diff --git a/example/ios/Gemfile.lock b/example/ios/Gemfile.lock index 1579b538f..0e6b9aa12 100644 --- a/example/ios/Gemfile.lock +++ b/example/ios/Gemfile.lock @@ -36,7 +36,7 @@ GEM unf (>= 0.0.5, < 1.0.0) dotenv (2.8.1) emoji_regex (3.2.3) - excon (0.93.0) + excon (0.93.1) faraday (1.10.2) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) From 076f8ccf7db0005b32213738e1c41177e900424f Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Thu, 20 Oct 2022 21:04:42 +0530 Subject: [PATCH 61/84] fix: joining with video on iOS --- example/src/utils/functions.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/example/src/utils/functions.ts b/example/src/utils/functions.ts index ba7e138c8..459721e30 100644 --- a/example/src/utils/functions.ts +++ b/example/src/utils/functions.ts @@ -392,6 +392,7 @@ export const updatePeersTrackNodesOnPeerListener = ( newPeerTrackNode = { id: peer.peerID + HMSTrackSource.REGULAR, peer, + track: peer?.videoTrack, }; if (peer?.isLocal) { return [newPeerTrackNode, ...updatePeerTrackNodes]; From 74245710c718bd8d48eaf3f11e40121e41e00d3b Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Thu, 20 Oct 2022 21:11:45 +0530 Subject: [PATCH 62/84] fix: incorrect peer count on iOS --- example/src/screens/MeetingScreen/Modals.tsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/example/src/screens/MeetingScreen/Modals.tsx b/example/src/screens/MeetingScreen/Modals.tsx index abe155544..d044f70c9 100644 --- a/example/src/screens/MeetingScreen/Modals.tsx +++ b/example/src/screens/MeetingScreen/Modals.tsx @@ -201,10 +201,7 @@ export const ParticipantsModal = ({ useEffect(() => { let newPeerCount = 0; peerTrackNodes?.map(peerTrackNode => { - if ( - peerTrackNode.track?.source === undefined || - peerTrackNode.track?.source === HMSTrackSource.REGULAR - ) { + if (peerTrackNode.id.includes(HMSTrackSource.REGULAR)) { newPeerCount++; } }); From a517e011a54e49b2644f5e81cf206592358e2986 Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Thu, 20 Oct 2022 21:26:17 +0530 Subject: [PATCH 63/84] fix: peer count overlapping iOS --- example/src/components/DefaultModal.tsx | 6 +++--- example/src/screens/MeetingScreen/styles.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/example/src/components/DefaultModal.tsx b/example/src/components/DefaultModal.tsx index 719c67c73..5a89ad3f7 100644 --- a/example/src/components/DefaultModal.tsx +++ b/example/src/components/DefaultModal.tsx @@ -99,7 +99,7 @@ const styles = StyleSheet.create({ end: { borderTopLeftRadius: 16, borderTopRightRadius: 16, - padding: 24, + padding: 16, borderWidth: 1, borderColor: COLORS.BORDER.LIGHT, borderBottomWidth: 0, @@ -116,8 +116,8 @@ const styles = StyleSheet.create({ height: 40, width: 40, position: 'absolute', - right: 28, - top: 28, + right: 16, + top: 16, backgroundColor: COLORS.SURFACE.LIGHT, borderRadius: 40, alignItems: 'center', diff --git a/example/src/screens/MeetingScreen/styles.ts b/example/src/screens/MeetingScreen/styles.ts index 4fe4cda8d..d6de654c6 100644 --- a/example/src/screens/MeetingScreen/styles.ts +++ b/example/src/screens/MeetingScreen/styles.ts @@ -489,7 +489,7 @@ const styles = StyleSheet.create({ borderColor: COLORS.BORDER.ACCENT, borderWidth: 2, borderRadius: 30, - marginLeft: 2, + marginLeft: 12, height: 30, paddingHorizontal: 6, }, From 0dcb7449e2c2966d1caea299551b59f77411aa01 Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Thu, 20 Oct 2022 21:33:31 +0530 Subject: [PATCH 64/84] fix: force software decoder value --- .../src/main/java/com/reactnativehmssdk/HMSHelper.kt | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt b/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt index ee2be2cb2..4212a0931 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt @@ -242,12 +242,10 @@ object HMSHelper { val maxBitrate = data.getInt("maxBitrate") val maxFrameRate = data.getInt("maxFrameRate") val cameraFacing = getCameraFacing(data.getString("cameraFacing")) - val forceSoftwareDecoder = true - // TODO -// var forceSoftwareDecoder = false -// if (areAllRequiredKeysAvailable(data, arrayOf(Pair("forceSoftwareDecoder", "Boolean")))) { -// forceSoftwareDecoder = data.getBoolean("forceSoftwareDecoder") -// } + var forceSoftwareDecoder = false + if (areAllRequiredKeysAvailable(data, arrayOf(Pair("forceSoftwareDecoder", "Boolean")))) { + forceSoftwareDecoder = data.getBoolean("forceSoftwareDecoder") + } builder.codec(codec) builder.cameraFacing(cameraFacing) builder.forceSoftwareDecoder(forceSoftwareDecoder) From 42227761578ac0044bd83e20091c903c95172049 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Thu, 20 Oct 2022 22:31:10 +0530 Subject: [PATCH 65/84] =?UTF-8?q?released=20sample=20app=20version=202.0.1?= =?UTF-8?q?6=20(121)=20=E2=9A=9B=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/android/app/build.gradle | 4 ++-- example/ios/RNHMSExample.xcodeproj/project.pbxproj | 8 ++++---- example/ios/RNHMSExample/Info.plist | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index e54713962..121b9b9a6 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -135,8 +135,8 @@ android { applicationId "live.hms.rn" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 120 - versionName "2.0.15" + versionCode 121 + versionName "2.0.16" missingDimensionStrategy 'react-native-camera', 'general' } splits { diff --git a/example/ios/RNHMSExample.xcodeproj/project.pbxproj b/example/ios/RNHMSExample.xcodeproj/project.pbxproj index 9527f2859..bd6a3e45b 100644 --- a/example/ios/RNHMSExample.xcodeproj/project.pbxproj +++ b/example/ios/RNHMSExample.xcodeproj/project.pbxproj @@ -622,7 +622,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 120; + CURRENT_PROJECT_VERSION = 121; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -663,7 +663,7 @@ CODE_SIGN_ENTITLEMENTS = RNHMSExample/RNHMSExample.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 120; + CURRENT_PROJECT_VERSION = 121; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -830,7 +830,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 120; + CURRENT_PROJECT_VERSION = 121; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = 5N85PP82A9; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -874,7 +874,7 @@ CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 120; + CURRENT_PROJECT_VERSION = 121; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = 5N85PP82A9; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; diff --git a/example/ios/RNHMSExample/Info.plist b/example/ios/RNHMSExample/Info.plist index 93ebba27e..ee24f91b4 100644 --- a/example/ios/RNHMSExample/Info.plist +++ b/example/ios/RNHMSExample/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.0.15 + 2.0.16 CFBundleSignature ???? CFBundleVersion - 120 + 121 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS From c08230e2ba76eef99e9624d11ba56205c0dc68ad Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Thu, 20 Oct 2022 22:35:04 +0530 Subject: [PATCH 66/84] updated packages --- example/package-lock.json | 12 ++++++------ package-lock.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/example/package-lock.json b/example/package-lock.json index 726a12b0f..7b6d6f763 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -3641,9 +3641,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.11.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.2.tgz", - "integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==" + "version": "18.11.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.3.tgz", + "integrity": "sha512-fNjDQzzOsZeKZu5NATgXUPsaFaTxeRgFXoosrHivTl8RGeV733OLawXsGfEk9a8/tySyZUyiZ6E8LcjPFZ2y1A==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -17296,9 +17296,9 @@ "dev": true }, "@types/node": { - "version": "18.11.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.2.tgz", - "integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==" + "version": "18.11.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.3.tgz", + "integrity": "sha512-fNjDQzzOsZeKZu5NATgXUPsaFaTxeRgFXoosrHivTl8RGeV733OLawXsGfEk9a8/tySyZUyiZ6E8LcjPFZ2y1A==" }, "@types/normalize-package-data": { "version": "2.4.1", diff --git a/package-lock.json b/package-lock.json index cfb926589..f0f40f4ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5478,9 +5478,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.11.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.2.tgz", - "integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==" + "version": "18.11.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.3.tgz", + "integrity": "sha512-fNjDQzzOsZeKZu5NATgXUPsaFaTxeRgFXoosrHivTl8RGeV733OLawXsGfEk9a8/tySyZUyiZ6E8LcjPFZ2y1A==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -24774,9 +24774,9 @@ "dev": true }, "@types/node": { - "version": "18.11.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.2.tgz", - "integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==" + "version": "18.11.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.3.tgz", + "integrity": "sha512-fNjDQzzOsZeKZu5NATgXUPsaFaTxeRgFXoosrHivTl8RGeV733OLawXsGfEk9a8/tySyZUyiZ6E8LcjPFZ2y1A==" }, "@types/normalize-package-data": { "version": "2.4.1", From 3460e5e9d200fba8758a5beb2a1acb4095f6cc41 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Fri, 21 Oct 2022 13:14:02 +0530 Subject: [PATCH 67/84] updated gradle settings --- example/android/app/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 121b9b9a6..bc199df1a 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -162,11 +162,11 @@ android { release { // Caution! In production, you need to generate your own keystore file. // see https://reactnative.dev/docs/signed-apk-android. - shrinkResources false + shrinkResources true - minifyEnabled false + minifyEnabled true - debuggable true + debuggable false signingConfig signingConfigs.debug From fba524158cadec1b262bcfb5d4672a2902a79bd7 Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Fri, 21 Oct 2022 15:02:45 +0530 Subject: [PATCH 68/84] fix: message listener --- example/src/components/ChatWindow.tsx | 27 ------------ example/src/screens/MeetingScreen/index.tsx | 46 +++++++++++++++++---- 2 files changed, 38 insertions(+), 35 deletions(-) diff --git a/example/src/components/ChatWindow.tsx b/example/src/components/ChatWindow.tsx index 5c8b4dc52..12d1957f4 100644 --- a/example/src/components/ChatWindow.tsx +++ b/example/src/components/ChatWindow.tsx @@ -16,7 +16,6 @@ import { HMSRemotePeer, HMSRole, HMSSDK, - HMSUpdateListenerActions, } from '@100mslive/react-native-hms'; import Feather from 'react-native-vector-icons/Feather'; import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'; @@ -167,24 +166,6 @@ export const ChatWindow = ({localPeer}: {localPeer?: HMSLocalPeer}) => { const [showBanner, setShowBanner] = useState(true); const [text, setText] = useState(''); - // listeners - const onMessageListener = (data: HMSMessage) => { - dispatch(addMessage(data)); - // setNotification(true); - }; - - // functions - const addListener = () => { - hmsInstance?.addEventListener( - HMSUpdateListenerActions.ON_MESSAGE, - onMessageListener, - ); - }; - - const removeListener = () => { - hmsInstance?.removeEventListener(HMSUpdateListenerActions.ON_MESSAGE); - }; - const sendMessage = () => { let hmsMessageRecipient: HMSMessageRecipient; if (text.length > 0) { @@ -229,14 +210,6 @@ export const ChatWindow = ({localPeer}: {localPeer?: HMSLocalPeer}) => { scollviewRef?.current?.scrollToEnd({animated: true}); }, [messages]); - useEffect(() => { - addListener(); - return () => { - removeListener(); - }; - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [hmsInstance]); - return ( diff --git a/example/src/screens/MeetingScreen/index.tsx b/example/src/screens/MeetingScreen/index.tsx index 64fd403bc..873078f6f 100644 --- a/example/src/screens/MeetingScreen/index.tsx +++ b/example/src/screens/MeetingScreen/index.tsx @@ -5,6 +5,7 @@ import { HMSChangeTrackStateRequest, HMSException, HMSLocalPeer, + HMSMessage, HMSPeer, HMSPeerUpdate, HMSRoleChangeRequest, @@ -62,6 +63,7 @@ import { import type {RootState} from '../../redux'; import type {AppStackParamList} from '../../navigator'; import { + addMessage, clearHmsReference, clearMessageData, clearPeerData, @@ -74,6 +76,9 @@ type MeetingScreenProp = NativeStackNavigationProp< >; const Meeting = () => { + // hooks + const {hmsInstance} = useSelector((state: RootState) => state.user); + // useState hook const [room, setRoom] = useState(); const [localPeer, setLocalPeer] = useState(); @@ -81,6 +86,24 @@ const Meeting = () => { ModalTypes.DEFAULT, ); + const updateLocalPeer = () => { + hmsInstance?.getLocalPeer().then(peer => { + setLocalPeer(peer); + }); + }; + + const updateRoom = () => { + hmsInstance?.getRoom().then(hmsRoom => { + setRoom(hmsRoom); + }); + }; + + useEffect(() => { + updateLocalPeer(); + updateRoom(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + return (
{ + dispatch(addMessage(message)); + Toast.showWithGravity( + `${message.sender?.name}: ${message.message}`, + Toast.SHORT, + Toast.TOP, + ); + // setNotification(true); + }; + // functions const updateHmsInstance = (hms?: HMSSDK) => { hms?.addEventListener( @@ -334,6 +367,10 @@ const DisplayView = (data: { HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM, onRemovedFromRoomListener, ); + hmsInstance?.addEventListener( + HMSUpdateListenerActions.ON_MESSAGE, + onMessageListener, + ); // hms?.addEventListener( // HMSUpdateListenerActions.ON_SPEAKER, // onSpeakerListener, @@ -402,24 +439,17 @@ const DisplayView = (data: { data?.setModalVisible(ModalTypes.VOLUME); }; - const updateLocalPeer = () => { - hmsInstance?.getLocalPeer().then(localPeer => { - data?.setLocalPeer(localPeer); - }); - }; - // useEffect hook useEffect(() => { const callback = () => { setOrientation(isPortrait()); }; updateHmsInstance(hmsInstance); - updateLocalPeer(); callback(); Dimensions.addEventListener('change', callback); return () => { Dimensions.removeEventListener('change', callback); - // onLeavePress(); + onLeavePress(); }; // eslint-disable-next-line react-hooks/exhaustive-deps }, []); From b74cc9379a155b8b4ecc6548cc8c0a09452aee69 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Fri, 21 Oct 2022 18:49:26 +0530 Subject: [PATCH 69/84] bumped build version --- example/android/Gemfile.lock | 4 ++-- example/android/app/build.gradle | 4 ++-- example/ios/Gemfile.lock | 4 ++-- .../RNHMSExample.xcodeproj/project.pbxproj | 8 +++---- example/ios/RNHMSExample/Info.plist | 4 ++-- example/package-lock.json | 24 +++++++++---------- package-lock.json | 24 +++++++++---------- 7 files changed, 36 insertions(+), 36 deletions(-) diff --git a/example/android/Gemfile.lock b/example/android/Gemfile.lock index 7cb28fa4b..022890b87 100644 --- a/example/android/Gemfile.lock +++ b/example/android/Gemfile.lock @@ -8,8 +8,8 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.648.0) - aws-sdk-core (3.162.0) + aws-partitions (1.649.0) + aws-sdk-core (3.163.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index bc199df1a..27ed08c4d 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -135,8 +135,8 @@ android { applicationId "live.hms.rn" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 121 - versionName "2.0.16" + versionCode 122 + versionName "2.0.17" missingDimensionStrategy 'react-native-camera', 'general' } splits { diff --git a/example/ios/Gemfile.lock b/example/ios/Gemfile.lock index 0e6b9aa12..7d1199280 100644 --- a/example/ios/Gemfile.lock +++ b/example/ios/Gemfile.lock @@ -8,8 +8,8 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.648.0) - aws-sdk-core (3.162.0) + aws-partitions (1.649.0) + aws-sdk-core (3.163.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) diff --git a/example/ios/RNHMSExample.xcodeproj/project.pbxproj b/example/ios/RNHMSExample.xcodeproj/project.pbxproj index bd6a3e45b..5034e740f 100644 --- a/example/ios/RNHMSExample.xcodeproj/project.pbxproj +++ b/example/ios/RNHMSExample.xcodeproj/project.pbxproj @@ -622,7 +622,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 121; + CURRENT_PROJECT_VERSION = 122; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -663,7 +663,7 @@ CODE_SIGN_ENTITLEMENTS = RNHMSExample/RNHMSExample.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 121; + CURRENT_PROJECT_VERSION = 122; DEVELOPMENT_TEAM = 5N85PP82A9; ENABLE_BITCODE = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -830,7 +830,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 121; + CURRENT_PROJECT_VERSION = 122; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = 5N85PP82A9; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -874,7 +874,7 @@ CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 121; + CURRENT_PROJECT_VERSION = 122; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = 5N85PP82A9; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; diff --git a/example/ios/RNHMSExample/Info.plist b/example/ios/RNHMSExample/Info.plist index ee24f91b4..d42e3300d 100644 --- a/example/ios/RNHMSExample/Info.plist +++ b/example/ios/RNHMSExample/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.0.16 + 2.0.17 CFBundleSignature ???? CFBundleVersion - 121 + 122 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS diff --git a/example/package-lock.json b/example/package-lock.json index 7b6d6f763..3df94eef0 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -4818,9 +4818,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001422", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz", - "integrity": "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==", + "version": "1.0.30001423", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001423.tgz", + "integrity": "sha512-09iwWGOlifvE1XuHokFMP7eR38a0JnajoyL3/i87c8ZjRWRrdKo1fqjNfugfBD0UDBIOz0U+jtNhJ0EPm1VleQ==", "funding": [ { "type": "opencollective", @@ -5316,9 +5316,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", - "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.6.tgz", + "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==" }, "node_modules/debug": { "version": "4.3.4", @@ -18183,9 +18183,9 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "caniuse-lite": { - "version": "1.0.30001422", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz", - "integrity": "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==" + "version": "1.0.30001423", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001423.tgz", + "integrity": "sha512-09iwWGOlifvE1XuHokFMP7eR38a0JnajoyL3/i87c8ZjRWRrdKo1fqjNfugfBD0UDBIOz0U+jtNhJ0EPm1VleQ==" }, "capture-exit": { "version": "2.0.0", @@ -18589,9 +18589,9 @@ } }, "dayjs": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", - "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.6.tgz", + "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==" }, "debug": { "version": "4.3.4", diff --git a/package-lock.json b/package-lock.json index f0f40f4ca..970d31252 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6855,9 +6855,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001422", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz", - "integrity": "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==", + "version": "1.0.30001423", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001423.tgz", + "integrity": "sha512-09iwWGOlifvE1XuHokFMP7eR38a0JnajoyL3/i87c8ZjRWRrdKo1fqjNfugfBD0UDBIOz0U+jtNhJ0EPm1VleQ==", "funding": [ { "type": "opencollective", @@ -7794,9 +7794,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", - "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.6.tgz", + "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==", "peer": true }, "node_modules/debug": { @@ -25795,9 +25795,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001422", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz", - "integrity": "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==" + "version": "1.0.30001423", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001423.tgz", + "integrity": "sha512-09iwWGOlifvE1XuHokFMP7eR38a0JnajoyL3/i87c8ZjRWRrdKo1fqjNfugfBD0UDBIOz0U+jtNhJ0EPm1VleQ==" }, "capture-exit": { "version": "2.0.0", @@ -26535,9 +26535,9 @@ "dev": true }, "dayjs": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", - "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.6.tgz", + "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==", "peer": true }, "debug": { From f2f39866738af57910510559d0dc84d85a4c5dab Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Tue, 25 Oct 2022 14:13:02 +0530 Subject: [PATCH 70/84] feat: added initalState and log settings api on android --- .../java/com/reactnativehmssdk/HMSHelper.kt | 256 +++++++++++------- .../java/com/reactnativehmssdk/HMSRNSDK.kt | 40 ++- example/ios/Podfile.lock | 10 +- .../RNHMSExample.xcodeproj/project.pbxproj | 4 +- example/src/components/PreviewModal.tsx | 8 +- example/src/screens/Welcome/index.tsx | 78 ++++-- ios/HMSHelper.swift | 48 ++-- react-native-hms.podspec | 2 +- src/classes/HMSAudioTrackSettings.ts | 20 +- src/classes/HMSLogAlarmManager.ts | 5 + src/classes/HMSLogSettings.ts | 18 ++ src/classes/HMSSDK.tsx | 3 + src/classes/HMSTrackSettings.ts | 3 - src/classes/HMSTrackSettingsInitState.ts | 4 + src/classes/HMSVideoTrackSettings.ts | 35 ++- src/index.ts | 3 + 16 files changed, 348 insertions(+), 189 deletions(-) create mode 100644 src/classes/HMSLogAlarmManager.ts create mode 100644 src/classes/HMSLogSettings.ts create mode 100644 src/classes/HMSTrackSettingsInitState.ts diff --git a/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt b/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt index 4212a0931..9f7af8fe4 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt @@ -27,6 +27,8 @@ import live.hms.video.media.tracks.HMSTrack import live.hms.video.sdk.models.* import live.hms.video.sdk.models.enums.AudioMixingMode import live.hms.video.sdk.models.role.HMSRole +import live.hms.video.services.LogAlarmManager +import live.hms.video.utils.HMSLogger import live.hms.video.utils.HmsUtilities import org.webrtc.SurfaceViewRenderer @@ -162,113 +164,171 @@ object HMSHelper { return null } - fun getFrameworkInfo(data: ReadableMap?): FrameworkInfo { - var version = "" - var sdkVersion = "" - if (this.areAllRequiredKeysAvailable( - data, - arrayOf(Pair("version", "String"), Pair("sdkVersion", "String")) - ) + fun getFrameworkInfo(data: ReadableMap?): FrameworkInfo? { + if (data != null && + this.areAllRequiredKeysAvailable( + data, + arrayOf(Pair("version", "String"), Pair("sdkVersion", "String")) + ) ) { - version = data?.getString("version") as String - sdkVersion = data?.getString("sdkVersion") as String + val version = data.getString("version") as String + val sdkVersion = data.getString("sdkVersion") as String + return FrameworkInfo(AgentType.REACT_NATIVE, sdkVersion, version) } - return FrameworkInfo(AgentType.REACT_NATIVE, sdkVersion, version) + return null } - fun getTrackSettings(data: ReadableMap?): HMSTrackSettings? { - if (data == null) { - return null - } - - var useHardwareEchoCancellation = false - val requiredKeysUseHardwareEchoCancellation = - this.areAllRequiredKeysAvailable( - data, - arrayOf(Pair("useHardwareEchoCancellation", "Boolean")) - ) - if (requiredKeysUseHardwareEchoCancellation) { - useHardwareEchoCancellation = data.getBoolean("useHardwareEchoCancellation") + fun getLogSettings(data: ReadableMap?): HMSLogSettings? { + if (data != null && + this.areAllRequiredKeysAvailable( + data, + arrayOf( + Pair("level", "String"), + Pair("maxDirSizeInBytes", "String"), + Pair("isLogStorageEnabled", "Boolean") + ) + ) + ) { + val level = getLogLevel(data.getString("level")) + val maxDirSizeInBytes = getLogAlarmManager(data.getString("maxDirSizeInBytes")) + val isLogStorageEnabled = data.getBoolean("isLogStorageEnabled") + return HMSLogSettings(maxDirSizeInBytes, isLogStorageEnabled, level) } + return null + } - var video: ReadableMap? = null - val requiredKeysVideo = this.areAllRequiredKeysAvailable(data, arrayOf(Pair("video", "Map"))) - if (requiredKeysVideo) { - video = data.getMap("video") + private fun getLogAlarmManager(logAlarmManager: String?): Long { + when (logAlarmManager) { + "DEFAULT_DIR_SIZE" -> { + return LogAlarmManager.DEFAULT_DIR_SIZE + } + "DEFAULT_LOGS_FILE_NAME" -> { + return LogAlarmManager.DEFAULT_LOGS_FILE_NAME.toLong() + } + "MAX_DIR_SIZE" -> { + return LogAlarmManager.MAX_DIR_SIZE.toLong() + } } + return LogAlarmManager.DEFAULT_DIR_SIZE + } - var audio: ReadableMap? = null - val requiredKeysAudio = this.areAllRequiredKeysAvailable(data, arrayOf(Pair("audio", "Map"))) - if (requiredKeysAudio) { - audio = data.getMap("audio") + private fun getLogLevel(logLevel: String?): HMSLogger.LogLevel { + when (logLevel) { + "VERBOSE" -> { + return HMSLogger.LogLevel.VERBOSE + } + "WARN" -> { + return HMSLogger.LogLevel.WARN + } + "ERROR" -> { + return HMSLogger.LogLevel.ERROR + } } + return HMSLogger.LogLevel.VERBOSE + } - if (video == null && audio == null && !useHardwareEchoCancellation) { + fun getTrackSettings(data: ReadableMap?): HMSTrackSettings? { + if (data == null) { return null } + val builder = HMSTrackSettings.Builder() + if (this.areAllRequiredKeysAvailable(data, arrayOf(Pair("video", "Map")))) { + val video = data.getMap("video") + val videoSettings = this.getVideoTrackSettings(video) + if (videoSettings != null) { + builder.video(videoSettings) + } + } - val videoSettings = this.getVideoTrackSettings(video) - val audioSettings = this.getAudioTrackSettings(audio, useHardwareEchoCancellation) - val trackSettingsBuilder = HMSTrackSettings.Builder() - return trackSettingsBuilder.audio(audioSettings).video(videoSettings).build() + if (this.areAllRequiredKeysAvailable(data, arrayOf(Pair("audio", "Map")))) { + val audio = data.getMap("audio") + val audioSettings = this.getAudioTrackSettings(audio) + if (audioSettings != null) { + builder.audio(audioSettings) + } + } + return builder.build() } - private fun getAudioTrackSettings( - data: ReadableMap?, - useHardwareEchoCancellation: Boolean - ): HMSAudioTrackSettings { - val builder = - HMSAudioTrackSettings.Builder() - .setUseHardwareAcousticEchoCanceler(useHardwareEchoCancellation) - - if (data != null) { - val maxBitrate = data.getInt("maxBitrate") - val codec = getAudioCodec(data.getString("codec")) + private fun getAudioTrackSettings(data: ReadableMap?): HMSAudioTrackSettings? { + if (data == null) { + return null + } + val builder = HMSAudioTrackSettings.Builder() + if (areAllRequiredKeysAvailable(data, arrayOf(Pair("useHardwareEchoCancellation", "Boolean"))) + ) { + val useHardwareEchoCancellation = data.getBoolean("useHardwareEchoCancellation") + builder.setUseHardwareAcousticEchoCanceler(useHardwareEchoCancellation) + } - builder.maxBitrate(maxBitrate) - builder.codec(codec) + if (areAllRequiredKeysAvailable(data, arrayOf(Pair("initialState", "String")))) { + val initialState = getHMSTrackSettingsInitState(data.getString("initialState")) + builder.initialState(initialState) } + builder.maxBitrate(32) + builder.codec(HMSAudioCodec.OPUS) + return builder.build() } - // TODO: find out a way to set settings required to create HMSVideoTrackSettings - - private fun getVideoTrackSettings(data: ReadableMap?): HMSVideoTrackSettings { + private fun getVideoTrackSettings(data: ReadableMap?): HMSVideoTrackSettings? { + if (data == null) { + return null + } val builder = HMSVideoTrackSettings.Builder() - if (data != null) { - val codec = getVideoCodec(data.getString("codec")) - val resolution = getVideoResolution(data.getMap("resolution")) - val maxBitrate = data.getInt("maxBitrate") - val maxFrameRate = data.getInt("maxFrameRate") + + if (areAllRequiredKeysAvailable(data, arrayOf(Pair("cameraFacing", "String")))) { val cameraFacing = getCameraFacing(data.getString("cameraFacing")) - var forceSoftwareDecoder = false - if (areAllRequiredKeysAvailable(data, arrayOf(Pair("forceSoftwareDecoder", "Boolean")))) { - forceSoftwareDecoder = data.getBoolean("forceSoftwareDecoder") - } - builder.codec(codec) builder.cameraFacing(cameraFacing) + } + + if (areAllRequiredKeysAvailable(data, arrayOf(Pair("disableAutoResize", "Boolean")))) { + val disableAutoResize = data.getBoolean("disableAutoResize") + builder.disableAutoResize(disableAutoResize) + } + + if (areAllRequiredKeysAvailable(data, arrayOf(Pair("initialState", "String")))) { + val initialState = getHMSTrackSettingsInitState(data.getString("initialState")) + builder.initialState(initialState) + } + + if (areAllRequiredKeysAvailable(data, arrayOf(Pair("forceSoftwareDecoder", "Boolean")))) { + val forceSoftwareDecoder = data.getBoolean("forceSoftwareDecoder") builder.forceSoftwareDecoder(forceSoftwareDecoder) - if (resolution != null) { - builder.resolution(resolution) - } - builder.maxBitrate(maxBitrate) - builder.maxFrameRate(maxFrameRate) } + + builder.codec(HMSVideoCodec.VP8) + builder.resolution(HMSVideoResolution(width = 320, height = 180)) + builder.maxBitrate(512) + builder.maxFrameRate(25) + return builder.build() } - private fun getVideoResolution(map: ReadableMap?): HMSVideoResolution? { - val width = map?.getDouble("width") - val height = map?.getDouble("height") - - return if (width != null && height != null) { - HMSVideoResolution(width = width.toInt(), height = height.toInt()) - } else { - null + private fun getHMSTrackSettingsInitState(initState: String?): HMSTrackSettings.InitState { + when (initState) { + "UNMUTED" -> { + return HMSTrackSettings.InitState.UNMUTED + } + "MUTED" -> { + return HMSTrackSettings.InitState.MUTED + } } + return HMSTrackSettings.InitState.UNMUTED } + // private fun getVideoResolution(map: ReadableMap?): HMSVideoResolution? { + // val width = map?.getDouble("width") + // val height = map?.getDouble("height") + // + // return if (width != null && height != null) { + // HMSVideoResolution(width = width.toInt(), height = height.toInt()) + // } else { + // null + // } + // } + fun getAudioMixingMode(audioMixingMode: String?): AudioMixingMode { when (audioMixingMode) { "TALK_ONLY" -> { @@ -284,29 +344,29 @@ object HMSHelper { return AudioMixingMode.TALK_AND_MUSIC } - private fun getAudioCodec(codecString: String?): HMSAudioCodec { - when (codecString) { - "opus" -> { - return HMSAudioCodec.OPUS - } - } - return HMSAudioCodec.OPUS - } - - private fun getVideoCodec(codecString: String?): HMSVideoCodec { - when (codecString) { - "H264" -> { - return HMSVideoCodec.H264 - } - "VP8" -> { - return HMSVideoCodec.VP8 - } - "VP9" -> { - return HMSVideoCodec.VP9 - } - } - return HMSVideoCodec.H264 - } + // private fun getAudioCodec(codecString: String?): HMSAudioCodec { + // when (codecString) { + // "opus" -> { + // return HMSAudioCodec.OPUS + // } + // } + // return HMSAudioCodec.OPUS + // } + + // private fun getVideoCodec(codecString: String?): HMSVideoCodec { + // when (codecString) { + // "H264" -> { + // return HMSVideoCodec.H264 + // } + // "VP8" -> { + // return HMSVideoCodec.VP8 + // } + // "VP9" -> { + // return HMSVideoCodec.VP9 + // } + // } + // return HMSVideoCodec.H264 + // } private fun getCameraFacing(cameraFacing: String?): HMSVideoTrackSettings.CameraFacing { when (cameraFacing) { diff --git a/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt b/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt index a7c7d2023..988a8c843 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt @@ -4,12 +4,10 @@ import android.content.Intent import android.content.Intent.FLAG_ACTIVITY_NEW_TASK import com.facebook.react.bridge.* import com.facebook.react.bridge.UiThreadUtil.runOnUiThread -import java.util.* import kotlinx.coroutines.launch import live.hms.video.audio.HMSAudioManager import live.hms.video.connection.stats.* import live.hms.video.error.HMSException -import live.hms.video.media.settings.HMSLogSettings import live.hms.video.media.tracks.* import live.hms.video.sdk.* import live.hms.video.sdk.models.* @@ -18,9 +16,7 @@ import live.hms.video.sdk.models.enums.HMSPeerUpdate import live.hms.video.sdk.models.enums.HMSRoomUpdate import live.hms.video.sdk.models.enums.HMSTrackUpdate import live.hms.video.sdk.models.trackchangerequest.HMSChangeTrackStateRequest -import live.hms.video.services.LogAlarmManager import live.hms.video.utils.HMSCoroutineScope -import live.hms.video.utils.HMSLogger import live.hms.video.utils.HmsUtilities class HMSRNSDK( @@ -45,14 +41,29 @@ class HMSRNSDK( private var self = this init { - val trackSettings = HMSHelper.getTrackSettings(data?.getMap("trackSettings")) - val frameworkInfo = HMSHelper.getFrameworkInfo(data?.getMap("frameworkInfo")) - val logSettings = HMSLogSettings(maxDirSizeInBytes = LogAlarmManager.DEFAULT_DIR_SIZE, isLogStorageEnabled = true, level = HMSLogger.LogLevel.VERBOSE) - if (trackSettings == null) { - this.hmsSDK = HMSSDK.Builder(reactApplicationContext).setFrameworkInfo(frameworkInfo).setLogSettings(logSettings).build() - } else { - this.hmsSDK = HMSSDK.Builder(reactApplicationContext).setTrackSettings(trackSettings).setFrameworkInfo(frameworkInfo).setLogSettings(logSettings).build() + val builder = HMSSDK.Builder(reactApplicationContext) + if (HMSHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("trackSettings", "Map")))) { + val trackSettings = HMSHelper.getTrackSettings(data?.getMap("trackSettings")) + if (trackSettings != null) { + builder.setTrackSettings(trackSettings) + } + } + + if (HMSHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("frameworkInfo", "Map")))) { + val frameworkInfo = HMSHelper.getFrameworkInfo(data?.getMap("frameworkInfo")) + if (frameworkInfo != null) { + builder.setFrameworkInfo(frameworkInfo) + } } + + if (HMSHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("logSettings", "Map")))) { + val logSettings = HMSHelper.getLogSettings(data?.getMap("logSettings")) + if (logSettings != null) { + builder.setLogSettings(logSettings) + } + } + + this.hmsSDK = builder.build() } private fun emitCustomError(message: String) { @@ -133,7 +144,8 @@ class HMSRNSDK( ) { return } - if(!networkQualityUpdatesAttached && type === HMSPeerUpdate.NETWORK_QUALITY_UPDATED){ + if (!networkQualityUpdatesAttached && type === HMSPeerUpdate.NETWORK_QUALITY_UPDATED + ) { return } val updateType = type.name @@ -248,7 +260,9 @@ class HMSRNSDK( ) { return } - if(!networkQualityUpdatesAttached && type === HMSPeerUpdate.NETWORK_QUALITY_UPDATED){ + if (!networkQualityUpdatesAttached && + type === HMSPeerUpdate.NETWORK_QUALITY_UPDATED + ) { return } val updateType = type.name diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 2eed7c11b..69f9f5ca7 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -59,7 +59,7 @@ PODS: - glog (0.3.5) - hermes-engine (0.7.2) - HMSBroadcastExtensionSDK (0.0.4) - - HMSSDK (0.4.5): + - HMSSDK (0.4.6): - HMSWebRTC (= 1.0.4898) - HMSWebRTC (1.0.4898) - libevent (2.1.12) @@ -290,7 +290,7 @@ PODS: - React-Core - react-native-hms (0.9.94): - HMSBroadcastExtensionSDK (= 0.0.4) - - HMSSDK (= 0.4.5) + - HMSSDK (= 0.4.6) - React-Core - react-native-safe-area-context (3.4.1): - React-Core @@ -582,7 +582,7 @@ SPEC CHECKSUMS: CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 DoubleConversion: cf9b38bf0b2d048436d9a82ad2abe1404f11e7de FBLazyVector: e686045572151edef46010a6f819ade377dfeb4b - FBReactNativeSpec: 0094aca9cd5d4a79abcb5a2c1d1f52d0c106aaf9 + FBReactNativeSpec: 978556cb9c183a32af51f818206b201b3deb0d1e Flipper: d3da1aa199aad94455ae725e9f3aa43f3ec17021 Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41 Flipper-Folly: 755929a4f851b2fb2c347d533a23f191b008554c @@ -593,7 +593,7 @@ SPEC CHECKSUMS: glog: 73c2498ac6884b13ede40eda8228cb1eee9d9d62 hermes-engine: 7d97ba46a1e29bacf3e3c61ecb2804a5ddd02d4f HMSBroadcastExtensionSDK: 9a8888c524db5582437d06e6087bc4be6d323412 - HMSSDK: 7a8f5503eedffc024b959988a5bd97427c5a4ede + HMSSDK: 775b6ea180e2b346dec593b9e53ae91d66ebdc7f HMSWebRTC: d3a9b2866e4a36a1d3834728a548a4a46309bb86 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b @@ -613,7 +613,7 @@ SPEC CHECKSUMS: react-native-camera: 3eae183c1d111103963f3dd913b65d01aef8110f react-native-cameraroll: 38b40d9033e4077b6c603f92f95c6d05fa7907df react-native-document-picker: f5ec1a712ca2a975c233117f044817bb8393cad4 - react-native-hms: bf6c7964782e41b7cd8f3d6233a1174d91d384c8 + react-native-hms: a51cda322f9f9495ba68f87c4b49f866ed69b1fa react-native-safe-area-context: 9e40fb181dac02619414ba1294d6c2a807056ab9 react-native-simple-toast: 8ee5d23f0b92b935ab7434cdb65159ce12dfb4b7 react-native-video: c26780b224543c62d5e1b2a7244a5cd1b50e8253 diff --git a/example/ios/RNHMSExample.xcodeproj/project.pbxproj b/example/ios/RNHMSExample.xcodeproj/project.pbxproj index bd6a3e45b..187db0d96 100644 --- a/example/ios/RNHMSExample.xcodeproj/project.pbxproj +++ b/example/ios/RNHMSExample.xcodeproj/project.pbxproj @@ -726,7 +726,7 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -791,7 +791,7 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; diff --git a/example/src/components/PreviewModal.tsx b/example/src/components/PreviewModal.tsx index 960e1e9cc..bc7a09a69 100644 --- a/example/src/components/PreviewModal.tsx +++ b/example/src/components/PreviewModal.tsx @@ -41,11 +41,10 @@ export const PreviewModal = ({ ); const {top, bottom, left, right} = useSafeAreaInsets(); - const [previewAudioTrack, setPreviewAudioTrack] = useState(); const [previewVideoTrack, setPreviewVideoTrack] = useState(); - const [isAudioMute, setIsAudioMute] = useState(previewAudioTrack?.isMute()); - const [isVideoMute, setIsVideoMute] = useState(previewVideoTrack?.isMute()); + const [isAudioMute, setIsAudioMute] = useState(); + const [isVideoMute, setIsVideoMute] = useState(); const [previewPeer, setPreviewPeer] = useState(); const [numberOfLines, setNumberOfLines] = useState(true); @@ -66,12 +65,13 @@ export const PreviewModal = ({ track?.source === HMSTrackSource.REGULAR ) { setPreviewVideoTrack(track); + setIsVideoMute(track?.isMute()); } if ( track?.type === HMSTrackType.AUDIO && track?.source === HMSTrackSource.REGULAR ) { - setPreviewAudioTrack(track); + setIsAudioMute(track?.isMute()); } }); }, [previewTracks]); diff --git a/example/src/screens/Welcome/index.tsx b/example/src/screens/Welcome/index.tsx index 605aac27a..1d2b77f22 100644 --- a/example/src/screens/Welcome/index.tsx +++ b/example/src/screens/Welcome/index.tsx @@ -1,11 +1,12 @@ import { - HMSAudioCodec, HMSAudioTrackSettings, HMSCameraFacing, HMSConfig, HMSException, + HMSLogAlarmManager, HMSLogger, HMSLogLevel, + HMSLogSettings, HMSPeer, HMSPeerUpdate, HMSRoom, @@ -13,10 +14,9 @@ import { HMSSDK, HMSTrack, HMSTrackSettings, + HMSTrackSettingsInitState, HMSTrackUpdate, HMSUpdateListenerActions, - HMSVideoCodec, - HMSVideoResolution, HMSVideoTrackSettings, } from '@100mslive/react-native-hms'; import {useNavigation} from '@react-navigation/native'; @@ -83,6 +83,7 @@ const Welcome = () => { const [hmsRoom, setHmsRoom] = useState(); const [modalType, setModalType] = useState(ModalTypes.DEFAULT); const [forceSoftwareDecoder, setForceSoftwareDecoder] = useState(true); + const [disableAutoResize, setDisableAutoResize] = useState(true); const [mirrorLocalVideo, setMirrorLocalVideo] = useState(false); // useRef hook @@ -255,27 +256,6 @@ const Welcome = () => { }; const getTrackSettings = () => { - let audioSettings = new HMSAudioTrackSettings({ - codec: HMSAudioCodec.opus, - maxBitrate: 32, - trackDescription: 'Simple Audio Track', - audioSource: [ - 'mic_node', - 'screen_broadcast_audio_receiver_node', - 'audio_file_player_node', - ], - }); - - let videoSettings = new HMSVideoTrackSettings({ - codec: HMSVideoCodec.VP8, - maxBitrate: 512, - maxFrameRate: 25, - cameraFacing: HMSCameraFacing.FRONT, - trackDescription: 'Simple Video Track', - resolution: new HMSVideoResolution({height: 180, width: 320}), - forceSoftwareDecoder, - }); - const listOfFaultyDevices = [ 'Pixel', 'Pixel XL', @@ -292,12 +272,36 @@ const Welcome = () => { ]; const deviceModal = getModel(); - return new HMSTrackSettings({ - video: videoSettings, - audio: audioSettings, + let audioSettings = new HMSAudioTrackSettings({ + initialState: HMSTrackSettingsInitState.MUTED, useHardwareEchoCancellation: listOfFaultyDevices.includes(deviceModal) ? true : false, + audioSource: [ + 'mic_node', + 'screen_broadcast_audio_receiver_node', + 'audio_file_player_node', + ], + }); + + let videoSettings = new HMSVideoTrackSettings({ + initialState: HMSTrackSettingsInitState.MUTED, + cameraFacing: HMSCameraFacing.FRONT, + disableAutoResize, + forceSoftwareDecoder, + }); + + return new HMSTrackSettings({ + video: videoSettings, + audio: audioSettings, + }); + }; + + const getLogSettings = (): HMSLogSettings => { + return new HMSLogSettings({ + level: HMSLogLevel.VERBOSE, + isLogStorageEnabled: true, + maxDirSizeInBytes: HMSLogAlarmManager.DEFAULT_DIR_SIZE, }); }; @@ -334,7 +338,10 @@ const Welcome = () => { * preferredExtension: 'RHHMSExampleBroadcastUpload', // required for iOS Screenshare, not required for Android * }); */ + + const logSettings = getLogSettings(); const hmsInstance = await HMSSDK.build({ + logSettings, trackSettings, appGroup: 'group.reactnativehms', preferredExtension: 'live.100ms.reactnative.RNHMSExampleBroadcastUpload', @@ -431,6 +438,23 @@ const Welcome = () => { )} )} + {Platform.OS === 'android' && ( + { + setModalType(ModalTypes.DEFAULT); + setDisableAutoResize(!disableAutoResize); + }}> + {disableAutoResize ? ( + + Enable auto resize + + ) : ( + + Disable auto resize + + )} + + )}
setModalType(ModalTypes.WELCOME_SETTINGS)} diff --git a/ios/HMSHelper.swift b/ios/HMSHelper.swift index 317f056a1..b96f8b72b 100644 --- a/ios/HMSHelper.swift +++ b/ios/HMSHelper.swift @@ -147,31 +147,36 @@ class HMSHelper: NSObject { } static func getLocalVideoSettings(_ settings: NSDictionary?) -> HMSVideoTrackSettings? { - guard let data = settings, - let codec = data.value(forKey: "codec") as? String, - let resolution = data.value(forKey: "resolution") as? [String: Double]?, - let maxBitrate = data.value(forKey: "maxBitrate") as? Int, - let maxFrameRate = data.value(forKey: "maxFrameRate") as? Int, - let cameraFacing = data.value(forKey: "cameraFacing") as? String, - let trackDescription = data.value(forKey: "trackDescription") as? String?, - let resolutionObj = HMSHelper.getVideoResolution(resolution ?? [:]) - else { + if (settings === nil) { return nil } - let codecEncoded = HMSHelper.getVideoCodec(codec) + let codec = HMSCodec.VP8 + let resolution = HMSVideoResolution.init(width: 320, height: 180) + let maxBitrate = 512 + let maxFrameRate = 25 + let trackDescription = "video track description" + let cameraFacing = settings?.value(forKey: "cameraFacing") as? String let cameraFacingEncoded = HMSHelper.getCameraFacing(cameraFacing) - let hmsTrackSettings = HMSVideoTrackSettings(codec: codecEncoded, - resolution: resolutionObj, + let initialState = settings?.value(forKey: "initialState") as? String + let initialStateEncoded = HMSHelper.getHMSTrackSettingsInitState(initialState) + let hmsTrackSettings = HMSVideoTrackSettings(codec: codec, + resolution: resolution, maxBitrate: maxBitrate, maxFrameRate: maxFrameRate, cameraFacing: cameraFacingEncoded, + simulcastSettings: nil, trackDescription: trackDescription, + initialMuteState: initialStateEncoded, videoPlugins: nil) return hmsTrackSettings } static func getLocalAudioSettings(_ settings: NSDictionary?, _ hms: HMSSDK?, _ delegate: HMSManager?, _ id: String) -> HMSAudioTrackSettings? { - + if (settings === nil) { + return nil + } + let initialState = settings?.value(forKey: "initialState") as? String + let initialStateEncoded = HMSHelper.getHMSTrackSettingsInitState(initialState) if #available(iOS 13.0, *) { var audioMixerSourceMap = [String: HMSAudioNode]() if let playerNode = settings?.value(forKey: "audioSource") as? [String] { @@ -194,13 +199,13 @@ class HMSHelper: NSObject { do { self.audioMixerSourceHashMap = audioMixerSourceMap let audioMixerSource = try HMSAudioMixerSource(nodes: audioMixerSourceMap.values.map {$0}) - return HMSAudioTrackSettings(maxBitrate: 32, trackDescription: "trackDescription", audioSource: audioMixerSource) + return HMSAudioTrackSettings(maxBitrate: 32, trackDescription: "audio track description", initialMuteState: initialStateEncoded, audioSource: audioMixerSource) } catch { delegate?.emitEvent("ON_ERROR", ["error": ["code": 6002, "description": error.localizedDescription, "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id]) return nil } } - return nil + return HMSAudioTrackSettings(maxBitrate: 32, trackDescription: "audio track description", initialMuteState: initialStateEncoded, audioSource: nil) } static func getAudioMixerSourceMap() -> [String: HMSAudioNode]? { @@ -228,7 +233,7 @@ class HMSHelper: NSObject { } } - static func getCameraFacing(_ cameraFacing: String) -> HMSCameraFacing { + static func getCameraFacing(_ cameraFacing: String?) -> HMSCameraFacing { switch cameraFacing { case "FRONT": return HMSCameraFacing.front @@ -238,6 +243,17 @@ class HMSHelper: NSObject { return HMSCameraFacing.front } } + + static func getHMSTrackSettingsInitState(_ initState: String?) -> HMSTrackMuteState { + switch initState { + case "MUTED": + return HMSTrackMuteState.mute + case "UNMUTED": + return HMSTrackMuteState.unmute + default: + return HMSTrackMuteState.unmute + } + } static func getRtmpUrls(_ strings: [String]?) -> [URL]? { if let extractedStrings = strings { diff --git a/react-native-hms.podspec b/react-native-hms.podspec index f6d1d1ecf..f5b6b6bf1 100644 --- a/react-native-hms.podspec +++ b/react-native-hms.podspec @@ -16,6 +16,6 @@ Pod::Spec.new do |s| s.source_files = "ios/**/*.{h,m,mm,swift}" s.dependency "React-Core" - s.dependency "HMSSDK", "0.4.5" + s.dependency "HMSSDK", "0.4.6" s.dependency 'HMSBroadcastExtensionSDK', '0.0.4' end diff --git a/src/classes/HMSAudioTrackSettings.ts b/src/classes/HMSAudioTrackSettings.ts index ae68c201e..8cc7d060f 100644 --- a/src/classes/HMSAudioTrackSettings.ts +++ b/src/classes/HMSAudioTrackSettings.ts @@ -1,19 +1,27 @@ import type { HMSAudioCodec } from './HMSAudioCodec'; +import type { HMSTrackSettingsInitState } from './HMSTrackSettingsInitState'; export class HMSAudioTrackSettings { - maxBitrate: number; - trackDescription?: string; // ios only + readonly maxBitrate?: number; + readonly trackDescription?: string; // ios only + readonly codec?: HMSAudioCodec; // android only + useHardwareEchoCancellation?: boolean; // android only + initialState?: HMSTrackSettingsInitState; // android only audioSource?: string[]; // ios only - codec?: HMSAudioCodec; // android only + constructor(params: { - maxBitrate: number; + maxBitrate?: number; trackDescription?: string; - audioSource?: string[]; codec?: HMSAudioCodec; + useHardwareEchoCancellation?: boolean; + initialState?: HMSTrackSettingsInitState; + audioSource?: string[]; }) { this.maxBitrate = params.maxBitrate; this.trackDescription = params.trackDescription; - this.audioSource = params.audioSource; this.codec = params.codec; + this.useHardwareEchoCancellation = params.useHardwareEchoCancellation; + this.initialState = params.initialState; + this.audioSource = params.audioSource; } } diff --git a/src/classes/HMSLogAlarmManager.ts b/src/classes/HMSLogAlarmManager.ts new file mode 100644 index 000000000..c36f1ed9b --- /dev/null +++ b/src/classes/HMSLogAlarmManager.ts @@ -0,0 +1,5 @@ +export enum HMSLogAlarmManager { + DEFAULT_DIR_SIZE = 'DEFAULT_DIR_SIZE', + DEFAULT_LOGS_FILE_NAME = 'DEFAULT_LOGS_FILE_NAME', + MAX_DIR_SIZE = 'MAX_DIR_SIZE', +} diff --git a/src/classes/HMSLogSettings.ts b/src/classes/HMSLogSettings.ts new file mode 100644 index 000000000..b74aa6916 --- /dev/null +++ b/src/classes/HMSLogSettings.ts @@ -0,0 +1,18 @@ +import type { HMSLogAlarmManager } from './HMSLogAlarmManager'; +import type { HMSLogLevel } from './HMSLogLevel'; + +export class HMSLogSettings { + level: HMSLogLevel; + isLogStorageEnabled: boolean; + maxDirSizeInBytes: HMSLogAlarmManager; + + constructor(params: { + level: HMSLogLevel; + isLogStorageEnabled: boolean; + maxDirSizeInBytes: HMSLogAlarmManager; + }) { + this.level = params.level; + this.isLogStorageEnabled = params.isLogStorageEnabled; + this.maxDirSizeInBytes = params.maxDirSizeInBytes; + } +} diff --git a/src/classes/HMSSDK.tsx b/src/classes/HMSSDK.tsx index 7b4c98c0c..68dfa5131 100644 --- a/src/classes/HMSSDK.tsx +++ b/src/classes/HMSSDK.tsx @@ -33,6 +33,7 @@ import type { HMSHLSConfig } from './HMSHLSConfig'; import type { HMSAudioDevice } from './HMSAudioDevice'; import type { HMSAudioMode } from './HMSAudioMode'; import type { HMSAudioMixingMode } from './HMSAudioMixingMode'; +import type { HMSLogSettings } from './HMSLogSettings'; interface HmsViewProps { trackId: string; @@ -105,6 +106,7 @@ export class HMSSDK { trackSettings?: HMSTrackSettings; appGroup?: String; preferredExtension?: String; + logSettings?: HMSLogSettings; }) { const { version } = require('../../package.json'); const { major, minor, patch } = ReactNativeVersion.version; @@ -116,6 +118,7 @@ export class HMSSDK { version: major + '.' + minor + '.' + patch, sdkVersion: version, }, + logSettings: params?.logSettings, }); HmsSdk = new HMSSDK(id); HmsSdk.attachListeners(); diff --git a/src/classes/HMSTrackSettings.ts b/src/classes/HMSTrackSettings.ts index 004240775..ebefc5ea3 100644 --- a/src/classes/HMSTrackSettings.ts +++ b/src/classes/HMSTrackSettings.ts @@ -4,17 +4,14 @@ import type { HMSVideoTrackSettings } from './HMSVideoTrackSettings'; export class HMSTrackSettings { video?: HMSVideoTrackSettings; audio?: HMSAudioTrackSettings; - useHardwareEchoCancellation?: boolean; constructor(params?: { video?: HMSVideoTrackSettings; audio?: HMSAudioTrackSettings; - useHardwareEchoCancellation?: boolean; }) { if (params) { this.video = params.video; this.audio = params.audio; - this.useHardwareEchoCancellation = params.useHardwareEchoCancellation; } } } diff --git a/src/classes/HMSTrackSettingsInitState.ts b/src/classes/HMSTrackSettingsInitState.ts new file mode 100644 index 000000000..1eb27df92 --- /dev/null +++ b/src/classes/HMSTrackSettingsInitState.ts @@ -0,0 +1,4 @@ +export enum HMSTrackSettingsInitState { + MUTED = 'MUTED', + UNMUTED = 'UNMUTED', +} diff --git a/src/classes/HMSVideoTrackSettings.ts b/src/classes/HMSVideoTrackSettings.ts index 485e6c4e1..eb6317f4c 100644 --- a/src/classes/HMSVideoTrackSettings.ts +++ b/src/classes/HMSVideoTrackSettings.ts @@ -2,34 +2,41 @@ import type { HMSVideoCodec } from './HMSVideoCodec'; import type { HMSSimulcastLayerSettings } from './HMSSimulcastLayerSettings'; import type { HMSCameraFacing } from './HMSCameraFacing'; import type { HMSVideoResolution } from './HMSVideoResolution'; +import type { HMSTrackSettingsInitState } from './HMSTrackSettingsInitState'; export class HMSVideoTrackSettings { - codec: HMSVideoCodec; - resolution: HMSVideoResolution; - maxBitrate: number; - maxFrameRate: number; - cameraFacing: HMSCameraFacing; - trackDescription?: string; - simulcastSettings?: HMSSimulcastLayerSettings[]; - forceSoftwareDecoder?: boolean; + readonly codec?: HMSVideoCodec; + readonly resolution?: HMSVideoResolution; + readonly maxBitrate?: number; + readonly maxFrameRate?: number; + readonly trackDescription?: string; + readonly simulcastSettings?: HMSSimulcastLayerSettings[]; + cameraFacing?: HMSCameraFacing; + forceSoftwareDecoder?: boolean; // android only + disableAutoResize?: boolean; // android only + initialState?: HMSTrackSettingsInitState; // android only constructor(params: { - codec: HMSVideoCodec; - resolution: HMSVideoResolution; - maxBitrate: number; - maxFrameRate: number; - cameraFacing: HMSCameraFacing; + codec?: HMSVideoCodec; + resolution?: HMSVideoResolution; + maxBitrate?: number; + maxFrameRate?: number; trackDescription?: string; simulcastSettings?: HMSSimulcastLayerSettings[]; + cameraFacing?: HMSCameraFacing; forceSoftwareDecoder?: boolean; + disableAutoResize?: boolean; + initialState?: HMSTrackSettingsInitState; }) { this.codec = params.codec; this.resolution = params.resolution; this.maxBitrate = params.maxBitrate; this.maxFrameRate = params.maxFrameRate; - this.cameraFacing = params.cameraFacing; this.trackDescription = params.trackDescription; this.simulcastSettings = params.simulcastSettings; + this.cameraFacing = params.cameraFacing; this.forceSoftwareDecoder = params.forceSoftwareDecoder; + this.disableAutoResize = params.disableAutoResize; + this.initialState = params.initialState; } } diff --git a/src/index.ts b/src/index.ts index e5f5c2539..226c2699b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -70,6 +70,9 @@ export * from './classes/HMSMicNode'; export * from './classes/HMSScreenBroadcastAudioReceiverNode'; export * from './classes/HMSAudioFilePlayerNode'; export * from './classes/HMSAudioMixerSource'; +export * from './classes/HMSTrackSettingsInitState'; +export * from './classes/HMSLogSettings'; +export * from './classes/HMSLogAlarmManager'; import { HMSSDK as HmsManager } from './classes/HMSSDK'; export default HmsManager; From cd785949f9c3abc64b3c2ba97acefdbf04ffbd8f Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Tue, 25 Oct 2022 17:53:21 +0530 Subject: [PATCH 71/84] feat: updated encoded values for audio and video track settings --- .../java/com/reactnativehmssdk/HMSDecoder.kt | 25 ++-------- .../java/com/reactnativehmssdk/HMSHelper.kt | 49 ------------------- .../java/com/reactnativehmssdk/HMSRNSDK.kt | 4 ++ ios/HMSDecoder.swift | 14 ++---- ios/HMSHelper.swift | 11 +++++ src/classes/HMSAudioTrackSettings.ts | 14 +----- src/classes/HMSEncoder.ts | 14 +++--- src/classes/HMSVideoTrackSettings.ts | 23 ++------- 8 files changed, 35 insertions(+), 119 deletions(-) diff --git a/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt b/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt index 55e5b41e3..e5cce64c0 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt @@ -229,14 +229,11 @@ object HMSDecoder { private fun getHmsAudioTrackSettings(hmsAudioTrackSettings: HMSAudioTrackSettings?): WritableMap { val settings: WritableMap = Arguments.createMap() if (hmsAudioTrackSettings != null) { - settings.putInt("maxBitrate", hmsAudioTrackSettings.maxBitrate) - settings.putDouble("volume", hmsAudioTrackSettings.volume) settings.putBoolean( "useHardwareAcousticEchoCanceler", hmsAudioTrackSettings.useHardwareAcousticEchoCanceler ) - settings.putString("codec", hmsAudioTrackSettings.codec.name) - settings.putString("trackDescription", "") + settings.putString("initialState", hmsAudioTrackSettings.initialState.name) } return settings } @@ -244,15 +241,10 @@ object HMSDecoder { private fun getHmsVideoTrackSettings(hmsVideoTrackSettings: HMSVideoTrackSettings?): WritableMap { val settings: WritableMap = Arguments.createMap() if (hmsVideoTrackSettings != null) { - settings.putString("codec", hmsVideoTrackSettings.codec.name) - settings.putInt("maxBitrate", hmsVideoTrackSettings.maxBitRate) - settings.putInt("maxFrameRate", hmsVideoTrackSettings.maxFrameRate) settings.putString("cameraFacing", hmsVideoTrackSettings.cameraFacing.name) - settings.putString("trackDescription", hmsVideoTrackSettings.codec.name) - settings.putMap( - "resolution", - this.getHmsVideoTrackResolution(hmsVideoTrackSettings.resolution) - ) + settings.putBoolean("disableAutoResize", hmsVideoTrackSettings.disableAutoResize) + settings.putBoolean("forceSoftwareDecoder", hmsVideoTrackSettings.forceSoftwareDecoder) + settings.putString("initialState", hmsVideoTrackSettings.initialState.name) } return settings } @@ -425,15 +417,6 @@ object HMSDecoder { return input } - // private fun getHMSHlsRecordingConfig(data: HMSHlsRecordingConfig?): ReadableMap { - // val input = Arguments.createMap() - // if (data !== null) { - // input.putBoolean("singleFilePerLayer", data.singleFilePerLayer) - // input.putBoolean("videoOnDemand", data.videoOnDemand) - // } - // return input - // } - private fun getHMSHLSVariant(data: ArrayList?): ReadableArray { val variants = Arguments.createArray() if (data !== null) { diff --git a/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt b/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt index 9f7af8fe4..f5f21ff23 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt @@ -10,16 +10,12 @@ import android.view.PixelCopy import android.webkit.URLUtil import androidx.annotation.RequiresApi import com.facebook.react.bridge.* -import com.facebook.react.bridge.ReadableArray -import com.facebook.react.bridge.ReadableMap import com.facebook.react.uimanager.events.RCTEventEmitter import java.io.ByteArrayOutputStream import java.util.* import live.hms.video.audio.HMSAudioManager import live.hms.video.error.HMSException import live.hms.video.events.AgentType -import live.hms.video.media.codec.HMSAudioCodec -import live.hms.video.media.codec.HMSVideoCodec import live.hms.video.media.settings.* import live.hms.video.media.tracks.HMSRemoteAudioTrack import live.hms.video.media.tracks.HMSRemoteVideoTrack @@ -265,10 +261,6 @@ object HMSHelper { val initialState = getHMSTrackSettingsInitState(data.getString("initialState")) builder.initialState(initialState) } - - builder.maxBitrate(32) - builder.codec(HMSAudioCodec.OPUS) - return builder.build() } @@ -297,12 +289,6 @@ object HMSHelper { val forceSoftwareDecoder = data.getBoolean("forceSoftwareDecoder") builder.forceSoftwareDecoder(forceSoftwareDecoder) } - - builder.codec(HMSVideoCodec.VP8) - builder.resolution(HMSVideoResolution(width = 320, height = 180)) - builder.maxBitrate(512) - builder.maxFrameRate(25) - return builder.build() } @@ -318,17 +304,6 @@ object HMSHelper { return HMSTrackSettings.InitState.UNMUTED } - // private fun getVideoResolution(map: ReadableMap?): HMSVideoResolution? { - // val width = map?.getDouble("width") - // val height = map?.getDouble("height") - // - // return if (width != null && height != null) { - // HMSVideoResolution(width = width.toInt(), height = height.toInt()) - // } else { - // null - // } - // } - fun getAudioMixingMode(audioMixingMode: String?): AudioMixingMode { when (audioMixingMode) { "TALK_ONLY" -> { @@ -344,30 +319,6 @@ object HMSHelper { return AudioMixingMode.TALK_AND_MUSIC } - // private fun getAudioCodec(codecString: String?): HMSAudioCodec { - // when (codecString) { - // "opus" -> { - // return HMSAudioCodec.OPUS - // } - // } - // return HMSAudioCodec.OPUS - // } - - // private fun getVideoCodec(codecString: String?): HMSVideoCodec { - // when (codecString) { - // "H264" -> { - // return HMSVideoCodec.H264 - // } - // "VP8" -> { - // return HMSVideoCodec.VP8 - // } - // "VP9" -> { - // return HMSVideoCodec.VP9 - // } - // } - // return HMSVideoCodec.H264 - // } - private fun getCameraFacing(cameraFacing: String?): HMSVideoTrackSettings.CameraFacing { when (cameraFacing) { "FRONT" -> { diff --git a/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt b/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt index 988a8c843..97f3719e3 100644 --- a/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +++ b/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt @@ -53,7 +53,11 @@ class HMSRNSDK( val frameworkInfo = HMSHelper.getFrameworkInfo(data?.getMap("frameworkInfo")) if (frameworkInfo != null) { builder.setFrameworkInfo(frameworkInfo) + } else { + emitCustomError("Unable to decode framework info") } + } else { + emitCustomError("Framework info not sent in build function") } if (HMSHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("logSettings", "Map")))) { diff --git a/ios/HMSDecoder.swift b/ios/HMSDecoder.swift index e06f4a0f3..2eaefa796 100644 --- a/ios/HMSDecoder.swift +++ b/ios/HMSDecoder.swift @@ -154,22 +154,18 @@ class HMSDecoder: NSObject { guard let settings = hmsAudioTrackSettings else { return [:] } - let maxBitrate = settings.maxBitrate - let trackDescription = settings.trackDescription ?? "" + let audioSource = settings.audioSource + let initialState = HMSHelper.getHMSTrackInitState(settings.initialMuteState) - return ["maxBitrate": maxBitrate, "trackDescription": trackDescription] + return ["audioSource": audioSource, "initialState": initialState] } static func getHmsVideoTrackSettings(_ hmsVideoTrackSettings: HMSVideoTrackSettings?) -> [String: Any] { guard let settings = hmsVideoTrackSettings else { return [:] } - let codec = getHmsVideoTrackCodec(settings.codec) - let resolution = getHmsVideoResolution(settings.resolution) - let maxBitrate = settings.maxBitrate - let maxFrameRate = settings.maxFrameRate let cameraFacing = getHmsVideoTrackCameraFacing(settings.cameraFacing) - let trackDescription = settings.trackDescription ?? "" + let initialState = HMSHelper.getHMSTrackInitState(settings.initialMuteState) var simulcastSettingsData = [[String: Any]]() if let simulcastSettings = settings.simulcastSettings { @@ -182,7 +178,7 @@ class HMSDecoder: NSObject { } } - return ["codec": codec, "resolution": resolution, "maxBitrate": maxBitrate, "maxFrameRate": maxFrameRate, "cameraFacing": cameraFacing, "trackDescription": trackDescription, "simulcastSettings": simulcastSettingsData] + return ["initialState": initialState, "cameraFacing": cameraFacing, "simulcastSettings": simulcastSettingsData] } static func getHmsVideoTrackCodec(_ codec: HMSCodec) -> String { diff --git a/ios/HMSHelper.swift b/ios/HMSHelper.swift index b96f8b72b..1668ff45c 100644 --- a/ios/HMSHelper.swift +++ b/ios/HMSHelper.swift @@ -254,6 +254,17 @@ class HMSHelper: NSObject { return HMSTrackMuteState.unmute } } + + static func getHMSTrackInitState(_ initState: HMSTrackMuteState?) -> String { + switch initState { + case .mute: + return "MUTED" + case .unmute: + return "UNMUTED" + default: + return "UNMUTED" + } + } static func getRtmpUrls(_ strings: [String]?) -> [URL]? { if let extractedStrings = strings { diff --git a/src/classes/HMSAudioTrackSettings.ts b/src/classes/HMSAudioTrackSettings.ts index 8cc7d060f..cac9d9db9 100644 --- a/src/classes/HMSAudioTrackSettings.ts +++ b/src/classes/HMSAudioTrackSettings.ts @@ -1,25 +1,15 @@ -import type { HMSAudioCodec } from './HMSAudioCodec'; import type { HMSTrackSettingsInitState } from './HMSTrackSettingsInitState'; export class HMSAudioTrackSettings { - readonly maxBitrate?: number; - readonly trackDescription?: string; // ios only - readonly codec?: HMSAudioCodec; // android only + initialState?: HMSTrackSettingsInitState; useHardwareEchoCancellation?: boolean; // android only - initialState?: HMSTrackSettingsInitState; // android only audioSource?: string[]; // ios only constructor(params: { - maxBitrate?: number; - trackDescription?: string; - codec?: HMSAudioCodec; - useHardwareEchoCancellation?: boolean; initialState?: HMSTrackSettingsInitState; + useHardwareEchoCancellation?: boolean; audioSource?: string[]; }) { - this.maxBitrate = params.maxBitrate; - this.trackDescription = params.trackDescription; - this.codec = params.codec; this.useHardwareEchoCancellation = params.useHardwareEchoCancellation; this.initialState = params.initialState; this.audioSource = params.audioSource; diff --git a/src/classes/HMSEncoder.ts b/src/classes/HMSEncoder.ts index 83ecc56a5..92edb6684 100644 --- a/src/classes/HMSEncoder.ts +++ b/src/classes/HMSEncoder.ts @@ -181,9 +181,8 @@ export class HMSEncoder { static encodeHmsAudioTrackSettings(settings: any) { const encodedObj = { - maxBitrate: settings?.maxBitrate, - trackDescription: settings?.trackDescription, - codec: settings?.codec, + useHardwareEchoCancellation: settings?.useHardwareAcousticEchoCanceler, + initialState: settings?.initialState, }; return new HMSAudioTrackSettings(encodedObj); @@ -191,12 +190,11 @@ export class HMSEncoder { static encodeHmsVideoTrackSettings(settings: any) { const encodedObj = { - codec: settings?.codec, - resolution: HMSEncoder.encodeHmsVideoResolution(settings?.resolution), - maxBitrate: settings?.maxBitrate, - maxFrameRate: settings?.maxFrameRate, + initialState: settings?.initialState, + forceSoftwareDecoder: settings?.forceSoftwareDecoder, + simulcastSettings: settings?.simulcastSettings, cameraFacing: settings?.cameraFacing, - trackDescription: settings?.trackDescription, + disableAutoResize: settings?.disableAutoResize, }; return new HMSVideoTrackSettings(encodedObj); diff --git a/src/classes/HMSVideoTrackSettings.ts b/src/classes/HMSVideoTrackSettings.ts index eb6317f4c..244a03e82 100644 --- a/src/classes/HMSVideoTrackSettings.ts +++ b/src/classes/HMSVideoTrackSettings.ts @@ -1,42 +1,25 @@ -import type { HMSVideoCodec } from './HMSVideoCodec'; import type { HMSSimulcastLayerSettings } from './HMSSimulcastLayerSettings'; import type { HMSCameraFacing } from './HMSCameraFacing'; -import type { HMSVideoResolution } from './HMSVideoResolution'; import type { HMSTrackSettingsInitState } from './HMSTrackSettingsInitState'; export class HMSVideoTrackSettings { - readonly codec?: HMSVideoCodec; - readonly resolution?: HMSVideoResolution; - readonly maxBitrate?: number; - readonly maxFrameRate?: number; - readonly trackDescription?: string; readonly simulcastSettings?: HMSSimulcastLayerSettings[]; + initialState?: HMSTrackSettingsInitState; cameraFacing?: HMSCameraFacing; forceSoftwareDecoder?: boolean; // android only disableAutoResize?: boolean; // android only - initialState?: HMSTrackSettingsInitState; // android only constructor(params: { - codec?: HMSVideoCodec; - resolution?: HMSVideoResolution; - maxBitrate?: number; - maxFrameRate?: number; - trackDescription?: string; simulcastSettings?: HMSSimulcastLayerSettings[]; + initialState?: HMSTrackSettingsInitState; cameraFacing?: HMSCameraFacing; forceSoftwareDecoder?: boolean; disableAutoResize?: boolean; - initialState?: HMSTrackSettingsInitState; }) { - this.codec = params.codec; - this.resolution = params.resolution; - this.maxBitrate = params.maxBitrate; - this.maxFrameRate = params.maxFrameRate; - this.trackDescription = params.trackDescription; this.simulcastSettings = params.simulcastSettings; + this.initialState = params.initialState; this.cameraFacing = params.cameraFacing; this.forceSoftwareDecoder = params.forceSoftwareDecoder; this.disableAutoResize = params.disableAutoResize; - this.initialState = params.initialState; } } From b15922e9368ad07f70afcd3d8d95cd617987f71d Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Thu, 27 Oct 2022 12:14:09 +0530 Subject: [PATCH 72/84] fix: reat time reset on join --- example/package-lock.json | 14 +++++ example/package.json | 1 + example/src/screens/MeetingScreen/Modals.tsx | 32 ++++++++-- example/src/screens/MeetingScreen/index.tsx | 62 +++++++++++++++++++- src/classes/HMSBrowserRecordingState.ts | 4 +- src/classes/HMSRtmpStreamingState.ts | 4 +- src/classes/HMSServerRecordingState.ts | 4 +- 7 files changed, 109 insertions(+), 12 deletions(-) diff --git a/example/package-lock.json b/example/package-lock.json index 7b6d6f763..a2561a808 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -15,6 +15,7 @@ "@react-navigation/native": "^6.0.8", "@react-navigation/native-stack": "^6.5.0", "axios": "^0.26.0", + "moment": "^2.29.4", "react": "17.0.1", "react-native": "0.64.2", "react-native-camera": "^4.2.1", @@ -10558,6 +10559,14 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "engines": { + "node": "*" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -22577,6 +22586,11 @@ "minimist": "^1.2.6" } }, + "moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", diff --git a/example/package.json b/example/package.json index eb7023e74..86c40e539 100644 --- a/example/package.json +++ b/example/package.json @@ -18,6 +18,7 @@ "@react-navigation/native": "^6.0.8", "@react-navigation/native-stack": "^6.5.0", "axios": "^0.26.0", + "moment": "^2.29.4", "react": "17.0.1", "react-native": "0.64.2", "react-native-camera": "^4.2.1", diff --git a/example/src/screens/MeetingScreen/Modals.tsx b/example/src/screens/MeetingScreen/Modals.tsx index d044f70c9..2453e8532 100644 --- a/example/src/screens/MeetingScreen/Modals.tsx +++ b/example/src/screens/MeetingScreen/Modals.tsx @@ -40,6 +40,7 @@ import Ionicons from 'react-native-vector-icons/Ionicons'; import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'; import MaterialIcons from 'react-native-vector-icons/MaterialIcons'; import {Slider} from '@miblanchard/react-native-slider'; +import moment from 'moment'; import {styles} from './styles'; import { @@ -1572,10 +1573,12 @@ export const HlsStreamingModal = ({ instance, roomID, cancelModal, + setHlsStreaming, }: { instance?: HMSSDK; roomID: string; cancelModal: Function; + setHlsStreaming: React.Dispatch>; }) => { const [hlsStreamingDetails, setHLSStreamingDetails] = useState({ @@ -1592,7 +1595,10 @@ export const HlsStreamingModal = ({ const changeLayout = () => { instance ?.startHLSStreaming() - .then(d => console.log('Start HLS Streaming Success: ', d)) + .then(d => { + setHlsStreaming(true); + console.log('Start HLS Streaming Success: ', d); + }) .catch(err => { if (startHlsRetry) { setStartHlsRetry(false); @@ -1602,7 +1608,10 @@ export const HlsStreamingModal = ({ }); instance ?.startHLSStreaming(hmsHLSConfig) - .then(d => console.log('Start HLS Streaming Success: ', d)) + .then(d => { + setHlsStreaming(true); + console.log('Start HLS Streaming Success: ', d); + }) .catch(e => console.log('Start HLS Streaming Error: ', e)); } else { console.log('Start HLS Streaming Error: ', err); @@ -1693,7 +1702,9 @@ export const RecordingModal = ({ roomID: string; recordingModal: boolean; setModalVisible: React.Dispatch>; - setRtmpAndRecording: React.Dispatch>; + setRtmpAndRecording: React.Dispatch< + React.SetStateAction + >; }) => { const [resolutionDetails, setResolutionDetails] = useState(false); const [recordingDetails, setRecordingDetails] = useState({ @@ -1960,11 +1971,24 @@ export const EndHlsModal = ({ ); }; -export const RealTime = () => { +export const RealTime = ({startedAt}: {startedAt?: Date}) => { const [hour, setHour] = useState(0); const [minute, setMinute] = useState(0); const [second, setSecond] = useState(0); + useEffect(() => { + const time2 = moment(startedAt, 'hh:mm:ss'); + const time1 = moment(new Date(), 'hh:mm:ss'); + const subtract = time1.subtract({ + hours: time2.hours(), + minutes: time2.minutes(), + seconds: time2.seconds(), + }); + setHour(subtract.hours()); + setMinute(subtract.minutes()); + setSecond(subtract.seconds()); + }, [startedAt]); + useEffect(() => { const updatePostInfo = setInterval(() => { setSecond(sec => sec + 1); diff --git a/example/src/screens/MeetingScreen/index.tsx b/example/src/screens/MeetingScreen/index.tsx index 873078f6f..5e32dad6b 100644 --- a/example/src/screens/MeetingScreen/index.tsx +++ b/example/src/screens/MeetingScreen/index.tsx @@ -55,6 +55,7 @@ import { ChangeTrackStateModal, ChangeVolumeModal, EndRoomModal, + HlsStreamingModal, LeaveRoomModal, ParticipantsModal, RealTime, @@ -121,6 +122,10 @@ const Meeting = () => { setLocalPeer={setLocalPeer} />